|
@@ -4,6 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
@@ -15,12 +17,14 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.config.TaxNotifyConfig;
|
|
|
import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.SysUserExtRecord;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.model.GigBaseInfoModel;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.model.GigInfoModel;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.model.GigUserInfoModel;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.GigChannelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
|
|
@@ -30,14 +34,18 @@ import com.qunzhixinxi.hnqz.admin.enums.MemberType;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PayChannel;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.RenlijiaCertStatus;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysUserExtRecordService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.rabbitmq.client.RabbitMqClient;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
@@ -79,6 +87,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
|
|
|
private final SysDeptService sysDeptService;
|
|
|
|
|
|
+ private final SysUserExtRecordService sysUserExtRecordService;
|
|
|
+
|
|
|
private final RabbitMqClient rabbitMqClient;
|
|
|
|
|
|
private final UpmsConfig upmsConfig;
|
|
@@ -87,6 +97,21 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
|
|
|
private final RedisTemplate redisTemplate;
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询会员认证结果接口url
|
|
|
+ */
|
|
|
+ private static final String GIG_CERT_STATE = "/gig/v2/operation/cert/state";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 签约接口url
|
|
|
+ */
|
|
|
+ private static final String GIG_CERT_ACTION_SIGN_UP = "/gig/v2/operation/cert/action/sign-up";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 税邦云绑卡url
|
|
|
+ */
|
|
|
+ private static final String GIG_CERT_ACTION_BANK_CARD = "/gig/v2/operation/cert/action/bank-card";
|
|
|
+
|
|
|
/**
|
|
|
* 查询用户签约认证信息
|
|
|
*
|
|
@@ -107,6 +132,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
* @param gigTypeList
|
|
|
* @return
|
|
|
*/
|
|
|
+ @Deprecated
|
|
|
@Override
|
|
|
public List<SysUserSub> listUserSignCert(Integer userId, List<GigTypeEnum> gigTypeList) {
|
|
|
List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
|
|
@@ -119,11 +145,13 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
* 查询用户签约认证信息
|
|
|
*
|
|
|
* @param userId
|
|
|
+ * @param deptId
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<SysUserSubVO> listUserSignCertForApi(Integer userId) {
|
|
|
+ public List<SysUserSubVO> listUserSignCertForApi(Integer userId, Integer deptId) {
|
|
|
List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getDeptId, deptId)
|
|
|
.eq(SysUserSub::getUserId, userId));
|
|
|
if (CollUtil.isNotEmpty(userSubList)) {
|
|
|
List<SysUserSubVO> resultList = new ArrayList<>();
|
|
@@ -142,14 +170,6 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
case OLADING:
|
|
|
userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
break;
|
|
|
- case JIN_YUAN:
|
|
|
- // 渠道是金园,则展示阿拉钉的状态
|
|
|
- userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
- break;
|
|
|
- case XIN_TAI_ZI:
|
|
|
- // 渠道是河南薪泰梓,则展示阿拉钉的状态
|
|
|
- userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
- break;
|
|
|
default:
|
|
|
}
|
|
|
|
|
@@ -160,6 +180,32 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询用户认证状态
|
|
|
+ *
|
|
|
+ * @param idCard 身份证号
|
|
|
+ * @param enterprisCode 税号
|
|
|
+ * @param subjectChannel 渠道类型
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> listCertInfo(String idCard, String enterprisCode, List<SubjectLocation> subjectChannel) {
|
|
|
+ Map<String, Object> params = new HashMap<>(3);
|
|
|
+ params.put("idCard", idCard);
|
|
|
+ params.put("enterprisCode", enterprisCode);
|
|
|
+ params.put("subjectChannel", subjectChannel);
|
|
|
+ String postResult = HttpUtil.post(upmsConfig.getGigServiceUrl() + GIG_CERT_STATE, JSONUtil.toJsonStr(params));
|
|
|
+ log.info("查询用户认证状态返回:{}", postResult);
|
|
|
+ if (JSONUtil.isJsonObj(postResult)) {
|
|
|
+ JSONObject jsonResult = JSONUtil.parseObj(postResult);
|
|
|
+ if (CommonConstants.SUCCESS.equals(jsonResult.getInt("code"))) {
|
|
|
+ return jsonResult.getJSONObject("data");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 保存用户基础信息
|
|
|
*
|
|
@@ -181,52 +227,160 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
updateUser.setIdCardNumber(userSignCertDTO.getIdCardNumber());
|
|
|
updateUser.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
updateUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+ updateUser.setUpdateTime(LocalDateTime.now());
|
|
|
sysUserService.updateById(updateUser);
|
|
|
}
|
|
|
// 更新用户签约认证主体信息
|
|
|
- userSignCertDTO.getGigTypeList().forEach(gigType -> {
|
|
|
- // 税邦云单独设置渠道类型
|
|
|
- GigChannelEnum gigChannel;
|
|
|
- if (GigTypeEnum.TAX_HELPOR.equals(gigType)) {
|
|
|
- // 读取用户所认证的企业的结算渠道
|
|
|
- SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.<SysDeptSub>lambdaQuery()
|
|
|
- .eq(SysDeptSub::getDeptId, queryUser.getDeptId())
|
|
|
- .eq(SysDeptSub::getSubjectType, GigTypeEnum.TAX_HELPOR.getCode())
|
|
|
- .eq(SysDeptSub::getEnableFlag, SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode()));
|
|
|
- if (deptSub != null) {
|
|
|
- gigChannel = GigChannelEnum.resolve(Integer.parseInt(deptSub.getSubjectType()));
|
|
|
- } else {
|
|
|
- gigChannel = GigChannelEnum.DEFAULT;
|
|
|
- }
|
|
|
+ // 税邦云单独设置渠道类型
|
|
|
+ SubjectLocation subjectLocation = userSignCertDTO.getSubjectLocation();
|
|
|
+ GigChannelEnum gigChannel;
|
|
|
+ if (GigTypeEnum.TAX_HELPOR.equals(subjectLocation.getGigType())) {
|
|
|
+ // 读取用户所认证的企业的结算渠道
|
|
|
+ SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.<SysDeptSub>lambdaQuery()
|
|
|
+ .eq(SysDeptSub::getDeptId, queryUser.getDeptId())
|
|
|
+ .eq(SysDeptSub::getSubjectType, subjectLocation.getGigType().getCode())
|
|
|
+ .eq(SysDeptSub::getSubjectLocation, subjectLocation)
|
|
|
+ .eq(SysDeptSub::getEnableFlag, SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode()));
|
|
|
+ if (deptSub != null) {
|
|
|
+ gigChannel = GigChannelEnum.resolve(Integer.parseInt(deptSub.getSubjectType()));
|
|
|
} else {
|
|
|
gigChannel = GigChannelEnum.DEFAULT;
|
|
|
}
|
|
|
- SysUserSub queryUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
- .eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
- .eq(SysUserSub::getGigType, gigType));
|
|
|
- if (queryUserSub != null) {
|
|
|
- SysUserSub updateUserSub = new SysUserSub();
|
|
|
- updateUserSub.setId(queryUserSub.getId());
|
|
|
- updateUserSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
- updateUserSub.setGigChannel(gigChannel);
|
|
|
- updateUserSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
- updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
- updateUserSub.setUpdateUser(operateUserId);
|
|
|
- sysUserSubService.updateById(updateUserSub);
|
|
|
- } else {
|
|
|
- SysUserSub userSub = new SysUserSub();
|
|
|
- userSub.setUserId(userSignCertDTO.getUserId());
|
|
|
- userSub.setDeptId(queryUser.getDeptId());
|
|
|
- userSub.setGigType(gigType);
|
|
|
- userSub.setGigChannel(gigChannel);
|
|
|
- userSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
- userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
- userSub.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
- userSub.setCreateUser(operateUserId);
|
|
|
- userSub.setCreateTime(LocalDateTime.now());
|
|
|
- sysUserSubService.save(userSub);
|
|
|
+ } else {
|
|
|
+ gigChannel = GigChannelEnum.DEFAULT;
|
|
|
+ }
|
|
|
+ SysUserSub queryUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
+ .eq(SysUserSub::getDeptId, queryUser.getDeptId())
|
|
|
+ .eq(SysUserSub::getGigType, subjectLocation.getGigType())
|
|
|
+ .eq(SysUserSub::getSubjectLocation, subjectLocation));
|
|
|
+ if (queryUserSub != null) {
|
|
|
+ SysUserSub updateUserSub = new SysUserSub();
|
|
|
+ updateUserSub.setId(queryUserSub.getId());
|
|
|
+ updateUserSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
+ updateUserSub.setGigChannel(gigChannel);
|
|
|
+ updateUserSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+ updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
+ updateUserSub.setUpdateUser(operateUserId);
|
|
|
+ sysUserSubService.updateById(updateUserSub);
|
|
|
+ } else {
|
|
|
+ SysUserSub userSub = new SysUserSub();
|
|
|
+ userSub.setUserId(userSignCertDTO.getUserId());
|
|
|
+ userSub.setDeptId(queryUser.getDeptId());
|
|
|
+ userSub.setGigType(subjectLocation.getGigType());
|
|
|
+ userSub.setGigChannel(gigChannel);
|
|
|
+ userSub.setSubjectLocation(userSignCertDTO.getSubjectLocation());
|
|
|
+ userSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
+ userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+ userSub.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
+ userSub.setCreateUser(operateUserId);
|
|
|
+ userSub.setCreateTime(LocalDateTime.now());
|
|
|
+ sysUserSubService.save(userSub);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 签约/增员
|
|
|
+ *
|
|
|
+ * @param userSignCertDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R<?> toSign(UserSignCertDTO userSignCertDTO) {
|
|
|
+ Integer userId = userSignCertDTO.getUserId();
|
|
|
+
|
|
|
+ // 根据用户id查询用户信息
|
|
|
+ SysUser sysUser = sysUserService.getById(userId);
|
|
|
+ if (sysUser == null) {
|
|
|
+ return R.failed("用户不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询userSub
|
|
|
+ SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getDeptId, sysUser.getDeptId())
|
|
|
+ .eq(SysUserSub::getUserId, userId)
|
|
|
+ .eq(SysUserSub::getSubjectLocation, userSignCertDTO.getSubjectLocation()));
|
|
|
+ if (userSub == null) {
|
|
|
+ return R.failed("用户sub数据不存在");
|
|
|
+ }
|
|
|
+ // 判断是否已签约/增员
|
|
|
+ if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.TAX_HELPOR)) {
|
|
|
+ if (userSub.getCertStatus() > TaxHelperCertStatus.UN_CERT.getCode()) {
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ } else if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.OLADING)) {
|
|
|
+ if (OladingCertStatus.SIGNED.getCode().equals(String.valueOf(userSub.getCertStatus()))
|
|
|
+ || OladingCertStatus.SIGNING.getCode().equals(String.valueOf(userSub.getCertStatus()))
|
|
|
+ || OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
|
+ return R.ok(MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(userSub.getCertStatus()))).build());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询dept
|
|
|
+ SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
+
|
|
|
+ // 发起签约/增员
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("enterpriseCode", dept.getTaxCode());
|
|
|
+ params.put("subjectLocation", userSub.getSubjectLocation().name());
|
|
|
+ params.put("subjectChannel", userSub.getGigChannel().name());
|
|
|
+ params.put("realName", sysUser.getRealname());
|
|
|
+ params.put("phone", sysUser.getUsername());
|
|
|
+ params.put("bankPhone", userSub.getBankPhone());
|
|
|
+ params.put("bankCard", userSub.getBankCardNumber());
|
|
|
+ params.put("idCard", sysUser.getIdCardNumber());
|
|
|
+ params.put("endType", "CSO");
|
|
|
+ params.put("email", "service@yaoyi.net");
|
|
|
+ params.put("address", "北京市房山区");
|
|
|
+
|
|
|
+ String postResult = HttpUtil.post(upmsConfig.getGigServiceUrl() + GIG_CERT_ACTION_SIGN_UP, JSONUtil.toJsonStr(params));
|
|
|
+ log.info("签约/增员,req={}, resp={}", JSONUtil.toJsonStr(params), postResult);
|
|
|
+
|
|
|
+ String message = "增员/签约失败";
|
|
|
+ int certStatus = 0;
|
|
|
+ boolean successFlag = false;
|
|
|
+ String requestId = null;
|
|
|
+ if (JSONUtil.isJsonObj(postResult)) {
|
|
|
+ JSONObject jsonResult = JSONUtil.parseObj(postResult);
|
|
|
+ if (jsonResult.getInt("code") == 0) {
|
|
|
+ JSONObject data = jsonResult.getJSONObject("data");
|
|
|
+ if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.TAX_HELPOR)) {
|
|
|
+ if ("2000".equals(data.getStr("code"))) {
|
|
|
+ successFlag = true;
|
|
|
+ certStatus = TaxHelperCertStatus.ADD_MEMBER.getCode();
|
|
|
+ }
|
|
|
+ message = data.getStr("message");
|
|
|
+ } else if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.OLADING)) {
|
|
|
+ if ("0".equals(data.getStr("code"))) {
|
|
|
+ successFlag = true;
|
|
|
+ certStatus = Integer.parseInt(OladingCertStatus.SIGNING.getCode());
|
|
|
+ requestId = data.getStr("requestId");
|
|
|
+ } else if ("1004".equals(data.getStr("code"))) {
|
|
|
+ successFlag = true;
|
|
|
+ certStatus = Integer.parseInt(OladingCertStatus.SIGNING.getCode());
|
|
|
+ }
|
|
|
+ message = data.getStr("message");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改userSub状态
|
|
|
+ SysUserSub updateUserSub = new SysUserSub();
|
|
|
+ updateUserSub.setId(userSub.getId());
|
|
|
+ updateUserSub.setCertStatus(certStatus);
|
|
|
+ updateUserSub.setCertRemark("签约/增员:" + message);
|
|
|
+ updateUserSub.setRequestId(requestId);
|
|
|
+ updateUserSub.setUpdateUser(SecurityUtils.getUser().getId());
|
|
|
+ updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
+ sysUserSubService.updateById(updateUserSub);
|
|
|
+
|
|
|
+ if (successFlag) {
|
|
|
+ if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.OLADING)) {
|
|
|
+ return R.ok(MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(certStatus))).build());
|
|
|
}
|
|
|
- });
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ return R.failed(message);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -237,11 +391,13 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void signAgreement(UserSignCertDTO userSignCertDTO) {
|
|
|
+ SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
|
|
|
LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
updateWrapper.eq(SysUserSub::getUserId, userSignCertDTO.getUserId());
|
|
|
- if (CollUtil.isNotEmpty(userSignCertDTO.getGigTypeList())) {
|
|
|
- updateWrapper.in(SysUserSub::getGigType, userSignCertDTO.getGigTypeList());
|
|
|
+ updateWrapper.eq(SysUserSub::getDeptId, sysUser.getDeptId());
|
|
|
+ if (userSignCertDTO.getSubjectLocation() != null) {
|
|
|
+ updateWrapper.eq(SysUserSub::getSubjectLocation, userSignCertDTO.getSubjectLocation());
|
|
|
}
|
|
|
updateWrapper.set(SysUserSub::getAgreementUrl, userSignCertDTO.getAgreementUrl());
|
|
|
updateWrapper.set(SysUserSub::getUpdateUser, SecurityUtils.getUser().getId());
|
|
@@ -261,8 +417,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
|
|
|
LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
updateWrapper.eq(SysUserSub::getUserId, userSignCertDTO.getUserId());
|
|
|
- if (CollUtil.isNotEmpty(userSignCertDTO.getGigTypeList())) {
|
|
|
- updateWrapper.in(SysUserSub::getGigType, userSignCertDTO.getGigTypeList());
|
|
|
+ if (userSignCertDTO.getSubjectLocation() != null) {
|
|
|
+ updateWrapper.eq(SysUserSub::getSubjectLocation, userSignCertDTO.getSubjectLocation());
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(userSignCertDTO.getAgreementUrl())) {
|
|
|
updateWrapper.set(SysUserSub::getAgreementUrl, userSignCertDTO.getAgreementUrl());
|
|
@@ -292,28 +448,33 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
if (sysUser == null) {
|
|
|
return false;
|
|
|
}
|
|
|
+ // 查询认证数据
|
|
|
+ SysUserExtRecord userExtRecord = sysUserExtRecordService.getOne(Wrappers.<SysUserExtRecord>lambdaQuery()
|
|
|
+ .eq(SysUserExtRecord::getUserId, userId)
|
|
|
+ .eq(SysUserExtRecord::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
+ if (userExtRecord == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
// 查询dept
|
|
|
SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
// 查询当前用户关联的userSub
|
|
|
LambdaQueryWrapper<SysUserSub> userSubWrapper = Wrappers.lambdaQuery();
|
|
|
userSubWrapper.eq(SysUserSub::getUserId, userId);
|
|
|
- userSubWrapper.eq(SysUserSub::getDeptId, dept.getDeptId());
|
|
|
- if (CollUtil.isNotEmpty(userSignCertDTO.getGigTypeList())) {
|
|
|
- userSubWrapper.in(SysUserSub::getGigType, userSignCertDTO.getGigTypeList());
|
|
|
- }
|
|
|
+ userSubWrapper.eq(SysUserSub::getDeptId, sysUser.getDeptId());
|
|
|
+ userSubWrapper.eq(SysUserSub::getSubjectLocation, userSignCertDTO.getSubjectLocation());
|
|
|
List<SysUserSub> userSubList = sysUserSubService.list(userSubWrapper);
|
|
|
|
|
|
if (CollUtil.isNotEmpty(userSubList)) {
|
|
|
// 过滤出阿拉钉的渠道
|
|
|
- Collection<GigTypeEnum> oladingTypeList =
|
|
|
- CollUtil.intersection(userSignCertDTO.getGigTypeList(),
|
|
|
- CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN, GigTypeEnum.XIN_TAI_ZI)).stream()
|
|
|
- .sorted(Comparator.comparing(GigTypeEnum::getCode))
|
|
|
+ Collection<SubjectLocation> oladingList =
|
|
|
+ CollUtil.intersection(CollUtil.toList(userSignCertDTO.getSubjectLocation()),
|
|
|
+ SubjectLocation.getByGigType(GigTypeEnum.OLADING)).stream()
|
|
|
+ .sorted(Comparator.comparing(SubjectLocation::getSort))
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
// 封装请求数据
|
|
|
userSubList.stream()
|
|
|
- .sorted(Comparator.comparing(sysUserSub -> sysUserSub.getGigType().getCode()))
|
|
|
+ .sorted(Comparator.comparing(sysUserSub -> sysUserSub.getSubjectLocation().getSort()))
|
|
|
.filter(sysUserSub -> {
|
|
|
// 过滤掉认证成功的数据
|
|
|
if (GigTypeEnum.TAX_HELPOR.equals(sysUserSub.getGigType())
|
|
@@ -325,10 +486,6 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
return true;
|
|
|
} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())) {
|
|
|
return true;
|
|
|
- } else if (GigTypeEnum.JIN_YUAN.equals(sysUserSub.getGigType())) {
|
|
|
- return true;
|
|
|
- } else if (GigTypeEnum.XIN_TAI_ZI.equals(sysUserSub.getGigType())) {
|
|
|
- return true;
|
|
|
} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())
|
|
|
&& RenlijiaCertStatus.CER_STATUS_1.getCode() != sysUserSub.getCertStatus()) {
|
|
|
return true;
|
|
@@ -337,7 +494,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
}).forEach(userSub -> {
|
|
|
|
|
|
// 发起前置判断
|
|
|
- if (!this.preSignCert(sysUser, userSub, userSignCertDTO, oladingTypeList)) {
|
|
|
+ if (!this.preSignCert(sysUser, userSub, userSignCertDTO, oladingList)) {
|
|
|
// false直接返回,不发送mq
|
|
|
log.info("本次不发起认证,userSubId={}", userSub.getId());
|
|
|
return;
|
|
@@ -349,12 +506,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
// 是否需要传核身视频,阿拉丁、易联默认都要传
|
|
|
boolean uploadFaceID = userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID();
|
|
|
// 封装请求参数
|
|
|
- GigInfoModel infoModel = this.buildChannelCertModel(sysUser, userSub, dept.getTaxCode(), requestId, uploadFaceID);
|
|
|
+ GigInfoModel infoModel = this.buildChannelCertModel(sysUser, userSub, userExtRecord, dept.getTaxCode(), requestId, uploadFaceID);
|
|
|
// 更新为进行中状态
|
|
|
SysUserSub updateUserSub = new SysUserSub();
|
|
|
updateUserSub.setId(userSub.getId());
|
|
|
updateUserSub.setRequestId(requestId);
|
|
|
updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
|
|
|
+ updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
+ HnqzUser hnqzUser = SecurityUtils.getUser();
|
|
|
+ updateUserSub.setUpdateUser(hnqzUser != null ? hnqzUser.getId() : 0);
|
|
|
sysUserSubService.updateById(updateUserSub);
|
|
|
// 发送mq
|
|
|
BaseMap gigInfo = new BaseMap();
|
|
@@ -373,61 +533,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
* @param sysUser 用户信息
|
|
|
* @param userSub userSub信息
|
|
|
* @param userSignCertDTO 发起参数
|
|
|
- * @param oladingTypeList 阿拉钉渠道类型list
|
|
|
+ * @param locationList 阿拉钉税源地list
|
|
|
*/
|
|
|
- private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO, Collection<GigTypeEnum> oladingTypeList) {
|
|
|
+ private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO, Collection<SubjectLocation> locationList) {
|
|
|
// 校验是否有进行中的
|
|
|
if (GigCallBackStatus.IN_PROGRESS.equals(userSub.getCallbackStatus())) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
switch (userSub.getGigType()) {
|
|
|
- case XIN_TAI_ZI:
|
|
|
- // 钉灵工-河南薪泰梓
|
|
|
- // 发起认证前,金园数科,转换对应关系为 阿拉钉-金园数科
|
|
|
- userSub.setGigType(GigTypeEnum.OLADING);
|
|
|
- userSub.setGigChannel(GigChannelEnum.XIN_TAI_ZI);
|
|
|
-
|
|
|
- // 如果需要传核身视频,则返回true
|
|
|
- if (userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID()) {
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- // 已认证不发起
|
|
|
- if (OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.XIN_TAI_ZI)) {
|
|
|
- // 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
- case JIN_YUAN:
|
|
|
- // 钉灵工-金园数科
|
|
|
- // 发起认证前,金园数科,转换对应关系为 阿拉钉-金园数科
|
|
|
- userSub.setGigType(GigTypeEnum.OLADING);
|
|
|
- userSub.setGigChannel(GigChannelEnum.JIN_YUAN);
|
|
|
-
|
|
|
- // 如果需要传核身视频,则返回true
|
|
|
- if (userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID()) {
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- // 已认证不发起
|
|
|
- if (OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.JIN_YUAN)) {
|
|
|
- // 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
case OLADING:
|
|
|
// 阿拉钉-海南飞亿
|
|
|
// 如果需要传核身视频,则返回true
|
|
@@ -440,8 +554,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.OLADING)) {
|
|
|
+ // 如果同时包含阿拉钉多个渠道,则只选第一个发起,其余不发起
|
|
|
+ if (locationList.size() > 1 && !locationList.stream().findFirst().get().equals(userSub.getSubjectLocation())) {
|
|
|
// 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
return false;
|
|
|
}
|
|
@@ -538,17 +652,20 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
*
|
|
|
* @param sysUser
|
|
|
* @param userSub
|
|
|
+ * @param userExtRecord
|
|
|
* @param entCode
|
|
|
* @param requestId
|
|
|
* @param uploadFaceID
|
|
|
* @return
|
|
|
*/
|
|
|
- private GigInfoModel buildChannelCertModel(SysUser sysUser, SysUserSub userSub, String entCode, String requestId, boolean uploadFaceID) {
|
|
|
+ private GigInfoModel buildChannelCertModel(SysUser sysUser, SysUserSub userSub, SysUserExtRecord userExtRecord,
|
|
|
+ String entCode, String requestId, boolean uploadFaceID) {
|
|
|
// 基础信息
|
|
|
GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
|
|
|
baseInfoModel.setRequestId(requestId);
|
|
|
baseInfoModel.setGigType(userSub.getGigType());
|
|
|
baseInfoModel.setGigChannel(userSub.getGigChannel());
|
|
|
+ baseInfoModel.setGigLocation(userSub.getSubjectLocation());
|
|
|
// 用户信息
|
|
|
GigUserInfoModel userInfoModel = new GigUserInfoModel();
|
|
|
userInfoModel.setUserId(sysUser.getUserId());
|
|
@@ -580,6 +697,9 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
userInfoModel.setSignImageUrl(StrUtil.isBlank(userSub.getAgreementUrl())
|
|
|
? null : userSub.getAgreementUrl().startsWith("https")
|
|
|
? userSub.getAgreementUrl() : upmsConfig.getClientUrl() + userSub.getAgreementUrl());
|
|
|
+ userInfoModel.setIdCardBackBase64(userExtRecord.getIdCardBackBase64());
|
|
|
+ userInfoModel.setIdCardFrontBase64(userExtRecord.getIdCardFrontBase64());
|
|
|
+ userInfoModel.setBestFrameBase64(userExtRecord.getBestFrameBase64());
|
|
|
|
|
|
GigInfoModel infoModel = new GigInfoModel();
|
|
|
infoModel.setBaseInfo(baseInfoModel);
|
|
@@ -592,42 +712,74 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
* 税邦云发送绑卡验证码
|
|
|
*
|
|
|
* @param userSignCertDTO
|
|
|
+ * @return
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void bindCardVerification(UserSignCertDTO userSignCertDTO) {
|
|
|
+ public R<?> bindCardVerification(UserSignCertDTO userSignCertDTO) {
|
|
|
+ // 查询user
|
|
|
+ SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
+ // 查询userSub
|
|
|
SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
.eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
- .eq(SysUserSub::getGigType, GigTypeEnum.TAX_HELPOR));
|
|
|
+ .eq(SysUserSub::getDeptId, sysUser.getDeptId())
|
|
|
+ .eq(SysUserSub::getSubjectLocation, SubjectLocation.LUO_SHU_YUN));
|
|
|
if (userSub == null) {
|
|
|
- throw new RuntimeException("数据异常");
|
|
|
+ return R.failed("用户sub数据不存在");
|
|
|
}
|
|
|
- // 查询user
|
|
|
- SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
+
|
|
|
// 查询dept
|
|
|
SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
- // 基础信息
|
|
|
- GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
|
|
|
- baseInfoModel.setGigType(userSub.getGigType());
|
|
|
- baseInfoModel.setGigChannel(userSub.getGigChannel());
|
|
|
- baseInfoModel.setBankCardOpt("captcha");
|
|
|
- baseInfoModel.setNotifyUrl(taxNotifyConfig.getNotifyUrl());
|
|
|
- // 用户信息
|
|
|
- GigUserInfoModel userInfoModel = new GigUserInfoModel();
|
|
|
- userInfoModel.setName(sysUser.getRealname());
|
|
|
- userInfoModel.setUsername(sysUser.getUsername());
|
|
|
- userInfoModel.setEntCode(dept.getTaxCode());
|
|
|
- userInfoModel.setIdCard(sysUser.getIdCardNumber());
|
|
|
- userInfoModel.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
- userInfoModel.setBankCard(userSignCertDTO.getBankCardNumber());
|
|
|
|
|
|
- GigInfoModel infoModel = new GigInfoModel();
|
|
|
- infoModel.setBaseInfo(baseInfoModel);
|
|
|
- infoModel.setUserInfo(userInfoModel);
|
|
|
- BaseMap gigInfo = new BaseMap();
|
|
|
- gigInfo.put(userSub.getGigType().name(), infoModel);
|
|
|
- // 发送mq
|
|
|
- rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_GIG_BANK_CARD_QUEUE, JSONUtil.toJsonStr(gigInfo));
|
|
|
+ // 发送绑卡验证码
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("enterpriseCode", dept.getTaxCode());
|
|
|
+ params.put("subjectLocation", userSub.getSubjectLocation().name());
|
|
|
+ params.put("realName", sysUser.getRealname());
|
|
|
+ params.put("bankCard", userSignCertDTO.getBankCardNumber());
|
|
|
+ params.put("idCard", sysUser.getIdCardNumber());
|
|
|
+ params.put("bankPhone", userSignCertDTO.getBankPhone());
|
|
|
+ params.put("endType", "CSO");
|
|
|
+ params.put("bankCardStep", "CAPTCHA");
|
|
|
+
|
|
|
+ String postResult = HttpUtil.post(upmsConfig.getGigServiceUrl() + GIG_CERT_ACTION_BANK_CARD, JSONUtil.toJsonStr(params));
|
|
|
+ log.info("税邦云发送绑卡验证码: req={}, resp={}", JSONUtil.toJsonStr(params), postResult);
|
|
|
+
|
|
|
+ if (JSONUtil.isJsonObj(postResult)) {
|
|
|
+ JSONObject jsonResult = JSONUtil.parseObj(postResult);
|
|
|
+ if (jsonResult.getInt("code") == 0) {
|
|
|
+ JSONObject data = jsonResult.getJSONObject("data");
|
|
|
+ if ("2000".equals(data.getStr("code"))) {
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ return R.failed(data.getStr("message"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.failed("发送绑卡验证码失败");
|
|
|
+
|
|
|
+// // 基础信息
|
|
|
+// GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
|
|
|
+// baseInfoModel.setGigType(userSub.getGigType());
|
|
|
+// baseInfoModel.setGigChannel(userSub.getGigChannel());
|
|
|
+// baseInfoModel.setBankCardOpt("captcha");
|
|
|
+// baseInfoModel.setNotifyUrl(taxNotifyConfig.getNotifyUrl());
|
|
|
+// // 用户信息
|
|
|
+// GigUserInfoModel userInfoModel = new GigUserInfoModel();
|
|
|
+// userInfoModel.setName(sysUser.getRealname());
|
|
|
+// userInfoModel.setUsername(sysUser.getUsername());
|
|
|
+// userInfoModel.setEntCode(dept.getTaxCode());
|
|
|
+// userInfoModel.setIdCard(sysUser.getIdCardNumber());
|
|
|
+// userInfoModel.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
+// userInfoModel.setBankCard(userSignCertDTO.getBankCardNumber());
|
|
|
+//
|
|
|
+// GigInfoModel infoModel = new GigInfoModel();
|
|
|
+// infoModel.setBaseInfo(baseInfoModel);
|
|
|
+// infoModel.setUserInfo(userInfoModel);
|
|
|
+// BaseMap gigInfo = new BaseMap();
|
|
|
+// gigInfo.put(userSub.getGigType().name(), infoModel);
|
|
|
+// // 发送mq
|
|
|
+// rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_GIG_BANK_CARD_QUEUE, JSONUtil.toJsonStr(gigInfo));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -635,55 +787,106 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
* 绑卡确认
|
|
|
*
|
|
|
* @param userSignCertDTO
|
|
|
+ * @return
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void bindCardConfirm(UserSignCertDTO userSignCertDTO) {
|
|
|
- List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ public R<Object> bindCardConfirm(UserSignCertDTO userSignCertDTO) {
|
|
|
+
|
|
|
+ // 查询user
|
|
|
+ SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
+ // 查询userSub
|
|
|
+ SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
.eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
- .in(SysUserSub::getGigType, userSignCertDTO.getGigTypeList()));
|
|
|
- if (CollUtil.isEmpty(userSubList)) {
|
|
|
- throw new RuntimeException("数据异常");
|
|
|
+ .eq(SysUserSub::getDeptId, sysUser.getDeptId())
|
|
|
+ .eq(SysUserSub::getSubjectLocation, SubjectLocation.LUO_SHU_YUN));
|
|
|
+ if (userSub == null) {
|
|
|
+ return R.failed("用户sub数据不存在");
|
|
|
}
|
|
|
- BaseMap gigInfo = new BaseMap();
|
|
|
- userSubList.stream()
|
|
|
- // 人力家暂过滤掉
|
|
|
- .filter(sysUserSub -> !GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType()))
|
|
|
- .forEach(userSub -> {
|
|
|
- // 新银行卡号缓存到redis
|
|
|
- String cacheKey = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD, userSub.getUserId(), userSub.getGigType().name());
|
|
|
- redisTemplate.opsForValue().set(cacheKey, userSignCertDTO);
|
|
|
-
|
|
|
- // 查询user
|
|
|
- SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
- // 查询dept
|
|
|
- SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
- // 封装请求数据
|
|
|
- if (GigTypeEnum.TAX_HELPOR.equals(userSub.getGigType())) {
|
|
|
- userSub.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
- userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
- gigInfo.put(userSub.getGigType().name(),
|
|
|
- this.buildTaxHelperBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber(), userSignCertDTO.getVerifyCode()));
|
|
|
- } else if (GigTypeEnum.YEE.equals(userSub.getGigType())) {
|
|
|
- gigInfo.put(userSub.getGigType().name(),
|
|
|
- this.buildYeeBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
|
|
|
- } else if (GigTypeEnum.OLADING.equals(userSub.getGigType())) {
|
|
|
- gigInfo.put(userSub.getGigType().name(),
|
|
|
- this.buildOladingBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
|
|
|
- }
|
|
|
- // 更新为进行中状态
|
|
|
- SysUserSub updateUserSub = new SysUserSub();
|
|
|
- updateUserSub.setId(userSub.getId());
|
|
|
- updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
|
|
|
- updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
- updateUserSub.setUpdateUser(0);
|
|
|
- sysUserSubService.updateById(updateUserSub);
|
|
|
- });
|
|
|
-
|
|
|
- if (CollUtil.isNotEmpty(gigInfo)) {
|
|
|
- // 发送mq
|
|
|
- rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_GIG_BANK_CARD_QUEUE, JSONUtil.toJsonStr(gigInfo));
|
|
|
+
|
|
|
+ // 查询dept
|
|
|
+ SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
+
|
|
|
+ // 税邦云中金绑卡操作
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("enterpriseCode", dept.getTaxCode());
|
|
|
+ params.put("subjectLocation", userSub.getSubjectLocation().name());
|
|
|
+ params.put("realName", sysUser.getRealname());
|
|
|
+ params.put("bankCard", userSignCertDTO.getBankCardNumber());
|
|
|
+ params.put("idCard", sysUser.getIdCardNumber());
|
|
|
+ params.put("endType", "CSO");
|
|
|
+ params.put("bankCardStep", "BOUND");
|
|
|
+ params.put("captcha", userSignCertDTO.getVerifyCode());
|
|
|
+
|
|
|
+ String postResult = HttpUtil.post(upmsConfig.getGigServiceUrl() + GIG_CERT_ACTION_BANK_CARD, JSONUtil.toJsonStr(params));
|
|
|
+ log.info("税邦云中金绑卡操作: req={}, resp={}", JSONUtil.toJsonStr(params), postResult);
|
|
|
+
|
|
|
+ if (JSONUtil.isJsonObj(postResult)) {
|
|
|
+ JSONObject jsonResult = JSONUtil.parseObj(postResult);
|
|
|
+ if (jsonResult.getInt("code") == 0) {
|
|
|
+ JSONObject data = jsonResult.getJSONObject("data");
|
|
|
+ if ("2000".equals(data.getStr("code"))) {
|
|
|
+ // 保存手机号和银行卡号
|
|
|
+ SysUser updateUser = new SysUser();
|
|
|
+ updateUser.setUserId(sysUser.getUserId());
|
|
|
+ updateUser.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
+ updateUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+ updateUser.setUpdateTime(LocalDateTime.now());
|
|
|
+ sysUserService.updateById(updateUser);
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ return R.failed(data.getStr("message"));
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ return R.failed("发送绑卡验证码失败");
|
|
|
+
|
|
|
+// List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+// .eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
+// .in(SysUserSub::getGigType, userSignCertDTO.getGigTypeList()));
|
|
|
+// if (CollUtil.isEmpty(userSubList)) {
|
|
|
+// throw new RuntimeException("数据异常");
|
|
|
+// }
|
|
|
+// BaseMap gigInfo = new BaseMap();
|
|
|
+// userSubList.stream()
|
|
|
+// // 人力家暂过滤掉
|
|
|
+// .filter(sysUserSub -> !GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType()))
|
|
|
+// .forEach(userSub -> {
|
|
|
+// // 新银行卡号缓存到redis
|
|
|
+// String cacheKey = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD, userSub.getUserId(), userSub.getGigType().name());
|
|
|
+// redisTemplate.opsForValue().set(cacheKey, userSignCertDTO);
|
|
|
+//
|
|
|
+// // 查询user
|
|
|
+// SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
+// // 查询dept
|
|
|
+// SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
+// // 封装请求数据
|
|
|
+// if (GigTypeEnum.TAX_HELPOR.equals(userSub.getGigType())) {
|
|
|
+// userSub.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
+// userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+// gigInfo.put(userSub.getGigType().name(),
|
|
|
+// this.buildTaxHelperBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber(), userSignCertDTO.getVerifyCode()));
|
|
|
+// } else if (GigTypeEnum.YEE.equals(userSub.getGigType())) {
|
|
|
+// gigInfo.put(userSub.getGigType().name(),
|
|
|
+// this.buildYeeBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
|
|
|
+// } else if (GigTypeEnum.OLADING.equals(userSub.getGigType())) {
|
|
|
+// gigInfo.put(userSub.getGigType().name(),
|
|
|
+// this.buildOladingBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
|
|
|
+// }
|
|
|
+// // 更新为进行中状态
|
|
|
+// SysUserSub updateUserSub = new SysUserSub();
|
|
|
+// updateUserSub.setId(userSub.getId());
|
|
|
+// updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
|
|
|
+// updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
+// updateUserSub.setUpdateUser(0);
|
|
|
+// sysUserSubService.updateById(updateUserSub);
|
|
|
+// });
|
|
|
+//
|
|
|
+// if (CollUtil.isNotEmpty(gigInfo)) {
|
|
|
+// // 发送mq
|
|
|
+// rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_GIG_BANK_CARD_QUEUE, JSONUtil.toJsonStr(gigInfo));
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
/**
|