Pārlūkot izejas kodu

uuid初始化时不写入数据库记录

刘立冬 1 mēnesi atpakaļ
vecāks
revīzija
c355366876

+ 19 - 2
risk-control-core/src/main/java/com/tzld/piaoquan/risk/control/service/impl/QywxUserDataService.java

@@ -3,11 +3,11 @@ package com.tzld.piaoquan.risk.control.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.github.pagehelper.PageHelper;
+import com.tzld.piaoquan.risk.control.config.LoginUserContext;
 import com.tzld.piaoquan.risk.control.dao.mapper.UserBaseMapper;
 import com.tzld.piaoquan.risk.control.model.po.UserBase;
 import com.tzld.piaoquan.risk.control.model.po.UserBaseExample;
 import com.tzld.piaoquan.risk.control.model.qywx.QwCallBackWrapperData;
-import com.tzld.piaoquan.risk.control.model.qywx.QwNeedVerifyModel;
 import com.tzld.piaoquan.risk.control.service.qywx.Constant;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -101,7 +101,7 @@ public class QywxUserDataService {
         private String jobPosition;
     }
 
-    public void processUserData(String originalJson) {
+    public void loginSuccess(String originalJson) {
         // 1. 解析外层数据
         QwCallBackWrapperData wrapperData = JSON.parseObject(originalJson, QwCallBackWrapperData.class);
         if (StringUtils.isEmpty(wrapperData.getJson())) {
@@ -126,6 +126,7 @@ public class QywxUserDataService {
         userBase.setCorpName(data.corpName);
         userBase.setUnionid(data.unionId);
         userBase.setPosition(data.jobPosition);
+        Long userId = LoginUserContext.getUserId();
 
         // 时间处理(优先使用Create_time)
         Long createTime = data.createTime2 != null && data.createTime2 > 0 ? data.createTime2 : data.createTime1;
@@ -139,6 +140,22 @@ public class QywxUserDataService {
         int deletedCount = userBaseMapper.deleteByExample(deleteExample);
         log.info("Deleted {} old records for vid: {}", deletedCount, data.vid);
 
+        // 查询是否已存在
+        UserBaseExample example = new UserBaseExample();
+        example.createCriteria().andUuidEqualTo(envelop.getUuid());
+        List<UserBase> existUsers = userBaseMapper.selectByExample(example);
+        if (!existUsers.isEmpty()) {
+            UserBase existUser = existUsers.get(0);
+            userBase.setId(existUser.getId());
+            userBase.setCreateUser(userId);
+            userBase.setUpdateUser(userId);
+            userBase.setCreateTime(existUser.getCreateTime());
+            userBaseMapper.updateByPrimaryKeySelective(userBase);
+        } else {
+            userBase.setCreateUser(userId);
+            userBase.setUpdateUser(userId);
+            userBaseMapper.insertSelective(userBase);
+        }
         // 3. 插入新记录
         userBaseMapper.insertSelective(userBase);
         log.info("Inserted new record for vid: {}", data.vid);

+ 2 - 3
risk-control-server/src/main/java/com/tzld/piaoquan/risk/control/controller/QwCallbackController.java

@@ -8,7 +8,6 @@ import com.tzld.piaoquan.risk.control.service.qywx.Constant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -34,7 +33,7 @@ public class QwCallbackController {
 
         switch ((int) wrapperData.getType()) {
             case Constant.LOGIN_SUCCESS:
-                userDataService.processUserData(callbackData);
+                userDataService.loginSuccess(callbackData);
                 LOGGER.info("Login success: {}", callbackData);
                 break;
             case Constant.SECONDERY_VERIFY:
@@ -64,7 +63,7 @@ public class QwCallbackController {
                 LOGGER.warn("Unknown message type: {}", wrapperData.getType());
         }
         if (wrapperData != null && wrapperData.getType() == Constant.LOGIN_SUCCESS) {
-            userDataService.processUserData(callbackData);
+            userDataService.loginSuccess(callbackData);
         }
         // Handle the message