Browse Source

Merge remote-tracking branch 'origin/红德堂' into 红德堂

wangxy 3 ngày trước cách đây
mục cha
commit
29fc8bd740

+ 0 - 4
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -312,10 +312,6 @@ public interface FsUserMapper
 
     UserDetailsVO getCountWatchCourse (@Param("userId") Long userId, @Param("fsUserId") Long fsUserId, @Param("dateTag") String dateTag,@Param("userCompanyId")  Long userCompanyId);
 
-    UserDetailsVO getCountAnswer(@Param("userId") Long userId, @Param("fsUserId") Long fsUserId, @Param("dateTag") String dateTag);
-
-    UserDetailsVO getCountRedPacket(@Param("userId") Long userId, @Param("fsUserId") Long fsUserId, @Param("dateTag") String dateTag);
-
     FsUserSummaryCountVO countUserSummary(@Param("userId") Long userId, @Param("companyId") Long companyId);
 
     Integer getUserTotal(@Param("userId") Long userId, @Param("companyId") Long companyId);

+ 1 - 20
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -857,26 +857,7 @@ public class FsUserServiceImpl implements IFsUserService {
 
     @Override
     public UserDetailsVO getUserDetails(Long userId, Long fsUserId, String dateTag, Long userCompanyId) {
-        UserDetailsVO countWatchCourse = fsUserMapper.getCountWatchCourse(userId, fsUserId, dateTag, userCompanyId);
-        FsUserCompanyUser fsUserCompanyUser = userCompanyUserService.selectFsUserCompanyUserById(userCompanyId);
-
-        UserDetailsVO countAnswer = fsUserMapper.getCountAnswer(fsUserCompanyUser.getCompanyUserId(), fsUserId, dateTag);
-        UserDetailsVO countRedPacket = fsUserMapper.getCountRedPacket(fsUserCompanyUser.getCompanyUserId(), fsUserId, dateTag);
-        UserDetailsVO vo = new UserDetailsVO();
-        if (countWatchCourse != null) {
-            BeanUtils.copyProperties(countWatchCourse, vo);
-        }
-        if (countRedPacket != null) {
-            vo.setAnswerRedPacketTime(countRedPacket.getAnswerRedPacketTime());
-            vo.setAnswerRedPacketAmount(countRedPacket.getAnswerRedPacketAmount());
-        } else {
-            vo.setAnswerRedPacketAmount(BigDecimal.ZERO);
-        }
-        if (countAnswer != null) {
-            vo.setAnswerTime(countAnswer.getAnswerTime());
-            vo.setAnswerRightTime(countAnswer.getAnswerRightTime());
-        }
-        return vo;
+        return fsUserMapper.getCountWatchCourse(userId, fsUserId, dateTag, userCompanyId);
     }
 
     @Override

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

@@ -147,8 +147,6 @@ public interface IFsUserScrmService
 
     UserListPageVO getUserNumber(Long userId);
 
-    UserDetailsVO getUserDetails(Long userId, Long fsUserId, String dateTag, Long userCompanyId);
-
     /**
      * 查询重粉用户是否存在
      * @param userIds

+ 0 - 24
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserScrmServiceImpl.java

@@ -653,30 +653,6 @@ public class FsUserScrmServiceImpl implements IFsUserScrmService
         return pageVO;
     }
 
-    @Override
-    public UserDetailsVO getUserDetails(Long userId, Long fsUserId, String dateTag, Long userCompanyId) {
-        UserDetailsVO countWatchCourse = fsUserMapper.getCountWatchCourse(userId, fsUserId, dateTag,userCompanyId);
-        FsUserCompanyUserScrm fsUserCompanyUser = userCompanyUserService.selectFsUserCompanyUserById(userCompanyId);
-
-        UserDetailsVO countAnswer = fsUserMapper.getCountAnswer(fsUserCompanyUser.getCompanyUserId(), fsUserId, dateTag);
-        UserDetailsVO countRedPacket = fsUserMapper.getCountRedPacket(fsUserCompanyUser.getCompanyUserId(), fsUserId, dateTag);
-        UserDetailsVO vo = new UserDetailsVO();
-        if (countWatchCourse != null){
-            BeanUtils.copyProperties(countWatchCourse, vo);
-        }
-        if (countRedPacket != null) {
-            vo.setAnswerRedPacketTime(countRedPacket.getAnswerRedPacketTime());
-            vo.setAnswerRedPacketAmount(countRedPacket.getAnswerRedPacketAmount());
-        } else {
-            vo.setAnswerRedPacketAmount(BigDecimal.ZERO);
-        }
-        if (countAnswer != null) {
-            vo.setAnswerTime(countAnswer.getAnswerTime());
-            vo.setAnswerRightTime(countAnswer.getAnswerRightTime());
-        }
-        return vo;
-    }
-
     @Override
     public Integer selectFsUserByUserIds(String[] userIds, Long companyUserId) {
         return fsUserMapper.selectFsUserByUserIds(userIds, companyUserId);

+ 21 - 121
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -757,143 +757,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="getCountWatchCourse" resultType="com.fs.store.vo.h5.UserDetailsVO">
         SELECT
-        <if test="dateTag == null or dateTag =='' or dateTag == '近七天' ">
-            ifnull( sum(complete_watch_count), 0 ) AS completeWatchCount ,
-            ifnull( sum(watch_times), 0 ) AS watchTimes,
-        </if>
-        <if test="dateTag != null and dateTag !='' and dateTag != '近七天' ">
-            ifnull( complete_watch_count, 0 ) AS completeWatchCount ,
-            ifnull( watch_times, 0 ) AS watchTimes,
-        </if>
-        fs_user.user_id
-        FROM
-        fs_user_course_count
-        LEFT JOIN fs_user ON fs_user.user_id = fs_user_course_count.user_id
-        inner JOIN fs_user_company_user cu ON cu.user_id = fs_user.user_id and cu.project_id = fs_user_course_count.project_id
+            count(distinct if(fcwl.log_type = 2, fcwl.log_id, null))    completeWatchCount,
+            count(distinct fcwl.log_id)                                 watchTimes,
+            count(distinct fcal.log_id)                                 answerTime,
+            count(distinct if(fcal.is_right = 1, fcal.log_id, null))    answerRightTime,
+            count(distinct fcrpl.log_id)                                answerRedPacketTime,
+            sum(ifnull((
+                select sum(frp.amount)
+                from fs_course_red_packet_log frp
+                where frp.watch_log_id = fcwl.log_id and frp.status = 1
+            ), 0))                                                      answerRedPacketAmount
+        FROM fs_course_watch_log fcwl
+        inner join fs_user_company_user fucu on fcwl.user_id = fucu.user_id and fcwl.project = fucu.project_id and fcwl.company_user_id = fucu.company_user_id
+        left join fs_course_answer_logs fcal on fcal.watch_log_id = fcwl.log_id
+        left join fs_course_red_packet_log fcrpl on fcrpl.watch_log_id = fcwl.log_id
         <where>
             <if test="dateTag != null and dateTag !='' ">
                 <choose>
                     <when test = "dateTag == '今天'">
-                        and to_days(fs_user_course_count.create_time) = to_days(now())
+                        and to_days(fcwl.create_time) = to_days(now())
                     </when>
                     <when test = "dateTag == '昨天'">
-                        and fs_user_course_count.create_time &gt;= CURDATE() - INTERVAL 1 DAY AND fs_user_course_count.create_time &lt; CURDATE()
+                        and fcwl.create_time &gt;= CURDATE() - INTERVAL 1 DAY AND fcwl.create_time &lt; CURDATE()
                     </when>
                     <when test = "dateTag == '前天'">
-                        and fs_user_course_count.create_time &gt;= CURDATE() - INTERVAL 2 DAY AND fs_user_course_count.create_time &lt; CURDATE() - INTERVAL 1 DAY
+                        and fcwl.create_time &gt;= CURDATE() - INTERVAL 2 DAY AND fcwl.create_time &lt; CURDATE() - INTERVAL 1 DAY
                     </when>
                     <when test = "dateTag == '近七天'">
-                        and fs_user_course_count.create_time &gt;= CURDATE() - INTERVAL 7 DAY
+                        and fcwl.create_time &gt;= CURDATE() - INTERVAL 7 DAY
                     </when>
                 </choose>
             </if>
-            and fs_user.user_id = #{fsUserId}
+            and fcwl.user_id = #{fsUserId} and fucu.company_user_id = #{userId}
             <if test="userCompanyId!=null">
-                and cu.id = #{userCompanyId}
-            </if>
-        </where>
-        GROUP BY
-        fs_user.user_id
-    </select>
-
-    <select id="getCountAnswer" resultType="com.fs.store.vo.h5.UserDetailsVO">
-        SELECT
-        (
-        SELECT
-        ifnull(count( DISTINCT fs_course_answer_logs.log_id ), 0) AS answerTime
-        FROM
-        fs_course_answer_logs
-        LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
-        left join fs_course_watch_log fcwl on fs_course_answer_logs.watch_log_id =fcwl.log_id
-        left join fs_user_company_user fucu on fucu.user_id =fs_user.user_id and fcwl.project = fucu.project_id
-        <where>
-
-            <if test="dateTag != null and dateTag !='' ">
-                <choose>
-                    <when test = "dateTag == '今天'">
-                        and to_days(fs_course_answer_logs.create_time) = to_days(now())
-                    </when>
-                    <when test = "dateTag == '昨天'">
-                        and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 1 DAY AND fs_course_answer_logs.create_time &lt; CURDATE()
-                    </when>
-                    <when test = "dateTag == '前天'">
-                        and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 2 DAY AND fs_course_answer_logs.create_time &lt; CURDATE() - INTERVAL 1 DAY
-                    </when>
-                    <when test = "dateTag == '近七天'">
-                        and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 7 DAY
-                    </when>
-                </choose>
+                and fucu.id = #{userCompanyId}
             </if>
-            and fs_user.user_id = #{fsUserId} and fucu.company_user_id =#{userId}
         </where>
-        GROUP BY
-        fs_user.user_id
-        ) AS answerTime,
-        (
-        SELECT
-        ifnull(count( DISTINCT fs_course_answer_logs.log_id ), 0) AS answerRightTime
-        FROM
-        fs_course_answer_logs
-        LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
-        left join fs_course_watch_log fcwl on fs_course_answer_logs.watch_log_id =fcwl.log_id
-        left join fs_user_company_user fucu on fucu.user_id =fs_user.user_id and fcwl.project = fucu.project_id
-        <where>
-            fs_course_answer_logs.is_right = 1
-            <if test="dateTag != null and dateTag !='' ">
-                <choose>
-                    <when test = "dateTag == '今天'">
-                        and to_days(fs_course_answer_logs.create_time) = to_days(now())
-                    </when>
-                    <when test = "dateTag == '昨天'">
-                        and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 1 DAY AND fs_course_answer_logs.create_time &lt; CURDATE()
-                    </when>
-                    <when test = "dateTag == '前天'">
-                        and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 2 DAY AND fs_course_answer_logs.create_time &lt; CURDATE() - INTERVAL 1 DAY
-                    </when>
-                    <when test = "dateTag == '近七天'">
-                        and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 7 DAY
-                    </when>
-                </choose>
-            </if>
-            and fs_user.user_id = #{fsUserId} and fucu.company_user_id =#{userId}
-        </where>
-        GROUP BY
-        fs_user.user_id
-        ) AS answerRightTime;
-    </select>
-
-    <select id="getCountRedPacket" resultType="com.fs.store.vo.h5.UserDetailsVO">
-        SELECT
-        ifnull( count( DISTINCT fs_course_red_packet_log.log_id ), 0 ) AS answerRedPacketTime,
-        ifnull( sum( amount ), 0 ) AS answerRedPacketAmount,
-        fs_user.user_id
-        FROM
-        fs_course_red_packet_log
-        LEFT JOIN fs_user ON fs_user.user_id = fs_course_red_packet_log.user_id
-        left join fs_course_watch_log fcwl on fs_course_red_packet_log.watch_log_id =fcwl.log_id
-        left join fs_user_company_user fucu on fucu.user_id =fs_user.user_id and fcwl.project = fucu.project_id
-        <where>
-            fs_course_red_packet_log.status = 1
-            <if test="dateTag != null and dateTag !='' ">
-                <choose>
-                    <when test = "dateTag == '今天'">
-                        and to_days(fs_course_red_packet_log.create_time) = to_days(now())
-                    </when>
-                    <when test = "dateTag == '昨天'">
-                        and fs_course_red_packet_log.create_time &gt;= CURDATE() - INTERVAL 1 DAY AND fs_course_red_packet_log.create_time &lt; CURDATE()
-                    </when>
-                    <when test = "dateTag == '前天'">
-                        and fs_course_red_packet_log.create_time &gt;= CURDATE() - INTERVAL 2 DAY AND fs_course_red_packet_log.create_time &lt; CURDATE() - INTERVAL 1 DAY
-                    </when>
-                    <when test = "dateTag == '近七天'">
-                        and fs_course_red_packet_log.create_time &gt;= CURDATE() - INTERVAL 7 DAY
-                    </when>
-                </choose>
-            </if>
-            and  fs_user.user_id = #{fsUserId} and fucu.company_user_id =#{userId}
-        </where>
-        GROUP BY
-        fs_user.user_id
+        group by fcwl.user_id
     </select>
 
     <select id="getUserTotal" resultType="java.lang.Integer">