Long 1 mēnesi atpakaļ
vecāks
revīzija
4a67f72d2e
41 mainītis faili ar 1030 papildinājumiem un 154 dzēšanām
  1. 30 25
      fs-admin/src/main/java/com/fs/company/controller/CompanyController.java
  2. 28 11
      fs-admin/src/main/java/com/fs/company/controller/CompanyUserController.java
  3. 30 22
      fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java
  4. 14 1
      fs-admin/src/main/java/com/fs/course/controller/FsUserCourseTrainingCampController.java
  5. 20 0
      fs-admin/src/main/java/com/fs/course/controller/FsUserCourseVideoController.java
  6. 9 0
      fs-admin/src/main/java/com/fs/course/controller/FsUserVideoController.java
  7. 62 0
      fs-admin/src/main/java/com/fs/stats/FsStatsMemberController.java
  8. 18 0
      fs-admin/src/main/java/com/fs/task/stats/FsStatsMemberDailyTask.java
  9. 25 1
      fs-admin/src/main/java/com/fs/user/FsUserAdminController.java
  10. 11 2
      fs-service-system/src/main/java/com/fs/company/mapper/CompanyMapper.java
  11. 8 0
      fs-service-system/src/main/java/com/fs/company/mapper/CompanyUserMapper.java
  12. 12 5
      fs-service-system/src/main/java/com/fs/company/service/ICompanyService.java
  13. 8 1
      fs-service-system/src/main/java/com/fs/company/service/ICompanyUserService.java
  14. 17 5
      fs-service-system/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java
  15. 15 2
      fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java
  16. 3 3
      fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseMapper.java
  17. 11 4
      fs-service-system/src/main/java/com/fs/course/mapper/FsUserCoursePeriodDaysMapper.java
  18. 8 0
      fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseTrainingCampMapper.java
  19. 11 4
      fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoMapper.java
  20. 12 2
      fs-service-system/src/main/java/com/fs/course/service/IFsUserCoursePeriodDaysService.java
  21. 5 5
      fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseService.java
  22. 8 1
      fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseTrainingCampService.java
  23. 10 2
      fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseVideoService.java
  24. 25 14
      fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodDaysServiceImpl.java
  25. 11 0
      fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseTrainingCampServiceImpl.java
  26. 19 13
      fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java
  27. 149 0
      fs-service-system/src/main/java/com/fs/statis/domain/FsStatsMemberDaily.java
  28. 26 0
      fs-service-system/src/main/java/com/fs/statis/mapper/FsStatsMemberDailyMapper.java
  29. 23 0
      fs-service-system/src/main/java/com/fs/statis/service/IFsStatsMemberDailyService.java
  30. 36 0
      fs-service-system/src/main/java/com/fs/statis/service/impl/FsStatsMemberDailyServiceImpl.java
  31. 82 0
      fs-service-system/src/main/java/com/fs/statis/vo/FsStatsMemberDailyVO.java
  32. 10 6
      fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java
  33. 8 7
      fs-service-system/src/main/java/com/fs/store/service/IFsUserService.java
  34. 23 18
      fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java
  35. 12 0
      fs-service-system/src/main/resources/mapper/company/CompanyMapper.xml
  36. 15 0
      fs-service-system/src/main/resources/mapper/company/CompanyUserMapper.xml
  37. 15 0
      fs-service-system/src/main/resources/mapper/course/FsUserCoursePeriodDaysMapper.xml
  38. 12 0
      fs-service-system/src/main/resources/mapper/course/FsUserCourseTrainingCampMapper.xml
  39. 16 0
      fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml
  40. 161 0
      fs-service-system/src/main/resources/mapper/statis/FsStatsMemberDailyMapper.xml
  41. 12 0
      fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

+ 30 - 25
fs-admin/src/main/java/com/fs/company/controller/CompanyController.java

@@ -1,18 +1,16 @@
 package com.fs.company.controller;
 
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
 import cn.hutool.core.util.IdUtil;
+import com.fs.common.annotation.Log;
 import com.fs.common.annotation.RepeatSubmit;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
-import com.fs.common.utils.OrderUtils;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.ServletUtils;
+import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.common.utils.sign.Md5Utils;
 import com.fs.company.domain.*;
 import com.fs.company.param.CompanyDeductParam;
@@ -27,26 +25,17 @@ import com.fs.core.security.LoginUser;
 import com.fs.core.security.SecurityUtils;
 import com.fs.core.web.service.TokenService;
 import com.fs.his.vo.OptionsVO;
-import lombok.Synchronized;
-import org.springframework.security.access.prepost.PreAuthorize;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
+import org.springframework.web.bind.annotation.*;
 
-import javax.swing.*;
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 企业Controller
@@ -257,5 +246,21 @@ public class CompanyController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 根据公司名称模糊查询
+     * @param name  名称
+     * @return  list
+     */
+    @GetMapping("/getCompanyListLikeName")
+    public R getCompanyUserListLikeName(@RequestParam(required = false) String name,
+                                        @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                        @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("companyName", name);
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> companyUserList = companyService.selectCompanyListByMap(params);
+        return R.ok().put("data", new PageInfo<>(companyUserList));
+    }
 
 }

+ 28 - 11
fs-admin/src/main/java/com/fs/company/controller/CompanyUserController.java

@@ -1,22 +1,25 @@
 package com.fs.company.controller;
 
-import java.util.List;
-
-import com.fs.common.constant.UserConstants;
-import com.fs.common.core.domain.R;
-import com.fs.common.utils.ServletUtils;
-import com.fs.core.security.LoginUser;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
 import com.fs.common.annotation.Log;
+import com.fs.common.constant.UserConstants;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyUserService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
+import com.fs.his.vo.OptionsVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 企业员工信息Controller
@@ -163,4 +166,18 @@ public class CompanyUserController extends BaseController
         return toAjax(companyUserService.changeCompanyUser(userIds, companyUserId, companyId));
     }
 
+
+    @GetMapping("/getCompanyUserListLikeName")
+    public R getCompanyUserListLikeName(@RequestParam(required = false) String name,
+                                        @RequestParam(required = false) Long companyId,
+                                        @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                        @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("companyUserName", name);
+        params.put("companyId", companyId);
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> companyUserList = companyUserService.selectCompanyUserListByMap(params);
+        return R.ok().put("data", new PageInfo<>(companyUserList));
+    }
 }

+ 30 - 22
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -1,43 +1,37 @@
 package com.fs.course.controller;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.domain.FsUserCourseVideoRedPackage;
 import com.fs.course.param.CompanyRedPacketParam;
 import com.fs.course.param.FsBatchPeriodRedPackageParam;
 import com.fs.course.param.PeriodCountParam;
-import com.fs.course.vo.PeriodRedPacketVO;
 import com.fs.course.service.IFsUserCoursePeriodDaysService;
+import com.fs.course.service.IFsUserCoursePeriodService;
 import com.fs.course.service.IFsUserCourseVideoRedPackageService;
 import com.fs.course.vo.FsPeriodCountVO;
 import com.fs.course.vo.FsUserCoursePeriodVO;
-import com.fs.store.vo.h5.FsUserPageListVO;
+import com.fs.course.vo.PeriodRedPacketVO;
+import com.fs.his.vo.OptionsVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.enums.BusinessType;
-import com.fs.course.domain.FsUserCoursePeriod;
-import com.fs.course.service.IFsUserCoursePeriodService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * 会员营期Controller
@@ -203,4 +197,18 @@ public class FsUserCoursePeriodController extends BaseController {
         return R.ok(result);
     }
 
+    @GetMapping("/getPeriodListLikeName")
+    public R getPeriodListLikeName(@RequestParam(required = false) String name,
+                                   @RequestParam(required = false) Long campId,
+                                   @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                   @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("name", name);
+        params.put("campId", campId);
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> periodList = fsUserCoursePeriodDaysService.selectPeriodListByMap(params);
+        return R.ok().put("data", new PageInfo<>(periodList));
+    }
+
 }

+ 14 - 1
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseTrainingCampController.java

@@ -2,6 +2,7 @@ package com.fs.course.controller;
 
 import com.fs.common.annotation.Log;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.SortUtils;
 import com.fs.course.domain.FsUserCourseTrainingCamp;
@@ -9,10 +10,10 @@ import com.fs.course.dto.FsUserCourseTrainingCampDTO;
 import com.fs.course.dto.FsUserCourseTrainingCampUpdateDTO;
 import com.fs.course.service.IFsUserCourseTrainingCampService;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
+import com.fs.his.vo.OptionsVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.AllArgsConstructor;
-import org.assertj.core.util.Arrays;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -106,4 +107,16 @@ public class FsUserCourseTrainingCampController {
         return AjaxResult.success();
     }
 
+    @GetMapping("/getCampListLikeName")
+    public R getCampListLikeName(@RequestParam(required = false) String name,
+                                 @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                 @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("name", name);
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> campList = fsUserCourseTrainingCampService.selectCampListByMap(params);
+        return R.ok().put("data", new PageInfo<>(campList));
+    }
+
 }

+ 20 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseVideoController.java

@@ -13,11 +13,16 @@ import com.fs.course.param.BatchRedUpdate;
 import com.fs.course.param.BatchVideoSvae;
 import com.fs.course.param.CourseVideoUpdates;
 import com.fs.course.service.IFsUserCourseVideoService;
+import com.fs.his.vo.OptionsVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课堂视频Controller
@@ -137,4 +142,19 @@ public class FsUserCourseVideoController extends BaseController
         fsUserCourseVideoService.batchUpdateRed(list);
         return R.ok();
     }
+
+
+    @GetMapping("/getVideoListLikeName")
+    public R getVideoListLikeName(@RequestParam(required = false) String name,
+                                   @RequestParam(required = false) String periodId,
+                                   @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                   @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("name", name);
+        params.put("periodId", periodId);
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> periodList = fsUserCourseVideoService.selectVideoListByMap(params);
+        return R.ok().put("data", new PageInfo<>(periodList));
+    }
 }

+ 9 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserVideoController.java

@@ -277,4 +277,13 @@ public class FsUserVideoController extends BaseController
             throw new RuntimeException("FFmpeg 执行失败,退出代码:" + exitCode);
         }
     }
+
+    @GetMapping("/getVideoListLikeName")
+    public R getVideoListLikeName(@RequestParam(required = false) String name,
+                                  @RequestParam(required = false) Long periodId,
+                                  @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                  @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        // TODO: 待处理
+        return null;
+    }
 }

+ 62 - 0
fs-admin/src/main/java/com/fs/stats/FsStatsMemberController.java

@@ -0,0 +1,62 @@
+package com.fs.stats;
+
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.statis.service.IFsStatsMemberDailyService;
+import com.fs.statis.vo.FsStatsMemberDailyVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/stats/member")
+@AllArgsConstructor
+public class FsStatsMemberController {
+
+    private final IFsStatsMemberDailyService statsMemberDailyService;
+
+    @GetMapping("/dailyData")
+    public AjaxResult dailyData(@RequestParam String startDate,
+                                @RequestParam String endDate,
+                                @RequestParam Integer type,
+                                @RequestParam(required = false) Long companyId,
+                                @RequestParam(required = false) Long companyUserId,
+                                @RequestParam(required = false) Long userId,
+                                @RequestParam(required = false) String phone,
+                                @RequestParam(required = false) Long trainCampId,
+                                @RequestParam(required = false) Long periodId,
+                                @RequestParam(required = false) Long courseId,
+                                @RequestParam(required = false) Long videoId,
+                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("companyId", companyId);
+        params.put("companyUserId", companyUserId);
+        params.put("userId", userId);
+        params.put("phone", phone);
+        params.put("trainCampId", trainCampId);
+        params.put("periodId", periodId);
+        params.put("courseId", courseId);
+        params.put("videoId", videoId);
+
+        if (type == 1) {
+            params.put("startDate", LocalDate.parse(startDate));
+            params.put("endDate", LocalDate.parse(endDate).plusDays(1));
+        } else {
+            params.put("startDate", LocalDate.parse(startDate).withDayOfMonth(1));
+            params.put("endDate", LocalDate.parse(endDate).withDayOfMonth(1).plusMonths(1));
+        }
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<FsStatsMemberDailyVO> list = statsMemberDailyService.selectDailyData(params);
+        return AjaxResult.success(new PageInfo<>(list));
+    }
+}

+ 18 - 0
fs-admin/src/main/java/com/fs/task/stats/FsStatsMemberDailyTask.java

@@ -0,0 +1,18 @@
+package com.fs.task.stats;
+
+import com.fs.statis.service.IFsStatsMemberDailyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class FsStatsMemberDailyTask {
+
+    @Autowired
+    private IFsStatsMemberDailyService fsStatsMemberDailyService;
+
+    public void refreshMemberDailyData() {
+        fsStatsMemberDailyService.refreshMemberDailyData();
+    }
+}

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

@@ -2,18 +2,27 @@ package com.fs.user;
 
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.his.vo.OptionsVO;
 import com.fs.store.param.h5.FsUserPageListParam;
 import com.fs.store.service.IFsUserService;
 import com.fs.store.vo.h5.*;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.fs.store.vo.h5.FsUserPageListVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import java.util.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @Api(tags = "会员管理接口")
 @RestController
@@ -37,5 +46,20 @@ public class FsUserAdminController extends BaseController {
         return R.ok(result);
     }
 
+    /**
+     * 根据会员名称模糊查询
+     * @param name  名称
+     * @return  list
+     */
+    @GetMapping("/getUserListLikeName")
+    public R getUserListLikeName(@RequestParam(required = false) String name,
+                                 @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                 @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("nickName", name);
 
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> userList = fsUserService.selectUserListByMap(params);
+        return R.ok().put("data", new PageInfo<>(userList));
+    }
 }

+ 11 - 2
fs-service-system/src/main/java/com/fs/company/mapper/CompanyMapper.java

@@ -1,7 +1,5 @@
 package com.fs.company.mapper;
 
-import java.math.BigDecimal;
-import java.util.List;
 import com.fs.company.domain.Company;
 import com.fs.company.param.CompanyParam;
 import com.fs.company.vo.CompanyCrmVO;
@@ -12,6 +10,10 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 企业Mapper接口
  *
@@ -146,4 +148,11 @@ public interface CompanyMapper
     List<OptionsVO> selectAllCompanyList();
 
     void updateMoney(@Param("id") Long id, @Param("money") BigDecimal money);
+
+    /**
+     * 根据条件查询公司选项列表
+     * @param params    参数
+     * @return list
+     */
+    List<OptionsVO> selectCompanyListByMap(@Param("params") Map<String, Object> params);
 }

+ 8 - 0
fs-service-system/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -7,6 +7,7 @@ import com.fs.company.vo.CompanyQwUserByIdsVo;
 import com.fs.company.vo.CompanyUserQwListVO;
 import com.fs.company.vo.CompanyUserVO;
 import com.fs.company.vo.DocCompanyUserVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.param.QwWatchLogStatisticsListParam;
 import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwUserVO;
@@ -16,6 +17,7 @@ import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -279,4 +281,10 @@ public interface CompanyUserMapper
     @Select("select * from company_user where phonenumber = #{phoneNumber}")
     CompanyUser getCompanyUserByPhone(String phoneNumber);
 
+    /**
+     * 查询销售选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectCompanyUserListByMap(@Param("params") Map<String, Object> params);
 }

+ 12 - 5
fs-service-system/src/main/java/com/fs/company/service/ICompanyService.java

@@ -1,18 +1,18 @@
 package com.fs.company.service;
 
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-
 import com.fs.common.core.domain.R;
 import com.fs.company.domain.Company;
 import com.fs.company.param.CompanyParam;
 import com.fs.company.vo.CompanyCrmVO;
 import com.fs.company.vo.CompanyNameVO;
 import com.fs.company.vo.CompanyVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.domain.FsStorePayment;
-import com.fs.his.vo.OptionsVO;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 企业Service接口
@@ -107,4 +107,11 @@ public interface ICompanyService
     void updateMoney(Long companyId, BigDecimal money);
 
     void configUserCheck(Long companyId, Integer userIsDefaultBlack);
+
+    /**
+     * 根据条件查询公司选项列表
+     * @param params    参数
+     * @return list
+     */
+    List<OptionsVO> selectCompanyListByMap(Map<String, Object> params);
 }

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

@@ -9,9 +9,9 @@ import com.fs.company.vo.CompanyUserQwListVO;
 import com.fs.company.vo.CompanyUserVO;
 import com.fs.company.vo.DocCompanyUserVO;
 import com.fs.his.vo.CitysAreaVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwUserVO;
-import com.fs.his.vo.OptionsVO;
 
 import java.util.List;
 import java.util.Map;
@@ -181,4 +181,11 @@ public interface ICompanyUserService {
      * @return
      */
     int changeCompanyUser(List<Long> userIds, Long companyUserId, Long companyId);
+
+    /**
+     * 查询销售选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectCompanyUserListByMap(Map<String, Object> params);
 }

+ 17 - 5
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java

@@ -1,32 +1,34 @@
 package com.fs.company.service.impl;
 
-import java.math.BigDecimal;
-import java.util.*;
-
 import cn.hutool.json.JSONUtil;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
 import com.fs.company.domain.*;
 import com.fs.company.mapper.*;
 import com.fs.company.param.CompanyParam;
+import com.fs.company.service.ICompanyService;
 import com.fs.company.vo.CompanyCrmVO;
 import com.fs.company.vo.CompanyNameVO;
 import com.fs.company.vo.CompanyVO;
 import com.fs.course.mapper.FsCourseRedPacketLogMapper;
+import com.fs.his.vo.OptionsVO;
 import com.fs.store.config.StoreConfig;
 import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.domain.FsStorePayment;
 import com.fs.store.mapper.FsStoreOrderMapper;
-import com.fs.his.vo.OptionsVO;
 import com.fs.system.service.ISysConfigService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-import com.fs.company.service.ICompanyService;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 企业Service业务层处理
  *
@@ -447,4 +449,14 @@ public class CompanyServiceImpl implements ICompanyService
             companyMapper.updateCompany(company);
         }
     }
+
+    /**
+     * 根据条件查询公司选项列表
+     * @param params    参数
+     * @return list
+     */
+    @Override
+    public List<OptionsVO> selectCompanyListByMap(Map<String, Object> params) {
+        return companyMapper.selectCompanyListByMap(params);
+    }
 }

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

@@ -11,10 +11,13 @@ import com.fs.company.domain.*;
 import com.fs.company.mapper.*;
 import com.fs.company.param.CompanyUserAreaParam;
 import com.fs.company.param.CompanyUserQwParam;
-import com.fs.company.param.CompanyVoiceCallerParam;
 import com.fs.company.service.ICompanyUserService;
-import com.fs.company.vo.*;
+import com.fs.company.vo.CompanyQwUserByIdsVo;
+import com.fs.company.vo.CompanyUserQwListVO;
+import com.fs.company.vo.CompanyUserVO;
+import com.fs.company.vo.DocCompanyUserVO;
 import com.fs.his.vo.CitysAreaVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwUserVO;
 import com.fs.his.vo.OptionsVO;
@@ -461,6 +464,16 @@ public class CompanyUserServiceImpl implements ICompanyUserService
        return fsUserMapper.batchUpdateUserCompanyUser(userIds, companyUserId, companyId);
     }
 
+    /**
+     * 查询销售选项列表
+     * @param params    参数
+     * @return  list
+     */
+    @Override
+    public List<OptionsVO> selectCompanyUserListByMap(Map<String, Object> params) {
+        return companyUserMapper.selectCompanyUserListByMap(params);
+    }
+
     /**
      * 批量审核用户
      * @param userIds 用户ID集合

+ 3 - 3
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseMapper.java

@@ -1,8 +1,5 @@
 package com.fs.course.mapper;
 
-import java.util.List;
-import java.util.Map;
-
 import com.fs.course.domain.FsUserCourse;
 import com.fs.course.param.FsUserCourseAddStudyCourseParam;
 import com.fs.course.param.FsUserCourseListUParam;
@@ -15,6 +12,9 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 课程Mapper接口
  *

+ 11 - 4
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCoursePeriodDaysMapper.java

@@ -1,12 +1,13 @@
 package com.fs.course.mapper;
 
-import java.util.List;
-import java.util.Set;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.course.domain.FsUserCoursePeriodDays;
+import com.fs.his.vo.OptionsVO;
 import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * 营期课程Mapper接口
@@ -70,4 +71,10 @@ public interface FsUserCoursePeriodDaysMapper extends BaseMapper<FsUserCoursePer
      */
     List<FsUserCoursePeriodDays> selectCourseVideoList(@Param("periodIds") Set<Long> periodIds);
 
+    /**
+     * 查询营期选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectPeriodListByMap(@Param("params") Map<String, Object> params);
 }

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

@@ -4,6 +4,7 @@ package com.fs.course.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.course.domain.FsUserCourseTrainingCamp;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
+import com.fs.his.vo.OptionsVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -32,4 +33,11 @@ public interface FsUserCourseTrainingCampMapper extends BaseMapper<FsUserCourseT
      */
     @Select("select ifnull(max(order_number), 0) + 1 from fs_user_course_training_camp")
     Long getOrderNumber();
+
+    /**
+     * 查询训练营选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectCampListByMap(@Param("params") Map<String, Object> params);
 }

+ 11 - 4
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoMapper.java

@@ -1,9 +1,5 @@
 package com.fs.course.mapper;
 
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.param.CourseVideoUpdates;
 import com.fs.course.param.FsUserCourseVideoListUParam;
@@ -16,6 +12,10 @@ import com.fs.his.vo.OptionsVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 课堂视频Mapper接口
  *
@@ -173,4 +173,11 @@ public interface FsUserCourseVideoMapper
     void insertBatchFsUserCourseVideo(@Param("collect") List<FsUserCourseVideo> collect);
 
     void updateRedPacketMoney(@Param("videoId") Long videoId, @Param("redPacketMoney") BigDecimal redPacketMoney);
+
+    /**
+     * 获取选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectVideoListByMap(@Param("params") Map<String, Object> params);
 }

+ 12 - 2
fs-service-system/src/main/java/com/fs/course/service/IFsUserCoursePeriodDaysService.java

@@ -1,13 +1,16 @@
 package com.fs.course.service;
 
-import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.common.core.domain.R;
 import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.param.CompanyRedPacketParam;
 import com.fs.course.param.PeriodCountParam;
-import com.fs.course.vo.PeriodRedPacketVO;
 import com.fs.course.vo.FsPeriodCountVO;
+import com.fs.course.vo.PeriodRedPacketVO;
+import com.fs.his.vo.OptionsVO;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 营期课程Service接口
@@ -90,4 +93,11 @@ public interface IFsUserCoursePeriodDaysService extends IService<FsUserCoursePer
      * @return
      */
     List<FsPeriodCountVO> periodCourseCount(PeriodCountParam param);
+
+    /**
+     * 查询营期选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectPeriodListByMap(Map<String, Object> params);
 }

+ 5 - 5
fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseService.java

@@ -1,10 +1,5 @@
 package com.fs.course.service;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Map;
-
 import com.fs.common.core.domain.R;
 import com.fs.course.domain.FsUserCourse;
 import com.fs.course.param.*;
@@ -13,6 +8,11 @@ import com.fs.course.vo.*;
 import com.fs.course.vo.newfs.FsUserCourseListVO;
 import com.fs.his.vo.OptionsVO;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 课程Service接口
  *

+ 8 - 1
fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseTrainingCampService.java

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.course.domain.FsUserCourseTrainingCamp;
 import com.fs.course.dto.FsUserCourseTrainingCampDTO;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
+import com.fs.his.vo.OptionsVO;
 
-import javax.validation.Valid;
 import java.util.List;
 import java.util.Map;
 
@@ -43,4 +43,11 @@ public interface IFsUserCourseTrainingCampService extends IService<FsUserCourseT
      * @param id    id
      */
     void copy(Long id);
+
+    /**
+     * 查询训练营选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectCampListByMap(Map<String, Object> params);
 }

+ 10 - 2
fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseVideoService.java

@@ -9,12 +9,13 @@ import com.fs.course.param.newfs.FsUserCourseVideoLinkParam;
 import com.fs.course.param.newfs.FsUserCourseVideoUParam;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
 import com.fs.course.vo.FsUserCourseVideoListUVO;
+import com.fs.course.vo.FsUserCourseVideoQVO;
+import com.fs.course.vo.FsUserCourseVideoVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoDetailsVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoLinkDetailsVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
-import com.fs.course.vo.FsUserCourseVideoQVO;
-import com.fs.course.vo.FsUserCourseVideoVO;
 import com.fs.course.vo.newfs.FsUserVideoListVO;
+import com.fs.his.vo.OptionsVO;
 
 import java.util.List;
 import java.util.Map;
@@ -149,4 +150,11 @@ public interface IFsUserCourseVideoService
     void batchSaveVideo(BatchVideoSvae vo);
 
     void batchUpdateRed(List<BatchRedUpdate> list);
+
+    /**
+     * 获取选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectVideoListByMap(Map<String, Object> params);
 }

+ 25 - 14
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodDaysServiceImpl.java

@@ -1,35 +1,36 @@
 package com.fs.course.service.impl;
 
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.utils.date.DateUtil;
 import com.fs.common.utils.date.TimeTypeEnum;
 import com.fs.course.domain.FsUserCoursePeriod;
+import com.fs.course.domain.FsUserCoursePeriodDays;
+import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
 import com.fs.course.mapper.FsUserCoursePeriodMapper;
 import com.fs.course.param.CompanyRedPacketParam;
 import com.fs.course.param.PeriodCountParam;
-import com.fs.course.vo.PeriodRedPacketVO;
+import com.fs.course.service.IFsUserCoursePeriodDaysService;
 import com.fs.course.vo.FsPeriodCountVO;
+import com.fs.course.vo.PeriodRedPacketVO;
 import com.fs.course.vo.newfs.FsCourseAnalysisCountVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.store.mapper.FsUserMapper;
 import com.fs.store.param.h5.CourseAnalysisParam;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
-import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
-import com.fs.course.domain.FsUserCoursePeriodDays;
-import com.fs.course.service.IFsUserCoursePeriodDaysService;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 营期课程Service业务层处理
@@ -234,4 +235,14 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
                 .setAnswerTimes(answerVO.getAnswerTimes()).setAnswerRightTimes(answerVO.getAnswerRightTimes());
         return countVO;
     }
+
+    /**
+     * 查询营期选项列表
+     * @param params    参数
+     * @return  list
+     */
+    @Override
+    public List<OptionsVO> selectPeriodListByMap(Map<String, Object> params) {
+        return baseMapper.selectPeriodListByMap(params);
+    }
 }

+ 11 - 0
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseTrainingCampServiceImpl.java

@@ -15,6 +15,7 @@ import com.fs.course.mapper.FsUserCourseTrainingCampMapper;
 import com.fs.course.service.IFsUserCoursePeriodDaysService;
 import com.fs.course.service.IFsUserCourseTrainingCampService;
 import com.fs.course.vo.FsUserCourseTrainingCampVO;
+import com.fs.his.vo.OptionsVO;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -128,4 +129,14 @@ public class FsUserCourseTrainingCampServiceImpl extends ServiceImpl<FsUserCours
             }
         });
     }
+
+    /**
+     * 查询训练营选项列表
+     * @param params    参数
+     * @return  list
+     */
+    @Override
+    public List<OptionsVO> selectCampListByMap(Map<String, Object> params) {
+        return baseMapper.selectCampListByMap(params);
+    }
 }

+ 19 - 13
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -27,13 +27,7 @@ import com.fs.course.vo.FsUserCourseVideoQVO;
 import com.fs.course.vo.FsUserCourseVideoVO;
 import com.fs.course.vo.newfs.*;
 import com.fs.his.param.WxSendRedPacketParam;
-import com.fs.sop.mapper.SopUserLogsInfoMapper;
-import com.fs.store.domain.FsUser;
-import com.fs.store.domain.FsUserIntegralLogs;
-import com.fs.store.mapper.FsUserIntegralLogsMapper;
-import com.fs.store.mapper.FsUserMapper;
-import com.fs.store.service.IFsStorePaymentService;
-import com.fs.store.service.IFsUserService;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.domain.QwExternalContact;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.mapper.QwExternalContactMapper;
@@ -42,6 +36,13 @@ import com.fs.qwApi.Result.QwAddContactWayResult;
 import com.fs.qwApi.param.QwAddContactWayParam;
 import com.fs.qwApi.service.QwApiService;
 import com.fs.sop.mapper.QwSopLogsMapper;
+import com.fs.sop.mapper.SopUserLogsInfoMapper;
+import com.fs.store.domain.FsUser;
+import com.fs.store.domain.FsUserIntegralLogs;
+import com.fs.store.mapper.FsUserIntegralLogsMapper;
+import com.fs.store.mapper.FsUserMapper;
+import com.fs.store.service.IFsStorePaymentService;
+import com.fs.store.service.IFsUserService;
 import com.fs.store.service.cache.IFsUserCourseCacheService;
 import com.fs.system.service.ISysConfigService;
 import com.github.binarywang.wxpay.bean.transfer.TransferBillsResult;
@@ -51,17 +52,12 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
@@ -1085,6 +1081,16 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         });
     }
 
+    /**
+     * 获取选项列表
+     * @param params    参数
+     * @return  list
+     */
+    @Override
+    public List<OptionsVO> selectVideoListByMap(Map<String, Object> params) {
+        return fsUserCourseVideoMapper.selectVideoListByMap(params);
+    }
+
     //会员-更新心跳时间
     public void updateHeartbeatWx(FsUserCourseVideoUParam param) {
         String redisKey = "h5wxuser:watch:heartbeat:" + param.getUserId() + ":" + param.getVideoId() + ":" + param.getCompanyUserId();

+ 149 - 0
fs-service-system/src/main/java/com/fs/statis/domain/FsStatsMemberDaily.java

@@ -0,0 +1,149 @@
+package com.fs.statis.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@TableName("fs_stats_member_daily")
+public class FsStatsMemberDaily {
+
+    /**
+     * 主键ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 统计时间
+     */
+    private LocalDate statDate;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 用户昵称
+     */
+    private String nickName;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 用户手机号
+     */
+    private String phone;
+
+    /**
+     * 用户标签
+     */
+    private String tag;
+
+    /**
+     * 所属经销商分组
+     */
+    private Long companyGroupId;
+
+    /**
+     * 所属经销商
+     */
+    private Long companyId;
+
+    /**
+     * 所属经销商名称
+     */
+    private String companyName;
+
+    /**
+     * 所属群管
+     */
+    private Long companyUserId;
+
+    /**
+     * 所属群管名称
+     */
+    private String companyUserName;
+
+    /**
+     * 所属训练营
+     */
+    private Long trainCampId;
+
+    /**
+     * 所属训练营名称
+     */
+    private String trainCampName;
+
+    /**
+     * 所属营期
+     */
+    private Long periodId;
+
+    /**
+     * 所属营期名称
+     */
+    private String periodName;
+
+    /**
+     * 所属课程
+     */
+    private Long courseId;
+
+    /**
+     * 所属课程名称
+     */
+    private String courseName;
+
+    /**
+     * 所属小节
+     */
+    private Long videoId;
+
+    /**
+     * 所属小节名称
+     */
+    private String videoName;
+
+    /**
+     * 是否完课 0未完课 1已完课
+     */
+    private Integer isOver;
+
+    /**
+     * 观看次数
+     */
+    private Long watchCount;
+
+    /**
+     * 观看时长
+     */
+    private Long watchDuration;
+
+    /**
+     * 答题次数
+     */
+    private Long answerCount;
+
+    /**
+     * 正确次数
+     */
+    private Long answerCorrectCount;
+
+    /**
+     * 答题红包个数
+     */
+    private Long redPacketCount;
+
+    /**
+     * 答题红包金额
+     */
+    private Long redPacketAmount;
+}

+ 26 - 0
fs-service-system/src/main/java/com/fs/statis/mapper/FsStatsMemberDailyMapper.java

@@ -0,0 +1,26 @@
+package com.fs.statis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.statis.domain.FsStatsMemberDaily;
+import com.fs.statis.vo.FsStatsMemberDailyVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+
+public interface FsStatsMemberDailyMapper extends BaseMapper<FsStatsMemberDaily> {
+
+    /**
+     * 查询会员统计数据
+     * @param params    参数
+     * @return  list
+     */
+    List<FsStatsMemberDailyVO> selectDailyData(@Param("params") Map<String, Object> params);
+
+    /**
+     * 更新统计数据
+     * @param date 日期
+     */
+    void refreshMemberDailyData(@Param("date") LocalDate date);
+}

+ 23 - 0
fs-service-system/src/main/java/com/fs/statis/service/IFsStatsMemberDailyService.java

@@ -0,0 +1,23 @@
+package com.fs.statis.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.statis.domain.FsStatsMemberDaily;
+import com.fs.statis.vo.FsStatsMemberDailyVO;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IFsStatsMemberDailyService extends IService<FsStatsMemberDaily> {
+
+    /**
+     * 查询会员统计数据
+     * @param params    参数
+     * @return  list
+     */
+    List<FsStatsMemberDailyVO> selectDailyData(Map<String, Object> params);
+
+    /**
+     * 更新统计数据
+     */
+    void refreshMemberDailyData();
+}

+ 36 - 0
fs-service-system/src/main/java/com/fs/statis/service/impl/FsStatsMemberDailyServiceImpl.java

@@ -0,0 +1,36 @@
+package com.fs.statis.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.statis.domain.FsStatsMemberDaily;
+import com.fs.statis.mapper.FsStatsMemberDailyMapper;
+import com.fs.statis.service.IFsStatsMemberDailyService;
+import com.fs.statis.vo.FsStatsMemberDailyVO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class FsStatsMemberDailyServiceImpl extends ServiceImpl<FsStatsMemberDailyMapper, FsStatsMemberDaily> implements IFsStatsMemberDailyService {
+
+    /**
+     * 查询会员统计数据
+     * @param params    参数
+     * @return  list
+     */
+    @Override
+    public List<FsStatsMemberDailyVO> selectDailyData(Map<String, Object> params) {
+        return baseMapper.selectDailyData(params);
+    }
+
+    /**
+     * 更新统计数据
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void refreshMemberDailyData() {
+        baseMapper.refreshMemberDailyData(LocalDate.now());
+    }
+}

+ 82 - 0
fs-service-system/src/main/java/com/fs/statis/vo/FsStatsMemberDailyVO.java

@@ -0,0 +1,82 @@
+package com.fs.statis.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class FsStatsMemberDailyVO {
+    /**
+     * 统计日期
+     */
+    private LocalDate statDate;
+    /**
+     * 用户ID
+     */
+    private Long userId;
+    /**
+     * 用户昵称
+     */
+    private String nickName;
+    /**
+     * 用户姓名
+     */
+    private String realName;
+    /**
+     * 电话号码
+     */
+    private String phone;
+    /**
+     * 标签
+     */
+    private String tag;
+    /**
+     * 公司ID
+     */
+    private Long companyId;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     * 销售ID
+     */
+    private Long companyUserId;
+    /**
+     * 销售名称
+     */
+    private String companyUserName;
+    /**
+     * 课程数量
+     */
+    private Long count;
+    /**
+     * 完课数量
+     */
+    private Long overCount;
+    /**
+     * 观看次数
+     */
+    private Long watchCount;
+    /**
+     * 观看时长
+     */
+    private Long watchDuration;
+    /**
+     * 答题次数
+     */
+    private Long answerCount;
+    /**
+     * 正确次数
+     */
+    private Long answerCorrectCount;
+    /**
+     * 红包个数
+     */
+    private Long redPacketCount;
+    /**
+     * 红包金额
+     */
+    private BigDecimal redPacketAmount;
+}

+ 10 - 6
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -1,13 +1,9 @@
 package com.fs.store.mapper;
 
-import java.util.List;
-import java.util.Map;
-
 import com.fs.course.vo.newfs.FsCourseAnalysisCountVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.param.QwFsUserParam;
 import com.fs.qw.vo.QwFsUserVO;
-import com.fs.qw.vo.newvo.ExternalContactNumVO;
-import com.fs.store.domain.FsStorePayment;
 import com.fs.store.domain.FsUser;
 import com.fs.store.dto.FsUserTransferParamDTO;
 import com.fs.store.param.SelectCusListPageParam;
@@ -15,7 +11,6 @@ import com.fs.store.param.h5.CourseAnalysisParam;
 import com.fs.store.param.h5.FsUserPageListParam;
 import com.fs.store.param.h5.UserStatisticsCommonParam;
 import com.fs.store.vo.FSUserVO;
-
 import com.fs.store.vo.FsCompanyUserListQueryVO;
 import com.fs.store.vo.FsUserTuiVO;
 import com.fs.store.vo.h5.*;
@@ -23,6 +18,9 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 用户Mapper接口
  *
@@ -283,4 +281,10 @@ public interface FsUserMapper
 
     int batchUpdateUserCompanyUser(@Param("userIds") List<Long> userIds, @Param("companyUserId") Long companyUserId, @Param("companyId") Long companyId);
 
+    /**
+     * 查询会员选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectUserListByMap(@Param("params") Map<String, Object> params);
 }

+ 8 - 7
fs-service-system/src/main/java/com/fs/store/service/IFsUserService.java

@@ -1,14 +1,11 @@
 package com.fs.store.service;
 
-import java.util.List;
-import java.util.Map;
-
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.common.core.page.TableDataInfo;
-import com.fs.company.vo.CompanyQueryVo;
 import com.fs.course.param.newfs.FsUserCourseBeMemberParam;
 import com.fs.course.vo.newfs.FsCourseAnalysisVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.param.QwFsUserParam;
 import com.fs.qw.vo.QwFsUserVO;
 import com.fs.store.domain.FsStoreOrder;
@@ -22,12 +19,10 @@ import com.fs.store.param.h5.UserStatisticsCommonParam;
 import com.fs.store.vo.FSUserVO;
 import com.fs.store.vo.FsCompanyUserListQueryVO;
 import com.fs.store.vo.FsUserTuiVO;
-import com.fs.store.vo.h5.FsUserPageListVO;
-import com.fs.store.vo.h5.UserDetailsVO;
-import com.fs.store.vo.h5.UserListPageVO;
 import com.fs.store.vo.h5.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户Service接口
@@ -237,4 +232,10 @@ public interface IFsUserService
      */
     ResponseResult<Boolean> becomeMember(FsUserCourseBeMemberParam param);
 
+    /**
+     * 查询会员选项列表
+     * @param params    参数
+     * @return  list
+     */
+    List<OptionsVO> selectUserListByMap(Map<String, Object> params);
 }

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

@@ -1,13 +1,5 @@
 package com.fs.store.service.impl;
 
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.math.RoundingMode;
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -23,48 +15,51 @@ import com.fs.company.mapper.CompanyMapper;
 import com.fs.company.mapper.CompanyTagUserMapper;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.service.ICompanyUserService;
-import com.fs.company.vo.CompanyQueryVo;
 import com.fs.course.mapper.FsUserCourseVideoMapper;
 import com.fs.course.param.newfs.FsUserCourseBeMemberParam;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
 import com.fs.course.vo.newfs.FsCourseAnalysisCountVO;
 import com.fs.course.vo.newfs.FsCourseAnalysisVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
+import com.fs.his.vo.OptionsVO;
 import com.fs.qw.param.QwFsUserParam;
 import com.fs.qw.vo.QwFsUserVO;
 import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.domain.FsStoreOrderItem;
+import com.fs.store.domain.FsUser;
 import com.fs.store.domain.FsUserBill;
 import com.fs.store.dto.FsStoreCartDTO;
 import com.fs.store.dto.FsUserTransferParamDTO;
 import com.fs.store.enums.BillDetailEnum;
 import com.fs.store.mapper.FsStoreOrderMapper;
 import com.fs.store.mapper.FsStoreProductAttrValueMapper;
+import com.fs.store.mapper.FsUserMapper;
+import com.fs.store.param.SelectCusListPageParam;
 import com.fs.store.param.h5.CourseAnalysisParam;
 import com.fs.store.param.h5.FsUserPageListParam;
-import com.fs.store.param.SelectCusListPageParam;
 import com.fs.store.param.h5.UserStatisticsCommonParam;
 import com.fs.store.service.IFsUserBillService;
+import com.fs.store.service.IFsUserService;
 import com.fs.store.vo.FSUserVO;
 import com.fs.store.vo.FsCompanyUserListQueryVO;
 import com.fs.store.vo.FsUserTuiVO;
+import com.fs.store.vo.h5.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.http.util.Asserts;
-import com.fs.store.vo.h5.FsUserPageListVO;
-import com.fs.store.vo.h5.UserDetailsVO;
-import com.fs.store.vo.h5.UserListCountVO;
-import com.fs.store.vo.h5.UserListPageVO;
-import com.fs.store.vo.h5.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.fs.store.mapper.FsUserMapper;
-import com.fs.store.domain.FsUser;
-import com.fs.store.service.IFsUserService;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 import static com.fs.store.enums.BillDetailEnum.CATEGORY_1;
 import static com.fs.store.enums.BillDetailEnum.CATEGORY_3;
 
@@ -729,4 +724,14 @@ public class FsUserServiceImpl implements IFsUserService
         }
         return ResponseResult.ok(Boolean.TRUE);
     }
+
+    /**
+     * 查询会员选项列表
+     * @param params    参数
+     * @return  list
+     */
+    @Override
+    public List<OptionsVO> selectUserListByMap(Map<String, Object> params) {
+        return fsUserMapper.selectUserListByMap(params);
+    }
 }

+ 12 - 0
fs-service-system/src/main/resources/mapper/company/CompanyMapper.xml

@@ -51,6 +51,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where company_id = #{companyId}
     </select>
 
+    <select id="selectCompanyListByMap" resultType="com.fs.his.vo.OptionsVO">
+        select
+            c.company_id dictValue,
+            c.company_name dictLabel
+        from company c
+        <where>
+            <if test="params.companyName != null and params.companyName != ''">
+                company_name like concat('%', #{params.companyName}, '%')
+            </if>
+        </where>
+    </select>
+
     <insert id="insertCompany" parameterType="Company" useGeneratedKeys="true" keyProperty="companyId">
         insert into company
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 15 - 0
fs-service-system/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -443,4 +443,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+    <select id="selectCompanyUserListByMap" resultType="com.fs.his.vo.OptionsVO">
+        select
+            cu.user_id dictValue,
+            cu.nick_name dictLabel
+        from company_user cu
+        <where>
+            <if test="params.companyUserName != null and params.companyUserName != ''">
+                and cu.nick_name like concat('%', #{params.companyUserName}, '%')
+            </if>
+            <if test="params.companyId != null">
+                and cu.company_id = #{params.companyId}
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 15 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCoursePeriodDaysMapper.xml

@@ -119,4 +119,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
 
     </select>
+
+    <select id="selectPeriodListByMap" resultType="com.fs.his.vo.OptionsVO">
+        select
+            ucp.period_id dictValue,
+            ucp.period_name dictLabel
+        from fs_user_course_period ucp
+        <where>
+            <if test="params.name != null and params.name != ''">
+                and ucp.period_name like concat('%', #{params.name}, '%')
+            </if>
+            <if test="params.campId != null">
+                and ucp.training_camp_id = #{params.campId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 12 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCourseTrainingCampMapper.xml

@@ -34,4 +34,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </otherwise>
         </choose>
     </select>
+
+    <select id="selectCampListByMap" resultType="com.fs.his.vo.OptionsVO">
+        select
+            ctc.training_camp_id dictValue,
+            ctc.training_camp_name dictLabel
+        from fs_user_course_training_camp ctc
+        <where>
+            <if test="params.name != null and params.name != ''">
+                ctc.training_camp_name like concat('%', #{params.name}, '%')
+            </if>
+        </where>
+    </select>
 </mapper>

+ 16 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml

@@ -253,6 +253,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by video.course_sort
     </select>
 
+    <select id="selectVideoListByMap" resultType="com.fs.his.vo.OptionsVO">
+        select distinct
+            ucv.video_id dictValue,
+            ucv.title dictLabel
+        from fs_user_course_video ucv
+        left join fs_user_course_period_days ucpd on ucpd.video_id = ucv.video_id
+        <where>
+            <if test="params.name != null and params.name != ''">
+                ucv.title like concat('%', #{params.name}, '%')
+            </if>
+            <if test="params.periodId != null">
+                and ucpd.period_id = #{params.periodId}
+            </if>
+        </where>
+    </select>
+
     <update id="updateRedPacketMoney">
         update fs_user_course_video set red_packet_money = #{redPacketMoney} where video_id = #{videoId}
     </update>

+ 161 - 0
fs-service-system/src/main/resources/mapper/statis/FsStatsMemberDailyMapper.xml

@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.statis.mapper.FsStatsMemberDailyMapper">
+
+    <update id="refreshMemberDailyData">
+        insert into fs_stats_member_daily
+            (
+            stat_date,user_id,nick_name,real_name,phone,tag,company_group_id,company_id,company_name,company_user_id,company_user_name,
+            train_camp_id,train_camp_name,period_id,period_name,course_id,course_name,video_id,video_name,is_over,watch_count,watch_duration,
+            answer_count,answer_correct_count,red_packet_count,red_packet_amount
+            )
+        select
+            #{date}					    as stat_date,
+            u.user_id				    as user_id,
+            u.nickname				    as nick_name,
+            u.real_name				    as real_name,
+            u.phone					    as phone,
+            concat_ws(',', t.tag) 	    as tag,
+            null					    as company_group_id,
+            c.company_id			    as company_id,
+            c.company_name			    as company_name,
+            cu.user_id				    as company_user_id,
+            cu.nick_name			    as company_user_name,
+            uctc.training_camp_id 	    as train_camp_id,
+            uctc.training_camp_name	    as train_camp_name,
+            ucp.period_id			    as period_id,
+            ucp.period_name			    as period_name,
+            uc.course_id			    as course_id,
+            uc.course_name			    as course_name,
+            ucv.video_id			    as video_id,
+            ucv.title				    as video_name,
+            max(case when cwl.log_type = 2 then 1 else 0 end)
+                                        as is_over,
+            count(cwl.log_id)		    as watch_count,
+            sum(cwl.duration)		    as watch_duration,
+            count(cal.log_id)		    as answer_count,
+            count(case when cal.is_right = 1 then cal.log_id end)
+                                        as answer_correct_count,
+            count(crpl.log_id)		    as red_packet_count,
+            ifnull(sum(crpl.amount),0)	as red_packet_amount
+        from fs_course_watch_log cwl
+        inner join fs_user u 									on u.user_id = cwl.user_id
+        left join company_tag_user ctu 							on ctu.company_id = cwl.company_id and ctu.company_user_id = cwl.company_user_id and ctu.user_id = cwl.user_id
+        left join company_tag t 								on FIND_IN_SET(t.tag_id, ctu.tag_ids)
+        left join fs_user_course_period ucp 				    on ucp.period_id = cwl.period_id
+        left join fs_user_course_training_camp uctc             on uctc.training_camp_id = ucp.training_camp_id
+        left join company c 									on c.company_id = cwl.company_id
+        left join company_user cu 								on cu.company_id = cwl.company_id and cu.user_id = cwl.company_user_id
+        left join fs_user_course uc 							on uc.course_id = cwl.course_id
+        left join fs_user_course_video ucv 					    on ucv.course_id = cwl.course_id and ucv.video_id = cwl.video_id
+        left join fs_course_answer_logs cal 				    on cal.watch_log_id = cwl.log_id
+        left join fs_course_red_packet_log crpl 		        on crpl.watch_log_id = cwl.log_id
+        <![CDATA[
+        where cwl.create_time >= #{date} and cwl.create_time < date_add(#{date}, interval 1 day)
+        ]]>
+        group by
+            cwl.user_id,
+            cwl.company_id,
+            cwl.company_user_id,
+            ucp.training_camp_id,
+            cwl.period_id,
+            cwl.course_id,
+            cwl.video_id
+        on duplicate key update
+            nick_name = values(nick_name),
+            real_name = values(real_name),
+            phone = values(phone),
+            tag = values(tag),
+            company_name = values(company_name),
+            company_user_name = values(company_user_name),
+            train_camp_name = values(train_camp_name),
+            period_name = values(period_name),
+            course_name = values(course_name),
+            video_name = values(video_name),
+            is_over = values(is_over),
+            watch_count = values(watch_count),
+            watch_duration = values(watch_duration),
+            answer_count = values(answer_count),
+            answer_correct_count = values(answer_correct_count),
+            red_packet_count = values(red_packet_count),
+            red_packet_amount = values(red_packet_amount)
+    </update>
+
+    <select id="selectDailyData" resultType="com.fs.statis.vo.FsStatsMemberDailyVO">
+        select
+            <choose>
+                <when test="params.type == 1">
+                    fsmd.stat_date,
+                </when>
+                <otherwise>
+                    date_format(fsmd.stat_date, '%Y-%m') as stat_date,
+                </otherwise>
+            </choose>
+            fsmd.user_id,
+            fsmd.nick_name,
+            fsmd.real_name,
+            fsmd.phone,
+            fsmd.tag,
+            fsmd.company_id,
+            fsmd.company_name,
+            fsmd.company_user_id,
+            fsmd.company_user_name,
+            count(fsmd.id) as count,
+            sum(fsmd.is_over) as overCount,
+            sum(fsmd.watch_count) as watchCount,
+            sum(fsmd.watch_duration) as watchDuration,
+            sum(fsmd.answer_count) as answerCount,
+            sum(fsmd.answer_correct_count) as anserCorrectCount,
+            sum(fsmd.red_packet_count) as redPacketCount,
+            sum(fsmd.red_packet_amount) redPacketAmount
+        from fs_stats_member_daily fsmd
+        <where>
+            <if test="params.startDate != null">
+                and fsmd.stat_date >= #{params.startDate}
+            </if>
+            <if test="params.endDate != null">
+            <![CDATA[
+                and fsmd.stat_date < #{params.endDate}
+            ]]>
+            </if>
+            <if test="params.companyId != null">
+                and fsmd.company_id = #{params.companyId}
+            </if>
+            <if test="params.companyUserId != null">
+                and fsmd.company_user_id = #{params.companyUserId}
+            </if>
+            <if test="params.userId != null">
+                and fsmd.user_id = #{params.userId}
+            </if>
+            <if test="params.phone != null and params.phone != ''">
+                and fsmd.phone like concat('%', #{params.phone}, '%')
+            </if>
+            <if test="params.trainCampId != null">
+                and fsmd.train_camp_id = #{params.trainCampId}
+            </if>
+            <if test="params.periodId != null">
+                and fsmd.period_id = #{params.periodId}
+            </if>
+            <if test="params.courseId != null">
+                and fsmd.course_id = #{params.courseId}
+            </if>
+            <if test="params.videoId != null">
+                and fsmd.video_id = #{params.videoId}
+            </if>
+        </where>
+        group by
+            <choose>
+                <when test="params.type == 1">
+                    stat_date,
+                </when>
+                <otherwise>
+                    date_format(stat_date, '%Y-%m'),
+                </otherwise>
+            </choose>
+            user_id,
+            company_id,
+            company_user_id
+    </select>
+</mapper>

+ 12 - 0
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -1450,4 +1450,16 @@
         </foreach>
     </update>
 
+    <select id="selectUserListByMap" resultType="com.fs.his.vo.OptionsVO">
+        select
+            u.user_id dictValue,
+            u.nickname dictLabel
+        from fs_user u
+        <where>
+            <if test="params.nickName != null and params.nickName != ''">
+                u.nickname like concat('%', #{params.nickName}, '%')
+            </if>
+        </where>
+    </select>
+
 </mapper>