Explorar el Código

Merge remote-tracking branch 'origin/master'

zx hace 2 días
padre
commit
83c1f246b1
Se han modificado 21 ficheros con 311 adiciones y 170 borrados
  1. 1 1
      fs-company/src/main/java/com/fs/user/FsUserAdminController.java
  2. 1 1
      fs-company/src/main/resources/application.yml
  3. 0 19
      fs-qwhook-sop/src/main/java/com/fs/app/controller/ApisFsUserCourseVideoController.java
  4. 0 44
      fs-qwhook-sop/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java
  5. 0 20
      fs-qwhook/src/main/java/com/fs/app/controller/ApisFsUserCourseVideoController.java
  6. 57 41
      fs-qwhook/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java
  7. 4 2
      fs-service/src/main/java/com/fs/company/cache/ICompanyTagCacheService.java
  8. 33 5
      fs-service/src/main/java/com/fs/company/cache/impl/CompanyTagCacheServiceImpl.java
  9. 2 2
      fs-service/src/main/java/com/fs/company/mapper/CompanyTagMapper.java
  10. 2 2
      fs-service/src/main/java/com/fs/company/service/ICompanyTagService.java
  11. 3 3
      fs-service/src/main/java/com/fs/company/service/impl/CompanyTagServiceImpl.java
  12. 11 12
      fs-service/src/main/java/com/fs/course/mapper/FsUserCourseMapper.java
  13. 24 10
      fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java
  14. 2 0
      fs-service/src/main/java/com/fs/store/vo/h5/FsUserPageListVO.java
  15. 3 2
      fs-service/src/main/resources/application-common.yml
  16. 150 0
      fs-service/src/main/resources/application-druid-fcky-test.yml
  17. 2 2
      fs-service/src/main/resources/application-druid-zsjk.yml
  18. 6 2
      fs-service/src/main/resources/mapper/company/CompanyTagMapper.xml
  19. 1 0
      fs-service/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml
  20. 7 2
      fs-service/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml
  21. 2 0
      fs-service/src/main/resources/mapper/his/FsUserMapper.xml

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

@@ -38,7 +38,7 @@ 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());

+ 1 - 1
fs-company/src/main/resources/application.yml

@@ -3,7 +3,7 @@ server:
 # Spring配置
 spring:
   profiles:
-    active: dev
+    active: druid-fcky-test
 #    active: druid-jzzx
 #    active: druid-hdt
 #    active: druid-sxjz

+ 0 - 19
fs-qwhook-sop/src/main/java/com/fs/app/controller/ApisFsUserCourseVideoController.java

@@ -54,25 +54,6 @@ public class ApisFsUserCourseVideoController extends BaseController {
 
 
 
-    @PostMapping("/pageList")
-    @ApiOperation("课程分页列表")
-    public R list(@RequestBody UserCourseVideoPageParam param) {
-
-        QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
-
-        if (qwUser == null || qwUser.getCompanyId() == null) {
-            return R.error("员工未绑定 销售公司 或 未获取到员工信息,请重试!");
-        }
-        param.setCompanyId(qwUser.getCompanyId());
-
-
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        List<FsUserCourseVideoPageListVO> list = fsUserCourseVideoService.pageListCourseVideo(param);
-        PageInfo<FsUserCourseVideoPageListVO> pageInfo = new PageInfo<>(list);
-        return R.ok().put("data",pageInfo);
-    }
-
-
     @ApiOperation("课程视频详情")
     @GetMapping(value = "/videoDetails")
     public R getVideoDetails(Long videoId) {

+ 0 - 44
fs-qwhook-sop/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java

@@ -53,21 +53,6 @@ public class FsUserCourseVideoController {
     @Autowired
     private IQwExternalContactService qwExternalContactService;
 
-    @GetMapping("/pageList")
-    @ApiOperation("课程分页列表")
-    public ResponseResult<PageInfo<FsUserCourseVideoPageListVO>> list(UserCourseVideoPageParam param) {
-
-        QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
-
-        if (qwUser==null||qwUser.getCompanyId()==null){
-            return ResponseResult.fail(500,"无权限");
-        }
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        param.setCompanyId(qwUser.getCompanyId());
-        List<FsUserCourseVideoPageListVO> list = fsUserCourseVideoService.pageListCourseVideo(param);
-        PageInfo<FsUserCourseVideoPageListVO> pageInfo = new PageInfo<>(list);
-        return ResponseResult.ok(pageInfo);
-    }
 
     @ApiOperation("课程视频详情")
     @GetMapping(value = "/videoDetails")
@@ -75,35 +60,6 @@ public class FsUserCourseVideoController {
         return fsUserCourseVideoService.getVideoDetails(videoId);
     }
 
-    @GetMapping("/courseList")
-    @ApiOperation("获取课程下拉列表")
-    public ResponseResult<PageInfo<FsUserCourseListVO>> getAllCourseList(FsUserCourseListParam param) {
-        QwUser qwUser = qwUserService.getByQwUserIdAndCorId(param.getQwUserId(), param.getCorpId());
-        if (qwUser==null||qwUser.getCompanyId()==null){
-            return ResponseResult.fail(500,"无权限");
-        }
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        param.setCompanyId(qwUser.getCompanyId());
-        List<FsUserCourseListVO> fsUserCourseList = fsUserCourseService.getFsUserCourseList(param);
-        PageInfo<FsUserCourseListVO> pageInfo = new PageInfo<>(fsUserCourseList);
-        return ResponseResult.ok(pageInfo);
-    }
-
-    @GetMapping("/videoList")
-    @ApiOperation("获取视频下拉列表")
-    public ResponseResult<PageInfo<FsUserVideoListVO>> getAllVideoList(UserCourseVideoPageParam param) {
-        QwUser qwUser = qwUserService.getByQwUserIdAndCorId(param.getQwUserId(), param.getCorpId());
-        if (qwUser==null||qwUser.getCompanyId()==null){
-            return ResponseResult.fail(500,"无权限");
-        }
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        param.setCompanyId(qwUser.getCompanyId());
-        List<FsUserVideoListVO> listCourseVideo = fsUserCourseVideoService.getListCourseVideo(param);
-        PageInfo<FsUserVideoListVO> result = new PageInfo<>(listCourseVideo);
-        return ResponseResult.ok(result);
-    }
-
-
     @PostMapping("/getFsCourseListBySidebar")
     @ApiOperation("获取视频课程下拉列表 侧边栏")
     public R getFsCourseListBySidebar(@RequestBody FsCourseListBySidebarParam param) {

+ 0 - 20
fs-qwhook/src/main/java/com/fs/app/controller/ApisFsUserCourseVideoController.java

@@ -53,26 +53,6 @@ public class ApisFsUserCourseVideoController extends BaseController {
     private IFsCourseLinkService courseLinkService;
 
 
-
-    @PostMapping("/pageList")
-    @ApiOperation("课程分页列表")
-    public R list(@RequestBody UserCourseVideoPageParam param) {
-
-        QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
-
-        if (qwUser == null || qwUser.getCompanyId() == null) {
-            return R.error("员工未绑定 销售公司 或 未获取到员工信息,请重试!");
-        }
-        param.setCompanyId(qwUser.getCompanyId());
-
-
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        List<FsUserCourseVideoPageListVO> list = fsUserCourseVideoService.pageListCourseVideo(param);
-        PageInfo<FsUserCourseVideoPageListVO> pageInfo = new PageInfo<>(list);
-        return R.ok().put("data",pageInfo);
-    }
-
-
     @ApiOperation("课程视频详情")
     @GetMapping(value = "/videoDetails")
     public R getVideoDetails(Long videoId) {

+ 57 - 41
fs-qwhook/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java

@@ -53,19 +53,6 @@ public class FsUserCourseVideoController {
     @Autowired
     private IQwExternalContactService qwExternalContactService;
 
-    @GetMapping("/pageList")
-    @ApiOperation("课程分页列表")
-    public ResponseResult<PageInfo<FsUserCourseVideoPageListVO>> list(UserCourseVideoPageParam param) {
-        QwUser qwUser = qwUserService.getByQwUserIdAndCorId(param.getQwUserId(), param.getCorpId());
-        if (qwUser==null||qwUser.getCompanyId()==null){
-            return ResponseResult.fail(500,"无权限");
-        }
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        param.setCompanyId(qwUser.getCompanyId());
-        List<FsUserCourseVideoPageListVO> list = fsUserCourseVideoService.pageListCourseVideo(param);
-        PageInfo<FsUserCourseVideoPageListVO> pageInfo = new PageInfo<>(list);
-        return ResponseResult.ok(pageInfo);
-    }
 
     @ApiOperation("课程视频详情")
     @GetMapping(value = "/videoDetails")
@@ -73,34 +60,6 @@ public class FsUserCourseVideoController {
         return fsUserCourseVideoService.getVideoDetails(videoId);
     }
 
-    @GetMapping("/courseList")
-    @ApiOperation("获取课程下拉列表")
-    public ResponseResult<PageInfo<FsUserCourseListVO>> getAllCourseList(FsUserCourseListParam param) {
-        QwUser qwUser = qwUserService.getByQwUserIdAndCorId(param.getQwUserId(), param.getCorpId());
-        if (qwUser==null||qwUser.getCompanyId()==null){
-            return ResponseResult.fail(500,"无权限");
-        }
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        param.setCompanyId(qwUser.getCompanyId());
-        List<FsUserCourseListVO> fsUserCourseList = fsUserCourseService.getFsUserCourseList(param);
-        PageInfo<FsUserCourseListVO> pageInfo = new PageInfo<>(fsUserCourseList);
-        return ResponseResult.ok(pageInfo);
-    }
-
-    @GetMapping("/videoList")
-    @ApiOperation("获取视频下拉列表")
-    public ResponseResult<PageInfo<FsUserVideoListVO>> getAllVideoList(UserCourseVideoPageParam param) {
-        QwUser qwUser = qwUserService.getByQwUserIdAndCorId(param.getQwUserId(), param.getCorpId());
-        if (qwUser==null||qwUser.getCompanyId()==null){
-            return ResponseResult.fail(500,"无权限");
-        }
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        param.setCompanyId(qwUser.getCompanyId());
-        List<FsUserVideoListVO> listCourseVideo = fsUserCourseVideoService.getListCourseVideo(param);
-        PageInfo<FsUserVideoListVO> result = new PageInfo<>(listCourseVideo);
-        return ResponseResult.ok(result);
-    }
-
 
     @PostMapping("/getFsCourseListBySidebar")
     @ApiOperation("获取视频课程下拉列表 侧边栏")
@@ -193,6 +152,63 @@ public class FsUserCourseVideoController {
     @Autowired
     private IFsCourseLinkService courseLinkService;
 
+
+    /**
+     * 创建 发客户小程序
+     */
+
+    @RepeatSubmit
+    @PostMapping("/createMiniLink")
+    public R createMiniLink(@RequestBody FsCourseLinkMiniParam param) {
+
+        if (param.getCourseId()==null){
+            return R.error("课程id不能为空");
+        }
+        if (param.getVideoId()==null){
+            return R.error("视频id不能为空");
+        }
+        if (StringUtil.strIsNullOrEmpty(param.getQwUserId())){
+            return R.error("用户id不能为空");
+        }
+        if (StringUtil.strIsNullOrEmpty(param.getCorpId())){
+            return R.error("企业id不能为空");
+        }
+
+        if (param.getExternalUserId()==null){
+            return R.error("客户id不能为空");
+        }
+
+        return fsUserCourseVideoService.createMiniLink(param);
+    }
+
+    /**
+     * 创建发卡片
+     */
+    @RepeatSubmit
+    @PostMapping("/createCartLink")
+    public R createCartLink(@RequestBody  FsCourseLinkMiniParam param) {
+
+        if (param.getCourseId()==null){
+            return R.error("课程id不能为空");
+        }
+        if (param.getVideoId()==null){
+            return R.error("视频id不能为空");
+        }
+        if (StringUtil.strIsNullOrEmpty(param.getQwUserId())){
+            return R.error("用户id不能为空");
+        }
+        if (StringUtil.strIsNullOrEmpty(param.getCorpId())){
+            return R.error("企业id不能为空");
+        }
+
+        if (param.getExternalUserId()==null){
+            return R.error("客户id不能为空");
+        }
+
+        return fsUserCourseVideoService.createCartLink(param);
+
+    }
+
     @GetMapping("/createRoomLink")
     @ApiOperation("创建发群链接")
     public R createRoomLink(FsCourseLinkRoomParam param) {

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

@@ -1,9 +1,11 @@
 package com.fs.company.cache;
 
+import com.fs.company.domain.CompanyTag;
+
 import java.util.Map;
 
 public interface ICompanyTagCacheService {
-    String findUserTagByUserId(Long userId);
+    String findUserTagByUserId(Long userId,Long companyUserId);
 
-    Map<Long, String> queryAllTagMap();
+    Map<Long, CompanyTag> queryAllTagMap();
 }

+ 33 - 5
fs-service/src/main/java/com/fs/company/cache/impl/CompanyTagCacheServiceImpl.java

@@ -1,13 +1,17 @@
 package com.fs.company.cache.impl;
 
 import com.fs.company.cache.ICompanyTagCacheService;
+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
@@ -15,22 +19,46 @@ 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();
 
-    private static final Cache<Long,Map<Long, String>> COMPANY_USER_TAG_CACHE = Caffeine.newBuilder()
+    private static final Cache<Long,Map<Long, CompanyTag>> COMPANY_USER_TAG_CACHE = Caffeine.newBuilder()
             .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
-    public Map<Long, String> queryAllTagMap() {
+    public Map<Long, CompanyTag> queryAllTagMap() {
         return COMPANY_USER_TAG_CACHE.get(0L, e-> companyTagService.queryAllTagMap());
     }
 }

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

@@ -77,7 +77,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("tag_id")
-    Map<Long,String> queryAllTagMap();
+    Map<Long,CompanyTag> queryAllTagMap();
 }

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

@@ -74,7 +74,7 @@ public interface ICompanyTagService
      */
     List<CompanyTag> selectCompanyTagListByMap(Map<String, Object> params);
 
-    Map<Long,String> queryAllTagMap();
+    Map<Long,CompanyTag> queryAllTagMap();
 
-    String findUserTagByUserId(Long key);
+    String findUserTagByUserId(Long userId,Long companyUserId);
 }

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

@@ -118,12 +118,12 @@ public class CompanyTagServiceImpl implements ICompanyTagService
     }
 
     @Override
-    public Map<Long, String> queryAllTagMap() {
+    public Map<Long, CompanyTag> queryAllTagMap() {
         return companyTagMapper.queryAllTagMap();
     }
 
     @Override
-    public String findUserTagByUserId(Long key) {
-        return companyTagMapper.findUserTagByUserId(key);
+    public String findUserTagByUserId(Long key,Long companyUserId) {
+        return companyTagMapper.findUserTagByUserId(key,companyUserId);
     }
 }

+ 11 - 12
fs-service/src/main/java/com/fs/course/mapper/FsUserCourseMapper.java

@@ -228,23 +228,22 @@ public interface FsUserCourseMapper
     List<FsUserCourse> selectFsUserCourseAllCourse();
 
     @Select({"<script> " +
-            "SELECT\n" +
-            "        c.*,\n" +
-            "        cc.cate_name,\n" +
-            "        ucc.cate_name AS sub_cate_name\n" +
+            "SELECT DISTINCT\n" +
+            "        fcp.period_id,\n" +
+            "        fcp.period_name\n" +
             "        FROM\n" +
-            "        fs_user_course c\n" +
-            "        LEFT JOIN fs_user_course_category cc ON c.cate_id = cc.cate_id\n" +
-            "        LEFT JOIN fs_user_course_category ucc ON ucc.cate_id = c.sub_cate_id\n" +
+            "        fs_user_course_period fcp\n" +
+            "        LEFT JOIN fs_user_course_period_days fcpd ON fcpd.period_id = fcp.period_id\n" +
+            "        LEFT JOIN fs_user_course c ON c.course_id = fcpd.course_id\n" +
             "        WHERE\n" +
             "        c.is_del = 0\n" +
-            "        AND FIND_IN_SET(#{companyId}, c.company_ids)\n" +
-            "<if test = ' keyword!=null and keyword != \"\" '> " +
-            "            AND c.course_name LIKE concat('%',#{keyword},'%'\n" +
+            "        AND FIND_IN_SET(#{companyId}, fcp.company_id)\n" +
+            "        <if test=\"keyword != null and keyword !='' \">\n" +
+            "            AND fcp.period_name LIKE concat('%',#{keyword},'%'\n" +
             "            )\n" +
-            "        </if>" +
+            "        </if>\n" +
             "        ORDER BY\n" +
-            "        c.course_id" +
+            "        fcp.create_time desc, fcp.period_status asc"+
             "</script>"})
     List<FsUserCourseListVO> getFsUserCourseList(FsUserCourseListParam param);
 

+ 24 - 10
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -17,6 +17,8 @@ import com.fs.common.core.domain.R;
 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;
@@ -59,6 +61,7 @@ import com.fs.store.vo.h5.*;
 import com.fs.system.service.ISysConfigService;
 import com.fs.watch.domain.WatchUser;
 import com.fs.watch.service.WatchUserService;
+import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.http.util.Asserts;
@@ -587,6 +590,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());
@@ -594,6 +598,15 @@ 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)){
+                    item.setStatusText(userStatus);
+                }
+            }
             if(item.getUserId() != null) {
                 FsUserCourseCount byUserId = fsUserCourseCountCacheService.findByUserId(item.getUserId());
                 if(byUserId != null) {
@@ -607,17 +620,18 @@ 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, String> tagMap = companyTagCacheService.queryAllTagMap();
                     Set<String> tagNames = new HashSet<>();
                     for (String tag : split) {
-                        if(tag != null) {
+                        if(StringUtils.isNotBlank(tag)) {
                             Long tagL = Long.parseLong(tag);
-                            String tagName = tagMap.get(tagL);
-                            tagNames.add(tagName);
+                            CompanyTag companyTag = tagMap.get(tagL);
+                            if(companyTag != null) {
+                                tagNames.add(companyTag.getTag());
+                            }
                         }
                     }
                     item.setTagIds(userTagByUserId);
@@ -625,10 +639,10 @@ public class FsUserServiceImpl implements IFsUserService
                 }
 
                 // 是否宠粉
-                Integer isRepeat = qwExternalContactCacheService.selectQwIsRepeat(item.getUserId());
-                if(isRepeat != null) {
-                    item.setIsRepeat(isRepeat);
-                }
+//                Integer isRepeat = qwExternalContactCacheService.selectQwIsRepeat(item.getUserId());
+//                if(isRepeat != null) {
+//                    item.setIsRepeat(isRepeat);
+//                }
             }
         }
 

+ 2 - 0
fs-service/src/main/java/com/fs/store/vo/h5/FsUserPageListVO.java

@@ -29,6 +29,8 @@ public class FsUserPageListVO {
     @ApiModelProperty(value = "状态:1为正常,0为禁止")
     private Integer status;
 
+    private String statusText;
+
     @ApiModelProperty(value = "公司id")
     private Long companyId;
 

+ 3 - 2
fs-service/src/main/resources/application-common.yml

@@ -110,7 +110,8 @@ mybatis:
 # PageHelper分页插件
 pagehelper:
   helperDialect: mysql
-  supportMethodsArguments: true
+  reasonable: false #超出后不显示
+  supportMethodsArguments: false
   params: count=countSql
 
 # Swagger配置
@@ -134,4 +135,4 @@ zhyf:
 image:
   storage:
     local-path: C:\logoFile\logo.jpg
-    server-path: C:\logoFile\logo.jpg
+    server-path: C:\logoFile\logo.jpg

+ 150 - 0
fs-service/src/main/resources/application-druid-fcky-test.yml

@@ -0,0 +1,150 @@
+# 数据源配置
+spring:
+    profiles:
+        include: config-druid-fcky,common
+    # redis 配置
+    redis:
+        # 地址
+        host: 127.0.0.1
+        # 端口,默认为6379
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        password:
+        # 连接超时时间
+        timeout: 20s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 8
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+    datasource:
+        #        clickhouse:
+        #            type: com.alibaba.druid.pool.DruidDataSource
+        #            driverClassName: com.clickhouse.jdbc.ClickHouseDriver
+        #            url: jdbc:clickhouse://cc-2vc8zzo26w0l7m2l6.public.clickhouse.ads.aliyuncs.com/sop?compress=0&use_server_time_zone=true&use_client_time_zone=false&timezone=Asia/Shanghai
+        #            username: rt_2024
+        #            password: Yzx_19860213
+        #            initialSize: 10
+        #            maxActive: 100
+        #            minIdle: 10
+        #            maxWait: 6000
+        mysql:
+            type: com.alibaba.druid.pool.DruidDataSource
+            driverClassName: com.mysql.cj.jdbc.Driver
+            druid:
+                # 主库数据源
+                master:
+                    url: jdbc:mysql://119.45.165.149:2345/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_1q2w3e4r5t6y
+                # 从库数据源
+                slave:
+                    # 从数据源开关/默认关闭
+                    enabled: false
+                    url:
+                    username:
+                    password:
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 20
+                # 配置获取连接等待超时的时间
+                maxWait: 60000
+                # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+                timeBetweenEvictionRunsMillis: 60000
+                # 配置一个连接在池中最小生存的时间,单位是毫秒
+                minEvictableIdleTimeMillis: 300000
+                # 配置一个连接在池中最大生存的时间,单位是毫秒
+                maxEvictableIdleTimeMillis: 900000
+                # 配置检测连接是否有效
+                validationQuery: SELECT 1 FROM DUAL
+                testWhileIdle: true
+                testOnBorrow: false
+                testOnReturn: false
+                webStatFilter:
+                    enabled: true
+                statViewServlet:
+                    enabled: true
+                    # 设置白名单,不填则允许所有访问
+                    allow:
+                    url-pattern: /druid/*
+                    # 控制台管理用户名和密码
+                    login-username: fs
+                    login-password: 123456
+                filter:
+                    stat:
+                        enabled: true
+                        # 慢SQL记录
+                        log-slow-sql: true
+                        slow-sql-millis: 1000
+                        merge-sql: true
+                    wall:
+                        config:
+                            multi-statement-allow: true
+        sop:
+            type: com.alibaba.druid.pool.DruidDataSource
+            driverClassName: com.mysql.cj.jdbc.Driver
+            druid:
+                # 主库数据源
+                master:
+                    url: jdbc:mysql://119.45.165.149:2345/sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_1q2w3e4r5t6y
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 20
+                # 配置获取连接等待超时的时间
+                maxWait: 60000
+                # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+                timeBetweenEvictionRunsMillis: 60000
+                # 配置一个连接在池中最小生存的时间,单位是毫秒
+                minEvictableIdleTimeMillis: 300000
+                # 配置一个连接在池中最大生存的时间,单位是毫秒
+                maxEvictableIdleTimeMillis: 900000
+                # 配置检测连接是否有效
+                validationQuery: SELECT 1 FROM DUAL
+                testWhileIdle: true
+                testOnBorrow: false
+                testOnReturn: false
+                webStatFilter:
+                    enabled: true
+                statViewServlet:
+                    enabled: true
+                    # 设置白名单,不填则允许所有访问
+                    allow:
+                    url-pattern: /druid/*
+                    # 控制台管理用户名和密码
+                    login-username: fs
+                    login-password: 123456
+                filter:
+                    stat:
+                        enabled: true
+                        # 慢SQL记录
+                        log-slow-sql: true
+                        slow-sql-millis: 1000
+                        merge-sql: true
+                    wall:
+                        config:
+                            multi-statement-allow: true
+rocketmq:
+    name-server: rmq-1243b25nj.rocketmq.gz.public.tencenttdmq.com:8080 # RocketMQ NameServer 地址
+    producer:
+        group: my-producer-group
+        access-key: ak1243b25nj17d4b2dc1a03 # 替换为实际的 accessKey
+        secret-key: sk08a7ea1f9f4b0237 # 替换为实际的 secretKey
+    consumer:
+        group: test-group
+        access-key: ak1243b25nj17d4b2dc1a03 # 替换为实际的 accessKey
+        secret-key: sk08a7ea1f9f4b0237 # 替换为实际的 secretKey

+ 2 - 2
fs-service/src/main/resources/application-druid-zsjk.yml

@@ -43,7 +43,7 @@ spring:
                 master:
                     url: jdbc:mysql://10.206.0.12:3306/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                     username: root
-                    password: @@SOuS98
+                    password: '@@SOuS98'
                 # 从库数据源
                 slave:
                     # 从数据源开关/默认关闭
@@ -98,7 +98,7 @@ spring:
                 master:
                     url: jdbc:mysql://10.206.0.12:3306/sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                     username: root
-                    password: @@SOuS98
+                    password: '@@SOuS98'
                 # 初始连接数
                 initialSize: 5
                 # 最小连接池数量

+ 6 - 2
fs-service/src/main/resources/mapper/company/CompanyTagMapper.xml

@@ -54,9 +54,13 @@ 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>
-    <select id="queryAllTagMap" resultType="java.util.Map">
+    <resultMap id="companyTagMap" type="com.fs.company.domain.CompanyTag">
+        <id column="tag_id" property="tagId" jdbcType="BIGINT" javaType="java.lang.Long"/>
+        <id column="tag" property="tag" jdbcType="VARCHAR" javaType="java.lang.String"/>
+    </resultMap>
+    <select id="queryAllTagMap" resultMap="companyTagMap">
         select tag_id,tag from company_tag
     </select>
 

+ 1 - 0
fs-service/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -51,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFsCourseWatchLogVo"/>
         where log_id = #{logId}
     </select>
+
     <select id="selectFsCourseWatchLogListVO" resultType="com.fs.course.vo.FsCourseWatchLogListVO">
         select l.log_id,l.user_id,uc.course_name,v.title as video_name,qec.avatar as external_user_avatar,
         l.log_type,SEC_TO_TIME(l.duration) as duration,c.company_name,l.camp_period_time,l.finish_time,

+ 7 - 2
fs-service/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml

@@ -232,17 +232,22 @@
         video.video_url,
         video.thumbnail,
         video.duration,
-        video.create_time,
         video.course_id,
         video.STATUS,
         video.course_sort,
         course.course_name,
         fcpd.period_id,
-        fcpd.id
+        fcpd.id,
+        if(ccut.start_date_time is null, fcpd.start_date_time, ccut.start_date_time) as startDateTime,
+        if(ccut.end_date_time is null, fcpd.end_date_time, ccut.end_date_time) as endDateTime
         FROM `fs_user_course_video` video
         left join fs_user_course_period_days fcpd on fcpd.video_id = video.video_id
         left join fs_user_course_period fcp on fcp.period_id = fcpd.period_id
         LEFT JOIN fs_user_course course ON video.course_id = course.course_id
+        LEFT JOIN fs_user_course_company_user_time ccut ON ccut.period_id = fcpd.period_id
+        AND ccut.course_id = fcpd.course_id
+        AND ccut.video_id = fcpd.video_id
+        AND ccut.company_user_id = #{companyUserId}
         where course.is_del = 0
         AND FIND_IN_SET(#{companyId}, fcp.company_id)
         <if test="periodId != null and periodId !='' ">

+ 2 - 0
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -295,6 +295,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </choose>
         </if>
     </select>
+
     <select id="selectFsUserPageListNew" resultType="com.fs.store.vo.h5.FsUserPageListVO">
         SELECT
         fs_user.user_id,
@@ -331,6 +332,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         limit ${(pageNum-1)*pageSize},${pageSize}
     </select>
+
     <select id="selectFsUserPageListCount" resultType="java.lang.Long">
         SELECT
         count(1)