Преглед изворни кода

红德堂-总后台项目会员管理绑定时间、看课数量、最后看课时间修改

Long пре 2 недеља
родитељ
комит
c520ddf919

+ 1 - 1
fs-admin/src/main/java/com/fs/his/controller/FsUserController.java

@@ -181,13 +181,13 @@ public class FsUserController extends BaseController
     @GetMapping("/listProject")
     public TableDataInfo listProject(FsUser fsUser)
     {
-        startPage();
         if(StringUtils.isNotEmpty(fsUser.getPhone())){
             fsUser.setPhone(encryptPhone(fsUser.getPhone()));
         }
 //        List<FsUserVO> list = fsUserService.selectFsUserVOListByProject(fsUser);
 
         // xgb sql执行太慢,优化修改
+        startPage();
         List<FsUserVO> list = fsUserService.selectFsUserVOListByProjectNew(fsUser);
 
         SysRole sysRole = isCheckPermission();

+ 10 - 0
fs-service/src/main/java/com/fs/course/mapper/FsCourseWatchLogMapper.java

@@ -762,5 +762,15 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
      */
     List<WatchLogReportVO> selectAnswerStats(@Param("logIds") List<Long> logIds);
 
+    /**
+     * 获取最后看课时间
+     */
+    @Select("select max(create_time) from fs_course_watch_log where user_id = #{userId} and project = #{projectId}")
+    Date getLastWatchByUserIdAndProjectId(@Param("userId") Long userId, @Param("projectId") Long projectId);
 
+    /**
+     * 获取看课数
+     */
+    @Select("select count(log_id) from fs_course_watch_log where user_id = #{userId} and project = #{projectId}")
+    Long getCountByUserIdAndProjectId(@Param("userId") Long userId, @Param("projectId") Long projectId);
 }

+ 7 - 15
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -37,6 +37,7 @@ import com.fs.company.domain.*;
 import com.fs.company.mapper.*;
 import com.fs.company.service.ICompanyTagService;
 import com.fs.course.domain.FsUserCompanyUser;
+import com.fs.course.mapper.FsCourseWatchLogMapper;
 import com.fs.course.mapper.FsUserCourseVideoMapper;
 import com.fs.course.param.CourseAnalysisParam;
 import com.fs.course.param.newfs.FsUserCourseBeMemberParam;
@@ -192,6 +193,8 @@ public class FsUserServiceImpl implements IFsUserService {
     private IFsUserWxService fsUserWxService;
     @Autowired
     private FsPatientMapper fsPatientMapper;
+    @Autowired
+    private FsCourseWatchLogMapper courseWatchLogMapper;
 
 
     /**
@@ -1277,21 +1280,10 @@ public class FsUserServiceImpl implements IFsUserService {
     public List<FsUserVO> selectFsUserVOListByProjectNew(FsUser fsUser) {
 
         List<FsUserVO> list = fsUserMapper.selectFsUserVOListByProjectNew(fsUser);
-        if (list != null && !list.isEmpty()) {
-            // 查询看课数和最后看课时间
-            Set<Long> userIds = list.stream().map(FsUserVO::getUserId).collect(Collectors.toSet());
-            List<FsUserCourseCount> fsUserCourseCounts = fsUserCourseCountMapper.selectUserLastCountList(userIds);
-            Map<Long, FsUserCourseCount> courseCountMap = fsUserCourseCounts.stream()
-                    .collect(Collectors.toMap(FsUserCourseCount::getUserId, Function.identity()));
-
-            list.forEach(item -> {
-                FsUserCourseCount courseCount = courseCountMap.get(item.getUserId());
-                if (courseCount != null) {
-                    item.setLastWatchDate(courseCount.getLastWatchDate());
-                    item.setWatchCourseCount(courseCount.getWatchCourseCount());
-                }
-            });
-        }
+        list.forEach(u -> {
+            u.setLastWatchDate(courseWatchLogMapper.getLastWatchByUserIdAndProjectId(u.getUserId(), u.getProjectId()));
+            u.setWatchCourseCount(courseWatchLogMapper.getCountByUserIdAndProjectId(u.getUserId(), u.getProjectId()));
+        });
         return list;
     }
 

+ 10 - 7
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -414,10 +414,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 AND ucu.company_user_id = #{companyUserId}
             </if>
             <if test="registerStartTime != null and registerStartTime !='' ">
-                AND ucu.update_time &gt;= #{registerStartTime}
+                AND ucu.update_time >= #{registerStartTime}
             </if>
             <if test="registerEndTime != null and registerEndTime !='' ">
-                <![CDATA[
+            <![CDATA[
                 AND ucu.update_time < date_add(#{registerEndTime}, interval 1 day)
             ]]>
             </if>
@@ -1892,7 +1892,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectFsUserVOListByProjectNew" resultType="com.fs.his.vo.FsUserVO">
         SELECT
             u.user_id, u.nick_name, u.avatar, u.phone, u.integral, u.now_money,
-            ucu.project_id,ucu.company_user_id as companyUserId,ucu.create_time as bindTime,ucu.status,
+            ucu.project_id,ucu.company_user_id as companyUserId,ucu.update_time as bindTime,ucu.status,
             company.company_name,
             cu.nick_name   companyUserNickName
         FROM
@@ -1915,10 +1915,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test = "maps.phone != null   and  maps.phone !='' " >
                 AND u.phone LIKE CONCAT("%",#{maps.phone},"%")
             </if >
-            <if test = "maps.startCreateTime != null and maps.endCreateTime != null" >
-                AND (DATE_FORMAT( ucu.create_time, "%Y-%m-%d" ) &gt;= DATE_FORMAT(#{maps.startCreateTime}, "%Y-%m-%d")
-                and DATE_FORMAT( ucu.create_time, "%Y-%m-%d" ) &lt;= DATE_FORMAT(#{maps.endCreateTime}, "%Y-%m-%d")
-                )
+            <if test = "maps.startCreateTime != null" >
+                AND ucu.update_time >= #{registerStartTime}
+            </if >
+            <if test = "maps.endCreateTime != null" >
+            <![CDATA[
+                AND ucu.update_time < date_add(#{endCreateTime}, interval 1 day)
+            ]]>
             </if >
             <if test = "maps.registerCode != null  and  maps.registerCode !=''  " >
                 AND u.register_code = #{maps.registerCode}