Ver código fonte

Merge remote-tracking branch 'origin/master'

ct 5 dias atrás
pai
commit
e31c9a739a

+ 24 - 0
fs-company-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -106,5 +106,29 @@ public class WxH5MpController {
 
     }
 
+    @ApiOperation("单独返回用户头像和昵称的接口,不保存用户数据")
+    @PostMapping("/userInfo")
+    public R mpGetUserInfo(@Valid @RequestBody FsUserLoginByMpParam param) {
+        try {
+            //获取微信用户信息
+            WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
+            WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
+            String nickname = wxMpUser.getNickname();
+            String headImgUrl = wxMpUser.getHeadImgUrl();
+            log.info("仅仅获取用户昵称和头像,nickname: {},headImgUrl:{}", nickname, headImgUrl);
+            Map<String, Object> map = new HashMap<>();
+            map.put("nickname", nickname);
+            map.put("headImgUrl", headImgUrl);
+            return R.ok(map);
+        } catch (WxErrorException e) {
+            if (e.getError().getErrorCode() == 40163) {
+                return R.error(40163, e.getError().getErrorMsg());
+            } else {
+                return R.error("获取用户信息失败," + e.getMessage());
+            }
+        }
+
+    }
+
 
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/cache/ICompanyTagCacheService.java

@@ -6,7 +6,7 @@ import com.fs.company.dto.CompanyIdAndUserDTO;
 import java.util.Map;
 
 public interface ICompanyTagCacheService {
-    String findUserTagByUserId(Long userId);
+    String findUserTagByUserId(Long userId,Long companyUserId);
 
     Map<Long, CompanyTag> queryAllTagMap();
 }

+ 30 - 3
fs-service-system/src/main/java/com/fs/company/cache/impl/CompanyTagCacheServiceImpl.java

@@ -5,10 +5,13 @@ import com.fs.company.domain.CompanyTag;
 import com.fs.company.service.ICompanyTagService;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
+import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.Serializable;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 @Service
@@ -16,7 +19,7 @@ public class CompanyTagCacheServiceImpl implements ICompanyTagCacheService {
 
     @Autowired
     private ICompanyTagService companyTagService;
-    private static final Cache<Long,String> COMPANY_TAG_CACHE = Caffeine.newBuilder()
+    private static final Cache<TagConbKey,String> COMPANY_TAG_CACHE = Caffeine.newBuilder()
             .maximumSize(1000)
             .expireAfterWrite(5, TimeUnit.MINUTES)
             .build();
@@ -25,9 +28,33 @@ public class CompanyTagCacheServiceImpl implements ICompanyTagCacheService {
             .maximumSize(1000)
             .expireAfterWrite(5, TimeUnit.MINUTES)
             .build();
+
+
+    @Data
+    static class TagConbKey implements Serializable {
+        private Long userId;
+        private Long companyUserId;
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+            TagConbKey that = (TagConbKey) o;
+            return Objects.equals(userId, that.userId) && Objects.equals(companyUserId, that.companyUserId);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(userId, companyUserId);
+        }
+    }
     @Override
-    public String findUserTagByUserId(Long key) {
-        return COMPANY_TAG_CACHE.get(key,e-> companyTagService.findUserTagByUserId(key));
+    public String findUserTagByUserId(Long userId,Long companyUserId) {
+        TagConbKey tagConbKey = new TagConbKey();
+        tagConbKey.setUserId(userId);
+        tagConbKey.setCompanyUserId(companyUserId);
+        return COMPANY_TAG_CACHE.get(tagConbKey,e->
+                companyTagService.findUserTagByUserId(tagConbKey.getUserId(),tagConbKey.getCompanyUserId()));
     }
 
     @Override

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/mapper/CompanyTagMapper.java

@@ -78,7 +78,7 @@ public interface CompanyTagMapper
      */
     List<CompanyTag> selectCompanyTagListByUserId(@Param("userId") Long userId);
 
-    String findUserTagByUserId(@Param("userId") Long userId);
+    String findUserTagByUserId(@Param("userId") Long userId,@Param("companyUserId") Long companyUserId);
     @MapKey("tagId")
     Map<Long,CompanyTag> queryAllTagMap();
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/service/ICompanyTagService.java

@@ -78,5 +78,5 @@ public interface ICompanyTagService
 
     Map<Long,CompanyTag> queryAllTagMap();
 
-    String findUserTagByUserId(Long key);
+    String findUserTagByUserId(Long userId,Long companyUserId);
 }

+ 2 - 2
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyTagServiceImpl.java

@@ -125,7 +125,7 @@ public class CompanyTagServiceImpl implements ICompanyTagService
     }
 
     @Override
-    public String findUserTagByUserId(Long key) {
-        return companyTagMapper.findUserTagByUserId(key);
+    public String findUserTagByUserId(Long key,Long companyUserId) {
+        return companyTagMapper.findUserTagByUserId(key,companyUserId);
     }
 }

+ 21 - 15
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -975,6 +975,11 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             return ResponseResult.fail(BizResponseEnum.DATA_NOT_EXIST, getCompanyUserQRCode(companyUser));
         }
 
+        // 逻辑调整:如果会员已经绑定了销售,直接提示,不添加重粉数据了-2025年6月16日14点53分
+        if (fsUser.getCompanyUserId() != null && !param.getCompanyUserId().equals(fsUser.getCompanyUserId())){
+            return ResponseResult.fail(406,"该用户已成为其他销售会员");
+        }
+
         // 如果开启了黑名单审核,需要提示
         if(fsUser.getStatus() == 0) {
 //            return ResponseResult.fail(505, "管理开启了会员审核,请等待审核");
@@ -1014,22 +1019,23 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             courseWatchLogMapper.insertFsCourseWatchLog(fsCourseWatchLog);
         }
 
-        // 判断是否重粉,添加关系表数据
-        FsUserCompanyUser fsUserCompanyUser = getFsUserCompanyUser(param, fsUser);
-        QueryWrapper<FsUserCompanyUser> queryWrapper = new QueryWrapper<FsUserCompanyUser>().eq("user_id", param.getUserId()).eq("company_user_id", param.getCompanyUserId());
-        Integer i = fsUserCompanyUserMapper.selectCount(queryWrapper);
-        if(i == 0) {
-            fsUserCompanyUserMapper.insertFsUserCompanyUser(fsUserCompanyUser);
-        }
+//        // 判断是否重粉,添加关系表数据
+        // 逻辑调整:如果会员已经绑定了销售,直接提示,不添加重粉数据了-2025年6月16日14点58分
+//        FsUserCompanyUser fsUserCompanyUser = getFsUserCompanyUser(param, fsUser);
+//        QueryWrapper<FsUserCompanyUser> queryWrapper = new QueryWrapper<FsUserCompanyUser>().eq("user_id", param.getUserId()).eq("company_user_id", param.getCompanyUserId());
+//        Integer i = fsUserCompanyUserMapper.selectCount(queryWrapper);
+//        if(i == 0) {
+//            fsUserCompanyUserMapper.insertFsUserCompanyUser(fsUserCompanyUser);
+//        }
 
-        // 如果重粉需要打上重粉标签
-        if(1 == fsUserCompanyUser.getIsRepeatFans()){
-            FsUserCourseBeMemberParam fsUserCourseBeMemberParam = new FsUserCourseBeMemberParam();
-            fsUserCourseBeMemberParam.setUserId(param.getUserId());
-            fsUserCourseBeMemberParam.setCompanyId(param.getCompanyId());
-            fsUserCourseBeMemberParam.setCompanyUserId(param.getCompanyUserId());
-            fsUserService.setRepeatFansTag(fsUserCourseBeMemberParam);
-        }
+//        // 如果重粉需要打上重粉标签
+//        if(1 == fsUserCompanyUser.getIsRepeatFans()){
+//            FsUserCourseBeMemberParam fsUserCourseBeMemberParam = new FsUserCourseBeMemberParam();
+//            fsUserCourseBeMemberParam.setUserId(param.getUserId());
+//            fsUserCourseBeMemberParam.setCompanyId(param.getCompanyId());
+//            fsUserCourseBeMemberParam.setCompanyUserId(param.getCompanyUserId());
+//            fsUserService.setRepeatFansTag(fsUserCourseBeMemberParam);
+//        }
         return ResponseResult.ok(Boolean.TRUE);
     }
 

+ 22 - 13
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java

@@ -10,6 +10,7 @@ import com.fs.common.core.domain.ResponseResult;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.DictUtils;
+import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.company.cache.ICompanyTagCacheService;
 import com.fs.company.cache.ICompanyUserCacheService;
@@ -517,6 +518,7 @@ public class FsUserServiceImpl implements IFsUserService
         }
 
         List<FsUserPageListVO> fsUserPageListVOS = fsUserMapper.selectFsUserPageListNew(param);
+        Map<Long, CompanyTag> tagMap = companyTagCacheService.queryAllTagMap();
         for (FsUserPageListVO item : fsUserPageListVOS) {
             if(item.getCompanyUserId() != null) {
                 String companyUserName = companyUserCacheService.selectCompanyUserNameUserById(item.getCompanyUserId());
@@ -524,6 +526,9 @@ public class FsUserServiceImpl implements IFsUserService
                     item.setCompanyUserNickName(companyUserName);
                 }
             }
+            if(item.getPhone() != null) {
+                item.setPhone(ParseUtils.parsePhone(item.getPhone()));
+            }
             if(item.getStatus() != null) {
                 String userStatus = DictUtils.getDictLabel("user_status", String.valueOf(item.getStatus()));
                 if(StringUtils.isNotBlank(userStatus)){
@@ -543,11 +548,10 @@ public class FsUserServiceImpl implements IFsUserService
                     item.setStopWatchDays(byUserId.getStopWatchDays());
                     item.setCompleteWatchDate(byUserId.getCompleteWatchDate());
                 }
-
-                String userTagByUserId = companyTagCacheService.findUserTagByUserId(item.getUserId());
+                String userTagByUserId = companyTagCacheService
+                        .findUserTagByUserId(item.getUserId(),item.getCompanyUserId());
                 if(StringUtils.isNotEmpty(userTagByUserId)) {
                     String[] split = userTagByUserId.split(",");
-                    Map<Long, CompanyTag> tagMap = companyTagCacheService.queryAllTagMap();
                     Set<String> tagNames = new HashSet<>();
                     for (String tag : split) {
                         if(StringUtils.isNotBlank(tag)) {
@@ -836,6 +840,11 @@ public class FsUserServiceImpl implements IFsUserService
             return ResponseResult.fail(404,"当前用户信息不存在");
         }
 
+        // 逻辑调整:如果会员已经绑定了销售,直接提示,不添加重粉数据了-2025年6月16日14点53分
+        if (fsUser.getCompanyUserId() != null && !param.getCompanyUserId().equals(fsUser.getCompanyUserId())){
+            return ResponseResult.fail(406,"该用户已成为其他销售会员");
+        }
+
         //判断该销售是否存在
         CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
         if (Objects.isNull(companyUser)){
@@ -843,12 +852,12 @@ public class FsUserServiceImpl implements IFsUserService
         }
 
         // 判断是否绑定了销售
-        FsUserCompanyUser fsUserCompanyUser = getFsUserCompanyUser(param, fsUser);
-        QueryWrapper<FsUserCompanyUser> queryWrapper = new QueryWrapper<FsUserCompanyUser>().eq("user_id", param.getUserId()).eq("company_user_id", param.getCompanyUserId());
-        Integer i = fsUserCompanyUserMapper.selectCount(queryWrapper);
-        if(i == 0) {
-            fsUserCompanyUserMapper.insertFsUserCompanyUser(fsUserCompanyUser);
-        }
+//        FsUserCompanyUser fsUserCompanyUser = getFsUserCompanyUser(param, fsUser);
+//        QueryWrapper<FsUserCompanyUser> queryWrapper = new QueryWrapper<FsUserCompanyUser>().eq("user_id", param.getUserId()).eq("company_user_id", param.getCompanyUserId());
+//        Integer i = fsUserCompanyUserMapper.selectCount(queryWrapper);
+//        if(i == 0) {
+//            fsUserCompanyUserMapper.insertFsUserCompanyUser(fsUserCompanyUser);
+//        }
 
         // 关联销售
         if(fsUser.getCompanyUserId() == null) {
@@ -883,10 +892,10 @@ public class FsUserServiceImpl implements IFsUserService
             companyTagUserMapper.insertCompanyTagUser(companyTagUser);
         }
 
-        // 如果是重粉,直接打上重粉的标签
-        if(1 == fsUserCompanyUser.getIsRepeatFans()){
-            this.setRepeatFansTag(param);
-        }
+//        // 如果是重粉,直接打上重粉的标签
+//        if(1 == fsUserCompanyUser.getIsRepeatFans()){
+//            this.setRepeatFansTag(param);
+//        }
 
         //如果是设置了需要进入小黑屋,则需要返回提示,否则正常返回
         if(isDefaultBlack == 1){

+ 1 - 1
fs-service-system/src/main/resources/mapper/company/CompanyTagMapper.xml

@@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where ctu.user_id = #{userId}
     </select>
     <select id="findUserTagByUserId" resultType="java.lang.String">
-        select tag_ids from company_tag_user where user_id = ${userId} limit 1
+        select tag_ids from company_tag_user where user_id = ${userId} and company_user_id=${companyUserId} limit 1
     </select>
     <resultMap id="companyTagMap" type="com.fs.company.domain.CompanyTag">
         <id column="tag_id" property="tagId" jdbcType="BIGINT" javaType="java.lang.Long"/>

+ 4 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxCompanyUserController.java

@@ -164,6 +164,10 @@ public class WxCompanyUserController extends AppBaseController {
                     userMap.setNickname(param.getNickname() != null ? param.getNickname() : "微信用户");
                     userMap.setAvatar(param.getAvatar() != null ? param.getAvatar() : null);
                     userMap.setPhone(phoneNoInfo.getPhoneNumber());
+                    // 逻辑调整:如果会员已经绑定了销售,直接提示,不让注册-2025年6月16日14点53分
+                    if (user.getCompanyUserId() != null && !param.getCompanyUserId().equals(user.getCompanyUserId())){
+                        return R.error(406, "该用户已成为其他销售会员");
+                    }
                     if(companyUser != null && companyUser.getIsNeedRegisterMember() != null && companyUser.getIsNeedRegisterMember() != 1){
                         user.setCompanyId(param.getCompanyId());
                         user.setCompanyUserId(param.getCompanyUserId());

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

@@ -36,7 +36,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
-@Api("会员-h5-微信相关接口")
+@Api("会员-h5-微信相关接口(后面不需要这个接口了,再删除))")
 @RestController
 @RequestMapping("/app/wx/h5/mp")
 @Slf4j