|
@@ -1,12 +1,19 @@
|
|
|
package com.citu.module.menduner.system.service.user;
|
|
|
|
|
|
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.citu.framework.baiduaip.core.AipOcrClient;
|
|
|
+import com.citu.framework.baiduaip.core.ocr.IDCardInfo;
|
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
|
import com.citu.framework.common.util.object.BeanUtils;
|
|
|
+import com.citu.module.menduner.common.util.LoginUserContext;
|
|
|
+import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.AppUserAuthRespVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.AppUserAuthSaveReqVO;
|
|
|
import com.citu.module.menduner.system.controller.base.user.auth.UserAuthPageReqVO;
|
|
|
import com.citu.module.menduner.system.controller.base.user.auth.UserAuthSaveReqVO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.user.UserAuthDO;
|
|
|
import com.citu.module.menduner.system.dal.mysql.user.UserAuthMapper;
|
|
|
+import com.citu.module.menduner.system.enums.enterprise.EnterpriseAuthStatusEnum;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
@@ -25,13 +32,16 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.USER_AUTH
|
|
|
public class UserAuthServiceImpl implements UserAuthService {
|
|
|
|
|
|
@Resource
|
|
|
- private UserAuthMapper userAuthMapper;
|
|
|
+ private UserAuthMapper mapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AipOcrClient aipOcrClient;
|
|
|
|
|
|
@Override
|
|
|
public Long createUserAuth(UserAuthSaveReqVO createReqVO) {
|
|
|
// 插入
|
|
|
UserAuthDO userAuth = BeanUtils.toBean(createReqVO, UserAuthDO.class);
|
|
|
- userAuthMapper.insert(userAuth);
|
|
|
+ mapper.insert(userAuth);
|
|
|
// 返回
|
|
|
return userAuth.getId();
|
|
|
}
|
|
@@ -42,7 +52,7 @@ public class UserAuthServiceImpl implements UserAuthService {
|
|
|
validateUserAuthExists(updateReqVO.getId());
|
|
|
// 更新
|
|
|
UserAuthDO updateObj = BeanUtils.toBean(updateReqVO, UserAuthDO.class);
|
|
|
- userAuthMapper.updateById(updateObj);
|
|
|
+ mapper.updateById(updateObj);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -50,23 +60,91 @@ public class UserAuthServiceImpl implements UserAuthService {
|
|
|
// 校验存在
|
|
|
validateUserAuthExists(id);
|
|
|
// 删除
|
|
|
- userAuthMapper.deleteById(id);
|
|
|
+ mapper.deleteById(id);
|
|
|
}
|
|
|
|
|
|
private void validateUserAuthExists(Long id) {
|
|
|
- if (userAuthMapper.selectById(id) == null) {
|
|
|
+ if (mapper.selectById(id) == null) {
|
|
|
throw exception(USER_AUTH_NOT_EXISTS);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public UserAuthDO getUserAuth(Long id) {
|
|
|
- return userAuthMapper.selectById(id);
|
|
|
+ return mapper.selectById(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public PageResult<UserAuthDO> getUserAuthPage(UserAuthPageReqVO pageReqVO) {
|
|
|
- return userAuthMapper.selectPage(pageReqVO);
|
|
|
+ return mapper.selectPage(pageReqVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AppUserAuthRespVO get() {
|
|
|
+ UserAuthDO userAuth =
|
|
|
+ mapper.selectOne(UserAuthDO::getUserId, LoginUserContext.getUserId());
|
|
|
+ return BeanUtils.toBean(userAuth, AppUserAuthRespVO.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void save(AppUserAuthSaveReqVO reqVO) {
|
|
|
+ Long userId = LoginUserContext.getUserId();
|
|
|
+ UserAuthDO entity =
|
|
|
+ mapper.selectOne(UserAuthDO::getUserId, LoginUserContext.getUserId());
|
|
|
+ if (null == entity) {
|
|
|
+ UserAuthDO auth = BeanUtils.toBean(reqVO, UserAuthDO.class);
|
|
|
+ auth.setId(null);
|
|
|
+ auth.setUserId(userId);
|
|
|
+ auth.setFrontUrl(reqVO.getFrontUrl());
|
|
|
+ auth.setBackUrl(reqVO.getBackUrl());
|
|
|
+ auth.setStatus(EnterpriseAuthStatusEnum.AUDITING.getStatus());
|
|
|
+ IDCardInfo cardInfo = aipOcrClient.idcard(reqVO.getFrontUrl(), reqVO.getBackUrl());
|
|
|
+ if(null != cardInfo) {
|
|
|
+ fill(cardInfo,auth);
|
|
|
+ }
|
|
|
+
|
|
|
+ mapper.insert(auth);
|
|
|
+ } else {
|
|
|
+ // 重新提交
|
|
|
+ entity.setFrontUrl(reqVO.getFrontUrl());
|
|
|
+ entity.setBackUrl(reqVO.getBackUrl());
|
|
|
+ entity.setStatus(EnterpriseAuthStatusEnum.AUDITING.getStatus());
|
|
|
+ IDCardInfo cardInfo = aipOcrClient.idcard(reqVO.getFrontUrl(), reqVO.getBackUrl());
|
|
|
+ if(null != cardInfo) {
|
|
|
+ fill(cardInfo,entity);
|
|
|
+ }
|
|
|
+ mapper.updateById(entity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 填充身份证信息 **/
|
|
|
+ public void fill(IDCardInfo cardInfo, UserAuthDO auth) {
|
|
|
+ if(null != cardInfo) {
|
|
|
+ auth.setName(cardInfo.getName());
|
|
|
+ auth.setGender(cardInfo.getGender());
|
|
|
+ auth.setEthnicity(cardInfo.getEthnicity());
|
|
|
+ auth.setBirthDate(cardInfo.getBirthDate().atStartOfDay());
|
|
|
+ auth.setAddress(cardInfo.getAddress());
|
|
|
+ auth.setIdNumber(cardInfo.getIdNumber());
|
|
|
+ auth.setIssuingAuthority(cardInfo.getIssuingAuthority());
|
|
|
+ auth.setIssueDate(cardInfo.getIssueDate().atStartOfDay());
|
|
|
+ auth.setExpiryDate(cardInfo.getExpiryDate().atStartOfDay());
|
|
|
+ auth.setStatus(EnterpriseAuthStatusEnum.APPROVED.getStatus());
|
|
|
+ auth.setReason(EnterpriseAuthStatusEnum.APPROVED.name());
|
|
|
+ }else {
|
|
|
+ auth.setName(null);
|
|
|
+ auth.setGender(null);
|
|
|
+ auth.setEthnicity(null);
|
|
|
+ auth.setBirthDate(null);
|
|
|
+ auth.setAddress(null);
|
|
|
+ auth.setIdNumber(null);
|
|
|
+ auth.setIssuingAuthority(null);
|
|
|
+ auth.setIssueDate(null);
|
|
|
+ auth.setExpiryDate(null);
|
|
|
+ auth.setStatus(EnterpriseAuthStatusEnum.REJECT.getStatus());
|
|
|
+ auth.setReason("身份证信息解析失败,请重新按要求上传清晰的照片");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|