Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

yjwang 2 дней назад
Родитель
Сommit
27bbbc0fec

+ 14 - 0
fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java

@@ -190,6 +190,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
 
     // Executors for consumer threads
     private ExecutorService qwSopLogsExecutor;
+    private ExecutorService qwSopSmsLogsExecutor;
     private ExecutorService watchLogsExecutor;
     private ExecutorService courseLinkExecutor;
     private ExecutorService courseSopAppLinkExecutor;
@@ -250,6 +251,13 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
             t.setDaemon(true);
             return t;
         });
+
+        qwSopSmsLogsExecutor = Executors.newSingleThreadExecutor(r -> {
+            Thread t = new Thread(r, "QwSopSmsLogsConsumer");
+            t.setDaemon(true);
+            return t;
+        });
+
         watchLogsExecutor = Executors.newSingleThreadExecutor(r -> {
             Thread t = new Thread(r, "WatchLogsConsumer");
             t.setDaemon(true);
@@ -274,6 +282,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
         });
 
         qwSopLogsExecutor.submit(this::consumeQwSopLogs);
+        qwSopSmsLogsExecutor.submit(this::consumeQwSopSmsLogs);
         watchLogsExecutor.submit(this::consumeWatchLogs);
         courseLinkExecutor.submit(this::consumeCourseLink);
         courseSopAppLinkExecutor.submit(this::consumeCourseSopAppLink);
@@ -304,6 +313,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
     public void shutdownConsumers() {
         running = false;
         qwSopLogsExecutor.shutdown();
+        qwSopSmsLogsExecutor.shutdown();
         watchLogsExecutor.shutdown();
         courseLinkExecutor.shutdown();
         courseSopAppLinkExecutor.shutdown();
@@ -312,6 +322,9 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
             if (!qwSopLogsExecutor.awaitTermination(60, TimeUnit.SECONDS)) {
                 qwSopLogsExecutor.shutdownNow();
             }
+            if (!qwSopSmsLogsExecutor.awaitTermination(60, TimeUnit.SECONDS)) {
+                qwSopSmsLogsExecutor.shutdownNow();
+            }
             if (!watchLogsExecutor.awaitTermination(60, TimeUnit.SECONDS)) {
                 watchLogsExecutor.shutdownNow();
             }
@@ -326,6 +339,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
             }
         } catch (InterruptedException e) {
             qwSopLogsExecutor.shutdownNow();
+            qwSopSmsLogsExecutor.shutdownNow();
             watchLogsExecutor.shutdownNow();
             courseLinkExecutor.shutdownNow();
             courseSopAppLinkExecutor.shutdownNow();

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

@@ -752,4 +752,7 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
     List<FsSopMyCourseH5LinkVO> getSopCourseH5StudyList(@Param("userId") Long userId);
 
     List<FsCourseWatchLog> selectFsUserWatchLogByExtId(QwExternalContact qwExternalContact);
+
+    List<FsSopMyCourseH5LinkVO> getSopCourseH5StudyListByQwExId(@Param("qwExternalId") Long qwExternalId);
+
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/param/FsCourseH5ListParam.java

@@ -17,4 +17,6 @@ public class FsCourseH5ListParam {
     private Long userId;
 
     private Long logId;
+
+    private String link;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/IFsCourseLinkService.java

@@ -112,4 +112,6 @@ public interface IFsCourseLinkService
     List<FsCourseLinkDTO> selectFsCourseLinkListByQwUserId(FsCourseH5ListParam param);
 
     R getLinkInfo(Long logId);
+
+    R getSopCourseH5StudyListByMsg(FsCourseH5ListParam param);
 }

+ 15 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsCourseLinkServiceImpl.java

@@ -30,6 +30,7 @@ import com.fs.course.param.FsCourseLinkRoomParam;
 import com.fs.course.service.IFsCourseLinkService;
 import com.fs.course.service.IFsCoursePlaySourceConfigService;
 import com.fs.course.service.IFsUserCourseService;
+import com.fs.course.vo.FsSopMyCourseH5LinkVO;
 import com.fs.his.config.FsSysConfig;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.utils.HttpUtil;
@@ -45,6 +46,8 @@ import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
 import com.fs.system.service.ISysConfigService;
 import com.fs.voice.utils.StringUtil;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import lombok.Synchronized;
@@ -1032,6 +1035,18 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
         return R.ok().put("data",map);
     }
 
+    @Override
+    public R getSopCourseH5StudyListByMsg(FsCourseH5ListParam param) {
+        FsCourseLink courseLink = fsCourseLinkMapper.selectFsCourseLinkByLink(param.getLink());
+        if (courseLink != null && courseLink.getQwExternalId()!=null) {
+            PageHelper.startPage(param.getPageNum(), param.getPageSize());
+            List<FsSopMyCourseH5LinkVO> list = fsCourseWatchLogMapper.getSopCourseH5StudyListByQwExId(courseLink.getQwExternalId());
+            return R.ok().put("data",new PageInfo(list));
+        }
+
+        return R.error("链接失效或未绑定销售");
+    }
+
     @Override
     public R getLiveWxaCodeGenerateScheme(String linkStr, String appId) {
         CloseableHttpClient client = null;

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

@@ -1352,4 +1352,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select log_id logId from fs_course_watch_log where qw_external_contact_id = #{id}
                                                        and qw_user_id = #{qwUserId} and user_id is null
     </select>
+    <select id="getSopCourseH5StudyListByQwExId" resultType="com.fs.course.vo.FsSopMyCourseH5LinkVO">
+        select  c.img_url courseUrl,v.title courseName,c.title,l.log_id logId,u.qw_user_name qwUserName from fs_course_watch_log l
+         left join fs_user_course c on c.course_id = l.course_id
+         left join qw_user u on l.qw_user_id = u.id
+         left join fs_user_course_video v on l.video_id =v.video_id
+        where l.qw_external_contact_id = #{qwExternalId}  AND l.create_time &gt;= CURDATE()
+          AND l.create_time &lt; CURDATE() + INTERVAL 1 DAY
+        order by l.create_time desc
+    </select>
 </mapper>

+ 13 - 0
fs-user-app/src/main/java/com/fs/app/controller/course/CourseFsUserController.java

@@ -174,4 +174,17 @@ public class CourseFsUserController extends AppBaseController {
         logger.error("zyp \n【h5看课中途报错】:{}",msg);
     }
 
+    @ApiOperation("获取我的sop课程-短信链接")
+    @PostMapping("/getSopCourseH5StudyListByMsg")
+    public R getSopCourseH5StudyListByMsg(@RequestBody FsCourseH5ListParam param ){
+        return  courseLinkService.getSopCourseH5StudyListByMsg(param);
+    }
+
+    @ApiOperation("获取我的sop课程详情")
+    @PostMapping("/getSopCourseH5StudyInfo")
+    public R getSopCourseH5StudyInfo(@RequestBody FsCourseH5ListParam  param ){
+        // 查询看课记录
+        return courseLinkService.getLinkInfo(param.getLogId());
+    }
+
 }