Przeglądaj źródła

益寿缘app-优化App奖品发红包逻辑-增加appOpenId

cgp 1 tydzień temu
rodzic
commit
0999ee3b36

+ 8 - 1
fs-service/src/main/java/com/fs/his/strategy/impl/FirstLoginRedPacketStrategy.java

@@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.StringUtils;
+import com.fs.core.config.WxOpenProperties;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.FsCourseAnswerLogs;
 import com.fs.course.domain.FsCourseRedPacketLog;
@@ -55,12 +56,18 @@ public class FirstLoginRedPacketStrategy implements RewardStrategy {
 
     @Autowired
     private ISysConfigService configService;
+
+    @Autowired
+    private WxOpenProperties openProperties;
     @Override
     public RewardResult process(FsUserRewards reward) {
         log.info("处理首次登录红包发放: rewardId={}", reward.getId());
         try {
             FsUser fsUser=fsUserMapper.selectFsUserById(reward.getFsUserId());
             if (fsUser!=null){
+                if (fsUser.getAppOpenId()==null) {
+                    return RewardResult.fail("请绑定微信后再领取");
+                }
                 WxSendRedPacketParam param=buildRedPacketParam(reward, fsUser);
                 //调用发送红包接口逻辑
                 R sendRedPacket = fsStorePaymentService.sendRedPacketAppReward(param);
@@ -155,7 +162,7 @@ public class FirstLoginRedPacketStrategy implements RewardStrategy {
      */
     private WxSendRedPacketParam buildRedPacketParam(FsUserRewards reward, FsUser fsUser) {
         WxSendRedPacketParam param = new WxSendRedPacketParam();
-        param.setAppId("wxd10af32266cf4566");
+        param.setAppId(openProperties.getAppId());
         param.setOpenId(fsUser.getMaOpenId());
         param.setRedPacketMode(1);//1:为总公司
         param.setCompanyId(reward.getCompanyId());

+ 8 - 1
fs-service/src/main/java/com/fs/his/strategy/impl/WatchCourseRedPacketStrategy.java

@@ -2,6 +2,7 @@ package com.fs.his.strategy.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.fs.common.core.domain.R;
+import com.fs.core.config.WxOpenProperties;
 import com.fs.course.domain.FsCourseRedPacketLog;
 import com.fs.course.mapper.FsCourseRedPacketLogMapper;
 import com.fs.his.domain.FsUser;
@@ -31,12 +32,18 @@ public class WatchCourseRedPacketStrategy implements RewardStrategy {
 
     @Autowired
     private FsCourseRedPacketLogMapper redPacketLogMapper;
+
+    @Autowired
+    private WxOpenProperties openProperties;
     @Override
     public RewardResult process(FsUserRewards reward) {
         log.info("处理看课红包发放: rewardId={}", reward.getId());
         try {
             FsUser fsUser=fsUserMapper.selectFsUserById(reward.getFsUserId());
             if (fsUser!=null){
+                if (fsUser.getAppOpenId()==null) {
+                    return RewardResult.fail("请绑定微信后再领取");
+                }
                 WxSendRedPacketParam param=buildRedPacketParam(reward, fsUser);
                 //调用发送红包接口逻辑
                 R sendRedPacket = fsStorePaymentService.sendRedPacketAppReward(param);
@@ -80,7 +87,7 @@ public class WatchCourseRedPacketStrategy implements RewardStrategy {
      */
     private WxSendRedPacketParam buildRedPacketParam(FsUserRewards reward, FsUser fsUser) {
         WxSendRedPacketParam param = new WxSendRedPacketParam();
-        param.setAppId(reward.getAppId());
+        param.setAppId(openProperties.getAppId());
         param.setOpenId(fsUser.getMaOpenId());
         param.setRedPacketMode(1);
         param.setCompanyId(reward.getCompanyId());

+ 9 - 0
fs-user-app/src/main/java/com/fs/app/controller/AppLoginController.java

@@ -257,6 +257,7 @@ public class AppLoginController extends AppBaseController{
             Map<String, Object> map = new HashMap<>();
             if (user == null) {
                 user = new FsUser();
+                user.setAppOpenId(openid);//设置appOpenId
                 user.setLoginDevice(param.getLoginDevice()!=null ? param.getLoginDevice() : null);
                 user.setSource(param.getSource()!=null ? param.getSource() : null);
                 user.setNickName(nickname);
@@ -276,9 +277,14 @@ public class AppLoginController extends AppBaseController{
                 return R.ok(map);
             } else {
                 if (StringUtils.isNotEmpty(param.getJpushId())) {
+                    user.setAppOpenId(openid);//设置appOpenId
                     updateExistingUserJpushId(user, param.getJpushId());
                 }
                 if (StringUtils.isEmpty(user.getPhone())) {
+                    FsUser userMap = new FsUser();
+                    userMap.setUserId(user.getUserId());
+                    userMap.setAppOpenId(user.getAppOpenId());
+                    userService.updateFsUser(userMap);
                     map.put("isNew", true);
                     map.put("unionid",user.getUnionId());
                     return R.ok(map);
@@ -431,6 +437,9 @@ public class AppLoginController extends AppBaseController{
         FsUser userMap = new FsUser();
         userMap.setUserId(user.getUserId());
         userMap.setJpushId(jpushId);
+        if (StringUtils.isNotBlank(user.getAppOpenId())){
+            userMap.setAppOpenId(user.getAppOpenId());
+        }
         userService.updateFsUser(userMap);
     }
 

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/controller/AppUserRewardController.java

@@ -32,7 +32,7 @@ public class AppUserRewardController  extends AppBaseController{
     /**
      * 跳转下发首次登录注册App奖励
      * */
-    //@Login
+    @Login
     @ApiOperation("跳转下发注册登录奖励")
     @GetMapping("/issueFirstLoginReward")
     public R issueFirstLoginReward() {

+ 2 - 1
fs-user-app/src/main/java/com/fs/app/controller/UserController.java

@@ -125,7 +125,8 @@ public class UserController extends  AppBaseController {
         try {
             FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
             if (user.getPhone()!=null&&user.getPhone().length()>11&&!user.getPhone().matches("\\d+")){
-                user.setPhone(decryptPhoneMk(user.getPhone()));
+                //user.setPhone(decryptPhoneMk(user.getPhone()));
+                user.setPhone(user.getPhone());//绑定微信需要,所以放开了加密
             }
             Map<String,Object> map=new HashMap<>();
             map.put("user",user);