|
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
|
|
@@ -17,7 +18,7 @@ import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
|
|
|
-import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
|
|
@@ -35,6 +36,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.messaging.handler.annotation.Header;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -203,33 +205,46 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
|
|
|
* @param subjectResult
|
|
|
*/
|
|
|
private void yeeHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
|
|
|
- String code = subjectResult.getStr("code");
|
|
|
String certStatus = subjectResult.getStr("certStatus");
|
|
|
+ String uploadTaxPayerAgreementStatus = subjectResult.getStr("uploadTaxPayerAgreementStatus");
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
- YeeCertStatus yeeCertStatus = Enum.valueOf(YeeCertStatus.class, certStatus);
|
|
|
|
|
|
+ // 查询当前认证状态
|
|
|
+ SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getDeptId, dept.getDeptId())
|
|
|
+ .eq(SysUserSub::getUserId, user.getUserId())
|
|
|
+ .eq(SysUserSub::getGigType, GigTypeEnum.YEE));
|
|
|
// 拼接更新条件
|
|
|
LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
|
|
|
.eq(SysUserSub::getUserId, user.getUserId())
|
|
|
.eq(SysUserSub::getDeptId, dept.getDeptId())
|
|
|
- .set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
|
|
|
+ .eq(SysUserSub::getGigType, GigTypeEnum.YEE)
|
|
|
.set(SysUserSub::getUpdateTime, now)
|
|
|
.set(SysUserSub::getUpdateUser, 0)
|
|
|
.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
|
|
|
- updateWrapper.eq(SysUserSub::getGigType, GigTypeEnum.YEE);
|
|
|
- updateWrapper.set(SysUserSub::getCertStatus, yeeCertStatus.getCode());
|
|
|
- if (YEE_SUCCESS_CODE.equals(code)) {
|
|
|
- // 成功并且是换绑卡的情况,则更新银行卡号
|
|
|
- String cacheKeyPrefix = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD,
|
|
|
- user.getUserId(), GigTypeEnum.YEE.name());
|
|
|
- UserSignCertDTO userSignCertDTO = (UserSignCertDTO) redisTemplate.opsForValue().get(cacheKeyPrefix);
|
|
|
- if (userSignCertDTO != null) {
|
|
|
- if (StrUtil.isNotBlank(userSignCertDTO.getBankCardNumber())) {
|
|
|
- updateWrapper.set(SysUserSub::getBankCardNumber, userSignCertDTO.getBankCardNumber());
|
|
|
- }
|
|
|
- // redis删除银行卡号
|
|
|
- redisTemplate.delete(cacheKeyPrefix);
|
|
|
+ // 如果是已签约并且当前不是已认证,则设置一下状态(处理阿拉丁没有回调的情况)
|
|
|
+ if (OladingCommonRequest.SignUpStatus.SIGN.name().equals(certStatus)
|
|
|
+ && !OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
|
+ // 如果是已上传协议成功,则设置为已认证,否则还是已签约
|
|
|
+ SysUser updateUser = new SysUser();
|
|
|
+ Map<String, String> subMap = new HashMap<>();
|
|
|
+ if (OladingCommonRequest.UploadTaxpayerAgreementStatus.SUCCESS.name().equals(uploadTaxPayerAgreementStatus)) {
|
|
|
+ updateWrapper.set(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.CERT.getCode()));
|
|
|
+ subMap.put("certStatus", OladingCertStatus.CERT.name());
|
|
|
+ } else {
|
|
|
+ updateWrapper.set(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.SIGNED.getCode()));
|
|
|
+ subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
}
|
|
|
+ updateWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);
|
|
|
+ // 修改步进状态
|
|
|
+ updateUser.setUserId(user.getUserId());
|
|
|
+ updateUser.setUpdateTime(now);
|
|
|
+ sysUserService.updateById(updateUser);
|
|
|
+ // 结果放到redis
|
|
|
+ String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
+ Map<String, Object> result = MapUtil.newHashMap(1);
|
|
|
+ result.put("YEE", subMap);
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
}
|
|
|
sysUserSubService.update(updateWrapper);
|
|
|
}
|