浏览代码

sop 群发

吴树波 3 周之前
父节点
当前提交
aa38e3fb54

+ 1 - 1
fs-admin/src/main/resources/application.yml

@@ -6,4 +6,4 @@ server:
 spring:
   profiles:
     active: dev
-    include: common,config-zkzh
+    include: common,config-dev

+ 1 - 1
fs-company/src/main/resources/application.yml

@@ -5,4 +5,4 @@ server:
 spring:
   profiles:
     active: dev
-    include: common,config-zkzh
+    include: common,config-dev

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

@@ -145,6 +145,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 
     @Autowired
     private FsUserCompanyUserMapper fsUserCompanyUserMapper;
+    @Autowired
+    private IFsUserCourseCacheService fsUserCourseCacheService;
 
     /**
      * 查询课堂视频
@@ -539,8 +541,6 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     }
 
 
-    @Autowired
-    private IFsUserCourseCacheService fsUserCourseCacheService;
     @Transactional
     @Override
     public R getInternetTraffic(FsUserCourseVideoFinishUParam param) {

+ 2 - 0
fs-service-system/src/main/java/com/fs/qw/mapper/QwUserMapper.java

@@ -40,6 +40,8 @@ public interface QwUserMapper extends BaseMapper<QwUser>
 
     @Select("select welcome_text,qw_user_name,qw_user_id from qw_user where id = #{id}")
     public QwUser selectQwUserByIdByWeComeText(@Param("id") Long id);
+    @Select("select * from qw_user where qw_user_id = #{qwUserId} and corp_id = #{corpId} ")
+    public QwUser selectQwUserByIdByWeComeText(@Param("qwUserId") String qwUserId, @Param("corpId") String corpId);
     /**
      * 根据companyUserId查询企微用户
      */

+ 1 - 0
fs-service-system/src/main/java/com/fs/sop/params/SendUserLogsInfoMsgParam.java

@@ -12,6 +12,7 @@ public class SendUserLogsInfoMsgParam {
     private Integer videoId;
     private Integer courseId;
     private Integer courseType;
+    private String[] chatIds;
     private String setting;
     private String sopId;
     private String userIdParam;

+ 0 - 1
fs-service-system/src/main/java/com/fs/sop/service/impl/QwSopTempServiceImpl.java

@@ -508,7 +508,6 @@ public class QwSopTempServiceImpl implements IQwSopTempService
         if(!redSaveList.isEmpty()){
             fsUserCourseVideoRedPackageService.batchSaveCompanyRedPackage(redSaveList);
         }
-
     }
 
     @Override

+ 242 - 133
fs-service-system/src/main/java/com/fs/sop/service/impl/SopUserLogsInfoServiceImpl.java

@@ -3,7 +3,9 @@ package com.fs.sop.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.fs.common.core.domain.R;
+import com.fs.common.exception.base.BaseException;
 import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.date.DateUtil;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.FsCourseDomainName;
@@ -13,12 +15,15 @@ import com.fs.course.domain.FsCourseWatchLog;
 import com.fs.course.mapper.FsCourseDomainNameMapper;
 import com.fs.course.mapper.FsCourseLinkMapper;
 import com.fs.course.mapper.FsCourseWatchLogMapper;
+import com.fs.course.param.FsCourseLinkCreateParam;
 import com.fs.course.service.IFsCourseLinkService;
 import com.fs.fastGpt.domain.FastGptChatReplaceWords;
 import com.fs.fastGpt.mapper.FastGptChatReplaceWordsMapper;
 import com.fs.qw.domain.QwExternalContact;
+import com.fs.qw.domain.QwGroupChat;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.mapper.QwExternalContactMapper;
+import com.fs.qw.mapper.QwGroupChatMapper;
 import com.fs.qw.mapper.QwGroupChatUserMapper;
 import com.fs.qw.mapper.QwUserMapper;
 import com.fs.qw.service.impl.AsyncSopTestService;
@@ -57,6 +62,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.function.Consumer;
+import java.util.stream.Collectors;
 
 import static com.fs.course.utils.LinkUtil.generateRandomStringWithLock;
 
@@ -94,6 +100,11 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
     @Autowired
     private QwUserMapper qwUserMapper;
 
+    @Autowired
+    private QwGroupChatMapper qwGroupChatMapper;
+    @Autowired
+    private IFsCourseLinkService courseLinkService;
+
     @Autowired
     private QwSopMapper qwSopMapper;
 
@@ -358,179 +369,277 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
 
     @Override
     public R sendUserLogsInfoMsg(SendUserLogsInfoMsgParam param) {
-
-        Date createTime=new Date();
-
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         QwSop qwSop = qwSopMapper.selectQwSopById(param.getSopId());
-
         List<FastGptChatReplaceWords> words = fastGptChatReplaceWordsMapper.selectAllFastGptChatReplaceWords();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSON.parseObject(json, CourseConfig.class);
 
-        String[] userKey = param.getUserIdParam().split("\\|");
-        String qwUserId = userKey[0].trim();
-        String companyUserId = userKey[1].trim();
-        String companyId = userKey[2].trim();
+        if (config == null) {
+            return R.error().put("msg","课程默认配置为空,请联系管理员");
+        }
+        List<QwSopLogs> sopLogsList;
+        if(param.getFilterMode() != null && param.getFilterMode() == 2 && param.getChatIds() != null && param.getChatIds().length > 0){
+            List<QwGroupChat> groupList = qwGroupChatMapper.selectQwGroupChatByChatIds(param.getChatIds());
+            sopLogsList = groupList.stream().map(groupChat -> {
+                QwUser qwUser = qwUserMapper.selectQwUserByIdByWeComeText(groupChat.getOwner(), groupChat.getCorpId());
+                QwSopLogs sopLogs = new QwSopLogs();
+
+                sopLogs.setQwUserid(qwUser.getQwUserId());
+                sopLogs.setExternalUserId(groupChat.getChatId());
+                sopLogs.setLogType(2);
+                sopLogs.setContentJson(param.getSetting());
+                sopLogs.setSendStatus(3L);
+                sopLogs.setSendTime(DateUtil.formatLocalDateTime(LocalDateTime.now()));
+                sopLogs.setCompanyId(qwSop.getCompanyId());
+                sopLogs.setReceivingStatus(0L);
+                sopLogs.setSopId(param.getSopId());
+                sopLogs.setCorpId(groupChat.getCorpId());
+                sopLogs.setSort(2);
+                sopLogs.setSendType(6);
+                sopLogs.setExternalUserName(groupChat.getName());
+
+                QwSopCourseFinishTempSetting setting = new QwSopCourseFinishTempSetting();
+
+                List<QwSopCourseFinishTempSetting.Setting> list = JSONArray.parseArray(param.getSetting(), QwSopCourseFinishTempSetting.Setting.class);
+//
+//            List<QwSopCourseFinishTempSetting.Setting> list = parseSettings(param.getSetting());
 
-        QwUser qwUser = qwUserMapper.selectQwUserByIdByWeComeText(Long.valueOf(qwUserId));
+                for (QwSopCourseFinishTempSetting.Setting st : list) {
 
-        if (qwUser == null) {
-            return R.error().put("msg","企业微信用户不存在:"+qwUserId);
-        }
+                    //过滤违禁词
+                    if ("1".equals(st.getContentType())) {
+                        replaceContent(st.getContentType(), st.getValue(), st::setValue, words); // 替换 value
+                    }
+                    //过滤违禁词
+                    if ("3".equals(st.getContentType())) {
+                        replaceContent(st.getContentType(), st.getLinkTitle(), st::setLinkTitle, words); // 替换 linkTitle
+                        replaceContent(st.getContentType(), st.getLinkDescribe(), st::setLinkDescribe, words); // 替换 linkTitle
+                    }
+
+                    switch (st.getContentType()) {
+                        //文字和短链一起
+                        case "1":
+                        case "3":
+                            if ("1".equals(st.getIsBindUrl())) {
+                                FsCourseLinkCreateParam createParam = new FsCourseLinkCreateParam();
+                                createParam.setCourseId(param.getCourseId().longValue());
+                                createParam.setVideoId(param.getVideoId().longValue());
+                                createParam.setCorpId(groupChat.getCorpId());
+                                createParam.setCompanyUserId(qwUser.getCompanyUserId());
+                                createParam.setCompanyId(qwUser.getCompanyId());
+                                createParam.setChatId(groupChat.getChatId());
+                                createParam.setQwUserId(qwUser.getQwUserId());
+                                createParam.setDays(st.getExpiresDays());
+                                R createLink = courseLinkService.createRoomLinkUrl(createParam);
+                                if (createLink.get("code").equals(500)) {
+                                    throw new BaseException("链接生成失败!");
+                                }
+                                String link = (String) createLink.get("url");
+                                if (StringUtils.isNotEmpty(link)) {
+                                    if ("3".equals(st.getContentType())) {
+                                        st.setLinkUrl(link);
+                                    } else {
+                                        String currentValue = st.getValue();
+                                        if (currentValue == null) {
+                                            st.setValue(link);
+                                        } else {
+//                                    setting.setValue(currentValue + "\n" + sortLink);
+                                            st.setValue(currentValue
+                                                    .replaceAll("#销售称呼#", StringUtil.strIsNullOrEmpty(qwUser.getWelcomeText()) ? "" : qwUser.getWelcomeText())
+                                                    + "\n" + link);
+                                        }
+                                    }
+                                } else {
+                                    log.error("生成短链失败,跳过设置 URL。");
+                                }
+                            }
 
+                            break;
+                        //小程序单独
+                        case "4":
+                            String linkByMiniApp = createLinkByMiniApp(st, param.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
+                                    qwUser.getQwUserId(), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), null, config, null);
+
+                            st.setMiniprogramPage(linkByMiniApp.replaceAll("^[\\s\\u2005]+", ""));
+                            break;
+                    }
+                }
+                setting.setSetting(list);
+                setting.setType(2);
+                setting.setVideoId(param.getVideoId());
+                setting.setCourseId(param.getCourseId());
+                setting.setCourseType(param.getCourseType());
+                sopLogs.setContentJson(JSON.toJSONString(setting));
+                return sopLogs;
+            }).collect(Collectors.toList());
 
-//        List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIds(param.getIds());
-        SopUserLogsInfoByIdsHasUserIdParam userIdParam=new SopUserLogsInfoByIdsHasUserIdParam();
-        userIdParam.setIds(param.getIds());
-        userIdParam.setIsRegister(param.getIsRegister());
-        userIdParam.setQwUserId(qwUser.getQwUserId());
-        List<SopUserLogsInfo> sopUserLogsInfos;
-        if(param.getFilterMode() == 1){
-            sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIdsHasUserId(userIdParam);
         }else{
-            sopUserLogsInfos = qwGroupChatUserMapper.selectByIdAndRegister(userIdParam);
-        }
-        if(sopUserLogsInfos.isEmpty()){
-            return R.ok();
-        }
-        String json = configService.selectConfigByKey("course.config");
-        CourseConfig config = JSON.parseObject(json, CourseConfig.class);
+            sopLogsList = new ArrayList<>();
+            Date createTime=new Date();
 
-        if (config == null) {
-            return R.error().put("msg","课程默认配置为空,请联系管理员");
-        }
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
-        //域名
-        String domainName = companyUserMapper.selectDomainByUserId(Long.parseLong(companyUserId));
-        if (StringUtils.isEmpty(domainName)){
-            domainName = config.getRealLinkDomainName();
-        }
-        String finalDomainName = domainName;
+            String[] userKey = param.getUserIdParam().split("\\|");
+            String qwUserId = userKey[0].trim();
+            String companyUserId = userKey[1].trim();
+            String companyId = userKey[2].trim();
+
+            QwUser qwUser = qwUserMapper.selectQwUserByIdByWeComeText(Long.valueOf(qwUserId));
+
+            if (qwUser == null) {
+                return R.error().put("msg","企业微信用户不存在:"+qwUserId);
+            }
+
+
+//        List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIds(param.getIds());
+            SopUserLogsInfoByIdsHasUserIdParam userIdParam=new SopUserLogsInfoByIdsHasUserIdParam();
+            userIdParam.setIds(param.getIds());
+            userIdParam.setIsRegister(param.getIsRegister());
+            userIdParam.setQwUserId(qwUser.getQwUserId());
+            List<SopUserLogsInfo> sopUserLogsInfos;
+            if(param.getFilterMode() == 1){
+                sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIdsHasUserId(userIdParam);
+            }else{
+                sopUserLogsInfos = qwGroupChatUserMapper.selectByIdAndRegister(userIdParam);
+            }
+            if(sopUserLogsInfos.isEmpty()){
+                return R.ok();
+            }
+            if (config == null) {
+                return R.error().put("msg","课程默认配置为空,请联系管理员");
+            }
+
+            //域名
+            String domainName = companyUserMapper.selectDomainByUserId(Long.parseLong(companyUserId));
+            if (StringUtils.isEmpty(domainName)){
+                domainName = config.getRealLinkDomainName();
+            }
+            String finalDomainName = domainName;
 
 //        if (StringUtils.isEmpty(config.getMiniprogramPage())){
 //            return R.error().put("msg","课程默认配置小程序路径为空,请联系管理员");
 //        }
 
-        List<QwSopLogs> sopLogsList=new ArrayList<>();
+            sopUserLogsInfos.forEach(item->{
 
-        sopUserLogsInfos.forEach(item->{
+                QwSopLogs sopLogs=new QwSopLogs();
 
-            QwSopLogs sopLogs=new QwSopLogs();
+                sopLogs.setQwUserid(item.getQwUserId());
+                sopLogs.setExternalUserId(item.getExternalContactId());
+                sopLogs.setExternalId(item.getExternalId());
+                sopLogs.setLogType(2);
+                sopLogs.setContentJson(param.getSetting());
+                sopLogs.setSendStatus(3L);
+                sopLogs.setSendTime(sdf.format(new Date()));
+                sopLogs.setCompanyId(qwSop.getCompanyId());
+                sopLogs.setReceivingStatus(0L);
+                sopLogs.setSopId(param.getSopId());
+                sopLogs.setCorpId(item.getCorpId());
+                sopLogs.setFsUserId(item.getFsUserId());
+                sopLogs.setSort(2);
+                sopLogs.setSendType(5);
+                sopLogs.setExternalUserName(item.getExternalUserName());
 
-            sopLogs.setQwUserid(item.getQwUserId());
-            sopLogs.setExternalUserId(item.getExternalContactId());
-            sopLogs.setExternalId(item.getExternalId());
-            sopLogs.setLogType(2);
-            sopLogs.setContentJson(param.getSetting());
-            sopLogs.setSendStatus(3L);
-            sopLogs.setSendTime(sdf.format(new Date()));
-            sopLogs.setCompanyId(qwSop.getCompanyId());
-            sopLogs.setReceivingStatus(0L);
-            sopLogs.setSopId(param.getSopId());
-            sopLogs.setCorpId(item.getCorpId());
-            sopLogs.setFsUserId(item.getFsUserId());
-            sopLogs.setSort(2);
-            sopLogs.setSendType(5);
-            sopLogs.setExternalUserName(item.getExternalUserName());
+                QwExternalContact contact = qwExternalContactMapper.selectQwExternalContactByIdForStageStatus(item.getExternalId());
 
-            QwExternalContact contact = qwExternalContactMapper.selectQwExternalContactByIdForStageStatus(item.getExternalId());
+                QwSopCourseFinishTempSetting setting=new    QwSopCourseFinishTempSetting();
 
-            QwSopCourseFinishTempSetting setting=new    QwSopCourseFinishTempSetting();
-
-            List<QwSopCourseFinishTempSetting.Setting> list = JSONArray.parseArray(param.getSetting(),QwSopCourseFinishTempSetting.Setting.class);
+                List<QwSopCourseFinishTempSetting.Setting> list = JSONArray.parseArray(param.getSetting(),QwSopCourseFinishTempSetting.Setting.class);
 //
 //            List<QwSopCourseFinishTempSetting.Setting> list = parseSettings(param.getSetting());
 
-            for (QwSopCourseFinishTempSetting.Setting st : list) {
+                for (QwSopCourseFinishTempSetting.Setting st : list) {
 
-                //过滤违禁词
-                if ("1".equals(st.getContentType())){
-                    replaceContent(st.getContentType(), st.getValue(), st::setValue, words); // 替换 value
-                }
-                //过滤违禁词
-                if ("3".equals(st.getContentType())){
-                    replaceContent(st.getContentType(), st.getLinkTitle(), st::setLinkTitle, words); // 替换 linkTitle
-                    replaceContent(st.getContentType(), st.getLinkDescribe(), st::setLinkDescribe, words); // 替换 linkTitle
-                }
+                    //过滤违禁词
+                    if ("1".equals(st.getContentType())){
+                        replaceContent(st.getContentType(), st.getValue(), st::setValue, words); // 替换 value
+                    }
+                    //过滤违禁词
+                    if ("3".equals(st.getContentType())){
+                        replaceContent(st.getContentType(), st.getLinkTitle(), st::setLinkTitle, words); // 替换 linkTitle
+                        replaceContent(st.getContentType(), st.getLinkDescribe(), st::setLinkDescribe, words); // 替换 linkTitle
+                    }
 
-                switch (st.getContentType()){
-                    //文字和短链一起
-                    case "1":
-                    case "3":
-                        if ("1".equals(st.getIsBindUrl())) {
+                    switch (st.getContentType()){
+                        //文字和短链一起
+                        case "1":
+                        case "3":
+                            if ("1".equals(st.getIsBindUrl())) {
 
-                            addWatchLogIfNeeded(param.getSopId(), param.getVideoId(), param.getCourseId(),item.getFsUserId(), qwUserId, companyUserId, companyId, item.getExternalId(),param.getStartTime(),createTime );
+                                addWatchLogIfNeeded(param.getSopId(), param.getVideoId(), param.getCourseId(),item.getFsUserId(), qwUserId, companyUserId, companyId, item.getExternalId(),param.getStartTime(),createTime );
 
-                            String sortLink = generateShortLink(st, param.getCorpId(), createTime, param.getCourseId(), param.getVideoId(),
-                                    qwUserId, companyUserId, companyId,finalDomainName, item.getExternalId(),config,contact.getFsUserId());
+                                String sortLink = generateShortLink(st, param.getCorpId(), createTime, param.getCourseId(), param.getVideoId(),
+                                        qwUserId, companyUserId, companyId,finalDomainName, item.getExternalId(),config,contact.getFsUserId());
 
-                            if (StringUtils.isNotEmpty(sortLink)) {
-                                if ("3".equals(st.getContentType())) {
-                                    st.setLinkUrl(sortLink);
-                                } else {
-                                    String currentValue = st.getValue();
-                                    if (currentValue == null) {
-                                        st.setValue(sortLink);
+                                if (StringUtils.isNotEmpty(sortLink)) {
+                                    if ("3".equals(st.getContentType())) {
+                                        st.setLinkUrl(sortLink);
                                     } else {
-                                        st.setValue(currentValue
-                                                .replaceAll("#销售称呼#",StringUtil.strIsNullOrEmpty(qwUser.getWelcomeText())?"":qwUser.getWelcomeText())
-                                                .replaceAll("#客户称呼#",StringUtil.strIsNullOrEmpty(contact.getStageStatus())|| "0".equals(contact.getStageStatus())?"同学":contact.getStageStatus())
-                                                + "\n" + sortLink);
+                                        String currentValue = st.getValue();
+                                        if (currentValue == null) {
+                                            st.setValue(sortLink);
+                                        } else {
+                                            st.setValue(currentValue
+                                                    .replaceAll("#销售称呼#",StringUtil.strIsNullOrEmpty(qwUser.getWelcomeText())?"":qwUser.getWelcomeText())
+                                                    .replaceAll("#客户称呼#",StringUtil.strIsNullOrEmpty(contact.getStageStatus())|| "0".equals(contact.getStageStatus())?"同学":contact.getStageStatus())
+                                                    + "\n" + sortLink);
+                                        }
                                     }
+                                } else {
+                                    log.warn("生成短链失败,跳过设置 URL。");
+                                }
+                            }else {
+                                if ("1".equals(st.getContentType())) {
+                                    st.setValue(st.getValue()
+                                            .replaceAll("#销售称呼#",StringUtil.strIsNullOrEmpty(qwUser.getWelcomeText())?"":qwUser.getWelcomeText())
+                                            .replaceAll("#客户称呼#",StringUtil.strIsNullOrEmpty(contact.getStageStatus()) || "0".equals(contact.getStageStatus())?"同学":contact.getStageStatus()));
                                 }
-                            } else {
-                                log.warn("生成短链失败,跳过设置 URL。");
-                            }
-                        }else {
-                            if ("1".equals(st.getContentType())) {
-                                st.setValue(st.getValue()
-                                        .replaceAll("#销售称呼#",StringUtil.strIsNullOrEmpty(qwUser.getWelcomeText())?"":qwUser.getWelcomeText())
-                                        .replaceAll("#客户称呼#",StringUtil.strIsNullOrEmpty(contact.getStageStatus()) || "0".equals(contact.getStageStatus())?"同学":contact.getStageStatus()));
                             }
-                        }
 
-                        break;
-                    //小程序单独
-                    case "4":
-                        addWatchLogIfNeeded(param.getSopId(), param.getVideoId(), param.getCourseId(),item.getFsUserId(), qwUserId, companyUserId, companyId, item.getExternalId(),param.getStartTime(),createTime );
-
-                        String linkByMiniApp = createLinkByMiniApp(st, param.getCorpId(), createTime, param.getCourseId(), param.getVideoId(),
-                                qwUserId, companyUserId, companyId, item.getExternalId(), config,contact.getFsUserId());
-
-                        st.setMiniprogramPage(linkByMiniApp.replaceAll("^[\\s\\u2005]+", ""));
-                        break;
-                    //app
-                    case "9":
-                        addWatchLogIfNeeded(param.getSopId(), param.getVideoId(), param.getCourseId(),item.getFsUserId(), qwUserId, companyUserId, companyId, item.getExternalId(),param.getStartTime(),createTime );
-
-                        QwCreateLinkByAppVO linkByApp = createLinkByApp(st, param.getCorpId(), createTime, param.getCourseId(), param.getVideoId(),
-                                qwUserId, companyUserId, companyId, item.getExternalId(), config,qwUser.getQwUserName(),contact.getFsUserId());
-                        st.setLinkUrl(linkByApp.getSortLink().replaceAll("^[\\s\\u2005]+", ""));
-                        st.setAppLinkUrl(linkByApp.getAppMsgLink().replaceAll("^[\\s\\u2005]+", ""));
-
-                        break;
-                    //注册链接
-                    case "10":
-                        String url=config.getRegisterDomainName()+registerLink+item.getExternalId();
-                        st.setLinkUrl(url.replaceAll("^[\\s\\u2005]+", ""));
-                        break;
-                    default:
-                        break;
+                            break;
+                        //小程序单独
+                        case "4":
+                            addWatchLogIfNeeded(param.getSopId(), param.getVideoId(), param.getCourseId(),item.getFsUserId(), qwUserId, companyUserId, companyId, item.getExternalId(),param.getStartTime(),createTime );
+
+                            String linkByMiniApp = createLinkByMiniApp(st, param.getCorpId(), createTime, param.getCourseId(), param.getVideoId(),
+                                    qwUserId, companyUserId, companyId, item.getExternalId(), config,contact.getFsUserId());
+
+                            st.setMiniprogramPage(linkByMiniApp.replaceAll("^[\\s\\u2005]+", ""));
+                            break;
+                        //app
+                        case "9":
+                            addWatchLogIfNeeded(param.getSopId(), param.getVideoId(), param.getCourseId(),item.getFsUserId(), qwUserId, companyUserId, companyId, item.getExternalId(),param.getStartTime(),createTime );
+
+                            QwCreateLinkByAppVO linkByApp = createLinkByApp(st, param.getCorpId(), createTime, param.getCourseId(), param.getVideoId(),
+                                    qwUserId, companyUserId, companyId, item.getExternalId(), config,qwUser.getQwUserName(),contact.getFsUserId());
+                            st.setLinkUrl(linkByApp.getSortLink().replaceAll("^[\\s\\u2005]+", ""));
+                            st.setAppLinkUrl(linkByApp.getAppMsgLink().replaceAll("^[\\s\\u2005]+", ""));
 
+                            break;
+                        //注册链接
+                        case "10":
+                            String url=config.getRegisterDomainName()+registerLink+item.getExternalId();
+                            st.setLinkUrl(url.replaceAll("^[\\s\\u2005]+", ""));
+                            break;
+                        default:
+                            break;
+
+                    }
                 }
-            }
 
 
-            setting.setSetting(list);
-            setting.setType(2);
-            setting.setVideoId(param.getVideoId());
-            setting.setCourseId(param.getCourseId());
-            setting.setCourseType(param.getCourseType());
+                setting.setSetting(list);
+                setting.setType(2);
+                setting.setVideoId(param.getVideoId());
+                setting.setCourseId(param.getCourseId());
+                setting.setCourseType(param.getCourseType());
 
-            sopLogs.setContentJson(JSON.toJSONString(setting));
+                sopLogs.setContentJson(JSON.toJSONString(setting));
 
-            sopLogsList.add(sopLogs);
-        });
+                sopLogsList.add(sopLogs);
+            });
 
+        }
         //批量插入 发送记录
         if (!sopLogsList.isEmpty()) {
             processAndInsertQwSopLogsBySendMsg(sopLogsList);

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/controller/AddressController.java

@@ -57,7 +57,7 @@ public class AddressController extends  AppBaseController {
         for (FsCity city : list){
             CityVO cityVO = new CityVO();
             cityVO.setV(city.getCityId());
-            cityVO.setN(city.getName());
+            cityVO.setN(city.getCityName());
             cityVO.setPid(city.getParentId());
             cityVOS.add(cityVO);
         }

+ 42 - 42
fs-user-app/src/main/java/com/fs/app/controller/CommonController.java

@@ -615,48 +615,48 @@ public class CommonController extends AppBaseController {
 	}
 
 
-	@ApiOperation("导入CVS")
-	@PostMapping("importCVS")
-	public R importCVS(@RequestParam("file") MultipartFile file) throws Exception
-	{
-		File csv = new File("c:\\1.cvs");
-		FileUtils.copyInputStreamToFile(file.getInputStream(), csv);
-		BufferedReader br = null;
-		try
-		{
-			br = new BufferedReader(new FileReader(csv));
-		} catch (FileNotFoundException e)
-		{
-			e.printStackTrace();
-		}
-		String line = "";
-		try {
-			Integer index=0;
-			while ((line = br.readLine()) != null)
-			{
-				if(index>0){
-					String[] data=line.split(",");
-					FsCity city=new FsCity();
-					city.setCityId(Long.parseLong(data[0]));
-					city.setParentId(Long.parseLong(data[1]));
-					city.setLevel(Long.parseLong(data[2]));
-					city.setName(data[7]);
-					city.setAreaCode(data[6]);
-					city.setIsShow(1);
-					cityService.insertFsCity(city);
-				}
-
-				System.out.println(line);
-				index++;
-
-			}
-		} catch (IOException e)
-		{
-			e.printStackTrace();
-		}
-
-		return R.ok();
-	}
+//	@ApiOperation("导入CVS")
+//	@PostMapping("importCVS")
+//	public R importCVS(@RequestParam("file") MultipartFile file) throws Exception
+//	{
+//		File csv = new File("c:\\1.cvs");
+//		FileUtils.copyInputStreamToFile(file.getInputStream(), csv);
+//		BufferedReader br = null;
+//		try
+//		{
+//			br = new BufferedReader(new FileReader(csv));
+//		} catch (FileNotFoundException e)
+//		{
+//			e.printStackTrace();
+//		}
+//		String line = "";
+//		try {
+//			Integer index=0;
+//			while ((line = br.readLine()) != null)
+//			{
+//				if(index>0){
+//					String[] data=line.split(",");
+//					FsCity city=new FsCity();
+//					city.setCityId(Long.parseLong(data[0]));
+//					city.setParentId(Long.parseLong(data[1]));
+//					city.setLevel(Long.parseLong(data[2]));
+//					city.setName(data[7]);
+//					city.setAreaCode(data[6]);
+//					city.setIsShow(1);
+//					cityService.insertFsCity(city);
+//				}
+//
+//				System.out.println(line);
+//				index++;
+//
+//			}
+//		} catch (IOException e)
+//		{
+//			e.printStackTrace();
+//		}
+//
+//		return R.ok();
+//	}
 
 
 

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/utils/CityTreeUtil.java

@@ -22,7 +22,7 @@ public class CityTreeUtil {
         for (CityVO res : list) {
             //判断对象是否为根节点
 
-            if (res.getPid() == parentId) {
+            if (Integer.parseInt(res.getPid()) == parentId) {
                 //该节点为根节点,开始递归
 
                 //通过递归为节点设置childList

+ 2 - 2
fs-user-app/src/main/java/com/fs/app/vo/CityVO.java

@@ -13,11 +13,11 @@ import java.util.List;
 public class CityVO implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    private Long v; //id
+    private String v; //id
 
     private String n; //名称
 
-    private Long pid;
+    private String pid;
 
     private List<CityVO> c; //子集
 }