Browse Source

Merge remote-tracking branch 'origin/master'

zx 4 days ago
parent
commit
9179a2d30e

+ 13 - 1
fs-admin/src/main/java/com/fs/course/controller/FsUserWatchCourseStatisticsController.java

@@ -105,6 +105,18 @@ public class FsUserWatchCourseStatisticsController extends BaseController
         return toAjax(fsUserWatchCourseStatisticsService.deleteFsUserWatchCourseStatisticsByIds(ids));
         return toAjax(fsUserWatchCourseStatisticsService.deleteFsUserWatchCourseStatisticsByIds(ids));
     }
     }
 
 
+    /**
+     * 查询会员观看数据明细汇总
+     */
+    @PreAuthorize("@ss.hasPermi('course:userWatchCourseStatistics:listTotal')")
+    @GetMapping("/listTotal")
+    public TableDataInfo listTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
+    {
+        startPage();
+        List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsListTotal(fsUserWatchCourseStatistics);
+        return getDataTable(list);
+    }
+
     /**
     /**
      * 导出会员看课统计-按课程汇总统计列表
      * 导出会员看课统计-按课程汇总统计列表
      */
      */
@@ -112,7 +124,7 @@ public class FsUserWatchCourseStatisticsController extends BaseController
     @GetMapping("/exportTotal")
     @GetMapping("/exportTotal")
     public AjaxResult exportTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     public AjaxResult exportTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     {
     {
-        List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsList(fsUserWatchCourseStatistics);
+        List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsListTotal(fsUserWatchCourseStatistics);
         List<FsUserWatchCourseStatisticsExportVO> listVO = list.stream().map(v -> {
         List<FsUserWatchCourseStatisticsExportVO> listVO = list.stream().map(v -> {
             FsUserWatchCourseStatisticsExportVO vo = new FsUserWatchCourseStatisticsExportVO();
             FsUserWatchCourseStatisticsExportVO vo = new FsUserWatchCourseStatisticsExportVO();
             BeanUtils.copyProperties(v, vo);
             BeanUtils.copyProperties(v, vo);

+ 3 - 2
fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -73,12 +73,12 @@ public class CompanyUserController extends AppBaseController {
         // 判断是否管理员 或者包含 1:全部数据权限
         // 判断是否管理员 或者包含 1:全部数据权限
         if (companyUser.isAdmin() || companyRoles.stream().anyMatch(r -> "1".equals(r.getDataScope()))) {
         if (companyUser.isAdmin() || companyRoles.stream().anyMatch(r -> "1".equals(r.getDataScope()))) {
             PageHelper.startPage(pageNum, pageSize);
             PageHelper.startPage(pageNum, pageSize);
-            companyUsers = companyUserService.getCompanyUserListByDeptId(null);
+            companyUsers = companyUserService.getCompanyUserListByCompanyIdAndDeptId(companyUser.getCompanyId(), null);
         }
         }
         // 判断是否包含 3:本部门数据权限 4:本部门及以下数据权限
         // 判断是否包含 3:本部门数据权限 4:本部门及以下数据权限
         else if (companyRoles.stream().anyMatch(r -> "3".equals(r.getDataScope()) || "4".equals(r.getDataScope()))) {
         else if (companyRoles.stream().anyMatch(r -> "3".equals(r.getDataScope()) || "4".equals(r.getDataScope()))) {
             PageHelper.startPage(pageNum, pageSize);
             PageHelper.startPage(pageNum, pageSize);
-            companyUsers = companyUserService.getCompanyUserListByDeptId(companyUser.getDeptId());
+            companyUsers = companyUserService.getCompanyUserListByCompanyIdAndDeptId(companyUser.getCompanyId(), companyUser.getDeptId());
         }
         }
         // 默认空 -- 判断是否包含 5:仅可查看本人
         // 默认空 -- 判断是否包含 5:仅可查看本人
         else {
         else {
@@ -190,6 +190,7 @@ public class CompanyUserController extends AppBaseController {
         BeanUtils.copyProperties(param, companyUser);
         BeanUtils.copyProperties(param, companyUser);
 
 
         companyUser.setUserName(param.getPhoneNumber());
         companyUser.setUserName(param.getPhoneNumber());
+        companyUser.setUserType("01");
         companyUser.setPhonenumber(param.getPhoneNumber());
         companyUser.setPhonenumber(param.getPhoneNumber());
         companyUser.setPassword(SecurityUtils.encryptPassword(companyUser.getPassword()));
         companyUser.setPassword(SecurityUtils.encryptPassword(companyUser.getPassword()));
         companyUser.setCreateTime(new Date());
         companyUser.setCreateTime(new Date());

+ 20 - 1
fs-company/src/main/java/com/fs/course/controller/FsUserWatchCourseStatisticsController.java

@@ -54,10 +54,27 @@ public class FsUserWatchCourseStatisticsController extends BaseController
     @GetMapping("/export")
     @GetMapping("/export")
     public AjaxResult export(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     public AjaxResult export(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     {
     {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        fsUserWatchCourseStatistics.setCompanyId( loginUser.getCompany().getCompanyId());
         List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsList(fsUserWatchCourseStatistics);
         List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsList(fsUserWatchCourseStatistics);
         ExcelUtil<FsUserWatchCourseStatistics> util = new ExcelUtil<FsUserWatchCourseStatistics>(FsUserWatchCourseStatistics.class);
         ExcelUtil<FsUserWatchCourseStatistics> util = new ExcelUtil<FsUserWatchCourseStatistics>(FsUserWatchCourseStatistics.class);
         return util.exportExcel(list, "会员观看数据明细");
         return util.exportExcel(list, "会员观看数据明细");
     }
     }
+
+    /**
+     * 查询会员观看数据明细汇总
+     */
+    @PreAuthorize("@ss.hasPermi('course:userWatchCourseStatistics:listTotal')")
+    @GetMapping("/listTotal")
+    public TableDataInfo listTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        fsUserWatchCourseStatistics.setCompanyId( loginUser.getCompany().getCompanyId());
+        List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsListTotal(fsUserWatchCourseStatistics);
+        return getDataTable(list);
+    }
+
     /**
     /**
      * 导出会员看课统计-按课程汇总统计列表
      * 导出会员看课统计-按课程汇总统计列表
      */
      */
@@ -65,7 +82,9 @@ public class FsUserWatchCourseStatisticsController extends BaseController
     @GetMapping("/exportTotal")
     @GetMapping("/exportTotal")
     public AjaxResult exportTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     public AjaxResult exportTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
     {
     {
-        List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsList(fsUserWatchCourseStatistics);
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        fsUserWatchCourseStatistics.setCompanyId( loginUser.getCompany().getCompanyId());
+        List<FsUserWatchCourseStatistics> list = fsUserWatchCourseStatisticsService.selectFsUserWatchCourseStatisticsListTotal(fsUserWatchCourseStatistics);
         List<FsUserWatchCourseStatisticsExportVO> listVO = list.stream().map(v -> {
         List<FsUserWatchCourseStatisticsExportVO> listVO = list.stream().map(v -> {
             FsUserWatchCourseStatisticsExportVO vo = new FsUserWatchCourseStatisticsExportVO();
             FsUserWatchCourseStatisticsExportVO vo = new FsUserWatchCourseStatisticsExportVO();
             BeanUtils.copyProperties(v, vo);
             BeanUtils.copyProperties(v, vo);

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

@@ -284,10 +284,11 @@ public interface CompanyUserMapper
 
 
     /**
     /**
      * 根据部门ID查询销售列表
      * 根据部门ID查询销售列表
+     * @param companyId 公司ID
      * @param deptId    部门ID
      * @param deptId    部门ID
      * @return  list
      * @return  list
      */
      */
-    List<CompanyUser> selectAllCompanyUserByDeptId(@Param("deptId") Long deptId);
+    List<CompanyUser> selectAllCompanyUserByCompanyIdAndDeptId(@Param("companyId") Long companyId, @Param("deptId") Long deptId);
 
 
     List<String> selectCompanyUserNameByIds(@Param("companyUserIDs")List<Long> companyUserID);
     List<String> selectCompanyUserNameByIds(@Param("companyUserIDs")List<Long> companyUserID);
 }
 }

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

@@ -156,10 +156,11 @@ public interface ICompanyUserService {
 
 
     /**
     /**
      * 查询销售列表
      * 查询销售列表
+     * @param companyId 公司ID
      * @param deptId 部门ID
      * @param deptId 部门ID
      * @return list
      * @return list
      */
      */
-    List<CompanyUser> getCompanyUserListByDeptId(Long deptId);
+    List<CompanyUser> getCompanyUserListByCompanyIdAndDeptId(Long companyId, Long deptId);
 
 
     List<CompanyUser> getAllUserListLimit(Long companyId, String keywords);
     List<CompanyUser> getAllUserListLimit(Long companyId, String keywords);
 
 

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

@@ -530,12 +530,13 @@ public class CompanyUserServiceImpl implements ICompanyUserService
 
 
     /**
     /**
      * 查询销售列表
      * 查询销售列表
+     * @param companyId 公司ID
      * @param deptId 部门ID
      * @param deptId 部门ID
      * @return list
      * @return list
      */
      */
     @Override
     @Override
-    public List<CompanyUser> getCompanyUserListByDeptId(Long deptId) {
-        return companyUserMapper.selectAllCompanyUserByDeptId(deptId);
+    public List<CompanyUser> getCompanyUserListByCompanyIdAndDeptId(Long companyId, Long deptId) {
+        return companyUserMapper.selectAllCompanyUserByCompanyIdAndDeptId(companyId, deptId);
     }
     }
 
 
 }
 }

+ 2 - 1
fs-service-system/src/main/java/com/fs/course/domain/FsUserWatchCourseStatistics.java

@@ -112,7 +112,8 @@ public class FsUserWatchCourseStatistics extends BaseEntity{
     @Excel(name = "红包领取总额")
     @Excel(name = "红包领取总额")
     private BigDecimal redPacketAmount;
     private BigDecimal redPacketAmount;
 
 
-
+    /** 用户的创建日期 */
+    private Date userCreateDate;
 
 
 
 
 }
 }

+ 8 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsUserWatchCourseStatisticsMapper.java

@@ -27,6 +27,14 @@ public interface FsUserWatchCourseStatisticsMapper extends BaseMapper<FsUserWatc
      */
      */
     List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsList(FsUserWatchCourseStatistics fsUserWatchCourseStatistics);
     List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsList(FsUserWatchCourseStatistics fsUserWatchCourseStatistics);
 
 
+    /**
+     * 查询会员看课明细汇总
+     *
+     * @param fsUserWatchCourseStatistics 会员看课统计-按课程统计
+     * @return 会员看课统计-按课程统计集合
+     */
+    List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsListTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics);
+
     /**
     /**
      * 新增会员看课统计-按课程统计
      * 新增会员看课统计-按课程统计
      *
      *

+ 8 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsUserWatchCourseStatisticsService.java

@@ -27,6 +27,14 @@ public interface IFsUserWatchCourseStatisticsService extends IService<FsUserWatc
      */
      */
     List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsList(FsUserWatchCourseStatistics fsUserWatchCourseStatistics);
     List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsList(FsUserWatchCourseStatistics fsUserWatchCourseStatistics);
 
 
+    /**
+     * 查询会员看课明细汇总
+     *
+     * @param fsUserWatchCourseStatistics 会员看课统计-按课程统计
+     * @return 会员看课统计-按课程统计集合
+     */
+    List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsListTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics);
+
     /**
     /**
      * 新增会员看课统计-按课程统计
      * 新增会员看课统计-按课程统计
      *
      *

+ 20 - 11
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserWatchCourseStatisticsServiceImpl.java

@@ -1,8 +1,8 @@
 package com.fs.course.service.impl;
 package com.fs.course.service.impl;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -62,6 +62,12 @@ public class FsUserWatchCourseStatisticsServiceImpl extends ServiceImpl<FsUserWa
         return baseMapper.selectFsUserWatchCourseStatisticsList(fsUserWatchCourseStatistics);
         return baseMapper.selectFsUserWatchCourseStatisticsList(fsUserWatchCourseStatistics);
     }
     }
 
 
+    @Override
+    public List<FsUserWatchCourseStatistics> selectFsUserWatchCourseStatisticsListTotal(FsUserWatchCourseStatistics fsUserWatchCourseStatistics)
+    {
+        return baseMapper.selectFsUserWatchCourseStatisticsListTotal(fsUserWatchCourseStatistics);
+    }
+
     /**
     /**
      * 新增会员看课统计-按课程统计
      * 新增会员看课统计-按课程统计
      *
      *
@@ -126,12 +132,8 @@ public class FsUserWatchCourseStatisticsServiceImpl extends ServiceImpl<FsUserWa
         Map<String, FsUserWatchCourseStatistics> watchLogMap = watchLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
         Map<String, FsUserWatchCourseStatistics> watchLogMap = watchLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
         Map<String, FsUserWatchCourseStatistics> redPacketLogMap = redPacketLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
         Map<String, FsUserWatchCourseStatistics> redPacketLogMap = redPacketLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
         Map<String, FsUserWatchCourseStatistics> answerLogMap = answerLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
         Map<String, FsUserWatchCourseStatistics> answerLogMap = answerLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
-        Map<Long, FsUserWatchCourseStatistics> userTotalMap = userTotal.stream()
-                .collect(Collectors.toMap(
-                        FsUserWatchCourseStatistics::getCompanyUserId,
-                        Function.identity()
-                ));
-
+        Map<Long, List<FsUserWatchCourseStatistics>> userTotalMap = userTotal.stream()
+                .collect(Collectors.groupingBy(FsUserWatchCourseStatistics::getCompanyUserId));
 
 
         // 处理数据
         // 处理数据
         List<FsUserWatchCourseStatistics> list = new ArrayList<>();
         List<FsUserWatchCourseStatistics> list = new ArrayList<>();
@@ -141,13 +143,20 @@ public class FsUserWatchCourseStatisticsServiceImpl extends ServiceImpl<FsUserWa
             FsUserWatchCourseStatistics watchLogData = watchLogMap.get(key);
             FsUserWatchCourseStatistics watchLogData = watchLogMap.get(key);
             FsUserWatchCourseStatistics redPacketLogData = redPacketLogMap.get(key);
             FsUserWatchCourseStatistics redPacketLogData = redPacketLogMap.get(key);
             FsUserWatchCourseStatistics answerLogData = answerLogMap.get(key);
             FsUserWatchCourseStatistics answerLogData = answerLogMap.get(key);
-            FsUserWatchCourseStatistics userTotalData = userTotalMap.get(data.getCompanyUserId());
+            List<FsUserWatchCourseStatistics> userTotalDataList = userTotalMap.get(data.getCompanyUserId());
             BeanUtils.copyProperties(data, vo);
             BeanUtils.copyProperties(data, vo);
 
 
             // 单独一个一个set,不用copy,避免copy出来的结果被前面的覆盖
             // 单独一个一个set,不用copy,避免copy出来的结果被前面的覆盖
-            if(userTotalData != null){
-                vo.setUserNum(userTotalData.getUserNum());
-                vo.setNewUserNum(userTotalData.getNewUserNum());
+            if(userTotalDataList != null && !userTotalDataList.isEmpty()){
+                // 获取过滤时间后的销售会员数量
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+
+                int userNum = userTotalDataList.stream()
+                        .filter(v -> v.getUserCreateDate().before(data.getCourseStartDateTime())).mapToInt(FsUserWatchCourseStatistics::getUserNum).sum();
+                int newUserNum = userTotalDataList.stream()
+                        .filter(v -> sdf.format(v.getUserCreateDate()).equals(sdf.format(data.getCourseStartDateTime()))).mapToInt(FsUserWatchCourseStatistics::getUserNum).sum();
+                vo.setUserNum(userNum);
+                vo.setNewUserNum(newUserNum);
             } else {
             } else {
                 vo.setUserNum(0);
                 vo.setUserNum(0);
                 vo.setNewUserNum(0);
                 vo.setNewUserNum(0);

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java

@@ -617,6 +617,8 @@ public class FsUserServiceImpl implements IFsUserService
         if (countRedPacket != null) {
         if (countRedPacket != null) {
             vo.setAnswerRedPacketTime(countRedPacket.getAnswerRedPacketTime());
             vo.setAnswerRedPacketTime(countRedPacket.getAnswerRedPacketTime());
             vo.setAnswerRedPacketAmount(countRedPacket.getAnswerRedPacketAmount());
             vo.setAnswerRedPacketAmount(countRedPacket.getAnswerRedPacketAmount());
+        } else {
+            vo.setAnswerRedPacketAmount(BigDecimal.ZERO);
         }
         }
         if (countAnswer != null) {
         if (countAnswer != null) {
             vo.setAnswerTime(countAnswer.getAnswerTime());
             vo.setAnswerTime(countAnswer.getAnswerTime());

+ 3 - 1
fs-service-system/src/main/java/com/fs/store/vo/h5/UserDetailsVO.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
+import java.math.BigDecimal;
+
 /**
 /**
  * 用户会员详情 输出参数
  * 用户会员详情 输出参数
  */
  */
@@ -21,7 +23,7 @@ public class UserDetailsVO {
     private int answerRedPacketTime;
     private int answerRedPacketTime;
 
 
     @ApiModelProperty(value = "答题红包金额")
     @ApiModelProperty(value = "答题红包金额")
-    private int answerRedPacketAmount;
+    private BigDecimal answerRedPacketAmount;
 
 
     @ApiModelProperty(value = "完播次数")
     @ApiModelProperty(value = "完播次数")
     private int completeWatchCount;
     private int completeWatchCount;

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

@@ -544,8 +544,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select * from company_user where dept_id = ${deptId} and status='0'
         select * from company_user where dept_id = ${deptId} and status='0'
     </select>
     </select>
 
 
-    <select id="selectAllCompanyUserByDeptId" resultType="com.fs.company.domain.CompanyUser">
+    <select id="selectAllCompanyUserByCompanyIdAndDeptId" resultType="com.fs.company.domain.CompanyUser">
         select * from company_user where del_flag = '0'
         select * from company_user where del_flag = '0'
+        and company_id = #{companyId}
         <if test="deptId != null">
         <if test="deptId != null">
             and dept_id = #{deptId}
             and dept_id = #{deptId}
         </if>
         </if>

+ 56 - 1
fs-service-system/src/main/resources/mapper/course/FsUserWatchCourseStatisticsMapper.xml

@@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="courseId != null "> and course_id = #{courseId}</if>
             <if test="courseId != null "> and course_id = #{courseId}</if>
             <if test="courseName != null  and courseName != ''"> and course_name like concat('%', #{courseName}, '%')</if>
             <if test="courseName != null  and courseName != ''"> and course_name like concat('%', #{courseName}, '%')</if>
             <if test="videoId != null "> and video_id = #{videoId}</if>
             <if test="videoId != null "> and video_id = #{videoId}</if>
-            <if test="videoTitle != null  and videoTitle != ''"> and video_title = #{videoTitle}</if>
+            <if test="videoTitle != null  and videoTitle != ''"> and video_title like concat('%', #{videoTitle}, '%')</if>
             <if test="companyId != null "> and company_id = #{companyId}</if>
             <if test="companyId != null "> and company_id = #{companyId}</if>
             <if test="companyName != null  and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if>
             <if test="companyName != null  and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if>
             <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
             <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
@@ -62,6 +62,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         </where>
     </select>
     </select>
 
 
+    <select id="selectFsUserWatchCourseStatisticsListTotal" parameterType="FsUserWatchCourseStatistics" resultMap="FsUserWatchCourseStatisticsResult">
+        SELECT
+        id,
+        period_id,
+        period_name,
+        course_id,
+        course_name,
+        video_id,
+        video_title,
+        company_id,
+        company_name,
+        company_user_id,
+        course_start_date_time,
+        -- 	company_user_name,
+        period_starting_time,
+--         new_user_num,
+--         user_num,
+        sum(new_user_num) as new_user_num,
+        sum(user_num) as user_num,
+        watch_num,
+        complete_watch_num,
+        complete_watch_rate,
+        answer_num,
+        answer_right_num,
+        answer_right_rate,
+        red_packet_num,
+        red_packet_amount
+        from fs_user_watch_course_statistics
+        <where>
+            <if test="periodId != null "> and period_id = #{periodId}</if>
+            <if test="periodName != null  and periodName != ''"> and period_name like concat('%', #{periodName}, '%')</if>
+            <if test="courseId != null "> and course_id = #{courseId}</if>
+            <if test="courseName != null  and courseName != ''"> and course_name like concat('%', #{courseName}, '%')</if>
+            <if test="videoId != null "> and video_id = #{videoId}</if>
+            <if test="videoTitle != null  and videoTitle != ''"> and video_title like concat('%', #{videoTitle}, '%')</if>
+            <if test="companyId != null "> and company_id = #{companyId}</if>
+            <if test="companyName != null  and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if>
+            <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
+            <if test="courseStartDateTime != null "> and course_start_date_time like concat(DATE(#{courseStartDateTime}),'%')</if>
+            <if test="companyUserName != null  and companyUserName != ''"> and company_user_name like concat('%', #{companyUserName}, '%')</if>
+            <if test="periodStartingTime != null "> and period_starting_time like concat(DATE(#{periodStartingTime}), '%')</if>
+            <if test="newUserNum != null "> and new_user_num = #{newUserNum}</if>
+            <if test="userNum != null "> and user_num = #{userNum}</if>
+            <if test="watchNum != null "> and watch_num = #{watchNum}</if>
+            <if test="completeWatchNum != null "> and complete_watch_num = #{completeWatchNum}</if>
+            <if test="completeWatchRate != null "> and complete_watch_rate = #{completeWatchRate}</if>
+            <if test="answerNum != null "> and answer_num = #{answerNum}</if>
+            <if test="answerRightNum != null "> and answer_right_num = #{answerRightNum}</if>
+            <if test="answerRightRate != null "> and answer_right_rate = #{answerRightRate}</if>
+            <if test="redPacketNum != null "> and red_packet_num = #{redPacketNum}</if>
+            <if test="redPacketAmount != null "> and red_packet_amount = #{redPacketAmount}</if>
+        </where>
+        group by fs_user_watch_course_statistics.company_id, course_start_date_time
+    </select>
+
     <select id="selectFsUserWatchCourseStatisticsById" parameterType="Long" resultMap="FsUserWatchCourseStatisticsResult">
     <select id="selectFsUserWatchCourseStatisticsById" parameterType="Long" resultMap="FsUserWatchCourseStatisticsResult">
         <include refid="selectFsUserWatchCourseStatisticsVo"/>
         <include refid="selectFsUserWatchCourseStatisticsVo"/>
         where id = #{id}
         where id = #{id}

+ 24 - 22
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -653,14 +653,14 @@
                 <when test = "dateTag == '今天'">
                 <when test = "dateTag == '今天'">
                     and to_days(fs_user_course_count.create_time) = to_days(now())
                     and to_days(fs_user_course_count.create_time) = to_days(now())
                 </when>
                 </when>
-                <when test = "dateTag == ' 昨天'">
-                    and to_days(now()) - to_days(fs_user_course_count.create_time) &lt;= 1
+                <when test = "dateTag == '昨天'">
+                    and fs_user_course_count.create_time &gt;= CURDATE() - INTERVAL 1 DAY AND fs_user_course_count.create_time &lt; CURDATE()
                 </when>
                 </when>
                 <when test = "dateTag == '前天'">
                 <when test = "dateTag == '前天'">
-                    and to_days(now()) - to_days(fs_user_course_count.create_time) &lt;= 2
+                    and fs_user_course_count.create_time &gt;= CURDATE() - INTERVAL 2 DAY AND fs_user_course_count.create_time &lt; CURDATE() - INTERVAL 1 DAY
                 </when>
                 </when>
                 <when test = "dateTag == '近七天'">
                 <when test = "dateTag == '近七天'">
-                    and DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(fs_user_course_count.create_time)
+                    and fs_user_course_count.create_time &gt;= CURDATE() - INTERVAL 7 DAY
                 </when>
                 </when>
             </choose>
             </choose>
         </if>
         </if>
@@ -681,20 +681,20 @@
                         LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
                         LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
                         LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
                         LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
                 WHERE
                 WHERE
-                    company_user.parent_id = #{userId}
+                (company_user.user_id = #{userId} or company_user.parent_id = #{userId} )
                     <if test="dateTag != null and dateTag !='' ">
                     <if test="dateTag != null and dateTag !='' ">
                         <choose>
                         <choose>
                             <when test = "dateTag == '今天'">
                             <when test = "dateTag == '今天'">
                                 and to_days(fs_course_answer_logs.create_time) = to_days(now())
                                 and to_days(fs_course_answer_logs.create_time) = to_days(now())
                             </when>
                             </when>
-                            <when test = "dateTag == ' 昨天'">
-                                and to_days(now()) - to_days(fs_course_answer_logs.create_time) &lt;= 1
+                            <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>
                             <when test = "dateTag == '前天'">
                             <when test = "dateTag == '前天'">
-                                and to_days(now()) - to_days(fs_course_answer_logs.create_time) &lt;= 2
+                                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>
                             <when test = "dateTag == '近七天'">
                             <when test = "dateTag == '近七天'">
-                                and DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(fs_course_answer_logs.create_time)
+                                and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 7 DAY
                             </when>
                             </when>
                         </choose>
                         </choose>
                     </if>
                     </if>
@@ -711,21 +711,21 @@
                         LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
                         LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
                         LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
                         LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
                 WHERE
                 WHERE
-                    company_user.parent_id = #{userId}
+                (company_user.user_id = #{userId} or company_user.parent_id = #{userId} )
                   AND fs_course_answer_logs.is_right = 1
                   AND fs_course_answer_logs.is_right = 1
                 <if test="dateTag != null and dateTag !='' ">
                 <if test="dateTag != null and dateTag !='' ">
                     <choose>
                     <choose>
                         <when test = "dateTag == '今天'">
                         <when test = "dateTag == '今天'">
                             and to_days(fs_course_answer_logs.create_time) = to_days(now())
                             and to_days(fs_course_answer_logs.create_time) = to_days(now())
                         </when>
                         </when>
-                        <when test = "dateTag == ' 昨天'">
-                            and to_days(now()) - to_days(fs_course_answer_logs.create_time) &lt;= 1
+                        <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>
                         <when test = "dateTag == '前天'">
                         <when test = "dateTag == '前天'">
-                            and to_days(now()) - to_days(fs_course_answer_logs.create_time) &lt;= 2
+                            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>
                         <when test = "dateTag == '近七天'">
                         <when test = "dateTag == '近七天'">
-                            and DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(fs_course_answer_logs.create_time)
+                            and fs_course_answer_logs.create_time &gt;= CURDATE() - INTERVAL 7 DAY
                         </when>
                         </when>
                     </choose>
                     </choose>
                 </if>
                 </if>
@@ -746,20 +746,21 @@
                 LEFT JOIN fs_user ON fs_user.user_id = fs_course_red_packet_log.user_id
                 LEFT JOIN fs_user ON fs_user.user_id = fs_course_red_packet_log.user_id
                 LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
                 LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
         WHERE
         WHERE
-            company_user.parent_id = #{userId}
-            <if test="dateTag != null and dateTag !='' ">
+        (company_user.user_id = #{userId} or company_user.parent_id = #{userId} )
+        and fs_course_red_packet_log.status = 1
+        <if test="dateTag != null and dateTag !='' ">
                 <choose>
                 <choose>
                     <when test = "dateTag == '今天'">
                     <when test = "dateTag == '今天'">
                         and to_days(fs_course_red_packet_log.create_time) = to_days(now())
                         and to_days(fs_course_red_packet_log.create_time) = to_days(now())
                     </when>
                     </when>
-                    <when test = "dateTag == ' 昨天'">
-                        and to_days(now()) - to_days(fs_course_red_packet_log.create_time) &lt;= 1
+                    <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>
                     <when test = "dateTag == '前天'">
                     <when test = "dateTag == '前天'">
-                        and to_days(now()) - to_days(fs_course_red_packet_log.create_time) &lt;= 2
+                        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>
                     <when test = "dateTag == '近七天'">
                     <when test = "dateTag == '近七天'">
-                        and DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(fs_course_red_packet_log.create_time)
+                        and fs_course_red_packet_log.create_time &gt;= CURDATE() - INTERVAL 7 DAY
                     </when>
                     </when>
                 </choose>
                 </choose>
             </if>
             </if>
@@ -1543,7 +1544,8 @@
     <select id="selectFsUserDetail" resultType="FsUserWatchCourseStatistics">
     <select id="selectFsUserDetail" resultType="FsUserWatchCourseStatistics">
         SELECT
         SELECT
         count( fs_user.user_id ) as userNum,
         count( fs_user.user_id ) as userNum,
-        count( DISTINCT CASE WHEN to_days( fs_user.create_time ) = to_days( now()) THEN fs_user.user_id END ) as newUserNum
+        count( DISTINCT CASE WHEN to_days( fs_user.create_time ) = to_days( now()) THEN fs_user.user_id END ) as newUserNum,
+        date(fs_user.create_time) as userCreateDate
         ,company.company_id,
         ,company.company_id,
         company.company_name,
         company.company_name,
         company_user.user_id AS companyUserId,
         company_user.user_id AS companyUserId,
@@ -1558,7 +1560,7 @@
         AND fs_user.`status` = 1
         AND fs_user.`status` = 1
         AND company_user.user_id is not null
         AND company_user.user_id is not null
         GROUP BY
         GROUP BY
-        fs_user.company_user_id
+        fs_user.company_user_id, date(fs_user.create_time)
     </select>
     </select>
 
 
 </mapper>
 </mapper>