瀏覽代碼

卓美手看课,最后看课时间超过15天的就清绑定关系

yjwang 1 周之前
父節點
當前提交
7030d0358d

+ 15 - 0
fs-admin/src/main/java/com/fs/his/task/Task.java

@@ -23,6 +23,7 @@ import com.fs.company.vo.QwIpadTotalVo;
 import com.fs.company.vo.RedPacketMoneyVO;
 import com.fs.course.dto.BatchSendCourseAllDTO;
 import com.fs.course.mapper.FsCourseRedPacketLogMapper;
+import com.fs.course.mapper.FsUserCompanyUserMapper;
 import com.fs.course.service.IFsCourseWatchLogService;
 import com.fs.course.service.ITencentCloudCosService;
 import com.fs.erp.domain.ErpDeliverys;
@@ -234,6 +235,10 @@ public class Task {
 
     @Autowired
     private IFsStoreOrderScrmService orderScrmService;
+
+    @Autowired
+    private FsUserCompanyUserMapper fsUserCompanyUserMapper;
+
     /**
      * 定时任务,处理ai禁止回复之后的消息
      */
@@ -1931,6 +1936,16 @@ public class Task {
         return futures;
     }
 
+    //处理看课用户大于等于15天的清理绑定关系
+    public void clearUserCourseBind(){
+        //获取相关信息
+        List<Long> userIds = fsCourseWatchLogService.selectWatchLogOutdatedInfo();
+        if(!userIds.isEmpty()){
+            //清理绑定关系
+            fsUserCompanyUserMapper.deleteByUserIds(userIds);
+        }
+    }
+
     /**
      * 等待所有任务完成
      * @param futures CompletableFuture列表

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

@@ -909,4 +909,19 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
      * 销售部门维度订单统计
      */
     List<AppSalesWatchLogReportVO> selectAppDeptOrderStats(FsCourseWatchLogStatisticsListParam param);
+
+    /**
+     * 获取过期数据
+     * **/
+    @Select("SELECT user_id FROM fs_course_watch_log \n" +
+            "WHERE send_type = 1 \n" +
+            "  AND create_time <= DATE_SUB(NOW(), INTERVAL 15 DAY)\n" +
+            "  AND (user_id, create_time) IN (\n" +
+            "    SELECT user_id, MAX(create_time) \n" +
+            "    FROM fs_course_watch_log \n" +
+            "    WHERE send_type = 1 \n" +
+            "      AND create_time <= DATE_SUB(NOW(), INTERVAL 15 DAY)\n" +
+            "    GROUP BY user_id\n" +
+            "  )")
+    List<Long> selectWatchLogOutdatedInfo();
 }

+ 6 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCompanyUserMapper.java

@@ -110,4 +110,10 @@ public interface FsUserCompanyUserMapper extends BaseMapper<FsUserCompanyUser>{
      * @return
      */
     FsUserCompanyUser selectFsUserCompanyUserByUserId(@Param("userId") Long userId);
+
+    /**
+     * 批量清理用户绑定数据
+     * @param userIds 会员id
+     * **/
+    void deleteByUserIds(@Param("userIds") List<Long> userIds);
 }

+ 5 - 0
fs-service/src/main/java/com/fs/course/service/IFsCourseWatchLogService.java

@@ -203,4 +203,9 @@ public interface IFsCourseWatchLogService extends IService<FsCourseWatchLog> {
 
     List<AppSalesCourseStatisticsVO> selectAppSalesCourseStatisticsVO(FsCourseWatchLogStatisticsListParam param);
 
+    /**
+     * 获取15天过期未看课用户数据
+     * **/
+    List<Long> selectWatchLogOutdatedInfo();
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsCourseWatchLogServiceImpl.java

@@ -2299,6 +2299,11 @@ public class FsCourseWatchLogServiceImpl extends ServiceImpl<FsCourseWatchLogMap
         return resultList;
     }
 
+    @Override
+    public List<Long> selectWatchLogOutdatedInfo() {
+        return baseMapper.selectWatchLogOutdatedInfo();
+    }
+
     private void setDefaultValues(AppSalesCourseStatisticsVO vo) {
         vo.setFinishedCount(vo.getFinishedCount() != null ? vo.getFinishedCount() : 0);
         vo.setNotWatchedCount(vo.getNotWatchedCount() != null ? vo.getNotWatchedCount() : 0);

+ 6 - 0
fs-service/src/main/resources/mapper/course/FsUserCompanyUserMapper.xml

@@ -220,4 +220,10 @@
             LIMIT 1
     </select>
 
+    <delete id="deleteByUserIds">
+        DELETE FROM  fs_user_company_user WHERE  user_id IN
+        <foreach item="item" collection="userIds" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </delete>
 </mapper>