Browse Source

fix 同步测试

zoujiajian 3 years ago
parent
commit
a02a9b79c0

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserTransferLogMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserTransferLog;
+
+/*
+ *项目名: netflix
+ *文件名: UserTransferLogMapper
+ *创建者: JavaZou
+ *创建时间:2023/1/12 10:11
+ */
+public interface UserTransferLogMapper extends BaseMapper<UserTransferLog> {
+}

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserTransferLog.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: UserTransferLog
+ *创建者: JavaZou
+ *创建时间:2023/1/12 10:10
+ */
+@Getter
+@Setter
+public class UserTransferLog extends BaseEntity{
+	private String appId;
+
+	private Long userId;
+
+	private String oldUnionid;
+
+	private String newUnionid;
+
+	private String type;
+}

+ 16 - 1
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.constant.TaskTypeEnum;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.config.WeChatConfig;
 import com.cyksj.mapper.UserMapper;
+import com.cyksj.mapper.UserTransferLogMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeSharedMapper;
 import com.cyksj.mapper.market.task.TaskTypeMapper;
 import com.cyksj.model.dto.GzhOAuth2UserInfo;
@@ -15,6 +17,7 @@ import com.cyksj.model.dto.UserWhoami;
 import com.cyksj.model.entity.TaskType;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.entity.UserDistributeShared;
+import com.cyksj.model.entity.UserTransferLog;
 import com.cyksj.service.market.task.TaskService;
 import com.cyksj.service.user.UserService;
 import com.cyksj.service.wechat.WeChatService;
@@ -44,6 +47,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
     private final TaskTypeMapper taskTypeMapper;
 
+    private final WeChatConfig weChatConfig;
+
+    private final UserTransferLogMapper userTransferLogMapper;
+
     @Override
     public User saveAuth(GzhOAuth2UserInfo info, Long sharedId) {
         final String unionid = info.getUnionid();
@@ -63,7 +70,15 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 .setProvince(info.getProvince())
                 .setCity(info.getCity())
                 .setHeadimgurl(info.getHeadimgurl());
-
+        if (!user.getUnionid().equals(unionid)) {
+            UserTransferLog log = new UserTransferLog();
+            log.setAppId(weChatConfig.getAppid());
+            log.setUserId(user.getId());
+            log.setType("授权同步");
+            log.setOldUnionid(user.getUnionid());
+            log.setNewUnionid(info.getUnionid());
+            userTransferLogMapper.insert(log);
+        }
         user.setUnionid(unionid);
         user.setOpenId(info.getOpenid());
         UserDistributeShared userDistributeShared = null;

+ 52 - 4
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -1,25 +1,27 @@
 package com.cyksj.web.controller.user;
 
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.OrderDonMapper;
+import com.cyksj.mapper.UserTransferLogMapper;
 import com.cyksj.mapper.manage.coupon.CouponUserMapper;
 import com.cyksj.mapper.market.task.UserBindPhoneMapper;
+import com.cyksj.model.dto.GzhUnionidUserinfo;
 import com.cyksj.model.dto.UserWhoami;
-import com.cyksj.model.entity.CouponUser;
-import com.cyksj.model.entity.OrderDon;
-import com.cyksj.model.entity.User;
-import com.cyksj.model.entity.UserBindPhone;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.request.ExchangeCodeTicket;
 import com.cyksj.model.views.RenewalView;
 import com.cyksj.model.views.UserPersonalView;
 import com.cyksj.service.exchange.ExchangeCodeService;
 import com.cyksj.service.relation.GroupRelationFrontService;
 import com.cyksj.service.user.UserService;
+import com.cyksj.service.wechat.WeChatService;
 import com.cyksj.web.util.StpUserUtil;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -31,6 +33,7 @@ import java.util.List;
 @RequestMapping("/applets/user")
 @RestController
 @RequiredArgsConstructor
+@Slf4j
 public class UserController {
 
     private final UserService userService;
@@ -98,4 +101,49 @@ public class UserController {
         }
         return GatewayResponse.SUCCESS.newBuilder().toResult(personalView);
     }
+
+    private final WeChatService weChatService;
+
+    private final UserTransferLogMapper userTransferLogMapper;
+
+    /**
+     * 获取微信用户信息
+     */
+    @GetMapping("/get/wx/user")
+    public void syncUser() {
+        List<User> users = userService.list(Wrappers.lambdaQuery(User.class)
+                .ne(User::getUnionid, ""));
+        String appId = "wxd58016eee53b6558";
+        users.forEach(user->{
+            try {
+                String accessToken = weChatService.getAccessToken();
+                GzhUnionidUserinfo userInfo2 = weChatService.getUserInfo2(accessToken, user.getOpenId());
+                if (userInfo2 == null) {
+                    log.info(user.getOpenId() + "失联");
+                }
+                if (StrUtil.isEmpty(userInfo2.getUnionid())) {
+                    log.info(user.getOpenId() + "未关注新公众号");
+                    return;
+                }
+                if (user.getUnionid().equals(userInfo2.getUnionid())) {
+                    log.info("新旧公众号unionid相同");
+                    return;
+                } else {
+                    user.setUnionid(userInfo2.getUnionid());
+                    userService.updateById(user);
+
+                    UserTransferLog log = new UserTransferLog();
+                    log.setAppId(appId);
+                    log.setUserId(user.getId());
+                    log.setOldUnionid(user.getUnionid());
+                    log.setType("手动同步");
+                    log.setNewUnionid(userInfo2.getUnionid());
+
+                    userTransferLogMapper.insert(log);
+                }
+            } catch (Exception e) {
+                System.out.println("获取accesstoken错误");
+            }
+        });
+    }
 }

File diff suppressed because it is too large
+ 0 - 0
netflix-web/src/main/resources/application-prd.yml


+ 1 - 1
netflix-web/src/main/resources/application.yml

@@ -1 +1 @@
-spring:
  profiles:
    active:
      - ${activeProfile}
    
+spring:
  profiles:
    active: prd
    

Some files were not shown because too many files changed in this diff