三七 il y a 1 semaine
Parent
commit
cfce2e4845

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

@@ -22,6 +22,12 @@ public interface FsCourseLinkMapper
      */
     public FsCourseLink selectFsCourseLinkByLinkId(Long linkId);
 
+
+    @Select("select * from fs_course_link where qw_user_id = #{qwUserId} and video_id = #{videoId} and qw_external_id = #{qwExternalId} " +
+            "and link_type=5 order by create_time desc limit 1")
+    public FsCourseLink selectExpireLinkByQwExternalId(@Param("qwUserId") String qwUserId ,@Param("videoId") Long videoId,@Param("qwExternalId") Long  qwExternalId);
+
+
     /**
      * 查询短链列表
      *

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

@@ -313,4 +313,10 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
 
     @Select("SELECT min(create_time) FROM fs_course_watch_log WHERE user_id=#{userId} limit 1")
     Date queryFirstWatchDateLogByVideoId(Long userId);
+
+    @Select("select  * from fs_course_watch_log where user_id=#{userId} " +
+            "and video_id=#{videoId} and qw_user_id=#{qwUserId} limit 1 " )
+    FsCourseWatchLog selectFsCourseWatchLogByCourseSopIdAndVideoId(@Param("userId") Long userId,
+                                                                   @Param("videoId") Long videoId,
+                                                                   @Param("qwUserId") String qwUserId);
 }

+ 46 - 3
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -42,6 +42,7 @@ import com.fs.qwApi.param.QwAddContactWayParam;
 import com.fs.qwApi.service.QwApiService;
 import com.fs.sop.mapper.QwSopLogsMapper;
 import com.fs.sop.mapper.SopUserLogsInfoMapper;
+import com.fs.sop.service.ISopUserLogsInfoService;
 import com.fs.system.service.ISysConfigService;
 import com.github.binarywang.wxpay.bean.transfer.TransferBillsResult;
 import lombok.extern.slf4j.Slf4j;
@@ -86,6 +87,11 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     private FsCourseQuestionBankMapper courseQuestionBankMapper;
     @Autowired
     private FsCourseWatchLogMapper courseWatchLogMapper;
+    @Autowired
+    private ISopUserLogsInfoService iSopUserLogsInfoService;
+    @Autowired
+    private FsCourseLinkMapper fsCourseLinkMapper;
+
 
     @Autowired
     private QwExternalContactMapper qwExternalContactMapper;
@@ -429,13 +435,31 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             return R.error("链接过期");
         }
 
+        Long qwExternalId = param.getQwExternalId();
 
+        FsCourseWatchLog log=new FsCourseWatchLog();
 
-        FsCourseWatchLog log = courseWatchLogMapper.getWatchCourseVideoByExt(param.getQwExternalId(), param.getVideoId(),param.getQwUserId());
-        if (log==null ){
-            return addCustomerService(param.getQwUserId(),msg);
+        //如果是官方的则查真正的外部联系人id
+        if (param.getLinkType()!=null&&param.getLinkType()==5) {
+            log = courseWatchLogMapper.selectFsCourseWatchLogByCourseSopIdAndVideoId(param.getUserId(), param.getVideoId(), param.getQwUserId());
+            if (log == null) {
+                return addCustomerService(param.getQwUserId(), msg);
+            }else {
+                qwExternalId=log.getQwExternalContactId();
+            }
+
+        }else {
+            log = courseWatchLogMapper.getWatchCourseVideoByExt(qwExternalId, param.getVideoId(),param.getQwUserId());
+            if (log==null ){
+                return addCustomerService(param.getQwUserId(),msg);
+            }
         }
 
+//        FsCourseWatchLog log = courseWatchLogMapper.getWatchCourseVideoByExt(param.getQwExternalId(), param.getVideoId(),param.getQwUserId());
+//        if (log==null ){
+//            return addCustomerService(param.getQwUserId(),msg);
+//        }
+
         //查询是否有添加客服
         QwExternalContact externalContact = qwExternalContactMapper.selectQwExternalContactById(param.getQwExternalId());
 
@@ -465,6 +489,16 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             }
             log.setUpdateTime(new Date());
             courseWatchLogMapper.updateFsCourseWatchLog(log);
+
+
+            iSopUserLogsInfoService.updateSopUserInfoByExternalId(qwExternalId,param.getUserId());
+
+
+            if (param.getLinkType()!=null&&param.getLinkType()==5){
+                FsCourseLink fsCourseLink = fsCourseLinkMapper.selectExpireLinkByQwExternalId(param.getQwUserId(), param.getVideoId(), qwExternalId);
+                return R.error(566,"官方群发通用链接").put("courseLink",fsCourseLink);
+            }
+
             return R.ok();
 
         }else {
@@ -473,6 +507,9 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             contact.setId(param.getQwExternalId());
             contact.setFsUserId(param.getUserId());
             qwExternalContactMapper.updateQwExternalContact(contact);
+
+            iSopUserLogsInfoService.updateSopUserInfoByExternalId(qwExternalId,param.getUserId());
+
             FsUser user = new FsUser();
             user.setUserId(param.getUserId());
             user.setIsAddQw(1);
@@ -492,6 +529,12 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 
             log.setUpdateTime(new Date());
             courseWatchLogMapper.updateFsCourseWatchLog(log);
+
+            if (param.getLinkType()!=null&&param.getLinkType()==5){
+                FsCourseLink fsCourseLink = fsCourseLinkMapper.selectExpireLinkByQwExternalId(param.getQwUserId(), param.getVideoId(), qwExternalId);
+                return R.error(566,"官方群发通用链接").put("courseLink",fsCourseLink);
+            }
+
             return R.ok();
         }
     }

+ 4 - 0
fs-service/src/main/java/com/fs/sop/mapper/SopUserLogsInfoMapper.java

@@ -187,15 +187,19 @@ public interface SopUserLogsInfoMapper {
     @DataSource(DataSourceType.SOP)
     @Update("update sop_user_logs_info set fs_user_id=#{fsUserId} where external_id =#{externalId}")
     int updateQwExternalContactChangeUserId(@Param("externalId") Long externalId,@Param("fsUserId") Long fsUserId);
+
     @DataSource(DataSourceType.SOP)
     @Select("SELECT external_id  FROM `sop_user_logs_info` where sop_id = #{sopId}  and Date(create_time) = Date(#{minDay})")
     List<SopUserLogsInfo> selectDayBySopId(@Param("sopId")String sopId, @Param("minDay")String minDay);
+
     @DataSource(DataSourceType.SOP)
     @Select("SELECT external_id,create_time  FROM sop_user_logs_info where sop_id = #{sopId} ")
     List<SopUserLogsInfo> selectSopUserLogsInfoBySopId(@Param("sopId")String sopId);
+
     @DataSource(DataSourceType.SOP)
     @Select("SELECT id  FROM sop_user_logs_info where external_id = #{extId} ")
     List<String> selectSopUserLogsInfoByExtId(@Param("extId")Long extId );
+
     @DataSource(DataSourceType.SOP)
     void updateSopUserLogsInfoFsUserIdById(@Param("data")List<String> list,  @Param("userId") Long userId);
 

+ 5 - 0
fs-service/src/main/java/com/fs/sop/service/ISopUserLogsInfoService.java

@@ -21,6 +21,11 @@ public interface ISopUserLogsInfoService {
      */
     void update(SopUserLogsInfo info);
 
+    /**
+     * 修改
+     */
+    void updateSopUserInfoByExternalId(Long qwExternalId,Long userId);
+
     /**
      * 根据ID查询记录
      * @param id 主键ID

+ 5 - 0
fs-service/src/main/java/com/fs/sop/service/impl/SopUserLogsInfoServiceImpl.java

@@ -157,6 +157,11 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
         sopUserLogsInfoMapper.updateById(info);
     }
 
+    @Override
+    public void updateSopUserInfoByExternalId(Long qwExternalId, Long userId) {
+        sopUserLogsInfoMapper.updateQwExternalContactChangeUserId(qwExternalId,userId);
+    }
+
     @Override
     public SopUserLogsInfo getById(String id) {
         return sopUserLogsInfoMapper.selectById(id);

+ 1 - 1
fs-service/src/main/resources/mapper/sop/QwSopLogsMapper.xml

@@ -383,7 +383,7 @@
           and ql.receiving_status = 0
           and ql.send_time <= now()
         order by ql.sort DESC ,ql.send_time asc
-            LIMIT 1
+            LIMIT 2
         ]]>
     </select>