浏览代码

feat: 新零工签名认证接口

lixuesong 3 年之前
父节点
当前提交
02cf3ceb7d

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

@@ -23,4 +23,5 @@ public interface MqConstants {
 	 * gig服务队列
 	 */
 	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";
 }

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

@@ -29,6 +29,11 @@ public class UserSignCertDTO {
 	 */
 	private String bankCardNumber;
 
+	/**
+	 * 银行预留手机号
+	 */
+	private String bankPhone;
+
 	/**
 	 * 身份证照片-正面
 	 */

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

@@ -4,6 +4,8 @@ import com.qunzhixinxi.hnqz.admin.enums.GigChannelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import lombok.Data;
 
+import java.io.Serializable;
+
 /**
  * gig基本信息
  *
@@ -11,7 +13,9 @@ import lombok.Data;
  * @date 2022年03月03日 14:26
  */
 @Data
-public class GigBaseInfoModel {
+public class GigBaseInfoModel implements Serializable {
+
+	private static final long serialVersionUID = 1350706535215124015L;
 
 	/**
 	 * 零工平台类型

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

@@ -2,6 +2,8 @@ package com.qunzhixinxi.hnqz.admin.entity.model;
 
 import lombok.Data;
 
+import java.io.Serializable;
+
 /**
  * gig信息
  *
@@ -9,7 +11,9 @@ import lombok.Data;
  * @date 2022年03月03日 14:25
  */
 @Data
-public class GigInfoModel {
+public class GigInfoModel implements Serializable {
+
+	private static final long serialVersionUID = -4552388586774856952L;
 
 	/**
 	 * gig基本信息

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

@@ -1,7 +1,12 @@
 package com.qunzhixinxi.hnqz.admin.entity.model;
 
+import com.qunzhixinxi.hnqz.admin.enums.MemberIDCardType;
+import com.qunzhixinxi.hnqz.admin.enums.MemberType;
+import com.qunzhixinxi.hnqz.admin.enums.PayChannel;
 import lombok.Data;
 
+import java.io.Serializable;
+
 /**
  * 用户信息
  *
@@ -9,7 +14,9 @@ import lombok.Data;
  * @date 2022年03月03日 14:27
  */
 @Data
-public class GigUserInfoModel {
+public class GigUserInfoModel implements Serializable {
+
+	private static final long serialVersionUID = 1418999433019620755L;
 
 	/**
 	 * 用户id
@@ -26,6 +33,31 @@ public class GigUserInfoModel {
 	 */
 	private String phone;
 
+	/**
+	 * 身份证号
+	 */
+	private String idCard;
+
+	/**
+	 * 部门id
+	 */
+	private Integer deptId;
+
+	/**
+	 * 证件类型
+	 */
+	private MemberIDCardType idCardType;
+
+	/**
+	 * 人员类型与行业
+	 */
+	private MemberType memberType;
+
+	/**
+	 * 支付渠道
+	 */
+	private PayChannel payChannel;
+
 	/**
 	 * 银行预留手机号
 	 */
@@ -36,7 +68,6 @@ public class GigUserInfoModel {
 	 */
 	private String bankCard;
 
-
 	/**
 	 * 身份证照片-正面
 	 */
@@ -56,4 +87,14 @@ public class GigUserInfoModel {
 	 * 认证视频2
 	 */
 	private String certVideo2;
+
+	/**
+	 * 邮箱
+	 */
+	private String email;
+
+	/**
+	 * 地址
+	 */
+	private String address;
 }

+ 25 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/IndustryType.java

@@ -0,0 +1,25 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum IndustryType {
+
+    NOT_STATEMENT_PROFESSIONAL_DESIGN_SERVICE("7499","其他未列明专业技术服务业"),
+    APPLICATION_SOFTWARE_DEVELOPMENT("6513","应用软件开发"),
+    PROFESSIONAL_DESIGN_SERVICE("7492","专业设计服务"),
+    ARTISTIC_CREATION_AND_PERFORMANCE("8810","文艺创作与表演"),
+    CULTURAL_EXHIBITION_SERVICE("7284","文化会展服务"),
+    SOCIO_ECONOMIC_CONSULTATION("7243","社会经济咨询"),
+    TRAVEL_AGENCY_AND_RELATED_SERVICE("7291","旅行社及相关服务"),
+    HOME_SERVICE("8010","家庭服务"),
+    BUSINESS_AGENT_SERVICE("7297","商务代理代办服务"),
+    HEALTH_ADVICE("7244","健康咨询"),
+    NOT_STATEMENT_EDUCATION("8399","其他未列明教育");
+
+    private final String code;
+
+    private final String message;
+}

+ 16 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/MemberIDCardType.java

@@ -0,0 +1,16 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum MemberIDCardType {
+
+    ID_CARD(1, "身份证");
+
+    private final int code;
+
+    private final String message;
+
+}

+ 39 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/MemberType.java

@@ -0,0 +1,39 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * {@code MemberType}
+ * <p>
+ * 人员类型与行业
+ *
+ * @author Hengchen.Sun
+ * @version 1.0.0
+ * @date 2022/02/19 22:01
+ */
+@Getter
+@AllArgsConstructor
+public enum MemberType {
+
+    PROFESSIONAL_AND_TECHNICAL_PERSONNEL("2", "专业技术人员", IndustryType.NOT_STATEMENT_PROFESSIONAL_DESIGN_SERVICE),
+    IT_RESEARCH_AND_DEVELOPMENT_PERSONNEL("3", "IT研发人员", IndustryType.APPLICATION_SOFTWARE_DEVELOPMENT),
+    PROFESSIONAL_DESIGNER("4", "专业设计人员", IndustryType.PROFESSIONAL_DESIGN_SERVICE),
+    NEW_MEDIA_PRODUCER("5", "新媒体制作人", IndustryType.ARTISTIC_CREATION_AND_PERFORMANCE),
+    EXHIBITION_SERVICE_STAFF("6", "会展服务人员", IndustryType.CULTURAL_EXHIBITION_SERVICE),
+    ONLINE_ANCHOR("7", "网络主播", IndustryType.ARTISTIC_CREATION_AND_PERFORMANCE),
+    CONTENT_CREATOR("8", "内容创作者", IndustryType.ARTISTIC_CREATION_AND_PERFORMANCE),
+    ONLINE_LECTURER("9", "网课讲师", IndustryType.SOCIO_ECONOMIC_CONSULTATION),
+    TRAVEL_SERVICE_PERSONNEL("10", "旅游地接人员", IndustryType.TRAVEL_AGENCY_AND_RELATED_SERVICE),
+    HOME_SERVICE_WORKER("11", "家庭服务人员", IndustryType.HOME_SERVICE),
+    HEALTH_CONSULTANT("12", "健康咨询师", IndustryType.HEALTH_ADVICE),
+    MARKETING_AND_PROMOTION_PERSONNEL("16", "营销推广人员", IndustryType.BUSINESS_AGENT_SERVICE),
+    EXTERNAL_ONLINE_LECTURER("17", "网课讲师(对外)", IndustryType.NOT_STATEMENT_EDUCATION),
+    YAOYI_EXCLUSIVE_PERSONNEL("20", "要易专属人员", null);
+
+    private final String code;
+
+    private final String message;
+
+    private final IndustryType industryType;
+}

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/PayChannel.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum PayChannel {
+
+    BANK_CARD(1, "银行卡");
+
+    private final int code;
+
+    private final String message;
+}

+ 15 - 13
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -24,25 +24,27 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * zb对列监听器
+ * 接收用户签约认证的结果对列监听器
  */
 @Slf4j
 @AllArgsConstructor
-//@RabbitListener(queues = MqConstants.DIRECT_MODE_GIG_SIGN_CERT_RESULT_QUEUE)
-@RabbitMqComponent(value = "reportExportReceiver")
-public class GigSignCertReceiver extends BaseRabbiMqHandler<BaseMap> {
+@RabbitListener(queues = MqConstants.DIRECT_MODE_GIG_SIGN_CERT_RES_QUEUE)
+@RabbitMqComponent(value = "gigSignCertReceiver")
+public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 
 
     @RabbitHandler
-    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
-        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
-
-            //业务处理
-            log.info("直接队列:zb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
-            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());
+    public void onMessage(String jsonStr, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessage(jsonStr, deliveryTag, channel, (MqListener<String>) (String map, Channel channel1) -> {
+
+			System.out.println(map); // {"TAX_HELPOR":{"code":2000,"message":null,"data":{"authenticationStatus":0,"bindingCardStatus":"1","exception":null}}}
+
+//            //业务处理
+//            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;
         });

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

@@ -1,7 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.service.gig.impl;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -16,10 +15,13 @@ import com.qunzhixinxi.hnqz.admin.entity.model.GigInfoModel;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigUserInfoModel;
 import com.qunzhixinxi.hnqz.admin.enums.GigChannelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.MemberIDCardType;
+import com.qunzhixinxi.hnqz.admin.enums.MemberType;
+import com.qunzhixinxi.hnqz.admin.enums.PayChannel;
 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.admin.util.Base64Util;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
 import com.qunzhixinxi.hnqz.common.rabbitmq.client.RabbitMqClient;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
@@ -29,7 +31,6 @@ import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 用户签约认证服务
@@ -72,6 +73,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 			userSub.setUserId(userSignCertDTO.getUserId());
 			userSub.setGigType(gigType);
 			userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
+			userSub.setBankPhone(userSignCertDTO.getBankPhone());
 			userSub.setCreateUser(operateUserId);
 			userSub.setCreateTime(LocalDateTime.now());
 			// 税邦云单独设置渠道类型
@@ -148,14 +150,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 	 */
 	@Override
 	public boolean batchChannelCert(UserSignCertDTO userSignCertDTO) {
-		// 根据用户id查询用户信息、认证信息
+		// redis
 		Integer userId = userSignCertDTO.getUserId();
+		// 根据用户id查询用户信息、认证信息
 		SysUser sysUser = sysUserService.getById(userId);
 		List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
 				.eq(SysUserSub::getUserId, userId));
 		if (CollUtil.isNotEmpty(userSubList)) {
 			// 封装请求数据
-			Map<GigTypeEnum, GigInfoModel> gigInfo = MapUtil.newHashMap(4);
+			BaseMap gigInfo = new BaseMap();
 			userSubList.forEach(userSub -> {
 				// 基础信息
 				GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
@@ -167,21 +170,36 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				userInfoModel.setUserId(userId);
 				userInfoModel.setName(sysUser.getRealname());
 				userInfoModel.setPhone(sysUser.getUsername());
+				userInfoModel.setDeptId(sysUser.getDeptId());
+				userInfoModel.setIdCard(sysUser.getIdCardNumber());
+				userInfoModel.setIdCardType(MemberIDCardType.ID_CARD);
+				userInfoModel.setMemberType(MemberType.YAOYI_EXCLUSIVE_PERSONNEL);
+				userInfoModel.setEmail("gig_service@yaoyi.net");
+				userInfoModel.setAddress("北京市-房山区-长阳镇");
+				userInfoModel.setPayChannel(PayChannel.BANK_CARD);
 				userInfoModel.setBankPhone(userSub.getBankPhone());
 				userInfoModel.setBankCard(userSub.getBankCardNumber());
 				userInfoModel.setIdCardFront(StrUtil.isBlank(userSub.getIdCardFrontUrl())
-						? null : Base64Util.picToBase64(upmsConfig.getClientUrl() + userSub.getIdCardFrontUrl()));
+						? null : upmsConfig.getClientUrl() + userSub.getIdCardFrontUrl());
 				userInfoModel.setIdCardBack(StrUtil.isBlank(userSub.getIdCardBackUrl())
-						? null : Base64Util.picToBase64(upmsConfig.getClientUrl() + userSub.getIdCardBackUrl()));
+						? null : upmsConfig.getClientUrl() + userSub.getIdCardBackUrl());
 				userInfoModel.setCertVideo1(StrUtil.isBlank(userSub.getCertVideo1Url())
-						? null : Base64Util.videoToBase64(upmsConfig.getClientUrl() + userSub.getCertVideo1Url()));
+						? null : upmsConfig.getClientUrl() + userSub.getCertVideo1Url());
 				userInfoModel.setCertVideo2(StrUtil.isBlank(userSub.getCertVideo2Url())
-						? null : Base64Util.videoToBase64(upmsConfig.getClientUrl() + userSub.getCertVideo2Url()));
+						? null : upmsConfig.getClientUrl() + userSub.getCertVideo2Url());
+//				userInfoModel.setIdCardFront(StrUtil.isBlank(userSub.getIdCardFrontUrl())
+//						? null : Base64Util.picToBase64(upmsConfig.getClientUrl() + userSub.getIdCardFrontUrl()));
+//				userInfoModel.setIdCardBack(StrUtil.isBlank(userSub.getIdCardBackUrl())
+//						? null : Base64Util.picToBase64(upmsConfig.getClientUrl() + userSub.getIdCardBackUrl()));
+//				userInfoModel.setCertVideo1(StrUtil.isBlank(userSub.getCertVideo1Url())
+//						? null : Base64Util.videoToBase64(upmsConfig.getClientUrl() + userSub.getCertVideo1Url()));
+//				userInfoModel.setCertVideo2(StrUtil.isBlank(userSub.getCertVideo2Url())
+//						? null : Base64Util.videoToBase64(upmsConfig.getClientUrl() + userSub.getCertVideo2Url()));
 
 				GigInfoModel infoModel = new GigInfoModel();
 				infoModel.setBaseInfo(baseInfoModel);
 				infoModel.setUserInfo(userInfoModel);
-				gigInfo.put(userSub.getGigType(), infoModel);
+				gigInfo.put(userSub.getGigType().name(), infoModel);
 			});
 			// 发送mq
 			rabbitMqClient.sendMessage(MqConstants.DIRECT_MODE_GIG_SIGN_CERT_QUEUE, JSONUtil.toJsonStr(gigInfo));