Parcourir la source

登录记录客户小程序,点播小程序加了个app状态

xw il y a 1 semaine
Parent
commit
3ec1f0e6b5

+ 5 - 0
fs-company-app/src/main/java/com/fs/app/param/FsUserLoginByMpParam.java

@@ -9,4 +9,9 @@ import java.io.Serializable;
 public class FsUserLoginByMpParam implements Serializable {
     @NotBlank(message = "code参数缺失")
     private String code;
+    
+    /**
+     * 小程序appId
+     */
+    private String appId;
 }

+ 5 - 0
fs-service/src/main/java/com/fs/course/domain/FsCoursePlaySourceConfig.java

@@ -99,4 +99,9 @@ public class FsCoursePlaySourceConfig {
      * 是否是互医/商城小程序
      */
     private Integer isMall;
+
+    /**
+     * 小程序状态:0正常,1半封禁,2封禁
+     */
+    private Integer status;
 }

+ 3 - 0
fs-service/src/main/java/com/fs/course/param/FsCoursePlaySourceConfigCreateParam.java

@@ -54,4 +54,7 @@ public class FsCoursePlaySourceConfigCreateParam {
     @ApiModelProperty("是否是互医/商城小程序")
     private Integer isMall;
     private Long createDeptId;
+
+    @ApiModelProperty("小程序状态:0正常,1半封禁,2封禁")
+    private Integer status;
 }

+ 3 - 0
fs-service/src/main/java/com/fs/course/param/FsCoursePlaySourceConfigEditParam.java

@@ -52,4 +52,7 @@ public class FsCoursePlaySourceConfigEditParam {
     @ApiModelProperty("是否是互医/商城小程序")
     private Integer isMall;
     private Long createDeptId;
+
+    @ApiModelProperty("小程序状态:0正常,1半封禁,2封禁")
+    private Integer status;
 }

+ 3 - 0
fs-service/src/main/java/com/fs/course/vo/FsCoursePlaySourceConfigVO.java

@@ -61,4 +61,7 @@ public class FsCoursePlaySourceConfigVO {
      */
     private Integer isMall;
     private Long createDeptId;
+
+    @ApiModelProperty("小程序状态:0正常,1半封禁,2封禁")
+    private Integer status;
 }

+ 5 - 0
fs-service/src/main/java/com/fs/his/domain/FsUser.java

@@ -174,6 +174,11 @@ public class FsUser extends BaseEntity
      * **/
     private Long qwUserId;
 
+    /**
+     * 小程序appId,多个用逗号分隔
+     */
+    private String appId;
+
 
     /** 推广上级用户ID */
     private Long spreadUserId;

+ 13 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsUserScrm.java

@@ -178,6 +178,19 @@ public class FsUserScrm extends BaseEntity
      * **/
     private Long qwUserId;
 
+    /**
+     * 小程序appId,多个用逗号分隔
+     */
+    private String appId;
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
     public void setNickName(String nickname)
     {
         if(StringUtils.isNotEmpty(nickname)){

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -4209,6 +4209,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 user.setStatus(1);
                 user.setMaOpenId(session.getOpenid());
                 user.setUnionId(session.getUnionid());
+                user.setAppId(properties.getConfigs().get(0).getAppid());
                 user.setIsWeixinAuth(0);
                 user.setLastIp(ip);
                 user.setCreateTime(new Date());
@@ -4327,6 +4328,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 user.setStatus(1);
                 user.setMaOpenId(session.getOpenid());
                 user.setUnionId(session.getUnionid());
+                user.setAppId(properties.getConfigs().get(0).getAppid());
                 user.setIsWeixinAuth(0);
                 user.setLastIp(ip);
                 user.setCreateTime(new Date());

+ 5 - 1
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -48,11 +48,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="courseMaOpenId"    column="course_ma_open_id"    />
         <result property="qwExtId"    column="qw_ext_id"    />
         <result property="qwUserId"    column="qw_user_id"    />
+        <result property="appId"    column="app_id"    />
         <result property="level" column="level"/>
     </resultMap>
 
     <sql id="selectFsUserVo">
-        select user_id,qw_ext_id,sex,is_buy,`level`,course_ma_open_id,is_push,is_add_qw,source,login_device,is_individuation_push,store_open_id,password,jpush_id, is_vip,vip_start_date,vip_end_date,vip_level,vip_status,nick_name,integral_status, avatar, phone, integral,sign_num, status, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, create_time, update_time, last_ip, balance,is_weixin_auth,parent_id,qw_user_id,company_id,company_user_id,is_promoter,now_money,brokerage_price,spread_user_id, spread_time,pay_count, spread_count,user_type from fs_user
+        select user_id,qw_ext_id,sex,is_buy,`level`,course_ma_open_id,is_push,is_add_qw,source,login_device,is_individuation_push,store_open_id,password,jpush_id, is_vip,vip_start_date,vip_end_date,vip_level,vip_status,nick_name,integral_status, avatar, phone, integral,sign_num, status, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, create_time, update_time, last_ip, balance,is_weixin_auth,parent_id,qw_user_id,app_id,company_id,company_user_id,is_promoter,now_money,brokerage_price,spread_user_id, spread_time,pay_count, spread_count,user_type from fs_user
     </sql>
 
     <select id="selectFsUserList" parameterType="FsUser" resultMap="FsUserResult">
@@ -583,6 +584,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isPromoter != null">is_promoter,</if>
             <if test="payCount != null">pay_count,</if>
             <if test="spreadCount != null">spread_count,</if>
+            <if test="appId != null">app_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="nickName != null">#{nickName},</if>
@@ -632,6 +634,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isPromoter != null">#{isPromoter},</if>
             <if test="payCount != null">#{payCount},</if>
             <if test="spreadCount != null">#{spreadCount},</if>
+            <if test="appId != null">#{appId},</if>
          </trim>
     </insert>
 
@@ -683,6 +686,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="companyId != null">company_id = #{companyId},</if>
             <if test="orderCount != null">order_count = #{orderCount},</if>
             <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
+            <if test="appId != null">app_id = #{appId},</if>
         </trim>
         where user_id = #{userId}
     </update>

+ 5 - 1
fs-service/src/main/resources/mapper/hisStore/FsUserScrmMapper.xml

@@ -71,10 +71,11 @@
         <result property="react"    column="react"    />
         <result property="orderCount"    column="order_count"    />
         <result property="bindCompanyUserId"    column="bind_company_user_id"    />
+        <result property="appId"    column="app_id"    />
     </resultMap>
 
     <sql id="selectFsUserVo">
-        select user_id, username, nick_name, avatar, phone, integral, status, `level`, spread_user_id, spread_time, user_type, is_promoter, pay_count, spread_count, addres, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, nickname, create_time, update_time, last_ip, now_money, brokerage_price, balance, sign_num, integral_status, is_buy, password, real_name, birthday, id_card, jpush_id, is_vip, vip_start_date, vip_end_date, vip_level, vip_status, sex, store_open_id, is_official_account_auth, is_push, is_individuation_push, is_weixin_auth, company_id, company_user_id, register_date, register_code, test, login_device, source, is_add_qw, qw_user_id, is_show, parent_id, course_ma_open_id, history_app, qw_ext_id, `rank`, react,order_count,bind_company_user_id from fs_user
+        select user_id, username, nick_name, avatar, phone, integral, status, `level`, spread_user_id, spread_time, user_type, is_promoter, pay_count, spread_count, addres, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, nickname, create_time, update_time, last_ip, now_money, brokerage_price, balance, sign_num, integral_status, is_buy, password, real_name, birthday, id_card, jpush_id, is_vip, vip_start_date, vip_end_date, vip_level, vip_status, sex, store_open_id, is_official_account_auth, is_push, is_individuation_push, is_weixin_auth, company_id, company_user_id, register_date, register_code, test, login_device, source, is_add_qw, qw_user_id, is_show, parent_id, course_ma_open_id, history_app, qw_ext_id, `rank`, react,order_count,bind_company_user_id,app_id from fs_user
     </sql>
 
     <select id="selectFsUserList" parameterType="FsUserScrm" resultMap="FsUserResult">
@@ -447,6 +448,7 @@
             <if test="rank != null">rank,</if>
             <if test="react != null">react,</if>
             <if test="orderCount != null">order_count,</if>
+            <if test="appId != null">app_id,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="username != null">#{username},</if>
@@ -513,6 +515,7 @@
             <if test="rank != null">#{rank},</if>
             <if test="react != null">#{react},</if>
             <if test="orderCount != null">#{orderCount},</if>
+            <if test="appId != null">#{appId},</if>
         </trim>
     </insert>
 
@@ -564,6 +567,7 @@
             <if test="isPromoter != null">is_promoter = #{isPromoter},</if>
             <if test="spreadUserId != null">spread_user_id = #{spreadUserId},</if>
             <if test="brokeragePrice != null">brokerage_price = #{brokeragePrice},</if>
+            <if test="appId != null">app_id = #{appId},</if>
         </trim>
         where user_id = #{userId}
     </update>

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

@@ -256,6 +256,8 @@ public class AppLoginController extends AppBaseController{
                     user.setSex(sex);
                 }
                 user.setUnionId(unionid);
+                // 新用户 - 添加 appId
+                user.setAppId(openProperties.getAppId());
                 user.setCreateTime(new Date());
                 user.setStatus(1);
                 if (StringUtils.isNotEmpty(param.getJpushId())) {
@@ -266,6 +268,15 @@ public class AppLoginController extends AppBaseController{
                 map.put("unionid",unionid);
                 return R.ok(map);
             } else {
+                // 老用户 - 检查并添加appId(不重复添加)
+                String updatedAppId = addAppIdIfNotExists(user.getAppId(), openProperties.getAppId());
+                if (!updatedAppId.equals(user.getAppId())) {
+                    FsUser userMap = new FsUser();
+                    userMap.setUserId(user.getUserId());
+                    userMap.setAppId(updatedAppId);
+                    userService.updateFsUser(userMap);
+                }
+                
                 if (StringUtils.isNotEmpty(param.getJpushId())) {
                     updateExistingUserJpushId(user, param.getJpushId());
                 }
@@ -621,4 +632,34 @@ public class AppLoginController extends AppBaseController{
             return R.error("用户不存在!");
         }
     }
+
+    /**
+     * 添加appId到用户的appId列表中(如果不存在)
+     * @param currentAppIds 当前用户已有的appId列表(逗号分隔)
+     * @param newAppId 新的appId
+     * @return 更新后的appId列表
+     */
+    private String addAppIdIfNotExists(String currentAppIds, String newAppId) {
+        // 如果新appId为空,返回原值
+        if (StringUtils.isEmpty(newAppId)) {
+            return currentAppIds == null ? "" : currentAppIds;
+        }
+        
+        // 如果当前appId为空,直接返回新appId
+        if (StringUtils.isEmpty(currentAppIds)) {
+            return newAppId;
+        }
+        
+        // 检查是否已存在
+        String[] appIdArray = currentAppIds.split(",");
+        for (String appId : appIdArray) {
+            if (appId.trim().equals(newAppId.trim())) {
+                // 已存在,不需要添加
+                return currentAppIds;
+            }
+        }
+        
+        // 不存在,追加到末尾
+        return currentAppIds + "," + newAppId;
+    }
 }

+ 46 - 2
fs-user-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -166,7 +166,7 @@ public class WxH5MpController {
             }
 
             // 处理用户信息
-            FsUser user = processUserInfoByCourseLoginByMp(wxMpUser);
+            FsUser user = processUserInfoByCourseLoginByMp(wxMpUser, param);
 
             // 生成token并返回结果
             return generateLoginResult(user);
@@ -189,6 +189,11 @@ public class WxH5MpController {
             userUpdate.setUpdateTime(new DateTime());
             userUpdate.setNickName(wxMpUser.getNickname());
             userUpdate.setAvatar(wxMpUser.getHeadImgUrl());
+            // 老用户 - 检查并添加 appId(不重复添加)
+            String updatedAppId = addAppIdIfNotExists(user.getAppId(), param.getAppId());
+            if (!updatedAppId.equals(user.getAppId())) {
+                userUpdate.setAppId(updatedAppId);
+            }
             userService.updateFsUser(userUpdate);
             return userUpdate;
         } else {
@@ -203,13 +208,15 @@ public class WxH5MpController {
             newUser.setUnionId(wxMpUser.getUnionId());
             newUser.setCreateTime(new Date());
             newUser.setStatus(company != null && company.getFsUserIsDefaultBlack() == 1 ? 0 : 1);
+            // 新用户 - 添加 appId
+            newUser.setAppId(param.getAppId());
             userService.insertFsUser(newUser);
 
             return newUser;
         }
     }
 
-    private FsUser processUserInfoByCourseLoginByMp(WxOAuth2UserInfo wxMpUser) {
+    private FsUser processUserInfoByCourseLoginByMp(WxOAuth2UserInfo wxMpUser, FsUserLoginByCourseMpParam param) {
         FsUser user = userService.selectFsUserByUnionId(wxMpUser.getUnionId());
 
         if (user != null) {
@@ -221,6 +228,11 @@ public class WxH5MpController {
             userUpdate.setUpdateTime(new DateTime());
             userUpdate.setNickName(wxMpUser.getNickname());
             userUpdate.setAvatar(wxMpUser.getHeadImgUrl());
+            // 老用户 - 检查并添加 appId(不重复添加)
+            String updatedAppId = addAppIdIfNotExists(user.getAppId(), param.getAppId());
+            if (!updatedAppId.equals(user.getAppId())) {
+                userUpdate.setAppId(updatedAppId);
+            }
             userService.updateFsUser(userUpdate);
             return userUpdate;
         } else {
@@ -234,6 +246,8 @@ public class WxH5MpController {
 //            newUser.setCompanyUserId(companyUser.getUserId());
             newUser.setUnionId(wxMpUser.getUnionId());
             newUser.setCreateTime(new Date());
+            // 新用户 - 添加 appId
+            newUser.setAppId(param.getAppId());
             userService.insertFsUser(newUser);
             return newUser;
         }
@@ -254,6 +268,36 @@ public class WxH5MpController {
         }
     }
 
+    /**
+     * 添加appId到用户的appId列表中(如果不存在)
+     * @param currentAppIds 当前用户已有的appId列表(逗号分隔)
+     * @param newAppId 新的appId
+     * @return 更新后的appId列表
+     */
+    private String addAppIdIfNotExists(String currentAppIds, String newAppId) {
+        // 如果新appId为空,返回原值
+        if (StringUtils.isEmpty(newAppId)) {
+            return currentAppIds == null ? "" : currentAppIds;
+        }
+        
+        // 如果当前appId为空,直接返回新appId
+        if (StringUtils.isEmpty(currentAppIds)) {
+            return newAppId;
+        }
+        
+        // 检查是否已存在
+        String[] appIdArray = currentAppIds.split(",");
+        for (String appId : appIdArray) {
+            if (appId.trim().equals(newAppId.trim())) {
+                // 已存在,不需要添加
+                return currentAppIds;
+            }
+        }
+        
+        // 不存在,追加到末尾
+        return currentAppIds + "," + newAppId;
+    }
+
     private R generateLoginResult(FsUser user) {
         String token = jwtUtils.generateToken(user.getUserId());
         redisCache.setCacheObject("token:" + user.getUserId(), token, 604800, TimeUnit.SECONDS);

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

@@ -156,6 +156,8 @@ public class WxUserController extends AppBaseController{
                     user.setAvatar("https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230725/a848605591384ec29d49773dd58d9345.jpg");
                     user.setStatus(1);
                     user.setMaOpenId(session.getOpenid());
+                    // 新用户 - 添加 appId
+                    user.setAppId(appId);
                     user.setCreateTime(new Date());
                     if(session.getUnionid()!=null){
                         user.setUnionId(session.getUnionid());
@@ -176,6 +178,11 @@ public class WxUserController extends AppBaseController{
                 userMap.setMaOpenId(session.getOpenid());
                 userMap.setPhone(phoneNoInfo.getPhoneNumber());
                 userMap.setUpdateTime(new DateTime());
+                // 老用户 - 检查并添加appId(不重复添加)
+                String updatedAppId = addAppIdIfNotExists(user.getAppId(), appId);
+                if (!updatedAppId.equals(user.getAppId())) {
+                    userMap.setAppId(updatedAppId);
+                }
                 userService.updateFsUser(userMap);
             }
             String token = jwtUtils.generateToken(user.getUserId());
@@ -268,6 +275,8 @@ public class WxUserController extends AppBaseController{
                     user.setAvatar("https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230725/a848605591384ec29d49773dd58d9345.jpg");
                     user.setStatus(1);
                     user.setCourseMaOpenId(session.getOpenid());
+                    // 新用户 - 添加 appId
+                    user.setAppId(appid);
                     user.setCreateTime(new Date());
                     if(session.getUnionid()!=null){
                         user.setUnionId(session.getUnionid());
@@ -288,6 +297,11 @@ public class WxUserController extends AppBaseController{
                 userMap.setCourseMaOpenId(session.getOpenid());
                 userMap.setPhone(phoneNoInfo.getPhoneNumber());
                 userMap.setUpdateTime(new DateTime());
+                // 老用户 - 检查并添加appId(不重复添加)
+                String updatedAppId = addAppIdIfNotExists(user.getAppId(), appid);
+                if (!updatedAppId.equals(user.getAppId())) {
+                    userMap.setAppId(updatedAppId);
+                }
                 userService.updateFsUser(userMap);
             }
             String token = jwtUtils.generateToken(user.getUserId());
@@ -416,4 +430,34 @@ public class WxUserController extends AppBaseController{
 
     }
 
+    /**
+     * 添加appId到用户的appId列表中(如果不存在)
+     * @param currentAppIds 当前用户已有的appId列表(逗号分隔)
+     * @param newAppId 新的appId
+     * @return 更新后的appId列表
+     */
+    private String addAppIdIfNotExists(String currentAppIds, String newAppId) {
+        // 如果新appId为空,返回原值
+        if (StringUtils.isEmpty(newAppId)) {
+            return currentAppIds == null ? "" : currentAppIds;
+        }
+        
+        // 如果当前appId为空,直接返回新appId
+        if (StringUtils.isEmpty(currentAppIds)) {
+            return newAppId;
+        }
+        
+        // 检查是否已存在
+        String[] appIdArray = currentAppIds.split(",");
+        for (String appId : appIdArray) {
+            if (appId.trim().equals(newAppId.trim())) {
+                // 已存在,不需要添加
+                return currentAppIds;
+            }
+        }
+        
+        // 不存在,追加到末尾
+        return currentAppIds + "," + newAppId;
+    }
+
 }

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

@@ -314,6 +314,11 @@ public class WxUserScrmController extends AppBaseController {
                     if(session.getUnionid()!=null){
                         userMap.setUnionId(session.getUnionid());
                     }
+                    // 检查并添加appId(不重复添加)
+                    String updatedAppId = addAppIdIfNotExists(checkPhone.getAppId(), param.getAppId());
+                    if (!updatedAppId.equals(checkPhone.getAppId())) {
+                        userMap.setAppId(updatedAppId);
+                    }
                     userService.updateFsUser(userMap);
                 }
                 else{
@@ -324,6 +329,8 @@ public class WxUserScrmController extends AppBaseController {
                     user.setAvatar("https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230725/a848605591384ec29d49773dd58d9345.jpg");
                     user.setStatus(1);
                     user.setMaOpenId(session.getOpenid());
+                    // 新用户 - 添加 appId
+                    user.setAppId(param.getAppId());
                     user.setCreateTime(new Date());
                     if(session.getUnionid()!=null){
                         user.setUnionId(session.getUnionid());
@@ -344,6 +351,11 @@ public class WxUserScrmController extends AppBaseController {
                 userMap.setMaOpenId(session.getOpenid());
                 userMap.setPhone(phoneNoInfo.getPhoneNumber());
                 userMap.setUpdateTime(new DateTime());
+                // 检查并添加appId(不重复添加)
+                String updatedAppId = addAppIdIfNotExists(user.getAppId(), param.getAppId());
+                if (!updatedAppId.equals(user.getAppId())) {
+                    userMap.setAppId(updatedAppId);
+                }
                 userService.updateFsUser(userMap);
             }
             String token = jwtUtils.generateToken(user.getUserId());
@@ -497,4 +509,34 @@ public class WxUserScrmController extends AppBaseController {
 
     }
 
+    /**
+     * 添加appId到用户的appId列表中(如果不存在)
+     * @param currentAppIds 当前用户已有的appId列表(逗号分隔)
+     * @param newAppId 新的appId
+     * @return 更新后的appId列表
+     */
+    private String addAppIdIfNotExists(String currentAppIds, String newAppId) {
+        // 如果新appId为空,返回原值
+        if (StringUtils.isEmpty(newAppId)) {
+            return currentAppIds == null ? "" : currentAppIds;
+        }
+        
+        // 如果当前appId为空,直接返回新appId
+        if (StringUtils.isEmpty(currentAppIds)) {
+            return newAppId;
+        }
+        
+        // 检查是否已存在
+        String[] appIdArray = currentAppIds.split(",");
+        for (String appId : appIdArray) {
+            if (appId.trim().equals(newAppId.trim())) {
+                // 已存在,不需要添加
+                return currentAppIds;
+            }
+        }
+        
+        // 不存在,追加到末尾
+        return currentAppIds + "," + newAppId;
+    }
+
 }