|
|
@@ -182,6 +182,40 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
|
|
|
"\tAND wl.create_time < CURDATE()")
|
|
|
List<QwRatingVO> selectFsCourseWatchLogByExtIdRatingMoreStudyDays(@Param("externalId") Long externalId, @Param("dayNum") Integer dayNum);
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询看课记录(支持在职转接场景)
|
|
|
+ * 同时查询当前外部联系人ID和最近一次转接前的外部联系人ID的看课记录
|
|
|
+ */
|
|
|
+ @Select("SELECT\n" +
|
|
|
+ "\twl.duration AS watchDuration,\n" +
|
|
|
+ "\tcv.duration AS allDuration,\n" +
|
|
|
+ "\twl.finish_time,\n" +
|
|
|
+ "\twl.create_time," +
|
|
|
+ "\tec.`level` \n" +
|
|
|
+ "FROM\n" +
|
|
|
+ "\tfs_course_watch_log wl\n" +
|
|
|
+ "\tLEFT JOIN qw_external_contact ec ON wl.qw_external_contact_id = ec.id\n" +
|
|
|
+ "\tLEFT JOIN fs_user_course_video cv ON wl.video_id = cv.video_id \n" +
|
|
|
+ "WHERE\n" +
|
|
|
+ "\twl.send_type = 2 \n" +
|
|
|
+ "\tAND (\n" +
|
|
|
+ "\t\twl.qw_external_contact_id = #{externalId}\n" +
|
|
|
+ "\t\tOR wl.qw_external_contact_id = (\n" +
|
|
|
+ "\t\t\tSELECT t.external_contact_id \n" +
|
|
|
+ "\t\t\tFROM qw_external_contact_transfer_log t \n" +
|
|
|
+ "\t\t\tINNER JOIN qw_external_contact ec2 ON t.external_contact_id = ec2.id\n" +
|
|
|
+ "\t\t\tWHERE ec2.external_user_id = (\n" +
|
|
|
+ "\t\t\t\tSELECT external_user_id FROM qw_external_contact WHERE id = #{externalId}\n" +
|
|
|
+ "\t\t\t)\n" +
|
|
|
+ "\t\t\tAND t.status = 1\n" +
|
|
|
+ "\t\t\tORDER BY t.create_time DESC\n" +
|
|
|
+ "\t\t\tLIMIT 1\n" +
|
|
|
+ "\t\t)\n" +
|
|
|
+ "\t)\n" +
|
|
|
+ "\tAND wl.create_time >= DATE_SUB(CURDATE(), INTERVAL #{dayNum} DAY ) \n" +
|
|
|
+ "\tAND wl.create_time < CURDATE()")
|
|
|
+ List<QwRatingVO> selectFsCourseWatchLogByExtIdRatingWithTransfer(@Param("externalId") Long externalId, @Param("dayNum") Integer dayNum);
|
|
|
+
|
|
|
@Select("SELECT\n" +
|
|
|
"\tCOALESCE(SUM(wl.duration), 0) AS watchDuration\n" +
|
|
|
"FROM\n" +
|