ソースを参照

直播重复登录问题

lmx 1 日 前
コミット
e5a5033c72

+ 3 - 0
fs-service/src/main/java/com/fs/his/mapper/FsUserWxMapper.java

@@ -2,6 +2,7 @@ package com.fs.his.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.his.domain.FsUserWx;
+import org.apache.ibatis.annotations.Param;
 
 public interface FsUserWxMapper extends BaseMapper<FsUserWx> {
 
@@ -10,4 +11,6 @@ public interface FsUserWxMapper extends BaseMapper<FsUserWx> {
      * @param wx    配置信息
      */
     void insertOrUpdateByUniqueKey(FsUserWx wx);
+
+    FsUserWx getFsUserWcByUserIdAndAppId(@Param("fsUserId") Long userId,@Param("appId") String appId );
 }

+ 4 - 0
fs-service/src/main/resources/mapper/his/FsUserWxMapper.xml

@@ -16,4 +16,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             open_id     = VALUES(open_id),
             update_time = VALUES(update_time)
     </insert>
+
+    <select id="getFsUserWcByUserIdAndAppId" resultType="com.fs.his.domain.FsUserWx">
+        select * from fs_user_wx where fs_user_id = #{fsUserId} and app_id = #{appId} limit 1
+    </select>
 </mapper>

+ 2 - 0
fs-user-app/src/main/java/com/fs/app/controller/course/CourseQwLoginController.java

@@ -119,6 +119,7 @@ public class CourseQwLoginController extends AppBaseController {
             if(user != null){
                 FsUser userMap = new FsUser();
                 userMap.setUserId(user.getUserId());
+                user.setMaOpenId(session.getOpenid());
 //                userMap.setCourseMaOpenId(session.getOpenid());
                 userMap.setUpdateTime(new DateTime());
                 userService.updateFsUser(userMap);
@@ -129,6 +130,7 @@ public class CourseQwLoginController extends AppBaseController {
                 user.setNickName("微信用户");
                 user.setAvatar("https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230725/a848605591384ec29d49773dd58d9345.jpg");
                 user.setStatus(1);
+                user.setMaOpenId(session.getOpenid());
 //                user.setCourseMaOpenId(session.getOpenid());
                 user.setUnionId(session.getUnionid());
                 user.setCreateTime(new Date());

+ 27 - 1
fs-user-app/src/main/java/com/fs/app/controller/store/UserScrmController.java

@@ -19,10 +19,14 @@ import com.fs.common.param.BaseQueryParam;
 import com.fs.core.config.WxMaConfiguration;
 import com.fs.course.param.newfs.FsUserCourseBeMemberParam;
 import com.fs.course.service.IFsUserCourseVideoService;
+import com.fs.his.domain.FsUserWx;
+import com.fs.his.mapper.FsUserWxMapper;
+import com.fs.his.utils.ConfigUtil;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
 import com.fs.hisStore.domain.FsUserBillScrm;
 import com.fs.hisStore.domain.FsUserPromoterApplyScrm;
 import com.fs.hisStore.domain.FsUserScrm;
+import com.fs.hisStore.enums.SysConfigEnum;
 import com.fs.hisStore.param.*;
 import com.fs.hisStore.service.*;
 import com.fs.hisStore.vo.*;
@@ -95,6 +99,11 @@ public class UserScrmController extends AppBaseController {
     @Autowired
     private ILiveOrderService liveOrderService;
 
+    @Autowired
+    private ConfigUtil configUtil;
+
+    @Autowired
+    FsUserWxMapper fsUserWxMapper;
     /**
      * 获取用户信息
      * @param request
@@ -103,6 +112,15 @@ public class UserScrmController extends AppBaseController {
     @ApiOperation("获取用户信息")
     @GetMapping("/getUserInfo")
     public R getUserInfo(HttpServletRequest request){
+
+        String queryAppId = null;
+        // 获取请求头中的 appid
+        String appid = request.getHeader("appid");
+        if(StringUtils.isNotEmpty(appid)){
+                queryAppId =  appid;
+        }else{
+            queryAppId = configUtil.generateConfigByKey(SysConfigEnum.COURSE_MA_CONFIG.getKey()).getString("appid");
+        }
         try {
             FsUserScrm user=userService.selectFsUserById(Long.parseLong(getUserId()));
             if (user.getIsShow() !=null && user.getIsShow() == 0){
@@ -115,8 +133,16 @@ public class UserScrmController extends AppBaseController {
                         user.setIsShow(1);
                     }
                 }
-
             }
+            if( null != user && StringUtils.isBlank(user.getMaOpenId()) && null != user.getUserId() && null != queryAppId){
+                 log.info("用户没有maOpenId:{}",user);
+                 //从fsUserWx里面去进行查询数据
+                FsUserWx fsUserWx = fsUserWxMapper.getFsUserWcByUserIdAndAppId(user.getUserId(), queryAppId);
+                if(null != fsUserWx){
+                    user.setMaOpenId(fsUserWx.getOpenId());
+                }
+            }
+
             return R.ok().put("user",user);
         } catch (Exception e){
             log.error("【获取用户信息】:{}",e);

+ 2 - 0
fs-user-app/src/main/java/com/fs/app/controller/store/WxUserScrmController.java

@@ -280,6 +280,7 @@ public class WxUserScrmController extends AppBaseController {
         final WxMaService wxService = WxMaConfiguration.getMaService(courseMa_appId);
         try {
             WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(param.getCode());
+            logger.info("session 得到:{}" , session);
             // 解密
             WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
             FsUserScrm user=new FsUserScrm();
@@ -320,6 +321,7 @@ public class WxUserScrmController extends AppBaseController {
                     if (!updatedAppId.equals(checkPhone.getAppId())) {
                         userMap.setAppId(updatedAppId);
                     }
+                    logger.info("=====用户======:{}",updatedAppId);
                     userService.updateFsUser(userMap);
                 }
                 else{