Browse Source

fix: 部分优化

xdd 4 tuần trước cách đây
mục cha
commit
018d118c3b

+ 5 - 1
fs-company/src/main/java/com/fs/user/FsUserAdminController.java

@@ -43,11 +43,15 @@ public class FsUserAdminController extends BaseController {
     @PostMapping("/list")
     @ApiOperation("会员列表(与移动端使用的相同查询)")
     public TableDataInfo pageList(@RequestBody FsUserPageListParam param) {
-        startPage();
+//        startPage();
 
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         param.setCompanyId(loginUser.getCompany().getCompanyId());
         param.setCompanyUserId(String.valueOf(loginUser.getUser().getUserId()));
+
+        if(param.getCompanyUserId() == null) {
+            throw new IllegalArgumentException("当前销售不存在!");
+        }
         return fsUserService.selectFsUserPageListNew(param);
     }
 

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

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

+ 11 - 2
fs-service-system/src/main/java/com/fs/company/cache/impl/CompanyTagCacheServiceImpl.java

@@ -1,14 +1,13 @@
 package com.fs.company.cache.impl;
 
 import com.fs.company.cache.ICompanyTagCacheService;
-import com.fs.company.dto.CompanyIdAndUserDTO;
 import com.fs.company.service.ICompanyTagService;
-import com.fs.company.service.ICompanyUserService;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 @Service
@@ -20,8 +19,18 @@ public class CompanyTagCacheServiceImpl implements ICompanyTagCacheService {
             .maximumSize(1000)
             .expireAfterWrite(5, TimeUnit.MINUTES)
             .build();
+
+    private static final Cache<Long,Map<Long, String>> COMPANY_USER_TAG_CACHE = Caffeine.newBuilder()
+            .maximumSize(1000)
+            .expireAfterWrite(5, TimeUnit.MINUTES)
+            .build();
     @Override
     public String findUserTagByUserId(Long key) {
         return COMPANY_TAG_CACHE.get(key,e-> companyTagService.findUserTagByUserId(key));
     }
+
+    @Override
+    public Map<Long, String> queryAllTagMap() {
+        return COMPANY_USER_TAG_CACHE.get(0L, e-> companyTagService.queryAllTagMap());
+    }
 }

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

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.fs.company.domain.CompanyTag;
 import com.fs.company.dto.CompanyIdAndUserDTO;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -78,4 +79,6 @@ public interface CompanyTagMapper
     List<CompanyTag> selectCompanyTagListByUserId(@Param("userId") Long userId);
 
     String findUserTagByUserId(@Param("userId") Long userId);
+    @MapKey("tag_id")
+    Map<Long,String> queryAllTagMap();
 }

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

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.fs.company.domain.CompanyTag;
 import com.fs.company.dto.CompanyIdAndUserDTO;
+import org.apache.ibatis.annotations.MapKey;
 
 /**
  * companyService接口
@@ -75,5 +76,7 @@ public interface ICompanyTagService
      */
     List<CompanyTag> selectCompanyTagListByMap(Map<String, Object> params);
 
+    Map<Long,String> queryAllTagMap();
+
     String findUserTagByUserId(Long key);
 }

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

@@ -119,6 +119,11 @@ public class CompanyTagServiceImpl implements ICompanyTagService
         return companyTagMapper.selectCompanyTagListByMap(params);
     }
 
+    @Override
+    public Map<Long, String> queryAllTagMap() {
+        return companyTagMapper.queryAllTagMap();
+    }
+
     @Override
     public String findUserTagByUserId(Long key) {
         return companyTagMapper.findUserTagByUserId(key);

+ 18 - 6
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java

@@ -449,12 +449,11 @@ public class FsUserServiceImpl implements IFsUserService
     public TableDataInfo selectFsUserPageListNew(FsUserPageListParam param) {
         // 找出下级销售
         String companyUserId = param.getCompanyUserId();
-        if(companyUserId == null) {
-            throw new IllegalArgumentException("当前销售不存在!");
+        if(companyUserId != null) {
+            Long companyUser = Long.parseLong(companyUserId);
+            Set<Long> userIds = companyUserCacheService.selectUserAllCompanyUserId(companyUser);
+            param.setCompanyUserIds(userIds);
         }
-        Long companyUser = Long.parseLong(companyUserId);
-        Set<Long> userIds = companyUserCacheService.selectUserAllCompanyUserId(companyUser);
-        param.setCompanyUserIds(userIds);
 
         List<FsUserPageListVO> fsUserPageListVOS = fsUserMapper.selectFsUserPageListNew(param);
         for (FsUserPageListVO item : fsUserPageListVOS) {
@@ -479,7 +478,20 @@ public class FsUserServiceImpl implements IFsUserService
                 }
 
                 String userTagByUserId = companyTagCacheService.findUserTagByUserId(item.getUserId());
-                item.setTagIds(userTagByUserId);
+                if(StringUtils.isNotEmpty(userTagByUserId)) {
+                    String[] split = userTagByUserId.split(",");
+                    Map<Long, String> tagMap = companyTagCacheService.queryAllTagMap();
+                    Set<String> tagNames = new HashSet<>();
+                    for (String tag : split) {
+                        if(tag != null) {
+                            Long tagL = Long.parseLong(tag);
+                            String tagName = tagMap.get(tagL);
+                            tagNames.add(tagName);
+                        }
+                    }
+                    item.setTagIds(userTagByUserId);
+                    item.setTag(String.join(",",tagNames));
+                }
             }
         }
 

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

@@ -53,6 +53,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="findUserTagByUserId" resultType="java.lang.String">
         select tag_ids from company_tag_user where user_id = ${userId} limit 1
     </select>
+    <select id="queryAllTagMap" resultType="java.util.Map">
+        select tag_id,tag from company_tag
+    </select>
 
     <insert id="insertCompanyTag" parameterType="CompanyTag" useGeneratedKeys="true" keyProperty="tagId">
         insert into company_tag