Prechádzať zdrojové kódy

feat: 签约认证、绑卡修改

lixuesong 3 rokov pred
rodič
commit
26dc2172f8

+ 1 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/MqConstants.java

@@ -24,4 +24,5 @@ public interface MqConstants {
 	 */
 	String DIRECT_MODE_GIG_SIGN_CERT_QUEUE = "direct_mode_gig_sign_cert_queue";
 	String DIRECT_MODE_GIG_SIGN_CERT_RES_QUEUE = "direct_mode_gig_sign_cert_res_queue";
+	String DIRECT_MODE_GIG_BANK_CARD_QUEUE = "direct_mode_gig_bank_card_queue";
 }

+ 4 - 18
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserSignCertController.java

@@ -2,7 +2,6 @@ package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
-import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
 import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
@@ -17,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
 /**
  * 用户签约认证
@@ -117,17 +115,7 @@ public class SysUserSignCertController {
 		if (userSignCertDTO.getUserId() == null) {
 			return R.failed("userId不能为空");
 		}
-		String cacheKey = CacheConstants.USER_SIGN_CERT_KEY + userSignCertDTO.getUserId();
-		Boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, userSignCertDTO.getUserId(), 5, TimeUnit.SECONDS);
-		if (!absent) {
-			log.error("当前用户:{},正在处理", userSignCertDTO.getUserId());
-			return R.failed("正在处理,请勿重复操作");
-		}
-		try {
-			sysUserSignCertService.batchChannelCert(userSignCertDTO);
-		} finally {
-			redisTemplate.delete(cacheKey);
-		}
+		sysUserSignCertService.batchChannelCert(userSignCertDTO);
 
 		return R.ok();
 	}
@@ -147,7 +135,8 @@ public class SysUserSignCertController {
 		if (StrUtil.isBlank(userSignCertDTO.getBankPhone())) {
 			return R.failed("银行预留手机号不能为空");
 		}
-		// TODO
+		sysUserSignCertService.bindCardVerification(userSignCertDTO);
+
 		return R.ok();
 	}
 
@@ -166,11 +155,8 @@ public class SysUserSignCertController {
 		if (StrUtil.isBlank(userSignCertDTO.getBankPhone())) {
 			return R.failed("银行预留手机号不能为空");
 		}
-		if (StrUtil.isBlank(userSignCertDTO.getVerifyCode())) {
-			return R.failed("验证码不能为空");
-		}
 		sysUserSignCertService.bindCardConfirm(userSignCertDTO);
-		// TODO
+
 		return R.ok();
 	}
 }

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/SysUserSub.java

@@ -51,7 +51,7 @@ public class SysUserSub extends Model<SysUserSub> {
 	/**
 	 * 认证状态
 	 */
-	private UserSubCertStatusEnum certStatus;
+	private Integer certStatus;
 
 	/**
 	 * 认证结果描述

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/model/GigBaseInfoModel.java

@@ -31,4 +31,19 @@ public class GigBaseInfoModel implements Serializable {
 	 * 协议
 	 */
 	private String agreement;
+
+	/**
+	 * 绑卡操作类型(captcha-获取验证码)
+	 */
+	private String bankCardOpt;
+
+	/**
+	 * 验证码
+	 */
+	private String captcha;
+
+	/**
+	 * 通知url
+	 */
+	private String notifyUrl;
 }

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/model/GigUserInfoModel.java

@@ -73,6 +73,11 @@ public class GigUserInfoModel implements Serializable {
 	 */
 	private String bankCard;
 
+	/**
+	 * 银行卡号
+	 */
+	private String newBankCard;
+
 	/**
 	 * 身份证照片-正面
 	 */

+ 42 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/YeeCertStatus.java

@@ -0,0 +1,42 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * {@code CertStatus}
+ * <p>
+ * 易联数科签约状态枚举
+ *
+ * @author Hengchen.Sun
+ * @version 1.0.0
+ * @date 2022/03/09 22:21
+ */
+@Getter
+@AllArgsConstructor
+public enum YeeCertStatus {
+
+    UN_SIGNED("0", "未签约(待审核)"),
+    SIGNED("1", "已签约"),
+    TERMINATED("2", "已解约");
+
+    private final String code;
+
+    private final String message;
+
+    /**
+     * 根据枚举编码获取枚举对象
+     *
+     * @param code 枚举编码
+     * @return 如果存在返回枚举,否则返回 {@code null}
+     */
+    public static YeeCertStatus resolve(final String code) {
+        for (YeeCertStatus yeeCertStatus : YeeCertStatus.values()) {
+            if (yeeCertStatus.getCode().equals(code)) {
+                return yeeCertStatus;
+            }
+        }
+        return null;
+
+    }
+}

+ 31 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -12,24 +12,25 @@ import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
-import com.qunzhixinxi.hnqz.admin.enums.UserSubCertStatusEnum;
+import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
 import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
 import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
 import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.qunzhixinxi.hnqz.common.taxhelper.enums.TaxHelperCertStatus;
 import com.rabbitmq.client.Channel;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.rabbit.annotation.RabbitHandler;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
 import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.messaging.handler.annotation.Header;
 
 import java.time.LocalDateTime;
 import java.util.List;
-import java.util.function.Predicate;
 
 /**
  * 接收用户签约认证的结果对列监听器
@@ -46,6 +47,8 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 
 	private final SysUserSubService sysUserSubService;
 
+	private final RedisTemplate redisTemplate;
+
     @RabbitHandler
     public void onMessage(String jsonStr, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
         super.onMessage(jsonStr, deliveryTag, channel, (MqListener<String>) (String result, Channel channel1) -> {
@@ -55,8 +58,12 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 			JSONObject jsonResult = JSONUtil.parseObj(result);
 			String username = jsonResult.getStr("username");
 			String entpriseCode = jsonResult.getStr("enterpriseCode");
+
 			JSONObject subjectTypes = jsonResult.getJSONObject("subjectTypes");
 			if (StrUtil.isNotBlank(username) && StrUtil.isNotBlank(entpriseCode) && !subjectTypes.isEmpty()) {
+				// 加redis锁 TODO
+//				redisTemplate.opsForValue().setIfAbsent()
+
 				List<SysDept> deptList = sysDeptService.list(Wrappers.<SysDept>lambdaQuery()
 						.eq(SysDept::getTaxCode, entpriseCode)
 						.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
@@ -76,20 +83,22 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 							LocalDateTime now = LocalDateTime.now();
 							switch (gigTypeEnum) {
 								case TAX_HELPOR:
+									TaxHelperCertStatus certStatus = Enum.valueOf(TaxHelperCertStatus.class, statusResult.getStr("certStatus"));
 									if ("2000".equals(statusResult.getStr("code"))) {
-										UserSubCertStatusEnum certStatus = Enum.valueOf(UserSubCertStatusEnum.class, "UNCHECKED_BIND");
 										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
 												.eq(SysUserSub::getUserId, user.getUserId())
 												.eq(SysUserSub::getDeptId, dept.getDeptId())
 												.set(SysUserSub::getUpdateTime, now)
 												.set(SysUserSub::getUpdateUser, 0)
-												.set(SysUserSub::getCertStatus, certStatus));
+												.set(SysUserSub::getCertStatus, certStatus.getCode())
+												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
 									} else {
 										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
 												.eq(SysUserSub::getUserId, user.getUserId())
 												.eq(SysUserSub::getDeptId, dept.getDeptId())
 												.set(SysUserSub::getUpdateTime, now)
 												.set(SysUserSub::getUpdateUser, 0)
+												.set(SysUserSub::getCertStatus, certStatus.getCode())
 												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
 									}
 									break;
@@ -98,6 +107,24 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 								case OLADING:
 									break;
 								case YEE:
+									YeeCertStatus yeeCertStatus = Enum.valueOf(YeeCertStatus.class, statusResult.getStr("certStatus"));
+									if ("2000".equals(statusResult.getStr("code"))) {
+										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
+												.eq(SysUserSub::getUserId, user.getUserId())
+												.eq(SysUserSub::getDeptId, dept.getDeptId())
+												.set(SysUserSub::getUpdateTime, now)
+												.set(SysUserSub::getUpdateUser, 0)
+												.set(SysUserSub::getCertStatus, yeeCertStatus.getCode())
+												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
+									} else {
+										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
+												.eq(SysUserSub::getUserId, user.getUserId())
+												.eq(SysUserSub::getDeptId, dept.getDeptId())
+												.set(SysUserSub::getUpdateTime, now)
+												.set(SysUserSub::getUpdateUser, 0)
+												.set(SysUserSub::getCertStatus, yeeCertStatus.getCode())
+												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
+									}
 									break;
 								default:
 							}
@@ -107,12 +134,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 					}
 				}
 			}
-//            //业务处理
-//            log.info("直接队列:zb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, jsonStr);
-//            String requestBody = map.get("requestBody").toString();
-//            String username = map.get("username").toString();
-//            Boolean isGuangshengtang = map.get("isGuangshengtang");
-////            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
 
 			return null;
         });

+ 8 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/gig/SysUserSignCertService.java

@@ -50,6 +50,14 @@ public interface SysUserSignCertService {
 	 */
 	boolean batchChannelCert(UserSignCertDTO userSignCertDTO);
 
+
+	/**
+	 * 税邦云发送绑卡验证码
+	 *
+	 * @param userSignCertDTO
+	 */
+    void bindCardVerification(UserSignCertDTO userSignCertDTO);
+
 	/**
 	 * 绑卡确认
 	 *

+ 157 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/gig/impl/SysUserSignCertServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 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.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
@@ -30,6 +31,7 @@ import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -55,6 +57,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 
 	private final UpmsConfig upmsConfig;
 
+	private final TaxNotifyConfig taxNotifyConfig;
+
 	/**
 	 * 查询用户签约认证信息
 	 *
@@ -74,6 +78,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 	 * @param userSignCertDTO
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void saveBaseInfo(UserSignCertDTO userSignCertDTO) {
 		HnqzUser user = SecurityUtils.getUser();
 		Integer operateUserId = user.getId();
@@ -126,6 +131,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 	 * @param userSignCertDTO
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void signAgreement(UserSignCertDTO userSignCertDTO) {
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.lambdaUpdate();
 		updateWrapper.eq(SysUserSub::getUserId, userSignCertDTO.getUserId());
@@ -145,6 +151,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 	 * @param userSignCertDTO
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void personalIdentityVerification(UserSignCertDTO userSignCertDTO) {
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.lambdaUpdate();
 		updateWrapper.eq(SysUserSub::getUserId, userSignCertDTO.getUserId());
@@ -201,15 +208,20 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				userInfoModel.setBankPhone(userSub.getBankPhone());
 				userInfoModel.setBankCard(userSub.getBankCardNumber());
 				userInfoModel.setIdCardFront(StrUtil.isBlank(userSub.getIdCardFrontUrl())
-						? null : upmsConfig.getClientUrl() + userSub.getIdCardFrontUrl());
+						? null : userSub.getIdCardFrontUrl().startsWith("https")
+						? userSub.getIdCardFrontUrl() : upmsConfig.getClientUrl() + userSub.getIdCardFrontUrl());
 				userInfoModel.setIdCardBack(StrUtil.isBlank(userSub.getIdCardBackUrl())
-						? null : upmsConfig.getClientUrl() + userSub.getIdCardBackUrl());
+						? null : userSub.getIdCardBackUrl().startsWith("https")
+						? userSub.getIdCardBackUrl() : upmsConfig.getClientUrl() + userSub.getIdCardBackUrl());
 				userInfoModel.setCertVideo1(StrUtil.isBlank(userSub.getCertVideo1Url())
-						? null : upmsConfig.getClientUrl() + userSub.getCertVideo1Url());
+						? null : userSub.getCertVideo1Url().startsWith("https")
+						? userSub.getCertVideo1Url() : upmsConfig.getClientUrl() + userSub.getCertVideo1Url());
 				userInfoModel.setCertVideo2(StrUtil.isBlank(userSub.getCertVideo2Url())
-						? null : upmsConfig.getClientUrl() + userSub.getCertVideo2Url());
+						? null : userSub.getCertVideo2Url().startsWith("https")
+						? userSub.getCertVideo2Url() : upmsConfig.getClientUrl() + userSub.getCertVideo2Url());
 				userInfoModel.setSignImageUrl(StrUtil.isBlank(userSub.getAgreementUrl())
-						? null : upmsConfig.getClientUrl() + userSub.getAgreementUrl());
+						? null : userSub.getAgreementUrl().startsWith("https")
+						? userSub.getAgreementUrl() : upmsConfig.getClientUrl() + userSub.getAgreementUrl());
 
 				GigInfoModel infoModel = new GigInfoModel();
 				infoModel.setBaseInfo(baseInfoModel);
@@ -223,13 +235,152 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		return false;
 	}
 
+	/**
+	 * 税邦云发送绑卡验证码
+	 *
+	 * @param userSignCertDTO
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void bindCardVerification(UserSignCertDTO userSignCertDTO) {
+		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+				.eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
+				.eq(SysUserSub::getGigType, GigTypeEnum.TAX_HELPOR));
+		if (userSub == null) {
+			throw new RuntimeException("数据异常");
+		}
+		// 更新银行预留手机号
+		SysUserSub updateUserSub = new SysUserSub();
+		updateUserSub.setId(userSub.getId());
+		updateUserSub.setBankPhone(userSignCertDTO.getBankPhone());
+		sysUserSubService.updateById(updateUserSub);
+		// 封装请求数据
+		// 查询user
+		SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
+		// 查询dept
+		SysDept dept = sysDeptService.getById(sysUser.getDeptId());
+		// 基础信息
+		GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
+		baseInfoModel.setGigType(userSub.getGigType());
+		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(userSub.getBankPhone());
+		userInfoModel.setBankCard(userSub.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));
+
+	}
+
 	/**
 	 * 绑卡确认
 	 *
 	 * @param userSignCertDTO
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void bindCardConfirm(UserSignCertDTO userSignCertDTO) {
-		// TODO
+		List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
+				.eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
+				.in(SysUserSub::getGigType, GigTypeEnum.TAX_HELPOR, GigTypeEnum.YEE));
+		if (CollUtil.isEmpty(userSubList) || userSubList.size() != 2) {
+			throw new RuntimeException("数据异常");
+		}
+		BaseMap gigInfo = new BaseMap();
+		userSubList.forEach(userSub -> {
+			// 更新银行预留手机号
+			SysUserSub updateUserSub = new SysUserSub();
+			updateUserSub.setId(userSub.getId());
+			updateUserSub.setBankPhone(userSignCertDTO.getBankPhone());
+			sysUserSubService.updateById(updateUserSub);
+			userSub.setBankPhone(userSignCertDTO.getBankPhone());
+			// 查询user
+			SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
+			// 查询dept
+			SysDept dept = sysDeptService.getById(sysUser.getDeptId());
+			// 封装请求数据
+			if (GigTypeEnum.TAX_HELPOR.equals(userSub.getGigType())) {
+				gigInfo.put(userSub.getGigType().name(), this.buildTaxHelperBindCardConfirmModel(sysUser, userSub, dept));
+			} else if (GigTypeEnum.YEE.equals(userSub.getGigType())) {
+				gigInfo.put(userSub.getGigType().name(), this.buildYeeBindCardConfirmModel(sysUser, userSub, dept));
+			}
+		});
+
+		// 发送mq
+		rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_GIG_BANK_CARD_QUEUE, JSONUtil.toJsonStr(gigInfo));
+	}
+
+	/**
+	 * 封装税邦云绑卡model
+	 *
+	 * @param sysUser
+	 * @param userSub
+	 * @param dept
+	 * @return
+	 */
+	public GigInfoModel buildTaxHelperBindCardConfirmModel(SysUser sysUser, SysUserSub userSub, SysDept dept) {
+		// 基础信息
+		GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
+		baseInfoModel.setGigType(userSub.getGigType());
+		baseInfoModel.setCaptcha("134679");
+		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(userSub.getBankPhone());
+		userInfoModel.setBankCard(userSub.getBankCardNumber());
+		userInfoModel.setNewBankCard(userSub.getBankCardNumber());
+		userInfoModel.setAddress("北京市-房山区-长阳镇");
+
+		GigInfoModel infoModel = new GigInfoModel();
+		infoModel.setBaseInfo(baseInfoModel);
+		infoModel.setUserInfo(userInfoModel);
+
+		return infoModel;
+	}
+
+	/**
+	 * 封装易联换绑model
+	 *
+	 * @param sysUser
+	 * @param userSub
+	 * @param dept
+	 * @return
+	 */
+	public GigInfoModel buildYeeBindCardConfirmModel(SysUser sysUser, SysUserSub userSub, SysDept dept) {
+		// 基础信息
+		GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
+		baseInfoModel.setGigType(userSub.getGigType());
+		baseInfoModel.setBankCardOpt("绑卡?");
+		// 用户信息
+		GigUserInfoModel userInfoModel = new GigUserInfoModel();
+		userInfoModel.setName(sysUser.getRealname());
+		userInfoModel.setUsername(sysUser.getUsername());
+		userInfoModel.setEntCode(dept.getTaxCode());
+		userInfoModel.setIdCard(sysUser.getIdCardNumber());
+		userInfoModel.setBankPhone(userSub.getBankPhone());
+		userInfoModel.setBankCard(userSub.getBankCardNumber());
+		userInfoModel.setNewBankCard(userSub.getBankCardNumber());
+		userInfoModel.setAddress("北京市-房山区-长阳镇");
+
+		GigInfoModel infoModel = new GigInfoModel();
+		infoModel.setBaseInfo(baseInfoModel);
+		infoModel.setUserInfo(userInfoModel);
+
+		return infoModel;
 	}
 }