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 { ...@@ -36,4 +36,11 @@ public class UserMemberSaveDTO {
*/ */
@ApiModelProperty(value = "剩余天数") @ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays; private Integer rentFreeDays;
/**
* 剩余天数
*/
@ApiModelProperty(value = "剩余天数")
private Integer source;
} }
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import lombok.AllArgsConstructor; import lombok.*;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Table; import javax.persistence.Table;
...@@ -20,6 +17,7 @@ import java.io.Serializable; ...@@ -20,6 +17,7 @@ import java.io.Serializable;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Table(name = "base_user_member_export") @Table(name = "base_user_member_export")
@ToString
public class BaseUserMemberExport implements Serializable { public class BaseUserMemberExport implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
...@@ -42,5 +40,12 @@ public class BaseUserMemberExport implements Serializable { ...@@ -42,5 +40,12 @@ public class BaseUserMemberExport implements Serializable {
private Integer crtId; private Integer crtId;
@Column(name = "member_name") @Column(name = "member_name")
private String memberName; 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; ...@@ -4,18 +4,20 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO; import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; 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.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper; import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo; 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 com.github.wxiaoqi.security.common.exception.BaseException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.aop.framework.AopContext; import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember; import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper; import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
...@@ -23,12 +25,14 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -23,12 +25,14 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* 用户会员表 * 用户会员表
...@@ -43,11 +47,25 @@ import java.util.List; ...@@ -43,11 +47,25 @@ import java.util.List;
public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMember> { public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMember> {
@Autowired @Autowired
AppUserDetailBiz detailBiz; private AppUserDetailBiz detailBiz;
@Autowired @Autowired
private BaseUserMemberLevelMapper BaseUserMemberLevelMapper; 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 // @Autowired
// private TaskExecutor taskExecutor; // private TaskExecutor taskExecutor;
// //
...@@ -224,7 +242,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -224,7 +242,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
* @param userMemberDTO * @param userMemberDTO
*/ */
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) @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(); Integer userId = userMemberDTO.getUserId();
BaseUserMember baseUserMember = new BaseUserMember(); BaseUserMember baseUserMember = new BaseUserMember();
...@@ -234,7 +252,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -234,7 +252,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
if (totalNumber < freeDays) { if (totalNumber < freeDays) {
freeDays = totalNumber; freeDays = totalNumber;
} }
if (userMemberDTO.getMemberLevel() != null) { if (userMemberDTO.getMemberLevel() != null) {
Example exa = new Example(BaseUserMemberLevel.class); Example exa = new Example(BaseUserMemberLevel.class);
Example.Criteria criteria = exa.createCriteria(); Example.Criteria criteria = exa.createCriteria();
...@@ -254,6 +271,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -254,6 +271,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer buyCount = userMemberDTO.getBuyCount() == null ? 1 : userMemberDTO.getBuyCount(); Integer buyCount = userMemberDTO.getBuyCount() == null ? 1 : userMemberDTO.getBuyCount();
UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId()); UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId());
//保存修改记录
if (userMemberVo == null) { if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays); baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(buyCount); baseUserMember.setBuyCount(buyCount);
...@@ -277,6 +295,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -277,6 +295,10 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
userVo1.setIsMember(1); userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1); detailBiz.updUuserInfoById(userVo1);
} }
log.info("保存修改记录");
setModifyData(userMemberVo,baseUserMember);
log.info("保存成功");
} }
...@@ -286,4 +308,36 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -286,4 +308,36 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
criteria.andIn("userId", userIds); criteria.andIn("userId", userIds);
mapper.deleteByExample(example); 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, ...@@ -52,6 +52,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
private ThreadPoolTaskExecutor threadPoolTaskExecutor; private ThreadPoolTaskExecutor threadPoolTaskExecutor;
private final int BORDER_NUM=250; private final int BORDER_NUM=250;
private BaseUserMemberExport baseUserMemberExport;
public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO, Integer userId, String name) { public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO, Integer userId, String name) {
...@@ -256,4 +257,9 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -256,4 +257,9 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
public void updateUserMemberExportDataStatus(Integer id) { public void updateUserMemberExportDataStatus(Integer id) {
mapper.updateUserMemberExportDataStatusById(id, 1); mapper.updateUserMemberExportDataStatusById(id, 1);
} }
@Override
public void insertSelective(BaseUserMemberExport baseUserMemberExport){
mapper.insertSelective(baseUserMemberExport);
}
} }
...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper; ...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -13,6 +14,7 @@ import java.util.List; ...@@ -13,6 +14,7 @@ import java.util.List;
* @email nishijjo@qq.com * @email nishijjo@qq.com
* @date 2019-06-11 11:06:45 * @date 2019-06-11 11:06:45
*/ */
@Repository
public interface BaseUserMemberLevelMapper extends Mapper<BaseUserMemberLevel> { public interface BaseUserMemberLevelMapper extends Mapper<BaseUserMemberLevel> {
List<BaseUserMemberLevel> selectUserMembersLevelByLevels(@Param("levels") List<Integer> levels); List<BaseUserMemberLevel> selectUserMembersLevelByLevels(@Param("levels") List<Integer> levels);
......
...@@ -342,7 +342,7 @@ public class AppUserController extends CommonBaseController{ ...@@ -342,7 +342,7 @@ public class AppUserController extends CommonBaseController{
} }
@PostMapping("/bind") @PostMapping("/bind")
private ObjectRestResponse accountBinding(@RequestBody AccountBindDTO accountBindDTO, HttpServletRequest request){ public ObjectRestResponse accountBinding(@RequestBody AccountBindDTO accountBindDTO, HttpServletRequest request){
try { try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
return appUserLoginBiz.bindAccount(accountBindDTO, Integer.valueOf(infoFromToken.getId()), request); return appUserLoginBiz.bindAccount(accountBindDTO, Integer.valueOf(infoFromToken.getId()), request);
......
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
</update> </update>
<select id="findExportDataPage" resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO"> <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 != ''"> <if test="username != null and username != ''">
and `username`=#{username} and `username`=#{username}
</if> </if>
......
...@@ -72,7 +72,6 @@ public class ServiceTest { ...@@ -72,7 +72,6 @@ public class ServiceTest {
} }
@Test @Test
public void handlerTeset() { public void handlerTeset() {
handler.execute("2019-09-29"); handler.execute("2019-09-29");
......
...@@ -99,6 +99,12 @@ ...@@ -99,6 +99,12 @@
<version>0.2</version> <version>0.2</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-app-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -9,6 +9,8 @@ import com.github.wxiaoqi.security.common.constant.RestCode; ...@@ -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.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; 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.biz.UserMessage;
import com.xxfc.platform.universal.entity.IDCardInformation; import com.xxfc.platform.universal.entity.IDCardInformation;
import com.xxfc.platform.universal.entity.IdInformation; import com.xxfc.platform.universal.entity.IdInformation;
...@@ -17,6 +19,8 @@ import com.xxfc.platform.universal.service.PictureParsing.UserPictureParsing; ...@@ -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.service.authenticationInterface.UserAuthentication;
import com.xxfc.platform.universal.utils.CertifHttpUtils; import com.xxfc.platform.universal.utils.CertifHttpUtils;
import com.xxfc.platform.universal.utils.Validation; import com.xxfc.platform.universal.utils.Validation;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.map.HashedMap; import org.apache.commons.collections4.map.HashedMap;
...@@ -46,16 +50,22 @@ import java.util.*; ...@@ -46,16 +50,22 @@ import java.util.*;
*/ */
@Service @Service
@Slf4j @Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class CertificationService { public class CertificationService {
@Value("${certification.frequency:2}") @Value("${certification.frequency:2}")
private Integer FREQUENCY; private Integer FREQUENCY;
@Autowired
private ConfigFeign configFeign;
@Autowired @Autowired
private UserAuthentication authentication; private UserAuthentication authentication;
@Autowired @Autowired
private IdInformationMapper idInformationMapper; private IdInformationMapper idInformationMapper;
@Autowired @Autowired
private UserFeign userFeign; private UserFeign userFeign;
...@@ -65,6 +75,9 @@ public class CertificationService { ...@@ -65,6 +75,9 @@ public class CertificationService {
@Autowired @Autowired
private UserPictureParsing userPictureParsing; private UserPictureParsing userPictureParsing;
private String AUTHENTICATION_TYPE="100";
/** /**
* 一、身份证图片进行实名认证 * 一、身份证图片进行实名认证
* *
...@@ -80,14 +93,14 @@ public class CertificationService { ...@@ -80,14 +93,14 @@ public class CertificationService {
} }
//判断是否有填写身份证号 //判断是否有填写身份证号
if (StringUtils.isBlank(idInformation.getIdNumber())) { if (StringUtils.isBlank(idInformation.getIdNumber())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写证件号"); return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写证件号");
} }
if (!Validation.isIdCard(idInformation.getIdNumber())) { 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())) { if (StringUtils.isBlank(idInformation.getName())) {
return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写姓名"); return ObjectRestResponse.createFailedResult(ResultCode.INCOMPLETE_DATA, "填写姓名");
} }
//判断是否有正面照片 //判断是否有正面照片
if (StringUtils.isBlank(idInformation.getFrontUrl())) { if (StringUtils.isBlank(idInformation.getFrontUrl())) {
...@@ -102,17 +115,18 @@ public class CertificationService { ...@@ -102,17 +115,18 @@ public class CertificationService {
//验证证件信息是否和填入的客户信息一致 //验证证件信息是否和填入的客户信息一致
String name = credentialsData.getName(); String name = credentialsData.getName();
String number = credentialsData.getCode(); String number = credentialsData.getCode();
if (idInformation.getName().equals(name)) { if (!idInformation.getName().replaceAll(" ","").equals(name)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "姓名不一致"); return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "姓名不一致");
} }
if (idInformation.getIdNumber().equals(number)) { if (!idInformation.getIdNumber().replaceAll(" ","").equals(number)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "证件号不一致"); return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "证件号不一致");
} }
//判断是否超过认证次数 //判断是否超过认证次数
Example exa = new Example(IdInformation.class); Example exa = new Example(IdInformation.class);
exa.createCriteria().andEqualTo("idNumber", number); exa.createCriteria().andEqualTo("idNumber", number);
List<IdInformation> idInformatics = idInformationMapper.selectByExample(exa); List<IdInformation> idInformatics = idInformationMapper.selectByExample(exa);
if (CollectionUtils.isNotEmpty(idInformatics) && idInformatics.size() > FREQUENCY) {
if (CollectionUtils.isNotEmpty(idInformatics) && idInformatics.size() >getCofig() ) {
log.error("该身份证已超过最大认证次数"); log.error("该身份证已超过最大认证次数");
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "该身份证已超过最大认证次数"); return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "该身份证已超过最大认证次数");
} }
...@@ -163,6 +177,25 @@ public class CertificationService { ...@@ -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