|
@@ -20,6 +20,7 @@
|
|
package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
+import cn.hutool.core.date.DatePattern;
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.core.util.IdcardUtil;
|
|
import cn.hutool.core.util.IdcardUtil;
|
|
@@ -77,7 +78,9 @@ import org.springframework.security.crypto.password.PasswordEncoder;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -193,7 +196,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
* 角色校验
|
|
* 角色校验
|
|
*
|
|
*
|
|
* @param roleName 角色名称
|
|
* @param roleName 角色名称
|
|
- * @param userDTO 用户dto
|
|
|
|
|
|
+ * @param userDTO 用户dto
|
|
* @param dept 部门
|
|
* @param dept 部门
|
|
* @return 校验错误信息
|
|
* @return 校验错误信息
|
|
*/
|
|
*/
|
|
@@ -431,9 +434,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
* 校验通用dto信息
|
|
* 校验通用dto信息
|
|
*
|
|
*
|
|
* @param commonUserDTOList 通用用户dto信息
|
|
* @param commonUserDTOList 通用用户dto信息
|
|
- * @param creator 创建人
|
|
|
|
- * @param errorMap 错误信息记录map
|
|
|
|
- * @param currentList 正确结果收集信息
|
|
|
|
|
|
+ * @param creator 创建人
|
|
|
|
+ * @param errorMap 错误信息记录map
|
|
|
|
+ * @param currentList 正确结果收集信息
|
|
*/
|
|
*/
|
|
private void checkoutCommonUserDTOInfo(List<CommonUserDTO> commonUserDTOList, HnqzUser
|
|
private void checkoutCommonUserDTOInfo(List<CommonUserDTO> commonUserDTOList, HnqzUser
|
|
creator, Map<String, String> errorMap, List<UserDTO> currentList) {
|
|
creator, Map<String, String> errorMap, List<UserDTO> currentList) {
|
|
@@ -441,7 +444,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
// 行编号
|
|
// 行编号
|
|
log.info("开始校验数据:{}", commonUserDTOList);
|
|
log.info("开始校验数据:{}", commonUserDTOList);
|
|
|
|
|
|
- if (commonUserDTOList.size() != 1){
|
|
|
|
|
|
+ if (commonUserDTOList.size() != 1) {
|
|
log.error("表中手机号重复");
|
|
log.error("表中手机号重复");
|
|
Set<String> idSet = commonUserDTOList.stream().map(dto -> dto.getId()).collect(Collectors.toSet());
|
|
Set<String> idSet = commonUserDTOList.stream().map(dto -> dto.getId()).collect(Collectors.toSet());
|
|
errorMap(errorMap, "表中手机号重复", JSONUtil.toJsonStr(idSet));
|
|
errorMap(errorMap, "表中手机号重复", JSONUtil.toJsonStr(idSet));
|
|
@@ -475,7 +478,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
// 校验部门下是否有启用的用户
|
|
// 校验部门下是否有启用的用户
|
|
int count = count(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, username)
|
|
int count = count(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, username)
|
|
- .eq(SysUser::getDeptId,creator.getDeptId())
|
|
|
|
|
|
+ .eq(SysUser::getDeptId, creator.getDeptId())
|
|
.eq(SysUser::getLockFlag, LockEnum.UN_LOCK.val()).eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
.eq(SysUser::getLockFlag, LockEnum.UN_LOCK.val()).eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
if (count != 0) {
|
|
if (count != 0) {
|
|
log.info("手机号被占用");
|
|
log.info("手机号被占用");
|
|
@@ -503,7 +506,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
userDTO.setCityCode("");
|
|
userDTO.setCityCode("");
|
|
} else {
|
|
} else {
|
|
String provinceCode = StrUtil.cleanBlank(commonUserDTO.getProvinceCode());
|
|
String provinceCode = StrUtil.cleanBlank(commonUserDTO.getProvinceCode());
|
|
- if (StringUtils.isEmpty(provinceCode)){
|
|
|
|
|
|
+ if (StringUtils.isEmpty(provinceCode)) {
|
|
log.error("省份编码为空");
|
|
log.error("省份编码为空");
|
|
errorMap(errorMap, "省份编码为空", commonUserDTO.getId());
|
|
errorMap(errorMap, "省份编码为空", commonUserDTO.getId());
|
|
}
|
|
}
|
|
@@ -518,7 +521,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
userDTO.setCity(city);
|
|
userDTO.setCity(city);
|
|
|
|
|
|
String cityCode = StrUtil.cleanBlank(commonUserDTO.getCityCode());
|
|
String cityCode = StrUtil.cleanBlank(commonUserDTO.getCityCode());
|
|
- if (StringUtils.isEmpty(cityCode)){
|
|
|
|
|
|
+ if (StringUtils.isEmpty(cityCode)) {
|
|
log.error("城市编码为空");
|
|
log.error("城市编码为空");
|
|
errorMap(errorMap, "城市编码为空", commonUserDTO.getId());
|
|
errorMap(errorMap, "城市编码为空", commonUserDTO.getId());
|
|
}
|
|
}
|
|
@@ -577,25 +580,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
String inputIdCardNumber = input.getIdCardNumber();
|
|
String inputIdCardNumber = input.getIdCardNumber();
|
|
String bankCardNumber = input.getBankCardNumber();
|
|
String bankCardNumber = input.getBankCardNumber();
|
|
|
|
|
|
- // 校验身份证上的年龄
|
|
|
|
- if (StringUtils.isNotEmpty(inputIdCardNumber)) {
|
|
|
|
- // 获取更新操作的用户角色
|
|
|
|
- List<Integer> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery()
|
|
|
|
- .eq(SysUserRole::getUserId, input.getUserId()))
|
|
|
|
- .stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toList());
|
|
|
|
- // 如果角色中包含全职和兼职就需要校验身份证年龄
|
|
|
|
- if (roles.contains(5) || roles.contains(6)) {
|
|
|
|
- int ageByIdCard = IdcardUtil.getAgeByIdCard(inputIdCardNumber);
|
|
|
|
- if (ageByIdCard < 18) {
|
|
|
|
- return R.failed("年龄未满十八");
|
|
|
|
- } else if (ageByIdCard > 65) {
|
|
|
|
- return R.failed("年龄已超过六十五");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
sysUser.setIdCardNumber(inputIdCardNumber);
|
|
sysUser.setIdCardNumber(inputIdCardNumber);
|
|
- if (StrUtil.isNotEmpty(bankCardNumber)){
|
|
|
|
|
|
+ if (StrUtil.isNotEmpty(bankCardNumber)) {
|
|
sysUser.setBankCardNumber(input.getBankCardNumber());
|
|
sysUser.setBankCardNumber(input.getBankCardNumber());
|
|
}
|
|
}
|
|
|
|
|
|
@@ -635,6 +621,27 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
resultMap.put("msg", "人员所在机构未配置结算信息");
|
|
resultMap.put("msg", "人员所在机构未配置结算信息");
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 校验身份证上的年龄
|
|
|
|
+ if (StringUtils.isNotEmpty(sysUser.getIdCardNumber())) {
|
|
|
|
+ // 获取更新操作的用户角色
|
|
|
|
+ List<Integer> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery()
|
|
|
|
+ .eq(SysUserRole::getUserId, sysUser.getUserId()))
|
|
|
|
+ .stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toList());
|
|
|
|
+ // 如果角色中包含全职和兼职就需要校验身份证年龄
|
|
|
|
+ if (roles.contains(5) || roles.contains(6)) {
|
|
|
|
+ int ageByIdCard = IdcardUtil.getAgeByIdCard(sysUser.getIdCardNumber());
|
|
|
|
+ if (ageByIdCard < 18) {
|
|
|
|
+ resultMap.put("msg", "年龄未满十八");
|
|
|
|
+ return resultMap;
|
|
|
|
+ } else if (ageByIdCard > 65) {
|
|
|
|
+ resultMap.put("msg", "年龄已超过六十五");
|
|
|
|
+ return resultMap;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
log.info("------开始认证------");
|
|
log.info("------开始认证------");
|
|
log.info("------认证渠道:税邦云------");
|
|
log.info("------认证渠道:税邦云------");
|
|
log.info("------认证人员姓名:------ {}", sysUser.getRealname());
|
|
log.info("------认证人员姓名:------ {}", sysUser.getRealname());
|
|
@@ -653,7 +660,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
model.setName(sysUser.getRealname());
|
|
model.setName(sysUser.getRealname());
|
|
model.setNotifyUrl("http://localhost:8808");
|
|
model.setNotifyUrl("http://localhost:8808");
|
|
boolean isPingAnBank = StrUtil.isNotEmpty(sysUser.getBankCardNumber());
|
|
boolean isPingAnBank = StrUtil.isNotEmpty(sysUser.getBankCardNumber());
|
|
- if (isPingAnBank){
|
|
|
|
|
|
+ if (isPingAnBank) {
|
|
model.setPayAccount(sysUser.getBankCardNumber());
|
|
model.setPayAccount(sysUser.getBankCardNumber());
|
|
}
|
|
}
|
|
model.setEnterpriseCode(sysDept.getTaxCode());
|
|
model.setEnterpriseCode(sysDept.getTaxCode());
|
|
@@ -679,7 +686,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
sysCertResultRecordMapper.insert(record);
|
|
sysCertResultRecordMapper.insert(record);
|
|
|
|
|
|
if (response.success()) {
|
|
if (response.success()) {
|
|
- sysUser.setCertStatus(isPingAnBank? TaxHelperCertStatus.UNCHECKED_BIND.getCode() : TaxHelperCertStatus.ADD_MEMBER.getCode());
|
|
|
|
|
|
+ sysUser.setCertStatus(isPingAnBank ? TaxHelperCertStatus.UNCHECKED_BIND.getCode() : TaxHelperCertStatus.ADD_MEMBER.getCode());
|
|
resultMap.put("msg", "增员成功");
|
|
resultMap.put("msg", "增员成功");
|
|
} else {
|
|
} else {
|
|
log.info("税邦云增员失败:{},{},原因是:{}", sysUser.getRealname(), sysUser.getUsername(),
|
|
log.info("税邦云增员失败:{},{},原因是:{}", sysUser.getRealname(), sysUser.getUsername(),
|
|
@@ -701,6 +708,53 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
resultMap.put("msg", "人员所在机构未配置结算信息");
|
|
resultMap.put("msg", "人员所在机构未配置结算信息");
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 校验身份证上的年龄
|
|
|
|
+ if (StringUtils.isNotEmpty(sysUser.getIdCardNumber())) {
|
|
|
|
+ // 获取更新操作的用户角色
|
|
|
|
+ List<Integer> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery()
|
|
|
|
+ .eq(SysUserRole::getUserId, sysUser.getUserId()))
|
|
|
|
+ .stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toList());
|
|
|
|
+ // 如果角色中包含全职和兼职就需要校验身份证年龄
|
|
|
|
+ if (roles.contains(5) || roles.contains(6)) {
|
|
|
|
+ int ageByIdCard = IdcardUtil.getAgeByIdCard(sysUser.getIdCardNumber());
|
|
|
|
+ if (ageByIdCard < 18) {
|
|
|
|
+ resultMap.put("msg", "年龄未满十八");
|
|
|
|
+ return resultMap;
|
|
|
|
+ } else {
|
|
|
|
+ // 校验身份证上的年龄 60周岁前15天
|
|
|
|
+
|
|
|
|
+ boolean over60 = false;
|
|
|
|
+ log.warn("ageByIdCard:{}", ageByIdCard);
|
|
|
|
+ if (ageByIdCard == 59) {
|
|
|
|
+ String birth = IdcardUtil.getBirth(sysUser.getIdCardNumber());
|
|
|
|
+ log.warn("birth string:{}", birth);
|
|
|
|
+ LocalDate birthday = LocalDate.parse(birth, DatePattern.PURE_DATE_FORMATTER);
|
|
|
|
+
|
|
|
|
+ // 获取今年的生日
|
|
|
|
+ LocalDate thisBirthday = LocalDate.of(LocalDate.now().getYear(), birthday.getMonthValue(), birthday.getDayOfMonth());
|
|
|
|
+ LocalDate limit = thisBirthday.minus(15, ChronoUnit.DAYS);
|
|
|
|
+ log.warn("this year birthday:{}, before 15 days: {}", thisBirthday, limit);
|
|
|
|
+
|
|
|
|
+ if (LocalDate.now().isAfter(limit)) {
|
|
|
|
+ over60 = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (ageByIdCard >= 60) {
|
|
|
|
+ over60 = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (over60) {
|
|
|
|
+ resultMap.put("msg", "年龄已超过六十");
|
|
|
|
+ return resultMap;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
log.info("------开始认证------");
|
|
log.info("------开始认证------");
|
|
log.info("------认证渠道:人力家------");
|
|
log.info("------认证渠道:人力家------");
|
|
log.info("------认证人员姓名:------ {}", sysUser.getRealname());
|
|
log.info("------认证人员姓名:------ {}", sysUser.getRealname());
|