Prechádzať zdrojové kódy

add:补发完课积分

ct 1 týždeň pred
rodič
commit
f7728d6f7f

+ 41 - 0
fs-admin/src/main/java/com/fs/course/task/VideoTask.java

@@ -5,9 +5,14 @@ import com.fs.common.core.redis.RedisCache;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.*;
 import com.fs.course.mapper.*;
+import com.fs.course.param.FsCourseSendRewardUParam;
 import com.fs.course.service.IFsCourseTrafficLogService;
+import com.fs.course.service.IFsUserCourseVideoService;
 import com.fs.course.service.IFsUserVideoCommentService;
 import com.fs.his.domain.FsUser;
+import com.fs.his.domain.FsUserIntegralLogs;
+import com.fs.his.enums.FsUserIntegralLogTypeEnum;
+import com.fs.his.mapper.FsUserIntegralLogsMapper;
 import com.fs.his.mapper.FsUserMapper;
 import com.qcloud.cos.COSClient;
 import com.qcloud.cos.ClientConfig;
@@ -59,6 +64,10 @@ public class VideoTask {
 
     @Autowired
     private IFsCourseTrafficLogService iFsCourseTrafficLogService;
+    @Autowired
+    private FsUserIntegralLogsMapper fsUserIntegralLogsMapper;
+    @Autowired
+    private IFsUserCourseVideoService courseVideoService;
 
     public void autoNotShowVideo() {
         List<Long> list = videoMapper.selectNotAuditVideo();
@@ -254,4 +263,36 @@ public class VideoTask {
         iFsCourseTrafficLogService.saveCourseTrafficLog();
     }
 
+    /**
+     * 补发完课积分
+     */
+    public void reissueFinishVideoIntegral() {
+        List<FsCourseWatchLog> watchingLogs = courseWatchLogMapper.findWatchLogsIdExitAndFinish();
+        //查询积分记录 是否存在
+        for (FsCourseWatchLog log : watchingLogs) {
+            FsUserIntegralLogs queryParam = new FsUserIntegralLogs();
+            queryParam.setUserId(log.getUserId());
+            queryParam.setBusinessId(log.getLogId().toString());
+            queryParam.setLogType(FsUserIntegralLogTypeEnum.TYPE_17.getValue());
+            //查询积分记录 是否存在
+            Long num = fsUserIntegralLogsMapper.selectFsUserIntegralLogsListCOUNT(queryParam);
+            if (num == null || num == 0){
+                FsCourseSendRewardUParam param = new FsCourseSendRewardUParam();
+                param.setIsAuto(1);
+                param.setVideoId(log.getVideoId());
+                param.setQwUserId(log.getQwUserId().toString());
+                param.setCompanyUserId(log.getCompanyUserId());
+                param.setCompanyId(log.getCompanyId());
+                param.setCourseId(log.getCourseId());
+                param.setQwExternalId(log.getQwExternalContactId());
+                param.setSource(log.getWatchType() == 2?2:1);
+                param.setSendType(log.getSendType());
+                param.setPeriodId(log.getPeriodId());
+                param.setUserId(log.getUserId());
+                param.setAppId("");
+                courseVideoService.sendRewardByFsUser(param);
+            }
+        }
+    }
+
 }

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

@@ -730,4 +730,13 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
     List<Long> getExContactIdsIdsByWatchLogIds(@Param("watchLogIds")List<Long> watchLogIds);
 
     List<FsSopMyCourseH5LinkVO> getSopCourseH5StudyList(@Param("userId") Long userId);
+
+
+    List<FsCourseWatchLog> findWatchLogsIdExitAndFinish();
+
+    @Select("select * from fs_course_watch_log " +
+            "where video_id = #{videoId} " +
+            "and company_user_id = #{companyUserId} " +
+            "and user_id = #{userId} order by create_time desc limit 1")
+    FsCourseWatchLog getWatchCourseVideoByFsUser2(@Param("userId") Long userId, @Param("videoId") Long videoId, @Param("companyUserId") Long companyUserId);
 }

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

@@ -38,5 +38,6 @@ public class FsCourseSendRewardUParam implements Serializable
     private String appId; //前端传来的小程序的appid
 
     private String code;
+    private Integer isAuto;
 
 }

+ 6 - 2
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -1623,8 +1623,12 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
         if (user == null) {
             return R.error("未识别到用户信息");
         }
-
-        FsCourseWatchLog log = courseWatchLogMapper.getWatchCourseVideoByFsUser(param.getUserId(), param.getVideoId(), param.getCompanyUserId());
+        FsCourseWatchLog log = null;
+        if (param.getIsAuto() != null && param.getIsAuto() == 1) {
+            log = courseWatchLogMapper.getWatchCourseVideoByFsUser2(param.getUserId(), param.getVideoId(), param.getCompanyUserId());
+        } else {
+            log = courseWatchLogMapper.getWatchCourseVideoByFsUser(param.getUserId(), param.getVideoId(), param.getCompanyUserId());
+        }
         if (log == null) {
             return R.error("无记录");
         }

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

@@ -1202,4 +1202,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND l.create_time &lt; CURDATE() + INTERVAL 1 DAY
         order by l.create_time desc
     </select>
+    <select id="findWatchLogsIdExitAndFinish" resultType="com.fs.course.domain.FsCourseWatchLog">
+        SELECT log_id,user_id,video_id,qw_user_id,company_user_id,company_id,course_id,qw_external_contact_id,send_type,period_id,watch_type
+        FROM fs_course_watch_log
+        WHERE log_type = 2
+          AND finish_time >= NOW() - INTERVAL 10 MINUTE
+    </select>
 </mapper>