Ver código fonte

Merge remote-tracking branch 'origin/master'

yfh 1 semana atrás
pai
commit
0eef7d15b9
22 arquivos alterados com 94 adições e 177 exclusões
  1. 4 2
      fs-admin/src/main/java/com/fs/course/controller/FsCourseRedPacketLogController.java
  2. 11 2
      fs-admin/src/main/java/com/fs/course/controller/FsCourseTrafficLogController.java
  3. 2 1
      fs-admin/src/main/java/com/fs/course/controller/FsUserCourseController.java
  4. 4 2
      fs-admin/src/main/java/com/fs/qw/controller/QwSopController.java
  5. 0 137
      fs-company-app/src/main/resources/application-druid-fby.yml
  6. 2 2
      fs-company/src/main/java/com/fs/course/controller/FsCourseRedPacketLogController.java
  7. 1 1
      fs-company/src/main/java/com/fs/course/controller/FsCourseTrafficLogController.java
  8. 1 1
      fs-company/src/main/java/com/fs/course/controller/FsUserCourseController.java
  9. 20 17
      fs-company/src/main/java/com/fs/course/controller/FsUserCourseVideoController.java
  10. 1 1
      fs-company/src/main/java/com/fs/qw/QwSopController.java
  11. 5 1
      fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java
  12. 1 2
      fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseMapper.java
  13. 1 2
      fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoMapper.java
  14. 1 0
      fs-service-system/src/main/java/com/fs/course/param/BatchVideoSvae.java
  15. 1 1
      fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseService.java
  16. 2 2
      fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java
  17. 5 1
      fs-service-system/src/main/java/com/fs/statis/service/impl/StatisticsCompanyServiceImpl.java
  18. 2 0
      fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java
  19. 1 1
      fs-service-system/src/main/resources/application-config-fby.yml
  20. 7 0
      fs-service-system/src/main/resources/mapper/course/FsUserCourseMapper.xml
  21. 11 1
      fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml
  22. 11 0
      fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

+ 4 - 2
fs-admin/src/main/java/com/fs/course/controller/FsCourseRedPacketLogController.java

@@ -122,14 +122,16 @@ public class FsCourseRedPacketLogController extends BaseController
     @GetMapping("/courseList")
     public R courseList()
     {
-        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList(loginUser.getUser().getUserId());
         return R.ok().put("list", optionsVOS);
     }
 
     @GetMapping(value = "/videoList/{id}")
     public R videoList(@PathVariable("id") Long id)
     {
-        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id);
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id,loginUser.getUser().getUserId());
         return R.ok().put("list", optionsVOS);
     }
 }

+ 11 - 2
fs-admin/src/main/java/com/fs/course/controller/FsCourseTrafficLogController.java

@@ -7,7 +7,10 @@ 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.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.core.security.LoginUser;
+import com.fs.core.web.service.TokenService;
 import com.fs.course.domain.FsCourseTrafficLog;
 import com.fs.course.mapper.FsUserCourseVideoMapper;
 import com.fs.course.param.FsCourseTrafficLogParam;
@@ -43,6 +46,8 @@ public class FsCourseTrafficLogController extends BaseController
     private IFsUserCourseService fsUserCourseMapper;
     @Autowired
     private FsUserCourseVideoMapper fsUserCourseVideoMapper;
+    @Autowired
+    private TokenService tokenService;
     /**
      * 查询短链课程流量记录列表
      */
@@ -121,14 +126,18 @@ public class FsCourseTrafficLogController extends BaseController
     @GetMapping("/courseList")
     public R courseList()
     {
-        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList(loginUser.getUser().getUserId());
         return R.ok().put("list", optionsVOS);
     }
 
     @GetMapping(value = "/videoList/{id}")
     public R videoList(@PathVariable("id") Long id)
     {
-        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id);
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id,loginUser.getUser().getUserId());
         return R.ok().put("list", optionsVOS);
     }
 }

+ 2 - 1
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseController.java

@@ -194,7 +194,8 @@ public class FsUserCourseController extends BaseController
     @GetMapping("/getAllList")
     public R getAllList()
     {
-        List<OptionsVO> list = fsUserCourseService.selectFsUserCourseAllList();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<OptionsVO> list = fsUserCourseService.selectFsUserCourseAllList(loginUser.getUser().getUserId());
         return R.ok().put("data", list);
     }
 

+ 4 - 2
fs-admin/src/main/java/com/fs/qw/controller/QwSopController.java

@@ -77,14 +77,16 @@ public class QwSopController extends BaseController
     @GetMapping("/courseList")
     public R courseList()
     {
-        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList(loginUser.getUser().getUserId());
         return R.ok().put("list", optionsVOS);
     }
 
     @GetMapping(value = "/videoList/{id}")
     public R videoList(@PathVariable("id") Long id)
     {
-        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id);
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id,loginUser.getUser().getUserId());
         return R.ok().put("list", optionsVOS);
     }
     /**

+ 0 - 137
fs-company-app/src/main/resources/application-druid-fby.yml

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

+ 2 - 2
fs-company/src/main/java/com/fs/course/controller/FsCourseRedPacketLogController.java

@@ -169,14 +169,14 @@ public class FsCourseRedPacketLogController extends BaseController
     @GetMapping("/courseList")
     public R courseList()
     {
-        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList();
+        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList(null);
         return R.ok().put("list", optionsVOS);
     }
 
     @GetMapping(value = "/videoList/{id}")
     public R videoList(@PathVariable("id") Long id)
     {
-        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id);
+        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id,null);
         return R.ok().put("list", optionsVOS);
     }
 }

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

@@ -128,7 +128,7 @@ public class FsCourseTrafficLogController extends BaseController
     @GetMapping("/courseList")
     public R courseList()
     {
-        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList();
+        List<OptionsVO> optionsVOS = fsUserCourseMapper.selectFsUserCourseAllList(null);
         return R.ok().put("list", optionsVOS);
     }
 }

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

@@ -78,7 +78,7 @@ public class FsUserCourseController extends BaseController
     @GetMapping("/getAllList")
     public R getAllList()
     {
-        List<OptionsVO> list = fsUserCourseService.selectFsUserCourseAllList();
+        List<OptionsVO> list = fsUserCourseService.selectFsUserCourseAllList(null);
         return R.ok().put("data", list);
     }
 

+ 20 - 17
fs-company/src/main/java/com/fs/course/controller/FsUserCourseVideoController.java

@@ -70,25 +70,28 @@ public class FsUserCourseVideoController extends BaseController
     @GetMapping(value = "/{videoId}")
     public AjaxResult getInfo(@PathVariable("videoId") Long videoId)
     {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-
-        return AjaxResult.success(fsUserCourseVideoService.selectFsUserCourseVideoByVideoIdVO(videoId,loginUser.getUser().getUserId()));
+        return AjaxResult.success(fsUserCourseVideoService.selectFsUserCourseVideoByVideoIdVO(videoId,null));
     }
 
-    /**
-     * 新增课堂视频
-     */
-    @PreAuthorize("@ss.hasPermi('course:userCourseVideo:add')")
-    @Log(title = "课堂视频", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsUserCourseVideo fsUserCourseVideo)
-    {
-        Long count = fsUserCourseVideoMapper.selectFsUserCourseVideoByCourseSort(fsUserCourseVideo.getCourseId(),fsUserCourseVideo.getCourseSort());
-        if (count>0){
-            return AjaxResult.error("课程排序重复");
-        }
-        return toAjax(fsUserCourseVideoService.insertFsUserCourseVideo(fsUserCourseVideo));
-    }
+
+
+
+
+
+//    /**
+//     * 新增课堂视频 如果需要开放此功能需要考虑user_id,admin有加这个参数
+//     */
+//    @PreAuthorize("@ss.hasPermi('course:userCourseVideo:add')")
+//    @Log(title = "课堂视频", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsUserCourseVideo fsUserCourseVideo)
+//    {
+//        Long count = fsUserCourseVideoMapper.selectFsUserCourseVideoByCourseSort(fsUserCourseVideo.getCourseId(),fsUserCourseVideo.getCourseSort());
+//        if (count>0){
+//            return AjaxResult.error("课程排序重复");
+//        }
+//        return toAjax(fsUserCourseVideoService.insertFsUserCourseVideo(fsUserCourseVideo));
+//    }
 
     /**
      * 修改课堂视频

+ 1 - 1
fs-company/src/main/java/com/fs/qw/QwSopController.java

@@ -96,7 +96,7 @@ public class QwSopController extends BaseController
     @GetMapping(value = "/videoList/{id}")
     public R videoList(@PathVariable("id") Long id)
     {
-        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id);
+        List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id,null);
         return R.ok().put("list", optionsVOS);
     }
     /**

+ 5 - 1
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -494,13 +494,17 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     }
 
     @Override
+    @Transactional
     public int changeCompanyUser(List<Long> userIds, Long companyUserId, Long companyId) {
 
         CompanyUser toUser = companyUserMapper.selectCompanyUserById(companyUserId);
         if (Objects.isNull(toUser)) {
             throw new ServiceException("需要更换归属的销售不存在");
         }
-       return fsUserMapper.batchUpdateUserCompanyUser(userIds, companyUserId, companyId);
+       fsUserMapper.batchUpdateUserCompanyUser(userIds, companyUserId, companyId);
+        // 修改中间表
+        fsUserMapper.batchUpdateCompanyUserRelation(userIds, companyUserId, companyId);
+        return 1;
     }
 
     /**

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

@@ -128,8 +128,7 @@ public interface FsUserCourseMapper
             "</script>"})
     List<FsUserCourseListUVO> selectFsUserCourseListUVO(@Param("maps") FsUserCourseListUParam param);
 
-    @Select("select course_id dict_value, course_name dict_label,img_url dict_imgUrl  from fs_user_course where is_del = 0 and is_private = 1 ")
-    List<OptionsVO> selectFsUserCourseAllList();
+    List<OptionsVO> selectFsUserCourseAllList(@Param("userId") Long userId);
 
 
     @Select({"<script> " +

+ 1 - 2
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoMapper.java

@@ -136,8 +136,7 @@ public interface FsUserCourseVideoMapper
     Long selectFsUserCourseVideoByCourseSort(@Param("courseId")Long courseId, @Param("courseSort")Long courseSort);
 
 
-    @Select("select video_id dict_value, title dict_label  from fs_user_course_video where course_id=#{id} and is_del = 0 ")
-    List<OptionsVO> selectFsUserCourseVodeAllList(Long id);
+    List<OptionsVO> selectFsUserCourseVodeAllList(@Param("id") Long id,@Param("userId")Long userId);
 
     @Select({"<script> " +
             "select v.*,p.red_packet_money company_red_packet_money from fs_user_course_video v LEFT JOIN fs_user_course_video_red_package p on p.video_id= v.video_id and p.company_id =#{maps.companyId} " +

+ 1 - 0
fs-service-system/src/main/java/com/fs/course/param/BatchVideoSvae.java

@@ -12,4 +12,5 @@ public class BatchVideoSvae {
     private Long courseId;
     private Long userId;
     private List<Long> ids;
+    private Long userId;
 }

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

@@ -83,7 +83,7 @@ public interface IFsUserCourseService
 
     List<FsUserCourseListUVO> selectFsUserCourseListUVO(FsUserCourseListUParam param);
 
-    List<OptionsVO> selectFsUserCourseAllList();
+    List<OptionsVO> selectFsUserCourseAllList(Long userId);
 
     List<FsUserCourseListPVO> selectFsUserCourseListPVO(FsUserCourse param);
 

+ 2 - 2
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java

@@ -220,8 +220,8 @@ public class FsUserCourseServiceImpl implements IFsUserCourseService
     }
 
     @Override
-    public List<OptionsVO> selectFsUserCourseAllList() {
-        return fsUserCourseMapper.selectFsUserCourseAllList();
+    public List<OptionsVO> selectFsUserCourseAllList(Long userId) {
+        return fsUserCourseMapper.selectFsUserCourseAllList(userId);
     }
 
 

+ 5 - 1
fs-service-system/src/main/java/com/fs/statis/service/impl/StatisticsCompanyServiceImpl.java

@@ -949,7 +949,11 @@ public class StatisticsCompanyServiceImpl implements IStatisticsCompanyService {
 
     @Override
     public List<WatchEndPlayTrendDTO> watchEndPlayTrend(AnalysisPreviewQueryDTO param) {
-        return consumptionBalanceMapper.watchEndPlayTrend(param);
+        List<WatchEndPlayTrendDTO> watchEndPlayTrendDTOS = consumptionBalanceMapper.watchEndPlayTrend(param);
+        for (WatchEndPlayTrendDTO watchEndPlayTrendDTO : watchEndPlayTrendDTOS) {
+            watchEndPlayTrendDTO.setX(watchEndPlayTrendDTO.getStartDate());
+        }
+        return watchEndPlayTrendDTOS;
     }
 
     @Override

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -287,6 +287,8 @@ public interface FsUserMapper
 
     int batchUpdateUserCompanyUser(@Param("userIds") List<Long> userIds, @Param("companyUserId") Long companyUserId, @Param("companyId") Long companyId);
 
+    int batchUpdateCompanyUserRelation(@Param("userIds") List<Long> userIds, @Param("companyUserId") Long companyUserId, @Param("companyId") Long companyId);
+
     /**
      * 查询会员选项列表
      * @param params    参数

+ 1 - 1
fs-service-system/src/main/resources/application-config-fby.yml

@@ -103,7 +103,7 @@ wx:
       timeout: 2000
     configs:
       - appId: wx961fadab9bcb792b # 第一个公众号的appid  //公众号名称:云联
-        secret: eddde2a1d4ca0c6c443a67e542b6864c
+        secret: 8adb2a7533921449ef6e60814c2ff075
         token: PPKOdAlCoMO # 接口配置里的Token值
         aesKey: Eswa6VjwtVMCcw03qZy6fWllgrv5aytIA1SZPEU0kU2 # 接口配置里的EncodingAESKey值
 jpush:

+ 7 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCourseMapper.xml

@@ -326,4 +326,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
         order by c.course_id
     </select>
+    <select id="selectFsUserCourseAllList" resultType="com.fs.his.vo.OptionsVO">
+        select course_id dict_value, course_name dict_label,img_url dict_imgUrl  from fs_user_course
+                                                                                 where is_del = 0 and is_private = 1
+        <if test="userId != null">
+            and user_id = #{userId}
+        </if>
+    </select>
 </mapper>

+ 11 - 1
fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml

@@ -315,7 +315,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by video.course_sort
     </select>
     <select id="selectFsUserCourseVideoByVideoIdAndUserId" resultType="com.fs.course.domain.FsUserCourseVideo">
-
+        select *  from fs_user_course_video
+                                                      where video_id=#{videoId} and is_del = 0
+        <if test="userId != null">
+            user_id = #{userId}
+        </if>
+    </select>
+    <select id="selectFsUserCourseVodeAllList" resultType="com.fs.his.vo.OptionsVO">
+        select video_id dict_value, title dict_label  from fs_user_course_video where course_id=#{id} and is_del = 0
+        <if test="userId != null">
+            and user_id = #{userId}
+        </if>
     </select>
 
     <update id="updateRedPacketMoney">

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

@@ -1557,6 +1557,17 @@
         </foreach>
     </update>
 
+    <update id="batchUpdateCompanyUserRelation">
+        update fs_user_company_user
+        set company_id = #{companyId},
+        company_user_id = #{companyUserId}
+        where is_repeat_fans = 0 and
+        <foreach collection="userIds" open="(" close=")" separator="or" item="userId" index="index">
+           user_id = #{userId}
+        </foreach>
+    </update>
+
+
     <select id="selectUserListByMap" resultType="com.fs.his.vo.OptionsVO">
         select
             u.user_id dictValue,