Browse Source

看课互医小程序登陆接口

三七 2 days ago
parent
commit
5ab9b7aeaf

+ 6 - 13
fs-qw-task/src/main/java/com/fs/app/controller/CommonController.java

@@ -19,6 +19,7 @@ import com.fs.sop.mapper.QwSopLogsMapper;
 import com.fs.sop.mapper.QwSopMapper;
 import com.fs.sop.mapper.SopUserLogsMapper;
 import com.fs.sop.service.*;
+import com.fs.sop.vo.ExtCourseSopWatchLogVO;
 import com.fs.sop.vo.QwSopLogsDoSendListTVO;
 import com.fs.store.service.IFsUserCourseCountService;
 import io.swagger.annotations.Api;
@@ -89,6 +90,9 @@ public class CommonController {
     @Autowired
     private IFsUserCourseCountService userCourseCountService;
 
+    @Autowired
+    private ISopUserLogsInfoService iSopUserLogsInfoService;
+
 
     /**
     * 发官方通连
@@ -129,19 +133,8 @@ public class CommonController {
     @GetMapping("/testSop")
     public R testSop() throws Exception {
 
-//        iSopUserLogsService.repairSopUserLogsTimer();
-//        List<QwSopLogsDoSendListTVO> expireded = iQwSopLogsService.expiredMessagesByQwSopLogs();
-//        if (!expireded.isEmpty()) {
-//            processAndInsertQwSopLogs(expireded);
-//        }
-//
-//        // 将标签字符串解析为 List    //客户总标签
-//        List<String> tagIdsList = new ArrayList<>();
-//        tagIdsList.add("etW3ylWQAAcHQ4wJdAOMMZRfQnn3Sp2w");
-//        tagIdsList.add("etW3ylWQAAdRYbwUx0P1kkL7695Vxn3g");
-//        tagIdsList.add("etW3ylWQAAZyu1C9XwtKNaCLJDE8PlBQ");
-
-        return R.ok();
+        List<ExtCourseSopWatchLogVO> tagList = iSopUserLogsInfoService.getExtCourseSopWatchLog(14185L);
+        return R.ok().put("data",tagList);
     }
 
     @GetMapping("/testRatingSop")

+ 1 - 0
fs-service/src/main/java/com/fs/common/param/LoginParam.java

@@ -13,4 +13,5 @@ public class LoginParam implements Serializable {
     private String iv;
     private String rawData;
     private String signature;
+    private String appId;
 }

+ 5 - 0
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -108,6 +108,11 @@ public interface FsUserMapper
 
     @Select("select * from fs_user where mp_open_id=#{openId}")
     FsUser selectFsUserByOpenId(String openId);
+
+    @Select("select * from fs_user where course_ma_open_id=#{openId}")
+    FsUser selectFsUserByCourseOpenId(String openId);
+
+
     @Select("select * from fs_user where phone=#{phone}")
     FsUser selectFsUserByPhone(String phone);
 

+ 1 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserService.java

@@ -86,6 +86,7 @@ public interface IFsUserService
     List<FsUserVO> selectFsUserListVO(FsUserParam fsUser);
 
     FsUser selectFsUserByOpenId(String openId);
+    FsUser selectFsUserByCourseOpenId(String openId);
 
 
     FsUser selectFsUserByCourseMaOpenId(String openId);

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -227,6 +227,11 @@ public class FsUserServiceImpl implements IFsUserService
         return fsUserMapper.selectFsUserByOpenId(openId);
     }
 
+    @Override
+    public FsUser selectFsUserByCourseOpenId(String openId) {
+        return fsUserMapper.selectFsUserByCourseOpenId(openId);
+    }
+
     @Override
     public FsUser selectFsUserByCourseMaOpenId(String openId) {
         return fsUserMapper.selectFsUserByCourseMaOpenId(openId);

+ 117 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxUserController.java

@@ -25,6 +25,7 @@ import com.fs.his.service.IFsUserWxService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
+import io.netty.util.internal.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.Synchronized;
@@ -187,6 +188,122 @@ public class WxUserController extends AppBaseController{
         }
     }
 
+
+
+    /**
+     * 看课互医小程序登陆接口
+     */
+    @ApiOperation("看课互医小程序登陆接口")
+    @PostMapping("/loginCourseHis")
+    @Transactional
+    public R loginCourseHis( @RequestBody LoginParam param) {
+
+        if (StringUtils.isBlank(param.getCode())) {
+            return R.error("code不存在");
+        }
+
+        String appid="";
+
+        if(!StringUtil.isNullOrEmpty(param.getAppId())){
+            appid=param.getAppId();
+        }else {
+            FsSysConfig con = configUtil.getSysConfig();
+            appid = con.getAppid();
+        }
+
+//        final WxMaService wxService = WxMaConfiguration.getMaService(con.getAppid());
+        final WxMaService wxService = WxMaConfiguration.getMaService(appid);
+        try {
+            WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(param.getCode());
+            this.logger.info(session.getSessionKey());
+            this.logger.info(session.getOpenid());
+            // 解密
+            WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
+            //三端用户同步,先用unionid查询
+            FsUser user = new FsUser();
+            if (session.getUnionid()!=null){
+                user = userService.selectFsUserByUnionid(session.getUnionid());
+                if (user==null){
+                    user = userService.selectFsUserByCourseOpenId(session.getOpenid());
+                }
+            }else {
+                user = userService.selectFsUserByCourseOpenId(session.getOpenid());
+            }
+
+            if(user==null){
+                //新用户
+                String phoneNumber = phoneNoInfo.getPhoneNumber();
+
+
+                //查询手机号是否存在,如果存在,更新
+                FsUser checkPhone=userService.selectFsUserByPhone(encryptPhone(phoneNumber));
+                if (checkPhone==null){
+                    checkPhone=userService.selectFsUserByPhone(phoneNumber);
+                }
+                if(checkPhone!=null){
+                    user=checkPhone;
+                    FsUser userMap=new FsUser();
+                    userMap.setCourseMaOpenId(session.getOpenid());
+                    userMap.setUserId(checkPhone.getUserId());
+                    userMap.setUpdateTime(new DateTime());
+                    if(session.getUnionid()!=null){
+                        userMap.setUnionId(session.getUnionid());
+                    }
+                    userService.updateFsUser(userMap);
+                }
+                else{
+                    //写入
+                    user=new FsUser();
+                    user.setPhone(phoneNoInfo.getPhoneNumber());
+                    user.setNickName("微信用户"+phoneNoInfo.getPhoneNumber().substring(phoneNoInfo.getPhoneNumber().length()-4));
+                    user.setAvatar("https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230725/a848605591384ec29d49773dd58d9345.jpg");
+                    user.setStatus(1);
+                    user.setCourseMaOpenId(session.getOpenid());
+                    user.setCreateTime(new Date());
+                    if(session.getUnionid()!=null){
+                        user.setUnionId(session.getUnionid());
+                    }
+                    userService.insertFsUser(user);
+                }
+            }
+            else{
+                if(user.getStatus().equals(0)){
+
+                    return R.error("此会员已禁用");
+                }
+                FsUser userMap=new FsUser();
+                userMap.setUserId(user.getUserId());
+                if(session.getUnionid()!=null){
+                    userMap.setUnionId(session.getUnionid());
+                }
+                userMap.setCourseMaOpenId(session.getOpenid());
+                userMap.setPhone(phoneNoInfo.getPhoneNumber());
+                userMap.setUpdateTime(new DateTime());
+                userService.updateFsUser(userMap);
+            }
+            String token = jwtUtils.generateToken(user.getUserId());
+//            redisCache.setCacheObject("token:"+user.getUserId(),token,365, TimeUnit.DAYS);
+            Map<String,Object> map=new HashMap<>();
+            map.put("token",token);
+            user.setPhone(encryptPhone(phoneNoInfo.getPhoneNumber()));
+            map.put("user",user);
+            FsUserLoginLog log = new FsUserLoginLog();
+            log.setCode(param.getCode());
+            log.setLoginJson(JSON.toJSONString(param));
+//            log.setUserRegisterJson(JSON.toJSONString(jsonMap));
+            log.setStatus(1);
+            log.setUserId(user.getUserId());
+            log.setPhone(user.getPhone());
+            log.setMaOpenId(user.getMaOpenId());
+            log.setCreateTime(DateUtils.getNowDate());
+            fsUserLoginLogMapper.insertFsUserLoginLog(log);
+            return R.ok(map);
+        } catch (WxErrorException e) {
+            //this.logger.error(e.getMessage(), e);
+            return R.error("授权失败,"+e.getMessage());
+        }
+    }
+
     @ApiOperation("小程序看课登录")
     @PostMapping("/courseLogin")
     @Transactional