Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

zyp 2 дней назад
Родитель
Сommit
a831627429
27 измененных файлов с 617 добавлено и 305 удалено
  1. 11 0
      fs-company-app/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java
  2. 2 1
      fs-company/src/main/java/com/fs/company/controller/course/FsCourseWatchLogController.java
  3. 15 9
      fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java
  4. 1 0
      fs-service/src/main/java/com/fs/course/config/CourseConfig.java
  5. 13 0
      fs-service/src/main/java/com/fs/course/param/SendXfkParam.java
  6. 9 0
      fs-service/src/main/java/com/fs/course/service/IFsCourseLinkService.java
  7. 55 0
      fs-service/src/main/java/com/fs/course/service/impl/AsyncIsAddKfXfkService.java
  8. 162 0
      fs-service/src/main/java/com/fs/course/service/impl/FsCourseLinkServiceImpl.java
  9. 5 5
      fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseOrderServiceImpl.java
  10. 38 14
      fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java
  11. 5 5
      fs-service/src/main/java/com/fs/course/service/impl/FsUserVipOrderServiceImpl.java
  12. 23 17
      fs-service/src/main/java/com/fs/course/vo/FsCourseWatchLogListVO.java
  13. 3 0
      fs-service/src/main/java/com/fs/his/mapper/FsDoctorMapper.java
  14. 4 0
      fs-service/src/main/java/com/fs/his/service/IFsStoreOrderService.java
  15. 4 4
      fs-service/src/main/java/com/fs/his/service/impl/FsInquiryOrderServiceImpl.java
  16. 7 10
      fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java
  17. 78 208
      fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java
  18. 5 1
      fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java
  19. 2 2
      fs-service/src/main/java/com/fs/tzBankPay/RequestController.java
  20. 1 1
      fs-service/src/main/java/com/fs/tzBankPay/TzBankService/TzBankServiceImpl/TzBankServiceImpl.java
  21. 21 22
      fs-service/src/main/java/com/fs/tzBankPay/doman/PayType.java
  22. 2 0
      fs-service/src/main/resources/application-common.yml
  23. 1 1
      fs-service/src/main/resources/application-config-druid-sft.yml
  24. 1 1
      fs-service/src/main/resources/application-config-druid-yzt.yml
  25. 148 0
      fs-service/src/main/resources/application-druid-sxjz-test.yml
  26. 1 1
      fs-user-app/src/main/java/com/fs/app/controller/InquiryOrderController.java
  27. 0 3
      fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

+ 11 - 0
fs-company-app/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java

@@ -249,5 +249,16 @@ public class FsUserCourseVideoController extends AppBaseController {
         return fsUserCourseVideoService.setWatchCourseTime(collect);
         return fsUserCourseVideoService.setWatchCourseTime(collect);
     }
     }
 
 
+    /**
+     * 获取跳转微信小程序的链接地址
+     * @param linkStr
+     * @return
+     */
+    @Login
+    @GetMapping("/getGotoWxAppLink")
+    @ApiOperation("获取跳转微信小程序的链接地址")
+    public ResponseResult<String> getGotoWxAppLink(String linkStr) {
+        return ResponseResult.ok(courseLinkService.getGotoWxAppLink(linkStr));
+    }
 
 
 }
 }

+ 2 - 1
fs-company/src/main/java/com/fs/company/controller/course/FsCourseWatchLogController.java

@@ -239,7 +239,8 @@ public class FsCourseWatchLogController extends BaseController
     public AjaxResult myExport(FsCourseWatchLogListParam param)
     public AjaxResult myExport(FsCourseWatchLogListParam param)
     {
     {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setCompanyId( loginUser.getCompany().getCompanyId());
+//        param.setCompanyId( loginUser.getCompany().getCompanyId());
+        param.setCompanyUserId( loginUser.getUser().getUserId());
         List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
         List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
         ExcelUtil<FsCourseWatchLogListVO> util = new ExcelUtil<FsCourseWatchLogListVO>(FsCourseWatchLogListVO.class);
         ExcelUtil<FsCourseWatchLogListVO> util = new ExcelUtil<FsCourseWatchLogListVO>(FsCourseWatchLogListVO.class);
         return util.exportExcel(list, "短链课程看课记录数据");
         return util.exportExcel(list, "短链课程看课记录数据");

+ 15 - 9
fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java

@@ -635,7 +635,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
 
 
                         insertSopUserLogs(sopUserLogsInfos, logVo, sendTime, ruleTimeVO, content, qwUserId,
                         insertSopUserLogs(sopUserLogsInfos, logVo, sendTime, ruleTimeVO, content, qwUserId,
                                 companyUserId, companyId, qwUserByRedis.getWelcomeText(),qwUserByRedis.getQwUserName(),
                                 companyUserId, companyId, qwUserByRedis.getWelcomeText(),qwUserByRedis.getQwUserName(),
-                                groupChatMap, miniAppId);
+                                groupChatMap, miniAppId,config);
 
 
                     }
                     }
                 } catch (Exception e) {
                 } catch (Exception e) {
@@ -678,7 +678,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
     private void insertSopUserLogs(List<SopUserLogsInfo> sopUserLogsInfos, SopUserLogsVo logVo, Date sendTime,
     private void insertSopUserLogs(List<SopUserLogsInfo> sopUserLogsInfos, SopUserLogsVo logVo, Date sendTime,
                                    QwSopRuleTimeVO ruleTimeVO, QwSopTempSetting.Content content,
                                    QwSopRuleTimeVO ruleTimeVO, QwSopTempSetting.Content content,
                                    String qwUserId,String companyUserId,String companyId,String welcomeText,String qwUserName,
                                    String qwUserId,String companyUserId,String companyId,String welcomeText,String qwUserName,
-                                   Map<String, QwGroupChat> groupChatMap,String miniAppId) {
+                                   Map<String, QwGroupChat> groupChatMap,String miniAppId,CourseConfig config) {
         String formattedSendTime = sendTime.toInstant()
         String formattedSendTime = sendTime.toInstant()
                 .atZone(ZoneId.systemDefault())
                 .atZone(ZoneId.systemDefault())
                 .format(DATE_TIME_FORMATTER);
                 .format(DATE_TIME_FORMATTER);
@@ -704,7 +704,8 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
             if (content.getIndex() == 0) {
             if (content.getIndex() == 0) {
                 QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, groupChat.getChatId(), groupChat.getName(), null, isOfficial, null);
                 QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, groupChat.getChatId(), groupChat.getName(), null, isOfficial, null);
                 handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
                 handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
-                        type, qwUserId, companyUserId, companyId, groupChat.getChatId(), welcomeText, qwUserName, null, true, miniAppId, groupChat);
+                        type, qwUserId, companyUserId, companyId, groupChat.getChatId(), welcomeText, qwUserName,
+                        null, true, miniAppId, groupChat,config);
             } else {
             } else {
                 if(groupChat.getChatUserList() != null && !groupChat.getChatUserList().isEmpty()){
                 if(groupChat.getChatUserList() != null && !groupChat.getChatUserList().isEmpty()){
                     groupChat.getChatUserList().forEach(user -> {
                     groupChat.getChatUserList().forEach(user -> {
@@ -712,7 +713,8 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                         ruleTimeVO.setRemark("客户群催课");
                         ruleTimeVO.setRemark("客户群催课");
                         QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, user.getUserId(), user.getName(), null, isOfficial, null);
                         QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, user.getUserId(), user.getName(), null, isOfficial, null);
                         handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
                         handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
-                                type, qwUserId, companyUserId, companyId, user.getId().toString(), welcomeText, qwUserName, null, false, miniAppId, groupChat);
+                                type, qwUserId, companyUserId, companyId, user.getId().toString(), welcomeText, qwUserName,
+                                null, false, miniAppId, groupChat,config);
                     });
                     });
                 }
                 }
             }
             }
@@ -725,7 +727,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                     Long fsUserId = contactId.getFsUserId();
                     Long fsUserId = contactId.getFsUserId();
                     QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, contactId.getExternalContactId(), externalUserName, fsUserId, isOfficial, contactId.getExternalId());
                     QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, contactId.getExternalContactId(), externalUserName, fsUserId, isOfficial, contactId.getExternalId());
                     handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
                     handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
-                            type, qwUserId, companyUserId, companyId, externalId, welcomeText, qwUserName, fsUserId, false, miniAppId, null);
+                            type, qwUserId, companyUserId, companyId, externalId, welcomeText, qwUserName, fsUserId, false, miniAppId, null,config);
                 } catch (Exception e) {
                 } catch (Exception e) {
                     log.error("处理 externalContactId {} 时发生异常: {}", contactId, e.getMessage(), e);
                     log.error("处理 externalContactId {} 时发生异常: {}", contactId, e.getMessage(), e);
                 }
                 }
@@ -833,14 +835,16 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                                       SopUserLogsVo logVo, Date sendTime, Long courseId,
                                       SopUserLogsVo logVo, Date sendTime, Long courseId,
                                       Long videoId, int type, String qwUserId,
                                       Long videoId, int type, String qwUserId,
                                       String companyUserId, String companyId, String externalId, String welcomeText,
                                       String companyUserId, String companyId, String externalId, String welcomeText,
-                                      String qwUserName, Long fsUserId, boolean isGroupChat, String miniAppId, QwGroupChat groupChat) {
+                                      String qwUserName, Long fsUserId, boolean isGroupChat, String miniAppId,
+                                      QwGroupChat groupChat,CourseConfig config) {
         switch (type) {
         switch (type) {
             case 1:
             case 1:
                 handleNormalMessage(sopLogs, content,companyUserId);
                 handleNormalMessage(sopLogs, content,companyUserId);
                 break;
                 break;
             case 2:
             case 2:
                 handleCourseMessage(sopLogs, content, logVo, sendTime, courseId, videoId,
                 handleCourseMessage(sopLogs, content, logVo, sendTime, courseId, videoId,
-                        qwUserId, companyUserId, companyId, externalId, welcomeText,qwUserName, fsUserId, isGroupChat, miniAppId, groupChat);
+                        qwUserId, companyUserId, companyId, externalId, welcomeText,qwUserName, fsUserId,
+                        isGroupChat, miniAppId, groupChat,config);
                 break;
                 break;
             case 3:
             case 3:
                 handleOrderMessage(sopLogs, content);
                 handleOrderMessage(sopLogs, content);
@@ -873,7 +877,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                                      SopUserLogsVo logVo, Date sendTime, Long courseId,
                                      SopUserLogsVo logVo, Date sendTime, Long courseId,
                                      Long videoId, String qwUserId, String companyUserId,
                                      Long videoId, String qwUserId, String companyUserId,
                                      String companyId, String externalId, String welcomeText, String qwUserName,
                                      String companyId, String externalId, String welcomeText, String qwUserName,
-                                     Long fsUserId, boolean isGroupChat, String miniAppId, QwGroupChat groupChat) {
+                                     Long fsUserId, boolean isGroupChat, String miniAppId, QwGroupChat groupChat,CourseConfig config) {
         // 深拷贝 Content 对象,避免使用 JSON
         // 深拷贝 Content 对象,避免使用 JSON
         QwSopTempSetting.Content clonedContent = deepCopyContent(content);
         QwSopTempSetting.Content clonedContent = deepCopyContent(content);
         if (clonedContent == null) {
         if (clonedContent == null) {
@@ -974,7 +978,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                     setting.setMiniprogramPage(sortLink.replaceAll("^[\\s\\u2005]+", ""));
                     setting.setMiniprogramPage(sortLink.replaceAll("^[\\s\\u2005]+", ""));
 
 
                     try {
                     try {
-                        setting.setMiniprogramPicUrl(StringUtil.strIsNullOrEmpty(setting.getMiniprogramPicUrl())?"https://cos.his.cdwjyyh.com/fs/20250331/ec2b4e73be8048afbd526124a655ad56.png":setting.getMiniprogramPicUrl());
+                        setting.setMiniprogramPicUrl(StringUtil.strIsNullOrEmpty(setting.getMiniprogramPicUrl())? config.getSidebarImageUrl():setting.getMiniprogramPicUrl());
                     } catch (Exception e) {
                     } catch (Exception e) {
                         log.error("赋值-小程序封面地址失败-" + e);
                         log.error("赋值-小程序封面地址失败-" + e);
                     }
                     }
@@ -1241,6 +1245,8 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
             log.error("CourseConfig is not loaded.");
             log.error("CourseConfig is not loaded.");
             return "";
             return "";
         }
         }
+
+
 //        if (StringUtils.isEmpty(config.getMiniprogramPage())){
 //        if (StringUtils.isEmpty(config.getMiniprogramPage())){
 //            log.error("miniprogramPage is not loaded.");
 //            log.error("miniprogramPage is not loaded.");
 //            return "";
 //            return "";

+ 1 - 0
fs-service/src/main/java/com/fs/course/config/CourseConfig.java

@@ -36,6 +36,7 @@ public class CourseConfig implements Serializable {
 
 
     private String companyUserQRCode;// 默认客服二维码图片
     private String companyUserQRCode;// 默认客服二维码图片
     private String courseLogo;//课程Logo
     private String courseLogo;//课程Logo
+    private String sidebarImageUrl;//侧边栏公共图
     private Integer delayStart;
     private Integer delayStart;
     private Integer delayEnd;
     private Integer delayEnd;
 
 

+ 13 - 0
fs-service/src/main/java/com/fs/course/param/SendXfkParam.java

@@ -0,0 +1,13 @@
+package com.fs.course.param;
+
+import lombok.Data;
+
+@Data
+public class SendXfkParam {
+    private String corpId;
+    private String userId;
+    private String name;
+    private Integer addWay;
+    private String state;
+    private String createTime;
+}

+ 9 - 0
fs-service/src/main/java/com/fs/course/service/IFsCourseLinkService.java

@@ -83,4 +83,13 @@ public interface IFsCourseLinkService
     R getRealLinkH5(String link);
     R getRealLinkH5(String link);
 
 
     R createRoomLink(FsCourseLinkRoomParam param, QwUser qwUser);
     R createRoomLink(FsCourseLinkRoomParam param, QwUser qwUser);
+
+    String testGetAppLink();
+
+    /**
+     * 获取跳转微信小程序的链接地址
+     * @param linkStr
+     * @return
+     */
+    String getGotoWxAppLink(String linkStr);
 }
 }

+ 55 - 0
fs-service/src/main/java/com/fs/course/service/impl/AsyncIsAddKfXfkService.java

@@ -0,0 +1,55 @@
+package com.fs.course.service.impl;
+
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
+import com.fs.common.utils.PubFun;
+import com.fs.course.param.SendXfkParam;
+import com.fs.qw.domain.QwUser;
+import com.fs.qw.mapper.QwExternalContactMapper;
+import com.fs.qw.result.QwFilterSopCustomersResult;
+import com.fs.qw.vo.QwSopRuleTimeVO;
+import com.fs.sop.domain.*;
+import com.fs.sop.mapper.QwSopLogsMapper;
+import com.fs.sop.mapper.QwSopMapper;
+import com.fs.sop.mapper.QwSopTempMapper;
+import com.fs.sop.mapper.SopUserLogsInfoMapper;
+import com.fs.sop.params.DeleteQwSopParam;
+import com.fs.sop.params.QwSopTagsParam;
+import com.fs.sop.params.SopUserLogsArray;
+import com.fs.sop.params.SopUserLogsList;
+import com.fs.sop.service.IQwSopTempVoiceService;
+import com.fs.sop.service.ISopUserLogsService;
+import com.fs.voice.utils.StringUtil;
+import com.fs.wxUser.domain.CompanyWxUser;
+import com.fs.wxUser.mapper.CompanyWxUserMapper;
+import com.fs.wxUser.param.CompanyWxUserSopParam;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+@AllArgsConstructor
+public class AsyncIsAddKfXfkService {
+
+    private static final String domainXFKName = "https://workapi.dazhengnet.cn/api.php/Home/XfkWork/bindMember";
+
+    /**
+     * 异步推送
+     */
+    @Async("scheduledExecutorService")
+    public void executeSopByIds(SendXfkParam xfkParam) {
+
+        HttpRequest.post(domainXFKName)
+                .body(JSON.toJSONString(xfkParam),"application/json;charset=UTF-8")
+                .execute().body();
+
+
+    }
+
+}

+ 162 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsCourseLinkServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fs.course.service.impl;
 package com.fs.course.service.impl;
 
 
+import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
@@ -10,6 +11,7 @@ import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.date.DateUtil;
 import com.fs.common.utils.date.DateUtil;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.config.cloud.CloudHostProper;
 import com.fs.config.cloud.CloudHostProper;
+import com.fs.core.config.WxMaConfiguration;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.*;
 import com.fs.course.domain.*;
 import com.fs.course.mapper.FsCourseDomainNameMapper;
 import com.fs.course.mapper.FsCourseDomainNameMapper;
@@ -20,6 +22,8 @@ import com.fs.course.param.FsCourseLinkCreateParam;
 import com.fs.course.param.FsCourseLinkRoomParam;
 import com.fs.course.param.FsCourseLinkRoomParam;
 import com.fs.course.service.IFsCourseLinkService;
 import com.fs.course.service.IFsCourseLinkService;
 import com.fs.course.service.IFsUserCourseService;
 import com.fs.course.service.IFsUserCourseService;
+import com.fs.his.config.FsSysConfig;
+import com.fs.his.utils.ConfigUtil;
 import com.fs.qw.domain.QwGroupChat;
 import com.fs.qw.domain.QwGroupChat;
 import com.fs.qw.domain.QwGroupChatUser;
 import com.fs.qw.domain.QwGroupChatUser;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.domain.QwUser;
@@ -32,13 +36,26 @@ import com.fs.system.service.ISysConfigService;
 import com.fs.voice.utils.StringUtil;
 import com.fs.voice.utils.StringUtil;
 import lombok.Synchronized;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.mp.api.WxMpService;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneId;
@@ -661,4 +678,149 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
     }
     }
 
 
 
 
+    /**
+     *
+     * 生成跳转微信小程序的链接 base
+     *
+     * @param appid 微信appid
+     * @param path  跳转页面路径
+     * @param query 需要传参的String
+     * @return
+     */
+    public String getWxAppLink(String appid, String path, String query) {
+
+        StringBuilder wxAppLink = new StringBuilder("weixin://dl/business/?");
+        try {
+            wxAppLink.append("appid=").append(appid);
+            wxAppLink.append("&path=").append(path);
+            String encodedQuery =  URLEncoder.encode(URLEncoder.encode(query, StandardCharsets.UTF_8.toString()));
+            wxAppLink.append("&query=").append(encodedQuery);
+//            wxAppLink.append("&env_version=trial");
+//            if(StringUtils.isNotBlank(envVersion)){
+//                wxAppLink.append("&env_version=").append(envVersion);
+//            }
+
+        } catch (UnsupportedEncodingException e) {
+            log.error("生成跳转微信小程序的链接失败" + e.getMessage());
+            return "生成失败";
+        }
+        return wxAppLink.toString();
+
+    }
+
+    @Override
+    public String testGetAppLink() {
+        String pageLink = "/pages_course/video.html?course\\u003d{\\\"companyId\\\":100,\\\"companyUserId\\\":2020,\\\"corpId\\\":\\\"ww51717e2b71d5e2d3\\\",\\\"courseId\\\":63,\\\"link\\\":\\\"1943203055923101696\\\",\\\"linkType\\\":3,\\\"qwExternalId\\\":20812637,\\\"qwUserId\\\":\\\"9112\\\",\\\"videoId\\\":400}";
+        String miniprogramAppid = "wx76cb55db092a41ae";
+        if (StringUtils.isNotBlank(pageLink)) {
+
+            //解析pageLink
+            String[] split = pageLink.split("\\?");
+            if (split.length == 2 && split[0].length() > 0 && split[1].length() > 0) {
+                //处理页面路径
+                String pageUrl =split[0];
+                if(pageUrl.startsWith("/")){
+                    pageUrl = pageUrl.substring(1);
+                }
+                if(pageUrl.contains(".html")){
+                    pageUrl = pageUrl.replace(".html", "");
+                }
+                //处理参数
+                String query = split[1];
+                query = query.replace("\\u003d", "=");
+                String wxAppLink = getWxAppLink(miniprogramAppid, pageUrl, query);
+                return wxAppLink;
+            } else {
+                return "页面链接错误,获取失败";
+            }
+        }
+        return pageLink;
+
+    }
+
+    /**
+     * 获取跳转微信小程序的链接地址
+     * @param linkStr
+     * @return
+     */
+    @Override
+    public String getGotoWxAppLink(String linkStr) {
+//        CloseableHttpClient client = null;
+//        try {
+//            client = HttpClients.createDefault();
+//            String[] split = linkStr.split("\\?");
+//            if (split.length == 2 && split[0].length() > 0 && split[1].length() > 0) {
+//                //处理页面路径
+//                String pageUrl = split[0];
+//                if (pageUrl.startsWith("/")) {
+//                    pageUrl = pageUrl.substring(1);
+//                }
+//                //处理参数
+//                String query = split[1];
+//                String json = configService.selectConfigByKey("course.config");
+//                CourseConfig config = JSON.parseObject(json, CourseConfig.class);
+//                String miniprogramAppid = config.getMiniprogramAppid();
+//                if (StringUtils.isBlank(miniprogramAppid)) {
+//                    return "未配置点播小程序id";
+//                }
+//                if(StringUtils.isBlank(code)){
+//                    return "参数错误,请传入code";
+//                }
+//                //获取微信token
+//                final WxMaService wxService = WxMaConfiguration.getMaService("wx76cb55db092a41ae");
+//                String token = wxService.getAccessToken();
+//                HttpPost httpPost = new HttpPost("https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + token);
+//                JSONObject bodyObj = new JSONObject();
+//                bodyObj.put("path", pageUrl);
+//                bodyObj.put("query", query);
+//                log.info("微信小程序请求参数打印:{}", bodyObj.toJSONString());
+//                StringEntity entity = new StringEntity(bodyObj.toJSONString(),"UTF-8");
+//                httpPost.setEntity(entity);
+//                httpPost.setHeader("Content-type", "application/json");
+//                HttpEntity response = client.execute(httpPost).getEntity();
+//                String responseString = EntityUtils.toString(response);
+//                log.info("微信小程序接口响应数据:{}", responseString);
+//                JSONObject jsonObject = JSONObject.parseObject(responseString);
+//                if(null != jsonObject && !jsonObject.isEmpty() && jsonObject.containsKey("url_link")){
+//                    return jsonObject.getString("url_link");
+//                }
+//            } else {
+//                return "页面链接错误,获取失败";
+//            }
+//
+//        } catch (WxErrorException e) {
+//            throw new RuntimeException(e);
+//        } catch (ClientProtocolException e) {
+//            throw new RuntimeException(e);
+//        } catch (IOException e) {
+//            throw new RuntimeException(e);
+//        }
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSON.parseObject(json, CourseConfig.class);
+        String miniprogramAppid = config.getMiniprogramAppid();
+        if (StringUtils.isBlank(miniprogramAppid)) {
+                    return "未配置点播小程序id";
+                }
+//        String envVersion = "trial";
+//        String envVersion = version;
+        if (StringUtils.isNotBlank(linkStr)) {
+            //解析pageLink
+            String[] split = linkStr.split("\\?");
+            if (split.length == 2 && split[0].length() > 0 && split[1].length() > 0) {
+                //处理页面路径
+                String pageUrl =split[0];
+                if(pageUrl.startsWith("/")){
+                    pageUrl = pageUrl.substring(1);
+                }
+                //处理参数
+                String query = split[1];
+//                query = query.replace("\\u003d", "=");
+                String wxAppLink = getWxAppLink(miniprogramAppid, pageUrl, query);
+                return wxAppLink;
+            } else {
+                return "页面链接错误,获取失败";
+            }
+        }
+        return "";
+    }
 }
 }

+ 5 - 5
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseOrderServiceImpl.java

@@ -542,7 +542,7 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
 //                        o.setOpenId(user.getMpOpenId());
 //                        o.setOpenId(user.getMpOpenId());
                         o.setOrderType(4);
                         o.setOrderType(4);
                         o.setOrderId(order.getOrderId().toString());
                         o.setOrderId(order.getOrderId().toString());
-                        o.setPayType(Arrays.asList(PayType.支付宝条码支付.getCode()));
+                        o.setPayType(Arrays.asList(PayType.ALIPAY_BARCODE_PAYMENT.getCode()));
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         FsStorePayment mt=new FsStorePayment();
                         FsStorePayment mt=new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
                         mt.setPaymentId(storePayment.getPaymentId());
@@ -591,11 +591,11 @@ public class FsUserCourseOrderServiceImpl implements IFsUserCourseOrderService
                         paymentMap.setStatus(1);
                         paymentMap.setStatus(1);
                         paymentMap.setPayTime(new Date());
                         paymentMap.setPayTime(new Date());
                         paymentMap.setTradeNo(tradeNo);
                         paymentMap.setTradeNo(tradeNo);
-                        if(payType.equals(PayType.微信小程序支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.微信小程序支付.name());
+                        if(payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                         }
                         }
-                        else if(payType.equals(PayType.支付宝条码支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.支付宝条码支付.name());
+                        else if(payType.equals(PayType.ALIPAY_BARCODE_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.ALIPAY_BARCODE_PAYMENT.name());
                         }
                         }
                         fsStorePaymentMapper.updateFsStorePayment(paymentMap);
                         fsStorePaymentMapper.updateFsStorePayment(paymentMap);
                         order=fsUserCourseOrderMapper.selectFsUserCourseOrderByOrderId(Long.parseLong(storePayment.getBusinessId()));
                         order=fsUserCourseOrderMapper.selectFsUserCourseOrderByOrderId(Long.parseLong(storePayment.getBusinessId()));

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

@@ -1,5 +1,6 @@
 package com.fs.course.service.impl;
 package com.fs.course.service.impl;
 
 
+import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
@@ -103,6 +104,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     private static final String miniappRealLink = "/pages_course/video.html?course=";
     private static final String miniappRealLink = "/pages_course/video.html?course=";
     private static final String REAL_LINK_PREFIX = "/courseH5/pages/course/learning?course=";
     private static final String REAL_LINK_PREFIX = "/courseH5/pages/course/learning?course=";
     private static final String SHORT_LINK_PREFIX = "/courseH5/pages/course/learning?s=";
     private static final String SHORT_LINK_PREFIX = "/courseH5/pages/course/learning?s=";
+
     @Autowired
     @Autowired
     private CompanyMoneyLogsMapper moneyLogsMapper;
     private CompanyMoneyLogsMapper moneyLogsMapper;
     @Autowired
     @Autowired
@@ -128,6 +130,9 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     @Autowired
     @Autowired
     private FsCourseLinkMapper fsCourseLinkMapper;
     private FsCourseLinkMapper fsCourseLinkMapper;
 
 
+    @Autowired
+    private AsyncIsAddKfXfkService xfkService;
+
 
 
     @Autowired
     @Autowired
     private QwExternalContactMapper qwExternalContactMapper;
     private QwExternalContactMapper qwExternalContactMapper;
@@ -408,17 +413,17 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 
 
         String msg = "<div style=\"color: red;margin-bottom: 15px;font-weight: bold;\">本课程为会员独享<br>请长按二维码</div>\n" +
         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>";
                 "\t\t\t\t\t<div style=\"color: #999;font-size: 14px;font-weight: bold;\">添加伴学助手免费领取会员权限</div>";
-        try {
-            new Thread(() -> {
-                try {
-                    rocketMQTemplate.syncSend("repeat-upload", JSON.toJSONString(RepeatUploadVo.builder().type(1).fsUserId(param.getUserId()).build()));
-                }catch (Exception e){
-                    logger.error("看课重粉提交mq失败", e);
-                }
-            }).start();
-        }catch (Exception e){
-            logger.error("看课重粉提交mq失败", e);
-        }
+//        try {
+//            new Thread(() -> {
+//                try {
+//                    rocketMQTemplate.syncSend("repeat-upload", JSON.toJSONString(RepeatUploadVo.builder().type(1).fsUserId(param.getUserId()).build()));
+//                }catch (Exception e){
+//                    logger.error("看课重粉提交mq失败", e);
+//                }
+//            }).start();
+//        }catch (Exception e){
+//            logger.error("看课重粉提交mq失败", e);
+//        }
 
 
         Integer isRoom = param.getIsRoom();
         Integer isRoom = param.getIsRoom();
 
 
@@ -659,6 +664,17 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             user.setQwExtId(param.getQwExternalId());
             user.setQwExtId(param.getQwExternalId());
             fsUserMapper.updateFsUser(user);
             fsUserMapper.updateFsUser(user);
 
 
+
+            //小访客特有
+//            SendXfkParam xfkParam=new SendXfkParam();
+//            xfkParam.setCorpId(externalContact.getCorpId());
+//            xfkParam.setUserId(externalContact.getUserId());
+//            xfkParam.setName(externalContact.getName());
+//            xfkParam.setAddWay(externalContact.getAddWay());
+//            xfkParam.setState(externalContact.getState());
+//            xfkParam.setCreateTime(externalContact.getCreateTime().toString());
+//            xfkService.executeSopByIds(xfkParam);
+
             iSopUserLogsInfoService.updateSopUserInfoByExternalId(qwExternalId,param.getUserId());
             iSopUserLogsInfoService.updateSopUserInfoByExternalId(qwExternalId,param.getUserId());
 
 
             //绑定上之后 更新观看记录
             //绑定上之后 更新观看记录
@@ -1720,6 +1736,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
     @Override
     @Override
     public R createMiniLink(FsCourseLinkMiniParam param) {
     public R createMiniLink(FsCourseLinkMiniParam param) {
 
 
+
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSON.parseObject(json, CourseConfig.class);
+
         QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
         QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
 
 
         if (qwUser==null||qwUser.getCompanyId()==null||qwUser.getCompanyUserId()==null){
         if (qwUser==null||qwUser.getCompanyId()==null||qwUser.getCompanyUserId()==null){
@@ -1741,7 +1761,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         JSONObject news = new JSONObject(true);
         JSONObject news = new JSONObject(true);
         news.put("miniprogramAppid", qwCompany.getMiniAppId());
         news.put("miniprogramAppid", qwCompany.getMiniAppId());
         news.put("miniprogramTitle", param.getTitle());
         news.put("miniprogramTitle", param.getTitle());
-        news.put("miniprogramPicUrl", "https://cos.his.cdwjyyh.com/fs/20250523/9c8af5735d784847818cada7fa776a7b.jpg");
+        news.put("miniprogramPicUrl", config.getSidebarImageUrl());
         news.put("miniprogramPage", linkByMiniApp);
         news.put("miniprogramPage", linkByMiniApp);
 
 
         return R.ok().put("data",news);
         return R.ok().put("data",news);
@@ -1785,7 +1805,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         JSONObject news = new JSONObject(true); // true 表示保持字段顺序
         JSONObject news = new JSONObject(true); // true 表示保持字段顺序
         news.put("linkTitle", param.getTitle());
         news.put("linkTitle", param.getTitle());
         news.put("linkDescribe", param.getTitle());
         news.put("linkDescribe", param.getTitle());
-        news.put("linkImageUrl", "https://cos.his.cdwjyyh.com/fs/20250523/9c8af5735d784847818cada7fa776a7b.jpg");
+        news.put("linkImageUrl", config.getSidebarImageUrl());
         news.put("linkUrl", linkByCartLink);
         news.put("linkUrl", linkByCartLink);
 
 
         return R.ok().put("data",news);
         return R.ok().put("data",news);
@@ -1995,6 +2015,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 
 
     @Override
     @Override
     public R createRoomMiniLink(FsCourseLinkMiniParam param) {
     public R createRoomMiniLink(FsCourseLinkMiniParam param) {
+
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSON.parseObject(json, CourseConfig.class);
+
         QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
         QwUser qwUser = qwExternalContactService.getQwUserByRedis(param.getCorpId().trim(), param.getQwUserId().trim());
 
 
         if (qwUser==null||qwUser.getCompanyId()==null||qwUser.getCompanyUserId()==null){
         if (qwUser==null||qwUser.getCompanyId()==null||qwUser.getCompanyUserId()==null){
@@ -2013,7 +2037,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         JSONObject news = new JSONObject(true);
         JSONObject news = new JSONObject(true);
         news.put("miniprogramAppid", qwCompany.getMiniAppId());
         news.put("miniprogramAppid", qwCompany.getMiniAppId());
         news.put("miniprogramTitle", param.getTitle());
         news.put("miniprogramTitle", param.getTitle());
-        news.put("miniprogramPicUrl", "https://cos.his.cdwjyyh.com/fs/20250523/9c8af5735d784847818cada7fa776a7b.jpg");
+        news.put("miniprogramPicUrl", config.getSidebarImageUrl());
         news.put("miniprogramPage", linkByMiniApp);
         news.put("miniprogramPage", linkByMiniApp);
 
 
         return R.ok().put("data",news);
         return R.ok().put("data",news);

+ 5 - 5
fs-service/src/main/java/com/fs/course/service/impl/FsUserVipOrderServiceImpl.java

@@ -394,7 +394,7 @@ public class FsUserVipOrderServiceImpl implements IFsUserVipOrderService
 //                        o.setOpenId(user.getMpOpenId());
 //                        o.setOpenId(user.getMpOpenId());
                         o.setOrderType(5);
                         o.setOrderType(5);
                         o.setOrderId(order.getOrderId().toString());
                         o.setOrderId(order.getOrderId().toString());
-                        o.setPayType(Arrays.asList(PayType.支付宝条码支付.getCode()));
+                        o.setPayType(Arrays.asList(PayType.ALIPAY_BARCODE_PAYMENT.getCode()));
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         FsStorePayment mt=new FsStorePayment();
                         FsStorePayment mt=new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
                         mt.setPaymentId(storePayment.getPaymentId());
@@ -443,11 +443,11 @@ public class FsUserVipOrderServiceImpl implements IFsUserVipOrderService
                         paymentMap.setStatus(1);
                         paymentMap.setStatus(1);
                         paymentMap.setPayTime(new Date());
                         paymentMap.setPayTime(new Date());
                         paymentMap.setTradeNo(tradeNo);
                         paymentMap.setTradeNo(tradeNo);
-                        if(payType.equals(PayType.微信小程序支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.微信小程序支付.name());
+                        if(payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                         }
                         }
-                        else if(payType.equals(PayType.支付宝条码支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.支付宝条码支付.name());
+                        else if(payType.equals(PayType.ALIPAY_BARCODE_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.ALIPAY_BARCODE_PAYMENT.name());
                         }
                         }
                         fsStorePaymentMapper.updateFsStorePayment(paymentMap);
                         fsStorePaymentMapper.updateFsStorePayment(paymentMap);
                         order=fsUserVipOrderMapper.selectFsUserVipOrderByOrderId(Long.parseLong(storePayment.getBusinessId()));
                         order=fsUserVipOrderMapper.selectFsUserVipOrderByOrderId(Long.parseLong(storePayment.getBusinessId()));

+ 23 - 17
fs-service/src/main/java/com/fs/course/vo/FsCourseWatchLogListVO.java

@@ -21,13 +21,23 @@ public class FsCourseWatchLogListVO extends BaseEntity
     @Excel(name = "记录编号")
     @Excel(name = "记录编号")
     private Long logId;
     private Long logId;
 
 
-    @Excel(name = "会员id")
+    /** 会员id */
+//    @Excel(name = "会员id")
     private Long userId;
     private Long userId;
 
 
-    @Excel(name = "小程序昵称")
+    /** 小程序昵称 */
+//    @Excel(name = "小程序昵称")
     private String fsNickName;
     private String fsNickName;
 
 
-    @Excel(name = "小程序头像")
+    @Excel(name = "客户昵称")
+    private String externalUserName;
+
+    /** 外部联系人头像 */
+    @Excel(name = "客户头像")
+    private String externalUserAvatar;
+
+    /** 客户头像 */
+//    @Excel(name = "客户头像")
     private String fsAvatar;
     private String fsAvatar;
 
 
     @Excel(name = "课程名称")
     @Excel(name = "课程名称")
@@ -39,7 +49,7 @@ public class FsCourseWatchLogListVO extends BaseEntity
     @Excel(name = "记录类型" ,dictType = "sys_course_watch_log_type")
     @Excel(name = "记录类型" ,dictType = "sys_course_watch_log_type")
     private Integer logType;
     private Integer logType;
 
 
-    @Excel(name = "企微外部联系人id")
+//    @Excel(name = "企微外部联系人id")
     private String qwExternalContactId;
     private String qwExternalContactId;
 
 
 
 
@@ -47,26 +57,27 @@ public class FsCourseWatchLogListVO extends BaseEntity
     private String duration;
     private String duration;
 
 
 
 
-    @Excel(name = "分享人企微userId")
+//    @Excel(name = "分享人企微userId")
     private String qwUserId;
     private String qwUserId;
     /**
     /**
      * 企业微信员工名称
      * 企业微信员工名称
      */
      */
-    @Excel(name = "企信员工名称")
+    @Excel(name = "所属企微")
     private String qwUserName;
     private String qwUserName;
 
 
-
     @Excel(name = "所属销售")
     @Excel(name = "所属销售")
     private String companyUserName;
     private String companyUserName;
 
 
-    @Excel(name = "所属团队")
+    /** 所属团队 */
+//    @Excel(name = "所属团队")
     private String companyName;
     private String companyName;
 
 
-    @Excel(name = "所属团队编号")
+    /** 所属团队编号 */
+//    @Excel(name = "所属团队编号")
     private String companyId;
     private String companyId;
 
 
-
-    @Excel(name = "发送方式")
+    /** 发送方式 */
+//    @Excel(name = "发送方式")
     private Integer sendType; //归属发送方式:1 个微  2 企微
     private Integer sendType; //归属发送方式:1 个微  2 企微
 
 
 
 
@@ -79,7 +90,7 @@ public class FsCourseWatchLogListVO extends BaseEntity
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
     private Date updateTime;
 
 
-    @Excel(name = "最后心跳时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
+//    @Excel(name = "最后心跳时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date lastHeartbeatTime;
     private Date lastHeartbeatTime;
 
 
@@ -91,9 +102,4 @@ public class FsCourseWatchLogListVO extends BaseEntity
     @JsonFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date campPeriodTime;
     private Date campPeriodTime;
 
 
-    @Excel(name = "外部联系人名称")
-    private String externalUserName; //外部联系人名称
-
-    private String externalUserAvatar;//外部联系人头像
-
 }
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/mapper/FsDoctorMapper.java

@@ -175,10 +175,13 @@ public interface FsDoctorMapper
     Long selectFsDoctorType2Ids(Integer type);
     Long selectFsDoctorType2Ids(Integer type);
     @Select("select * from fs_doctor where doctor_id=#{doctorId} for update")
     @Select("select * from fs_doctor where doctor_id=#{doctorId} for update")
     FsDoctor selectFsDoctorByDoctorIdForUpdate(Long doctorId);
     FsDoctor selectFsDoctorByDoctorIdForUpdate(Long doctorId);
+
     @Select("select * from fs_doctor where doctor_type=2 and  `status`=1 and is_audit=1 and sign_url is not null and audit_type LIKE CONCAT('%', #{type}, '%')  ORDER BY RAND() LIMIT 1")
     @Select("select * from fs_doctor where doctor_type=2 and  `status`=1 and is_audit=1 and sign_url is not null and audit_type LIKE CONCAT('%', #{type}, '%')  ORDER BY RAND() LIMIT 1")
     FsDoctor selectPackageFsDoctorType2Ids(Integer type);
     FsDoctor selectPackageFsDoctorType2Ids(Integer type);
+
     @Select("select doctor_id from fs_doctor where doctor_type=1 and  `status`=1 and is_audit=1 and is_agreement_prescribe_doctor=1  and sign_url is not null")
     @Select("select doctor_id from fs_doctor where doctor_type=1 and  `status`=1 and is_audit=1 and is_agreement_prescribe_doctor=1  and sign_url is not null")
     List<Long>  selectFsDoctorDoctorByPackage();
     List<Long>  selectFsDoctorDoctorByPackage();
+
     @Select("select doctor_id from fs_doctor where doctor_type=1 and  `status`=1 and is_audit=1 and dept_id=39 and is_follow=1  ORDER BY RAND() LIMIT 1")
     @Select("select doctor_id from fs_doctor where doctor_type=1 and  `status`=1 and is_audit=1 and dept_id=39 and is_follow=1  ORDER BY RAND() LIMIT 1")
     Long selectFollowDoctorDoctorByPackage();
     Long selectFollowDoctorDoctorByPackage();
     @Select("select * from fs_doctor where doctor_type=1 and  `status`=1 and is_audit=1 and dept_id=39 ")
     @Select("select * from fs_doctor where doctor_type=1 and  `status`=1 and is_audit=1 and dept_id=39 ")

+ 4 - 0
fs-service/src/main/java/com/fs/his/service/IFsStoreOrderService.java

@@ -16,6 +16,7 @@ import com.fs.his.dto.ExpressResultDTO;
 import com.fs.his.dto.StoreOrderExpressExportDTO;
 import com.fs.his.dto.StoreOrderExpressExportDTO;
 import com.fs.his.param.*;
 import com.fs.his.param.*;
 import com.fs.his.vo.*;
 import com.fs.his.vo.*;
+import org.springframework.transaction.annotation.Transactional;
 
 
 /**
 /**
  * 订单Service接口
  * 订单Service接口
@@ -150,6 +151,9 @@ public interface IFsStoreOrderService
 
 
     void addFsFollowByStoreOrder(FsStoreOrder order);
     void addFsFollowByStoreOrder(FsStoreOrder order);
 
 
+    @Transactional
+    R finishStoreOrder(Long orderId);
+
     List<FsStoreOrderExportVO> selectFsStoreOrderListVOByExport(FsStoreOrderParam param);
     List<FsStoreOrderExportVO> selectFsStoreOrderListVOByExport(FsStoreOrderParam param);
 
 
     List<FsInquiryOrderMsg> selectFsInquiryOrderMsgByStoreOrderId(FsFollowMsgParam fsFollowMsgParam);
     List<FsInquiryOrderMsg> selectFsInquiryOrderMsgByStoreOrderId(FsFollowMsgParam fsFollowMsgParam);

+ 4 - 4
fs-service/src/main/java/com/fs/his/service/impl/FsInquiryOrderServiceImpl.java

@@ -733,11 +733,11 @@ public class FsInquiryOrderServiceImpl implements IFsInquiryOrderService
                         paymentMap.setStatus(1);
                         paymentMap.setStatus(1);
                         paymentMap.setPayTime(new Date());
                         paymentMap.setPayTime(new Date());
                         paymentMap.setTradeNo(tradeNo);
                         paymentMap.setTradeNo(tradeNo);
-                        if(payType.equals(PayType.微信小程序支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.微信小程序支付.name());
+                        if(payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                         }
                         }
-                        else if(payType.equals(PayType.支付宝条码支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.支付宝条码支付.name());
+                        else if(payType.equals(PayType.ALIPAY_BARCODE_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.ALIPAY_BARCODE_PAYMENT.name());
                         }
                         }
                         if (storePayment.getPayMode().equals("yb")){
                         if (storePayment.getPayMode().equals("yb")){
                             OrderQueryDTO orderQueryDTO = new OrderQueryDTO();
                             OrderQueryDTO orderQueryDTO = new OrderQueryDTO();

+ 7 - 10
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -655,11 +655,11 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                     paymentMap.setStatus(1);
                     paymentMap.setStatus(1);
                     paymentMap.setPayTime(new Date());
                     paymentMap.setPayTime(new Date());
                     paymentMap.setTradeNo(tradeNo);
                     paymentMap.setTradeNo(tradeNo);
-                    if(payType.equals(PayType.微信小程序支付.getCode())){
-                        paymentMap.setPayTypeCode(PayType.微信小程序支付.name());
+                    if(payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())){
+                        paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                     }
                     }
-                    else if(payType.equals(PayType.支付宝条码支付.getCode())){
-                        paymentMap.setPayTypeCode(PayType.支付宝条码支付.name());
+                    else if(payType.equals(PayType.ALIPAY_BARCODE_PAYMENT.getCode())){
+                        paymentMap.setPayTypeCode(PayType.ALIPAY_BARCODE_PAYMENT.name());
                     }
                     }
                     if (storePayment.getPayMode().equals("yb")){
                     if (storePayment.getPayMode().equals("yb")){
                         OrderQueryDTO orderQueryDTO = new OrderQueryDTO();
                         OrderQueryDTO orderQueryDTO = new OrderQueryDTO();
@@ -881,9 +881,6 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
     @Override
     @Override
     @Transactional
     @Transactional
     public R payment(FsPackageOrderDoPayParam param) {
     public R payment(FsPackageOrderDoPayParam param) {
-        //回滚事务
-        //     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        //     return return R.error("");
         //更新订单状态
         //更新订单状态
         FsPackageOrder fsPackageOrder=fsPackageOrderMapper.selectFsPackageOrderByOrderId(param.getOrderId());
         FsPackageOrder fsPackageOrder=fsPackageOrderMapper.selectFsPackageOrderByOrderId(param.getOrderId());
         if(!fsPackageOrder.getStatus().equals(FsPackageOrderStatusEnum.STATUS_1.getValue())){
         if(!fsPackageOrder.getStatus().equals(FsPackageOrderStatusEnum.STATUS_1.getValue())){
@@ -1127,7 +1124,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
 //                        o.setOpenId(user.getMpOpenId());
 //                        o.setOpenId(user.getMpOpenId());
                         o.setOrderType(3);
                         o.setOrderType(3);
                         o.setOrderId(fsPackageOrder.getOrderId().toString());
                         o.setOrderId(fsPackageOrder.getOrderId().toString());
-                        o.setPayType(Arrays.asList(PayType.支付宝条码支付.getCode()));
+                        o.setPayType(Arrays.asList(PayType.ALIPAY_BARCODE_PAYMENT.getCode()));
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         FsStorePayment mt=new FsStorePayment();
                         FsStorePayment mt=new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
                         mt.setPaymentId(storePayment.getPaymentId());
@@ -1212,7 +1209,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                         o.setOpenId(user.getMpOpenId());
                         o.setOpenId(user.getMpOpenId());
                         o.setOrderType(3);
                         o.setOrderType(3);
                         o.setOrderId(fsPackageOrder.getOrderId().toString());
                         o.setOrderId(fsPackageOrder.getOrderId().toString());
-                        o.setPayType(Arrays.asList(PayType.微信公众号.getCode()));
+                        o.setPayType(Arrays.asList(PayType.WECHAT_PUBLIC_ACCOUNT.getCode()));
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         FsStorePayment mt=new FsStorePayment();
                         FsStorePayment mt=new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
                         mt.setPaymentId(storePayment.getPaymentId());
@@ -1300,7 +1297,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                         o.setOpenId(user.getMpOpenId());
                         o.setOpenId(user.getMpOpenId());
                         o.setOrderType(3);
                         o.setOrderType(3);
                         o.setOrderId(fsPackageOrder.getOrderId().toString());
                         o.setOrderId(fsPackageOrder.getOrderId().toString());
-                        o.setPayType(Arrays.asList(PayType.支付宝条码支付.getCode()));
+                        o.setPayType(Arrays.asList(PayType.ALIPAY_BARCODE_PAYMENT.getCode()));
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         FsStorePayment mt=new FsStorePayment();
                         FsStorePayment mt=new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
                         mt.setPaymentId(storePayment.getPaymentId());

+ 78 - 208
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fs.his.service.impl;
 package com.fs.his.service.impl;
 
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.net.URLDecoder;
 import cn.hutool.core.net.URLDecoder;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
@@ -62,7 +63,6 @@ import com.fs.im.service.IImService;
 import com.fs.qw.domain.QwExternalContact;
 import com.fs.qw.domain.QwExternalContact;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.mapper.QwExternalContactMapper;
 import com.fs.qw.mapper.QwExternalContactMapper;
-import com.fs.sop.mapper.QwSopLogsMapper;
 import com.fs.qw.service.impl.QwUserServiceImpl;
 import com.fs.qw.service.impl.QwUserServiceImpl;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.domain.SysConfig;
 import com.fs.tzBankPay.doman.*;
 import com.fs.tzBankPay.doman.*;
@@ -83,16 +83,18 @@ import com.google.gson.Gson;
 import lombok.Synchronized;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.json.JSONObject;
 import org.json.JSONObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
 
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
@@ -114,9 +116,9 @@ import static com.fs.his.utils.PhoneUtil.decryptPhone;
 @Lazy
 @Lazy
 @Service
 @Service
 @Slf4j
 @Slf4j
+@EnableAspectJAutoProxy(exposeProxy = true,proxyTargetClass = true)
 public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 {
 {
-    Logger logger= LoggerFactory.getLogger(getClass());
     @Autowired
     @Autowired
     private WxPayService wxPayService;
     private WxPayService wxPayService;
     @Autowired
     @Autowired
@@ -157,15 +159,15 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Autowired
     @Autowired
     private IFsExpressService expressService;
     private IFsExpressService expressService;
     @Autowired
     @Autowired
-    HisApiService hisApiService;
+    private HisApiService hisApiService;
     @Autowired
     @Autowired
-    FsInquiryOrderMapper fsInquiryOrderMapper;
+    private FsInquiryOrderMapper fsInquiryOrderMapper;
     @Autowired
     @Autowired
     private ICompanyService companyService;
     private ICompanyService companyService;
     @Autowired
     @Autowired
     private CompanyMapper companyMapper;
     private CompanyMapper companyMapper;
     @Autowired
     @Autowired
-    ICompanyUserService companyUserService;
+    private ICompanyUserService companyUserService;
     @Autowired
     @Autowired
     private IFsUserService userService;
     private IFsUserService userService;
     @Autowired
     @Autowired
@@ -227,28 +229,28 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Autowired
     @Autowired
     private IFsInquiryOrderService inquiryOrderService;
     private IFsInquiryOrderService inquiryOrderService;
     @Autowired
     @Autowired
-    FsFollowReportMapper fsFollowReportMapper;
+    private FsFollowReportMapper fsFollowReportMapper;
     @Autowired
     @Autowired
-    FsStoreSubOrderServiceImpl storeSubOrderService;
+    private FsStoreSubOrderServiceImpl storeSubOrderService;
     @Autowired
     @Autowired
-    ApplicationEventPublisher publisher;
+    private ApplicationEventPublisher publisher;
 
 
     @Autowired
     @Autowired
-    IFsUserWatchService fsUserWatchService;
+    private IFsUserWatchService fsUserWatchService;
     @Autowired
     @Autowired
-    QwExternalContactMapper qwExternalContactMapper;
-    @Autowired
-    QwSopLogsMapper qwSopLogsMapper;
-
-    @Autowired
-    private IFsExportTaskService exportTaskService;
+    private QwExternalContactMapper qwExternalContactMapper;
     @Autowired
     @Autowired
     private QwUserServiceImpl qwUserServiceImpl;
     private QwUserServiceImpl qwUserServiceImpl;
     @Autowired
     @Autowired
     private IFsStoreProductGroupService storeProductGroupService;
     private IFsStoreProductGroupService storeProductGroupService;
     @Autowired
     @Autowired
-    CloudHostProper cloudHostProper;
+    private CloudHostProper cloudHostProper;
+    @Autowired
+    private IFsPrescribeService fsPrescribeService;
+
 
 
+    @Value("${express.omsCode}")
+    private String expressOmsCode;
     /**
     /**
      * 查询订单
      * 查询订单
      *
      *
@@ -391,9 +393,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         o1.setFinishTime(new Date());
         o1.setFinishTime(new Date());
         o1.setOrderId(orderId);
         o1.setOrderId(orderId);
         o1.setStatus(FsStoreOrderStatusEnum.STATUS_4.getValue());
         o1.setStatus(FsStoreOrderStatusEnum.STATUS_4.getValue());
-        logger.info("确认收货:"+orderId);
+        log.info("确认收货:"+orderId);
         if (order.getCompanyId()!=null&&order.getTuiMoneyStatus()==0&&order.getPayType()==1){
         if (order.getCompanyId()!=null&&order.getTuiMoneyStatus()==0&&order.getPayType()==1){
-            logger.info("分佣:"+orderId);
+            log.info("分佣:"+orderId);
             companyService.addCompanyMoney(order);
             companyService.addCompanyMoney(order);
             o1.setTuiMoneyTime(new Date());
             o1.setTuiMoneyTime(new Date());
         }
         }
@@ -441,19 +443,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 userCouponService.updateFsUserCoupon(userCoupon);
                 userCouponService.updateFsUserCoupon(userCoupon);
             }
             }
             //退回库存
             //退回库存
-//            this.refundStock(order);
             fsStoreOrderMapper.cancelOrder(orderId);
             fsStoreOrderMapper.cancelOrder(orderId);
             //添加记录
             //添加记录
             fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.CANCEL_ORDER.getValue(),
             fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.CANCEL_ORDER.getValue(),
                     FsStoreOrderLogEnum.CANCEL_ORDER.getDesc());
                     FsStoreOrderLogEnum.CANCEL_ORDER.getDesc());
 
 
-//            TemplateBean templateBean = TemplateBean.builder()
-//                    .orderId(order.getOrderId().toString())
-//                    .remark("您的订单已取消")
-//                    .uid(order.getUserId())
-//                    .templateType(TemplateListenEnum.TYPE_1.getValue())
-//                    .build();
-//            publisher.publishEvent(new TemplateEvent(this, templateBean));
             return R.ok("操作成功");
             return R.ok("操作成功");
         }
         }
         else{
         else{
@@ -477,7 +471,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                         //判断完成时间是否超过指定时间
                         //判断完成时间是否超过指定时间
                         Calendar calendar = new GregorianCalendar();
                         Calendar calendar = new GregorianCalendar();
                         calendar.setTime(vo.getFinishTime());
                         calendar.setTime(vo.getFinishTime());
-                        calendar.add(calendar.DATE,storeConfig.getStoreAfterSalesDay()); //把日期往后增加一天,整数  往后推,负数往前移动
+                        //把日期往后增加一天,整数  往后推,负数往前移动
+                        calendar.add(calendar.DATE,storeConfig.getStoreAfterSalesDay());
                         if(calendar.getTime().getTime()<new Date().getTime()){
                         if(calendar.getTime().getTime()<new Date().getTime()){
                             vo.setIsAfterSales(0);
                             vo.setIsAfterSales(0);
                         }
                         }
@@ -601,24 +596,17 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         FsPackage fsPackage=fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
         FsPackage fsPackage=fsPackageMapper.selectFsPackageByPackageId(packageOrder.getPackageId());
         JSONArray objects =JSONUtil.parseArray(fsPackage.getProductJson());
         JSONArray objects =JSONUtil.parseArray(fsPackage.getProductJson());
         List<FsPackagePruductDTO> products=JSONUtil.toList(objects,FsPackagePruductDTO.class);
         List<FsPackagePruductDTO> products=JSONUtil.toList(objects,FsPackagePruductDTO.class);
-//        boolean isDrug=false;
-//        for (FsPackagePruductDTO product : products) {
-//            if (product.getIsDrug()==1){
-//                isDrug=true;
-//            }
-//        }
-//        Long prescribeId=null;
 
 
         Map<String,Object> packageJson = (Map)JSON.parse(packageOrder.getPackageJson());
         Map<String,Object> packageJson = (Map)JSON.parse(packageOrder.getPackageJson());
         Integer packageSubType = (Integer)packageJson.get("packageSubType");
         Integer packageSubType = (Integer)packageJson.get("packageSubType");
         if (packageSubType==3){
         if (packageSubType==3){
-            R orderByPackageOrderStatus4 = inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
+            inquiryOrderService.createOrderByPackageOrderStatus4(packageOrder);
         }
         }
         Long  prescribeId= fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
         Long  prescribeId= fsPrescribeService.insertFsPrescribeByPackageOrder(packageOrder);
 
 
         FsStoreOrder order=new FsStoreOrder();
         FsStoreOrder order=new FsStoreOrder();
         List<FsStoreOrderItem> items=new ArrayList<>();
         List<FsStoreOrderItem> items=new ArrayList<>();
-        logger.info("套餐包生成药品订单:"+packageOrder.getOrderSn());
+        log.info("套餐包生成药品订单:{}",packageOrder.getOrderSn());
         order.setOrderCode(packageOrder.getOrderSn());
         order.setOrderCode(packageOrder.getOrderSn());
         order.setUserId(packageOrder.getUserId());
         order.setUserId(packageOrder.getUserId());
         order.setStoreId(fsPackage.getStoreId());
         order.setStoreId(fsPackage.getStoreId());
@@ -778,10 +766,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
             }
         }
         }
 
 
-
-
-
-
         order.setOrderType(fsPackage.getProductType());
         order.setOrderType(fsPackage.getProductType());
         order.setTotalNum(totalNum);
         order.setTotalNum(totalNum);
         order.setTotalPrice(totalPrice);
         order.setTotalPrice(totalPrice);
@@ -822,7 +806,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 fsFollow.setCompanyUserId(packageOrder.getCompanyUserId());
                 fsFollow.setCompanyUserId(packageOrder.getCompanyUserId());
                 fsFollow.setDeptId(packageOrder.getDeptId());
                 fsFollow.setDeptId(packageOrder.getDeptId());
                 fsFollow.setNum(1);
                 fsFollow.setNum(1);
-//            fsFollow.setPackageOrderId(order.getOrderId());
                 fsFollow.setInquiryOrderId(packageOrder.getInquiryOrderId());
                 fsFollow.setInquiryOrderId(packageOrder.getInquiryOrderId());
                 fsFollow.setPlanTime(DateUtils.getNowDate());
                 fsFollow.setPlanTime(DateUtils.getNowDate());
                 fsFollow.setPushStatus(1);
                 fsFollow.setPushStatus(1);
@@ -883,21 +866,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             try {
             try {
                 storeSubOrderService.insertFsStoreSubOrderByStoreOrder(order.getOrderId());
                 storeSubOrderService.insertFsStoreSubOrderByStoreOrder(order.getOrderId());
             }catch (Exception e){
             }catch (Exception e){
-                logger.info("拆分订单错误:"+order.getOrderId());
-            }
-//            try {
-//                if (fsPackage.getProductType()==2){
-//                    fsStoreOrderService.tuiOrder(order.getOrderId());
-//                }else if (fsPackage.getProductType()==1){
-//                    fsStoreOrderService.createOmsOrder(order.getOrderId());
-//                }else {
-//
-//                }
-//
-//            } catch (ParseException e) {
-//                throw new RuntimeException(e);
-//            }
-//            tuiOrderUtil.TuiOrderByPackage(order);
+                log.info("拆分订单错误:{}",order.getOrderId());
+            }
         }
         }
 
 
         return R.ok();
         return R.ok();
@@ -938,10 +908,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     throw new CustomException("订单编号为空");
                     throw new CustomException("订单编号为空");
                 }
                 }
 
 
-//                if (vo.getDeliveryCode() == null || vo.getDeliveryCode().isEmpty()) {
-//                    throw new CustomException("快递公司编号为空");
-//                }
-
                 if (vo.getDeliveryName() == null || vo.getDeliveryName().isEmpty()) {
                 if (vo.getDeliveryName() == null || vo.getDeliveryName().isEmpty()) {
                     throw new CustomException("快递名称为空");
                     throw new CustomException("快递名称为空");
                 }
                 }
@@ -1023,10 +989,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         }
         }
     }
     }
 
 
-
-
-
-
     @Override
     @Override
     public int tuiOrder(Long orderId) {
     public int tuiOrder(Long orderId) {
 
 
@@ -1054,7 +1016,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         FsStoreOrderItem item = new FsStoreOrderItem();
         FsStoreOrderItem item = new FsStoreOrderItem();
         item.setOrderId(o.getOrderId());
         item.setOrderId(o.getOrderId());
         List<FsStoreOrderItem> fsStoreOrderItems = fsStoreOrderItemMapper.selectFsStoreOrderItemList(item);
         List<FsStoreOrderItem> fsStoreOrderItems = fsStoreOrderItemMapper.selectFsStoreOrderItemList(item);
-        logger.info(""+fsStoreOrderItems);
+        log.info(""+fsStoreOrderItems);
         ArrayList<RecipeDetailParam> list = new ArrayList<>();
         ArrayList<RecipeDetailParam> list = new ArrayList<>();
         Integer i=1;
         Integer i=1;
         BigDecimal dprice = new BigDecimal(0);
         BigDecimal dprice = new BigDecimal(0);
@@ -1065,7 +1027,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             FsProdItemDTO fsProdItemDTO = JSON.parseObject(json, FsProdItemDTO.class);
             FsProdItemDTO fsProdItemDTO = JSON.parseObject(json, FsProdItemDTO.class);
             String barCode = fsProdItemDTO.getBarCode();
             String barCode = fsProdItemDTO.getBarCode();
 
 
-            logger.info(""+fsProdItemDTO);
+            log.info(""+fsProdItemDTO);
             if(fsStoreOrderItem.getIsGift()!=null&&fsStoreOrderItem.getIsGift()==1){
             if(fsStoreOrderItem.getIsGift()!=null&&fsStoreOrderItem.getIsGift()==1){
                 continue;
                 continue;
             }
             }
@@ -1131,11 +1093,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         op.setAttention(remark);//医嘱
         op.setAttention(remark);//医嘱
         op.setSymptoms(fp.getDiagnose());
         op.setSymptoms(fp.getDiagnose());
         op.setRecipe_time(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(fp.getCreateTime()));
         op.setRecipe_time(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(fp.getCreateTime()));
-//        op.setOperation_time("Jane");
-//        op.setOperation_time("2023-08-22 11:00:00");
-//        op.setPricing_id("pricing123");
-//        op.setPricing_cashier("Alice");
-//        op.setPricing_time("2023-08-22 12:00:00");
         op.setPrice(dprice.toString());
         op.setPrice(dprice.toString());
         op.setPrice_total(dprice.multiply(new BigDecimal(usage.getCounts())).toString());
         op.setPrice_total(dprice.multiply(new BigDecimal(usage.getCounts())).toString());
         op.setRecipe_sale_price(o.getPayMoney().toString()); //实际收款
         op.setRecipe_sale_price(o.getPayMoney().toString()); //实际收款
@@ -1149,10 +1106,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             op.setPatient_id(fp.getPatientId().toString());
             op.setPatient_id(fp.getPatientId().toString());
         }
         }
 
 
-        //op.setVisit_id("visit789");
-     //   op.setUsage_desc("备用字段描述");
         op.setAddress(o.getUserAddress());
         op.setAddress(o.getUserAddress());
-       // op.setRefund_name("");
         op.setRecipe_detail_list(list);
         op.setRecipe_detail_list(list);
         ApiResponse order = hisApiService.createOrder(op);
         ApiResponse order = hisApiService.createOrder(op);
         if (order.getState().equals("error")){
         if (order.getState().equals("error")){
@@ -1165,8 +1119,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
 
         return 1;
         return 1;
     }
     }
-    @Autowired
-    IFsPrescribeService fsPrescribeService;
+
     @Override
     @Override
     public FsPrescribeVO selectFsPrescribeByPrescribeIdVO(Long prescribeId) {
     public FsPrescribeVO selectFsPrescribeByPrescribeIdVO(Long prescribeId) {
         return  prescribeMapper.selectFsPrescribeByPrescribeIdVO(prescribeId);
         return  prescribeMapper.selectFsPrescribeByPrescribeIdVO(prescribeId);
@@ -1262,16 +1215,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     storeOrder.setUserName(address.getRealName().trim());
                     storeOrder.setUserName(address.getRealName().trim());
                     storeOrder.setUserPhone(address.getPhone().trim());
                     storeOrder.setUserPhone(address.getPhone().trim());
                     storeOrder.setUserAddress(address.getProvince()+" "+address.getCity()+" "+address.getDistrict()+" "+address.getDetail());
                     storeOrder.setUserAddress(address.getProvince()+" "+address.getCity()+" "+address.getDistrict()+" "+address.getDetail());
-//                    String noAdd="南通市,镇江市,淮安市,江阴市,金华市,驻马店市";
-//                    String[] split = noAdd.split(",");
-//                    for (String s : split) {
-//                        if (s.equals(address.getCity())){
-//                            return R.error("此地区暂不支持配送");
-//                        }
-//                    }
-//                    if ("民权县".equals(address.getDistrict())){
-//                        return R.error("此地区暂不支持配送");
-//                    }
                 }
                 }
             }
             }
             else{
             else{
@@ -1417,7 +1360,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         return fsStoreOrderVOS;
         return fsStoreOrderVOS;
     }
     }
     @Override
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
     public R payConfirm(String orderCode,String payCode, String tradeNo,String payType,Integer type) {
     public R payConfirm(String orderCode,String payCode, String tradeNo,String payType,Integer type) {
         try {
         try {
             FsStoreOrder order=null;
             FsStoreOrder order=null;
@@ -1426,17 +1369,17 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 FsStorePayment storePayment = fsStorePaymentMapper.selectFsStorePaymentByPaymentCode(payCode);
                 FsStorePayment storePayment = fsStorePaymentMapper.selectFsStorePaymentByPaymentCode(payCode);
                 if (storePayment!=null){
                 if (storePayment!=null){
                     if(storePayment.getStatus().equals(0)){
                     if(storePayment.getStatus().equals(0)){
-                        logger.info(payCode+"待支付");
+                        log.info(payCode+"待支付");
                         FsStorePayment paymentMap=new FsStorePayment();
                         FsStorePayment paymentMap=new FsStorePayment();
                         paymentMap.setPaymentId(storePayment.getPaymentId());
                         paymentMap.setPaymentId(storePayment.getPaymentId());
                         paymentMap.setStatus(1);
                         paymentMap.setStatus(1);
                         paymentMap.setPayTime(new Date());
                         paymentMap.setPayTime(new Date());
                         paymentMap.setTradeNo(tradeNo);
                         paymentMap.setTradeNo(tradeNo);
-                        if(payType.equals(PayType.微信小程序支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.微信小程序支付.name());
+                        if(payType.equals(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.WECHAT_MINI_PROGRAM_PAYMENT.name());
                         }
                         }
-                        else if(payType.equals(PayType.支付宝条码支付.getCode())){
-                            paymentMap.setPayTypeCode(PayType.支付宝条码支付.name());
+                        else if(payType.equals(PayType.ALIPAY_BARCODE_PAYMENT.getCode())){
+                            paymentMap.setPayTypeCode(PayType.ALIPAY_BARCODE_PAYMENT.name());
                         }
                         }
                         if (storePayment.getPayMode().equals("yb")){
                         if (storePayment.getPayMode().equals("yb")){
                             OrderQueryDTO orderQueryDTO = new OrderQueryDTO();
                             OrderQueryDTO orderQueryDTO = new OrderQueryDTO();
@@ -1446,12 +1389,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                             paymentMap.setBankTransactionId(orderResult.getBankTrxId());
                             paymentMap.setBankTransactionId(orderResult.getBankTrxId());
                         }
                         }
                         fsStorePaymentMapper.updateFsStorePayment(paymentMap);
                         fsStorePaymentMapper.updateFsStorePayment(paymentMap);
-                        logger.info(payCode+"已支付");
+                        log.info(payCode+"已支付");
                         order=fsStoreOrderMapper.selectFsStoreOrderByOrderId(Long.parseLong(storePayment.getBusinessId()));
                         order=fsStoreOrderMapper.selectFsStoreOrderByOrderId(Long.parseLong(storePayment.getBusinessId()));
                     }
                     }
                 }
                 }
                 else{
                 else{
-                    logger.info(payCode+"支付单号不存在");
+                    log.info(payCode+"支付单号不存在");
                     return R.error("支付单号不存在");
                     return R.error("支付单号不存在");
                 }
                 }
             }
             }
@@ -1459,12 +1402,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 order=fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderCode);
                 order=fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderCode);
             }
             }
             if(order!=null&&!order.getStatus().equals(FsStoreOrderStatusEnum.STATUS_1.getValue())){
             if(order!=null&&!order.getStatus().equals(FsStoreOrderStatusEnum.STATUS_1.getValue())){
-                logger.info(payCode+"订单号不为待支付回退");
+                log.info(payCode+"订单号不为待支付回退");
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return R.error();
                 return R.error();
             }
             }
             if(order!=null&&!order.getIsPay().equals(0)){
             if(order!=null&&!order.getIsPay().equals(0)){
-                logger.info(payCode+"订单号支付不为待支付回退");
+                log.info(payCode+"订单号支付不为待支付回退");
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return R.error();
                 return R.error();
             }
             }
@@ -1507,7 +1450,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
             }
             return R.ok();
             return R.ok();
         }catch (Exception e){
         }catch (Exception e){
-            logger.info(payCode+"异常了"+e.getMessage());
+            log.info(payCode+"异常了"+e.getMessage());
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             FsStorePaymentError err = new FsStorePaymentError();
             FsStorePaymentError err = new FsStorePaymentError();
             err.setOrderNo(orderCode);
             err.setOrderNo(orderCode);
@@ -1563,7 +1506,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
     }
 
 
     @Override
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public int afterSales(FsStoreOrderSalesParam fsStoreOrderSalesParam) {
     public int afterSales(FsStoreOrderSalesParam fsStoreOrderSalesParam) {
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(fsStoreOrderSalesParam.getOrderId());
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(fsStoreOrderSalesParam.getOrderId());
         if (order.getStatus()<0){
         if (order.getStatus()<0){
@@ -1700,11 +1643,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             erpOrder.setVip_code(order.getUserId().toString());
             erpOrder.setVip_code(order.getUserId().toString());
         }
         }
         erpOrder.setPlatform_code(order.getOrderCode());
         erpOrder.setPlatform_code(order.getOrderCode());
-//        if(order.getStoreHouseCode()==null){
-//            erpOrder.setWarehouse_code("CQDS001");
-//        }else{
-//            erpOrder.setWarehouse_code(order.getStoreHouseCode());
-//        }
 
 
         erpOrder.setShop_code(sysConfig.getErpShopCode());
         erpOrder.setShop_code(sysConfig.getErpShopCode());
         erpOrder.setSeller_memo(order.getRemark());
         erpOrder.setSeller_memo(order.getRemark());
@@ -1871,9 +1809,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         String s = fsPrescribeService.PrescribeImg(order.getPrescribeId());
         String s = fsPrescribeService.PrescribeImg(order.getPrescribeId());
         erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"||"+s+"||");
         erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"||"+s+"||");
         ErpOrderResponse response= erpOrderService.addOrder(erpOrder);
         ErpOrderResponse response= erpOrderService.addOrder(erpOrder);
-        logger.info("ErpCreate:"+order.getOrderCode()+":"+JSONUtil.toJsonStr(response));
-        if(response.getSuccess()){
-
+        log.info("ErpCreate:"+order.getOrderCode()+":"+JSONUtil.toJsonStr(response));
+        if(Boolean.TRUE.equals(response.getSuccess())){
             //支付成功后 将订单号写入待发货的REDIS中
             //支付成功后 将订单号写入待发货的REDIS中
             redisCache.setCacheObject("delivery"+":"+response.getCode(),order.getOrderCode());
             redisCache.setCacheObject("delivery"+":"+response.getCode(),order.getOrderCode());
             //写入外部订单号
             //写入外部订单号
@@ -1883,34 +1820,16 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 order.setExtendOrderId(response.getCode());
                 order.setExtendOrderId(response.getCode());
             }
             }
             fsStoreOrderMapper.updateFsStoreOrder(order);
             fsStoreOrderMapper.updateFsStoreOrder(order);
-        }else {
-//            if (response.getErrorDesc().equals("该订单已创建")){
-//                ErpOrderQueryRequert erpOrderQueryRequert = new ErpOrderQueryRequert();
-//                erpOrderQueryRequert.setPlatform_code(order.getOrderCode());
-//                ErpOrderQueryResponse erp = erpOrderService.getOrder(erpOrderQueryRequert);
-//                logger.info("ErpCreate:"+order.getOrderCode()+":"+JSONUtil.toJsonStr(response));
-//
-//                if (erp.getOrders()!=null&&erp.getOrders().size()>0){
-//                    ErpOrderQuery epr = erp.getOrders().get(0);
-//                    redisCache.setCacheObject("delivery"+":"+epr.getCode(),order.getOrderCode());
-//                    order.setExtendOrderId(epr.getCode());
-//                    fsStoreOrderMapper.updateFsStoreOrder(order);
-//                }
-//            }
         }
         }
         //写入日志
         //写入日志
 
 
-
     }
     }
 
 
-
-
-
     @Override
     @Override
     public ExpressResultDTO updateDeliveryItem(ExpressNotifyDTO notifyDTO) {
     public ExpressResultDTO updateDeliveryItem(ExpressNotifyDTO notifyDTO) {
         String data= URLDecoder.decode(notifyDTO.getRequestData(), Charset.forName("UTF-8"));
         String data= URLDecoder.decode(notifyDTO.getRequestData(), Charset.forName("UTF-8"));
         //ExpressInfoDTO
         //ExpressInfoDTO
-        logger.info("快递根踪回调:"+data);
+        log.info("快递根踪回调: {}",data);
         FsSysConfig sysConfig = configUtil.getSysConfig();
         FsSysConfig sysConfig = configUtil.getSysConfig();
         ExpressDataDTO expressDataDTO=JSONUtil.toBean(data,ExpressDataDTO.class);
         ExpressDataDTO expressDataDTO=JSONUtil.toBean(data,ExpressDataDTO.class);
         if(expressDataDTO!=null&&expressDataDTO.getData()!=null){
         if(expressDataDTO!=null&&expressDataDTO.getData()!=null){
@@ -1918,8 +1837,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 List<FsStoreOrder> orders=this.selectFsStoreOrderListByDeliveryId(dto.getLogisticCode());
                 List<FsStoreOrder> orders=this.selectFsStoreOrderListByDeliveryId(dto.getLogisticCode());
                 if(orders!=null){
                 if(orders!=null){
                     for(FsStoreOrder order:orders){
                     for(FsStoreOrder order:orders){
-                        logger.info("订单信息:"+JSONUtil.toJsonStr(order));
-                        logger.info("运单号:"+dto.getLogisticCode());
+                        log.info("订单信息: {}",JSONUtil.toJsonStr(order));
+                        log.info("运单号: {}",dto.getLogisticCode());
                         if(order!=null && (order.getDeliveryStatus()==null||order.getDeliveryStatus()!=3)){
                         if(order!=null && (order.getDeliveryStatus()==null||order.getDeliveryStatus()!=3)){
                             if (dto.getState()!=null&&dto.getStateEx()!=null){
                             if (dto.getState()!=null&&dto.getStateEx()!=null){
                                 FsStoreOrder map=new FsStoreOrder();
                                 FsStoreOrder map=new FsStoreOrder();
@@ -1934,7 +1853,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                                 }
                                 }
                             }
                             }
                             if (!dto.isSuccess()){
                             if (!dto.isSuccess()){
-                                logger.info("物流状态异常:{}"+dto);
+                                log.info("物流状态异常:{}",dto);
                             }
                             }
                             if ((!dto.isSuccess()&&dto.getReason()!=null&&dto.getReason().equals("三天无轨迹"))||(!dto.isSuccess()&&dto.getReason()!=null&&dto.getReason().equals("七天内无轨迹变化"))){
                             if ((!dto.isSuccess()&&dto.getReason()!=null&&dto.getReason().equals("三天无轨迹"))||(!dto.isSuccess()&&dto.getReason()!=null&&dto.getReason().equals("七天内无轨迹变化"))){
                                 //订阅物流回调
                                 //订阅物流回调
@@ -1946,7 +1865,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                                     }
                                     }
                                 }
                                 }
                                 expressService.subscribeEspress(order.getOrderCode(),order.getDeliveryCode(),order.getDeliverySn(),lastFourNumber);
                                 expressService.subscribeEspress(order.getOrderCode(),order.getDeliveryCode(),order.getDeliverySn(),lastFourNumber);
-                                logger.info("物流重新订阅:{}",order.getDeliverySn());
+                                log.info("物流重新订阅:{}",order.getDeliverySn());
                             }
                             }
 
 
                         }
                         }
@@ -1965,7 +1884,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
     }
 
 
     @Override
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public R syncExpress(Long id) {
     public R syncExpress(Long id) {
 
 
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(id);
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(id);
@@ -2058,7 +1977,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
     }
 
 
     @Override
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
     public R editTuiMoney(Long id) {
     public R editTuiMoney(Long id) {
         FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderByOrderId(id);
         FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderByOrderId(id);
         if(order.getStatus()==4){
         if(order.getStatus()==4){
@@ -2131,8 +2050,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
 
         for (StoreOrderExpressExportDTO dto : list)
         for (StoreOrderExpressExportDTO dto : list)
         {
         {
-//            try
-//            {
                 FsStoreOrder order=fsStoreOrderMapper.selectFsStoreOrderListByDeliverySnLOne(dto.getDeliverySn());
                 FsStoreOrder order=fsStoreOrderMapper.selectFsStoreOrderListByDeliverySnLOne(dto.getDeliverySn());
                 if (StringUtils.isNull(order))
                 if (StringUtils.isNull(order))
                 {
                 {
@@ -2168,13 +2085,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     }
                     }
                 }
                 }
             }
             }
-//            catch (Exception e)
-//            {
-//                String msg = "<br/>" + failureNum + "、快递单号 " + dto.getDeliverySn() + " 导入异常:";
-//                importErrorMsg.append(msg+e.getMessage());
-//                failureNum++;
-//            }
-//        }
         importMsg.insert(0, "导入完成!成功" + successNum + " 条,失败"+failureNum+"条。");
         importMsg.insert(0, "导入完成!成功" + successNum + " 条,失败"+failureNum+"条。");
         importMsg.append(importErrorMsg.toString());
         importMsg.append(importErrorMsg.toString());
         importMsg.append(importSuccessMsg.toString());
         importMsg.append(importSuccessMsg.toString());
@@ -2201,7 +2111,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
 
     @Override
     @Override
     public synchronized  R finishOrder(Long orderId) {
     public synchronized  R finishOrder(Long orderId) {
-        return finishStoreOrder(orderId);
+        IFsStoreOrderService iFsStoreOrderService = (IFsStoreOrderService) AopContext.currentProxy();
+        return iFsStoreOrderService.finishStoreOrder(orderId);
     }
     }
 
 
     @Override
     @Override
@@ -2262,26 +2173,16 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         }
         }
     }
     }
 
 
-    @Transactional
+    @Override
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public R finishStoreOrder(Long orderId){
     public R finishStoreOrder(Long orderId){
         FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderByOrderId(orderId);
         FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderByOrderId(orderId);
-        if(order.getStatus()==FsStoreOrderStatusEnum.STATUS_3.getValue()){
+        if(Objects.equals(order.getStatus(), FsStoreOrderStatusEnum.STATUS_3.getValue())){
             order.setFinishTime(new Date());
             order.setFinishTime(new Date());
             order.setStatus(4);
             order.setStatus(4);
             fsStoreOrderMapper.updateFsStoreOrder(order);
             fsStoreOrderMapper.updateFsStoreOrder(order);
             fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.FINISH_ORDER.getValue(),
             fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.FINISH_ORDER.getValue(),
                     FsStoreOrderLogEnum.FINISH_ORDER.getDesc());
                     FsStoreOrderLogEnum.FINISH_ORDER.getDesc());
-
-            //模板消息支付成功发布事件
-//            TemplateBean templateBean = TemplateBean.builder()
-//                    .orderId(order.getOrderId().toString())
-//                    .title(order.getOrderCode().toString())
-//                    .remark("您的订单已签收成功")
-//                    .time(order.getFinishTime())
-//                    .uid(order.getUserId())
-//                    .templateType(TemplateListenEnum.TYPE_3.getValue())
-//                    .build();
-//            publisher.publishEvent(new TemplateEvent(this, templateBean));
             return R.ok("操作成功");
             return R.ok("操作成功");
         }
         }
         else {
         else {
@@ -2306,7 +2207,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
     }
 
 
     @Override
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public void addIntegralAndShareByStoreOrder(FsStoreOrder fsStoreOrder) {
     public void addIntegralAndShareByStoreOrder(FsStoreOrder fsStoreOrder) {
         fsUserService.addUserIntegral(fsStoreOrder.getPayMoney(),fsStoreOrder.getUserId(),fsStoreOrder.getOrderId(),2);
         fsUserService.addUserIntegral(fsStoreOrder.getPayMoney(),fsStoreOrder.getUserId(),fsStoreOrder.getOrderId(),2);
         FsStoreOrder order = new FsStoreOrder();
         FsStoreOrder order = new FsStoreOrder();
@@ -2357,10 +2258,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                             sharePayment.setShareMoney(new BigDecimal(r.getBody().getTrxAmt()));
                             sharePayment.setShareMoney(new BigDecimal(r.getBody().getTrxAmt()));
                             fsStorePaymentMapper.updateFsStorePayment(sharePayment);
                             fsStorePaymentMapper.updateFsStorePayment(sharePayment);
                         }else {
                         }else {
-                            logger.info("分账失败:"+fsStorePayment);
+                            log.error("分账失败: {}",fsStorePayment);
                         }
                         }
                     }else {
                     }else {
-                        logger.info("分账请求失败:"+fsStorePayment+r.getRetMsg());
+                        log.error("分账请求失败: {}",fsStorePayment+r.getRetMsg());
                     }
                     }
 
 
             }
             }
@@ -2378,7 +2279,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             Long followDoctorId = fsStoreOrder.getFollowDoctorId();
             Long followDoctorId = fsStoreOrder.getFollowDoctorId();
             List<FsStoreOrder> orders = fsStoreOrderMapper.selectFsStoreOrderEndFollowByUserIdAndDocId(userId,followDoctorId);
             List<FsStoreOrder> orders = fsStoreOrderMapper.selectFsStoreOrderEndFollowByUserIdAndDocId(userId,followDoctorId);
 
 
-            if (orders==null||orders.size()==0){
+            if (CollectionUtils.isEmpty(orders)){
                 Long l = fsStoreOrderMapper.selectFsStoreOrderFollow(userId, followDoctorId);
                 Long l = fsStoreOrderMapper.selectFsStoreOrderFollow(userId, followDoctorId);
                 MsgDTO msgDTO=new MsgDTO();
                 MsgDTO msgDTO=new MsgDTO();
                 MsgCustomDTO customDTO=new MsgCustomDTO();
                 MsgCustomDTO customDTO=new MsgCustomDTO();
@@ -2396,10 +2297,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 msgs1.add(msg1);
                 msgs1.add(msg1);
                 msgDTO.setMsgBody(msgs1);
                 msgDTO.setMsgBody(msgs1);
                 MsgResponseDTO msgResponseDTO = imService.sendMsg(msgDTO);
                 MsgResponseDTO msgResponseDTO = imService.sendMsg(msgDTO);
-                logger.info("医生结束随访"+msgResponseDTO);
-
-
-
+                log.info("医生结束随访"+msgResponseDTO);
             }
             }
             FsStoreOrder o = new FsStoreOrder();
             FsStoreOrder o = new FsStoreOrder();
             o.setOrderId(fsStoreOrder.getOrderId());
             o.setOrderId(fsStoreOrder.getOrderId());
@@ -2432,8 +2330,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
             }
         }
         }
     }
     }
-    @Transactional
+
     @Override
     @Override
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public void endDeliveryOrder() {
     public void endDeliveryOrder() {
         List<FsStoreOrder> fsStoreOrders = fsStoreOrderMapper.selectEndDeliveryOrder();
         List<FsStoreOrder> fsStoreOrders = fsStoreOrderMapper.selectEndDeliveryOrder();
         for (FsStoreOrder fsStoreOrder : fsStoreOrders) {
         for (FsStoreOrder fsStoreOrder : fsStoreOrders) {
@@ -2465,7 +2364,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
     }
 
 
     @Override
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public R returnCost(Long orderId) {
     public R returnCost(Long orderId) {
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(orderId);
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(orderId);
         if (order!=null){
         if (order!=null){
@@ -2488,7 +2387,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                                     continue;
                                     continue;
                                 }
                                 }
                                 BigDecimal money = logs.getMoney().multiply(new BigDecimal(-1));
                                 BigDecimal money = logs.getMoney().multiply(new BigDecimal(-1));
-                                logger.info("退款佣金扣除:"+company.getCompanyId()+":"+money);
+                                log.info("退款佣金扣除:"+company.getCompanyId()+":"+money);
                                 company.setMoney(company.getMoney().subtract(logs.getMoney()));
                                 company.setMoney(company.getMoney().subtract(logs.getMoney()));
                                 companyMapper.updateCompany(company);
                                 companyMapper.updateCompany(company);
                                 CompanyMoneyLogs log=new CompanyMoneyLogs();
                                 CompanyMoneyLogs log=new CompanyMoneyLogs();
@@ -2505,7 +2404,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                         if (!doesNotContain6){
                         if (!doesNotContain6){
                             if(logs.getLogsType()==5){
                             if(logs.getLogsType()==5){
                                 BigDecimal money = logs.getMoney().multiply(new BigDecimal(-1));
                                 BigDecimal money = logs.getMoney().multiply(new BigDecimal(-1));
-                                logger.info("退款成本返还:"+company.getCompanyId()+":"+money);
+                                log.info("退款成本返还:"+company.getCompanyId()+":"+money);
                                 company.setMoney(company.getMoney().add(money));
                                 company.setMoney(company.getMoney().add(money));
                                 companyMapper.updateCompany(company);
                                 companyMapper.updateCompany(company);
                                 CompanyMoneyLogs log=new CompanyMoneyLogs();
                                 CompanyMoneyLogs log=new CompanyMoneyLogs();
@@ -2629,7 +2528,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
 
             if(order.getPayMoney().compareTo(new BigDecimal(0))==0){
             if(order.getPayMoney().compareTo(new BigDecimal(0))==0){
                 this.payConfirm(order.getOrderCode(),"","","",2);
                 this.payConfirm(order.getOrderCode(),"","","",2);
-                // tuiOrderUtil.TuiOrder(order.getOrderId());
                 return R.ok().put("data",param.getOrderId()).put("isPay","1");
                 return R.ok().put("data",param.getOrderId()).put("isPay","1");
             }
             }
             else {
             else {
@@ -2762,7 +2660,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         if(order==null){
         if(order==null){
             return R.error("订单不存在");
             return R.error("订单不存在");
         }
         }
-        if(order.getStatus()!= FsStoreOrderStatusEnum.STATUS_1.getValue()){
+        if(!Objects.equals(order.getStatus(), FsStoreOrderStatusEnum.STATUS_1.getValue())){
             return R.error("订单状态不正确");
             return R.error("订单状态不正确");
         }
         }
 
 
@@ -2770,7 +2668,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         if(user!=null&& StringUtils.isNotEmpty(user.getMaOpenId())){
         if(user!=null&& StringUtils.isNotEmpty(user.getMaOpenId())){
 
 
             if(order.getPayMoney().compareTo(new BigDecimal(0))==0){
             if(order.getPayMoney().compareTo(new BigDecimal(0))==0){
-                this.payConfirm(order.getOrderCode(),"","","",2);
+                IFsStoreOrderService fsStoreOrderService1 = (IFsStoreOrderService) AopContext.currentProxy();
+                fsStoreOrderService1.payConfirm(order.getOrderCode(),"","","",2);
                 return R.ok().put("data",param.getOrderId()).put("isPay","1");
                 return R.ok().put("data",param.getOrderId()).put("isPay","1");
             }
             }
             else {
             else {
@@ -2813,7 +2712,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                         o.setGoodsInfo("药品订单支付"); // 订单信息
                         o.setGoodsInfo("药品订单支付"); // 订单信息
                         o.setOrderType(2);
                         o.setOrderType(2);
                         o.setOrderId(order.getOrderId().toString());
                         o.setOrderId(order.getOrderId().toString());
-                        o.setPayType(Arrays.asList(PayType.支付宝条码支付.getCode()));
+                        o.setPayType(Arrays.asList(PayType.ALIPAY_BARCODE_PAYMENT.getCode()));
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                         FsStorePayment mt=new FsStorePayment();
                         FsStorePayment mt=new FsStorePayment();
                         mt.setPaymentId(storePayment.getPaymentId());
                         mt.setPaymentId(storePayment.getPaymentId());
@@ -2923,16 +2822,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             erpOrder.setVip_code(order.getUserId().toString());
             erpOrder.setVip_code(order.getUserId().toString());
         }
         }
         erpOrder.setPlatform_code(order.getOrderCode());
         erpOrder.setPlatform_code(order.getOrderCode());
-//        if(order.getStoreHouseCode()==null){
-//            erpOrder.setWarehouse_code("CQDS001");
-//        }
-//        else{
+
         erpOrder.setWarehouse_code(configUtil.getSysConfig().getErpWarehouseCode());
         erpOrder.setWarehouse_code(configUtil.getSysConfig().getErpWarehouseCode());
-//        }
-//        if(order.getStoreHouseCode().equals("YDSP001")){
-//            erpOrder.setShop_code("RunDayWuHan");
-//        }
-//        else{
         //判断是否开启erp
         //判断是否开启erp
         FsSysConfig sysConfig = configUtil.getSysConfig();
         FsSysConfig sysConfig = configUtil.getSysConfig();
         Integer erpOpen = sysConfig.getErpOpen();
         Integer erpOpen = sysConfig.getErpOpen();
@@ -2950,15 +2841,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
             }
         }
         }
 
 
-//        }
-//      erpOrder.setPost_fee(order.getTotalPostage().doubleValue());
         erpOrder.setSeller_memo(order.getRemark());
         erpOrder.setSeller_memo(order.getRemark());
-        // order.setCurrency_code("JCZD");
         List<ErpOrderPayment> payments=new ArrayList<>();
         List<ErpOrderPayment> payments=new ArrayList<>();
         ErpOrderPayment payment=new ErpOrderPayment();
         ErpOrderPayment payment=new ErpOrderPayment();
         payment.setPay_type_code("weixin");
         payment.setPay_type_code("weixin");
         payment.setPayment(order.getPayMoney().doubleValue());
         payment.setPayment(order.getPayMoney().doubleValue());
-        //payment.setPaytime(new Timestamp(System.currentTimeMillis()));
         if(order.getPayTime()!=null){
         if(order.getPayTime()!=null){
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String timeString = sdf.format(order.getPayTime());
             String timeString = sdf.format(order.getPayTime());
@@ -2994,18 +2881,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             Company company = companyService.selectCompanyById(order.getCompanyId());
             Company company = companyService.selectCompanyById(order.getCompanyId());
             if (order.getPayDelivery().compareTo(new BigDecimal(0)) == 0) {  //没有物流代收(全款订单)
             if (order.getPayDelivery().compareTo(new BigDecimal(0)) == 0) {  //没有物流代收(全款订单)
                 FsExpress express = new FsExpress();
                 FsExpress express = new FsExpress();
-                //express=expressService.selectFsExpressByOmsCode("SF.0235402855");
                 if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
                 if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
                     express=expressService.selectFsExpressByOmsCode("ZTPDD");
                     express=expressService.selectFsExpressByOmsCode("ZTPDD");
                 }
                 }
                 else{
                 else{
                     boolean found = containsAddress(order.getUserAddress());
                     boolean found = containsAddress(order.getUserAddress());
-                    if(found){
-                        express=expressService.selectFsExpressByOmsCode("SF.0235402855");
-                    }
-                    else{
-                        express=expressService.selectFsExpressByOmsCode("SF.0235402855");
-                    }
+                    express=expressService.selectFsExpressByOmsCode(expressOmsCode);
                 }
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
                 erpOrder.setExpress_code(express.getOmsCode());
                 order.setDeliveryName(express.getName());
                 order.setDeliveryName(express.getName());
@@ -3025,7 +2906,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     if(StringUtils.isNotEmpty(company.getOmsCode())){
                     if(StringUtils.isNotEmpty(company.getOmsCode())){
                         express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
                         express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
                     }else{
                     }else{
-                        express = expressService.selectFsExpressByOmsCode("SF.0235402855");
+                        express = expressService.selectFsExpressByOmsCode(expressOmsCode);
                     }
                     }
                 }
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
                 erpOrder.setExpress_code(express.getOmsCode());
@@ -3046,12 +2927,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     express=expressService.selectFsExpressByOmsCode("ZTPDD");
                     express=expressService.selectFsExpressByOmsCode("ZTPDD");
                 }else{
                 }else{
                     boolean found = containsAddress(order.getUserAddress());
                     boolean found = containsAddress(order.getUserAddress());
-                    if(found){
-                        express=expressService.selectFsExpressByOmsCode("SF.0235402855");
-                    }
-                    else{
-                        express=expressService.selectFsExpressByOmsCode("SF.0235402855");
-                    }
+                    express=expressService.selectFsExpressByOmsCode(expressOmsCode);
                 }
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
                 erpOrder.setExpress_code(express.getOmsCode());
                 order.setDeliveryName(express.getName());
                 order.setDeliveryName(express.getName());
@@ -3069,7 +2945,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     express=expressService.selectFsExpressByOmsCode("EMS.1");
                     express=expressService.selectFsExpressByOmsCode("EMS.1");
                 }
                 }
                 else {
                 else {
-                    express=expressService.selectFsExpressByOmsCode("SF.0235402855");
+                    express=expressService.selectFsExpressByOmsCode(expressOmsCode);
                 }
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
                 erpOrder.setExpress_code(express.getOmsCode());
                 order.setDeliveryName(express.getName());
                 order.setDeliveryName(express.getName());
@@ -3089,9 +2965,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 CompanyDept dept=companyDeptService.selectCompanyDeptById(companyUser.getDeptId());
                 CompanyDept dept=companyDeptService.selectCompanyDeptById(companyUser.getDeptId());
                 if(dept!=null){
                 if(dept!=null){
                     List<String> names=companyDeptService.selectCompanyDeptNamesByIds(dept.getAncestors());
                     List<String> names=companyDeptService.selectCompanyDeptNamesByIds(dept.getAncestors());
-                    if(names!=null&&names.size()>0){
+                    if(CollectionUtil.isNotEmpty(names)){
                         //写备注
                         //写备注
-                        erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+StringUtils.join(names, ",")+","+dept.getDeptName() );
+                        erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+ StringUtils.join(names, ",")+","+dept.getDeptName() );
                     }
                     }
                 }
                 }
                 erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+companyUser.getNickName());
                 erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+companyUser.getNickName());
@@ -3100,7 +2976,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
 
         if("WHSP001".equals(order.getStoreHouseCode())){
         if("WHSP001".equals(order.getStoreHouseCode())){
             //武汉不备注快递史
             //武汉不备注快递史
-            //erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+order.getDeliveryName());
         }
         }
         else{
         else{
             erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+ order.getDeliveryName());
             erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+ order.getDeliveryName());
@@ -3113,11 +2988,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         remarkDTO.setCouponMoney(order.getCouponPrice());
         remarkDTO.setCouponMoney(order.getCouponPrice());
         remarkDTO.setOrderId(order.getOrderCode());
         remarkDTO.setOrderId(order.getOrderCode());
         remarkDTO.setYdMoney(order.getPayPrice().subtract(order.getPayMoney().subtract(order.getPayDelivery())));
         remarkDTO.setYdMoney(order.getPayPrice().subtract(order.getPayMoney().subtract(order.getPayDelivery())));
-//        //套餐标题也传过去
-//        if (order.getOrderCreateType() == 2){
-//            JSONObject jsonStr = JSONObject.parseObject(order.getPackageJson());
-//            remarkDTO.setPackageTitle(jsonStr.getString("title"));
-//        }
 
 
         if(order.getPayTime()!=null){
         if(order.getPayTime()!=null){
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+ 5 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -233,7 +233,11 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
             "            <if test=\"description != null  and description != ''\"> and ec.description = #{description}</if>\n" +
             "            <if test=\"description != null  and description != ''\"> and ec.description = #{description}</if>\n" +
 
 
             "<if test ='tagIds!=null and tagIds.size()!=0 '> " +
             "<if test ='tagIds!=null and tagIds.size()!=0 '> " +
-            " and <foreach collection='tagIds'  item='item' index='index'  open='( 1=2 ' separator='' close=')'> or find_in_set(  #{item} , REGEXP_REPLACE ( ec.tag_ids, '[\"\\\\[\\\\]]', '' ) )  </foreach> " +
+            "    and (\n" +
+            "    <foreach collection='tagIds' item='item' index='index' separator=' AND '>\n" +
+            "        find_in_set(#{item}, REGEXP_REPLACE(ec.tag_ids, '[\"\\\\[\\\\]]', ''))\n" +
+            "    </foreach>\n" +
+            "    )"+
             "</if> " +
             "</if> " +
 
 
             "            <if test=\"remarkMobiles != null  and remarkMobiles != ''\"> and ec.remark_mobiles like concat( #{remarkMobiles}, '%')</if>\n" +
             "            <if test=\"remarkMobiles != null  and remarkMobiles != ''\"> and ec.remark_mobiles like concat( #{remarkMobiles}, '%')</if>\n" +

+ 2 - 2
fs-service/src/main/java/com/fs/tzBankPay/RequestController.java

@@ -43,7 +43,7 @@ public class RequestController {
         o.setPayCertType("22"); // 证件类型
         o.setPayCertType("22"); // 证件类型
         o.setPayCertNo("520321199801300897"); // 证件号码
         o.setPayCertNo("520321199801300897"); // 证件号码
 
 
-        List<String> payType = Arrays.asList(PayType.微信二维码支付.getCode(),PayType.支付宝条码支付.getCode());
+        List<String> payType = Arrays.asList(PayType.WECHAT_QR_CODE_PAYMENT.getCode(),PayType.ALIPAY_BARCODE_PAYMENT.getCode());
         //    o.setPayType(payType); // 支付方式
         //    o.setPayType(payType); // 支付方式
         //o.setClientIp("YourClientIp"); // 客户端 IP
         //o.setClientIp("YourClientIp"); // 客户端 IP
 //        o.setRiskClientImei("1582220"); // 手机 Imei 数字人民币支付必传
 //        o.setRiskClientImei("1582220"); // 手机 Imei 数字人民币支付必传
@@ -121,7 +121,7 @@ public class RequestController {
         o.setPayCertType("22"); // 证件类型
         o.setPayCertType("22"); // 证件类型
         o.setPayCertNo("520321199801300897"); // 证件号码
         o.setPayCertNo("520321199801300897"); // 证件号码
 
 
-        List<String> payType = Arrays.asList(PayType.微信二维码支付.getCode(),PayType.支付宝条码支付.getCode());
+        List<String> payType = Arrays.asList(PayType.WECHAT_QR_CODE_PAYMENT.getCode(),PayType.ALIPAY_BARCODE_PAYMENT.getCode());
     //    o.setPayType(payType); // 支付方式
     //    o.setPayType(payType); // 支付方式
         //o.setClientIp("YourClientIp"); // 客户端 IP
         //o.setClientIp("YourClientIp"); // 客户端 IP
 //        o.setRiskClientImei("1582220"); // 手机 Imei 数字人民币支付必传
 //        o.setRiskClientImei("1582220"); // 手机 Imei 数字人民币支付必传

+ 1 - 1
fs-service/src/main/java/com/fs/tzBankPay/TzBankService/TzBankServiceImpl/TzBankServiceImpl.java

@@ -47,7 +47,7 @@ public class TzBankServiceImpl implements TzBankService {
         // 增加一个小时
         // 增加一个小时
         Instant oneHourLater = currentTimestamp.plusSeconds(3600);
         Instant oneHourLater = currentTimestamp.plusSeconds(3600);
         order.setExpiredTime(oneHourLater.toEpochMilli()+""); // 订单过期时间
         order.setExpiredTime(oneHourLater.toEpochMilli()+""); // 订单过期时间
-        List<String> payType = Arrays.asList(PayType.微信小程序支付.getCode(),PayType.支付宝条码支付.getCode());
+        List<String> payType = Arrays.asList(PayType.WECHAT_MINI_PROGRAM_PAYMENT.getCode(),PayType.ALIPAY_BARCODE_PAYMENT.getCode());
         if(order.getPayType()==null){
         if(order.getPayType()==null){
             order.setPayType(payType);
             order.setPayType(payType);
         }
         }

+ 21 - 22
fs-service/src/main/java/com/fs/tzBankPay/doman/PayType.java

@@ -1,27 +1,27 @@
 package com.fs.tzBankPay.doman;
 package com.fs.tzBankPay.doman;
 
 
 public enum PayType {
 public enum PayType {
-    账户支付("01"),
-    B2C网关("02"),
-    B2B网关("03"),
-    快捷支付("04"),
-    企业白条支付("06"),
-    e购贷支付("08"),
-    数字人民币支付("09"),
-    微信小程序支付("14"),
-    微信公众号("15"),
-    微信二维码支付("16"),
-    支付宝条码支付("27"),
-    云闪付("44"),
-    台行及村镇卡支付("45"),
-    B2B网银("46"),
-    B2C网银("47"),
-    钱包支付("48"),
-    台行及村镇企业账户支付("49"),
-    供应链白条支付("51"),
-    银联支付("53"),
-    银联签约支付("55"),
-    代付("99");
+    ACCOUNT_PAYMENT("01"),
+    B2C_GATEWAY("02"),
+    B2B_GATEWAY("03"),
+    QUICK_PAYMENT("04"),
+    ENTERPRISE_CREDIT_PAYMENT("06"),
+    E_PURCHASE_LOAN_PAYMENT("08"),
+    DIGITAL_RMB_PAYMENT("09"),
+    WECHAT_MINI_PROGRAM_PAYMENT("14"),
+    WECHAT_PUBLIC_ACCOUNT("15"),
+    WECHAT_QR_CODE_PAYMENT("16"),
+    ALIPAY_BARCODE_PAYMENT("27"),
+    CLOUD_QUICK_PASS("44"),
+    TAIWAN_AND_VILLAGE_BANK_CARD_PAYMENT("45"),
+    B2B_ONLINE_BANKING("46"),
+    B2C_ONLINE_BANKING("47"),
+    WALLET_PAYMENT("48"),
+    TAIWAN_AND_VILLAGE_ENTERPRISE_ACCOUNT_PAYMENT("49"),
+    SUPPLY_CHAIN_CREDIT_PAYMENT("51"),
+    UNIONPAY_PAYMENT("53"),
+    UNIONPAY_CONTRACT_PAYMENT("55"),
+    PAYMENT_ON_BEHALF("99");
 
 
     private final String code;
     private final String code;
 
 
@@ -33,4 +33,3 @@ public enum PayType {
         return code;
         return code;
     }
     }
 }
 }
-

+ 2 - 0
fs-service/src/main/resources/application-common.yml

@@ -39,6 +39,8 @@ logging:
     com.fs: info
     com.fs: info
     org.springframework: warn
     org.springframework: warn
 
 
+express:
+  omsCode: "SF.0235402855"
 # Spring配置
 # Spring配置
 spring:
 spring:
   cache:
   cache:

+ 1 - 1
fs-service/src/main/resources/application-config-druid-sft.yml

@@ -77,7 +77,7 @@ cloud_host:
   company_name: 四福堂
   company_name: 四福堂
 #看课授权时显示的头像
 #看课授权时显示的头像
 headerImg:
 headerImg:
-  imgUrl: https://cos.his.cdwjyyh.com/fs/20250606/fdf4b41abc0741758ab6c2c70dafb5be.png
+  imgUrl: https://sft-1361917636.cos.ap-chongqing.myqcloud.com/sft/20250606/b08b1a6212f44f2998423c8c5d7712ee.png
 ipad:
 ipad:
   ipadUrl: http://ipad.cdwjyyh.com
   ipadUrl: http://ipad.cdwjyyh.com
 wx_miniapp_temp:
 wx_miniapp_temp:

+ 1 - 1
fs-service/src/main/resources/application-config-druid-yzt.yml

@@ -77,7 +77,7 @@ cloud_host:
   company_name: 易诊通
   company_name: 易诊通
 #看课授权时显示的头像
 #看课授权时显示的头像
 headerImg:
 headerImg:
-  imgUrl: https://cos.his.cdwjyyh.com/fs/20250522/28c3d8d5c42a4bcdb85292c2e5eb2a37.png
+  imgUrl: https://yztcourse-1325300895.cos.ap-guangzhou.myqcloud.com/yztcourse/20250523/e04871a98cc84be39a7f60c084698e21.jpg
 ipad:
 ipad:
   ipadUrl: http://ipad.cdwjyyh.com
   ipadUrl: http://ipad.cdwjyyh.com
 wx_miniapp_temp:
 wx_miniapp_temp:

+ 148 - 0
fs-service/src/main/resources/application-druid-sxjz-test.yml

@@ -0,0 +1,148 @@
+# 数据源配置
+spring:
+    profiles:
+        include: config-druid-sxjz,common
+    # redis 配置
+    redis:
+        host: 127.0.0.1
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        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://1.14.104.71:8123/sop_test?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://139.155.247.58:2345/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Sxdtcbm@#+!2025
+                # 从库数据源
+                slave:
+                    # 从数据源开关/默认关闭
+                    enabled: false
+                    url:
+                    username:
+                    password:
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 2000
+                # 配置获取连接等待超时的时间
+                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://139.155.247.58:2345/fs_his_sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Sxdtcbm@#+!2025
+                # 初始连接数
+                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: rmq-1243b25nj.rocketmq.gz.public.tencenttdmq.com:8080 # RocketMQ NameServer 地址
+    producer:
+        group: my-producer-group
+        access-key: ak1243b25nj17d4b2dc1a03 # 替换为实际的 accessKey
+        secret-key: sk08a7ea1f9f4b0237 # 替换为实际的 secretKey
+    consumer:
+        group: voice-group
+        access-key: ak1243b25nj17d4b2dc1a03 # 替换为实际的 accessKey
+        secret-key: sk08a7ea1f9f4b0237 # 替换为实际的 secretKey

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

@@ -413,7 +413,7 @@ public class InquiryOrderController extends  AppBaseController {
                     o.setGoodsInfo("问诊订单支付"); // 订单信息
                     o.setGoodsInfo("问诊订单支付"); // 订单信息
                     o.setOrderType(2);
                     o.setOrderType(2);
                     o.setOrderId(order.getOrderId().toString());
                     o.setOrderId(order.getOrderId().toString());
-                    o.setPayType(Arrays.asList(PayType.支付宝条码支付.getCode()));
+                    o.setPayType(Arrays.asList(PayType.ALIPAY_BARCODE_PAYMENT.getCode()));
                     TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                     TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
                     FsStorePayment mt=new FsStorePayment();
                     FsStorePayment mt=new FsStorePayment();
                     mt.setPaymentId(storePayment.getPaymentId());
                     mt.setPaymentId(storePayment.getPaymentId());

+ 0 - 3
fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -74,9 +74,6 @@ public class StoreOrderController extends  AppBaseController {
     @GetMapping("/getMyStoreOrderById")
     @GetMapping("/getMyStoreOrderById")
     public R getMyStoreOrderById(@RequestParam("orderId") Long orderId, HttpServletRequest request){
     public R getMyStoreOrderById(@RequestParam("orderId") Long orderId, HttpServletRequest request){
         FsStoreOrder order=orderService.selectFsStoreOrderByOrderId(orderId);
         FsStoreOrder order=orderService.selectFsStoreOrderByOrderId(orderId);
-//        if(!order.getUserId().equals(Long.parseLong(getUserId()))){
-//            return R.error("非法操作");
-//        }
         order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
         order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
         order.setUserAddress(ParseUtils.parseIdCard(order.getUserAddress()));
         order.setUserAddress(ParseUtils.parseIdCard(order.getUserAddress()));
         List<FsStoreOrderItemListUVO> list=orderItemService.selectFsStoreOrderItemListUVOByOrderId(orderId);
         List<FsStoreOrderItemListUVO> list=orderItemService.selectFsStoreOrderItemListUVOByOrderId(orderId);