Selaa lähdekoodia

迁移重粉逻辑

zyp 2 päivää sitten
vanhempi
commit
67f48d975f

+ 24 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactController.java

@@ -14,8 +14,10 @@ import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.course.param.FsUserCourseListUParam;
+import com.fs.course.service.IFsUserCompanyBindService;
 import com.fs.course.service.IFsUserCourseStudyService;
 import com.fs.course.vo.FsUserCourseStudyListUVO;
+import com.fs.course.vo.UserWatchLogListVo;
 import com.fs.crm.param.CrmMyCustomerListQueryParam;
 import com.fs.crm.service.ICrmCustomerService;
 import com.fs.crm.vo.CrmMyCustomerListQueryVO;
@@ -92,6 +94,9 @@ public class QwExternalContactController extends BaseController
     @Autowired
     private IQwContactWayService qwContactWayService;
 
+    @Autowired
+    private IFsUserCompanyBindService fsUserCompanyBindService;
+
     /**
      * 查询企业微信客户列表
      */
@@ -809,4 +814,23 @@ public class QwExternalContactController extends BaseController
         return R.ok();
     }
 
+    /**
+     * 重粉客服查询
+     */
+    @GetMapping("/getRepeat")
+    public R getRepeat(RepeatParam param){
+        return  qwExternalContactService.getRepeat(param);
+    }
+    /**
+     * 重粉看课记录查询
+     */
+    @GetMapping("/getWatchLogList")
+    public TableDataInfo getWatchLogList(UserWatchLogParam param){
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setUserId(loginUser.getUser().getUserId());
+        List<UserWatchLogListVo> list= fsUserCompanyBindService.getWatchLogList(param);
+        return getDataTable(list);
+    }
+
 }

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

@@ -20,6 +20,7 @@ import com.fs.course.domain.*;
 import com.fs.course.mapper.*;
 import com.fs.course.param.FsCourseLinkCreateParam;
 import com.fs.course.service.IFsCourseLinkService;
+import com.fs.course.service.IFsUserCompanyBindService;
 import com.fs.qw.domain.*;
 import com.fs.qw.mapper.QwExternalContactMapper;
 import com.fs.qw.mapper.QwUserMapper;
@@ -177,6 +178,8 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
     @Autowired
     private AsyncCourseWatchFinishService asyncCourseWatchFinishService;
 
+    @Autowired
+    private IFsUserCompanyBindService fsUserCompanyBindService;
 
     @PostConstruct
     public void init() {
@@ -1910,6 +1913,11 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                 } else {
                     log.info("完课消息-客户信息有误,不生成完课消息: {}", finishLog.getQwExternalContactId());
                 }
+                try {
+                    fsUserCompanyBindService.finish(externalContact.getFsUserId(), externalContact.getQwUserId(), externalContact.getCompanyUserId(), finishLog);
+                }catch (Exception e){
+                    log.error("更新重粉看课状态失败",e);
+                }
             } catch (Exception e) {
                 log.error("处理完课记录失败: {}", finishLog.getLogId(), e);
             }

+ 22 - 21
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -706,27 +706,28 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     }
 
     private R handleExt(FsUserCourseVideoAddKfUParam param, String msg, boolean oneCompanyCourse){
-        if (param.getLinkType()!=null&&param.getLinkType()==1){
-            if (param.getLinkId()!=null){
-                // 从数据库中查找短链对应的真实链接
-                FsCourseLink courseLink = courseLinkMapper.selectFsCourseLinkByLinkId(param.getLinkId());
-                if (courseLink != null) {
-                    // 获取当前时间
-                    Date currentTime = new Date();
-                    // 获取链接的更新时间(假设这个字段代表过期时间)
-                    Date updateTime = courseLink.getUpdateTime();
-
-                    // 判断是否过期
-                    if (currentTime.after(updateTime)) {
-                        // 链接已过期
-                        return R.error("链接已过期");
-                    }else {
-                        return R.ok();
-                    }
-                }
-            }
-            return R.error("链接过期");
-        }
+        //暂时注释应急短链逻辑
+//        if (param.getLinkType()!=null&&param.getLinkType()==1){
+//            if (param.getLinkId()!=null){
+//                // 从数据库中查找短链对应的真实链接
+//                FsCourseLink courseLink = courseLinkMapper.selectFsCourseLinkByLinkId(param.getLinkId());
+//                if (courseLink != null) {
+//                    // 获取当前时间
+//                    Date currentTime = new Date();
+//                    // 获取链接的更新时间(假设这个字段代表过期时间)
+//                    Date updateTime = courseLink.getUpdateTime();
+//
+//                    // 判断是否过期
+//                    if (currentTime.after(updateTime)) {
+//                        // 链接已过期
+//                        return R.error("链接已过期");
+//                    }else {
+//                        return R.ok();
+//                    }
+//                }
+//            }
+//            return R.error("链接过期");
+//        }
 
         Long qwExternalId = param.getQwExternalId();
 

+ 1 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwCompanyMapper.java

@@ -70,4 +70,5 @@ public interface QwCompanyMapper
 
     List<QwOptionsVO> selectQwCompanyListOptionsVO(@Param("userId") Long userId, @Param("deptId") Long deptId);
 
+    List<QwCompany> selectByCorpIds(@Param("corpIds") List<String> corpIds);
 }

+ 2 - 0
fs-service/src/main/java/com/fs/qw/service/IQwExternalContactService.java

@@ -248,4 +248,6 @@ public interface IQwExternalContactService extends IService<QwExternalContact> {
     List<QwUserDelLossLogVO> selectQwUserDelLossLogList(QwUserDelLossLogParam param);
 
     void updateQwExternalContactStatusById(QwExternalContact qwExternalContact);
+
+    R getRepeat(RepeatParam param);
 }

+ 17 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONException;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.ad.enums.AdUploadType;
@@ -5840,6 +5841,22 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
         qwExternalContactMapper.updateQwExternalContactStatusById(qwExternalContact);
     }
 
+    @Override
+    public R getRepeat(RepeatParam param) {
+        List<QwExternalContact> list = qwExternalContactMapper.selectList(new QueryWrapper<QwExternalContact>().eq("external_user_id", param.getExternalUserId()));
+        if(list.isEmpty()) return R.error("未找到外部联系人");
+        QwExternalContact qwExternalContact = list.get(0);
+        List<QwExternalContact> qwExternalContacts = qwExternalContactMapper.selectList(new QueryWrapper<QwExternalContact>().eq("repeat_no", qwExternalContact.getRepeatNo()));
+        List<String> userIdList = PubFun.listToNewList(qwExternalContacts, QwExternalContact::getUserId);
+        List<QwUser> qwUsers = qwUserMapper.selectList(new QueryWrapper<QwUser>().in("qw_user_id", userIdList).eq("corp_id", qwExternalContact.getCorpId()));
+        List<String> companyIds = PubFun.listToNewList(qwUsers, QwUser::getCorpId);
+        List<QwCompany> companyList = qwCompanyMapper.selectByCorpIds(companyIds);
+        Map<String, QwCompany> companyMap = PubFun.listToMapByGroupObject(companyList, QwCompany::getCorpId);
+        QwCompany qwCompany = new QwCompany();
+        qwCompany.setCorpName("未找到主题");
+        return R.ok().put("data", qwUsers.stream().map(e -> QwUserVO.builder().qwUserId(e.getQwUserId()).qwUserName(e.getQwUserName()).companyName(companyMap.getOrDefault(e.getCorpId(), qwCompany).getCorpName()).build()));
+    }
+
 
     public Boolean getSopAiChatByRedis(String qwUserId,String corpId,String externalUserId){
 

+ 5 - 0
fs-service/src/main/resources/mapper/qw/QwCompanyMapper.xml

@@ -179,4 +179,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
         </where>
     </select>
+
+    <select id="selectByCorpIds" resultType="com.fs.qw.domain.QwCompany">
+        select * from qw_company where corp_id in <foreach collection="corpIds" item="item" open="(" close=")" separator=",">#{item}</foreach>
+    </select>
+
 </mapper>