Commit e8d5dff5 authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/dev' into dev

parents c1d33866 7eb3e19f
......@@ -36,4 +36,11 @@ public class UserMemberSaveDTO {
*/
@ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays;
/**
* 剩余天数
*/
@ApiModelProperty(value = "剩余天数")
private Integer source;
}
package com.github.wxiaoqi.security.admin.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Table;
......@@ -20,6 +17,7 @@ import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "base_user_member_export")
@ToString
public class BaseUserMemberExport implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
......@@ -42,5 +40,12 @@ public class BaseUserMemberExport implements Serializable {
private Integer crtId;
@Column(name = "member_name")
private String memberName;
@Column(name = "before_membe_level")
private Integer beforeMemberLevel;
@Column(name = "before_discount")
private Integer beforeDiscount;
@Column(name = "source")
private Integer source;
}
......@@ -4,18 +4,20 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
......@@ -23,12 +25,14 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 用户会员表
......@@ -43,11 +47,25 @@ import java.util.List;
public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMember> {
@Autowired
AppUserDetailBiz detailBiz;
private AppUserDetailBiz detailBiz;
@Autowired
private BaseUserMemberLevelMapper BaseUserMemberLevelMapper;
private ExecutorService executorService = Executors.newCachedThreadPool();
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
private BaseUserMemberExportBiz baseUserMemberExportBiz;
@Autowired
private HttpServletRequest request;
// @Autowired
// private TaskExecutor taskExecutor;
//
......@@ -224,7 +242,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
* @param userMemberDTO
*/
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void UpdateUserMember(UserMemberDTO userMemberDTO) throws InvocationTargetException, IllegalAccessException {
public void UpdateUserMember(UserMemberDTO userMemberDTO) throws Exception {
Integer userId = userMemberDTO.getUserId();
BaseUserMember baseUserMember = new BaseUserMember();
......@@ -234,7 +252,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
if (totalNumber < freeDays) {
freeDays = totalNumber;
}
if (userMemberDTO.getMemberLevel() != null) {
Example exa = new Example(BaseUserMemberLevel.class);
Example.Criteria criteria = exa.createCriteria();
......@@ -254,6 +271,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer buyCount = userMemberDTO.getBuyCount() == null ? 1 : userMemberDTO.getBuyCount();
UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId());
//保存修改记录
if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(buyCount);
......@@ -277,6 +295,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1);
}
log.info("保存修改记录");
setModifyData(userMemberVo,baseUserMember);
log.info("保存成功");
}
......@@ -286,4 +308,36 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
criteria.andIn("userId", userIds);
mapper.deleteByExample(example);
}
private void setModifyData(UserMemberVo beforeMember, BaseUserMember aftereMember) throws Exception {
log.info("保存修改会员记录={}",aftereMember);
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
executorService.submit(()->{
try {
AppUserVo qppUser = detailBiz.getUserInfoById(beforeMember.getUserId());
BaseUserMemberExport baseUserMemberExport = BaseUserMemberExport
.builder()
.username(qppUser.getUsername())
.beforeMemberLevel(beforeMember.getMemberLevel())
.memberLevel(aftereMember.getMemberLevel())
.totalNumber(aftereMember.getTotalNumber() - beforeMember.getTotalNumber())
.rentFreeDays(aftereMember.getRentFreeDays() - beforeMember.getRentFreeDays())
.beforeDiscount(beforeMember.getDiscount())
.discount(aftereMember.getDiscount())
.status(1)
.crtTime(System.currentTimeMillis())
.crtId(Integer.valueOf(infoFromToken.getId()))
.crtName(infoFromToken.getUniqueName())
.memberName(qppUser.getRealname())
.source(1)
.build();
baseUserMemberExportBiz.insertSelective(baseUserMemberExport);
System.out.println(baseUserMemberExport);
} catch (Exception e) {
e.printStackTrace();
log.error("保存修改会员记录失败"+e.getMessage());
}
log.info("保存修改会员记录成功");
});
}
}
\ No newline at end of file
......@@ -52,6 +52,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
private final int BORDER_NUM=250;
private BaseUserMemberExport baseUserMemberExport;
public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO, Integer userId, String name) {
......@@ -256,4 +257,9 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
public void updateUserMemberExportDataStatus(Integer id) {
mapper.updateUserMemberExportDataStatusById(id, 1);
}
@Override
public void insertSelective(BaseUserMemberExport baseUserMemberExport){
mapper.insertSelective(baseUserMemberExport);
}
}
......@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
......@@ -13,6 +14,7 @@ import java.util.List;
* @email nishijjo@qq.com
* @date 2019-06-11 11:06:45
*/
@Repository
public interface BaseUserMemberLevelMapper extends Mapper<BaseUserMemberLevel> {
List<BaseUserMemberLevel> selectUserMembersLevelByLevels(@Param("levels") List<Integer> levels);
......
......@@ -342,7 +342,7 @@ public class AppUserController extends CommonBaseController{
}
@PostMapping("/bind")
private ObjectRestResponse accountBinding(@RequestBody AccountBindDTO accountBindDTO, HttpServletRequest request){
public ObjectRestResponse accountBinding(@RequestBody AccountBindDTO accountBindDTO, HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
return appUserLoginBiz.bindAccount(accountBindDTO, Integer.valueOf(infoFromToken.getId()), request);
......
......@@ -20,7 +20,8 @@
</update>
<select id="findExportDataPage" resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO">
select `id`,`member_level` as `memberLevel`,`member_name` as `memberName`,`rent_free_days` as `rentFreeDays`,`total_number` as `totalNumber`,`username`,`status`,`crt_name` as `crtName`,`crt_time`as `crtTime` from `base_user_member_export` where `is_del`=0
select `id`,`member_level` as `memberLevel`,`member_name` as `memberName`,`rent_free_days` as `rentFreeDays`,`total_number` as `totalNumber`,`username`,`status`,`crt_name` as `crtName`,`crt_time`as `crtTime` from `base_user_member_export`
where `is_del`=0 and source = 0
<if test="username != null and username != ''">
and `username`=#{username}
</if>
......
......@@ -72,7 +72,6 @@ public class ServiceTest {
}
@Test
public void handlerTeset() {
handler.execute("2019-09-29");
......
......@@ -99,6 +99,12 @@
<version>0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-app-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -9,6 +9,8 @@ import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.feign.ConfigFeign;
import com.xxfc.platform.universal.biz.UserMessage;
import com.xxfc.platform.universal.entity.IDCardInformation;
import com.xxfc.platform.universal.entity.IdInformation;
......@@ -17,6 +19,8 @@ import com.xxfc.platform.universal.service.PictureParsing.UserPictureParsing;
import com.xxfc.platform.universal.service.authenticationInterface.UserAuthentication;
import com.xxfc.platform.universal.utils.CertifHttpUtils;
import com.xxfc.platform.universal.utils.Validation;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.map.HashedMap;
......@@ -46,16 +50,22 @@ import java.util.*;
*/
@Service
@Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class CertificationService {
@Value("${certification.frequency:2}")
private Integer FREQUENCY;
@Autowired
private ConfigFeign configFeign;
@Autowired
private UserAuthentication authentication;
@Autowired
private IdInformationMapper idInformationMapper;
@Autowired
private UserFeign userFeign;
......@@ -65,6 +75,9 @@ public class CertificationService {
@Autowired
private UserPictureParsing userPictureParsing;
private String AUTHENTICATION_TYPE="100";
/**
* 一、身份证图片进行实名认证
*
......@@ -80,14 +93,14 @@ public class CertificationService {
}
//判断是否有填写身份证号
if (StringUtils.isBlank(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写证件号");
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写证件号");
}
if (!Validation.isIdCard(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.WRONG_FORMAT_OF_ID_CARD, "填写的证件格式错误");
return ObjectRestResponse.createFailedResult(ResultCode.WRONG_FORMAT_OF_ID_CARD, "证件格式错误");
}
//判断是有否填写名字
if (StringUtils.isBlank(idInformation.getName())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写姓名");
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写姓名");
}
//判断是否有正面照片
if (StringUtils.isBlank(idInformation.getFrontUrl())) {
......@@ -102,17 +115,18 @@ public class CertificationService {
//验证证件信息是否和填入的客户信息一致
String name = credentialsData.getName();
String number = credentialsData.getCode();
if (idInformation.getName().equals(name)) {
if (!idInformation.getName().replaceAll(" ","").equals(name)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "姓名不一致");
}
if (idInformation.getIdNumber().equals(number)) {
if (!idInformation.getIdNumber().replaceAll(" ","").equals(number)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "证件号不一致");
}
//判断是否超过认证次数
Example exa = new Example(IdInformation.class);
exa.createCriteria().andEqualTo("idNumber", number);
List<IdInformation> idInformatics = idInformationMapper.selectByExample(exa);
if (CollectionUtils.isNotEmpty(idInformatics) && idInformatics.size() > FREQUENCY) {
if (CollectionUtils.isNotEmpty(idInformatics) && idInformatics.size() >getCofig() ) {
log.error("该身份证已超过最大认证次数");
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "该身份证已超过最大认证次数");
}
......@@ -163,6 +177,25 @@ public class CertificationService {
}
/**
* 获取认证次数
* @return
*/
public Integer getCofig() {
List<Cofig> cofigs = null;
try {
cofigs = configFeign.getAllByType(AUTHENTICATION_TYPE).getData();
log.info("cofigs={}",cofigs);
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
}
if (CollectionUtils.isEmpty(cofigs)) {
return FREQUENCY;
}
return Integer.valueOf(cofigs.get(0).getParams());
}
/**
* 二、认证通过保存到数据库当中
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment