浏览代码

Merge remote-tracking branch 'origin/master'

ct 2 天之前
父节点
当前提交
456c865578

+ 7 - 12
fs-company/src/main/java/com/fs/company/controller/company/CompanyDeptController.java

@@ -149,21 +149,16 @@ public class CompanyDeptController extends BaseController
     @PreAuthorize("@ss.hasPermi('company:dept:edit')")
     @Log(title = "部门管理", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@Validated @RequestBody CompanyDept dept)
-    {
+    public AjaxResult edit(@Validated @RequestBody CompanyDept dept) {
+        if(dept.getParentId().equals(dept.getDeptId())) {
+            return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+        }
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         dept.setCompanyId(loginUser.getCompany().getCompanyId());
-        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
-        {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
             return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
-        }
-        else if (dept.getParentId().equals(dept.getDeptId()))
-        {
-            return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
-        }
-        else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
-                && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0)
-        {
+        } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
+                && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0) {
             return AjaxResult.error("该部门包含未停用的子部门!");
         }
         dept.setUpdateBy(SecurityUtils.getUsername());

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

@@ -49,10 +49,10 @@ import com.fs.his.service.IFsUserService;
 import com.fs.his.service.IFsUserWxService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.vo.OptionsVO;
-import com.fs.qw.domain.QwCompany;
-import com.fs.qw.domain.QwExternalContact;
-import com.fs.qw.domain.QwUser;
+import com.fs.qw.domain.*;
 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.IQwCompanyService;
 import com.fs.qw.service.IQwExternalContactService;
@@ -60,6 +60,7 @@ import com.fs.qwApi.Result.QwAddContactWayResult;
 import com.fs.qwApi.Result.QwGroupChatDetailsResult;
 import com.fs.qwApi.param.QwAddContactWayParam;
 import com.fs.qwApi.service.QwApiService;
+import com.fs.sop.domain.SopUserLogsInfo;
 import com.fs.sop.mapper.QwSopLogsMapper;
 import com.fs.sop.mapper.SopUserLogsInfoMapper;
 import com.fs.sop.service.ISopUserLogsInfoService;
@@ -131,6 +132,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     @Autowired
     private FsUserCourseVideoMapper fsUserCourseVideoMapper;
     @Autowired
+    private QwGroupChatMapper qwGroupChatMapper;
+    @Autowired
+    private QwGroupChatUserMapper qwGroupChatUserMapper;
+    @Autowired
     private IFsUserService fsUserService;
     @Autowired
     private FsUserCourseCompanyUserTimeMapper companyUserTimeMapper;
@@ -509,36 +514,27 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         FsCourseLink courseLink = courseLinkMapper.selectFsCourseLinkByLink(param.getLink());
         String msg = "<div style=\"color: red;margin-bottom: 15px;font-weight: bold;\">本课程为群会员独享<br>请长按二维码</div>\n" +
                 "\t\t\t\t\t<div style=\"color: #999;font-size: 14px;font-weight: bold;\">添加伴学助手免费领取会员权限</div>";
-        QwGroupChatDetailsResult result = qwApiService.groupChatDetails(courseLink.getChatId(), param.getCorpId());
-        log.info("群聊参数:{},链接参数:{}, 企微返回:{}", JSON.toJSONString(param), JSON.toJSONString(courseLink), JSON.toJSONString(result));
-        if(result.getErrCode() != 0){
-            return R.error("企微接口请求失败,请联系管理员:" +result.getErrMsg());
+        QwGroupChat qwGroupChat = qwGroupChatMapper.selectQwGroupChatByChatId(courseLink.getChatId());
+        if(qwGroupChat == null){
+            return R.error("群参数异常");
+        }
+        SopUserLogsInfo sopUserLogsInfo =  new SopUserLogsInfo();
+        sopUserLogsInfo.setChatId(courseLink.getChatId());
+        List<QwGroupChatUser> qwGroupChatUsers = qwGroupChatUserMapper.selectByChatId(sopUserLogsInfo);
+        if(qwGroupChatUsers == null || qwGroupChatUsers.isEmpty()){
+            return R.error("群参数异常");
         }
-//            List<QwGroupChatDetailsResult.Member> collect = result.getGroupChat().getMemberList().stream().filter(e -> e.getType() == 2).collect(Collectors.toList());
-//            if(collect.isEmpty()){
-//                return addCustomerService(param.getQwUserId(),msg);
-//            }
-//            Optional<QwGroupChatDetailsResult.Member> optional = collect.stream().filter(e -> e.getName().equals(fsUser.getNickName()) || e.getName().equals(param.getNickName())).findFirst();
-//            if(!optional.isPresent()){
-//                return addCustomerService(param.getQwUserId(),msg);
-//            }
-//            QwGroupChatDetailsResult.Member member = optional.get();
-//            QwExternalContact qwExternalContact =
-//                    qwExternalContactMapper.selectOne(new QueryWrapper<QwExternalContact>()
-//                    .eq("user_id", result.getGroupChat().getOwner())
-//                    .eq("external_user_id", member.getUserId())
-//                    );
         QwExternalContact qwExternalContact =
                 qwExternalContactMapper.selectOne(new QueryWrapper<QwExternalContact>()
-                        .eq("user_id", result.getGroupChat().getOwner())
+                        .eq("user_id", qwGroupChat.getOwner())
                         .eq("fs_user_id", param.getUserId())
                         .eq("corp_id", param.getCorpId())
                         .eq("status",0));
         if(qwExternalContact==null){
             return addCustomerService(param.getQwUserId(),msg);
         }
-        log.info("外部联系人数据:{}", qwExternalContact);
-        if(result.getGroupChat().getMemberList().stream().noneMatch(e -> e.getUserId().equals(qwExternalContact.getExternalUserId()))){
+        if(qwGroupChatUsers.stream().noneMatch(e -> e.getUserId().equals(qwExternalContact.getExternalUserId()))){
+            log.error("客户不在群:{},里面:{}", qwGroupChat.getChatId(), qwExternalContact.getExternalUserId());
             return addCustomerService(param.getQwUserId(),msg);
         }
         Long qwExternalId = qwExternalContact.getId();
@@ -565,7 +561,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             }
 
             log.setUpdateTime(new Date());
-//            fsUserCompanyBindService.bindFsUser(fsUser.getUserId(), qwExternalId, log.getLogId());
+            //重粉逻辑
+            fsUserCompanyBindService.bindFsUser(param.getUserId(), qwExternalId, log.getLogId());
             courseWatchLogMapper.updateFsCourseWatchLog(log);
 
         }else {
@@ -584,7 +581,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             log.setUpdateTime(new Date());
             courseWatchLogMapper.updateFsCourseWatchLog(log);
         }
-//        fsUserCompanyBindService.bindFsUser(fsUser.getUserId(), qwExternalId, log.getLogId());
+        //重粉逻辑
+        fsUserCompanyBindService.bindFsUser(param.getUserId(), qwExternalId, log.getLogId());
         return R.error(567,"群聊通用链接").put("qwExternalId", qwExternalContact.getId());
     }
     private R handleRoom(FsUserCourseVideoAddKfUParam param,FsUser user) {
@@ -787,6 +785,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 
             iSopUserLogsInfoService.updateSopUserInfoByExternalId(qwExternalId,param.getUserId());
 
+            //重粉逻辑
             fsUserCompanyBindService.bindFsUser(param.getUserId(), qwExternalId, log.getLogId());
 
 
@@ -825,6 +824,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             log.setUpdateTime(new Date());
             courseWatchLogMapper.updateFsCourseWatchLog(log);
 
+            //重粉逻辑
             fsUserCompanyBindService.bindFsUser(param.getUserId(), qwExternalId, log.getLogId());
 
 

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

@@ -262,6 +262,7 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
             "            <if test=\"customerId != null \"> and ec.customer_id = #{customerId}</if>\n" +
             "            <if test=\"status != null \"> and ec.status = #{status}</if>\n" +
             "            <if test=\"stageStatus != null \"> and ec.stage_status = #{stageStatus}</if>\n" +
+            "            <if test=\"userRepeat != null \"> and ec.user_repeat = #{userRepeat}</if>\n" +
             "            <if test=\"transferStatus != null \"> and ec.transfer_status = #{transferStatus}</if>\n" +
             "            <if test=\"qwUserId != null \"> and ec.qw_user_id = #{qwUserId}</if>\n" +
             "            <if test=\"level != null \"> and ec.level = #{level}</if>\n" +
@@ -323,6 +324,7 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
             "            <if test=\"customerId != null \"> and ec.customer_id = #{customerId}</if>\n" +
             "            <if test=\"status != null \"> and ec.status = #{status}</if>\n" +
             "            <if test=\"stageStatus != null \"> and ec.stage_status = #{stageStatus}</if>\n" +
+            "            <if test=\"userRepeat != null \"> and ec.user_repeat = #{userRepeat}</if>\n" +
             "            <if test=\"transferStatus != null \"> and ec.transfer_status = #{transferStatus}</if>\n" +
             "            <if test=\"qwUserId != null \"> and ec.qw_user_id = #{qwUserId}</if>\n" +
             "            <if test=\"level != null \"> and ec.level = #{level}</if>\n" +

+ 6 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactParam.java

@@ -38,6 +38,12 @@ public class QwExternalContactParam {
     private String companyUserName;
 
 
+    /**
+     * 是否重粉
+     */
+    private Integer userRepeat;
+
+
     private Long customerId;
 
     /** 名称 */

+ 38 - 18
fs-service/src/main/java/com/fs/qw/service/impl/QwContactWayServiceImpl.java

@@ -6,6 +6,7 @@ import com.fs.common.BeanCopyUtils;
 import com.fs.common.core.domain.R;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.DateUtils;
+import com.fs.common.utils.StringUtils;
 import com.fs.course.domain.FsCourseWatchLog;
 import com.fs.course.mapper.FsCourseWatchLogMapper;
 import com.fs.course.param.FsCourseLinkCreateParam;
@@ -371,10 +372,9 @@ public class QwContactWayServiceImpl implements IQwContactWayService
 
     }
 
-    @Override
-    public boolean sendWelcomeMsg(QwContactWay qwContactWay, String corpId, String welcomeCode,QwUser qwUser,Long qwExternalId) {
-
 
+    @Override
+    public boolean sendWelcomeMsg(QwContactWay qwContactWay, String corpId, String welcomeCode, QwUser qwUser, Long qwExternalId) {
         if (qwContactWay.getIsSpanWelcome()==1){
             String welcomeJson = qwContactWay.getWelcomeJson();
             if (welcomeJson!=null&&welcomeJson!=""){
@@ -395,9 +395,7 @@ public class QwContactWayServiceImpl implements IQwContactWayService
 
                             SendWelcomeMsgParam copy = BeanCopyUtils.copy(qwWelcomeJsonFrom, SendWelcomeMsgParam.class);
                             copy.setWelcome_code(welcomeCode);
-
                             QwResult qwResult = qwApiService.sendWelcomeMsg(copy, corpId);
-
                             if (qwResult.getErrcode()==0){
                                 return false;
                             }else {
@@ -411,23 +409,45 @@ public class QwContactWayServiceImpl implements IQwContactWayService
 
 
         }
+
         SendWelcomeMsgParam sendWelcomeMsgParam = new SendWelcomeMsgParam();
         sendWelcomeMsgParam.setWelcome_code(welcomeCode);
-        TextMessage textMessage = new TextMessage();
-        textMessage.setContent(qwContactWay.getTextContent());
-        sendWelcomeMsgParam.setText(textMessage);
-        SendWelcomeMsgParam.Attachment attachment = new SendWelcomeMsgParam.Attachment();
-        SendWelcomeMsgParam.Attachment.ImageAttachment imageAttachment = new SendWelcomeMsgParam.Attachment.ImageAttachment();
-        imageAttachment.setPic_url(qwContactWay.getImagePicUrl());
-        attachment.setMsgtype("image");
-        attachment.setImage(imageAttachment);
-        sendWelcomeMsgParam.setAttachments(Arrays.asList(attachment));
+
+        // 构建文本消息
+        if (StringUtils.isNotBlank(qwContactWay.getTextContent())) {
+            TextMessage textMessage = new TextMessage();
+            textMessage.setContent(qwContactWay.getTextContent());
+            sendWelcomeMsgParam.setText(textMessage);
+        }
+
+        // 构建图片附件 - 修正结构
+        List<SendWelcomeMsgParam.Attachment> attachments = new ArrayList<>();
+
+        if (StringUtils.isNotBlank(qwContactWay.getImagePicUrl())) {
+            SendWelcomeMsgParam.Attachment imageAttachment = new SendWelcomeMsgParam.Attachment();
+            imageAttachment.setMsgtype("image");
+
+            // 创建图片内容对象
+            SendWelcomeMsgParam.Attachment.ImageAttachment imageContent = new SendWelcomeMsgParam.Attachment.ImageAttachment();
+            imageContent.setPic_url(qwContactWay.getImagePicUrl());
+            imageAttachment.setImage(imageContent);
+
+            attachments.add(imageAttachment);
+        }
+
+        if (!attachments.isEmpty()) {
+            sendWelcomeMsgParam.setAttachments(attachments);
+        }
+
+        // 发送请求
         QwResult qwResult = qwApiService.sendWelcomeMsg(sendWelcomeMsgParam, corpId);
-        if (qwResult.getErrcode()==0){
-            return false;
-        }else {
-            return true;
+
+        if ("levent".equals(qwUser.getQwUserId())) {
+            log.debug("发送结果: {}", qwResult);
         }
+
+        // 修正返回值逻辑 - 0表示成功
+        return qwResult.getErrcode() == 0;
     }
 
     public List<QwWelcomeJsonFrom.Attachment> attachmentsTools( List<QwWelcomeJsonFrom.Attachment> attachments,

+ 2 - 3
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -2309,7 +2309,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                                     }
                                 }
                             }
-                            if (qwContactWay.getIsSpanWelcome() == 1 && isClose) {
+                            if (qwContactWay.getIsWelcome() == 1 && isClose) {
                                 isSend = qwContactWayService.sendWelcomeMsg(qwContactWay, corpId, welcomeCode,qwUser,contact.getId());
                             }
                         }
@@ -2348,7 +2348,6 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                                 LocalTime start = LocalTime.parse(schedule.getStartTime());
                                 LocalTime end = LocalTime.parse(schedule.getEndTime().equals("24:00") ? "23:59:59" : schedule.getEndTime());
                                 if (!now.isBefore(start) && !now.isAfter(end)) {
-
                                     TextMessage textMessage = new TextMessage();
                                     textMessage.setContent(schedule.getWelcomeText());
                                     sendWelcomeMsgParam.setText(textMessage);
@@ -4262,7 +4261,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
 
         //客户删除销售-找这个销售的sop任务中所有的营期里有没有这个客户,删了(暂时不要删-这种流失的有些一样能发消息)
 //        sopUserLogsInfoMapper.deleteByQwUserIdAndCorpIdToContactId(userID,corpId, externalUserID);
-        logger.error("客户删除销售-"+"|"+externalUserID+"|"+userID+"|"+corpId);
+//        logger.error("客户删除销售-"+"|"+externalUserID+"|"+userID+"|"+corpId);
 
         QwExternalContact qwExternalContact = qwExternalContactMapper.selectQwExternalContactUserIdAndExternalIdAndCompanyId(externalUserID, userID, corpId);
         if (qwExternalContact != null) {

+ 4 - 0
fs-service/src/main/java/com/fs/system/service/impl/SysConfigServiceImpl.java

@@ -231,6 +231,10 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     @Override
     public SysConfig selectConfigByConfigKey(String configKey) {
+        //TODO 可以先查询这个key是否在数据库中存在,
+        // 如果不存在就返回表中id+1的数为新id,以及将查询的key作为key返回,
+        // 并在前端提示更新就可以了
+        // 否做会出现bug
         return configMapper.selectConfigByConfigKey(configKey);
     }
 

+ 162 - 0
fs-service/src/main/resources/application-druid-jnsyj-test.yml

@@ -0,0 +1,162 @@
+# 数据源配置
+spring:
+    profiles:
+        include: config-druid-jnsyj,common
+    # redis 配置
+    redis:
+        # 地址  localhost
+        host: 127.0.0.1
+#        host: localhost
+        # 端口,默认为6379
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        password:
+#        password:
+        # 连接超时时间
+        timeout: 10s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 8
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+    datasource:
+        #        clickhouse:
+        #            type: com.alibaba.druid.pool.DruidDataSource
+        #            driverClassName: com.clickhouse.jdbc.ClickHouseDriver
+        #            url: jdbc:clickhouse://cc-2vc8zzo26w0l7m2l6.public.clickhouse.ads.aliyuncs.com/sop?compress=0&use_server_time_zone=true&use_client_time_zone=false&timezone=Asia/Shanghai
+        #            username: rt_2024
+        #            password: Yzx_19860213
+        #            initialSize: 10
+        #            maxActive: 100
+        #            minIdle: 10
+        #            maxWait: 6000
+        mysql:
+            type: com.alibaba.druid.pool.DruidDataSource
+            driverClassName: com.mysql.cj.jdbc.Driver
+            druid:
+                # 主库数据源
+                master:
+                    url: jdbc:mysql://gz-cdb-82i5mhyl.sql.tencentcdb.com:20407/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_c123232014^$
+                # 从库数据源
+                slave:
+                    url: jdbc:mysql://gz-cdb-82i5mhyl.sql.tencentcdb.com:20407/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_c123232014^$
+                    # 从数据源开关/默认关闭
+                    enabled: true
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 1000
+                # 配置获取连接等待超时的时间
+                maxWait: 60000
+                # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+                timeBetweenEvictionRunsMillis: 60000
+                # 配置一个连接在池中最小生存的时间,单位是毫秒
+                minEvictableIdleTimeMillis: 300000
+                # 配置一个连接在池中最大生存的时间,单位是毫秒
+                maxEvictableIdleTimeMillis: 900000
+                # 配置检测连接是否有效
+                validationQuery: SELECT 1 FROM DUAL
+                testWhileIdle: true
+                testOnBorrow: false
+                testOnReturn: false
+                webStatFilter:
+                    enabled: true
+                statViewServlet:
+                    enabled: true
+                    # 设置白名单,不填则允许所有访问
+                    allow:
+                    url-pattern: /druid/*
+                    # 控制台管理用户名和密码
+                    login-username: fs
+                    login-password: 123456
+                filter:
+                    stat:
+                        enabled: true
+                        # 慢SQL记录
+                        log-slow-sql: true
+                        slow-sql-millis: 1000
+                        merge-sql: true
+                    wall:
+                        config:
+                            multi-statement-allow: true
+        sop:
+            type: com.alibaba.druid.pool.DruidDataSource
+            driverClassName: com.mysql.cj.jdbc.Driver
+            druid:
+                # 主库数据源
+                master:
+                    url: jdbc:mysql://gz-cdb-82i5mhyl.sql.tencentcdb.com:20407/fs_his_sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_c123232014^$
+                read:
+
+                    url: jdbc:mysql://gz-cdb-82i5mhyl.sql.tencentcdb.com:20407/fs_his_sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_c123232014^$
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 200
+                # 配置获取连接等待超时的时间
+                maxWait: 60000
+                # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+                timeBetweenEvictionRunsMillis: 60000
+                # 配置一个连接在池中最小生存的时间,单位是毫秒
+                minEvictableIdleTimeMillis: 300000
+                # 配置一个连接在池中最大生存的时间,单位是毫秒
+                maxEvictableIdleTimeMillis: 900000
+                # 配置检测连接是否有效
+                validationQuery: SELECT 1 FROM DUAL
+                testWhileIdle: true
+                testOnBorrow: false
+                testOnReturn: false
+                webStatFilter:
+                    enabled: true
+                statViewServlet:
+                    enabled: true
+                    # 设置白名单,不填则允许所有访问
+                    allow:
+                    url-pattern: /druid/*
+                    # 控制台管理用户名和密码
+                    login-username: fs
+                    login-password: 123456
+                filter:
+                    stat:
+                        enabled: true
+                        # 慢SQL记录
+                        log-slow-sql: true
+                        slow-sql-millis: 1000
+                        merge-sql: true
+                    wall:
+                        config:
+                            multi-statement-allow: true
+rocketmq:
+    name-server: 1:8100 # RocketMQ NameServer 地址
+    producer:
+        group: my-producer-group   # 生产者组名(必须唯一)
+        access-key: default
+        secret-key: aZS4z!88dNndKTfhITzTpTxRrVUShtH3
+    consumer:
+        group: common-group
+        access-key: default
+        secret-key: aZS4z!88dNndKTfhITzTpTxRrVUShtH3
+openIM:
+    secret: openIM123
+    userID: imAdmin
+#是否为新商户,新商户不走mpOpenId
+isNewWxMerchant: false

+ 5 - 2
fs-service/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -70,8 +70,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          LEFT JOIN qw_user qu on qu.id= l.qw_user_id
          LEFT JOIN qw_external_contact qec on l.qw_external_contact_id = qec.id
         <where>
-            <if test ='maps.isVip !=null'>
-                and l.user_id != 0 and u.is_vip = #{maps.isVip}
+            <if test ='maps.isVip != null and maps.isVip == 0'>
+                and (l.user_id = #{maps.isVip} or l.user_id is null)
+            </if>
+            <if test ='maps.isVip != null and maps.isVip == 1'>
+                and l.user_id != 0 and l.user_id is not null
             </if>
             <if test ='maps.sendType !=null'>
                 and l.send_type = #{maps.sendType}

+ 1 - 3
fs-store/src/main/java/com/fs/store/controller/common/CommonController.java

@@ -91,9 +91,7 @@ public class CommonController
             ajax.put("fileName", fileName);
             ajax.put("url", url);
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }

+ 5 - 1
fs-user-app/src/main/java/com/fs/app/controller/store/StoreOrderScrmController.java

@@ -47,6 +47,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -63,6 +64,8 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 
+
+@Slf4j
 @Api("商城接口")
 @RestController
 @RequestMapping(value="/store/app/storeOrder")
@@ -270,7 +273,8 @@ public class StoreOrderScrmController extends AppBaseController {
     @ApiOperation("创建订单")
     @PostMapping("/create")
     public R create(@Validated @RequestBody FsStoreOrderCreateParam param, HttpServletRequest request){
-        String userId=getUserId();
+        String userId= getUserId();
+        log.info("开始创建订单,登录用户id:{}", userId);
         param.setIsUserApp(false);
         return orderService.createOrder(Long.parseLong(getUserId()),param);
     }

+ 1 - 1
fs-user-app/src/main/resources/logback.xml

@@ -72,7 +72,7 @@
     </appender>
 
 	<!-- 系统模块日志级别控制  -->
-	<logger name="com.fs" level="info" />
+	<logger name="com.fs" level="debug" />
 	<!-- Spring日志级别控制  -->
 	<logger name="org.springframework" level="warn" />