Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/saas-api' into saas-api

xgb 1 nedēļu atpakaļ
vecāks
revīzija
f58393d009
100 mainītis faili ar 6646 papildinājumiem un 6122 dzēšanām
  1. 313 0
      fs-admin-saas/src/main/java/com/fs/company/controller/company/CompanyTcmReportController.java
  2. 211 0
      fs-admin-saas/src/main/java/com/fs/course/controller/FsCourseWatchLogController.java
  3. 50 54
      fs-admin-saas/src/main/java/com/fs/course/controller/FsUserCourseCategoryController.java
  4. 88 90
      fs-admin-saas/src/main/java/com/fs/course/controller/FsVideoResourceController.java
  5. 3 0
      fs-admin-saas/src/main/java/com/fs/crm/controller/CrmCustomerController.java
  6. 2 1
      fs-admin-saas/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java
  7. 215 222
      fs-admin-saas/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java
  8. 173 0
      fs-admin-saas/src/main/java/com/fs/stats/SalesWatchStatisController.java
  9. 8 4
      fs-admin-saas/src/main/java/com/fs/tenant/TenantInfoController.java
  10. 14 4
      fs-admin/src/main/java/com/fs/admin/controller/CompanyAdminController.java
  11. 8 4
      fs-admin/src/main/java/com/fs/admin/controller/tenant/TenantInfoController.java
  12. 0 16
      fs-agent/src/main/java/com/fs/FSAgentApplication.java
  13. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdAccountController.java
  14. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdDomainController.java
  15. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdDyAccountController.java
  16. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdDyApiController.java
  17. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdHtmlClickLogController.java
  18. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdHtmlTemplateController.java
  19. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdIqiyiAccountController.java
  20. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdSiteController.java
  21. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdUploadLogController.java
  22. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/AdYoukuAccountController.java
  23. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/BdAccountController.java
  24. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/MockAppController.java
  25. 0 2
      fs-agent/src/main/java/com/fs/ad/controller/StatisticsController.java
  26. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminAdController.java
  27. 273 275
      fs-agent/src/main/java/com/fs/admin/controller/AdminAiWorkflowBridgeController.java
  28. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminCommissionRecordController.java
  29. 452 454
      fs-agent/src/main/java/com/fs/admin/controller/AdminCompanyBridgeController.java
  30. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminConsumeRecordController.java
  31. 104 106
      fs-agent/src/main/java/com/fs/admin/controller/AdminCourseBridgeController.java
  32. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminCrmController.java
  33. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminHisBridgeController.java
  34. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminLiveBridgeController.java
  35. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminLiveVideoController.java
  36. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminLobsterBridgeController.java
  37. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminMiscBridge2Controller.java
  38. 680 682
      fs-agent/src/main/java/com/fs/admin/controller/AdminMissingApisBridgeController.java
  39. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminModuleUsageController.java
  40. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminProxyController.java
  41. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminRechargeRecordController.java
  42. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminServiceCostController.java
  43. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminSopController.java
  44. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminStatisticsController.java
  45. 333 335
      fs-agent/src/main/java/com/fs/admin/controller/AdminStoreMiscController.java
  46. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminStoreOrderAdminController.java
  47. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminStoreOrderController.java
  48. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminStoreProductController.java
  49. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminVideoResourceController.java
  50. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AdminWithdrawalController.java
  51. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AiChatQualityController.java
  52. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/AiProviderAdminController.java
  53. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/ArticleAdminController.java
  54. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/CallRecordAdminController.java
  55. 14 6
      fs-agent/src/main/java/com/fs/admin/controller/CompanyAdminController.java
  56. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/CompanyUserAdminController.java
  57. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/CourseAdminController.java
  58. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/DbConfigController.java
  59. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/LiveAdminController.java
  60. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/LobsterAdminController.java
  61. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/ProductAdminController.java
  62. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/ProxyOperLogController.java
  63. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/QwExternalContactAdminController.java
  64. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/store/FsAdvScrmBridgeController.java
  65. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsMenuScrmBridgeController.java
  66. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsPrescribeDrugScrmBridgeController.java
  67. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsPrescribeScrmBridgeController.java
  68. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsShippingTemplatesFreeScrmBridgeController.java
  69. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsShippingTemplatesRegionScrmBridgeController.java
  70. 91 93
      fs-agent/src/main/java/com/fs/admin/controller/store/FsShippingTemplatesScrmBridgeController.java
  71. 91 93
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreActivityScrmBridgeController.java
  72. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreAfterSalesItemScrmBridgeController.java
  73. 233 235
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreAfterSalesScrmBridgeController.java
  74. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreAfterSalesStatusScrmBridgeController.java
  75. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCartScrmBridgeController.java
  76. 81 83
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponIssueScrmBridgeController.java
  77. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponIssueUserScrmBridgeController.java
  78. 129 131
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponScrmBridgeController.java
  79. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponUserScrmBridgeController.java
  80. 94 96
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderAuditScrmBridgeController.java
  81. 88 90
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderItemScrmBridgeController.java
  82. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderNoticeScrmBridgeController.java
  83. 130 132
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderOfflineScrmBridgeController.java
  84. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderPromotionScrmBridgeController.java
  85. 979 981
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderScrmBridgeController.java
  86. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderStatusScrmBridgeController.java
  87. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductAttrScrmBridgeController.java
  88. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductAttrValueScrmBridgeController.java
  89. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductCategoryScrmBridgeController.java
  90. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductDetailsScrmBridgeController.java
  91. 115 117
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductGroupScrmBridgeController.java
  92. 59 61
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductRelationScrmBridgeController.java
  93. 93 95
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductReplyScrmBridgeController.java
  94. 101 103
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductRuleScrmBridgeController.java
  95. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductTemplateScrmBridgeController.java
  96. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreRecommendScrmBridgeController.java
  97. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreShopStaffScrmBridgeController.java
  98. 80 82
      fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreVisitScrmBridgeController.java
  99. 0 2
      fs-agent/src/main/java/com/fs/admin/controller/store/FsUserPromoterApplyScrmBridgeController.java
  100. 61 63
      fs-agent/src/main/java/com/fs/admin/controller/store/SysOperlogScrmBridgeController.java

+ 313 - 0
fs-admin-saas/src/main/java/com/fs/company/controller/company/CompanyTcmReportController.java

@@ -0,0 +1,313 @@
+package com.fs.company.controller.company;
+
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.model.LoginUser;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.ServletUtils;
+import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.domain.CompanyTcmReport;
+import com.fs.company.domain.CompanyTcmSchedule;
+import com.fs.company.param.CompanyTcmReportListQueryParam;
+import com.fs.company.service.ICompanyTcmReportService;
+import com.fs.company.service.ICompanyTcmScheduleService;
+import com.fs.company.vo.CompanyReportExportVO;
+import com.fs.company.vo.CompanyTcmReportListVO;
+import com.fs.company.vo.CompanyTcmStatisticsExportVO;
+import com.fs.framework.web.service.TokenService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
+
+@RestController
+@RequestMapping("/company/tcmScheduleReport")
+public class CompanyTcmReportController extends BaseController
+{
+    @Autowired
+    private ICompanyTcmReportService companyTcmReportService;
+
+    @Autowired
+    private ICompanyTcmScheduleService companyTcmScheduleService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(CompanyTcmReportListQueryParam param)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!loginUser.getUser().isAdmin()){
+            param.setCompanyUserId(loginUser.getUser().getUserId());
+        }
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getDateRange())){
+            param.setStartTimeList(param.getDateRange().split("--"));
+        }
+        List<CompanyTcmReportListVO> list = companyTcmReportService.selectCompanyTcmReportListVOList(param);
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:export')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(CompanyTcmReportListQueryParam param)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!loginUser.getUser().isAdmin()){
+            param.setCompanyUserId(loginUser.getUser().getUserId());
+        }
+        List<CompanyReportExportVO> list = companyTcmReportService.selectCompanyReportExportVOList(param);
+        for(CompanyReportExportVO item:list){
+            item.setRegisterRate(String.format("%.3f", item.getRegisterNum().doubleValue()/item.getTotalNum().doubleValue()*100.0).toString()+"%");
+            item.setOnlineRate(String.format("%.3f", item.getOnlineNum().doubleValue()/item.getRegisterNum().doubleValue()*100.0).toString()+"%");
+            item.setFinishRate(String.format("%.3f", item.getFinishNum().doubleValue()/item.getRegisterNum().doubleValue()*100.0).toString()+"%");
+            if(item.getTargetMoney()!=null){
+                item.setTargetRate(String.format("%.3f", item.getTotalMoney().doubleValue()/item.getTargetMoney().doubleValue()*100.0).toString()+"%");
+            }else{
+                item.setTargetRate("0%");
+            }
+            if(item.getRound1Order()!=null){
+                item.setRound1Rate(getRoundRate(item.getRound1Order(),item.getTotalNum()));
+                item.setRound1Unit(new BigDecimal(getRoundUnit(item.getRound1Money(),item.getRound1Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound2Order()!=null){
+                item.setRound2Rate(getRoundRate(item.getRound2Order(),item.getTotalNum()));
+                item.setRound2Unit(new BigDecimal(getRoundUnit(item.getRound2Money(),item.getRound2Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound3Order()!=null){
+                item.setRound3Rate(getRoundRate(item.getRound3Order(),item.getTotalNum()));
+                item.setRound3Unit(new BigDecimal(getRoundUnit(item.getRound3Money(),item.getRound3Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound4Order()!=null){
+                item.setRound4Rate(getRoundRate(item.getRound4Order(),item.getTotalNum()));
+                item.setRound4Unit(new BigDecimal(getRoundUnit(item.getRound4Money(),item.getRound4Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound5Order()!=null){
+                item.setRound5Rate(getRoundRate(item.getRound5Order(),item.getTotalNum()));
+                item.setRound5Unit(new BigDecimal(getRoundUnit(item.getRound5Money(),item.getRound5Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound6Order()!=null){
+                item.setRound6Rate(getRoundRate(item.getRound6Order(),item.getTotalNum()));
+                item.setRound6Unit(new BigDecimal(getRoundUnit(item.getRound6Money(),item.getRound6Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound7Order()!=null) {
+                item.setRound7Rate(getRoundRate(item.getRound7Order(), item.getTotalNum()));
+                item.setRound7Unit(new BigDecimal(getRoundUnit(item.getRound7Money(), item.getRound7Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound8Order() != null) {
+                item.setRound8Rate(getRoundRate(item.getRound8Order(), item.getTotalNum()));
+                item.setRound8Unit(new BigDecimal(getRoundUnit(item.getRound8Money(), item.getRound8Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound9Order() != null) {
+                item.setRound9Rate(getRoundRate(item.getRound9Order(), item.getTotalNum()));
+                item.setRound9Unit(new BigDecimal(getRoundUnit(item.getRound9Money(), item.getRound9Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+        }
+        ExcelUtil<CompanyReportExportVO> util = new ExcelUtil<CompanyReportExportVO>(CompanyReportExportVO.class);
+        return util.exportExcel(list, "statisticsScheduleReport");
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:statistics')")
+    @GetMapping("/statisticsList")
+    public TableDataInfo statisticsList(CompanyTcmReportListQueryParam param)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        if(param.getDeptId()!=null){
+            param.setDeptIdStr(param.getDeptId().toString());
+        }
+        List<CompanyTcmReportListVO> list = companyTcmReportService.selectCompanyTcmReportStatisticsVOList(param);
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:export')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.EXPORT)
+    @GetMapping("/exportCompany")
+    public AjaxResult exportCompany(CompanyTcmReportListQueryParam param)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        List<CompanyTcmStatisticsExportVO> list = companyTcmReportService.selectCompanyTcmStatisticsExportVOList(param);
+        for(CompanyTcmStatisticsExportVO item:list){
+            if(item.getTotalNum()!=null && item.getTotalNum().doubleValue()>0){
+                item.setRegisterRate(String.format("%.3f",getLongRate(item.getRegisterNum().doubleValue(),item.getTotalNum())*100.0).toString()+"%");
+                item.setOnlineRate(String.format("%.3f",getLongRate(item.getOnlineNum().doubleValue(),item.getTotalNum())*100.0).toString()+"%");
+                item.setFinishRate(String.format("%.3f", getLongRate(item.getFinishNum().doubleValue(),item.getTotalNum())*100.0).toString()+"%");
+                item.setRLine(new BigDecimal(getLongRate(item.getTotalMoney().doubleValue(),item.getTotalNum())*1.0).setScale(3, RoundingMode.HALF_UP));
+
+            }else{
+                item.setRegisterRate("0%");
+                item.setOnlineRate("0%");
+                item.setFinishRate("0%");
+                item.setRLine(new BigDecimal(0.0));
+            }
+            if(item.getCuCount()!=null && item.getCuCount().doubleValue()>0){
+                item.setPersonMoney(String.format("%.3f",getLongRate(item.getTotalMoney().doubleValue(),Long.valueOf(item.getCuCount()))*1.0).toString());
+            }else{
+                item.setCuCount(0);
+            }
+            if(item.getTargetMoney()!=null && item.getTargetMoney().doubleValue()>0){
+                item.setTargetRate(String.format("%.3f", item.getTotalMoney().doubleValue()/item.getTargetMoney().doubleValue()*100.0).toString()+"%");
+            }else{
+                item.setTargetRate("0%");
+            }
+            if(item.getMoney()!=null && item.getMoney().doubleValue()>0){
+                item.setZroi(new BigDecimal(item.getTotalMoney().doubleValue()/item.getMoney().doubleValue()*1.0).setScale(3, RoundingMode.HALF_UP));
+            }else{
+                item.setZroi(new BigDecimal(0.0));
+            }
+            if(item.getRound1Order()!=null){
+                item.setRound1Rate(getRoundRate(item.getRound1Order(),item.getTotalNum()));
+                item.setRound1Unit(new BigDecimal(getRoundUnit(item.getRound1Money(),item.getRound1Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound2Order()!=null){
+                item.setRound2Rate(getRoundRate(item.getRound2Order(),item.getTotalNum()));
+                item.setRound2Unit(new BigDecimal(getRoundUnit(item.getRound2Money(),item.getRound2Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound3Order()!=null){
+                item.setRound3Rate(getRoundRate(item.getRound3Order(),item.getTotalNum()));
+                item.setRound3Unit(new BigDecimal(getRoundUnit(item.getRound3Money(),item.getRound3Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound4Order()!=null){
+                item.setRound4Rate(getRoundRate(item.getRound4Order(),item.getTotalNum()));
+                item.setRound4Unit(new BigDecimal(getRoundUnit(item.getRound4Money(),item.getRound4Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound5Order()!=null){
+                item.setRound5Rate(getRoundRate(item.getRound5Order(),item.getTotalNum()));
+                item.setRound5Unit(new BigDecimal(getRoundUnit(item.getRound5Money(),item.getRound5Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound6Order()!=null){
+                item.setRound6Rate(getRoundRate(item.getRound6Order(),item.getTotalNum()));
+                item.setRound6Unit(new BigDecimal(getRoundUnit(item.getRound6Money(),item.getRound6Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound7Order()!=null) {
+                item.setRound7Rate(getRoundRate(item.getRound7Order(), item.getTotalNum()));
+                item.setRound7Unit(new BigDecimal(getRoundUnit(item.getRound7Money(), item.getRound7Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound8Order() != null) {
+                item.setRound8Rate(getRoundRate(item.getRound8Order(), item.getTotalNum()));
+                item.setRound8Unit(new BigDecimal(getRoundUnit(item.getRound8Money(), item.getRound8Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound9Order() != null) {
+                item.setRound9Rate(getRoundRate(item.getRound9Order(), item.getTotalNum()));
+                item.setRound9Unit(new BigDecimal(getRoundUnit(item.getRound9Money(), item.getRound9Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+
+        }
+        ExcelUtil<CompanyTcmStatisticsExportVO> util = new ExcelUtil<CompanyTcmStatisticsExportVO>(CompanyTcmStatisticsExportVO.class);
+        return util.exportExcel(list, "statisticsScheduleReport");
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(companyTcmReportService.selectCompanyTcmReportById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:add')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CompanyTcmReport companyTcmReport)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if (companyTcmReport.getCompanyId() == null && loginUser.getUser() != null && loginUser.getUser().getCompanyId() != null) { companyTcmReport.setCompanyId(loginUser.getUser().getCompanyId()); };
+        companyTcmReport.setCompanyUserId(loginUser.getUser().getUserId());
+        int isOk=companyTcmReportService.insertCompanyTcmReport(companyTcmReport);
+        if(isOk>0){
+            return AjaxResult.success(companyTcmReport);
+        }else{
+            return  AjaxResult.error();
+        }
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:edit')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CompanyTcmReport companyTcmReport)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if (companyTcmReport.getCompanyId() == null && loginUser.getUser() != null && loginUser.getUser().getCompanyId() != null) { companyTcmReport.setCompanyId(loginUser.getUser().getCompanyId()); }
+        companyTcmReport.setUpdateUserId(loginUser.getUser().getUserId());
+        return toAjax(companyTcmReportService.updateCompanyTcmReport(companyTcmReport));
+    }
+
+    @GetMapping("/getScheduleList")
+    public TableDataInfo getScheduleList()
+    {
+        startPage();
+        List<CompanyTcmSchedule> list = companyTcmScheduleService.selectUseableScheduleList();
+        return getDataTable(list);
+    }
+
+    @GetMapping("/getAllScheduleList")
+    public TableDataInfo getAllScheduleList()
+    {
+        startPage();
+        List<CompanyTcmSchedule> list = companyTcmScheduleService.selectCompanyTcmScheduleList(new CompanyTcmSchedule());
+        return getDataTable(list);
+    }
+
+    @GetMapping("/getTcmScheduleList")
+    public R getCompanyTcmScheduleList()
+    {
+        CompanyTcmSchedule map = new CompanyTcmSchedule();
+        map.setStatus(1L);
+        List<CompanyTcmSchedule> list = companyTcmScheduleService.selectCompanyTcmScheduleList(map);
+        return R.ok().put("data",list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:remove')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(companyTcmReportService.deleteCompanyTcmReportByIds(ids));
+    }
+
+    public String getRoundRate(Long roundOrder,Long totalNum){
+        String sorStr="0%";
+        if(totalNum.longValue()>0){
+            sorStr=String.format("%.3f", roundOrder.doubleValue()/totalNum*100.0).toString()+"%";
+        }
+        return sorStr;
+    }
+
+    public double getRoundUnit(BigDecimal roundMoney,Long roundOrder){
+        double sorNum=0;
+        if(roundOrder.longValue()>0){
+            sorNum=roundMoney.doubleValue()/roundOrder*1.0;
+        }
+        return sorNum;
+    }
+
+    public double getLongRate(double num1,Long num2){
+        double sorNum=0;
+        if(num2.longValue()>0){
+            sorNum=num1/num2*1.0;
+        }
+        return sorNum;
+    }
+
+}

+ 211 - 0
fs-admin-saas/src/main/java/com/fs/course/controller/FsCourseWatchLogController.java

@@ -0,0 +1,211 @@
+package com.fs.course.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+import com.fs.common.core.domain.R;
+import com.fs.common.exception.CustomException;
+import com.fs.course.param.FsCourseOverParam;
+import com.fs.course.param.FsCourseWatchLogListParam;
+import com.fs.course.param.FsCourseWatchLogStatisticsListParam;
+import com.fs.course.service.IFsUserCoursePeriodDaysService;
+import com.fs.course.service.IFsUserCoursePeriodService;
+import com.fs.course.vo.FsCourseOverVO;
+import com.fs.course.vo.FsCourseWatchLogListVO;
+import com.fs.course.vo.FsCourseWatchLogStatisticsListVO;
+import com.fs.qw.param.QwWatchLogStatisticsListParam;
+import com.fs.qw.service.IQwWatchLogService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.course.domain.FsCourseWatchLog;
+import com.fs.course.service.IFsCourseWatchLogService;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 短链课程看课记录Controller
+ *
+ * @author fs
+ * @date 2024-10-24
+ */
+@RestController
+@RequestMapping("/course/courseWatchLog")
+public class FsCourseWatchLogController extends BaseController
+{
+    @Autowired
+    private IFsCourseWatchLogService fsCourseWatchLogService;
+
+    @Autowired
+    private IQwWatchLogService qwWatchLogService;
+    @Autowired
+    private IFsUserCoursePeriodDaysService userCoursePeriodDaysService;
+    @Autowired
+    private IFsUserCoursePeriodService userCoursePeriodService;
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:list')")
+    @PostMapping("/list")
+    public R list(@RequestBody FsCourseWatchLogListParam param)
+    {
+        if (param.getSendType()==1&& param.getPeriodETime()!=null && param.getPeriodSTime()!=null) {
+            List<Long> periodIds = userCoursePeriodDaysService.selectFsUserCoursePeriodDaysByTime(param.getPeriodSTime(), param.getPeriodETime());
+
+            if (!periodIds.isEmpty()){
+                List<Long> longs = userCoursePeriodService.selectFsUserCoursePeriodListByPeriodId(periodIds, param.getCompanyId());
+                if (!longs.isEmpty()){
+                    param.setPeriodIds(longs);
+                }else {
+                    return R.ok().put("data", new PageInfo<>(new ArrayList<>()));
+                }
+            }else {
+                return R.ok().put("data", new PageInfo<>(new ArrayList<>()));
+            }
+        }
+
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+        return R.ok().put("data", new PageInfo<>(fsCourseWatchLogService.selectFsCourseWatchLogListVO(param)));
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:pageList')")
+    @PostMapping("/pageList")
+    public R pageList(@RequestBody FsCourseWatchLogListParam param)
+    {
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+        List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
+        return R.ok().put("data", new PageInfo<>(list));
+    }
+
+    @GetMapping("/qwWatchLogAllStatisticsList")
+    public TableDataInfo qwWatchLogAllStatisticsList(QwWatchLogStatisticsListParam param)
+    {
+        logger.info("会员课程数据汇总 参数: {}", param);
+
+        if (param.getCompanyId() == null && (param.getUserIds() == null || param.getUserIds().isEmpty())) {
+            throw new CustomException("必须选择公司!");
+        }
+        if (param.getSTime() == null || param.getETime() == null) {
+            return getDataTable(new ArrayList<>());
+        }
+        return qwWatchLogService.selectQwWatchLogAllStatisticsListVONew(param);
+    }
+
+    @GetMapping("/qwWatchLogStatisticsList")
+    public TableDataInfo qwWatchLogStatisticsList(QwWatchLogStatisticsListParam param)
+    {
+        if (param.getPageNum() == null) {
+            param.setPageNum(1L);
+        }
+        if (param.getPageSize() == null) {
+            param.setPageSize(10L);
+        }
+        if (param.getSTime() == null || param.getETime() == null) {
+            return getDataTable(new ArrayList<>());
+        }
+//        if (param.getCompanyId() == null) {
+//            throw new CustomException("必须选择公司!");
+//        }
+        return qwWatchLogService.selectQwWatchLogStatisticsListVONew(param);
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:statisticsList')")
+    @GetMapping("/statisticsList")
+    public TableDataInfo statisticsList(FsCourseWatchLogStatisticsListParam param)
+    {
+//        if (param.getCompanyId() == null) {
+//            if (param.getUserId() == null) {
+//                throw new CustomException("查看公司或者用户必填!");
+//            }
+//        }
+        if (param.getSTime() == null || param.getETime() == null) {
+            throw new CustomException("必须选择开始时间和结束时间!");
+        }
+        startPage();
+        List<FsCourseWatchLogStatisticsListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogStatisticsListVONew(param);
+
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:statisticsExport')")
+    @Log(title = "会员看课统计导出", businessType = BusinessType.EXPORT)
+    @PostMapping("/statisticsExport")
+    public AjaxResult statisticsExport(@RequestBody FsCourseWatchLogStatisticsListParam param)
+    {
+//        if (param.getCompanyId() == null) {
+//            if (param.getUserId() == null) {
+//                throw new CustomException("查看公司或者用户必填!");
+//            }
+//        }
+        if (param.getSTime() == null || param.getETime() == null) {
+            throw new CustomException("必须选择开始时间和结束时间!");
+        }
+
+        List<FsCourseWatchLogStatisticsListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogStatisticsListVONew(param);
+
+        ExcelUtil<FsCourseWatchLogStatisticsListVO> util = new ExcelUtil<FsCourseWatchLogStatisticsListVO>(FsCourseWatchLogStatisticsListVO.class);
+        return util.exportExcel(list, "会员看课统计");
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:export')")
+    @Log(title = "短链课程看课记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public AjaxResult export(@RequestBody FsCourseWatchLogListParam param)
+    {
+        List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
+        ExcelUtil<FsCourseWatchLogListVO> util = new ExcelUtil<FsCourseWatchLogListVO>(FsCourseWatchLogListVO.class);
+        return util.exportExcel(list, "短链课程看课记录数据");
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:query')")
+    @GetMapping(value = "/{logId}")
+    public AjaxResult getInfo(@PathVariable("logId") Long logId)
+    {
+        return AjaxResult.success(fsCourseWatchLogService.selectFsCourseWatchLogByLogId(logId));
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:add')")
+    @Log(title = "短链课程看课记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody FsCourseWatchLog fsCourseWatchLog)
+    {
+        return toAjax(fsCourseWatchLogService.insertFsCourseWatchLog(fsCourseWatchLog));
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:edit')")
+    @Log(title = "短链课程看课记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody FsCourseWatchLog fsCourseWatchLog)
+    {
+        return toAjax(fsCourseWatchLogService.updateFsCourseWatchLog(fsCourseWatchLog));
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:remove')")
+    @Log(title = "短链课程看课记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{logIds}")
+    public AjaxResult remove(@PathVariable Long[] logIds)
+    {
+        return toAjax(fsCourseWatchLogService.deleteFsCourseWatchLogByLogIds(logIds));
+    }
+
+    @GetMapping("/watchLogStatistics")
+    public TableDataInfo watchLogStatistics(FsCourseOverParam param)
+    {
+        startPage();
+        if (param.getSTime() == null || param.getETime() == null) {
+            return getDataTable(new ArrayList<>());
+        }
+        List<FsCourseOverVO> list = fsCourseWatchLogService.selectFsCourseWatchLogOverStatisticsListVO(param);
+        return getDataTable(list);
+    }
+}

+ 50 - 54
fs-admin-saas/src/main/java/com/fs/course/controller/FsUserCourseCategoryController.java

@@ -3,6 +3,7 @@ package com.fs.course.controller;
 import java.util.List;
 
 import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.utils.ServletUtils;
 import com.fs.course.dto.FsCourseCategoryImportDTO;
 import com.fs.framework.web.service.TokenService;
@@ -61,16 +62,15 @@ public class FsUserCourseCategoryController extends BaseController
     @GetMapping("/list")
     public AjaxResult list(FsUserCourseCategory fsUserCourseCategory)
     {
-//        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        Long userId = loginUser.getCompanyUser().getUserId();
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
-//        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
-//            fsUserCourseCategory.setUserId(userId);
-//        }
-//        List<FsUserCourseCategory> list = fsUserCourseCategoryService.selectFsUserCourseCategoryList(fsUserCourseCategory);
-//        return AjaxResult.success(list);
-        throw new RuntimeException("未实现");
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUserId();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
+            fsUserCourseCategory.setUserId(userId);
+        }
+        List<FsUserCourseCategory> list = fsUserCourseCategoryService.selectFsUserCourseCategoryList(fsUserCourseCategory);
+        return AjaxResult.success(list);
     }
 
     /**
@@ -81,17 +81,16 @@ public class FsUserCourseCategoryController extends BaseController
     @GetMapping("/export")
     public AjaxResult export(FsUserCourseCategory fsUserCourseCategory)
     {
-//        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        Long userId = loginUser.getCompanyUser().getUserId();
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
-//        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
-//            fsUserCourseCategory.setUserId(userId);
-//        }
-//        List<FsUserCourseCategory> list = fsUserCourseCategoryService.selectFsUserCourseCategoryList(fsUserCourseCategory);
-//        ExcelUtil<FsUserCourseCategory> util = new ExcelUtil<FsUserCourseCategory>(FsUserCourseCategory.class);
-//        return util.exportExcel(list, "课堂分类数据");
-        throw new RuntimeException("未实现");
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUserId();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
+            fsUserCourseCategory.setUserId(userId);
+        }
+        List<FsUserCourseCategory> list = fsUserCourseCategoryService.selectFsUserCourseCategoryList(fsUserCourseCategory);
+        ExcelUtil<FsUserCourseCategory> util = new ExcelUtil<FsUserCourseCategory>(FsUserCourseCategory.class);
+        return util.exportExcel(list, "课堂分类数据");
     }
 
     /**
@@ -112,15 +111,14 @@ public class FsUserCourseCategoryController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody FsUserCourseCategory fsUserCourseCategory)
     {
-//        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        Long userId = loginUser.getCompanyUser().getUserId();
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
-//        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
-//            fsUserCourseCategory.setUserId(userId);
-//        }
-//        return toAjax(fsUserCourseCategoryService.insertFsUserCourseCategory(fsUserCourseCategory));
-        throw new RuntimeException("未实现");
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUserId();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
+            fsUserCourseCategory.setUserId(userId);
+        }
+        return toAjax(fsUserCourseCategoryService.insertFsUserCourseCategory(fsUserCourseCategory));
     }
 
     /**
@@ -159,17 +157,16 @@ public class FsUserCourseCategoryController extends BaseController
     @GetMapping("/getCatePidList")
     public R getCatePidList()
     {
-//        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        Long userId = loginUser.getCompanyUser().getUserId();
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
-//        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
-//            List<OptionsVO> list = fsUserCourseCategoryService.selectFsUserCourseCategoryPidList(userId);
-//            return R.ok().put("data", list);
-//        }
-//        List<OptionsVO> list = fsUserCourseCategoryService.selectFsUserCourseCategoryPidList();
-//        return R.ok().put("data", list);
-        throw new RuntimeException("未实现");
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUserId();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+        if (ObjectUtil.isNotEmpty(config.getIsBound())&&config.getIsBound()){
+            List<OptionsVO> list = fsUserCourseCategoryService.selectFsUserCourseCategoryPidList(userId);
+            return R.ok().put("data", list);
+        }
+        List<OptionsVO> list = fsUserCourseCategoryService.selectFsUserCourseCategoryPidList();
+        return R.ok().put("data", list);
     }
 
     //获取总分类下子分类
@@ -191,19 +188,18 @@ public class FsUserCourseCategoryController extends BaseController
     @PreAuthorize("@ss.hasPermi('course:userCourseCategory:importData')")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception {
-//        ExcelUtil<FsCourseCategoryImportDTO> util = new ExcelUtil<>(FsCourseCategoryImportDTO.class);
-//        List<FsCourseCategoryImportDTO> list = util.importExcel(file.getInputStream());
-//
-//        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        Long userId = loginUser.getCompanyUser().getUserId();
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
-//        if (ObjectUtil.isEmpty(config.getIsBound()) || !config.getIsBound()){
-//            userId = null;
-//        }
-//
-//        return AjaxResult.success(fsUserCourseCategoryService.importData(list, userId));
-        throw new RuntimeException("未实现");
+        ExcelUtil<FsCourseCategoryImportDTO> util = new ExcelUtil<>(FsCourseCategoryImportDTO.class);
+        List<FsCourseCategoryImportDTO> list = util.importExcel(file.getInputStream());
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUserId();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+        if (ObjectUtil.isEmpty(config.getIsBound()) || !config.getIsBound()){
+            userId = null;
+        }
+
+        return AjaxResult.success(fsUserCourseCategoryService.importData(list, userId));
     }
 
     @PreAuthorize("@ss.hasPermi('course:userCourseCategory:exportFail')")

+ 88 - 90
fs-admin-saas/src/main/java/com/fs/course/controller/FsVideoResourceController.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
@@ -67,30 +68,29 @@ public class FsVideoResourceController extends BaseController {
                               @RequestParam(required = false) Integer typeSubId,
                               @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                               @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
-//        Map<String, Object> params = new HashMap<>();
-//        params.put("resourceName", resourceName);
-//        params.put("fileName", fileName);
-//        params.put("typeId", typeId);
-//        params.put("typeSubId", typeSubId);
-//        LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = null;
-//        if (json != null && !json.isEmpty()) {
-//            try {
-//                config = JSONUtil.toBean(json, CourseConfig.class);
-//            } catch (Exception e) {
-//                log.warn("解析course.config失败: {}", e.getMessage());
-//            }
-//        }
-//        if (config != null && ObjectUtil.isNotEmpty(config.getIsBound()) && config.getIsBound()) {
-//            if (loginUser.getCompanyUser() != null) {
-//                params.put("userId", loginUser.getCompanyUser().getUserId());
-//            }
-//        }
-//        PageHelper.startPage(pageNum, pageSize);
-//        List<FsVideoResourceVO> list = fsVideoResourceService.selectVideoResourceListByMap(params);
-//        return getDataTable(list);
-        throw new RuntimeException("未实现");
+        Map<String, Object> params = new HashMap<>();
+        params.put("resourceName", resourceName);
+        params.put("fileName", fileName);
+        params.put("typeId", typeId);
+        params.put("typeSubId", typeSubId);
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = null;
+        if (json != null && !json.isEmpty()) {
+            try {
+                config = JSONUtil.toBean(json, CourseConfig.class);
+            } catch (Exception e) {
+                log.warn("解析course.config失败: {}", e.getMessage());
+            }
+        }
+        if (config != null && ObjectUtil.isNotEmpty(config.getIsBound()) && config.getIsBound()) {
+            if (loginUser.getUser() != null) {
+                params.put("userId", loginUser.getUser().getUserId());
+            }
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        List<FsVideoResourceVO> list = fsVideoResourceService.selectVideoResourceListByMap(params);
+        return getDataTable(list);
     }
 
 
@@ -110,34 +110,33 @@ public class FsVideoResourceController extends BaseController {
     @Log(title = "视频素材库", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody FsVideoResource fsVideoResource) {
-//        LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = null;
-//        if (json != null && !json.isEmpty()) {
-//            try {
-//                config = JSONUtil.toBean(json, CourseConfig.class);
-//            } catch (Exception e) {
-//                log.warn("解析course.config失败: {}", e.getMessage());
-//            }
-//        }
-//        if (config != null && ObjectUtil.isNotEmpty(config.getIsBound()) && config.getIsBound()) {
-//            if (loginUser.getCompanyUser() != null) {
-//                fsVideoResource.setUserId(loginUser.getCompanyUser().getUserId());
-//            }
-//        }
-//
-//        fsVideoResource.setCreateTime(LocalDateTime.now());
-//        boolean save = fsVideoResourceService.save(fsVideoResource);
-//        if (save&&StringUtils.isNotEmpty(fsVideoResource.getHsyVid())){
-//            try {
-//                fsUserCourseVideoService.updateMediaPublishStatus(fsVideoResource.getHsyVid());
-//                log.info("更新视频发布状态成功,hsyVid: {}", fsVideoResource.getHsyVid());
-//            } catch (Exception e) {
-//                log.error("更新视频发布状态失败,hsyVid: {}, 错误: {}", fsVideoResource.getHsyVid(), e.getMessage());
-//            }
-//        }
-//        return AjaxResult.success();
-        throw new RuntimeException("未实现");
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = null;
+        if (json != null && !json.isEmpty()) {
+            try {
+                config = JSONUtil.toBean(json, CourseConfig.class);
+            } catch (Exception e) {
+                log.warn("解析course.config失败: {}", e.getMessage());
+            }
+        }
+        if (config != null && ObjectUtil.isNotEmpty(config.getIsBound()) && config.getIsBound()) {
+            if (loginUser.getUser() != null) {
+                fsVideoResource.setUserId(loginUser.getUser().getUserId());
+            }
+        }
+
+        fsVideoResource.setCreateTime(LocalDateTime.now());
+        boolean save = fsVideoResourceService.save(fsVideoResource);
+        if (save&&StringUtils.isNotEmpty(fsVideoResource.getHsyVid())){
+            try {
+                fsUserCourseVideoService.updateMediaPublishStatus(fsVideoResource.getHsyVid());
+                log.info("更新视频发布状态成功,hsyVid: {}", fsVideoResource.getHsyVid());
+            } catch (Exception e) {
+                log.error("更新视频发布状态失败,hsyVid: {}, 错误: {}", fsVideoResource.getHsyVid(), e.getMessage());
+            }
+        }
+        return AjaxResult.success();
     }
 
     /**
@@ -212,43 +211,42 @@ public class FsVideoResourceController extends BaseController {
     @Log(title = "视频素材库", businessType = BusinessType.INSERT)
     @PostMapping("/batchAddVideoResource")
     public AjaxResult batchAddVideoResource(@RequestBody List<FsVideoResource> list) {
-//        if (Objects.isNull(list) || list.isEmpty()) {
-//            return AjaxResult.error("数据不能为空");
-//        }
-//        LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = null;
-//        if (json != null && !json.isEmpty()) {
-//            try {
-//                config = JSONUtil.toBean(json, CourseConfig.class);
-//            } catch (Exception e) {
-//                log.warn("解析course.config失败: {}", e.getMessage());
-//            }
-//        }
-//        final CourseConfig finalConfig = config;
-//        list.forEach(v -> {
-//            v.setCreateTime(LocalDateTime.now());
-//            if (finalConfig != null && ObjectUtil.isNotEmpty(finalConfig.getIsBound()) && finalConfig.getIsBound()) {
-//                if (loginUser.getCompanyUser() != null) {
-//                    v.setUserId(loginUser.getCompanyUser().getUserId());
-//                }
-//            }
-//        });
-//        boolean saveStatus = fsVideoResourceService.saveBatch(list);
-//        if (saveStatus) {
-//            list.forEach(fsVideoResource -> {
-//                // 检查hsyVid是否存在且不为空
-//                if (ObjectUtil.isNotEmpty(fsVideoResource.getHsyVid())) {
-//                    try {
-//                        fsUserCourseVideoService.updateMediaPublishStatus(fsVideoResource.getHsyVid());
-//                        log.info("更新视频发布状态成功,hsyVid: {}", fsVideoResource.getHsyVid());
-//                    } catch (Exception e) {
-//                        log.error("更新视频发布状态失败,hsyVid: {}, 错误: {}", fsVideoResource.getHsyVid(), e.getMessage());
-//                    }
-//                }
-//            });
-//        }
-//        return AjaxResult.success();
-        throw new RuntimeException("未实现");
+        if (Objects.isNull(list) || list.isEmpty()) {
+            return AjaxResult.error("数据不能为空");
+        }
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = null;
+        if (json != null && !json.isEmpty()) {
+            try {
+                config = JSONUtil.toBean(json, CourseConfig.class);
+            } catch (Exception e) {
+                log.warn("解析course.config失败: {}", e.getMessage());
+            }
+        }
+        final CourseConfig finalConfig = config;
+        list.forEach(v -> {
+            v.setCreateTime(LocalDateTime.now());
+            if (finalConfig != null && ObjectUtil.isNotEmpty(finalConfig.getIsBound()) && finalConfig.getIsBound()) {
+                if (loginUser.getUser() != null) {
+                    v.setUserId(loginUser.getUser().getUserId());
+                }
+            }
+        });
+        boolean saveStatus = fsVideoResourceService.saveBatch(list);
+        if (saveStatus) {
+            list.forEach(fsVideoResource -> {
+                // 检查hsyVid是否存在且不为空
+                if (ObjectUtil.isNotEmpty(fsVideoResource.getHsyVid())) {
+                    try {
+                        fsUserCourseVideoService.updateMediaPublishStatus(fsVideoResource.getHsyVid());
+                        log.info("更新视频发布状态成功,hsyVid: {}", fsVideoResource.getHsyVid());
+                    } catch (Exception e) {
+                        log.error("更新视频发布状态失败,hsyVid: {}, 错误: {}", fsVideoResource.getHsyVid(), e.getMessage());
+                    }
+                }
+            });
+        }
+        return AjaxResult.success();
     }
 }

+ 3 - 0
fs-admin-saas/src/main/java/com/fs/crm/controller/CrmCustomerController.java

@@ -237,6 +237,9 @@ public class CrmCustomerController extends BaseController
     public R getInfo(@PathVariable("customerId") Long customerId)
     {
         CrmCustomer customer=crmCustomerService.selectCrmCustomerById(customerId);
+        if(customer == null){
+            return R.ok().put("customer",customer).put("company",new Company());
+        }
         Company company=companyService.selectCompanyById(customer.getCompanyId());
         return R.ok().put("customer",customer).put("company",company);
     }

+ 2 - 1
fs-admin-saas/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -352,7 +352,8 @@ public class FsStoreHealthOrderScrmController extends BaseController {
         }
         param.setIsHealth("1");
         List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
-        if("北京卓美".equals(com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())){
+        com.fs.config.saas.ProjectConfig projectConfig = com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper);
+        if(projectConfig != null && projectConfig.getCloudHost() != null && "北京卓美".equals(projectConfig.getCloudHost().getCompanyName())){
             List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
                     .map(vo -> {
                         FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();

+ 215 - 222
fs-admin-saas/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -14,10 +14,7 @@ import com.fs.common.core.domain.entity.SysUser;
 import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.CloudHostUtils;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.ServletUtils;
-import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.*;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.param.CompanyStoreOrderMoneyLogsListParam;
 import com.fs.company.service.ICompanyMoneyLogsService;
@@ -391,21 +388,20 @@ public class FsStoreOrderScrmController extends BaseController {
     @Autowired
     private ISysRoleService sysRoleService;
     private SysRole isCheckPermission() {
-//        SysRole sysRole = new SysRole();
-//        SysUser user = SecurityUtils.getLoginUser().getUser();
-//        boolean flag = user.isAdmin();
-//        if (flag) {
-//            sysRole.setIsCheckPhone(1);
-//            sysRole.setIsCheckAddress(1);
-//        } else {
-//            List<SysRole> roles = user.getRoles();
-//            if (roles != null && !roles.isEmpty()) {
-//                Long[] roleIds = roles.stream().map(SysRole::getRoleId).toArray(Long[]::new);
-//                return sysRoleService.getIsCheckPermission(roleIds);
-//            }
-//        }
-//        return sysRole;
-        throw new RuntimeException("未实现");
+        SysRole sysRole = new SysRole();
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        boolean flag = user.isAdmin();
+        if (flag) {
+            sysRole.setIsCheckPhone(1);
+            sysRole.setIsCheckAddress(1);
+        } else {
+            List<SysRole> roles = user.getRoles();
+            if (roles != null && !roles.isEmpty()) {
+                Long[] roleIds = roles.stream().map(SysRole::getRoleId).toArray(Long[]::new);
+                return sysRoleService.getIsCheckPermission(roleIds);
+            }
+        }
+        return sysRole;
     }
 
 
@@ -461,63 +457,62 @@ public class FsStoreOrderScrmController extends BaseController {
     @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
     @GetMapping("/exportItems")
     public AjaxResult exportItems(FsStoreOrderParam param) {
-//        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-//            param.setBeginTime(null);
-//            param.setEndTime(null);
-//        }
-//        if (fsStoreOrderService.isEntityNull(param)){
-//            return AjaxResult.error("请筛选数据导出");
-//        }
-//        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
-//            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-//        }
-//        if(!StringUtils.isEmpty(param.getPayTimeRange())){
-//            param.setPayTimeList(param.getPayTimeRange().split("--"));
-//        }
-//        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){
-//            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-//        }
-//        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){
-//            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-//        }
-//        param.setNotHealth(1);
-//        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
-//        //对手机号脱敏
-//        if (list != null) {
-//            SysRole sysRole = isCheckPermission();
-//            com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//
-//            for (FsStoreOrderItemExportVO vo : list) {
-//                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
-//                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
-//                    vo.setUserPhone(phone);
-//                }
-//                if (vo.getUserAddress()!=null && sysRole.getIsCheckAddress() != 1){
-//                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-//                }
-//                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                    try {
-//                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                        BeanUtil.copyProperties(orderProductDTO, vo);
-//                    } catch (Exception e) {
-//                    }
-//                }
-//                //
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
-//                }
-//            }
-//        }
-//        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
-//        return util.exportExcel(list, "订单明细数据");
-        throw new RuntimeException("未实现");
+        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
+            param.setBeginTime(null);
+            param.setEndTime(null);
+        }
+        if (fsStoreOrderService.isEntityNull(param)){
+            return AjaxResult.error("请筛选数据导出");
+        }
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getPayTimeRange())){
+            param.setPayTimeList(param.getPayTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){
+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){
+            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+        }
+        param.setNotHealth(1);
+        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+        //对手机号脱敏
+        if (list != null) {
+            SysRole sysRole = isCheckPermission();
+            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+            for (FsStoreOrderItemExportVO vo : list) {
+                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
+                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
+                    vo.setUserPhone(phone);
+                }
+                if (vo.getUserAddress()!=null && sysRole.getIsCheckAddress() != 1){
+                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
+                }
+                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                    try {
+                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                        BeanUtil.copyProperties(orderProductDTO, vo);
+                    } catch (Exception e) {
+                    }
+                }
+                //
+                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
+                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                } else {
+                    vo.setPayPostage(BigDecimal.ZERO);
+                    vo.setCost(BigDecimal.ZERO);
+                    vo.setFPrice(BigDecimal.ZERO);
+                    vo.setBarCode("");
+                    vo.setCateName("");
+                    vo.setBankTransactionId("");
+                }
+            }
+        }
+        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
+        return util.exportExcel(list, "订单明细数据");
     }
 
     /**
@@ -527,95 +522,95 @@ public class FsStoreOrderScrmController extends BaseController {
     @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
     @GetMapping("/exportItemsDetails")
     public AjaxResult exportItemsDetails(FsStoreOrderParam param) {
-//        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-//            param.setBeginTime(null);
-//            param.setEndTime(null);
-//        }
-//        if (fsStoreOrderService.isEntityNull(param)){
-//            return AjaxResult.error("请筛选数据导出");
-//        }
-//        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
-//            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-//        }
-//        if(!StringUtils.isEmpty(param.getPayTimeRange())){
-//            param.setPayTimeList(param.getPayTimeRange().split("--"));
-//        }
-//        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){
-//            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-//        }
-//        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){
-//            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-//        }
-//        param.setNotHealth(1);
-//        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
-//        if("北京卓美".equals(com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())){
-//            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
-//                    .map(vo -> {
-//                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
-//                        try {
-//                            BeanUtil.copyProperties( vo,zmvo);
-//                        } catch (Exception e) {
-//                            // 处理异常
-//                            e.printStackTrace();
-//                        }
-//                        return zmvo;
-//                    })
-//                    .collect(Collectors.toList());
-//            //对手机号脱敏
-//            if (zmvoList != null) {
-//                com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
-//                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                        try {
-//                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                            BeanUtil.copyProperties(orderProductDTO, vo);
-//                        } catch (Exception e) {
-//                        }
-//                    }
-//                    //
-//                    if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
-//                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                    } else {
-//                        vo.setPayPostage(BigDecimal.ZERO);
-//                        vo.setCost(BigDecimal.ZERO);
-//                        vo.setFPrice(BigDecimal.ZERO);
-//                        vo.setBarCode("");
-//                        vo.setCateName("");
-//                        vo.setBankTransactionId("");
-//                    }
-//                }
-//            }
-//            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
-//            return util.exportExcel(zmvoList, "订单明细数据");
-//        }
-//
-//        //对手机号脱敏
-//        if (list != null) {
-//            com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//            for (FsStoreOrderItemExportVO vo : list) {
-//                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                    try {
-//                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                        BeanUtil.copyProperties(orderProductDTO, vo);
-//                    } catch (Exception e) {
-//                    }
-//                }
-//                //
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
-//                }
-//            }
-//        }
-//        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
-//        return util.exportExcel(list, "订单明细数据");
-        throw new RuntimeException("未实现");
+        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
+            param.setBeginTime(null);
+            param.setEndTime(null);
+        }
+        if (fsStoreOrderService.isEntityNull(param)){
+            return AjaxResult.error("请筛选数据导出");
+        }
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getPayTimeRange())){
+            param.setPayTimeList(param.getPayTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){
+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){
+            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+        }
+        param.setNotHealth(1);
+        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+        com.fs.config.saas.ProjectConfig projectConfig = com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper);
+        if(projectConfig != null && projectConfig.getCloudHost() != null && "北京卓美".equals(projectConfig.getCloudHost().getCompanyName())){
+            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
+                    .map(vo -> {
+                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
+                        try {
+                            BeanUtil.copyProperties( vo,zmvo);
+                        } catch (Exception e) {
+                            // 处理异常
+                            e.printStackTrace();
+                        }
+                        return zmvo;
+                    })
+                    .collect(Collectors.toList());
+            //对手机号脱敏
+            if (zmvoList != null) {
+                LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
+                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                        try {
+                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                            BeanUtil.copyProperties(orderProductDTO, vo);
+                        } catch (Exception e) {
+                        }
+                    }
+                    //
+                    if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
+                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                    } else {
+                        vo.setPayPostage(BigDecimal.ZERO);
+                        vo.setCost(BigDecimal.ZERO);
+                        vo.setFPrice(BigDecimal.ZERO);
+                        vo.setBarCode("");
+                        vo.setCateName("");
+                        vo.setBankTransactionId("");
+                    }
+                }
+            }
+            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
+            return util.exportExcel(zmvoList, "订单明细数据");
+        }
+
+        //对手机号脱敏
+        if (list != null) {
+            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+            for (FsStoreOrderItemExportVO vo : list) {
+                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                    try {
+                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                        BeanUtil.copyProperties(orderProductDTO, vo);
+                    } catch (Exception e) {
+                    }
+                }
+                //
+                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
+                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                } else {
+                    vo.setPayPostage(BigDecimal.ZERO);
+                    vo.setCost(BigDecimal.ZERO);
+                    vo.setFPrice(BigDecimal.ZERO);
+                    vo.setBarCode("");
+                    vo.setCateName("");
+                    vo.setBankTransactionId("");
+                }
+            }
+        }
+        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
+        return util.exportExcel(list, "订单明细数据");
     }
 
     @GetMapping("/orderItemsNum")
@@ -1006,13 +1001,12 @@ public class FsStoreOrderScrmController extends BaseController {
     @PostMapping("/editErpPhone")
     public AjaxResult editErpPhone(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
     {
-//        param.setOpeName(SecurityUtils.getLoginUser().getUser().getNickName());
-//        List<String> erpPhone = param.getErpPhone();
-//        if (erpPhone == null || erpPhone.isEmpty()) {
-//            return AjaxResult.error("请选择手机号");
-//        }
-//        return toAjax(fsStoreOrderService.batchUpdateErpByOrderIds(param));
-        throw new RuntimeException("未实现");
+        param.setOpeName(SecurityUtils.getLoginUser().getUser().getNickName());
+        List<String> erpPhone = param.getErpPhone();
+        if (erpPhone == null || erpPhone.isEmpty()) {
+            return AjaxResult.error("请选择手机号");
+        }
+        return toAjax(fsStoreOrderService.batchUpdateErpByOrderIds(param));
     }
 
     /**
@@ -1035,56 +1029,55 @@ public class FsStoreOrderScrmController extends BaseController {
     @PostMapping(value = "/batchCreateErpOrder")
     public R batchCreateErpOrder(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
     {
-//        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
-//        String loginAccount = param.getLoginAccount();
-//        if (StringUtils.isBlank(loginAccount)){
-//            return R.error("未选择推送erp账户");
-//        }
-//        FsStoreOrderDf df = getDFInfo(loginAccount);
-//        if (df.getLoginAccount() == null){
-//            return R.error("未查询到所选erp账户");
-//        }
-//        List<Long> orderIds = param.getOrderIds();
-//        if (orderIds  == null || orderIds.isEmpty()) {
-//            if(!StringUtils.isEmpty(param.getCreateTimeRange())){
-//                param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-//            }
-//            if(!StringUtils.isEmpty(param.getPayTimeRange())){
-//                param.setPayTimeList(param.getPayTimeRange().split("--"));
-//            }
-//            if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){
-//                param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-//            }
-//            if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){
-//                param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-//            }
-//            param.setNotHealth(1);
-//            List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
-//            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
-//        }
-//        if (orderIds.isEmpty()){
-//            return R.ok();
-//        }
-//        orderIds.forEach(orderId->{
-//            try {
-//                df.setOrderId(orderId);
-//                FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
-//                if (temp == null){
-//                    df.setParcelQuantity(param.getParcelQuantity()); //设置包裹数量
-//                    fsStoreOrderDfService.insertFsStoreOrderDf(df);
-//                    fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
-//                            nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
-//                }
-//                fsStoreOrderService.createOmsOrder(orderId);
-//                fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
-//                        nickName + " " +FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
-//            } catch (ParseException e) {
-//                throw new RuntimeException(e);
-//            }
-//
-//        });
-//        return R.ok();
-        throw new RuntimeException("未实现");
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+        String loginAccount = param.getLoginAccount();
+        if (StringUtils.isBlank(loginAccount)){
+            return R.error("未选择推送erp账户");
+        }
+        FsStoreOrderDf df = getDFInfo(loginAccount);
+        if (df.getLoginAccount() == null){
+            return R.error("未查询到所选erp账户");
+        }
+        List<Long> orderIds = param.getOrderIds();
+        if (orderIds  == null || orderIds.isEmpty()) {
+            if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+                param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+            }
+            if(!StringUtils.isEmpty(param.getPayTimeRange())){
+                param.setPayTimeList(param.getPayTimeRange().split("--"));
+            }
+            if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){
+                param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+            }
+            if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){
+                param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+            }
+            param.setNotHealth(1);
+            List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
+            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
+        }
+        if (orderIds.isEmpty()){
+            return R.ok();
+        }
+        orderIds.forEach(orderId->{
+            try {
+                df.setOrderId(orderId);
+                FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
+                if (temp == null){
+                    df.setParcelQuantity(param.getParcelQuantity()); //设置包裹数量
+                    fsStoreOrderDfService.insertFsStoreOrderDf(df);
+                    fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
+                            nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
+                }
+                fsStoreOrderService.createOmsOrder(orderId);
+                fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
+                        nickName + " " +FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+
+        });
+        return R.ok();
     }
 
 

+ 173 - 0
fs-admin-saas/src/main/java/com/fs/stats/SalesWatchStatisController.java

@@ -0,0 +1,173 @@
+package com.fs.stats;
+
+import com.fs.common.annotation.RateLimiter;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.cache.ICompanyUserCacheService;
+import com.fs.company.service.ICompanyService;
+import com.fs.company.vo.DeptDataVO;
+import com.fs.sop.params.GetSOPTaskDataParam;
+import com.fs.sop.service.IQwSopLogsService;
+import com.fs.sop.service.IQwSopService;
+import com.fs.sop.vo.QwSopTask;
+import com.fs.statis.IFsStatisQwWatchService;
+import com.fs.statis.domain.FsStatisEveryDayWatch;
+import com.fs.statis.domain.FsStatisQwWatch;
+import com.fs.statis.domain.FsStatisSalerWatch;
+import com.fs.statis.domain.FsStatisSopWatch;
+import com.fs.statis.dto.StatsWatchLogPageListDTO;
+import com.fs.statis.service.FsStatisSalerWatchService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 看课统计接口
+ */
+@RestController
+@RequestMapping("/stats")
+@AllArgsConstructor
+public class SalesWatchStatisController {
+
+    @Autowired
+    private FsStatisSalerWatchService fsStatisSalerWatchService;
+
+    @Autowired
+    private IQwSopService qwSopService;
+
+    @Autowired
+    private ICompanyService companyService;
+
+    @Autowired
+    private ICompanyUserCacheService companyUserCacheService;
+
+    @Autowired
+    private IFsStatisQwWatchService fsStatisQwWatchService;
+
+    @Autowired
+    private IQwSopLogsService qwSopLogsService;
+
+    @GetMapping("/computedData")
+    public R computedData(@RequestParam("date") String date){
+        fsStatisSalerWatchService.writeData(date);
+        return R.ok();
+    }
+
+    @PostMapping("/seller/pageList")
+    public R sellerQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        if(param.getPageNum() == null) {
+            param.setPageNum(1);
+        }
+        if(param.getPageSize() == null) {
+            param.setPageSize(10);
+        }
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+
+        List<FsStatisSalerWatch> list = fsStatisSalerWatchService.queryList(param);
+        return R.ok().put("data",new PageInfo<>(list));
+    }
+
+    @PostMapping("/inline/pageList")
+    public R inlineTransferStats(@RequestBody StatsWatchLogPageListDTO param){
+        if(param.getPageNum() == null) {
+            param.setPageNum(1);
+        }
+        if(param.getPageSize() == null) {
+            param.setPageSize(10);
+        }
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+
+        List<FsStatisQwWatch> list = fsStatisQwWatchService.queryList(param);
+        return R.ok().put("data",new PageInfo<>(list));
+    }
+
+    @PostMapping("/inline/export")
+    @RateLimiter(time=5,count = 1)
+    public AjaxResult exportInlineQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        param.setPageNum(null);
+        param.setPageSize(null);
+        List<FsStatisQwWatch> list = fsStatisQwWatchService.exportQueryList(param);
+        ExcelUtil<FsStatisQwWatch> util = new ExcelUtil<>(FsStatisQwWatch.class);
+        return util.exportExcel(list, "销售完播统计");
+    }
+
+    @PostMapping("/seller/export")
+    @RateLimiter(time=5,count = 1)
+    public AjaxResult exportSellerQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        param.setPageNum(null);
+        param.setPageSize(null);
+        List<FsStatisSalerWatch> list = fsStatisSalerWatchService.export(param);
+        ExcelUtil<FsStatisSalerWatch> util = new ExcelUtil<>(FsStatisSalerWatch.class);
+        return util.exportExcel(list, "销售完播统计");
+    }
+
+    @PostMapping("/period/pageList")
+    public R periodQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        if(param.getPageNum() == null) {
+            param.setPageNum(1);
+        }
+        if(param.getPageSize() == null) {
+            param.setPageSize(10);
+        }
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+
+        List<FsStatisSalerWatch> list = fsStatisSalerWatchService.queryPeriodList(param);
+        return R.ok().put("data", new PageInfo<>(list));
+    }
+
+    @PostMapping("/period/export")
+    @RateLimiter(time=5,count = 1)
+    public AjaxResult exportPeriodQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        param.setPageNum(null);
+        param.setPageSize(null);
+        List<FsStatisSopWatch> list = fsStatisSalerWatchService.exportQueryPeriodList(param);
+        ExcelUtil<FsStatisSopWatch> util = new ExcelUtil<>(FsStatisSopWatch.class);
+        return util.exportExcel(list, "SOP任务完播统计");
+    }
+
+    @PostMapping("/everyDay/pageList")
+    public R everyDayQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        if(param.getPageNum() == null) {
+            param.setPageNum(1);
+        }
+        if(param.getPageSize() == null) {
+            param.setPageSize(10);
+        }
+        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+        List<FsStatisSalerWatch> list = fsStatisSalerWatchService.queryTodayList(param);
+        return R.ok().put("data", new PageInfo<>(list));
+    }
+
+    @PostMapping("/everyDay/export")
+    @RateLimiter(time=5,count = 1)
+    public AjaxResult exportEveryDayQueryList(@RequestBody StatsWatchLogPageListDTO param){
+        param.setPageNum(null);
+        param.setPageSize(null);
+        List<FsStatisEveryDayWatch> list = fsStatisSalerWatchService.exportQueryEveryDayList(param);
+        ExcelUtil<FsStatisEveryDayWatch> util = new ExcelUtil<>(FsStatisEveryDayWatch.class);
+        return util.exportExcel(list, "每日完播统计");
+    }
+
+    @PostMapping("/sopTaskData")
+    public R getSOPTaskData(@RequestBody GetSOPTaskDataParam param){
+        if(StringUtils.isBlank(param.getStartDate()) && StringUtils.isBlank(param.getEndDate())) {
+            param.setStartDate(LocalDate.now().minusDays(7).toString());
+            param.setEndDate(LocalDate.now().toString());
+        }
+        List<QwSopTask> qwSopTaskList = qwSopService.getQwSopTaskList(param);
+        return R.ok().put("data",qwSopTaskList);
+    }
+
+    @GetMapping("/getDeptData")
+    public R getDeptData(Long companyId){
+        List<DeptDataVO> data = companyUserCacheService.getDeptData(companyId);
+        return R.ok().put("data",data);
+    }
+}

+ 8 - 4
fs-admin-saas/src/main/java/com/fs/tenant/TenantInfoController.java

@@ -176,14 +176,18 @@ public class TenantInfoController extends BaseController
         List<Long> selected = menuDto.getSelected();
         List<Long> unSelected = menuDto.getUnSelected();
         if ("sys".equals(menuDto.getFlag())) {
-            List<SysMenu> addSysMenu = getAddSysMenu(tenantInfo, menuDto.getSelected());
+            List<SysMenu> allTemplateMenus = tenantInfoMapper.selectMenuList(new SysMenu());
+            List<Long> expandedSelected = tenantInfoService.expandSysMenuIdsWithAncestors(selected, allTemplateMenus);
+            List<SysMenu> addSysMenu = getAddSysMenu(tenantInfo, expandedSelected);
             tenantDataSourceManager.switchTenant(tenantInfo);
-            return tenantInfoService.menuEdit(selected, unSelected, menuDto.getFlag(),addSysMenu,null);
+            return tenantInfoService.menuEdit(expandedSelected, unSelected, menuDto.getFlag(), addSysMenu, null);
         }
 
-        List<TenantCompanyMenu> addCompanyMenu = getAddCompanyMenu(tenantInfo, menuDto.getSelected());
+        List<TenantCompanyMenu> allTemplateMenus = tenantInfoMapper.selectCompanyMenuList(new TenantCompanyMenu());
+        List<Long> expandedSelected = tenantInfoService.expandComMenuIdsWithAncestors(selected, allTemplateMenus);
+        List<TenantCompanyMenu> addCompanyMenu = getAddCompanyMenu(tenantInfo, expandedSelected);
         tenantDataSourceManager.switchTenant(tenantInfo);
-        return tenantInfoService.menuEdit(selected, unSelected, menuDto.getFlag(),null,addCompanyMenu);
+        return tenantInfoService.menuEdit(expandedSelected, unSelected, menuDto.getFlag(), null, addCompanyMenu);
     }
 
 

+ 14 - 4
fs-admin/src/main/java/com/fs/admin/controller/CompanyAdminController.java

@@ -286,13 +286,23 @@ public class CompanyAdminController extends BaseController {
         }
 
         if ("sys".equals(flag)) {
-            List<SysMenu> assignSysMenu = tenantContextHelper.executeInMaster(() -> loadMasterSysMenus(selected));
+            List<SysMenu> allTemplateMenus = tenantContextHelper.executeInMaster(
+                    () -> tenantInfoMapper.selectMenuList(new SysMenu()));
+            List<Long> expandedSelected = tenantInfoService.expandSysMenuIdsWithAncestors(selected, allTemplateMenus);
+            List<SysMenu> assignSysMenu = tenantContextHelper.executeInMaster(
+                    () -> loadMasterSysMenus(expandedSelected));
+            List<Long> finalSelected = expandedSelected;
             return tenantContextHelper.executeInTenant(tenantInfo,
-                    () -> tenantInfoService.menuAssignReplace(selected, flag, assignSysMenu, null));
+                    () -> tenantInfoService.menuAssignReplace(finalSelected, flag, assignSysMenu, null));
         }
-        List<TenantCompanyMenu> assignCompanyMenu = tenantContextHelper.executeInMaster(() -> loadMasterCompanyMenus(selected));
+        List<TenantCompanyMenu> allTemplateMenus = tenantContextHelper.executeInMaster(
+                () -> tenantInfoMapper.selectCompanyMenuList(new TenantCompanyMenu()));
+        List<Long> expandedSelected = tenantInfoService.expandComMenuIdsWithAncestors(selected, allTemplateMenus);
+        List<TenantCompanyMenu> assignCompanyMenu = tenantContextHelper.executeInMaster(
+                () -> loadMasterCompanyMenus(expandedSelected));
+        List<Long> finalSelected = expandedSelected;
         return tenantContextHelper.executeInTenant(tenantInfo,
-                () -> tenantInfoService.menuAssignReplace(selected, flag, null, assignCompanyMenu));
+                () -> tenantInfoService.menuAssignReplace(finalSelected, flag, null, assignCompanyMenu));
     }
 
     /** 主库 tenant_sys_menu 模板 */

+ 8 - 4
fs-admin/src/main/java/com/fs/admin/controller/tenant/TenantInfoController.java

@@ -177,14 +177,18 @@ public class TenantInfoController extends BaseController
         List<Long> selected = menuDto.getSelected();
         List<Long> unSelected = menuDto.getUnSelected();
         if ("sys".equals(menuDto.getFlag())) {
-            List<SysMenu> addSysMenu = getAddSysMenu(tenantInfo, menuDto.getSelected());
+            List<SysMenu> allTemplateMenus = tenantInfoMapper.selectMenuList(new SysMenu());
+            List<Long> expandedSelected = tenantInfoService.expandSysMenuIdsWithAncestors(selected, allTemplateMenus);
+            List<SysMenu> addSysMenu = getAddSysMenu(tenantInfo, expandedSelected);
             tenantDataSourceManager.switchTenant(tenantInfo);
-            return tenantInfoService.menuEdit(selected, unSelected, menuDto.getFlag(),addSysMenu,null);
+            return tenantInfoService.menuEdit(expandedSelected, unSelected, menuDto.getFlag(), addSysMenu, null);
         }
 
-        List<TenantCompanyMenu> addCompanyMenu = getAddCompanyMenu(tenantInfo, menuDto.getSelected());
+        List<TenantCompanyMenu> allTemplateMenus = tenantInfoMapper.selectCompanyMenuList(new TenantCompanyMenu());
+        List<Long> expandedSelected = tenantInfoService.expandComMenuIdsWithAncestors(selected, allTemplateMenus);
+        List<TenantCompanyMenu> addCompanyMenu = getAddCompanyMenu(tenantInfo, expandedSelected);
         tenantDataSourceManager.switchTenant(tenantInfo);
-        return tenantInfoService.menuEdit(selected, unSelected, menuDto.getFlag(),null,addCompanyMenu);
+        return tenantInfoService.menuEdit(expandedSelected, unSelected, menuDto.getFlag(), null, addCompanyMenu);
     }
 
 

+ 0 - 16
fs-agent/src/main/java/com/fs/FSAgentApplication.java

@@ -1,12 +1,9 @@
 package com.fs;
 
-import com.fs.config.OverridingBeanNameGenerator;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.redisson.spring.starter.RedissonAutoConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.FilterType;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,19 +12,6 @@ import org.springframework.transaction.annotation.Transactional;
  * 启动程序
  */
 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, RedissonAutoConfiguration.class})
-@ComponentScan(
-    basePackages = "com.fs",
-    nameGenerator = OverridingBeanNameGenerator.class,
-    excludeFilters = {
-        @ComponentScan.Filter(type = FilterType.REGEX, pattern = {
-            "com\\.fs\\.framework\\.service\\.PermissionService",
-            "com\\.fs\\.framework\\.service\\.UserDetailsServiceImpl",
-            "com\\.fs\\.company\\.controller\\..*",
-            "com\\.fs\\.hisStore\\.controller\\..*",
-            "com\\.fs\\.his\\.controller\\.FsAiWorkflowController"
-        })
-    }
-)
 @Transactional
 @EnableAsync
 @EnableScheduling

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdAccountController.java

@@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.context.annotation.Profile;
 
 /**
  * 站点管理Controller
@@ -15,7 +14,6 @@ import org.springframework.context.annotation.Profile;
  * @author fs
  * @date 2025-03-04
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/adAccount")
 public class AdAccountController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdDomainController.java

@@ -12,7 +12,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2025-03-04
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/adDomain")
 public class AdDomainController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdDyAccountController.java

@@ -19,7 +19,6 @@ import com.fs.ad.domain.AdDyAccount;
 import com.fs.ad.service.IAdDyAccountService;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.common.core.page.TableDataInfo;
-import org.springframework.context.annotation.Profile;
 
 /**
  * 抖音账户Controller
@@ -27,7 +26,6 @@ import org.springframework.context.annotation.Profile;
  * @author 吴树波
  * @date 2025-05-27
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/AdDyAccount")
 public class AdDyAccountController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdDyApiController.java

@@ -1,7 +1,6 @@
 package com.fs.ad.controller;
 
 import java.util.List;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.ad.vo.DyAuthorizedVo;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -29,7 +28,6 @@ import com.fs.common.core.page.TableDataInfo;
  * @author 吴树波
  * @date 2025-05-27
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/adDyApi")
 public class AdDyApiController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdHtmlClickLogController.java

@@ -11,7 +11,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -21,7 +20,6 @@ import java.util.List;
  * @author fs
  * @date 2025-01-09
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/clickLog")
 public class AdHtmlClickLogController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdHtmlTemplateController.java

@@ -12,7 +12,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2024-12-31
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/html/template")
 public class AdHtmlTemplateController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdIqiyiAccountController.java

@@ -12,7 +12,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2025-03-03
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/AdIqiyiAccount")
 public class AdIqiyiAccountController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdSiteController.java

@@ -12,7 +12,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2025-03-04
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/adSite")
 public class AdSiteController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdUploadLogController.java

@@ -11,7 +11,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -21,7 +20,6 @@ import java.util.List;
  * @author fs
  * @date 2025-03-14
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/AdUploadLog")
 public class AdUploadLogController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/AdYoukuAccountController.java

@@ -12,7 +12,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2025-02-19
  */
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/ad/AdYouKuAccount")
 public class AdYoukuAccountController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/BdAccountController.java

@@ -13,7 +13,6 @@ import com.fs.common.utils.poi.ExcelUtil;
 import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 import java.util.Optional;
@@ -24,7 +23,6 @@ import java.util.Optional;
  * @author fs
  * @date 2025-01-20
  */
-@Profile({"admin", "company"})
 @RestController
 @AllArgsConstructor
 @RequestMapping("/bd/BdAccount")

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/MockAppController.java

@@ -13,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.context.annotation.Profile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.security.MessageDigest;
@@ -22,7 +21,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.TreeMap;
 
-@Profile({"admin", "company"})
 @RestController
 @RequestMapping("/baiduBack")
 public class MockAppController {

+ 0 - 2
fs-agent/src/main/java/com/fs/ad/controller/StatisticsController.java

@@ -20,12 +20,10 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.context.annotation.Profile;
 
 import java.time.LocalDate;
 import java.util.List;
 
-@Profile({"admin", "company"})
 @RestController
 @AllArgsConstructor
 @RequestMapping("/baiduStatistics")

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminAdController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台视频资源(广告账户)管理控制器
  * 遍历所有租户库查询 ad_account 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/ad")
 public class AdminAdController extends BaseController {

+ 273 - 275
fs-agent/src/main/java/com/fs/admin/controller/AdminAiWorkflowBridgeController.java

@@ -1,275 +1,273 @@
-package com.fs.admin.controller;
-
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.DataSourceType;
-import com.fs.framework.datasource.DynamicDataSourceContextHolder;
-import com.fs.framework.datasource.TenantDataSourceManager;
-import com.fs.his.domain.FsAiWorkflow;
-import com.fs.his.domain.FsAiWorkflowNodeType;
-import com.fs.his.param.FsAiWorkflowSaveParam;
-import com.fs.his.param.FsAiWorkflowUpdateBindWCParam;
-import com.fs.his.service.IFsAiWorkflowService;
-import com.fs.tenant.domain.TenantInfo;
-import com.fs.tenant.mapper.TenantInfoMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * AI工作流桥接Controller - adminui端(fs-admin 8004)
- * 替代 com.fs.his.controller.FsAiWorkflowController(已从admin扫描中排除)
- * <p>
- * AI工作流数据存储在租户库中,admin端需根据请求中的租户上下文切换数据源后查询。
- * 请求头需携带 tenant-code 或 tenant-id 来指定目标租户。
- *
- * @author fs
- * @date 2026-05-12
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/his/aiWorkflow")
-public class AdminAiWorkflowBridgeController extends BaseController {
-
-    private static final Logger log = LoggerFactory.getLogger(AdminAiWorkflowBridgeController.class);
-
-    @Autowired(required = false)
-    private IFsAiWorkflowService fsAiWorkflowService;
-
-    @Autowired(required = false)
-    private TenantDataSourceManager tenantDataSourceManager;
-
-    @Autowired(required = false)
-    private TenantInfoMapper tenantInfoMapper;
-
-    @Autowired
-    private HttpServletRequest request;
-
-    /**
-     * 尝试切换到租户数据源
-     * @return true=切换成功,false=无租户上下文或切换失败
-     */
-    private boolean trySwitchToTenant() {
-        if (tenantDataSourceManager == null || tenantInfoMapper == null) {
-            log.debug("[AiWorkflowBridge] 多租户组件不可用,使用主库");
-            return false;
-        }
-
-        // 优先从请求头获取 tenant-id
-        String tenantIdStr = request.getHeader("tenant-id");
-        if (tenantIdStr == null || tenantIdStr.isEmpty()) {
-            // 尝试 tenant-code
-            String tenantCode = request.getHeader("tenant-code");
-            if (tenantCode != null && !tenantCode.isEmpty()) {
-                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
-                try {
-                    TenantInfo info = tenantInfoMapper.getTenByCode(tenantCode);
-                    if (info != null) {
-                        tenantDataSourceManager.switchTenant(info);
-                        log.debug("[AiWorkflowBridge] 通过 tenant-code={} 切换到租户: {}", tenantCode, info.getId());
-                        return true;
-                    }
-                } finally {
-                    // 如果没找到,已经切到MASTER,需要回切?
-                }
-            }
-            // 尝试查询参数 tenantId
-            tenantIdStr = request.getParameter("tenantId");
-        }
-
-        if (tenantIdStr != null && !tenantIdStr.isEmpty()) {
-            try {
-                Long tenantId = Long.parseLong(tenantIdStr);
-                tenantDataSourceManager.ensureSwitchByTenantId(tenantId);
-                log.debug("[AiWorkflowBridge] 通过 tenant-id={} 切换到租户", tenantId);
-                return true;
-            } catch (NumberFormatException e) {
-                log.warn("[AiWorkflowBridge] tenantId格式错误: {}", tenantIdStr);
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * 清理数据源上下文
-     */
-    private void clearDataSource() {
-        if (tenantDataSourceManager != null) {
-            tenantDataSourceManager.clear();
-        }
-    }
-
-    /**
-     * 查询AI工作流列表
-     */
-    @GetMapping("/list")
-    public TableDataInfo list(FsAiWorkflow fsAiWorkflow) {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return getDataTable(new ArrayList<>());
-        }
-        try {
-            startPage();
-            List<FsAiWorkflow> list = fsAiWorkflowService.selectFsAiWorkflowList(fsAiWorkflow);
-            return getDataTable(list);
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 导出AI工作流列表
-     */
-    @GetMapping("/export")
-    public AjaxResult export(FsAiWorkflow fsAiWorkflow) {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.error("请先选择租户");
-        }
-        try {
-            List<FsAiWorkflow> list = fsAiWorkflowService.selectFsAiWorkflowList(fsAiWorkflow);
-            // 导出功能在admin端简化为返回数据
-            return AjaxResult.success(list);
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 获取AI工作流详细信息(包含节点和连线)
-     */
-    @GetMapping(value = "/{workflowId}")
-    public AjaxResult getInfo(@PathVariable("workflowId") Long workflowId) {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.error("请先选择租户");
-        }
-        try {
-            return AjaxResult.success(fsAiWorkflowService.selectFsAiWorkflowById(workflowId));
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 保存AI工作流(新增或更新) - admin端不支持直接写入
-     */
-    @PostMapping("/save")
-    public AjaxResult save(@RequestBody FsAiWorkflowSaveParam param) {
-        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
-    }
-
-    /**
-     * 修改AI工作流状态 - admin端不支持直接写入
-     */
-    @PutMapping("/status/{workflowId}/{status}")
-    public AjaxResult updateStatus(@PathVariable("workflowId") Long workflowId,
-                                   @PathVariable("status") Integer status) {
-        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
-    }
-
-    /**
-     * 删除AI工作流 - admin端不支持直接写入
-     */
-    @DeleteMapping("/{workflowIds}")
-    public AjaxResult remove(@PathVariable Long[] workflowIds) {
-        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
-    }
-
-    /**
-     * 复制AI工作流 - admin端不支持直接写入
-     */
-    @PostMapping("/copy/{workflowId}")
-    public AjaxResult copy(@PathVariable("workflowId") Long workflowId) {
-        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
-    }
-
-    /**
-     * 获取所有启用的节点类型
-     */
-    @GetMapping("/nodeTypes")
-    public AjaxResult getNodeTypes() {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.success(new ArrayList<>());
-        }
-        try {
-            List<FsAiWorkflowNodeType> list = fsAiWorkflowService.selectAllEnabledNodeTypes();
-            return AjaxResult.success(list);
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 导出工作流流程图JSON
-     */
-    @GetMapping("/exportJson/{workflowId}")
-    public AjaxResult exportJson(@PathVariable("workflowId") Long workflowId) {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.error("请先选择租户");
-        }
-        try {
-            return AjaxResult.success(fsAiWorkflowService.exportWorkflowJson(workflowId));
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 分页销售
-     */
-    @GetMapping("/listCompanyUser")
-    public AjaxResult listCompanyUser() {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.success(new ArrayList<>());
-        }
-        try {
-            return AjaxResult.success(fsAiWorkflowService.listCompanyUser());
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 查销售
-     */
-    @GetMapping("/getCompanyUserById/{companyUserId}")
-    public AjaxResult getCompanyUserById(@PathVariable("companyUserId") Long companyUserId) {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.error("请先选择租户");
-        }
-        try {
-            return AjaxResult.success(fsAiWorkflowService.getCompanyUserById(companyUserId));
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 查工作流已绑定的销售
-     */
-    @GetMapping("/getBindCompanyUserByWorkflowId/{workflowId}")
-    public AjaxResult getBindCompanyUserByWorkflowId(@PathVariable("workflowId") Long workflowId) {
-        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
-            return AjaxResult.error("请先选择租户");
-        }
-        try {
-            return AjaxResult.success(fsAiWorkflowService.getBindCompanyUserByWorkflowId(workflowId));
-        } finally {
-            clearDataSource();
-        }
-    }
-
-    /**
-     * 修改工作流绑定的销售 - admin端不支持直接写入
-     */
-    @PostMapping("/updateWorkflowBindCompanyUser")
-    public AjaxResult updateWorkflowBindCompanyUser(@RequestBody FsAiWorkflowUpdateBindWCParam param) {
-        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
-    }
-}
+//package com.fs.admin.controller;
+//
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.DataSourceType;
+//import com.fs.framework.datasource.DynamicDataSourceContextHolder;
+//import com.fs.framework.datasource.TenantDataSourceManager;
+//import com.fs.his.domain.FsAiWorkflow;
+//import com.fs.his.domain.FsAiWorkflowNodeType;
+//import com.fs.his.param.FsAiWorkflowSaveParam;
+//import com.fs.his.param.FsAiWorkflowUpdateBindWCParam;
+//import com.fs.his.service.IFsAiWorkflowService;
+//import com.fs.tenant.domain.TenantInfo;
+//import com.fs.tenant.mapper.TenantInfoMapper;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.ArrayList;
+//import java.util.List;
+//
+///**
+// * AI工作流桥接Controller - adminui端(fs-admin 8004)
+// * 替代 com.fs.his.controller.FsAiWorkflowController(已从admin扫描中排除)
+// * <p>
+// * AI工作流数据存储在租户库中,admin端需根据请求中的租户上下文切换数据源后查询。
+// * 请求头需携带 tenant-code 或 tenant-id 来指定目标租户。
+// *
+// * @author fs
+// * @date 2026-05-12
+// */
+//@RestController
+//@RequestMapping("/his/aiWorkflow")
+//public class AdminAiWorkflowBridgeController extends BaseController {
+//
+//    private static final Logger log = LoggerFactory.getLogger(AdminAiWorkflowBridgeController.class);
+//
+//    @Autowired(required = false)
+//    private IFsAiWorkflowService fsAiWorkflowService;
+//
+//    @Autowired(required = false)
+//    private TenantDataSourceManager tenantDataSourceManager;
+//
+//    @Autowired(required = false)
+//    private TenantInfoMapper tenantInfoMapper;
+//
+//    @Autowired
+//    private HttpServletRequest request;
+//
+//    /**
+//     * 尝试切换到租户数据源
+//     * @return true=切换成功,false=无租户上下文或切换失败
+//     */
+//    private boolean trySwitchToTenant() {
+//        if (tenantDataSourceManager == null || tenantInfoMapper == null) {
+//            log.debug("[AiWorkflowBridge] 多租户组件不可用,使用主库");
+//            return false;
+//        }
+//
+//        // 优先从请求头获取 tenant-id
+//        String tenantIdStr = request.getHeader("tenant-id");
+//        if (tenantIdStr == null || tenantIdStr.isEmpty()) {
+//            // 尝试 tenant-code
+//            String tenantCode = request.getHeader("tenant-code");
+//            if (tenantCode != null && !tenantCode.isEmpty()) {
+//                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+//                try {
+//                    TenantInfo info = tenantInfoMapper.getTenByCode(tenantCode);
+//                    if (info != null) {
+//                        tenantDataSourceManager.switchTenant(info);
+//                        log.debug("[AiWorkflowBridge] 通过 tenant-code={} 切换到租户: {}", tenantCode, info.getId());
+//                        return true;
+//                    }
+//                } finally {
+//                    // 如果没找到,已经切到MASTER,需要回切?
+//                }
+//            }
+//            // 尝试查询参数 tenantId
+//            tenantIdStr = request.getParameter("tenantId");
+//        }
+//
+//        if (tenantIdStr != null && !tenantIdStr.isEmpty()) {
+//            try {
+//                Long tenantId = Long.parseLong(tenantIdStr);
+//                tenantDataSourceManager.ensureSwitchByTenantId(tenantId);
+//                log.debug("[AiWorkflowBridge] 通过 tenant-id={} 切换到租户", tenantId);
+//                return true;
+//            } catch (NumberFormatException e) {
+//                log.warn("[AiWorkflowBridge] tenantId格式错误: {}", tenantIdStr);
+//            }
+//        }
+//
+//        return false;
+//    }
+//
+//    /**
+//     * 清理数据源上下文
+//     */
+//    private void clearDataSource() {
+//        if (tenantDataSourceManager != null) {
+//            tenantDataSourceManager.clear();
+//        }
+//    }
+//
+//    /**
+//     * 查询AI工作流列表
+//     */
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsAiWorkflow fsAiWorkflow) {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return getDataTable(new ArrayList<>());
+//        }
+//        try {
+//            startPage();
+//            List<FsAiWorkflow> list = fsAiWorkflowService.selectFsAiWorkflowList(fsAiWorkflow);
+//            return getDataTable(list);
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 导出AI工作流列表
+//     */
+//    @GetMapping("/export")
+//    public AjaxResult export(FsAiWorkflow fsAiWorkflow) {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.error("请先选择租户");
+//        }
+//        try {
+//            List<FsAiWorkflow> list = fsAiWorkflowService.selectFsAiWorkflowList(fsAiWorkflow);
+//            // 导出功能在admin端简化为返回数据
+//            return AjaxResult.success(list);
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 获取AI工作流详细信息(包含节点和连线)
+//     */
+//    @GetMapping(value = "/{workflowId}")
+//    public AjaxResult getInfo(@PathVariable("workflowId") Long workflowId) {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.error("请先选择租户");
+//        }
+//        try {
+//            return AjaxResult.success(fsAiWorkflowService.selectFsAiWorkflowById(workflowId));
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 保存AI工作流(新增或更新) - admin端不支持直接写入
+//     */
+//    @PostMapping("/save")
+//    public AjaxResult save(@RequestBody FsAiWorkflowSaveParam param) {
+//        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
+//    }
+//
+//    /**
+//     * 修改AI工作流状态 - admin端不支持直接写入
+//     */
+//    @PutMapping("/status/{workflowId}/{status}")
+//    public AjaxResult updateStatus(@PathVariable("workflowId") Long workflowId,
+//                                   @PathVariable("status") Integer status) {
+//        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
+//    }
+//
+//    /**
+//     * 删除AI工作流 - admin端不支持直接写入
+//     */
+//    @DeleteMapping("/{workflowIds}")
+//    public AjaxResult remove(@PathVariable Long[] workflowIds) {
+//        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
+//    }
+//
+//    /**
+//     * 复制AI工作流 - admin端不支持直接写入
+//     */
+//    @PostMapping("/copy/{workflowId}")
+//    public AjaxResult copy(@PathVariable("workflowId") Long workflowId) {
+//        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
+//    }
+//
+//    /**
+//     * 获取所有启用的节点类型
+//     */
+//    @GetMapping("/nodeTypes")
+//    public AjaxResult getNodeTypes() {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.success(new ArrayList<>());
+//        }
+//        try {
+//            List<FsAiWorkflowNodeType> list = fsAiWorkflowService.selectAllEnabledNodeTypes();
+//            return AjaxResult.success(list);
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 导出工作流流程图JSON
+//     */
+//    @GetMapping("/exportJson/{workflowId}")
+//    public AjaxResult exportJson(@PathVariable("workflowId") Long workflowId) {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.error("请先选择租户");
+//        }
+//        try {
+//            return AjaxResult.success(fsAiWorkflowService.exportWorkflowJson(workflowId));
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 分页销售
+//     */
+//    @GetMapping("/listCompanyUser")
+//    public AjaxResult listCompanyUser() {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.success(new ArrayList<>());
+//        }
+//        try {
+//            return AjaxResult.success(fsAiWorkflowService.listCompanyUser());
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 查销售
+//     */
+//    @GetMapping("/getCompanyUserById/{companyUserId}")
+//    public AjaxResult getCompanyUserById(@PathVariable("companyUserId") Long companyUserId) {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.error("请先选择租户");
+//        }
+//        try {
+//            return AjaxResult.success(fsAiWorkflowService.getCompanyUserById(companyUserId));
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 查工作流已绑定的销售
+//     */
+//    @GetMapping("/getBindCompanyUserByWorkflowId/{workflowId}")
+//    public AjaxResult getBindCompanyUserByWorkflowId(@PathVariable("workflowId") Long workflowId) {
+//        if (fsAiWorkflowService == null || !trySwitchToTenant()) {
+//            return AjaxResult.error("请先选择租户");
+//        }
+//        try {
+//            return AjaxResult.success(fsAiWorkflowService.getBindCompanyUserByWorkflowId(workflowId));
+//        } finally {
+//            clearDataSource();
+//        }
+//    }
+//
+//    /**
+//     * 修改工作流绑定的销售 - admin端不支持直接写入
+//     */
+//    @PostMapping("/updateWorkflowBindCompanyUser")
+//    public AjaxResult updateWorkflowBindCompanyUser(@RequestBody FsAiWorkflowUpdateBindWCParam param) {
+//        return AjaxResult.error("总后台不支持直接操作租户工作流,请在租户端操作");
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminCommissionRecordController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.List;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
@@ -21,7 +20,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台-代理返佣记录控制器
  * 数据来源:tenant_consume_record (proxy_id IS NOT NULL)
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/commission-record")
 public class AdminCommissionRecordController extends BaseController {

+ 452 - 454
fs-agent/src/main/java/com/fs/admin/controller/AdminCompanyBridgeController.java

@@ -1,454 +1,452 @@
-package com.fs.admin.controller;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.company.domain.*;
-import com.fs.company.param.*;
-import com.fs.company.service.*;
-import com.fs.company.vo.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.*;
-
-/**
- * 公司管理桥接Controller - adminui端(fs-admin 8004)
- * 桥接 company 服务层,解决 com.fs.company.controller 被 fs-admin 排除的问题
- * 覆盖所有 /company/* 在 adminui 上返回 404 的端点
- */
-@Profile("admin")
-@RestController
-public class AdminCompanyBridgeController extends BaseController {
-
-    @Autowired(required = false)
-    private ICompanyVoiceCallerService companyVoiceCallerService;
-    @Autowired(required = false)
-    private ICompanyVoiceLogsService companyVoiceLogsService;
-    @Autowired(required = false)
-    private ICompanyVoiceApiService companyVoiceApiService;
-    @Autowired(required = false)
-    private ICompanyVoiceApiTenantService companyVoiceApiTenantService;
-    @Autowired(required = false)
-    private ICompanyVoicePackageOrderService companyVoicePackageOrderService;
-    @Autowired(required = false)
-    private ICompanySmsService companySmsService;
-    @Autowired(required = false)
-    private ICompanySmsLogsService companySmsLogsService;
-    @Autowired(required = false)
-    private ICompanySmsOrderService companySmsOrderService;
-    @Autowired(required = false)
-    private ICompanySmsTempService companySmsTempService;
-    @Autowired(required = false)
-    private ICompanySmsPackageService companySmsPackageService;
-    @Autowired(required = false)
-    private ICompanyMoneyLogsService companyMoneyLogsService;
-    @Autowired(required = false)
-    private ICompanyProfitService companyProfitService;
-    @Autowired(required = false)
-    private ICompanyRedPacketBalanceLogsService companyRedPacketBalanceLogsService;
-    @Autowired(required = false)
-    private ICompanyDomainService companyDomainService;
-    @Autowired(required = false)
-    private ICompanyDomainBindService companyDomainBindService;
-    @Autowired(required = false)
-    private ICompanyWxAccountService companyWxAccountService;
-    @Autowired(required = false)
-    private ICompanyWxClientService companyWxClientService;
-    @Autowired(required = false)
-    private ICompanyWxDialogService companyWxDialogService;
-    @Autowired(required = false)
-    private ICompanyOperLogService companyOperLogService;
-
-    // ========== 通话接口管理 /company/companyVoiceApi ==========
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
-    @GetMapping("/company/companyVoiceApi/list")
-    public TableDataInfo companyVoiceApiList(CompanyVoiceApi param) {
-        startPage();
-        List<CompanyVoiceApi> list = companyVoiceApiService != null ?
-            companyVoiceApiService.selectCompanyVoiceApiList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 通话接口-租户分配 ==========
-    /** 查询接口已分配的租户列表 */
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
-    @GetMapping("/admin/voice-api/tenants/{apiId}")
-    public AjaxResult voiceApiTenants(@PathVariable Long apiId) {
-        List<CompanyVoiceApiTenant> list = companyVoiceApiTenantService != null ?
-            companyVoiceApiTenantService.selectTenantsByApiId(apiId) : new ArrayList<>();
-        return AjaxResult.success(list);
-    }
-
-    /** 查询租户已分配的接口列表 */
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
-    @GetMapping("/admin/voice-api/apis/{companyId}")
-    public AjaxResult voiceApiApis(@PathVariable Long companyId) {
-        List<CompanyVoiceApiTenant> list = companyVoiceApiTenantService != null ?
-            companyVoiceApiTenantService.selectEnabledApisByCompanyId(companyId) : new ArrayList<>();
-        return AjaxResult.success(list);
-    }
-
-    /** 分配接口给租户(支持批量) */
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:edit')")
-    @Log(title = "分配通话接口给租户", businessType = BusinessType.INSERT)
-    @PostMapping("/admin/voice-api/assignTenants")
-    public AjaxResult assignTenants(@RequestBody Map<String, Object> body) {
-        if (companyVoiceApiTenantService == null) return AjaxResult.error("服务未就绪");
-        Long apiId = Long.valueOf(body.get("apiId").toString());
-        @SuppressWarnings("unchecked")
-        List<Integer> companyIds = (List<Integer>) body.get("companyIds");
-        List<Long> ids = new ArrayList<>();
-        for (Integer id : companyIds) { ids.add(id.longValue()); }
-        companyVoiceApiTenantService.batchAssignTenants(apiId, ids);
-        return AjaxResult.success();
-    }
-
-    /** 取消分配 */
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:edit')")
-    @Log(title = "取消通话接口分配", businessType = BusinessType.DELETE)
-    @DeleteMapping("/admin/voice-api/unassignTenant")
-    public AjaxResult unassignTenant(@RequestParam Long apiId, @RequestParam Long companyId) {
-        if (companyVoiceApiTenantService == null) return AjaxResult.error("服务未就绪");
-        return toAjax(companyVoiceApiTenantService.unassignTenant(apiId, companyId));
-    }
-
-    /** 查询接口已分配租户数量 */
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
-    @GetMapping("/admin/voice-api/tenantCount/{apiId}")
-    public AjaxResult voiceApiTenantCount(@PathVariable Long apiId) {
-        Integer count = companyVoiceApiTenantService != null ?
-            companyVoiceApiTenantService.selectTenantCountByApiId(apiId) : 0;
-        return AjaxResult.success("ok", count);
-    }
-
-    // ========== 坐席管理 /company/companyVoiceCaller ==========
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceCaller:list')")
-    @GetMapping("/company/companyVoiceCaller/list")
-    public TableDataInfo companyVoiceCallerList(CompanyVoiceCaller param) {
-        startPage();
-        List<CompanyVoiceCaller> list = companyVoiceCallerService != null ?
-            companyVoiceCallerService.selectCompanyVoiceCallerList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 通话套餐订单 /company/companyVoicePackageOrder ==========
-    @PreAuthorize("@ss.hasPermi('company:companyVoicePackageOrder:list')")
-    @GetMapping("/company/companyVoicePackageOrder/list")
-    public TableDataInfo companyVoicePackageOrderList(CompanyVoicePackageOrder param) {
-        startPage();
-        List<CompanyVoicePackageOrder> list = companyVoicePackageOrderService != null ?
-            companyVoicePackageOrderService.selectCompanyVoicePackageOrderList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 通话记录 /company/companyVoiceLogs ==========
-    @PreAuthorize("@ss.hasPermi('company:companyVoiceLogs:list')")
-    @GetMapping("/company/companyVoiceLogs/list")
-    public TableDataInfo companyVoiceLogsList(CompanyVoiceLogs param) {
-        startPage();
-        List<CompanyVoiceLogs> list = companyVoiceLogsService != null ?
-            companyVoiceLogsService.selectCompanyVoiceLogsList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    @Autowired(required = false)
-    private ICompanyVoiceMobileService companyVoiceMobileService;
-    @Autowired(required = false)
-    private ICompanyVoicePackageService companyVoicePackageService;
-    @Autowired(required = false)
-    private ICompanyVoiceBlacklistService companyVoiceBlacklistService;
-    @Autowired(required = false)
-    private ICompanyVoiceConfigService companyVoiceConfigService;
-    @Autowired(required = false)
-    private ICompanyVoiceService companyVoiceService;
-
-    // ========== 号码管理 /company/companyVoiceMobile ==========
-    @GetMapping("/company/companyVoiceMobile/list")
-    public TableDataInfo companyVoiceMobileList(CompanyVoiceMobile param) {
-        startPage();
-        List<CompanyVoiceMobile> list = companyVoiceMobileService != null ?
-            companyVoiceMobileService.selectCompanyVoiceMobileList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 通话套餐 /company/companyVoicePackage ==========
-    @GetMapping("/company/companyVoicePackage/list")
-    public TableDataInfo companyVoicePackageList(CompanyVoicePackage param) {
-        startPage();
-        List<CompanyVoicePackage> list = companyVoicePackageService != null ?
-            companyVoicePackageService.selectCompanyVoicePackageList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 黑名单 /company/companyVoiceBlacklist ==========
-    @GetMapping("/company/companyVoiceBlacklist/list")
-    public TableDataInfo companyVoiceBlacklistList(CompanyVoiceBlacklist param) {
-        startPage();
-        List<CompanyVoiceBlacklist> list = companyVoiceBlacklistService != null ?
-            companyVoiceBlacklistService.selectCompanyVoiceBlacklistList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 频率配置 /company/companyVoiceConfig ==========
-    @GetMapping("/company/companyVoiceConfig/list")
-    public TableDataInfo companyVoiceConfigList(CompanyVoiceConfig param) {
-        startPage();
-        List<CompanyVoiceConfig> list = companyVoiceConfigService != null ?
-            companyVoiceConfigService.selectCompanyVoiceConfigList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 通话包 /company/companyVoice ==========
-    @GetMapping("/company/companyVoice/list")
-    public TableDataInfo companyVoiceList(CompanyVoice param) {
-        startPage();
-        List<CompanyVoice> list = companyVoiceService != null ?
-            companyVoiceService.selectCompanyVoiceList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 短信模板 /company/companySmsTemp ==========
-    @PreAuthorize("@ss.hasPermi('company:companySmsTemp:list')")
-    @GetMapping("/company/companySmsTemp/list")
-    public TableDataInfo companySmsTempList(CompanySmsTemp param) {
-        startPage();
-        List<CompanySmsTemp> list = companySmsTempService != null ?
-            companySmsTempService.selectCompanySmsTempList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 短信套餐 /company/companySmsPackage ==========
-    @PreAuthorize("@ss.hasPermi('company:companySmsPackage:list')")
-    @GetMapping("/company/companySmsPackage/list")
-    public TableDataInfo companySmsPackageList(CompanySmsPackage param) {
-        startPage();
-        List<CompanySmsPackage> list = companySmsPackageService != null ?
-            companySmsPackageService.selectCompanySmsPackageList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 公司短信包 /company/companySms ==========
-    @PreAuthorize("@ss.hasPermi('company:companySms:list')")
-    @GetMapping("/company/companySms/list")
-    public TableDataInfo companySmsList() {
-        startPage();
-        List<?> list = companySmsService != null ?
-            companySmsService.selectCompanySmsList(null) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 短信订单 /company/companySmsOrder ==========
-    @PreAuthorize("@ss.hasPermi('company:companySmsOrder:list')")
-    @GetMapping("/company/companySmsOrder/list")
-    public TableDataInfo companySmsOrderList() {
-        startPage();
-        List<?> list = companySmsOrderService != null ?
-            companySmsOrderService.selectCompanySmsOrderList(null) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 短信记录 /company/companySmsLogs ==========
-    @PreAuthorize("@ss.hasPermi('company:companySmsLogs:list')")
-    @GetMapping("/company/companySmsLogs/list")
-    public TableDataInfo companySmsLogsList() {
-        startPage();
-        List<?> list = companySmsLogsService != null ?
-            companySmsLogsService.selectCompanySmsLogsList(null) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 账户流水 /company/companyMoneyLogs ==========
-    @PreAuthorize("@ss.hasPermi('company:companyMoneyLogs:list')")
-    @GetMapping("/company/companyMoneyLogs/list")
-    public TableDataInfo companyMoneyLogsList(CompanyMoneyLogs param) {
-        startPage();
-        List<CompanyMoneyLogs> list = companyMoneyLogsService != null ?
-            companyMoneyLogsService.selectCompanyMoneyLogsList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 公司提现 /company/companyProfit ==========
-    @PreAuthorize("@ss.hasPermi('company:companyProfit:list')")
-    @GetMapping("/company/companyProfit/list")
-    public TableDataInfo companyProfitList(CompanyProfit param) {
-        startPage();
-        List<CompanyProfit> list = companyProfitService != null ?
-            companyProfitService.selectCompanyProfitList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 红包余额流水 /company/companyRedPacketBalanceLogs ==========
-    @PreAuthorize("@ss.hasPermi('company:companyRedPacketBalanceLogs:list')")
-    @GetMapping("/company/companyRedPacketBalanceLogs/list")
-    public TableDataInfo companyRedPacketBalanceLogsList(CompanyRedPacketBalanceLogs param) {
-        startPage();
-        List<CompanyRedPacketBalanceLogs> list = companyRedPacketBalanceLogsService != null ?
-            companyRedPacketBalanceLogsService.selectCompanyRedPacketBalanceLogsList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 域名管理 /company/companyDomain ==========
-    @PreAuthorize("@ss.hasPermi('company:companyDomain:list')")
-    @GetMapping("/company/companyDomain/list")
-    public TableDataInfo companyDomainList() {
-        startPage();
-        List<?> list = companyDomainService != null ?
-            companyDomainService.selectCompanyDomainList(null) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 域名分配 /company/companyDomainBind ==========
-    @PreAuthorize("@ss.hasPermi('company:companyDomainBind:list')")
-    @GetMapping("/company/companyDomainBind/list")
-    public TableDataInfo companyDomainBindList() {
-        startPage();
-        List<?> list = companyDomainBindService != null ?
-            companyDomainBindService.selectCompanyDomainBindList(null) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    @Autowired(required = false)
-    private ICompanyDomainBindUserService companyDomainBindUserService;
-
-    // ========== 域名分配中间表 /company/companyBindUser ==========
-    @PreAuthorize("@ss.hasPermi('company:companyBindUser:list')")
-    @GetMapping("/company/companyBindUser/list")
-    public TableDataInfo companyBindUserList(CompanyDomainBindUserParam param) {
-        startPage();
-        List<CompanyDomainBindUserVo> list = companyDomainBindUserService != null ?
-            companyDomainBindUserService.selectCompanyDomainBindUserList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 个微账号 /company/companyWx ==========
-    @PreAuthorize("@ss.hasPermi('company:companyWx:list')")
-    @GetMapping("/company/companyWx/list")
-    public TableDataInfo companyWxList() {
-        startPage();
-        List<?> list = companyWxAccountService != null ?
-            companyWxAccountService.list() : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 个微客户 /company/companyClient ==========
-    @PreAuthorize("@ss.hasPermi('company:companyClient:list')")
-    @GetMapping("/company/companyClient/list")
-    public TableDataInfo companyClientList() {
-        startPage();
-        List<?> list = companyWxClientService != null ?
-            companyWxClientService.list() : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 加微话术 /company/wxDialog ==========
-    @PreAuthorize("@ss.hasPermi('company:wxDialog:list')")
-    @GetMapping("/company/wxDialog/list")
-    public TableDataInfo companyWxDialogList(CompanyWxDialog param) {
-        startPage();
-        List<CompanyWxDialog> list = companyWxDialogService != null ?
-            companyWxDialogService.selectCompanyWxDialogList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 操作日志 /company/companyOperLog ==========
-    @PreAuthorize("@ss.hasPermi('company:companyOperLog:list')")
-    @GetMapping("/company/companyOperLog/list")
-    public TableDataInfo companyOperLogList(CompanyOperLog param) {
-        startPage();
-        List<CompanyOperLog> list = companyOperLogService != null ?
-            companyOperLogService.selectCompanyOperLogList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== saasui company管理端点(角色/菜单/部门/岗位/员工/充值/统计) ==========
-    @Autowired(required = false)
-    private ICompanyRoleService companyRoleService;
-    @Autowired(required = false)
-    private ICompanyMenuService companyMenuService;
-    @Autowired(required = false)
-    private ICompanyDeptService companyDeptService;
-    @Autowired(required = false)
-    private ICompanyPostService companyPostService;
-    @Autowired(required = false)
-    private ICompanyUserService companyUserService;
-    @Autowired(required = false)
-    private ICompanyRechargeService companyRechargeService;
-
-    @GetMapping("/company/role/list")
-    public TableDataInfo companyRoleList(CompanyRole param) {
-        startPage();
-        List<CompanyRole> list = companyRoleService != null ?
-            companyRoleService.selectCompanyRoleList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    @GetMapping("/company/menu/list")
-    public AjaxResult companyMenuList(CompanyMenu param) {
-        List<CompanyMenu> list = companyMenuService != null ?
-            companyMenuService.selectCompanyMenuList(param) : new ArrayList<>();
-        return AjaxResult.success(list);
-    }
-
-    @GetMapping("/company/dept/list")
-    public AjaxResult companyDeptList(CompanyDept param) {
-        List<CompanyDept> list = companyDeptService != null ?
-            companyDeptService.selectCompanyDeptList(param) : new ArrayList<>();
-        return AjaxResult.success(list);
-    }
-
-    @GetMapping("/company/post/list")
-    public TableDataInfo companyPostList(CompanyPost param) {
-        startPage();
-        List<CompanyPost> list = companyPostService != null ?
-            companyPostService.selectCompanyPostList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    @GetMapping("/company/user/list")
-    public TableDataInfo companyUserList(CompanyUser param) {
-        startPage();
-        List<CompanyUser> list = companyUserService != null ?
-            companyUserService.selectCompanyUserList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    @GetMapping("/company/apply/list")
-    public TableDataInfo companyApplyList(@RequestParam Map<String, Object> param) {
-        startPage();
-        // ICompanyUserChangeApplyService uses Map-based query
-        return getDataTable(new ArrayList<>());
-    }
-
-    @PostMapping({"/company/companyPackageOrder/buy", "/company/companySmsPackage/buy",
-                  "/company/companyRecharge/doRecharge"})
-    public AjaxResult companyOrderActions(@RequestBody(required = false) Map<String, Object> body) {
-        return AjaxResult.success("操作受理成功");
-    }
-
-    @GetMapping({"/company/companyPackageOrder/buy", "/company/companySmsPackage/buy",
-                 "/company/companyRecharge/doRecharge"})
-    public AjaxResult companyOrderActionsGet() { return AjaxResult.success(); }
-
-    @GetMapping({"/company/companyRecharge/list", "/company/companyRecharge/doRecharge"})
-    public TableDataInfo companyRechargeLists(CompanyRecharge param) {
-        startPage();
-        List<CompanyRecharge> list = companyRechargeService != null ?
-            companyRechargeService.selectCompanyRechargeList(param) : new ArrayList<>();
-        return getDataTable(list);
-    }
-
-    // ========== 公司统计 /company/statistics ==========
-    @GetMapping({"/company/statistics/voiceLogs", "/company/statistics/myVoiceLogs",
-                 "/company/statistics/smsLogs"})
-    public AjaxResult companyStatistics() {
-        Map<String, Object> data = new HashMap<>();
-        data.put("total", 0);
-        data.put("rows", new ArrayList<>());
-        return AjaxResult.success(data);
-    }
-}
+//package com.fs.admin.controller;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.company.domain.*;
+//import com.fs.company.param.*;
+//import com.fs.company.service.*;
+//import com.fs.company.vo.*;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.*;
+//
+///**
+// * 公司管理桥接Controller - adminui端(fs-admin 8004)
+// * 桥接 company 服务层,解决 com.fs.company.controller 被 fs-admin 排除的问题
+// * 覆盖所有 /company/* 在 adminui 上返回 404 的端点
+// */
+//@RestController
+//public class AdminCompanyBridgeController extends BaseController {
+//
+//    @Autowired(required = false)
+//    private ICompanyVoiceCallerService companyVoiceCallerService;
+//    @Autowired(required = false)
+//    private ICompanyVoiceLogsService companyVoiceLogsService;
+//    @Autowired(required = false)
+//    private ICompanyVoiceApiService companyVoiceApiService;
+//    @Autowired(required = false)
+//    private ICompanyVoiceApiTenantService companyVoiceApiTenantService;
+//    @Autowired(required = false)
+//    private ICompanyVoicePackageOrderService companyVoicePackageOrderService;
+//    @Autowired(required = false)
+//    private ICompanySmsService companySmsService;
+//    @Autowired(required = false)
+//    private ICompanySmsLogsService companySmsLogsService;
+//    @Autowired(required = false)
+//    private ICompanySmsOrderService companySmsOrderService;
+//    @Autowired(required = false)
+//    private ICompanySmsTempService companySmsTempService;
+//    @Autowired(required = false)
+//    private ICompanySmsPackageService companySmsPackageService;
+//    @Autowired(required = false)
+//    private ICompanyMoneyLogsService companyMoneyLogsService;
+//    @Autowired(required = false)
+//    private ICompanyProfitService companyProfitService;
+//    @Autowired(required = false)
+//    private ICompanyRedPacketBalanceLogsService companyRedPacketBalanceLogsService;
+//    @Autowired(required = false)
+//    private ICompanyDomainService companyDomainService;
+//    @Autowired(required = false)
+//    private ICompanyDomainBindService companyDomainBindService;
+//    @Autowired(required = false)
+//    private ICompanyWxAccountService companyWxAccountService;
+//    @Autowired(required = false)
+//    private ICompanyWxClientService companyWxClientService;
+//    @Autowired(required = false)
+//    private ICompanyWxDialogService companyWxDialogService;
+//    @Autowired(required = false)
+//    private ICompanyOperLogService companyOperLogService;
+//
+//    // ========== 通话接口管理 /company/companyVoiceApi ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
+//    @GetMapping("/company/companyVoiceApi/list")
+//    public TableDataInfo companyVoiceApiList(CompanyVoiceApi param) {
+//        startPage();
+//        List<CompanyVoiceApi> list = companyVoiceApiService != null ?
+//            companyVoiceApiService.selectCompanyVoiceApiList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 通话接口-租户分配 ==========
+//    /** 查询接口已分配的租户列表 */
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
+//    @GetMapping("/admin/voice-api/tenants/{apiId}")
+//    public AjaxResult voiceApiTenants(@PathVariable Long apiId) {
+//        List<CompanyVoiceApiTenant> list = companyVoiceApiTenantService != null ?
+//            companyVoiceApiTenantService.selectTenantsByApiId(apiId) : new ArrayList<>();
+//        return AjaxResult.success(list);
+//    }
+//
+//    /** 查询租户已分配的接口列表 */
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
+//    @GetMapping("/admin/voice-api/apis/{companyId}")
+//    public AjaxResult voiceApiApis(@PathVariable Long companyId) {
+//        List<CompanyVoiceApiTenant> list = companyVoiceApiTenantService != null ?
+//            companyVoiceApiTenantService.selectEnabledApisByCompanyId(companyId) : new ArrayList<>();
+//        return AjaxResult.success(list);
+//    }
+//
+//    /** 分配接口给租户(支持批量) */
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:edit')")
+//    @Log(title = "分配通话接口给租户", businessType = BusinessType.INSERT)
+//    @PostMapping("/admin/voice-api/assignTenants")
+//    public AjaxResult assignTenants(@RequestBody Map<String, Object> body) {
+//        if (companyVoiceApiTenantService == null) return AjaxResult.error("服务未就绪");
+//        Long apiId = Long.valueOf(body.get("apiId").toString());
+//        @SuppressWarnings("unchecked")
+//        List<Integer> companyIds = (List<Integer>) body.get("companyIds");
+//        List<Long> ids = new ArrayList<>();
+//        for (Integer id : companyIds) { ids.add(id.longValue()); }
+//        companyVoiceApiTenantService.batchAssignTenants(apiId, ids);
+//        return AjaxResult.success();
+//    }
+//
+//    /** 取消分配 */
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:edit')")
+//    @Log(title = "取消通话接口分配", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/admin/voice-api/unassignTenant")
+//    public AjaxResult unassignTenant(@RequestParam Long apiId, @RequestParam Long companyId) {
+//        if (companyVoiceApiTenantService == null) return AjaxResult.error("服务未就绪");
+//        return toAjax(companyVoiceApiTenantService.unassignTenant(apiId, companyId));
+//    }
+//
+//    /** 查询接口已分配租户数量 */
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceApi:list')")
+//    @GetMapping("/admin/voice-api/tenantCount/{apiId}")
+//    public AjaxResult voiceApiTenantCount(@PathVariable Long apiId) {
+//        Integer count = companyVoiceApiTenantService != null ?
+//            companyVoiceApiTenantService.selectTenantCountByApiId(apiId) : 0;
+//        return AjaxResult.success("ok", count);
+//    }
+//
+//    // ========== 坐席管理 /company/companyVoiceCaller ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceCaller:list')")
+//    @GetMapping("/company/companyVoiceCaller/list")
+//    public TableDataInfo companyVoiceCallerList(CompanyVoiceCaller param) {
+//        startPage();
+//        List<CompanyVoiceCaller> list = companyVoiceCallerService != null ?
+//            companyVoiceCallerService.selectCompanyVoiceCallerList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 通话套餐订单 /company/companyVoicePackageOrder ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyVoicePackageOrder:list')")
+//    @GetMapping("/company/companyVoicePackageOrder/list")
+//    public TableDataInfo companyVoicePackageOrderList(CompanyVoicePackageOrder param) {
+//        startPage();
+//        List<CompanyVoicePackageOrder> list = companyVoicePackageOrderService != null ?
+//            companyVoicePackageOrderService.selectCompanyVoicePackageOrderList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 通话记录 /company/companyVoiceLogs ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyVoiceLogs:list')")
+//    @GetMapping("/company/companyVoiceLogs/list")
+//    public TableDataInfo companyVoiceLogsList(CompanyVoiceLogs param) {
+//        startPage();
+//        List<CompanyVoiceLogs> list = companyVoiceLogsService != null ?
+//            companyVoiceLogsService.selectCompanyVoiceLogsList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    @Autowired(required = false)
+//    private ICompanyVoiceMobileService companyVoiceMobileService;
+//    @Autowired(required = false)
+//    private ICompanyVoicePackageService companyVoicePackageService;
+//    @Autowired(required = false)
+//    private ICompanyVoiceBlacklistService companyVoiceBlacklistService;
+//    @Autowired(required = false)
+//    private ICompanyVoiceConfigService companyVoiceConfigService;
+//    @Autowired(required = false)
+//    private ICompanyVoiceService companyVoiceService;
+//
+//    // ========== 号码管理 /company/companyVoiceMobile ==========
+//    @GetMapping("/company/companyVoiceMobile/list")
+//    public TableDataInfo companyVoiceMobileList(CompanyVoiceMobile param) {
+//        startPage();
+//        List<CompanyVoiceMobile> list = companyVoiceMobileService != null ?
+//            companyVoiceMobileService.selectCompanyVoiceMobileList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 通话套餐 /company/companyVoicePackage ==========
+//    @GetMapping("/company/companyVoicePackage/list")
+//    public TableDataInfo companyVoicePackageList(CompanyVoicePackage param) {
+//        startPage();
+//        List<CompanyVoicePackage> list = companyVoicePackageService != null ?
+//            companyVoicePackageService.selectCompanyVoicePackageList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 黑名单 /company/companyVoiceBlacklist ==========
+//    @GetMapping("/company/companyVoiceBlacklist/list")
+//    public TableDataInfo companyVoiceBlacklistList(CompanyVoiceBlacklist param) {
+//        startPage();
+//        List<CompanyVoiceBlacklist> list = companyVoiceBlacklistService != null ?
+//            companyVoiceBlacklistService.selectCompanyVoiceBlacklistList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 频率配置 /company/companyVoiceConfig ==========
+//    @GetMapping("/company/companyVoiceConfig/list")
+//    public TableDataInfo companyVoiceConfigList(CompanyVoiceConfig param) {
+//        startPage();
+//        List<CompanyVoiceConfig> list = companyVoiceConfigService != null ?
+//            companyVoiceConfigService.selectCompanyVoiceConfigList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 通话包 /company/companyVoice ==========
+//    @GetMapping("/company/companyVoice/list")
+//    public TableDataInfo companyVoiceList(CompanyVoice param) {
+//        startPage();
+//        List<CompanyVoice> list = companyVoiceService != null ?
+//            companyVoiceService.selectCompanyVoiceList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 短信模板 /company/companySmsTemp ==========
+//    @PreAuthorize("@ss.hasPermi('company:companySmsTemp:list')")
+//    @GetMapping("/company/companySmsTemp/list")
+//    public TableDataInfo companySmsTempList(CompanySmsTemp param) {
+//        startPage();
+//        List<CompanySmsTemp> list = companySmsTempService != null ?
+//            companySmsTempService.selectCompanySmsTempList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 短信套餐 /company/companySmsPackage ==========
+//    @PreAuthorize("@ss.hasPermi('company:companySmsPackage:list')")
+//    @GetMapping("/company/companySmsPackage/list")
+//    public TableDataInfo companySmsPackageList(CompanySmsPackage param) {
+//        startPage();
+//        List<CompanySmsPackage> list = companySmsPackageService != null ?
+//            companySmsPackageService.selectCompanySmsPackageList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 公司短信包 /company/companySms ==========
+//    @PreAuthorize("@ss.hasPermi('company:companySms:list')")
+//    @GetMapping("/company/companySms/list")
+//    public TableDataInfo companySmsList() {
+//        startPage();
+//        List<?> list = companySmsService != null ?
+//            companySmsService.selectCompanySmsList(null) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 短信订单 /company/companySmsOrder ==========
+//    @PreAuthorize("@ss.hasPermi('company:companySmsOrder:list')")
+//    @GetMapping("/company/companySmsOrder/list")
+//    public TableDataInfo companySmsOrderList() {
+//        startPage();
+//        List<?> list = companySmsOrderService != null ?
+//            companySmsOrderService.selectCompanySmsOrderList(null) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 短信记录 /company/companySmsLogs ==========
+//    @PreAuthorize("@ss.hasPermi('company:companySmsLogs:list')")
+//    @GetMapping("/company/companySmsLogs/list")
+//    public TableDataInfo companySmsLogsList() {
+//        startPage();
+//        List<?> list = companySmsLogsService != null ?
+//            companySmsLogsService.selectCompanySmsLogsList(null) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 账户流水 /company/companyMoneyLogs ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyMoneyLogs:list')")
+//    @GetMapping("/company/companyMoneyLogs/list")
+//    public TableDataInfo companyMoneyLogsList(CompanyMoneyLogs param) {
+//        startPage();
+//        List<CompanyMoneyLogs> list = companyMoneyLogsService != null ?
+//            companyMoneyLogsService.selectCompanyMoneyLogsList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 公司提现 /company/companyProfit ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyProfit:list')")
+//    @GetMapping("/company/companyProfit/list")
+//    public TableDataInfo companyProfitList(CompanyProfit param) {
+//        startPage();
+//        List<CompanyProfit> list = companyProfitService != null ?
+//            companyProfitService.selectCompanyProfitList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 红包余额流水 /company/companyRedPacketBalanceLogs ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyRedPacketBalanceLogs:list')")
+//    @GetMapping("/company/companyRedPacketBalanceLogs/list")
+//    public TableDataInfo companyRedPacketBalanceLogsList(CompanyRedPacketBalanceLogs param) {
+//        startPage();
+//        List<CompanyRedPacketBalanceLogs> list = companyRedPacketBalanceLogsService != null ?
+//            companyRedPacketBalanceLogsService.selectCompanyRedPacketBalanceLogsList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 域名管理 /company/companyDomain ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyDomain:list')")
+//    @GetMapping("/company/companyDomain/list")
+//    public TableDataInfo companyDomainList() {
+//        startPage();
+//        List<?> list = companyDomainService != null ?
+//            companyDomainService.selectCompanyDomainList(null) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 域名分配 /company/companyDomainBind ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyDomainBind:list')")
+//    @GetMapping("/company/companyDomainBind/list")
+//    public TableDataInfo companyDomainBindList() {
+//        startPage();
+//        List<?> list = companyDomainBindService != null ?
+//            companyDomainBindService.selectCompanyDomainBindList(null) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    @Autowired(required = false)
+//    private ICompanyDomainBindUserService companyDomainBindUserService;
+//
+//    // ========== 域名分配中间表 /company/companyBindUser ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyBindUser:list')")
+//    @GetMapping("/company/companyBindUser/list")
+//    public TableDataInfo companyBindUserList(CompanyDomainBindUserParam param) {
+//        startPage();
+//        List<CompanyDomainBindUserVo> list = companyDomainBindUserService != null ?
+//            companyDomainBindUserService.selectCompanyDomainBindUserList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 个微账号 /company/companyWx ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyWx:list')")
+//    @GetMapping("/company/companyWx/list")
+//    public TableDataInfo companyWxList() {
+//        startPage();
+//        List<?> list = companyWxAccountService != null ?
+//            companyWxAccountService.list() : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 个微客户 /company/companyClient ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyClient:list')")
+//    @GetMapping("/company/companyClient/list")
+//    public TableDataInfo companyClientList() {
+//        startPage();
+//        List<?> list = companyWxClientService != null ?
+//            companyWxClientService.list() : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 加微话术 /company/wxDialog ==========
+//    @PreAuthorize("@ss.hasPermi('company:wxDialog:list')")
+//    @GetMapping("/company/wxDialog/list")
+//    public TableDataInfo companyWxDialogList(CompanyWxDialog param) {
+//        startPage();
+//        List<CompanyWxDialog> list = companyWxDialogService != null ?
+//            companyWxDialogService.selectCompanyWxDialogList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 操作日志 /company/companyOperLog ==========
+//    @PreAuthorize("@ss.hasPermi('company:companyOperLog:list')")
+//    @GetMapping("/company/companyOperLog/list")
+//    public TableDataInfo companyOperLogList(CompanyOperLog param) {
+//        startPage();
+//        List<CompanyOperLog> list = companyOperLogService != null ?
+//            companyOperLogService.selectCompanyOperLogList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== saasui company管理端点(角色/菜单/部门/岗位/员工/充值/统计) ==========
+//    @Autowired(required = false)
+//    private ICompanyRoleService companyRoleService;
+//    @Autowired(required = false)
+//    private ICompanyMenuService companyMenuService;
+//    @Autowired(required = false)
+//    private ICompanyDeptService companyDeptService;
+//    @Autowired(required = false)
+//    private ICompanyPostService companyPostService;
+//    @Autowired(required = false)
+//    private ICompanyUserService companyUserService;
+//    @Autowired(required = false)
+//    private ICompanyRechargeService companyRechargeService;
+//
+//    @GetMapping("/company/role/list")
+//    public TableDataInfo companyRoleList(CompanyRole param) {
+//        startPage();
+//        List<CompanyRole> list = companyRoleService != null ?
+//            companyRoleService.selectCompanyRoleList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    @GetMapping("/company/menu/list")
+//    public AjaxResult companyMenuList(CompanyMenu param) {
+//        List<CompanyMenu> list = companyMenuService != null ?
+//            companyMenuService.selectCompanyMenuList(param) : new ArrayList<>();
+//        return AjaxResult.success(list);
+//    }
+//
+//    @GetMapping("/company/dept/list")
+//    public AjaxResult companyDeptList(CompanyDept param) {
+//        List<CompanyDept> list = companyDeptService != null ?
+//            companyDeptService.selectCompanyDeptList(param) : new ArrayList<>();
+//        return AjaxResult.success(list);
+//    }
+//
+//    @GetMapping("/company/post/list")
+//    public TableDataInfo companyPostList(CompanyPost param) {
+//        startPage();
+//        List<CompanyPost> list = companyPostService != null ?
+//            companyPostService.selectCompanyPostList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    @GetMapping("/company/user/list")
+//    public TableDataInfo companyUserList(CompanyUser param) {
+//        startPage();
+//        List<CompanyUser> list = companyUserService != null ?
+//            companyUserService.selectCompanyUserList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    @GetMapping("/company/apply/list")
+//    public TableDataInfo companyApplyList(@RequestParam Map<String, Object> param) {
+//        startPage();
+//        // ICompanyUserChangeApplyService uses Map-based query
+//        return getDataTable(new ArrayList<>());
+//    }
+//
+//    @PostMapping({"/company/companyPackageOrder/buy", "/company/companySmsPackage/buy",
+//                  "/company/companyRecharge/doRecharge"})
+//    public AjaxResult companyOrderActions(@RequestBody(required = false) Map<String, Object> body) {
+//        return AjaxResult.success("操作受理成功");
+//    }
+//
+//    @GetMapping({"/company/companyPackageOrder/buy", "/company/companySmsPackage/buy",
+//                 "/company/companyRecharge/doRecharge"})
+//    public AjaxResult companyOrderActionsGet() { return AjaxResult.success(); }
+//
+//    @GetMapping({"/company/companyRecharge/list", "/company/companyRecharge/doRecharge"})
+//    public TableDataInfo companyRechargeLists(CompanyRecharge param) {
+//        startPage();
+//        List<CompanyRecharge> list = companyRechargeService != null ?
+//            companyRechargeService.selectCompanyRechargeList(param) : new ArrayList<>();
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 公司统计 /company/statistics ==========
+//    @GetMapping({"/company/statistics/voiceLogs", "/company/statistics/myVoiceLogs",
+//                 "/company/statistics/smsLogs"})
+//    public AjaxResult companyStatistics() {
+//        Map<String, Object> data = new HashMap<>();
+//        data.put("total", 0);
+//        data.put("rows", new ArrayList<>());
+//        return AjaxResult.success(data);
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminConsumeRecordController.java

@@ -2,7 +2,6 @@ package com.fs.admin.controller;
 
 import java.util.*;
 import java.util.stream.Collectors;
-import org.springframework.context.annotation.Profile;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fs.admin.vo.ConsumeRecordExportVO;
@@ -24,7 +23,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台-租户消费扣款记录控制器
  * 数据来源:tenant_wallet_txn (txn_type='CONSUME')
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/consume-record")
 public class AdminConsumeRecordController extends BaseController {

+ 104 - 106
fs-agent/src/main/java/com/fs/admin/controller/AdminCourseBridgeController.java

@@ -1,106 +1,104 @@
-package com.fs.admin.controller;
-
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.page.TableDataInfo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.*;
-
-/**
- * fs-admin (8004) 端课程模块桥接控制器
- * 原始控制器在 com.fs.course.controller.* 被 fs-admin 排除
- * 覆盖 adminui 中 8004=404 的 course/* 和 courseFinishTemp/* 端点
- */
-@Profile("admin")
-@RestController
-public class AdminCourseBridgeController extends BaseController {
-
-    @Autowired(required = false)
-    private JdbcTemplate jdbcTemplate;
-
-    private TableDataInfo safeListFromTable(String table) {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        try {
-            if (jdbcTemplate != null) {
-                List<Map<String, Object>> rows = jdbcTemplate.queryForList(
-                        "SELECT * FROM " + table + " ORDER BY 1 DESC LIMIT 200");
-                r.setRows(rows);
-                r.setTotal(rows.size());
-            } else {
-                r.setRows(new ArrayList<>());
-                r.setTotal(0);
-            }
-        } catch (Exception e) {
-            r.setRows(new ArrayList<>());
-            r.setTotal(0);
-        }
-        return r;
-    }
-
-    private TableDataInfo safeList(String sql) {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        try {
-            if (jdbcTemplate != null) {
-                List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
-                r.setRows(rows);
-                r.setTotal(rows.size());
-            } else {
-                r.setRows(new ArrayList<>());
-                r.setTotal(0);
-            }
-        } catch (Exception e) {
-            r.setRows(new ArrayList<>());
-            r.setTotal(0);
-        }
-        return r;
-    }
-
-    // ========== course/courseWatchComment ==========
-    @GetMapping("/course/courseWatchComment/list")
-    public TableDataInfo courseWatchCommentList() {
-        return safeListFromTable("fs_course_watch_comment");
-    }
-
-    // ========== course/courseWatchLog/* ==========
-    @GetMapping("/course/courseWatchLog/list")
-    public TableDataInfo courseWatchLogList() {
-        return safeListFromTable("fs_course_watch_log");
-    }
-
-    @GetMapping("/course/courseWatchLog/statisticsList")
-    public TableDataInfo courseWatchLogStatisticsList() {
-        return safeList("SELECT u.nick_name, COUNT(*) AS watch_count, " +
-                "IFNULL(SUM(cwl.duration),0) AS total_duration " +
-                "FROM fs_course_watch_log cwl " +
-                "LEFT JOIN fs_user u ON cwl.user_id = u.user_id " +
-                "GROUP BY cwl.user_id ORDER BY watch_count DESC LIMIT 200");
-    }
-
-    @GetMapping("/course/courseWatchLog/qw/statisticsList")
-    public TableDataInfo courseWatchLogQwStatisticsList() {
-        return safeList("SELECT qe.name AS qw_name, COUNT(*) AS watch_count, " +
-                "IFNULL(SUM(cwl.duration),0) AS total_duration " +
-                "FROM fs_course_watch_log cwl " +
-                "LEFT JOIN qw_external_contact qe ON cwl.external_id = qe.id " +
-                "GROUP BY cwl.external_id ORDER BY watch_count DESC LIMIT 200");
-    }
-
-    // ========== course/userCoursePeriod ==========
-    @GetMapping("/course/userCoursePeriod/list")
-    public TableDataInfo userCoursePeriodList() {
-        return safeListFromTable("fs_user_course_period");
-    }
-
-    // ========== courseFinishTemp/course ==========
-    @GetMapping("/courseFinishTemp/course/list")
-    public TableDataInfo courseFinishTempCourseList() {
-        return safeListFromTable("fs_course_finish_temp");
-    }
-}
+//package com.fs.admin.controller;
+//
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.page.TableDataInfo;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.jdbc.core.JdbcTemplate;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.*;
+//
+///**
+// * fs-admin (8004) 端课程模块桥接控制器
+// * 原始控制器在 com.fs.course.controller.* 被 fs-admin 排除
+// * 覆盖 adminui 中 8004=404 的 course/* 和 courseFinishTemp/* 端点
+// */
+//@RestController
+//public class AdminCourseBridgeController extends BaseController {
+//
+//    @Autowired(required = false)
+//    private JdbcTemplate jdbcTemplate;
+//
+//    private TableDataInfo safeListFromTable(String table) {
+//        TableDataInfo r = new TableDataInfo();
+//        r.setCode(200);
+//        r.setMsg("查询成功");
+//        try {
+//            if (jdbcTemplate != null) {
+//                List<Map<String, Object>> rows = jdbcTemplate.queryForList(
+//                        "SELECT * FROM " + table + " ORDER BY 1 DESC LIMIT 200");
+//                r.setRows(rows);
+//                r.setTotal(rows.size());
+//            } else {
+//                r.setRows(new ArrayList<>());
+//                r.setTotal(0);
+//            }
+//        } catch (Exception e) {
+//            r.setRows(new ArrayList<>());
+//            r.setTotal(0);
+//        }
+//        return r;
+//    }
+//
+//    private TableDataInfo safeList(String sql) {
+//        TableDataInfo r = new TableDataInfo();
+//        r.setCode(200);
+//        r.setMsg("查询成功");
+//        try {
+//            if (jdbcTemplate != null) {
+//                List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
+//                r.setRows(rows);
+//                r.setTotal(rows.size());
+//            } else {
+//                r.setRows(new ArrayList<>());
+//                r.setTotal(0);
+//            }
+//        } catch (Exception e) {
+//            r.setRows(new ArrayList<>());
+//            r.setTotal(0);
+//        }
+//        return r;
+//    }
+//
+//    // ========== course/courseWatchComment ==========
+//    @GetMapping("/course/courseWatchComment/list")
+//    public TableDataInfo courseWatchCommentList() {
+//        return safeListFromTable("fs_course_watch_comment");
+//    }
+//
+//    // ========== course/courseWatchLog/* ==========
+//    @GetMapping("/course/courseWatchLog/list")
+//    public TableDataInfo courseWatchLogList() {
+//        return safeListFromTable("fs_course_watch_log");
+//    }
+//
+//    @GetMapping("/course/courseWatchLog/statisticsList")
+//    public TableDataInfo courseWatchLogStatisticsList() {
+//        return safeList("SELECT u.nick_name, COUNT(*) AS watch_count, " +
+//                "IFNULL(SUM(cwl.duration),0) AS total_duration " +
+//                "FROM fs_course_watch_log cwl " +
+//                "LEFT JOIN fs_user u ON cwl.user_id = u.user_id " +
+//                "GROUP BY cwl.user_id ORDER BY watch_count DESC LIMIT 200");
+//    }
+//
+//    @GetMapping("/course/courseWatchLog/qw/statisticsList")
+//    public TableDataInfo courseWatchLogQwStatisticsList() {
+//        return safeList("SELECT qe.name AS qw_name, COUNT(*) AS watch_count, " +
+//                "IFNULL(SUM(cwl.duration),0) AS total_duration " +
+//                "FROM fs_course_watch_log cwl " +
+//                "LEFT JOIN qw_external_contact qe ON cwl.external_id = qe.id " +
+//                "GROUP BY cwl.external_id ORDER BY watch_count DESC LIMIT 200");
+//    }
+//
+//    // ========== course/userCoursePeriod ==========
+//    @GetMapping("/course/userCoursePeriod/list")
+//    public TableDataInfo userCoursePeriodList() {
+//        return safeListFromTable("fs_user_course_period");
+//    }
+//
+//    // ========== courseFinishTemp/course ==========
+//    @GetMapping("/courseFinishTemp/course/list")
+//    public TableDataInfo courseFinishTempCourseList() {
+//        return safeListFromTable("fs_course_finish_temp");
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminCrmController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台CRM销冠语料管理控制器
  * 遍历所有租户库查询 crm_customer 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/crm")
 public class AdminCrmController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminHisBridgeController.java

@@ -5,7 +5,6 @@ import com.fs.common.core.page.TableDataInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.*;
 
@@ -16,7 +15,6 @@ import java.util.*;
  *
  * 覆盖 adminui 中 8004=404 的 his/* 和 his/statistics/* 端点
  */
-@Profile("admin")
 @RestController
 public class AdminHisBridgeController extends BaseController {
 

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminLiveBridgeController.java

@@ -5,7 +5,6 @@ import com.fs.common.core.page.TableDataInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.*;
 
@@ -14,7 +13,6 @@ import java.util.*;
  * 原始控制器在 com.fs.live.controller.* 被 fs-admin 排除
  * 覆盖 adminui 中 8004=404 的 live/* 端点
  */
-@Profile("admin")
 @RestController
 public class AdminLiveBridgeController extends BaseController {
 

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminLiveVideoController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.page.TableDataInfo;
@@ -13,7 +12,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台直播视频审计控制器
  * 遍历所有租户库查询 live_video_record 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/liveVideo")
 public class AdminLiveVideoController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminLobsterBridgeController.java

@@ -10,7 +10,6 @@ import com.fs.tenant.mapper.TenantInfoMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.*;
 
@@ -19,7 +18,6 @@ import java.util.*;
  * 原始控制器在 com.fs.company.controller.workflow.* 被 fs-admin 排除
  * 覆盖 adminui 中 8004=404 的 workflow/lobster/* 全部13个端点
  */
-@Profile("admin")
 @RestController
 public class AdminLobsterBridgeController extends BaseController {
 

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminMiscBridge2Controller.java

@@ -5,7 +5,6 @@ import com.fs.common.core.page.TableDataInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.*;
 
@@ -18,7 +17,6 @@ import java.util.*;
  *   - ad/html, ad/AdYouKuaccount
  *   - FastGptExtUserTag/FastGptExtUserTag
  */
-@Profile("admin")
 @RestController
 public class AdminMiscBridge2Controller extends BaseController {
 

+ 680 - 682
fs-agent/src/main/java/com/fs/admin/controller/AdminMissingApisBridgeController.java

@@ -1,682 +1,680 @@
-package com.fs.admin.controller;
-
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.*;
-
-/**
- * fs-admin-saas 缺失的admin端点桥接控制器
- * 补充 fs-admin 有但 fs-admin-saas 缺少的 /admin/* 和 /workflow/lobster/* 端点
- * 使用 JdbcTemplate 直接查询主库,避免依赖不存在的 Service Bean
- */
-@Profile("admin")
-@RestController
-public class AdminMissingApisBridgeController extends BaseController {
-
-    @Autowired(required = false)
-    private JdbcTemplate jdbcTemplate;
-
-    /**
-     * 下划线命名转驼峰命名(Map 键名转换)
-     * JdbcTemplate 返回的是数据库列名(下划线),前端 Vue 期望驼峰属性名
-     */
-    private Map<String, Object> toCamelCase(Map<String, Object> row) {
-        Map<String, Object> result = new LinkedHashMap<>();
-        for (Map.Entry<String, Object> entry : row.entrySet()) {
-            String key = entry.getKey();
-            StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < key.length(); i++) {
-                char c = key.charAt(i);
-                if (c == '_' && i + 1 < key.length()) {
-                    sb.append(Character.toUpperCase(key.charAt(++i)));
-                } else {
-                    sb.append(c);
-                }
-            }
-            result.put(sb.toString(), entry.getValue());
-        }
-        return result;
-    }
-
-    private List<Map<String, Object>> toCamelCaseList(List<Map<String, Object>> rows) {
-        List<Map<String, Object>> result = new ArrayList<>();
-        for (Map<String, Object> row : rows) {
-            result.add(toCamelCase(row));
-        }
-        return result;
-    }
-
-    private TableDataInfo emptyTable() {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        r.setRows(new ArrayList<>());
-        r.setTotal(0);
-        return r;
-    }
-
-    private TableDataInfo safeList(String sql) {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        try {
-            if (jdbcTemplate != null) {
-                List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
-                r.setRows(toCamelCaseList(rows));
-                r.setTotal(rows.size());
-            } else {
-                r.setRows(new ArrayList<>());
-                r.setTotal(0);
-            }
-        } catch (Exception e) {
-            r.setRows(new ArrayList<>());
-            r.setTotal(0);
-        }
-        return r;
-    }
-
-    /**
-     * 带参数的安全查询列表,自动转驼峰
-     */
-    private TableDataInfo safeList(String sql, Object... args) {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        try {
-            if (jdbcTemplate != null) {
-                List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, args);
-                r.setRows(toCamelCaseList(rows));
-                r.setTotal(rows.size());
-            } else {
-                r.setRows(new ArrayList<>());
-                r.setTotal(0);
-            }
-        } catch (Exception e) {
-            r.setRows(new ArrayList<>());
-            r.setTotal(0);
-        }
-        return r;
-    }
-
-    private AjaxResult safeGet(String sql, Object... args) {
-        try {
-            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
-            List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, args);
-            return AjaxResult.success(rows.isEmpty() ? new HashMap<>() : toCamelCase(rows.get(0)));
-        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
-    }
-
-    private AjaxResult safeDataList(String sql, Object... args) {
-        try {
-            if (jdbcTemplate == null) return AjaxResult.success(new ArrayList<>());
-            List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, args);
-            return AjaxResult.success(toCamelCaseList(list));
-        } catch (Exception e) { return AjaxResult.success(new ArrayList<>()); }
-    }
-
-    // ========== 短信订单 /admin/sms-order ==========
-    @GetMapping("/admin/sms-order/list")
-    public TableDataInfo smsOrderList() { return safeList("SELECT * FROM company_sms_order ORDER BY create_time DESC LIMIT 200"); }
-
-    @GetMapping("/admin/sms-order/{orderId}")
-    public AjaxResult smsOrderGet(@PathVariable Long orderId) {
-        return safeGet("SELECT * FROM company_sms_order WHERE id = ?", orderId);
-    }
-
-    // ========== 通话套餐订单 /admin/voice-order ==========
-    @GetMapping("/admin/voice-order/list")
-    public TableDataInfo voiceOrderList() { return safeList("SELECT * FROM company_voice_package_order ORDER BY create_time DESC LIMIT 200"); }
-
-    @GetMapping("/admin/voice-order/export")
-    public AjaxResult voiceOrderExport() { return AjaxResult.success("导出成功"); }
-
-    // ========== 外呼管理 /admin/voice-robotic ==========
-    @GetMapping("/admin/voice-robotic/list")
-    public TableDataInfo voiceRoboticList() { return safeList("SELECT * FROM company_voice_robotic ORDER BY create_time DESC LIMIT 200"); }
-
-    @GetMapping("/admin/voice-robotic/{id}")
-    public AjaxResult voiceRoboticGet(@PathVariable Long id) {
-        return safeGet("SELECT * FROM company_voice_robotic WHERE id = ?", id);
-    }
-
-    @GetMapping("/admin/voice-robotic/export")
-    public AjaxResult voiceRoboticExport() { return AjaxResult.success("导出成功"); }
-
-    // ========== 短信管理 /admin/sms-admin ==========
-    @GetMapping("/admin/sms-admin/list")
-    public TableDataInfo smsAdminList() { return safeList("SELECT * FROM company_sms ORDER BY create_time DESC LIMIT 200"); }
-
-    @GetMapping("/admin/sms-admin/count")
-    public AjaxResult smsAdminCount() {
-        try {
-            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
-            Map<String, Object> data = new HashMap<>();
-            data.put("totalCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM company_sms", Long.class));
-            data.put("totalRemain", jdbcTemplate.queryForObject("SELECT COALESCE(SUM(sms_remain),0) FROM company_sms", Long.class));
-            data.put("activeCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM company_sms WHERE status = '0'", Long.class));
-            data.put("disabledCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM company_sms WHERE status != '0'", Long.class));
-            return AjaxResult.success(data);
-        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
-    }
-
-    @GetMapping("/admin/sms-admin/{smsId}")
-    public AjaxResult smsAdminGet(@PathVariable Long smsId) {
-        return safeGet("SELECT * FROM company_sms WHERE sms_id = ?", smsId);
-    }
-
-    @PutMapping("/admin/sms-admin")
-    public AjaxResult smsAdminUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @GetMapping("/admin/sms-admin/export")
-    public AjaxResult smsAdminExport() { return AjaxResult.success("导出成功"); }
-
-    // ========== 外呼接口 /admin/voice-api ==========
-    // 注意:以下端点已在 AdminCompanyBridgeController 中存在,仅补充缺失的 /list 和 /{apiId}
-    @GetMapping("/admin/voice-api/list")
-    public TableDataInfo voiceApiList() { return safeList("SELECT * FROM company_voice_api ORDER BY create_time DESC LIMIT 200"); }
-
-    @GetMapping("/admin/voice-api/{apiId}")
-    public AjaxResult voiceApiGet(@PathVariable Long apiId) {
-        return safeGet("SELECT * FROM company_voice_api WHERE api_id = ?", apiId);
-    }
-
-    @GetMapping("/admin/voice-api/tenant/list")
-    public TableDataInfo voiceApiTenantList() { return emptyTable(); }
-
-    @PutMapping("/admin/voice-api/tenant/update")
-    public AjaxResult voiceApiTenantUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    // ========== iPad服务器 /admin/ipad-server-list ==========
-    @GetMapping("/admin/ipad-server-list")
-    public TableDataInfo ipadServerList() { return safeList("SELECT * FROM qw_ipad_server ORDER BY id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/ipad-stats")
-    public AjaxResult ipadStats() {
-        try {
-            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
-            Map<String, Object> data = new HashMap<>();
-            data.put("serverCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM qw_ipad_server", Long.class));
-            data.put("totalCapacity", 0);
-            data.put("used", 0);
-            data.put("remaining", 0);
-            data.put("tenantStats", new ArrayList<>());
-            return AjaxResult.success(data);
-        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
-    }
-
-    // ========== 模块消费统计 /admin/module-consumption ==========
-    @GetMapping({"/admin/module-consumption/report", "/admin/moduleConsumption/report"})
-    public AjaxResult moduleConsumptionReport(@RequestParam(required = false) String beginTime,
-                                               @RequestParam(required = false) String endTime,
-                                               @RequestParam(required = false) String tenantName) {
-        try {
-            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
-            Map<String, Object> data = new HashMap<>();
-            data.put("modules", new ArrayList<>());
-            data.put("tenants", new ArrayList<>());
-            data.put("totalAmount", 0);
-            return AjaxResult.success(data);
-        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
-    }
-
-    // ========== AI模型配置 /admin/aiModel ==========
-    @GetMapping("/admin/aiModel/list")
-    public AjaxResult aiModelList() {
-        return safeDataList("SELECT * FROM admin_ai_model ORDER BY sort_order, id LIMIT 200");
-    }
-
-    @GetMapping("/admin/aiModel/{id}")
-    public AjaxResult aiModelGet(@PathVariable Long id) {
-        return safeGet("SELECT * FROM admin_ai_model WHERE id = ?", id);
-    }
-
-    @PostMapping("/admin/aiModel")
-    public AjaxResult aiModelAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/aiModel/{id}")
-    public AjaxResult aiModelUpdate(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/aiModel/{id}")
-    public AjaxResult aiModelDelete(@PathVariable Long id) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/aiModel/batchSort")
-    public AjaxResult aiModelBatchSort(@RequestBody List<Map<String, Object>> sortList) { return AjaxResult.success(); }
-
-    @PostMapping("/admin/aiModel/test/{id}")
-    public AjaxResult aiModelTest(@PathVariable Long id) { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/admin/aiModel/refresh")
-    public AjaxResult aiModelRefresh() { return AjaxResult.success("缓存已刷新"); }
-
-    // ========== AI场景配置 /admin/aiScene ==========
-    @GetMapping("/admin/aiScene/list")
-    public AjaxResult aiSceneList() {
-        return safeDataList("SELECT * FROM admin_ai_scene ORDER BY id LIMIT 200");
-    }
-
-    @GetMapping("/admin/aiScene/{sceneCode}")
-    public AjaxResult aiSceneGet(@PathVariable String sceneCode) {
-        return safeGet("SELECT * FROM admin_ai_scene WHERE scene_code = ?", sceneCode);
-    }
-
-    @PutMapping("/admin/aiScene/{sceneCode}")
-    public AjaxResult aiSceneUpdate(@PathVariable String sceneCode, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/aiScene/{sceneCode}/threshold")
-    public AjaxResult aiSceneThreshold(@PathVariable String sceneCode, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @GetMapping("/admin/aiScene/{sceneCode}/models")
-    public AjaxResult aiSceneModels(@PathVariable String sceneCode) { return AjaxResult.success(new ArrayList<>()); }
-
-    @GetMapping("/admin/aiScene/{sceneCode}/enabledModels")
-    public AjaxResult aiSceneEnabledModels(@PathVariable String sceneCode) { return AjaxResult.success(new ArrayList<>()); }
-
-    @PostMapping("/admin/aiScene/{sceneCode}/models")
-    public AjaxResult aiSceneAddModel(@PathVariable String sceneCode, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/aiScene/{sceneCode}/models/{id}")
-    public AjaxResult aiSceneDeleteModel(@PathVariable String sceneCode, @PathVariable Long id) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/aiScene/{sceneCode}/models")
-    public AjaxResult aiSceneClearModels(@PathVariable String sceneCode) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/aiScene/{sceneCode}/models/{id}")
-    public AjaxResult aiSceneUpdateModel(@PathVariable String sceneCode, @PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PostMapping("/admin/aiScene/refresh")
-    public AjaxResult aiSceneRefresh() { return AjaxResult.success("缓存已刷新"); }
-
-    // ========== 通话套餐 /admin/voice-package ==========
-    @GetMapping("/admin/voice-package/list")
-    public TableDataInfo voicePackageList() { return safeList("SELECT * FROM company_voice_package ORDER BY id DESC LIMIT 200"); }
-
-    // ========== 短信套餐 /admin/sms-package ==========
-    @GetMapping("/admin/sms-package/list")
-    public TableDataInfo smsPackageList() { return safeList("SELECT * FROM company_sms_package ORDER BY id DESC LIMIT 200"); }
-
-    // ========== 外呼黑名单 /admin/voice-blacklist ==========
-    @GetMapping("/admin/voice-blacklist/list")
-    public TableDataInfo voiceBlacklistList() { return safeList("SELECT * FROM company_voice_robotic_call_blacklist ORDER BY id DESC LIMIT 200"); }
-
-    // ========== 号码管理 /admin/voice-number ==========
-    @GetMapping("/admin/voice-number/list")
-    public TableDataInfo voiceNumberList() { return safeList("SELECT * FROM company_voice_mobile ORDER BY id DESC LIMIT 200"); }
-
-    // ========== 流量定价 /admin/traffic-pricing ==========
-    @GetMapping("/admin/traffic-pricing/list")
-    public TableDataInfo trafficPricingList() { return safeList("SELECT * FROM tenant_traffic_pricing ORDER BY id DESC LIMIT 200"); }
-
-    // ========== Token计费额外端点 ==========
-    @GetMapping("/workflow/lobster/billing/stats")
-    public AjaxResult billingStats() { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster/billing/types")
-    public AjaxResult billingTypes() { return AjaxResult.success(new ArrayList<>()); }
-
-    @GetMapping("/workflow/lobster/billing/token-coefficient")
-    public AjaxResult billingTokenCoefficientGet() { return AjaxResult.success(new HashMap<>()); }
-
-    @PutMapping("/workflow/lobster/billing/token-coefficient")
-    public AjaxResult billingTokenCoefficientUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @GetMapping("/workflow/lobster/billing/records")
-    public TableDataInfo billingRecords() { return emptyTable(); }
-
-    // ========== 工作流实例管理 /workflow/lobster/instance ==========
-    // 注意: /workflow/lobster/instance/list 已在 AdminLobsterBridgeController 中存在
-
-    @GetMapping("/workflow/lobster/instance/stats")
-    public AjaxResult instanceStats() { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster/instance/{instanceId}")
-    public AjaxResult instanceGet(@PathVariable String instanceId) { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster/instance/node-logs/{instanceId}")
-    public AjaxResult instanceNodeLogs(@PathVariable String instanceId) { return AjaxResult.success(new ArrayList<>()); }
-
-    @PostMapping("/workflow/lobster/instance/terminate/{instanceId}")
-    public AjaxResult instanceTerminate(@PathVariable String instanceId) { return AjaxResult.success(); }
-
-    // ========== 销冠语料 /workflow/lobster/sales-corpus ==========
-    // 注意: /workflow/lobster/sales-corpus/list 已在 AdminLobsterBridgeController 中存在
-
-    @GetMapping("/workflow/lobster/sales-corpus/scenarios")
-    public AjaxResult salesCorpusScenarios() { return AjaxResult.success(new ArrayList<>()); }
-
-    @PostMapping("/workflow/lobster/sales-corpus/import")
-    public AjaxResult salesCorpusImport(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster/sales-corpus/analyze")
-    public AjaxResult salesCorpusAnalyze(@RequestBody Map<String, Object> data) { return AjaxResult.success(new HashMap<>()); }
-
-    // ========== 死信队列 /workflow/lobster/dead-letter ==========
-    // 注意: /workflow/lobster/dead-letter/list 已在 AdminLobsterBridgeController 中存在
-
-    @GetMapping("/workflow/lobster/dead-letter/stats")
-    public AjaxResult deadLetterStats() { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster/dead-letter/retry-all")
-    public AjaxResult deadLetterRetryAll() { return AjaxResult.success(); }
-
-    // ========== 事件审核 /workflow/lobster/event-audit ==========
-    // 注意: /workflow/lobster/event-audit/list 已在 AdminLobsterBridgeController 中存在
-
-    @GetMapping("/workflow/lobster/event-audit/{id}")
-    public AjaxResult eventAuditGet(@PathVariable Long id) { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster/event-audit/approve/{id}")
-    public AjaxResult eventAuditApprove(@PathVariable Long id) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster/event-audit/reject/{id}")
-    public AjaxResult eventAuditReject(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    // ========== 优化建议 /workflow/lobster/optimization ==========
-    // 注意: /workflow/lobster/optimization/list 已在 AdminLobsterBridgeController 中存在
-
-    @GetMapping("/workflow/lobster/optimization/stats")
-    public AjaxResult optimizationStats() { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster/optimization/batch-audit")
-    public AjaxResult optimizationBatchAudit(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    // ========== API注册 /workflow/lobster/api-registry ==========
-    // 注意: /workflow/lobster/api-registry/list 已在 AdminLobsterBridgeController 中存在
-
-    // ========== 提示词 /workflow/lobster/prompt ==========
-    // 注意: /workflow/lobster/prompt/list 已在 AdminLobsterBridgeController 中存在
-
-    @GetMapping("/workflow/lobster/prompt/categories")
-    public AjaxResult promptCategories() { return AjaxResult.success(new ArrayList<>()); }
-
-    // ========== 龙虾引擎管理端 ==========
-    @GetMapping("/workflow/lobster-admin/companies")
-    public AjaxResult lobsterAdminCompanies() {
-        try {
-            if (jdbcTemplate == null) return AjaxResult.success(new ArrayList<>());
-            List<Map<String, Object>> list = jdbcTemplate.queryForList("SELECT id, tenant_name, tenant_code, status FROM tenant_info WHERE status = '0' ORDER BY id LIMIT 200");
-            return AjaxResult.success(list);
-        } catch (Exception e) { return AjaxResult.success(new ArrayList<>()); }
-    }
-
-    // ========== 坐席管理 /admin/voice-seat ==========
-    @GetMapping("/admin/voice-seat/list")
-    public TableDataInfo voiceSeatList() { return safeList("SELECT * FROM company_voice_caller ORDER BY calling_id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/voice-seat/{callerId}")
-    public AjaxResult voiceSeatGet(@PathVariable Long callerId) {
-        return safeGet("SELECT * FROM company_voice_caller WHERE calling_id = ?", callerId);
-    }
-
-    @PostMapping("/admin/voice-seat")
-    public AjaxResult voiceSeatAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/voice-seat")
-    public AjaxResult voiceSeatUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/voice-seat/{callerId}")
-    public AjaxResult voiceSeatDelete(@PathVariable Long callerId) { return AjaxResult.success(); }
-
-    @GetMapping("/admin/voice-seat/export")
-    public AjaxResult voiceSeatExport() { return AjaxResult.success("导出成功"); }
-
-    // ========== 短信接口 /admin/smsApi ==========
-    @GetMapping("/admin/smsApi/list")
-    public TableDataInfo smsApiList() { return safeList("SELECT * FROM company_sms_api ORDER BY api_id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/smsApi/{apiId}")
-    public AjaxResult smsApiGet(@PathVariable Long apiId) {
-        return safeGet("SELECT * FROM company_sms_api WHERE api_id = ?", apiId);
-    }
-
-    @PostMapping("/admin/smsApi")
-    public AjaxResult smsApiAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsApi")
-    public AjaxResult smsApiUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsApi/{apiId}")
-    public AjaxResult smsApiDelete(@PathVariable Long apiId) { return AjaxResult.success(); }
-
-    // ========== 短信接口租户绑定 /admin/smsApiTenant ==========
-    @GetMapping("/admin/smsApiTenant/list")
-    public TableDataInfo smsApiTenantList() { return safeList("SELECT * FROM company_sms_api_tenant ORDER BY id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/smsApiTenant/{id}")
-    public AjaxResult smsApiTenantGet(@PathVariable Long id) {
-        return safeGet("SELECT * FROM company_sms_api_tenant WHERE id = ?", id);
-    }
-
-    @GetMapping("/admin/smsApiTenant/byCompany/{companyId}")
-    public TableDataInfo smsApiTenantByCompany(@PathVariable Long companyId) {
-        return safeList("SELECT * FROM company_sms_api_tenant WHERE company_id = ? ORDER BY id DESC LIMIT 200", companyId);
-    }
-
-    @PostMapping("/admin/smsApiTenant")
-    public AjaxResult smsApiTenantAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsApiTenant")
-    public AjaxResult smsApiTenantUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsApiTenant/{id}")
-    public AjaxResult smsApiTenantDelete(@PathVariable Long id) { return AjaxResult.success(); }
-
-    // ========== 端口池 /admin/smsPort ==========
-    // --- 端口 ---
-    @GetMapping("/admin/smsPort/port/list")
-    public TableDataInfo smsPortList() { return safeList("SELECT * FROM company_sms_port ORDER BY port_id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/smsPort/port/listByApi/{apiId}")
-    public TableDataInfo smsPortByApi(@PathVariable Long apiId) {
-        return safeList("SELECT * FROM company_sms_port WHERE api_id = ? ORDER BY port_id DESC LIMIT 200", apiId);
-    }
-
-    @PostMapping("/admin/smsPort/port")
-    public AjaxResult smsPortAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsPort/port")
-    public AjaxResult smsPortUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsPort/port/{portId}")
-    public AjaxResult smsPortDelete(@PathVariable Long portId) { return AjaxResult.success(); }
-
-    // --- 端口分配 ---
-    @GetMapping("/admin/smsPort/assign/list")
-    public TableDataInfo smsPortAssignList() { return safeList("SELECT * FROM company_sms_port_assign ORDER BY id DESC LIMIT 200"); }
-
-    @PostMapping("/admin/smsPort/assign")
-    public AjaxResult smsPortAssignAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsPort/assign")
-    public AjaxResult smsPortAssignUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsPort/assign/{id}")
-    public AjaxResult smsPortAssignDelete(@PathVariable Long id) { return AjaxResult.success(); }
-
-    // --- 设备管理 ---
-    @GetMapping("/admin/smsPort/device/list")
-    public TableDataInfo smsDeviceList() { return safeList("SELECT * FROM company_sms_device ORDER BY device_id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/smsPort/device/{deviceId}")
-    public AjaxResult smsDeviceGet(@PathVariable Long deviceId) {
-        return safeGet("SELECT * FROM company_sms_device WHERE device_id = ?", deviceId);
-    }
-
-    @PostMapping("/admin/smsPort/device")
-    public AjaxResult smsDeviceAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsPort/device")
-    public AjaxResult smsDeviceUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsPort/device/{deviceId}")
-    public AjaxResult smsDeviceDelete(@PathVariable Long deviceId) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsPort/device/assign")
-    public AjaxResult smsDeviceAssign(@RequestParam Long deviceId, @RequestParam Long companyUserId) { return AjaxResult.success(); }
-
-    // --- 手机卡管理 ---
-    @GetMapping("/admin/smsPort/card/list")
-    public TableDataInfo smsCardList() { return safeList("SELECT * FROM company_sms_card ORDER BY card_id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/smsPort/card/{cardId}")
-    public AjaxResult smsCardGet(@PathVariable Long cardId) {
-        return safeGet("SELECT * FROM company_sms_card WHERE card_id = ?", cardId);
-    }
-
-    @PostMapping("/admin/smsPort/card")
-    public AjaxResult smsCardAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsPort/card")
-    public AjaxResult smsCardUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsPort/card/{cardId}")
-    public AjaxResult smsCardDelete(@PathVariable Long cardId) { return AjaxResult.success(); }
-
-    // --- 中间件 ---
-    @GetMapping("/admin/smsPort/middleware/list")
-    public TableDataInfo smsMiddlewareList() { return safeList("SELECT * FROM company_sms_middleware ORDER BY id DESC LIMIT 200"); }
-
-    @GetMapping("/admin/smsPort/middleware/byApi/{apiId}")
-    public TableDataInfo smsMiddlewareByApi(@PathVariable Long apiId) {
-        return safeList("SELECT * FROM company_sms_middleware WHERE api_id = ? ORDER BY id DESC LIMIT 200", apiId);
-    }
-
-    @PostMapping("/admin/smsPort/middleware")
-    public AjaxResult smsMiddlewareAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/admin/smsPort/middleware")
-    public AjaxResult smsMiddlewareUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/admin/smsPort/middleware/{id}")
-    public AjaxResult smsMiddlewareDelete(@PathVariable Long id) { return AjaxResult.success(); }
-
-    // ========== 外呼租户定价 /admin/voice-api/tenants ==========
-    // 注意: /admin/voice-api/tenants/{apiId}, /admin/voice-api/apis/{companyId},
-    // /admin/voice-api/assignTenants, /admin/voice-api/unassignTenant,
-    // /admin/voice-api/tenantCount/{apiId} 已在 AdminCompanyBridgeController 中存在
-
-    // ========== 引擎进化 /workflow/lobster/engine/evolution ==========
-    @GetMapping("/workflow/lobster/engine/evolution/metrics")
-    public AjaxResult evolutionMetrics() { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster/engine/evolution/analyze")
-    public AjaxResult evolutionAnalyze(@RequestParam(required = false) Long workflowId) { return AjaxResult.success(new ArrayList<>()); }
-
-    @PostMapping("/workflow/lobster/engine/evolution/apply")
-    public AjaxResult evolutionApply(@RequestParam Long suggestionId) { return AjaxResult.success(); }
-
-    @GetMapping("/workflow/lobster/engine/heartbeat/status")
-    public AjaxResult heartbeatStatus(@RequestParam(required = false) String instanceId) { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster/engine/channels")
-    public AjaxResult engineChannels() { return AjaxResult.success(new ArrayList<>()); }
-
-    // ========== 工作流类型 /workflow/lobster/types ==========
-    @GetMapping("/workflow/lobster/types")
-    public AjaxResult lobsterTypes() { return AjaxResult.success(new ArrayList<>()); }
-
-    // ========== 销冠语料补充端点 ==========
-    @PostMapping("/workflow/lobster/sales-corpus/batch-import")
-    public AjaxResult salesCorpusBatchImport(@RequestBody Map<String, Object> data) { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster/sales-corpus/dialog")
-    public AjaxResult salesCorpusDialog(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    // ========== 工作流执行 /workflow/lobster-exec ==========
-    @GetMapping("/workflow/lobster-exec/instance/list")
-    public TableDataInfo execInstanceList() { return emptyTable(); }
-
-    @GetMapping("/workflow/lobster-exec/instance/{instanceId}")
-    public AjaxResult execInstanceGet(@PathVariable String instanceId) { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster-exec/node-logs/{instanceId}")
-    public AjaxResult execNodeLogs(@PathVariable String instanceId) { return AjaxResult.success(new ArrayList<>()); }
-
-    @PostMapping("/workflow/lobster-exec/start")
-    public AjaxResult execStart() { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster-exec/next-node")
-    public AjaxResult execNextNode() { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster-exec/pause/{instanceId}")
-    public AjaxResult execPause(@PathVariable String instanceId) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster-exec/resume/{instanceId}")
-    public AjaxResult execResume(@PathVariable String instanceId) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster-exec/terminate/{instanceId}")
-    public AjaxResult execTerminate(@PathVariable String instanceId) { return AjaxResult.success(); }
-
-    @GetMapping("/workflow/lobster-exec/control-mode/{instanceId}")
-    public AjaxResult execControlMode(@PathVariable String instanceId) { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster-exec/control-mode/{instanceId}")
-    public AjaxResult execSetControlMode(@PathVariable String instanceId) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster-exec/complete-handoff/{instanceId}")
-    public AjaxResult execCompleteHandoff(@PathVariable String instanceId) { return AjaxResult.success(); }
-
-    @GetMapping("/workflow/lobster-exec/compliance-rules")
-    public AjaxResult execComplianceRules() { return AjaxResult.success(new ArrayList<>()); }
-
-    @PostMapping("/workflow/lobster-exec/compliance-rule")
-    public AjaxResult execAddComplianceRule(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/workflow/lobster-exec/compliance-rule/{id}")
-    public AjaxResult execUpdateComplianceRule(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/workflow/lobster-exec/compliance-rule/{id}")
-    public AjaxResult execDeleteComplianceRule(@PathVariable Long id) { return AjaxResult.success(); }
-
-    // ========== 提示词补充端点 ==========
-    @GetMapping("/workflow/lobster/prompt/{id}")
-    public AjaxResult promptGet(@PathVariable Long id) { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster/prompt")
-    public AjaxResult promptAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PutMapping("/workflow/lobster/prompt/{id}")
-    public AjaxResult promptUpdate(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @DeleteMapping("/workflow/lobster/prompt/{id}")
-    public AjaxResult promptDelete(@PathVariable Long id) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster/prompt/refresh-cache")
-    public AjaxResult promptRefreshCache() { return AjaxResult.success(); }
-
-    // ========== API注册补充端点 ==========
-    @PostMapping("/workflow/lobster/api-registry")
-    public AjaxResult apiRegistryAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster/api-registry/refresh")
-    public AjaxResult apiRegistryRefresh() { return AjaxResult.success(); }
-
-    @GetMapping("/workflow/lobster/api-registry/categories")
-    public AjaxResult apiRegistryCategories() { return AjaxResult.success(new ArrayList<>()); }
-
-    // ========== 优化建议补充端点 ==========
-    @GetMapping("/workflow/lobster/optimization/pending-audit")
-    public TableDataInfo optimizationPendingAudit() { return emptyTable(); }
-
-    @PostMapping("/workflow/lobster/optimization/audit/{optimizationId}")
-    public AjaxResult optimizationAudit(@PathVariable Long optimizationId) { return AjaxResult.success(); }
-
-    @PostMapping("/workflow/lobster/optimization/analyze")
-    public AjaxResult optimizationAnalyze() { return AjaxResult.success(new HashMap<>()); }
-
-    @GetMapping("/workflow/lobster/optimization/config")
-    public AjaxResult optimizationConfig() { return AjaxResult.success(new HashMap<>()); }
-
-    @PostMapping("/workflow/lobster/optimization/config")
-    public AjaxResult optimizationSetConfig(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
-
-    // ========== 死信队列补充端点 ==========
-    @GetMapping("/workflow/lobster/dead-letter/retry-all")
-    public AjaxResult deadLetterRetryAllPost() { return AjaxResult.success(); }
-
-}
+//package com.fs.admin.controller;
+//
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.jdbc.core.JdbcTemplate;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.*;
+//
+///**
+// * fs-admin-saas 缺失的admin端点桥接控制器
+// * 补充 fs-admin 有但 fs-admin-saas 缺少的 /admin/* 和 /workflow/lobster/* 端点
+// * 使用 JdbcTemplate 直接查询主库,避免依赖不存在的 Service Bean
+// */
+//@RestController
+//public class AdminMissingApisBridgeController extends BaseController {
+//
+//    @Autowired(required = false)
+//    private JdbcTemplate jdbcTemplate;
+//
+//    /**
+//     * 下划线命名转驼峰命名(Map 键名转换)
+//     * JdbcTemplate 返回的是数据库列名(下划线),前端 Vue 期望驼峰属性名
+//     */
+//    private Map<String, Object> toCamelCase(Map<String, Object> row) {
+//        Map<String, Object> result = new LinkedHashMap<>();
+//        for (Map.Entry<String, Object> entry : row.entrySet()) {
+//            String key = entry.getKey();
+//            StringBuilder sb = new StringBuilder();
+//            for (int i = 0; i < key.length(); i++) {
+//                char c = key.charAt(i);
+//                if (c == '_' && i + 1 < key.length()) {
+//                    sb.append(Character.toUpperCase(key.charAt(++i)));
+//                } else {
+//                    sb.append(c);
+//                }
+//            }
+//            result.put(sb.toString(), entry.getValue());
+//        }
+//        return result;
+//    }
+//
+//    private List<Map<String, Object>> toCamelCaseList(List<Map<String, Object>> rows) {
+//        List<Map<String, Object>> result = new ArrayList<>();
+//        for (Map<String, Object> row : rows) {
+//            result.add(toCamelCase(row));
+//        }
+//        return result;
+//    }
+//
+//    private TableDataInfo emptyTable() {
+//        TableDataInfo r = new TableDataInfo();
+//        r.setCode(200);
+//        r.setMsg("查询成功");
+//        r.setRows(new ArrayList<>());
+//        r.setTotal(0);
+//        return r;
+//    }
+//
+//    private TableDataInfo safeList(String sql) {
+//        TableDataInfo r = new TableDataInfo();
+//        r.setCode(200);
+//        r.setMsg("查询成功");
+//        try {
+//            if (jdbcTemplate != null) {
+//                List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
+//                r.setRows(toCamelCaseList(rows));
+//                r.setTotal(rows.size());
+//            } else {
+//                r.setRows(new ArrayList<>());
+//                r.setTotal(0);
+//            }
+//        } catch (Exception e) {
+//            r.setRows(new ArrayList<>());
+//            r.setTotal(0);
+//        }
+//        return r;
+//    }
+//
+//    /**
+//     * 带参数的安全查询列表,自动转驼峰
+//     */
+//    private TableDataInfo safeList(String sql, Object... args) {
+//        TableDataInfo r = new TableDataInfo();
+//        r.setCode(200);
+//        r.setMsg("查询成功");
+//        try {
+//            if (jdbcTemplate != null) {
+//                List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, args);
+//                r.setRows(toCamelCaseList(rows));
+//                r.setTotal(rows.size());
+//            } else {
+//                r.setRows(new ArrayList<>());
+//                r.setTotal(0);
+//            }
+//        } catch (Exception e) {
+//            r.setRows(new ArrayList<>());
+//            r.setTotal(0);
+//        }
+//        return r;
+//    }
+//
+//    private AjaxResult safeGet(String sql, Object... args) {
+//        try {
+//            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
+//            List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, args);
+//            return AjaxResult.success(rows.isEmpty() ? new HashMap<>() : toCamelCase(rows.get(0)));
+//        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
+//    }
+//
+//    private AjaxResult safeDataList(String sql, Object... args) {
+//        try {
+//            if (jdbcTemplate == null) return AjaxResult.success(new ArrayList<>());
+//            List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, args);
+//            return AjaxResult.success(toCamelCaseList(list));
+//        } catch (Exception e) { return AjaxResult.success(new ArrayList<>()); }
+//    }
+//
+//    // ========== 短信订单 /admin/sms-order ==========
+//    @GetMapping("/admin/sms-order/list")
+//    public TableDataInfo smsOrderList() { return safeList("SELECT * FROM company_sms_order ORDER BY create_time DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/sms-order/{orderId}")
+//    public AjaxResult smsOrderGet(@PathVariable Long orderId) {
+//        return safeGet("SELECT * FROM company_sms_order WHERE id = ?", orderId);
+//    }
+//
+//    // ========== 通话套餐订单 /admin/voice-order ==========
+//    @GetMapping("/admin/voice-order/list")
+//    public TableDataInfo voiceOrderList() { return safeList("SELECT * FROM company_voice_package_order ORDER BY create_time DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/voice-order/export")
+//    public AjaxResult voiceOrderExport() { return AjaxResult.success("导出成功"); }
+//
+//    // ========== 外呼管理 /admin/voice-robotic ==========
+//    @GetMapping("/admin/voice-robotic/list")
+//    public TableDataInfo voiceRoboticList() { return safeList("SELECT * FROM company_voice_robotic ORDER BY create_time DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/voice-robotic/{id}")
+//    public AjaxResult voiceRoboticGet(@PathVariable Long id) {
+//        return safeGet("SELECT * FROM company_voice_robotic WHERE id = ?", id);
+//    }
+//
+//    @GetMapping("/admin/voice-robotic/export")
+//    public AjaxResult voiceRoboticExport() { return AjaxResult.success("导出成功"); }
+//
+//    // ========== 短信管理 /admin/sms-admin ==========
+//    @GetMapping("/admin/sms-admin/list")
+//    public TableDataInfo smsAdminList() { return safeList("SELECT * FROM company_sms ORDER BY create_time DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/sms-admin/count")
+//    public AjaxResult smsAdminCount() {
+//        try {
+//            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
+//            Map<String, Object> data = new HashMap<>();
+//            data.put("totalCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM company_sms", Long.class));
+//            data.put("totalRemain", jdbcTemplate.queryForObject("SELECT COALESCE(SUM(sms_remain),0) FROM company_sms", Long.class));
+//            data.put("activeCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM company_sms WHERE status = '0'", Long.class));
+//            data.put("disabledCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM company_sms WHERE status != '0'", Long.class));
+//            return AjaxResult.success(data);
+//        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
+//    }
+//
+//    @GetMapping("/admin/sms-admin/{smsId}")
+//    public AjaxResult smsAdminGet(@PathVariable Long smsId) {
+//        return safeGet("SELECT * FROM company_sms WHERE sms_id = ?", smsId);
+//    }
+//
+//    @PutMapping("/admin/sms-admin")
+//    public AjaxResult smsAdminUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @GetMapping("/admin/sms-admin/export")
+//    public AjaxResult smsAdminExport() { return AjaxResult.success("导出成功"); }
+//
+//    // ========== 外呼接口 /admin/voice-api ==========
+//    // 注意:以下端点已在 AdminCompanyBridgeController 中存在,仅补充缺失的 /list 和 /{apiId}
+//    @GetMapping("/admin/voice-api/list")
+//    public TableDataInfo voiceApiList() { return safeList("SELECT * FROM company_voice_api ORDER BY create_time DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/voice-api/{apiId}")
+//    public AjaxResult voiceApiGet(@PathVariable Long apiId) {
+//        return safeGet("SELECT * FROM company_voice_api WHERE api_id = ?", apiId);
+//    }
+//
+//    @GetMapping("/admin/voice-api/tenant/list")
+//    public TableDataInfo voiceApiTenantList() { return emptyTable(); }
+//
+//    @PutMapping("/admin/voice-api/tenant/update")
+//    public AjaxResult voiceApiTenantUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    // ========== iPad服务器 /admin/ipad-server-list ==========
+//    @GetMapping("/admin/ipad-server-list")
+//    public TableDataInfo ipadServerList() { return safeList("SELECT * FROM qw_ipad_server ORDER BY id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/ipad-stats")
+//    public AjaxResult ipadStats() {
+//        try {
+//            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
+//            Map<String, Object> data = new HashMap<>();
+//            data.put("serverCount", jdbcTemplate.queryForObject("SELECT COUNT(*) FROM qw_ipad_server", Long.class));
+//            data.put("totalCapacity", 0);
+//            data.put("used", 0);
+//            data.put("remaining", 0);
+//            data.put("tenantStats", new ArrayList<>());
+//            return AjaxResult.success(data);
+//        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
+//    }
+//
+//    // ========== 模块消费统计 /admin/module-consumption ==========
+//    @GetMapping({"/admin/module-consumption/report", "/admin/moduleConsumption/report"})
+//    public AjaxResult moduleConsumptionReport(@RequestParam(required = false) String beginTime,
+//                                               @RequestParam(required = false) String endTime,
+//                                               @RequestParam(required = false) String tenantName) {
+//        try {
+//            if (jdbcTemplate == null) return AjaxResult.success(new HashMap<>());
+//            Map<String, Object> data = new HashMap<>();
+//            data.put("modules", new ArrayList<>());
+//            data.put("tenants", new ArrayList<>());
+//            data.put("totalAmount", 0);
+//            return AjaxResult.success(data);
+//        } catch (Exception e) { return AjaxResult.success(new HashMap<>()); }
+//    }
+//
+//    // ========== AI模型配置 /admin/aiModel ==========
+//    @GetMapping("/admin/aiModel/list")
+//    public AjaxResult aiModelList() {
+//        return safeDataList("SELECT * FROM admin_ai_model ORDER BY sort_order, id LIMIT 200");
+//    }
+//
+//    @GetMapping("/admin/aiModel/{id}")
+//    public AjaxResult aiModelGet(@PathVariable Long id) {
+//        return safeGet("SELECT * FROM admin_ai_model WHERE id = ?", id);
+//    }
+//
+//    @PostMapping("/admin/aiModel")
+//    public AjaxResult aiModelAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/aiModel/{id}")
+//    public AjaxResult aiModelUpdate(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/aiModel/{id}")
+//    public AjaxResult aiModelDelete(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/aiModel/batchSort")
+//    public AjaxResult aiModelBatchSort(@RequestBody List<Map<String, Object>> sortList) { return AjaxResult.success(); }
+//
+//    @PostMapping("/admin/aiModel/test/{id}")
+//    public AjaxResult aiModelTest(@PathVariable Long id) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/admin/aiModel/refresh")
+//    public AjaxResult aiModelRefresh() { return AjaxResult.success("缓存已刷新"); }
+//
+//    // ========== AI场景配置 /admin/aiScene ==========
+//    @GetMapping("/admin/aiScene/list")
+//    public AjaxResult aiSceneList() {
+//        return safeDataList("SELECT * FROM admin_ai_scene ORDER BY id LIMIT 200");
+//    }
+//
+//    @GetMapping("/admin/aiScene/{sceneCode}")
+//    public AjaxResult aiSceneGet(@PathVariable String sceneCode) {
+//        return safeGet("SELECT * FROM admin_ai_scene WHERE scene_code = ?", sceneCode);
+//    }
+//
+//    @PutMapping("/admin/aiScene/{sceneCode}")
+//    public AjaxResult aiSceneUpdate(@PathVariable String sceneCode, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/aiScene/{sceneCode}/threshold")
+//    public AjaxResult aiSceneThreshold(@PathVariable String sceneCode, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @GetMapping("/admin/aiScene/{sceneCode}/models")
+//    public AjaxResult aiSceneModels(@PathVariable String sceneCode) { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @GetMapping("/admin/aiScene/{sceneCode}/enabledModels")
+//    public AjaxResult aiSceneEnabledModels(@PathVariable String sceneCode) { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @PostMapping("/admin/aiScene/{sceneCode}/models")
+//    public AjaxResult aiSceneAddModel(@PathVariable String sceneCode, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/aiScene/{sceneCode}/models/{id}")
+//    public AjaxResult aiSceneDeleteModel(@PathVariable String sceneCode, @PathVariable Long id) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/aiScene/{sceneCode}/models")
+//    public AjaxResult aiSceneClearModels(@PathVariable String sceneCode) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/aiScene/{sceneCode}/models/{id}")
+//    public AjaxResult aiSceneUpdateModel(@PathVariable String sceneCode, @PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PostMapping("/admin/aiScene/refresh")
+//    public AjaxResult aiSceneRefresh() { return AjaxResult.success("缓存已刷新"); }
+//
+//    // ========== 通话套餐 /admin/voice-package ==========
+//    @GetMapping("/admin/voice-package/list")
+//    public TableDataInfo voicePackageList() { return safeList("SELECT * FROM company_voice_package ORDER BY id DESC LIMIT 200"); }
+//
+//    // ========== 短信套餐 /admin/sms-package ==========
+//    @GetMapping("/admin/sms-package/list")
+//    public TableDataInfo smsPackageList() { return safeList("SELECT * FROM company_sms_package ORDER BY id DESC LIMIT 200"); }
+//
+//    // ========== 外呼黑名单 /admin/voice-blacklist ==========
+//    @GetMapping("/admin/voice-blacklist/list")
+//    public TableDataInfo voiceBlacklistList() { return safeList("SELECT * FROM company_voice_robotic_call_blacklist ORDER BY id DESC LIMIT 200"); }
+//
+//    // ========== 号码管理 /admin/voice-number ==========
+//    @GetMapping("/admin/voice-number/list")
+//    public TableDataInfo voiceNumberList() { return safeList("SELECT * FROM company_voice_mobile ORDER BY id DESC LIMIT 200"); }
+//
+//    // ========== 流量定价 /admin/traffic-pricing ==========
+//    @GetMapping("/admin/traffic-pricing/list")
+//    public TableDataInfo trafficPricingList() { return safeList("SELECT * FROM tenant_traffic_pricing ORDER BY id DESC LIMIT 200"); }
+//
+//    // ========== Token计费额外端点 ==========
+//    @GetMapping("/workflow/lobster/billing/stats")
+//    public AjaxResult billingStats() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster/billing/types")
+//    public AjaxResult billingTypes() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @GetMapping("/workflow/lobster/billing/token-coefficient")
+//    public AjaxResult billingTokenCoefficientGet() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PutMapping("/workflow/lobster/billing/token-coefficient")
+//    public AjaxResult billingTokenCoefficientUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @GetMapping("/workflow/lobster/billing/records")
+//    public TableDataInfo billingRecords() { return emptyTable(); }
+//
+//    // ========== 工作流实例管理 /workflow/lobster/instance ==========
+//    // 注意: /workflow/lobster/instance/list 已在 AdminLobsterBridgeController 中存在
+//
+//    @GetMapping("/workflow/lobster/instance/stats")
+//    public AjaxResult instanceStats() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster/instance/{instanceId}")
+//    public AjaxResult instanceGet(@PathVariable String instanceId) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster/instance/node-logs/{instanceId}")
+//    public AjaxResult instanceNodeLogs(@PathVariable String instanceId) { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @PostMapping("/workflow/lobster/instance/terminate/{instanceId}")
+//    public AjaxResult instanceTerminate(@PathVariable String instanceId) { return AjaxResult.success(); }
+//
+//    // ========== 销冠语料 /workflow/lobster/sales-corpus ==========
+//    // 注意: /workflow/lobster/sales-corpus/list 已在 AdminLobsterBridgeController 中存在
+//
+//    @GetMapping("/workflow/lobster/sales-corpus/scenarios")
+//    public AjaxResult salesCorpusScenarios() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @PostMapping("/workflow/lobster/sales-corpus/import")
+//    public AjaxResult salesCorpusImport(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster/sales-corpus/analyze")
+//    public AjaxResult salesCorpusAnalyze(@RequestBody Map<String, Object> data) { return AjaxResult.success(new HashMap<>()); }
+//
+//    // ========== 死信队列 /workflow/lobster/dead-letter ==========
+//    // 注意: /workflow/lobster/dead-letter/list 已在 AdminLobsterBridgeController 中存在
+//
+//    @GetMapping("/workflow/lobster/dead-letter/stats")
+//    public AjaxResult deadLetterStats() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster/dead-letter/retry-all")
+//    public AjaxResult deadLetterRetryAll() { return AjaxResult.success(); }
+//
+//    // ========== 事件审核 /workflow/lobster/event-audit ==========
+//    // 注意: /workflow/lobster/event-audit/list 已在 AdminLobsterBridgeController 中存在
+//
+//    @GetMapping("/workflow/lobster/event-audit/{id}")
+//    public AjaxResult eventAuditGet(@PathVariable Long id) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster/event-audit/approve/{id}")
+//    public AjaxResult eventAuditApprove(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster/event-audit/reject/{id}")
+//    public AjaxResult eventAuditReject(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    // ========== 优化建议 /workflow/lobster/optimization ==========
+//    // 注意: /workflow/lobster/optimization/list 已在 AdminLobsterBridgeController 中存在
+//
+//    @GetMapping("/workflow/lobster/optimization/stats")
+//    public AjaxResult optimizationStats() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster/optimization/batch-audit")
+//    public AjaxResult optimizationBatchAudit(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    // ========== API注册 /workflow/lobster/api-registry ==========
+//    // 注意: /workflow/lobster/api-registry/list 已在 AdminLobsterBridgeController 中存在
+//
+//    // ========== 提示词 /workflow/lobster/prompt ==========
+//    // 注意: /workflow/lobster/prompt/list 已在 AdminLobsterBridgeController 中存在
+//
+//    @GetMapping("/workflow/lobster/prompt/categories")
+//    public AjaxResult promptCategories() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    // ========== 龙虾引擎管理端 ==========
+//    @GetMapping("/workflow/lobster-admin/companies")
+//    public AjaxResult lobsterAdminCompanies() {
+//        try {
+//            if (jdbcTemplate == null) return AjaxResult.success(new ArrayList<>());
+//            List<Map<String, Object>> list = jdbcTemplate.queryForList("SELECT id, tenant_name, tenant_code, status FROM tenant_info WHERE status = '0' ORDER BY id LIMIT 200");
+//            return AjaxResult.success(list);
+//        } catch (Exception e) { return AjaxResult.success(new ArrayList<>()); }
+//    }
+//
+//    // ========== 坐席管理 /admin/voice-seat ==========
+//    @GetMapping("/admin/voice-seat/list")
+//    public TableDataInfo voiceSeatList() { return safeList("SELECT * FROM company_voice_caller ORDER BY calling_id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/voice-seat/{callerId}")
+//    public AjaxResult voiceSeatGet(@PathVariable Long callerId) {
+//        return safeGet("SELECT * FROM company_voice_caller WHERE calling_id = ?", callerId);
+//    }
+//
+//    @PostMapping("/admin/voice-seat")
+//    public AjaxResult voiceSeatAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/voice-seat")
+//    public AjaxResult voiceSeatUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/voice-seat/{callerId}")
+//    public AjaxResult voiceSeatDelete(@PathVariable Long callerId) { return AjaxResult.success(); }
+//
+//    @GetMapping("/admin/voice-seat/export")
+//    public AjaxResult voiceSeatExport() { return AjaxResult.success("导出成功"); }
+//
+//    // ========== 短信接口 /admin/smsApi ==========
+//    @GetMapping("/admin/smsApi/list")
+//    public TableDataInfo smsApiList() { return safeList("SELECT * FROM company_sms_api ORDER BY api_id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/smsApi/{apiId}")
+//    public AjaxResult smsApiGet(@PathVariable Long apiId) {
+//        return safeGet("SELECT * FROM company_sms_api WHERE api_id = ?", apiId);
+//    }
+//
+//    @PostMapping("/admin/smsApi")
+//    public AjaxResult smsApiAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsApi")
+//    public AjaxResult smsApiUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsApi/{apiId}")
+//    public AjaxResult smsApiDelete(@PathVariable Long apiId) { return AjaxResult.success(); }
+//
+//    // ========== 短信接口租户绑定 /admin/smsApiTenant ==========
+//    @GetMapping("/admin/smsApiTenant/list")
+//    public TableDataInfo smsApiTenantList() { return safeList("SELECT * FROM company_sms_api_tenant ORDER BY id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/smsApiTenant/{id}")
+//    public AjaxResult smsApiTenantGet(@PathVariable Long id) {
+//        return safeGet("SELECT * FROM company_sms_api_tenant WHERE id = ?", id);
+//    }
+//
+//    @GetMapping("/admin/smsApiTenant/byCompany/{companyId}")
+//    public TableDataInfo smsApiTenantByCompany(@PathVariable Long companyId) {
+//        return safeList("SELECT * FROM company_sms_api_tenant WHERE company_id = ? ORDER BY id DESC LIMIT 200", companyId);
+//    }
+//
+//    @PostMapping("/admin/smsApiTenant")
+//    public AjaxResult smsApiTenantAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsApiTenant")
+//    public AjaxResult smsApiTenantUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsApiTenant/{id}")
+//    public AjaxResult smsApiTenantDelete(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    // ========== 端口池 /admin/smsPort ==========
+//    // --- 端口 ---
+//    @GetMapping("/admin/smsPort/port/list")
+//    public TableDataInfo smsPortList() { return safeList("SELECT * FROM company_sms_port ORDER BY port_id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/smsPort/port/listByApi/{apiId}")
+//    public TableDataInfo smsPortByApi(@PathVariable Long apiId) {
+//        return safeList("SELECT * FROM company_sms_port WHERE api_id = ? ORDER BY port_id DESC LIMIT 200", apiId);
+//    }
+//
+//    @PostMapping("/admin/smsPort/port")
+//    public AjaxResult smsPortAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsPort/port")
+//    public AjaxResult smsPortUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsPort/port/{portId}")
+//    public AjaxResult smsPortDelete(@PathVariable Long portId) { return AjaxResult.success(); }
+//
+//    // --- 端口分配 ---
+//    @GetMapping("/admin/smsPort/assign/list")
+//    public TableDataInfo smsPortAssignList() { return safeList("SELECT * FROM company_sms_port_assign ORDER BY id DESC LIMIT 200"); }
+//
+//    @PostMapping("/admin/smsPort/assign")
+//    public AjaxResult smsPortAssignAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsPort/assign")
+//    public AjaxResult smsPortAssignUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsPort/assign/{id}")
+//    public AjaxResult smsPortAssignDelete(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    // --- 设备管理 ---
+//    @GetMapping("/admin/smsPort/device/list")
+//    public TableDataInfo smsDeviceList() { return safeList("SELECT * FROM company_sms_device ORDER BY device_id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/smsPort/device/{deviceId}")
+//    public AjaxResult smsDeviceGet(@PathVariable Long deviceId) {
+//        return safeGet("SELECT * FROM company_sms_device WHERE device_id = ?", deviceId);
+//    }
+//
+//    @PostMapping("/admin/smsPort/device")
+//    public AjaxResult smsDeviceAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsPort/device")
+//    public AjaxResult smsDeviceUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsPort/device/{deviceId}")
+//    public AjaxResult smsDeviceDelete(@PathVariable Long deviceId) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsPort/device/assign")
+//    public AjaxResult smsDeviceAssign(@RequestParam Long deviceId, @RequestParam Long companyUserId) { return AjaxResult.success(); }
+//
+//    // --- 手机卡管理 ---
+//    @GetMapping("/admin/smsPort/card/list")
+//    public TableDataInfo smsCardList() { return safeList("SELECT * FROM company_sms_card ORDER BY card_id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/smsPort/card/{cardId}")
+//    public AjaxResult smsCardGet(@PathVariable Long cardId) {
+//        return safeGet("SELECT * FROM company_sms_card WHERE card_id = ?", cardId);
+//    }
+//
+//    @PostMapping("/admin/smsPort/card")
+//    public AjaxResult smsCardAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsPort/card")
+//    public AjaxResult smsCardUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsPort/card/{cardId}")
+//    public AjaxResult smsCardDelete(@PathVariable Long cardId) { return AjaxResult.success(); }
+//
+//    // --- 中间件 ---
+//    @GetMapping("/admin/smsPort/middleware/list")
+//    public TableDataInfo smsMiddlewareList() { return safeList("SELECT * FROM company_sms_middleware ORDER BY id DESC LIMIT 200"); }
+//
+//    @GetMapping("/admin/smsPort/middleware/byApi/{apiId}")
+//    public TableDataInfo smsMiddlewareByApi(@PathVariable Long apiId) {
+//        return safeList("SELECT * FROM company_sms_middleware WHERE api_id = ? ORDER BY id DESC LIMIT 200", apiId);
+//    }
+//
+//    @PostMapping("/admin/smsPort/middleware")
+//    public AjaxResult smsMiddlewareAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/admin/smsPort/middleware")
+//    public AjaxResult smsMiddlewareUpdate(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/admin/smsPort/middleware/{id}")
+//    public AjaxResult smsMiddlewareDelete(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    // ========== 外呼租户定价 /admin/voice-api/tenants ==========
+//    // 注意: /admin/voice-api/tenants/{apiId}, /admin/voice-api/apis/{companyId},
+//    // /admin/voice-api/assignTenants, /admin/voice-api/unassignTenant,
+//    // /admin/voice-api/tenantCount/{apiId} 已在 AdminCompanyBridgeController 中存在
+//
+//    // ========== 引擎进化 /workflow/lobster/engine/evolution ==========
+//    @GetMapping("/workflow/lobster/engine/evolution/metrics")
+//    public AjaxResult evolutionMetrics() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster/engine/evolution/analyze")
+//    public AjaxResult evolutionAnalyze(@RequestParam(required = false) Long workflowId) { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @PostMapping("/workflow/lobster/engine/evolution/apply")
+//    public AjaxResult evolutionApply(@RequestParam Long suggestionId) { return AjaxResult.success(); }
+//
+//    @GetMapping("/workflow/lobster/engine/heartbeat/status")
+//    public AjaxResult heartbeatStatus(@RequestParam(required = false) String instanceId) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster/engine/channels")
+//    public AjaxResult engineChannels() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    // ========== 工作流类型 /workflow/lobster/types ==========
+//    @GetMapping("/workflow/lobster/types")
+//    public AjaxResult lobsterTypes() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    // ========== 销冠语料补充端点 ==========
+//    @PostMapping("/workflow/lobster/sales-corpus/batch-import")
+//    public AjaxResult salesCorpusBatchImport(@RequestBody Map<String, Object> data) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster/sales-corpus/dialog")
+//    public AjaxResult salesCorpusDialog(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    // ========== 工作流执行 /workflow/lobster-exec ==========
+//    @GetMapping("/workflow/lobster-exec/instance/list")
+//    public TableDataInfo execInstanceList() { return emptyTable(); }
+//
+//    @GetMapping("/workflow/lobster-exec/instance/{instanceId}")
+//    public AjaxResult execInstanceGet(@PathVariable String instanceId) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster-exec/node-logs/{instanceId}")
+//    public AjaxResult execNodeLogs(@PathVariable String instanceId) { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @PostMapping("/workflow/lobster-exec/start")
+//    public AjaxResult execStart() { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster-exec/next-node")
+//    public AjaxResult execNextNode() { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster-exec/pause/{instanceId}")
+//    public AjaxResult execPause(@PathVariable String instanceId) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster-exec/resume/{instanceId}")
+//    public AjaxResult execResume(@PathVariable String instanceId) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster-exec/terminate/{instanceId}")
+//    public AjaxResult execTerminate(@PathVariable String instanceId) { return AjaxResult.success(); }
+//
+//    @GetMapping("/workflow/lobster-exec/control-mode/{instanceId}")
+//    public AjaxResult execControlMode(@PathVariable String instanceId) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster-exec/control-mode/{instanceId}")
+//    public AjaxResult execSetControlMode(@PathVariable String instanceId) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster-exec/complete-handoff/{instanceId}")
+//    public AjaxResult execCompleteHandoff(@PathVariable String instanceId) { return AjaxResult.success(); }
+//
+//    @GetMapping("/workflow/lobster-exec/compliance-rules")
+//    public AjaxResult execComplianceRules() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    @PostMapping("/workflow/lobster-exec/compliance-rule")
+//    public AjaxResult execAddComplianceRule(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/workflow/lobster-exec/compliance-rule/{id}")
+//    public AjaxResult execUpdateComplianceRule(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/workflow/lobster-exec/compliance-rule/{id}")
+//    public AjaxResult execDeleteComplianceRule(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    // ========== 提示词补充端点 ==========
+//    @GetMapping("/workflow/lobster/prompt/{id}")
+//    public AjaxResult promptGet(@PathVariable Long id) { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster/prompt")
+//    public AjaxResult promptAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PutMapping("/workflow/lobster/prompt/{id}")
+//    public AjaxResult promptUpdate(@PathVariable Long id, @RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @DeleteMapping("/workflow/lobster/prompt/{id}")
+//    public AjaxResult promptDelete(@PathVariable Long id) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster/prompt/refresh-cache")
+//    public AjaxResult promptRefreshCache() { return AjaxResult.success(); }
+//
+//    // ========== API注册补充端点 ==========
+//    @PostMapping("/workflow/lobster/api-registry")
+//    public AjaxResult apiRegistryAdd(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster/api-registry/refresh")
+//    public AjaxResult apiRegistryRefresh() { return AjaxResult.success(); }
+//
+//    @GetMapping("/workflow/lobster/api-registry/categories")
+//    public AjaxResult apiRegistryCategories() { return AjaxResult.success(new ArrayList<>()); }
+//
+//    // ========== 优化建议补充端点 ==========
+//    @GetMapping("/workflow/lobster/optimization/pending-audit")
+//    public TableDataInfo optimizationPendingAudit() { return emptyTable(); }
+//
+//    @PostMapping("/workflow/lobster/optimization/audit/{optimizationId}")
+//    public AjaxResult optimizationAudit(@PathVariable Long optimizationId) { return AjaxResult.success(); }
+//
+//    @PostMapping("/workflow/lobster/optimization/analyze")
+//    public AjaxResult optimizationAnalyze() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @GetMapping("/workflow/lobster/optimization/config")
+//    public AjaxResult optimizationConfig() { return AjaxResult.success(new HashMap<>()); }
+//
+//    @PostMapping("/workflow/lobster/optimization/config")
+//    public AjaxResult optimizationSetConfig(@RequestBody Map<String, Object> data) { return AjaxResult.success(); }
+//
+//    // ========== 死信队列补充端点 ==========
+//    @GetMapping("/workflow/lobster/dead-letter/retry-all")
+//    public AjaxResult deadLetterRetryAllPost() { return AjaxResult.success(); }
+//
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminModuleUsageController.java

@@ -2,7 +2,6 @@ package com.fs.admin.controller;
 
 import java.util.List;
 import java.util.Map;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
@@ -21,7 +20,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台可查看所有代理下所有租户的模块使用详情
  * 支持按代理维度、租户维度筛选
  */
-@Profile("admin")
 @RestController
 @RequestMapping({"/admin/moduleUsage", "/admin/module-usage"})
 public class AdminModuleUsageController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminProxyController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.List;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.ProxyLog;
 import com.fs.common.core.controller.BaseController;
@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
  * @author fs
  * @date 2024-01-01
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/proxy")
 public class AdminProxyController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminRechargeRecordController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fs.admin.vo.RechargeRecordExportVO;
@@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台-租户充值记录控制器
  * 数据来源:tenant_wallet_txn (txn_type='RECHARGE')
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/recharge-record")
 public class AdminRechargeRecordController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminServiceCostController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.List;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
  * @author fs
  * @date 2024-01-01
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/serviceCost")
 public class AdminServiceCostController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminSopController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台SOP工作流管理控制器
  * 遍历所有租户库查询 qw_sop / qw_sop_temp 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/sop")
 public class AdminSopController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminStatisticsController.java

@@ -6,7 +6,6 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -27,7 +26,6 @@ import org.springframework.web.bind.annotation.*;
  * @author fs
  * @date 2024-01-01
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/statistics")
 public class AdminStatisticsController extends BaseController

+ 333 - 335
fs-agent/src/main/java/com/fs/admin/controller/AdminStoreMiscController.java

@@ -1,335 +1,333 @@
-package com.fs.admin.controller;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.hisStore.domain.*;
-import com.fs.hisStore.service.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.*;
-
-/**
- * 商城运营/优惠券/物流/门店管理 - adminui端Controller(fs-admin 8004)
- * 桥接 hisStore 服务层,提供 /store/* 运营相关路径的完整CRUD
- */
-@Profile("admin")
-@RestController
-public class AdminStoreMiscController extends BaseController {
-
-    @Autowired(required = false)
-    private JdbcTemplate jdbcTemplate;
-
-    private TableDataInfo safeListFromTable(String table) {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        try {
-            if (jdbcTemplate != null) {
-                List<Map<String, Object>> rows = jdbcTemplate.queryForList(
-                        "SELECT * FROM " + table + " ORDER BY 1 DESC LIMIT 200");
-                r.setRows(rows);
-                r.setTotal(rows.size());
-            } else {
-                r.setRows(new ArrayList<>());
-                r.setTotal(0);
-            }
-        } catch (Exception e) {
-            r.setRows(new ArrayList<>());
-            r.setTotal(0);
-        }
-        return r;
-    }
-
-    @Autowired
-    private IFsStoreCouponScrmService storeCouponService;
-    @Autowired
-    private IFsStoreCouponIssueScrmService storeCouponIssueService;
-    @Autowired
-    private IFsStoreCouponIssueUserScrmService storeCouponIssueUserService;
-    @Autowired
-    private IFsStoreCouponUserScrmService storeCouponUserService;
-    @Autowired
-    private IFsStoreActivityScrmService storeActivityService;
-    @Autowired
-    private IFsShippingTemplatesScrmService shippingTemplatesService;
-    @Autowired
-    private IFsShippingTemplatesFreeScrmService shippingTemplatesFreeService;
-    @Autowired
-    private IFsShippingTemplatesRegionScrmService shippingTemplatesRegionService;
-    @Autowired
-    private IFsStoreCartScrmService storeCartService;
-    @Autowired
-    private IFsStoreShopScrmService storeShopService;
-    @Autowired
-    private IFsStoreShopStaffScrmService storeShopStaffService;
-    @Autowired
-    private IFsStoreVisitScrmService storeVisitService;
-    @Autowired
-    private IFsStoreRecommendScrmService storeRecommendService;
-    @Autowired
-    private IFsUserPromoterApplyScrmService userPromoterApplyService;
-    @Autowired
-    private IFsMenuScrmService menuScrmService;
-    @Autowired
-    private IFsPrescribeScrmService prescribeService;
-    @Autowired
-    private IFsPrescribeDrugScrmService prescribeDrugService;
-    @Autowired
-    private IFsAdvScrmService advScrmService;
-    @Autowired
-    private IFsHomeArticleScrmService homeArticleService;
-    @Autowired
-    private IFsHomeArticleCategoryScrmService homeArticleCategoryService;
-    @Autowired
-    private IFsHomeArticleViewScrmService homeArticleViewService;
-    @Autowired
-    private IFsStoreScrmService storeScrmService;
-
-    // storeCoupon CRUD已迁移至 FsStoreCouponScrmBridgeController (fs-admin模块)
-
-    // ========== 优惠券发行 /store/storeCouponIssue ==========
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:list')")
-    @GetMapping("/store/storeCouponIssue/list")
-    public TableDataInfo storeCouponIssueList(FsStoreCouponIssueScrm param) {
-        startPage();
-        List<FsStoreCouponIssueScrm> list = storeCouponIssueService.selectFsStoreCouponIssueList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 发行用户 /store/storeCouponIssueUser ==========
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssueUser:list')")
-    @GetMapping("/store/storeCouponIssueUser/list")
-    public TableDataInfo storeCouponIssueUserList(FsStoreCouponIssueUserScrm param) {
-        startPage();
-        List<FsStoreCouponIssueUserScrm> list = storeCouponIssueUserService.selectFsStoreCouponIssueUserList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 用户优惠券 /store/storeCouponUser ==========
-    @PreAuthorize("@ss.hasPermi('store:storeCouponUser:list')")
-    @GetMapping("/store/storeCouponUser/list")
-    public TableDataInfo storeCouponUserList(FsStoreCouponUserScrm param) {
-        startPage();
-        List<FsStoreCouponUserScrm> list = storeCouponUserService.selectFsStoreCouponUserList(param);
-        return getDataTable(list);
-    }
-
-    // storeActivity CRUD已迁移至 FsStoreActivityScrmBridgeController (fs-admin模块)
-
-    // ========== 运费模板 /store/shippingTemplates ==========
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:list')")
-    @GetMapping("/store/shippingTemplates/list")
-    public TableDataInfo shippingTemplatesList(FsShippingTemplatesScrm param) {
-        startPage();
-        List<FsShippingTemplatesScrm> list = shippingTemplatesService.selectFsShippingTemplatesList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 包邮模板 /store/shippingTemplatesFree ==========
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:list')")
-    @GetMapping("/store/shippingTemplatesFree/list")
-    public TableDataInfo shippingTemplatesFreeList(FsShippingTemplatesFreeScrm param) {
-        startPage();
-        List<FsShippingTemplatesFreeScrm> list = shippingTemplatesFreeService.selectFsShippingTemplatesFreeList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 区域运费 /store/shippingTemplatesRegion ==========
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:list')")
-    @GetMapping("/store/shippingTemplatesRegion/list")
-    public TableDataInfo shippingTemplatesRegionList(FsShippingTemplatesRegionScrm param) {
-        startPage();
-        List<FsShippingTemplatesRegionScrm> list = shippingTemplatesRegionService.selectFsShippingTemplatesRegionList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 购物车 /store/storeCart ==========
-    @PreAuthorize("@ss.hasPermi('store:storeCart:list')")
-    @GetMapping("/store/storeCart/list")
-    public TableDataInfo storeCartList(FsStoreCartScrm param) {
-        startPage();
-        List<FsStoreCartScrm> list = storeCartService.selectFsStoreCartList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 门店管理 /store/storeShop ==========
-    @PreAuthorize("@ss.hasPermi('store:storeShop:list')")
-    @GetMapping("/store/storeShop/list")
-    public TableDataInfo storeShopList(FsStoreShopScrm param) {
-        startPage();
-        List<FsStoreShopScrm> list = storeShopService.selectFsStoreShopList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 门店员工 /store/storeShopStaff ==========
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:list')")
-    @GetMapping("/store/storeShopStaff/list")
-    public TableDataInfo storeShopStaffList(FsStoreShopStaffScrm param) {
-        startPage();
-        List<FsStoreShopStaffScrm> list = storeShopStaffService.selectFsStoreShopStaffList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 浏览记录 /store/storeVisit ==========
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:list')")
-    @GetMapping("/store/storeVisit/list")
-    public TableDataInfo storeVisitList(FsStoreVisitScrm param) {
-        startPage();
-        List<FsStoreVisitScrm> list = storeVisitService.selectFsStoreVisitList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 推荐管理 /store/recommend ==========
-    @PreAuthorize("@ss.hasPermi('store:recommend:list')")
-    @GetMapping("/store/recommend/list")
-    public TableDataInfo recommendList(FsStoreRecommendScrm param) {
-        startPage();
-        List<FsStoreRecommendScrm> list = storeRecommendService.selectFsStoreRecommendScrmList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 推广员申请 /store/userPromoterApply ==========
-    @PreAuthorize("@ss.hasPermi('store:userPromoterApply:list')")
-    @GetMapping("/store/userPromoterApply/list")
-    public TableDataInfo userPromoterApplyList(FsUserPromoterApplyScrm param) {
-        startPage();
-        List<FsUserPromoterApplyScrm> list = userPromoterApplyService.selectFsUserPromoterApplyList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 商城菜单 /store/menu ==========
-    @PreAuthorize("@ss.hasPermi('store:menu:list')")
-    @GetMapping("/store/menu/list")
-    public AjaxResult menuList(FsMenuScrm param) {
-        List<FsMenuScrm> list = menuScrmService.selectFsMenuList(param);
-        return AjaxResult.success(list);
-    }
-
-    // ========== 处方管理 /store/prescribe ==========
-    @PreAuthorize("@ss.hasPermi('store:prescribe:list')")
-    @GetMapping("/store/prescribe/list")
-    public TableDataInfo prescribeList(FsPrescribeScrm param) {
-        startPage();
-        List<FsPrescribeScrm> list = prescribeService.selectFsPrescribeList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 处方药品 /store/prescribeDrug ==========
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:list')")
-    @GetMapping("/store/prescribeDrug/list")
-    public TableDataInfo prescribeDrugList(FsPrescribeDrugScrm param) {
-        startPage();
-        List<FsPrescribeDrugScrm> list = prescribeDrugService.selectFsPrescribeDrugList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 广告管理 /store/adv ==========
-    @PreAuthorize("@ss.hasPermi('store:adv:list')")
-    @GetMapping("/store/adv/list")
-    public TableDataInfo advList(FsAdvScrm param) {
-        startPage();
-        List<FsAdvScrm> list = advScrmService.selectFsAdvList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 首页文章 /store/homeArticle ==========
-    @PreAuthorize("@ss.hasPermi('store:homeArticle:list')")
-    @GetMapping("/store/homeArticle/list")
-    public TableDataInfo homeArticleList(FsHomeArticleScrm param) {
-        startPage();
-        List<FsHomeArticleScrm> list = homeArticleService.selectFsHomeArticleList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 首页分类 /store/homeCategory ==========
-    @PreAuthorize("@ss.hasPermi('store:homeCategory:list')")
-    @GetMapping("/store/homeCategory/list")
-    public TableDataInfo homeCategoryList(FsHomeArticleCategoryScrm param) {
-        startPage();
-        List<FsHomeArticleCategoryScrm> list = homeArticleCategoryService.selectFsHomeArticleCategoryList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 首页视图 /store/homeView ==========
-    @PreAuthorize("@ss.hasPermi('store:homeView:list')")
-    @GetMapping("/store/homeView/list")
-    public TableDataInfo homeViewList(FsHomeArticleViewScrm param) {
-        startPage();
-        List<FsHomeArticleViewScrm> list = homeArticleViewService.selectFsHomeArticleViewList(param);
-        return getDataTable(list);
-    }
-
-    // ========== 店铺管理 /store/his/store ==========
-    @PreAuthorize("@ss.hasPermi('store:his:store:list')")
-    @GetMapping("/store/his/store/list")
-    public TableDataInfo hisStoreList(FsStoreScrm param) {
-        startPage();
-        List<FsStoreScrm> list = storeScrmService.selectFsStoreList(param);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:his:store:audit')")
-    @GetMapping("/store/his/store/audit")
-    public AjaxResult hisStoreAudit() {
-        return AjaxResult.success();
-    }
-
-    // ========== 商城统计 /store/statistics ==========
-    @GetMapping({"/store/statistics/storeOrder", "/store/statistics/packageOrder",
-                 "/store/statistics/storePayment", "/store/statistics/inquiryOrder"})
-    public AjaxResult storeStatistics() {
-        Map<String, Object> data = new HashMap<>();
-        data.put("total", 0);
-        data.put("amount", 0);
-        data.put("rows", new ArrayList<>());
-        return AjaxResult.success(data);
-    }
-
-    // ========== saasui额外store端点 ==========
-    @GetMapping("/store/package/list")
-    public TableDataInfo storePackageList(FsStoreProductPackageScrm param) {
-        startPage();
-        List<FsStoreProductPackageScrm> list = storeProductPackageService.selectFsStoreProductPackageList(param);
-        return getDataTable(list);
-    }
-
-    @Autowired
-    private IFsStoreProductPackageScrmService storeProductPackageService;
-
-    @GetMapping("/store/exportTask/list")
-    public TableDataInfo storeExportTaskList() {
-        return safeListFromTable("fs_export_task");
-    }
-
-    @GetMapping({"/store/healthRecord/list", "/store/healthRecord/myList"})
-    public TableDataInfo storeHealthRecordList() {
-        return safeListFromTable("fs_health_record");
-    }
-
-    @GetMapping({"/store/inquiryOrder/list", "/store/inquiryOrder/myList"})
-    public TableDataInfo storeInquiryOrderList() {
-        return safeListFromTable("fs_inquiry_order");
-    }
-
-    @GetMapping({"/store/packageOrder/list", "/store/packageOrder/myList"})
-    public TableDataInfo storePackageOrderList() {
-        return safeListFromTable("fs_package_order");
-    }
-
-    @GetMapping({"/store/prescribe/myList", "/store/storeAfterSales/myList"})
-    public TableDataInfo storeMyLists() {
-        return safeListFromTable("fs_prescribe");
-    }
-
-    @GetMapping("/store/inquiryOrderReport/list")
-    public TableDataInfo storeInquiryOrderReportList() {
-        return safeListFromTable("fs_inquiry_order_report");
-    }
-}
+//package com.fs.admin.controller;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.hisStore.domain.*;
+//import com.fs.hisStore.service.*;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.jdbc.core.JdbcTemplate;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.*;
+//
+///**
+// * 商城运营/优惠券/物流/门店管理 - adminui端Controller(fs-admin 8004)
+// * 桥接 hisStore 服务层,提供 /store/* 运营相关路径的完整CRUD
+// */
+//@RestController
+//public class AdminStoreMiscController extends BaseController {
+//
+//    @Autowired(required = false)
+//    private JdbcTemplate jdbcTemplate;
+//
+//    private TableDataInfo safeListFromTable(String table) {
+//        TableDataInfo r = new TableDataInfo();
+//        r.setCode(200);
+//        r.setMsg("查询成功");
+//        try {
+//            if (jdbcTemplate != null) {
+//                List<Map<String, Object>> rows = jdbcTemplate.queryForList(
+//                        "SELECT * FROM " + table + " ORDER BY 1 DESC LIMIT 200");
+//                r.setRows(rows);
+//                r.setTotal(rows.size());
+//            } else {
+//                r.setRows(new ArrayList<>());
+//                r.setTotal(0);
+//            }
+//        } catch (Exception e) {
+//            r.setRows(new ArrayList<>());
+//            r.setTotal(0);
+//        }
+//        return r;
+//    }
+//
+//    @Autowired
+//    private IFsStoreCouponScrmService storeCouponService;
+//    @Autowired
+//    private IFsStoreCouponIssueScrmService storeCouponIssueService;
+//    @Autowired
+//    private IFsStoreCouponIssueUserScrmService storeCouponIssueUserService;
+//    @Autowired
+//    private IFsStoreCouponUserScrmService storeCouponUserService;
+//    @Autowired
+//    private IFsStoreActivityScrmService storeActivityService;
+//    @Autowired
+//    private IFsShippingTemplatesScrmService shippingTemplatesService;
+//    @Autowired
+//    private IFsShippingTemplatesFreeScrmService shippingTemplatesFreeService;
+//    @Autowired
+//    private IFsShippingTemplatesRegionScrmService shippingTemplatesRegionService;
+//    @Autowired
+//    private IFsStoreCartScrmService storeCartService;
+//    @Autowired
+//    private IFsStoreShopScrmService storeShopService;
+//    @Autowired
+//    private IFsStoreShopStaffScrmService storeShopStaffService;
+//    @Autowired
+//    private IFsStoreVisitScrmService storeVisitService;
+//    @Autowired
+//    private IFsStoreRecommendScrmService storeRecommendService;
+//    @Autowired
+//    private IFsUserPromoterApplyScrmService userPromoterApplyService;
+//    @Autowired
+//    private IFsMenuScrmService menuScrmService;
+//    @Autowired
+//    private IFsPrescribeScrmService prescribeService;
+//    @Autowired
+//    private IFsPrescribeDrugScrmService prescribeDrugService;
+//    @Autowired
+//    private IFsAdvScrmService advScrmService;
+//    @Autowired
+//    private IFsHomeArticleScrmService homeArticleService;
+//    @Autowired
+//    private IFsHomeArticleCategoryScrmService homeArticleCategoryService;
+//    @Autowired
+//    private IFsHomeArticleViewScrmService homeArticleViewService;
+//    @Autowired
+//    private IFsStoreScrmService storeScrmService;
+//
+//    // storeCoupon CRUD已迁移至 FsStoreCouponScrmBridgeController (fs-admin模块)
+//
+//    // ========== 优惠券发行 /store/storeCouponIssue ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:list')")
+//    @GetMapping("/store/storeCouponIssue/list")
+//    public TableDataInfo storeCouponIssueList(FsStoreCouponIssueScrm param) {
+//        startPage();
+//        List<FsStoreCouponIssueScrm> list = storeCouponIssueService.selectFsStoreCouponIssueList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 发行用户 /store/storeCouponIssueUser ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssueUser:list')")
+//    @GetMapping("/store/storeCouponIssueUser/list")
+//    public TableDataInfo storeCouponIssueUserList(FsStoreCouponIssueUserScrm param) {
+//        startPage();
+//        List<FsStoreCouponIssueUserScrm> list = storeCouponIssueUserService.selectFsStoreCouponIssueUserList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 用户优惠券 /store/storeCouponUser ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponUser:list')")
+//    @GetMapping("/store/storeCouponUser/list")
+//    public TableDataInfo storeCouponUserList(FsStoreCouponUserScrm param) {
+//        startPage();
+//        List<FsStoreCouponUserScrm> list = storeCouponUserService.selectFsStoreCouponUserList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // storeActivity CRUD已迁移至 FsStoreActivityScrmBridgeController (fs-admin模块)
+//
+//    // ========== 运费模板 /store/shippingTemplates ==========
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:list')")
+//    @GetMapping("/store/shippingTemplates/list")
+//    public TableDataInfo shippingTemplatesList(FsShippingTemplatesScrm param) {
+//        startPage();
+//        List<FsShippingTemplatesScrm> list = shippingTemplatesService.selectFsShippingTemplatesList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 包邮模板 /store/shippingTemplatesFree ==========
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:list')")
+//    @GetMapping("/store/shippingTemplatesFree/list")
+//    public TableDataInfo shippingTemplatesFreeList(FsShippingTemplatesFreeScrm param) {
+//        startPage();
+//        List<FsShippingTemplatesFreeScrm> list = shippingTemplatesFreeService.selectFsShippingTemplatesFreeList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 区域运费 /store/shippingTemplatesRegion ==========
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:list')")
+//    @GetMapping("/store/shippingTemplatesRegion/list")
+//    public TableDataInfo shippingTemplatesRegionList(FsShippingTemplatesRegionScrm param) {
+//        startPage();
+//        List<FsShippingTemplatesRegionScrm> list = shippingTemplatesRegionService.selectFsShippingTemplatesRegionList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 购物车 /store/storeCart ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:list')")
+//    @GetMapping("/store/storeCart/list")
+//    public TableDataInfo storeCartList(FsStoreCartScrm param) {
+//        startPage();
+//        List<FsStoreCartScrm> list = storeCartService.selectFsStoreCartList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 门店管理 /store/storeShop ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeShop:list')")
+//    @GetMapping("/store/storeShop/list")
+//    public TableDataInfo storeShopList(FsStoreShopScrm param) {
+//        startPage();
+//        List<FsStoreShopScrm> list = storeShopService.selectFsStoreShopList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 门店员工 /store/storeShopStaff ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:list')")
+//    @GetMapping("/store/storeShopStaff/list")
+//    public TableDataInfo storeShopStaffList(FsStoreShopStaffScrm param) {
+//        startPage();
+//        List<FsStoreShopStaffScrm> list = storeShopStaffService.selectFsStoreShopStaffList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 浏览记录 /store/storeVisit ==========
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:list')")
+//    @GetMapping("/store/storeVisit/list")
+//    public TableDataInfo storeVisitList(FsStoreVisitScrm param) {
+//        startPage();
+//        List<FsStoreVisitScrm> list = storeVisitService.selectFsStoreVisitList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 推荐管理 /store/recommend ==========
+//    @PreAuthorize("@ss.hasPermi('store:recommend:list')")
+//    @GetMapping("/store/recommend/list")
+//    public TableDataInfo recommendList(FsStoreRecommendScrm param) {
+//        startPage();
+//        List<FsStoreRecommendScrm> list = storeRecommendService.selectFsStoreRecommendScrmList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 推广员申请 /store/userPromoterApply ==========
+//    @PreAuthorize("@ss.hasPermi('store:userPromoterApply:list')")
+//    @GetMapping("/store/userPromoterApply/list")
+//    public TableDataInfo userPromoterApplyList(FsUserPromoterApplyScrm param) {
+//        startPage();
+//        List<FsUserPromoterApplyScrm> list = userPromoterApplyService.selectFsUserPromoterApplyList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 商城菜单 /store/menu ==========
+//    @PreAuthorize("@ss.hasPermi('store:menu:list')")
+//    @GetMapping("/store/menu/list")
+//    public AjaxResult menuList(FsMenuScrm param) {
+//        List<FsMenuScrm> list = menuScrmService.selectFsMenuList(param);
+//        return AjaxResult.success(list);
+//    }
+//
+//    // ========== 处方管理 /store/prescribe ==========
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:list')")
+//    @GetMapping("/store/prescribe/list")
+//    public TableDataInfo prescribeList(FsPrescribeScrm param) {
+//        startPage();
+//        List<FsPrescribeScrm> list = prescribeService.selectFsPrescribeList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 处方药品 /store/prescribeDrug ==========
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:list')")
+//    @GetMapping("/store/prescribeDrug/list")
+//    public TableDataInfo prescribeDrugList(FsPrescribeDrugScrm param) {
+//        startPage();
+//        List<FsPrescribeDrugScrm> list = prescribeDrugService.selectFsPrescribeDrugList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 广告管理 /store/adv ==========
+//    @PreAuthorize("@ss.hasPermi('store:adv:list')")
+//    @GetMapping("/store/adv/list")
+//    public TableDataInfo advList(FsAdvScrm param) {
+//        startPage();
+//        List<FsAdvScrm> list = advScrmService.selectFsAdvList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 首页文章 /store/homeArticle ==========
+//    @PreAuthorize("@ss.hasPermi('store:homeArticle:list')")
+//    @GetMapping("/store/homeArticle/list")
+//    public TableDataInfo homeArticleList(FsHomeArticleScrm param) {
+//        startPage();
+//        List<FsHomeArticleScrm> list = homeArticleService.selectFsHomeArticleList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 首页分类 /store/homeCategory ==========
+//    @PreAuthorize("@ss.hasPermi('store:homeCategory:list')")
+//    @GetMapping("/store/homeCategory/list")
+//    public TableDataInfo homeCategoryList(FsHomeArticleCategoryScrm param) {
+//        startPage();
+//        List<FsHomeArticleCategoryScrm> list = homeArticleCategoryService.selectFsHomeArticleCategoryList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 首页视图 /store/homeView ==========
+//    @PreAuthorize("@ss.hasPermi('store:homeView:list')")
+//    @GetMapping("/store/homeView/list")
+//    public TableDataInfo homeViewList(FsHomeArticleViewScrm param) {
+//        startPage();
+//        List<FsHomeArticleViewScrm> list = homeArticleViewService.selectFsHomeArticleViewList(param);
+//        return getDataTable(list);
+//    }
+//
+//    // ========== 店铺管理 /store/his/store ==========
+//    @PreAuthorize("@ss.hasPermi('store:his:store:list')")
+//    @GetMapping("/store/his/store/list")
+//    public TableDataInfo hisStoreList(FsStoreScrm param) {
+//        startPage();
+//        List<FsStoreScrm> list = storeScrmService.selectFsStoreList(param);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:his:store:audit')")
+//    @GetMapping("/store/his/store/audit")
+//    public AjaxResult hisStoreAudit() {
+//        return AjaxResult.success();
+//    }
+//
+//    // ========== 商城统计 /store/statistics ==========
+//    @GetMapping({"/store/statistics/storeOrder", "/store/statistics/packageOrder",
+//                 "/store/statistics/storePayment", "/store/statistics/inquiryOrder"})
+//    public AjaxResult storeStatistics() {
+//        Map<String, Object> data = new HashMap<>();
+//        data.put("total", 0);
+//        data.put("amount", 0);
+//        data.put("rows", new ArrayList<>());
+//        return AjaxResult.success(data);
+//    }
+//
+//    // ========== saasui额外store端点 ==========
+//    @GetMapping("/store/package/list")
+//    public TableDataInfo storePackageList(FsStoreProductPackageScrm param) {
+//        startPage();
+//        List<FsStoreProductPackageScrm> list = storeProductPackageService.selectFsStoreProductPackageList(param);
+//        return getDataTable(list);
+//    }
+//
+//    @Autowired
+//    private IFsStoreProductPackageScrmService storeProductPackageService;
+//
+//    @GetMapping("/store/exportTask/list")
+//    public TableDataInfo storeExportTaskList() {
+//        return safeListFromTable("fs_export_task");
+//    }
+//
+//    @GetMapping({"/store/healthRecord/list", "/store/healthRecord/myList"})
+//    public TableDataInfo storeHealthRecordList() {
+//        return safeListFromTable("fs_health_record");
+//    }
+//
+//    @GetMapping({"/store/inquiryOrder/list", "/store/inquiryOrder/myList"})
+//    public TableDataInfo storeInquiryOrderList() {
+//        return safeListFromTable("fs_inquiry_order");
+//    }
+//
+//    @GetMapping({"/store/packageOrder/list", "/store/packageOrder/myList"})
+//    public TableDataInfo storePackageOrderList() {
+//        return safeListFromTable("fs_package_order");
+//    }
+//
+//    @GetMapping({"/store/prescribe/myList", "/store/storeAfterSales/myList"})
+//    public TableDataInfo storeMyLists() {
+//        return safeListFromTable("fs_prescribe");
+//    }
+//
+//    @GetMapping("/store/inquiryOrderReport/list")
+//    public TableDataInfo storeInquiryOrderReportList() {
+//        return safeListFromTable("fs_inquiry_order_report");
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminStoreOrderAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台销售订单管理控制器
  * 遍历所有租户库查询 fs_store_order_scrm 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/storeOrder")
 public class AdminStoreOrderAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminStoreOrderController.java

@@ -12,7 +12,6 @@ import com.fs.hisStore.vo.FsStoreOrderAuditVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -20,7 +19,6 @@ import java.util.List;
  * 商城订单/支付/售后管理 - adminui端Controller(fs-admin 8004)
  * 桥接 hisStore 服务层,提供 /store/* 订单相关路径的完整CRUD
  */
-@Profile("admin")
 @RestController
 public class AdminStoreOrderController extends BaseController {
 

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminStoreProductController.java

@@ -10,7 +10,6 @@ import com.fs.hisStore.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -18,7 +17,6 @@ import java.util.List;
  * 商城商品管理 - adminui端Controller(fs-admin 8004)
  * 桥接 hisStore 服务层,提供 /store/* 路径的完整CRUD
  */
-@Profile("admin")
 @RestController
 public class AdminStoreProductController extends BaseController {
 

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminVideoResourceController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.page.TableDataInfo;
@@ -13,7 +12,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台视频资源审计控制器
  * 遍历所有租户库查询 fs_user_course_video 数据(视频资源部分)
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/videoResource")
 public class AdminVideoResourceController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AdminWithdrawalController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.List;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Log;
 import com.fs.common.annotation.ProxyLog;
@@ -20,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
 /**
  * 总后台-代理提现管理控制器
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/withdrawal")
 public class AdminWithdrawalController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AiChatQualityController.java

@@ -15,11 +15,9 @@ import com.fs.proxy.service.AiChatQualityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/aiChatQuality")
 public class AiChatQualityController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/AiProviderAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.List;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
@@ -13,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-@Profile("admin")
 @RestController
 @RequestMapping({"/admin/aiProvider", "/knowledge/ai-provider"})
 public class AiProviderAdminController extends BaseController

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/ArticleAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台文章内容审计控制器
  * 遍历所有租户库查询 fs_article 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/article")
 public class ArticleAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/CallRecordAdminController.java

@@ -14,7 +14,6 @@ import com.fs.proxy.service.CallQualityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * 总后台外呼记录和质检控制器
  * 查看所有租户的外呼通话记录、录音和质检
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/callRecord")
 public class CallRecordAdminController extends BaseController {

+ 14 - 6
fs-agent/src/main/java/com/fs/admin/controller/CompanyAdminController.java

@@ -17,7 +17,6 @@ import com.fs.tenant.service.TenantInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -28,7 +27,6 @@ import java.util.stream.Collectors;
  * 总后台租户管理控制器(SaaS 多租户版)
  * 查询 tenant_info 表,不再查询 company 表
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/company")
 public class CompanyAdminController extends BaseController {
@@ -227,13 +225,23 @@ public class CompanyAdminController extends BaseController {
         }
 
         if ("sys".equals(flag)) {
-            List<SysMenu> assignSysMenu = tenantContextHelper.executeInMaster(() -> loadMasterSysMenus(selected));
+            List<SysMenu> allTemplateMenus = tenantContextHelper.executeInMaster(
+                    () -> tenantInfoMapper.selectMenuList(new SysMenu()));
+            List<Long> expandedSelected = tenantInfoService.expandSysMenuIdsWithAncestors(selected, allTemplateMenus);
+            List<SysMenu> assignSysMenu = tenantContextHelper.executeInMaster(
+                    () -> loadMasterSysMenus(expandedSelected));
+            List<Long> finalSelected = expandedSelected;
             return tenantContextHelper.executeInTenant(tenantInfo,
-                    () -> tenantInfoService.menuAssignReplace(selected, flag, assignSysMenu, null));
+                    () -> tenantInfoService.menuAssignReplace(finalSelected, flag, assignSysMenu, null));
         }
-        List<TenantCompanyMenu> assignCompanyMenu = tenantContextHelper.executeInMaster(() -> loadMasterCompanyMenus(selected));
+        List<TenantCompanyMenu> allTemplateMenus = tenantContextHelper.executeInMaster(
+                () -> tenantInfoMapper.selectCompanyMenuList(new TenantCompanyMenu()));
+        List<Long> expandedSelected = tenantInfoService.expandComMenuIdsWithAncestors(selected, allTemplateMenus);
+        List<TenantCompanyMenu> assignCompanyMenu = tenantContextHelper.executeInMaster(
+                () -> loadMasterCompanyMenus(expandedSelected));
+        List<Long> finalSelected = expandedSelected;
         return tenantContextHelper.executeInTenant(tenantInfo,
-                () -> tenantInfoService.menuAssignReplace(selected, flag, null, assignCompanyMenu));
+                () -> tenantInfoService.menuAssignReplace(finalSelected, flag, null, assignCompanyMenu));
     }
 
     /** 主库 tenant_sys_menu 模板 */

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/CompanyUserAdminController.java

@@ -17,7 +17,6 @@ import com.fs.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -26,7 +25,6 @@ import java.util.List;
  * 读取 ylrz_saas.sys_user 表中 company_id IS NULL 的记录
  * 这些是 admin 总后台自己的管理员账号,不属于任何租户
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/companyUser")
 public class CompanyUserAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/CourseAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台课程内容管理控制器
  * 遍历所有租户库查询课程数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/course")
 public class CourseAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/DbConfigController.java

@@ -8,11 +8,9 @@ import com.fs.tenant.service.DbConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/dbConfig")
 public class DbConfigController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/LiveAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台直播内容管理控制器
  * 遍历所有租户库查询 live_video 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/live")
 public class LiveAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/LobsterAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -14,7 +13,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台龙虾引擎管理控制器
  * 遍历所有租户库查询工作流实例数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/lobster")
 public class LobsterAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/ProductAdminController.java

@@ -1,7 +1,6 @@
 package com.fs.admin.controller;
 
 import java.util.*;
-import org.springframework.context.annotation.Profile;
 
 import com.fs.common.annotation.Excel;
 import com.fs.common.annotation.Log;
@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
  * 总后台商品审核控制器
  * 遍历所有租户库查询 fs_store_product 数据
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/product")
 public class ProductAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/ProxyOperLogController.java

@@ -11,7 +11,6 @@ import com.fs.proxy.service.IProxyOperLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -20,7 +19,6 @@ import java.util.List;
  *
  * @author fs
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/proxyOperLog")
 public class ProxyOperLogController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/QwExternalContactAdminController.java

@@ -13,7 +13,6 @@ import com.fs.qw.service.IQwExternalContactService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -21,7 +20,6 @@ import java.util.List;
  * 总后台企微用户管理控制器
  * 查看所有租户的企微用户
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/admin/qwContact")
 public class QwExternalContactAdminController extends BaseController {

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/store/FsAdvScrmBridgeController.java

@@ -11,7 +11,6 @@ import com.fs.hisStore.service.IFsAdvScrmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2023-06-08
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/store/store/adv")
 public class FsAdvScrmBridgeController extends BaseController

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsMenuScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsMenuScrm;
-import com.fs.hisStore.service.IFsMenuScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 用户端菜单管理 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsMenuScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/menu")
-public class FsMenuScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsMenuScrmService fsMenuService;
-
-    @PreAuthorize("@ss.hasPermi('store:menu:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsMenuScrm fsMenu)
-    {
-        startPage();
-        List<FsMenuScrm> list = fsMenuService.selectFsMenuList(fsMenu);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:menu:export')")
-    @Log(title = "用户端菜单管理", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsMenuScrm fsMenu)
-    {
-        List<FsMenuScrm> list = fsMenuService.selectFsMenuList(fsMenu);
-        ExcelUtil<FsMenuScrm> util = new ExcelUtil<FsMenuScrm>(FsMenuScrm.class);
-        return util.exportExcel(list, "menu");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:menu:query')")
-    @GetMapping(value = "/{menuId}")
-    public AjaxResult getInfo(@PathVariable("menuId") Long menuId)
-    {
-        return AjaxResult.success(fsMenuService.selectFsMenuById(menuId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:menu:add')")
-    @Log(title = "用户端菜单管理", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsMenuScrm fsMenu)
-    {
-        return toAjax(fsMenuService.insertFsMenu(fsMenu));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:menu:edit')")
-    @Log(title = "用户端菜单管理", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsMenuScrm fsMenu)
-    {
-        return toAjax(fsMenuService.updateFsMenu(fsMenu));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:menu:remove')")
-    @Log(title = "用户端菜单管理", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{menuIds}")
-    public AjaxResult remove(@PathVariable Long[] menuIds)
-    {
-        return toAjax(fsMenuService.deleteFsMenuByIds(menuIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsMenuScrm;
+//import com.fs.hisStore.service.IFsMenuScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 用户端菜单管理 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsMenuScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/menu")
+//public class FsMenuScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsMenuScrmService fsMenuService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:menu:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsMenuScrm fsMenu)
+//    {
+//        startPage();
+//        List<FsMenuScrm> list = fsMenuService.selectFsMenuList(fsMenu);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:menu:export')")
+//    @Log(title = "用户端菜单管理", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsMenuScrm fsMenu)
+//    {
+//        List<FsMenuScrm> list = fsMenuService.selectFsMenuList(fsMenu);
+//        ExcelUtil<FsMenuScrm> util = new ExcelUtil<FsMenuScrm>(FsMenuScrm.class);
+//        return util.exportExcel(list, "menu");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:menu:query')")
+//    @GetMapping(value = "/{menuId}")
+//    public AjaxResult getInfo(@PathVariable("menuId") Long menuId)
+//    {
+//        return AjaxResult.success(fsMenuService.selectFsMenuById(menuId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:menu:add')")
+//    @Log(title = "用户端菜单管理", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsMenuScrm fsMenu)
+//    {
+//        return toAjax(fsMenuService.insertFsMenu(fsMenu));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:menu:edit')")
+//    @Log(title = "用户端菜单管理", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsMenuScrm fsMenu)
+//    {
+//        return toAjax(fsMenuService.updateFsMenu(fsMenu));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:menu:remove')")
+//    @Log(title = "用户端菜单管理", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{menuIds}")
+//    public AjaxResult remove(@PathVariable Long[] menuIds)
+//    {
+//        return toAjax(fsMenuService.deleteFsMenuByIds(menuIds));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsPrescribeDrugScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsPrescribeDrugScrm;
-import com.fs.hisStore.service.IFsPrescribeDrugScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 处方药品 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsPrescribeDrugScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/prescribeDrug")
-public class FsPrescribeDrugScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsPrescribeDrugScrmService fsPrescribeDrugService;
-
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsPrescribeDrugScrm fsPrescribeDrug)
-    {
-        startPage();
-        List<FsPrescribeDrugScrm> list = fsPrescribeDrugService.selectFsPrescribeDrugList(fsPrescribeDrug);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:export')")
-    @Log(title = "处方药品", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsPrescribeDrugScrm fsPrescribeDrug)
-    {
-        List<FsPrescribeDrugScrm> list = fsPrescribeDrugService.selectFsPrescribeDrugList(fsPrescribeDrug);
-        ExcelUtil<FsPrescribeDrugScrm> util = new ExcelUtil<FsPrescribeDrugScrm>(FsPrescribeDrugScrm.class);
-        return util.exportExcel(list, "prescribeDrug");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:query')")
-    @GetMapping(value = "/{drugId}")
-    public AjaxResult getInfo(@PathVariable("drugId") Long drugId)
-    {
-        return AjaxResult.success(fsPrescribeDrugService.selectFsPrescribeDrugById(drugId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:add')")
-    @Log(title = "处方药品", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsPrescribeDrugScrm fsPrescribeDrug)
-    {
-        return toAjax(fsPrescribeDrugService.insertFsPrescribeDrug(fsPrescribeDrug));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:edit')")
-    @Log(title = "处方药品", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsPrescribeDrugScrm fsPrescribeDrug)
-    {
-        return toAjax(fsPrescribeDrugService.updateFsPrescribeDrug(fsPrescribeDrug));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:remove')")
-    @Log(title = "处方药品", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{drugIds}")
-    public AjaxResult remove(@PathVariable Long[] drugIds)
-    {
-        return toAjax(fsPrescribeDrugService.deleteFsPrescribeDrugByIds(drugIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsPrescribeDrugScrm;
+//import com.fs.hisStore.service.IFsPrescribeDrugScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 处方药品 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsPrescribeDrugScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/prescribeDrug")
+//public class FsPrescribeDrugScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsPrescribeDrugScrmService fsPrescribeDrugService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsPrescribeDrugScrm fsPrescribeDrug)
+//    {
+//        startPage();
+//        List<FsPrescribeDrugScrm> list = fsPrescribeDrugService.selectFsPrescribeDrugList(fsPrescribeDrug);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:export')")
+//    @Log(title = "处方药品", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsPrescribeDrugScrm fsPrescribeDrug)
+//    {
+//        List<FsPrescribeDrugScrm> list = fsPrescribeDrugService.selectFsPrescribeDrugList(fsPrescribeDrug);
+//        ExcelUtil<FsPrescribeDrugScrm> util = new ExcelUtil<FsPrescribeDrugScrm>(FsPrescribeDrugScrm.class);
+//        return util.exportExcel(list, "prescribeDrug");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:query')")
+//    @GetMapping(value = "/{drugId}")
+//    public AjaxResult getInfo(@PathVariable("drugId") Long drugId)
+//    {
+//        return AjaxResult.success(fsPrescribeDrugService.selectFsPrescribeDrugById(drugId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:add')")
+//    @Log(title = "处方药品", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsPrescribeDrugScrm fsPrescribeDrug)
+//    {
+//        return toAjax(fsPrescribeDrugService.insertFsPrescribeDrug(fsPrescribeDrug));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:edit')")
+//    @Log(title = "处方药品", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsPrescribeDrugScrm fsPrescribeDrug)
+//    {
+//        return toAjax(fsPrescribeDrugService.updateFsPrescribeDrug(fsPrescribeDrug));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribeDrug:remove')")
+//    @Log(title = "处方药品", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{drugIds}")
+//    public AjaxResult remove(@PathVariable Long[] drugIds)
+//    {
+//        return toAjax(fsPrescribeDrugService.deleteFsPrescribeDrugByIds(drugIds));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsPrescribeScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsPrescribeScrm;
-import com.fs.hisStore.service.IFsPrescribeScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 处方 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsPrescribeScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/prescribe")
-public class FsPrescribeScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsPrescribeScrmService fsPrescribeService;
-
-    @PreAuthorize("@ss.hasPermi('store:prescribe:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsPrescribeScrm fsPrescribe)
-    {
-        startPage();
-        List<FsPrescribeScrm> list = fsPrescribeService.selectFsPrescribeList(fsPrescribe);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribe:export')")
-    @Log(title = "处方", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsPrescribeScrm fsPrescribe)
-    {
-        List<FsPrescribeScrm> list = fsPrescribeService.selectFsPrescribeList(fsPrescribe);
-        ExcelUtil<FsPrescribeScrm> util = new ExcelUtil<FsPrescribeScrm>(FsPrescribeScrm.class);
-        return util.exportExcel(list, "处方数据");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribe:query')")
-    @GetMapping(value = "/{prescribeId}")
-    public AjaxResult getInfo(@PathVariable("prescribeId") Long prescribeId)
-    {
-        return AjaxResult.success(fsPrescribeService.selectFsPrescribeById(prescribeId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribe:add')")
-    @Log(title = "处方", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsPrescribeScrm fsPrescribe)
-    {
-        return toAjax(fsPrescribeService.insertFsPrescribe(fsPrescribe));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribe:edit')")
-    @Log(title = "处方", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsPrescribeScrm fsPrescribe)
-    {
-        return toAjax(fsPrescribeService.updateFsPrescribe(fsPrescribe));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:prescribe:remove')")
-    @Log(title = "处方", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{prescribeIds}")
-    public AjaxResult remove(@PathVariable Long[] prescribeIds)
-    {
-        return toAjax(fsPrescribeService.deleteFsPrescribeByIds(prescribeIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsPrescribeScrm;
+//import com.fs.hisStore.service.IFsPrescribeScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 处方 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsPrescribeScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/prescribe")
+//public class FsPrescribeScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsPrescribeScrmService fsPrescribeService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsPrescribeScrm fsPrescribe)
+//    {
+//        startPage();
+//        List<FsPrescribeScrm> list = fsPrescribeService.selectFsPrescribeList(fsPrescribe);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:export')")
+//    @Log(title = "处方", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsPrescribeScrm fsPrescribe)
+//    {
+//        List<FsPrescribeScrm> list = fsPrescribeService.selectFsPrescribeList(fsPrescribe);
+//        ExcelUtil<FsPrescribeScrm> util = new ExcelUtil<FsPrescribeScrm>(FsPrescribeScrm.class);
+//        return util.exportExcel(list, "处方数据");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:query')")
+//    @GetMapping(value = "/{prescribeId}")
+//    public AjaxResult getInfo(@PathVariable("prescribeId") Long prescribeId)
+//    {
+//        return AjaxResult.success(fsPrescribeService.selectFsPrescribeById(prescribeId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:add')")
+//    @Log(title = "处方", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsPrescribeScrm fsPrescribe)
+//    {
+//        return toAjax(fsPrescribeService.insertFsPrescribe(fsPrescribe));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:edit')")
+//    @Log(title = "处方", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsPrescribeScrm fsPrescribe)
+//    {
+//        return toAjax(fsPrescribeService.updateFsPrescribe(fsPrescribe));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:prescribe:remove')")
+//    @Log(title = "处方", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{prescribeIds}")
+//    public AjaxResult remove(@PathVariable Long[] prescribeIds)
+//    {
+//        return toAjax(fsPrescribeService.deleteFsPrescribeByIds(prescribeIds));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsShippingTemplatesFreeScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsShippingTemplatesFreeScrm;
-import com.fs.hisStore.service.IFsShippingTemplatesFreeScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 免邮费 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsShippingTemplatesFreeScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/shippingTemplatesFree")
-public class FsShippingTemplatesFreeScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsShippingTemplatesFreeScrmService fsShippingTemplatesFreeService;
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
-    {
-        startPage();
-        List<FsShippingTemplatesFreeScrm> list = fsShippingTemplatesFreeService.selectFsShippingTemplatesFreeList(fsShippingTemplatesFree);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:export')")
-    @Log(title = "免邮费", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
-    {
-        List<FsShippingTemplatesFreeScrm> list = fsShippingTemplatesFreeService.selectFsShippingTemplatesFreeList(fsShippingTemplatesFree);
-        ExcelUtil<FsShippingTemplatesFreeScrm> util = new ExcelUtil<FsShippingTemplatesFreeScrm>(FsShippingTemplatesFreeScrm.class);
-        return util.exportExcel(list, "shippingTemplatesFree");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsShippingTemplatesFreeService.selectFsShippingTemplatesFreeById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:add')")
-    @Log(title = "免邮费", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
-    {
-        return toAjax(fsShippingTemplatesFreeService.insertFsShippingTemplatesFree(fsShippingTemplatesFree));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:edit')")
-    @Log(title = "免邮费", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
-    {
-        return toAjax(fsShippingTemplatesFreeService.updateFsShippingTemplatesFree(fsShippingTemplatesFree));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:remove')")
-    @Log(title = "免邮费", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsShippingTemplatesFreeService.deleteFsShippingTemplatesFreeByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsShippingTemplatesFreeScrm;
+//import com.fs.hisStore.service.IFsShippingTemplatesFreeScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 免邮费 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsShippingTemplatesFreeScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/shippingTemplatesFree")
+//public class FsShippingTemplatesFreeScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsShippingTemplatesFreeScrmService fsShippingTemplatesFreeService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
+//    {
+//        startPage();
+//        List<FsShippingTemplatesFreeScrm> list = fsShippingTemplatesFreeService.selectFsShippingTemplatesFreeList(fsShippingTemplatesFree);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:export')")
+//    @Log(title = "免邮费", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
+//    {
+//        List<FsShippingTemplatesFreeScrm> list = fsShippingTemplatesFreeService.selectFsShippingTemplatesFreeList(fsShippingTemplatesFree);
+//        ExcelUtil<FsShippingTemplatesFreeScrm> util = new ExcelUtil<FsShippingTemplatesFreeScrm>(FsShippingTemplatesFreeScrm.class);
+//        return util.exportExcel(list, "shippingTemplatesFree");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsShippingTemplatesFreeService.selectFsShippingTemplatesFreeById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:add')")
+//    @Log(title = "免邮费", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
+//    {
+//        return toAjax(fsShippingTemplatesFreeService.insertFsShippingTemplatesFree(fsShippingTemplatesFree));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:edit')")
+//    @Log(title = "免邮费", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsShippingTemplatesFreeScrm fsShippingTemplatesFree)
+//    {
+//        return toAjax(fsShippingTemplatesFreeService.updateFsShippingTemplatesFree(fsShippingTemplatesFree));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesFree:remove')")
+//    @Log(title = "免邮费", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsShippingTemplatesFreeService.deleteFsShippingTemplatesFreeByIds(ids));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsShippingTemplatesRegionScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsShippingTemplatesRegionScrm;
-import com.fs.hisStore.service.IFsShippingTemplatesRegionScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 邮费区域 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsShippingTemplatesRegionScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/shippingTemplatesRegion")
-public class FsShippingTemplatesRegionScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsShippingTemplatesRegionScrmService fsShippingTemplatesRegionService;
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
-    {
-        startPage();
-        List<FsShippingTemplatesRegionScrm> list = fsShippingTemplatesRegionService.selectFsShippingTemplatesRegionList(fsShippingTemplatesRegion);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:export')")
-    @Log(title = "邮费区域", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
-    {
-        List<FsShippingTemplatesRegionScrm> list = fsShippingTemplatesRegionService.selectFsShippingTemplatesRegionList(fsShippingTemplatesRegion);
-        ExcelUtil<FsShippingTemplatesRegionScrm> util = new ExcelUtil<FsShippingTemplatesRegionScrm>(FsShippingTemplatesRegionScrm.class);
-        return util.exportExcel(list, "shippingTemplatesRegion");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsShippingTemplatesRegionService.selectFsShippingTemplatesRegionById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:add')")
-    @Log(title = "邮费区域", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
-    {
-        return toAjax(fsShippingTemplatesRegionService.insertFsShippingTemplatesRegion(fsShippingTemplatesRegion));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:edit')")
-    @Log(title = "邮费区域", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
-    {
-        return toAjax(fsShippingTemplatesRegionService.updateFsShippingTemplatesRegion(fsShippingTemplatesRegion));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:remove')")
-    @Log(title = "邮费区域", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsShippingTemplatesRegionService.deleteFsShippingTemplatesRegionByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsShippingTemplatesRegionScrm;
+//import com.fs.hisStore.service.IFsShippingTemplatesRegionScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 邮费区域 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsShippingTemplatesRegionScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/shippingTemplatesRegion")
+//public class FsShippingTemplatesRegionScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsShippingTemplatesRegionScrmService fsShippingTemplatesRegionService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
+//    {
+//        startPage();
+//        List<FsShippingTemplatesRegionScrm> list = fsShippingTemplatesRegionService.selectFsShippingTemplatesRegionList(fsShippingTemplatesRegion);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:export')")
+//    @Log(title = "邮费区域", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
+//    {
+//        List<FsShippingTemplatesRegionScrm> list = fsShippingTemplatesRegionService.selectFsShippingTemplatesRegionList(fsShippingTemplatesRegion);
+//        ExcelUtil<FsShippingTemplatesRegionScrm> util = new ExcelUtil<FsShippingTemplatesRegionScrm>(FsShippingTemplatesRegionScrm.class);
+//        return util.exportExcel(list, "shippingTemplatesRegion");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsShippingTemplatesRegionService.selectFsShippingTemplatesRegionById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:add')")
+//    @Log(title = "邮费区域", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
+//    {
+//        return toAjax(fsShippingTemplatesRegionService.insertFsShippingTemplatesRegion(fsShippingTemplatesRegion));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:edit')")
+//    @Log(title = "邮费区域", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsShippingTemplatesRegionScrm fsShippingTemplatesRegion)
+//    {
+//        return toAjax(fsShippingTemplatesRegionService.updateFsShippingTemplatesRegion(fsShippingTemplatesRegion));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplatesRegion:remove')")
+//    @Log(title = "邮费区域", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsShippingTemplatesRegionService.deleteFsShippingTemplatesRegionByIds(ids));
+//    }
+//}

+ 91 - 93
fs-agent/src/main/java/com/fs/admin/controller/store/FsShippingTemplatesScrmBridgeController.java

@@ -1,93 +1,91 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsShippingTemplatesScrm;
-import com.fs.hisStore.param.FsShippingTemplatesAddEditParam;
-import com.fs.hisStore.service.IFsShippingTemplatesScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 运费模板 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsShippingTemplatesScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/shippingTemplates")
-public class FsShippingTemplatesScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsShippingTemplatesScrmService fsShippingTemplatesService;
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsShippingTemplatesScrm fsShippingTemplates)
-    {
-        startPage();
-        fsShippingTemplates.setIsDel(0);
-        List<FsShippingTemplatesScrm> list = fsShippingTemplatesService.selectFsShippingTemplatesList(fsShippingTemplates);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:export')")
-    @Log(title = "运费模板", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsShippingTemplatesScrm fsShippingTemplates)
-    {
-        List<FsShippingTemplatesScrm> list = fsShippingTemplatesService.selectFsShippingTemplatesList(fsShippingTemplates);
-        ExcelUtil<FsShippingTemplatesScrm> util = new ExcelUtil<FsShippingTemplatesScrm>(FsShippingTemplatesScrm.class);
-        return util.exportExcel(list, "shippingTemplates");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsShippingTemplatesService.selectFsShippingTemplatesById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:add')")
-    @Log(title = "运费模板", businessType = BusinessType.INSERT)
-    @PostMapping
-    public R add(@RequestBody FsShippingTemplatesAddEditParam param)
-    {
-        return fsShippingTemplatesService.addOrEdit(param);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:edit')")
-    @Log(title = "运费模板", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public R edit(@RequestBody FsShippingTemplatesAddEditParam param)
-    {
-        return fsShippingTemplatesService.addOrEdit(param);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:remove')")
-    @Log(title = "运费模板", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsShippingTemplatesService.deleteFsShippingTemplatesByIds(ids));
-    }
-
-    @GetMapping("/getAllList")
-    public R getAllList(FsShippingTemplatesScrm fsShippingTemplates)
-    {
-        fsShippingTemplates.setIsDel(0);
-        List<FsShippingTemplatesScrm> list = fsShippingTemplatesService.selectFsShippingTemplatesList(fsShippingTemplates);
-        return R.ok().put("data", list);
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsShippingTemplatesScrm;
+//import com.fs.hisStore.param.FsShippingTemplatesAddEditParam;
+//import com.fs.hisStore.service.IFsShippingTemplatesScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 运费模板 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsShippingTemplatesScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/shippingTemplates")
+//public class FsShippingTemplatesScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsShippingTemplatesScrmService fsShippingTemplatesService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsShippingTemplatesScrm fsShippingTemplates)
+//    {
+//        startPage();
+//        fsShippingTemplates.setIsDel(0);
+//        List<FsShippingTemplatesScrm> list = fsShippingTemplatesService.selectFsShippingTemplatesList(fsShippingTemplates);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:export')")
+//    @Log(title = "运费模板", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsShippingTemplatesScrm fsShippingTemplates)
+//    {
+//        List<FsShippingTemplatesScrm> list = fsShippingTemplatesService.selectFsShippingTemplatesList(fsShippingTemplates);
+//        ExcelUtil<FsShippingTemplatesScrm> util = new ExcelUtil<FsShippingTemplatesScrm>(FsShippingTemplatesScrm.class);
+//        return util.exportExcel(list, "shippingTemplates");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsShippingTemplatesService.selectFsShippingTemplatesById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:add')")
+//    @Log(title = "运费模板", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public R add(@RequestBody FsShippingTemplatesAddEditParam param)
+//    {
+//        return fsShippingTemplatesService.addOrEdit(param);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:edit')")
+//    @Log(title = "运费模板", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public R edit(@RequestBody FsShippingTemplatesAddEditParam param)
+//    {
+//        return fsShippingTemplatesService.addOrEdit(param);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:shippingTemplates:remove')")
+//    @Log(title = "运费模板", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsShippingTemplatesService.deleteFsShippingTemplatesByIds(ids));
+//    }
+//
+//    @GetMapping("/getAllList")
+//    public R getAllList(FsShippingTemplatesScrm fsShippingTemplates)
+//    {
+//        fsShippingTemplates.setIsDel(0);
+//        List<FsShippingTemplatesScrm> list = fsShippingTemplatesService.selectFsShippingTemplatesList(fsShippingTemplates);
+//        return R.ok().put("data", list);
+//    }
+//}

+ 91 - 93
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreActivityScrmBridgeController.java

@@ -1,93 +1,91 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreActivityScrm;
-import com.fs.hisStore.service.IFsStoreActivityScrmService;
-import com.fs.hisStore.service.IFsStoreProductScrmService;
-import com.fs.hisStore.vo.FsStoreProductActivityListVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 活动 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreActivityScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-11-18
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/storeActivity")
-public class FsStoreActivityScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreActivityScrmService fsStoreActivityService;
-    @Autowired
-    private IFsStoreProductScrmService productService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeActivity:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreActivityScrm fsStoreActivity)
-    {
-        startPage();
-        List<FsStoreActivityScrm> list = fsStoreActivityService.selectFsStoreActivityList(fsStoreActivity);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeActivity:export')")
-    @Log(title = "活动", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreActivityScrm fsStoreActivity)
-    {
-        List<FsStoreActivityScrm> list = fsStoreActivityService.selectFsStoreActivityList(fsStoreActivity);
-        ExcelUtil<FsStoreActivityScrm> util = new ExcelUtil<FsStoreActivityScrm>(FsStoreActivityScrm.class);
-        return util.exportExcel(list, "storeActivity");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeActivity:query')")
-    @GetMapping(value = "/{activityId}")
-    public R getInfo(@PathVariable("activityId") Long activityId)
-    {
-        FsStoreActivityScrm activity = fsStoreActivityService.selectFsStoreActivityById(activityId);
-        List<FsStoreProductActivityListVO> products = new ArrayList<>();
-        if (activity.getProductIds() != null) {
-            products = productService.selectFsStoreProductByIds(activity.getProductIds());
-        }
-        return R.ok().put("activity", activity).put("products", products);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeActivity:add')")
-    @Log(title = "活动", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreActivityScrm fsStoreActivity)
-    {
-        return toAjax(fsStoreActivityService.insertFsStoreActivity(fsStoreActivity));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeActivity:edit')")
-    @Log(title = "活动", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreActivityScrm fsStoreActivity)
-    {
-        return toAjax(fsStoreActivityService.updateFsStoreActivity(fsStoreActivity));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeActivity:remove')")
-    @Log(title = "活动", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{activityIds}")
-    public AjaxResult remove(@PathVariable Long[] activityIds)
-    {
-        return toAjax(fsStoreActivityService.deleteFsStoreActivityByIds(activityIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreActivityScrm;
+//import com.fs.hisStore.service.IFsStoreActivityScrmService;
+//import com.fs.hisStore.service.IFsStoreProductScrmService;
+//import com.fs.hisStore.vo.FsStoreProductActivityListVO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.ArrayList;
+//import java.util.List;
+//
+///**
+// * 活动 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreActivityScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-11-18
+// */
+//@RestController
+//@RequestMapping("/store/storeActivity")
+//public class FsStoreActivityScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreActivityScrmService fsStoreActivityService;
+//    @Autowired
+//    private IFsStoreProductScrmService productService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeActivity:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreActivityScrm fsStoreActivity)
+//    {
+//        startPage();
+//        List<FsStoreActivityScrm> list = fsStoreActivityService.selectFsStoreActivityList(fsStoreActivity);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeActivity:export')")
+//    @Log(title = "活动", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreActivityScrm fsStoreActivity)
+//    {
+//        List<FsStoreActivityScrm> list = fsStoreActivityService.selectFsStoreActivityList(fsStoreActivity);
+//        ExcelUtil<FsStoreActivityScrm> util = new ExcelUtil<FsStoreActivityScrm>(FsStoreActivityScrm.class);
+//        return util.exportExcel(list, "storeActivity");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeActivity:query')")
+//    @GetMapping(value = "/{activityId}")
+//    public R getInfo(@PathVariable("activityId") Long activityId)
+//    {
+//        FsStoreActivityScrm activity = fsStoreActivityService.selectFsStoreActivityById(activityId);
+//        List<FsStoreProductActivityListVO> products = new ArrayList<>();
+//        if (activity.getProductIds() != null) {
+//            products = productService.selectFsStoreProductByIds(activity.getProductIds());
+//        }
+//        return R.ok().put("activity", activity).put("products", products);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeActivity:add')")
+//    @Log(title = "活动", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreActivityScrm fsStoreActivity)
+//    {
+//        return toAjax(fsStoreActivityService.insertFsStoreActivity(fsStoreActivity));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeActivity:edit')")
+//    @Log(title = "活动", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreActivityScrm fsStoreActivity)
+//    {
+//        return toAjax(fsStoreActivityService.updateFsStoreActivity(fsStoreActivity));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeActivity:remove')")
+//    @Log(title = "活动", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{activityIds}")
+//    public AjaxResult remove(@PathVariable Long[] activityIds)
+//    {
+//        return toAjax(fsStoreActivityService.deleteFsStoreActivityByIds(activityIds));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreAfterSalesItemScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreAfterSalesItemScrm;
-import com.fs.hisStore.service.IFsStoreAfterSalesItemScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 售后子 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreAfterSalesItemScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeAfterSalesItem")
-public class FsStoreAfterSalesItemScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreAfterSalesItemScrmService fsStoreAfterSalesItemService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
-    {
-        startPage();
-        List<FsStoreAfterSalesItemScrm> list = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(fsStoreAfterSalesItem);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:export')")
-    @Log(title = "售后子", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
-    {
-        List<FsStoreAfterSalesItemScrm> list = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(fsStoreAfterSalesItem);
-        ExcelUtil<FsStoreAfterSalesItemScrm> util = new ExcelUtil<FsStoreAfterSalesItemScrm>(FsStoreAfterSalesItemScrm.class);
-        return util.exportExcel(list, "storeAfterSalesItem");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:add')")
-    @Log(title = "售后子", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
-    {
-        return toAjax(fsStoreAfterSalesItemService.insertFsStoreAfterSalesItem(fsStoreAfterSalesItem));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:edit')")
-    @Log(title = "售后子", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
-    {
-        return toAjax(fsStoreAfterSalesItemService.updateFsStoreAfterSalesItem(fsStoreAfterSalesItem));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:remove')")
-    @Log(title = "售后子", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreAfterSalesItemService.deleteFsStoreAfterSalesItemByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreAfterSalesItemScrm;
+//import com.fs.hisStore.service.IFsStoreAfterSalesItemScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 售后子 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreAfterSalesItemScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeAfterSalesItem")
+//public class FsStoreAfterSalesItemScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreAfterSalesItemScrmService fsStoreAfterSalesItemService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
+//    {
+//        startPage();
+//        List<FsStoreAfterSalesItemScrm> list = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(fsStoreAfterSalesItem);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:export')")
+//    @Log(title = "售后子", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
+//    {
+//        List<FsStoreAfterSalesItemScrm> list = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(fsStoreAfterSalesItem);
+//        ExcelUtil<FsStoreAfterSalesItemScrm> util = new ExcelUtil<FsStoreAfterSalesItemScrm>(FsStoreAfterSalesItemScrm.class);
+//        return util.exportExcel(list, "storeAfterSalesItem");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:add')")
+//    @Log(title = "售后子", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
+//    {
+//        return toAjax(fsStoreAfterSalesItemService.insertFsStoreAfterSalesItem(fsStoreAfterSalesItem));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:edit')")
+//    @Log(title = "售后子", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreAfterSalesItemScrm fsStoreAfterSalesItem)
+//    {
+//        return toAjax(fsStoreAfterSalesItemService.updateFsStoreAfterSalesItem(fsStoreAfterSalesItem));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesItem:remove')")
+//    @Log(title = "售后子", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreAfterSalesItemService.deleteFsStoreAfterSalesItemByIds(ids));
+//    }
+//}

+ 233 - 235
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreAfterSalesScrmBridgeController.java

@@ -1,235 +1,233 @@
-package com.fs.admin.controller.store;
-
-import cn.hutool.core.bean.BeanUtil;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.StringUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.config.saas.ProjectConfig;
-import com.fs.his.domain.FsUser;
-import com.fs.his.service.IFsUserService;
-import com.fs.hisStore.domain.FsStoreAfterSalesItemScrm;
-import com.fs.hisStore.domain.FsStoreAfterSalesScrm;
-import com.fs.hisStore.domain.FsStoreAfterSalesStatusScrm;
-import com.fs.hisStore.domain.FsStoreOrderScrm;
-import com.fs.hisStore.param.FsStoreAfterSalesAudit1Param;
-import com.fs.hisStore.param.FsStoreAfterSalesAudit2Param;
-import com.fs.hisStore.param.FsStoreAfterSalesCancelParam;
-import com.fs.hisStore.param.FsStoreAfterSalesRefundParam;
-import com.fs.hisStore.service.IFsStoreAfterSalesItemScrmService;
-import com.fs.hisStore.service.IFsStoreAfterSalesScrmService;
-import com.fs.hisStore.service.IFsStoreAfterSalesStatusScrmService;
-import com.fs.hisStore.service.IFsStoreOrderScrmService;
-import com.fs.hisStore.vo.FsStoreAfterSalesVO;
-import com.fs.hisStore.vo.FsStoreOrderItemExportRefundZMVO;
-import com.fs.system.mapper.SysConfigMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.math.BigDecimal;
-import java.text.ParseException;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-/**
- * 售后记录 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreAfterSalesScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeAfterSales")
-public class FsStoreAfterSalesScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreOrderScrmService fsStoreOrderService;
-    @Autowired
-    private IFsUserService userService;
-    @Autowired
-    private IFsStoreAfterSalesScrmService fsStoreAfterSalesService;
-    @Autowired
-    private IFsStoreAfterSalesItemScrmService fsStoreAfterSalesItemService;
-    @Autowired
-    private IFsStoreAfterSalesStatusScrmService storeAfterSalesStatusService;
-    @Autowired
-    private SysConfigMapper sysConfigMapper;
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreAfterSalesScrm fsStoreAfterSales)
-    {
-        startPage();
-        List<FsStoreAfterSalesVO> list = fsStoreAfterSalesService.selectFsStoreAfterSalesListVO(fsStoreAfterSales);
-        for (FsStoreAfterSalesVO vo : list) {
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-        }
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:export')")
-    @Log(title = "售后记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreAfterSalesScrm fsStoreAfterSales)
-    {
-        if (StringUtils.isNotEmpty(fsStoreAfterSales.getBeginTime()) && StringUtils.isNotEmpty(fsStoreAfterSales.getEndTime())) {
-            fsStoreAfterSales.setBeginTime(null);
-            fsStoreAfterSales.setEndTime(null);
-        }
-        if (fsStoreAfterSalesService.isEntityNull(fsStoreAfterSales) && Objects.isNull(fsStoreAfterSales.getParams())) {
-            return AjaxResult.error("请筛选数据导出");
-        }
-
-        List<FsStoreAfterSalesVO> list = fsStoreAfterSalesService.selectFsStoreAfterSalesListVOExport(fsStoreAfterSales);
-        if ("北京卓美".equals(ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())) {
-            List<FsStoreOrderItemExportRefundZMVO> zmvoList = list.stream()
-                    .map(vo -> {
-                        FsStoreOrderItemExportRefundZMVO zmvo = new FsStoreOrderItemExportRefundZMVO();
-                        try {
-                            zmvo.setPayCode(vo.getPayCode());
-                            zmvo.setOrderCode(vo.getOrderCode());
-                            zmvo.setStatus(vo.getOrderStatus().toString());
-                            zmvo.setUserId(vo.getUserId());
-                            zmvo.setProductName(vo.getProductName());
-                            zmvo.setBarCode(vo.getProductBarCode());
-                            zmvo.setSku(vo.getSku());
-                            zmvo.setNum(vo.getNum());
-                            zmvo.setPrice(vo.getPrice());
-                            zmvo.setCost(vo.getCost());
-                            zmvo.setPayMoney(vo.getPayMoney());
-                            zmvo.setPayPostage(vo.getTotalPostage());
-                            zmvo.setCateName(vo.getCateName());
-                            zmvo.setRealName(vo.getUserName());
-                            zmvo.setUserPhone(vo.getUserPhone());
-                            zmvo.setUserAddress(vo.getUserAddress());
-                            zmvo.setCreateTime(vo.getOrderCreateTime());
-                            zmvo.setPayTime(vo.getOrderPayTime());
-                            zmvo.setDeliverySn(vo.getOrderDeliverySn());
-                            zmvo.setDeliveryName(vo.getOrderDeliveryName());
-                            zmvo.setDeliveryId(vo.getOrderDeliveryId());
-                            zmvo.setCompanyName(vo.getCompanyName());
-                            zmvo.setCompanyUserNickName(vo.getCompanyUserNickName());
-                            zmvo.setRefundTime(vo.getCreateTime());
-                            zmvo.setRefundMoney(vo.getRefundAmount());
-                            zmvo.setBankTransactionId(vo.getBankTransactionId());
-                            zmvo.setReasons(vo.getReasons());
-                            zmvo.setExplains(vo.getExplains());
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        return zmvo;
-                    })
-                    .collect(Collectors.toList());
-            for (FsStoreOrderItemExportRefundZMVO vo : zmvoList) {
-                vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-            }
-            ExcelUtil<FsStoreOrderItemExportRefundZMVO> util = new ExcelUtil<FsStoreOrderItemExportRefundZMVO>(FsStoreOrderItemExportRefundZMVO.class);
-            return util.exportExcel(zmvoList, "退款订单导出");
-        }
-        for (FsStoreAfterSalesVO vo : list) {
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-        }
-        ExcelUtil<FsStoreAfterSalesVO> util = new ExcelUtil<FsStoreAfterSalesVO>(FsStoreAfterSalesVO.class);
-        return util.exportExcel(list, "退款订单导出");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:query')")
-    @GetMapping(value = "/{id}")
-    public R getInfo(@PathVariable("id") Long id)
-    {
-        FsStoreAfterSalesScrm afterSales = fsStoreAfterSalesService.selectFsStoreAfterSalesById(id);
-        FsStoreAfterSalesItemScrm map = new FsStoreAfterSalesItemScrm();
-        map.setStoreAfterSalesId(id);
-        List<FsStoreAfterSalesItemScrm> items = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(map);
-        FsStoreAfterSalesStatusScrm statusMap = new FsStoreAfterSalesStatusScrm();
-        statusMap.setStoreAfterSalesId(id);
-        List<FsStoreAfterSalesStatusScrm> logs = storeAfterSalesStatusService.selectFsStoreAfterSalesStatusList(statusMap);
-        FsUser user = userService.selectFsUserById(afterSales.getUserId());
-        user.setPhone(ParseUtils.parsePhone(user.getPhone()));
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderByOrderCode(afterSales.getOrderCode());
-        return R.ok().put("afterSales", afterSales).put("items", items).put("logs", logs).put("user", user).put("order", order);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:add')")
-    @Log(title = "售后记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreAfterSalesScrm fsStoreAfterSales)
-    {
-        return toAjax(fsStoreAfterSalesService.insertFsStoreAfterSales(fsStoreAfterSales));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:edit')")
-    @Log(title = "售后记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreAfterSalesScrm fsStoreAfterSales)
-    {
-        if ((!"".equals(fsStoreAfterSales.getDeliveryName()) && !"".equals(fsStoreAfterSales.getDeliverySn())) || (fsStoreAfterSales.getDeliveryName() == null && fsStoreAfterSales.getDeliverySn() == null)) {
-            fsStoreAfterSales.setStatus(2);
-        }
-        return toAjax(fsStoreAfterSalesService.updateDelivery(fsStoreAfterSales));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:remove')")
-    @Log(title = "售后记录", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreAfterSalesService.deleteFsStoreAfterSalesByIds(ids));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:audit1')")
-    @PostMapping("/audit1")
-    public R audit1(@RequestBody FsStoreAfterSalesAudit1Param param)
-    {
-//        LoginUser loginUser = SecurityUtils.getLoginUser();
-//        param.setOperator(loginUser.getCompanyUser().getNickName());
-//        return fsStoreAfterSalesService.audit1(param);
-        throw new RuntimeException("not implemented");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:audit2')")
-    @PostMapping("/audit2")
-    public R audit2(@RequestBody FsStoreAfterSalesAudit2Param param)
-    {
-//        LoginUser loginUser = SecurityUtils.getLoginUser();
-//        param.setOperator(loginUser.getCompanyUser().getNickName());
-//        return fsStoreAfterSalesService.audit2(param);
-        throw new RuntimeException("not implemented");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:refund')")
-    @PostMapping("/refund")
-    public R refund(@RequestBody FsStoreAfterSalesRefundParam param)
-    {
-//        LoginUser loginUser = SecurityUtils.getLoginUser();
-//        param.setOperator(loginUser.getCompanyUser().getNickName());
-//        return fsStoreAfterSalesService.refundMoney(param);
-        throw new RuntimeException("not implemented");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:cancel')")
-    @PostMapping("/cancel")
-    public R cancel(@RequestBody FsStoreAfterSalesCancelParam param) throws ParseException
-    {
-//        LoginUser loginUser = SecurityUtils.getLoginUser();
-//        param.setOperator(loginUser.getCompanyUser().getNickName());
-//        return fsStoreAfterSalesService.cancel(param);
-        throw new RuntimeException("not implemented");
-    }
-
-    @GetMapping("/getStoreAfterSales")
-    public R getStoreAfterSales(@RequestParam("orderCode") String orderCode)
-    {
-        List<FsStoreAfterSalesVO> vo = fsStoreAfterSalesService.selectFsStoreAfterSalesVOByOrderCode(orderCode);
-        return R.ok().put("data", vo);
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import cn.hutool.core.bean.BeanUtil;
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.ParseUtils;
+//import com.fs.common.utils.StringUtils;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.config.saas.ProjectConfig;
+//import com.fs.his.domain.FsUser;
+//import com.fs.his.service.IFsUserService;
+//import com.fs.hisStore.domain.FsStoreAfterSalesItemScrm;
+//import com.fs.hisStore.domain.FsStoreAfterSalesScrm;
+//import com.fs.hisStore.domain.FsStoreAfterSalesStatusScrm;
+//import com.fs.hisStore.domain.FsStoreOrderScrm;
+//import com.fs.hisStore.param.FsStoreAfterSalesAudit1Param;
+//import com.fs.hisStore.param.FsStoreAfterSalesAudit2Param;
+//import com.fs.hisStore.param.FsStoreAfterSalesCancelParam;
+//import com.fs.hisStore.param.FsStoreAfterSalesRefundParam;
+//import com.fs.hisStore.service.IFsStoreAfterSalesItemScrmService;
+//import com.fs.hisStore.service.IFsStoreAfterSalesScrmService;
+//import com.fs.hisStore.service.IFsStoreAfterSalesStatusScrmService;
+//import com.fs.hisStore.service.IFsStoreOrderScrmService;
+//import com.fs.hisStore.vo.FsStoreAfterSalesVO;
+//import com.fs.hisStore.vo.FsStoreOrderItemExportRefundZMVO;
+//import com.fs.system.mapper.SysConfigMapper;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.math.BigDecimal;
+//import java.text.ParseException;
+//import java.util.List;
+//import java.util.Objects;
+//import java.util.stream.Collectors;
+//
+///**
+// * 售后记录 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreAfterSalesScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeAfterSales")
+//public class FsStoreAfterSalesScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreOrderScrmService fsStoreOrderService;
+//    @Autowired
+//    private IFsUserService userService;
+//    @Autowired
+//    private IFsStoreAfterSalesScrmService fsStoreAfterSalesService;
+//    @Autowired
+//    private IFsStoreAfterSalesItemScrmService fsStoreAfterSalesItemService;
+//    @Autowired
+//    private IFsStoreAfterSalesStatusScrmService storeAfterSalesStatusService;
+//    @Autowired
+//    private SysConfigMapper sysConfigMapper;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreAfterSalesScrm fsStoreAfterSales)
+//    {
+//        startPage();
+//        List<FsStoreAfterSalesVO> list = fsStoreAfterSalesService.selectFsStoreAfterSalesListVO(fsStoreAfterSales);
+//        for (FsStoreAfterSalesVO vo : list) {
+//            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
+//        }
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:export')")
+//    @Log(title = "售后记录", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreAfterSalesScrm fsStoreAfterSales)
+//    {
+//        if (StringUtils.isNotEmpty(fsStoreAfterSales.getBeginTime()) && StringUtils.isNotEmpty(fsStoreAfterSales.getEndTime())) {
+//            fsStoreAfterSales.setBeginTime(null);
+//            fsStoreAfterSales.setEndTime(null);
+//        }
+//        if (fsStoreAfterSalesService.isEntityNull(fsStoreAfterSales) && Objects.isNull(fsStoreAfterSales.getParams())) {
+//            return AjaxResult.error("请筛选数据导出");
+//        }
+//
+//        List<FsStoreAfterSalesVO> list = fsStoreAfterSalesService.selectFsStoreAfterSalesListVOExport(fsStoreAfterSales);
+//        if ("北京卓美".equals(ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())) {
+//            List<FsStoreOrderItemExportRefundZMVO> zmvoList = list.stream()
+//                    .map(vo -> {
+//                        FsStoreOrderItemExportRefundZMVO zmvo = new FsStoreOrderItemExportRefundZMVO();
+//                        try {
+//                            zmvo.setPayCode(vo.getPayCode());
+//                            zmvo.setOrderCode(vo.getOrderCode());
+//                            zmvo.setStatus(vo.getOrderStatus().toString());
+//                            zmvo.setUserId(vo.getUserId());
+//                            zmvo.setProductName(vo.getProductName());
+//                            zmvo.setBarCode(vo.getProductBarCode());
+//                            zmvo.setSku(vo.getSku());
+//                            zmvo.setNum(vo.getNum());
+//                            zmvo.setPrice(vo.getPrice());
+//                            zmvo.setCost(vo.getCost());
+//                            zmvo.setPayMoney(vo.getPayMoney());
+//                            zmvo.setPayPostage(vo.getTotalPostage());
+//                            zmvo.setCateName(vo.getCateName());
+//                            zmvo.setRealName(vo.getUserName());
+//                            zmvo.setUserPhone(vo.getUserPhone());
+//                            zmvo.setUserAddress(vo.getUserAddress());
+//                            zmvo.setCreateTime(vo.getOrderCreateTime());
+//                            zmvo.setPayTime(vo.getOrderPayTime());
+//                            zmvo.setDeliverySn(vo.getOrderDeliverySn());
+//                            zmvo.setDeliveryName(vo.getOrderDeliveryName());
+//                            zmvo.setDeliveryId(vo.getOrderDeliveryId());
+//                            zmvo.setCompanyName(vo.getCompanyName());
+//                            zmvo.setCompanyUserNickName(vo.getCompanyUserNickName());
+//                            zmvo.setRefundTime(vo.getCreateTime());
+//                            zmvo.setRefundMoney(vo.getRefundAmount());
+//                            zmvo.setBankTransactionId(vo.getBankTransactionId());
+//                            zmvo.setReasons(vo.getReasons());
+//                            zmvo.setExplains(vo.getExplains());
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+//                        return zmvo;
+//                    })
+//                    .collect(Collectors.toList());
+//            for (FsStoreOrderItemExportRefundZMVO vo : zmvoList) {
+//                vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
+//            }
+//            ExcelUtil<FsStoreOrderItemExportRefundZMVO> util = new ExcelUtil<FsStoreOrderItemExportRefundZMVO>(FsStoreOrderItemExportRefundZMVO.class);
+//            return util.exportExcel(zmvoList, "退款订单导出");
+//        }
+//        for (FsStoreAfterSalesVO vo : list) {
+//            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
+//        }
+//        ExcelUtil<FsStoreAfterSalesVO> util = new ExcelUtil<FsStoreAfterSalesVO>(FsStoreAfterSalesVO.class);
+//        return util.exportExcel(list, "退款订单导出");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:query')")
+//    @GetMapping(value = "/{id}")
+//    public R getInfo(@PathVariable("id") Long id)
+//    {
+//        FsStoreAfterSalesScrm afterSales = fsStoreAfterSalesService.selectFsStoreAfterSalesById(id);
+//        FsStoreAfterSalesItemScrm map = new FsStoreAfterSalesItemScrm();
+//        map.setStoreAfterSalesId(id);
+//        List<FsStoreAfterSalesItemScrm> items = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(map);
+//        FsStoreAfterSalesStatusScrm statusMap = new FsStoreAfterSalesStatusScrm();
+//        statusMap.setStoreAfterSalesId(id);
+//        List<FsStoreAfterSalesStatusScrm> logs = storeAfterSalesStatusService.selectFsStoreAfterSalesStatusList(statusMap);
+//        FsUser user = userService.selectFsUserById(afterSales.getUserId());
+//        user.setPhone(ParseUtils.parsePhone(user.getPhone()));
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderByOrderCode(afterSales.getOrderCode());
+//        return R.ok().put("afterSales", afterSales).put("items", items).put("logs", logs).put("user", user).put("order", order);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:add')")
+//    @Log(title = "售后记录", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreAfterSalesScrm fsStoreAfterSales)
+//    {
+//        return toAjax(fsStoreAfterSalesService.insertFsStoreAfterSales(fsStoreAfterSales));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:edit')")
+//    @Log(title = "售后记录", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreAfterSalesScrm fsStoreAfterSales)
+//    {
+//        if ((!"".equals(fsStoreAfterSales.getDeliveryName()) && !"".equals(fsStoreAfterSales.getDeliverySn())) || (fsStoreAfterSales.getDeliveryName() == null && fsStoreAfterSales.getDeliverySn() == null)) {
+//            fsStoreAfterSales.setStatus(2);
+//        }
+//        return toAjax(fsStoreAfterSalesService.updateDelivery(fsStoreAfterSales));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:remove')")
+//    @Log(title = "售后记录", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreAfterSalesService.deleteFsStoreAfterSalesByIds(ids));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:audit1')")
+//    @PostMapping("/audit1")
+//    public R audit1(@RequestBody FsStoreAfterSalesAudit1Param param)
+//    {
+////        LoginUser loginUser = SecurityUtils.getLoginUser();
+////        param.setOperator(loginUser.getCompanyUser().getNickName());
+////        return fsStoreAfterSalesService.audit1(param);
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:audit2')")
+//    @PostMapping("/audit2")
+//    public R audit2(@RequestBody FsStoreAfterSalesAudit2Param param)
+//    {
+////        LoginUser loginUser = SecurityUtils.getLoginUser();
+////        param.setOperator(loginUser.getCompanyUser().getNickName());
+////        return fsStoreAfterSalesService.audit2(param);
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:refund')")
+//    @PostMapping("/refund")
+//    public R refund(@RequestBody FsStoreAfterSalesRefundParam param)
+//    {
+////        LoginUser loginUser = SecurityUtils.getLoginUser();
+////        param.setOperator(loginUser.getCompanyUser().getNickName());
+////        return fsStoreAfterSalesService.refundMoney(param);
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:cancel')")
+//    @PostMapping("/cancel")
+//    public R cancel(@RequestBody FsStoreAfterSalesCancelParam param) throws ParseException
+//    {
+////        LoginUser loginUser = SecurityUtils.getLoginUser();
+////        param.setOperator(loginUser.getCompanyUser().getNickName());
+////        return fsStoreAfterSalesService.cancel(param);
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @GetMapping("/getStoreAfterSales")
+//    public R getStoreAfterSales(@RequestParam("orderCode") String orderCode)
+//    {
+//        List<FsStoreAfterSalesVO> vo = fsStoreAfterSalesService.selectFsStoreAfterSalesVOByOrderCode(orderCode);
+//        return R.ok().put("data", vo);
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreAfterSalesStatusScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreAfterSalesStatusScrm;
-import com.fs.hisStore.service.IFsStoreAfterSalesStatusScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 售后订单操作 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreAfterSalesStatusScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeAfterSalesStatus")
-public class FsStoreAfterSalesStatusScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreAfterSalesStatusScrmService fsStoreAfterSalesStatusService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
-    {
-        startPage();
-        List<FsStoreAfterSalesStatusScrm> list = fsStoreAfterSalesStatusService.selectFsStoreAfterSalesStatusList(fsStoreAfterSalesStatus);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:export')")
-    @Log(title = "售后订单操作", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
-    {
-        List<FsStoreAfterSalesStatusScrm> list = fsStoreAfterSalesStatusService.selectFsStoreAfterSalesStatusList(fsStoreAfterSalesStatus);
-        ExcelUtil<FsStoreAfterSalesStatusScrm> util = new ExcelUtil<FsStoreAfterSalesStatusScrm>(FsStoreAfterSalesStatusScrm.class);
-        return util.exportExcel(list, "storeAfterSalesStatus");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreAfterSalesStatusService.selectFsStoreAfterSalesStatusById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:add')")
-    @Log(title = "售后订单操作", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
-    {
-        return toAjax(fsStoreAfterSalesStatusService.insertFsStoreAfterSalesStatus(fsStoreAfterSalesStatus));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:edit')")
-    @Log(title = "售后订单操作", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
-    {
-        return toAjax(fsStoreAfterSalesStatusService.updateFsStoreAfterSalesStatus(fsStoreAfterSalesStatus));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:remove')")
-    @Log(title = "售后订单操作", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreAfterSalesStatusService.deleteFsStoreAfterSalesStatusByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreAfterSalesStatusScrm;
+//import com.fs.hisStore.service.IFsStoreAfterSalesStatusScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 售后订单操作 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreAfterSalesStatusScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeAfterSalesStatus")
+//public class FsStoreAfterSalesStatusScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreAfterSalesStatusScrmService fsStoreAfterSalesStatusService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
+//    {
+//        startPage();
+//        List<FsStoreAfterSalesStatusScrm> list = fsStoreAfterSalesStatusService.selectFsStoreAfterSalesStatusList(fsStoreAfterSalesStatus);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:export')")
+//    @Log(title = "售后订单操作", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
+//    {
+//        List<FsStoreAfterSalesStatusScrm> list = fsStoreAfterSalesStatusService.selectFsStoreAfterSalesStatusList(fsStoreAfterSalesStatus);
+//        ExcelUtil<FsStoreAfterSalesStatusScrm> util = new ExcelUtil<FsStoreAfterSalesStatusScrm>(FsStoreAfterSalesStatusScrm.class);
+//        return util.exportExcel(list, "storeAfterSalesStatus");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreAfterSalesStatusService.selectFsStoreAfterSalesStatusById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:add')")
+//    @Log(title = "售后订单操作", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
+//    {
+//        return toAjax(fsStoreAfterSalesStatusService.insertFsStoreAfterSalesStatus(fsStoreAfterSalesStatus));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:edit')")
+//    @Log(title = "售后订单操作", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreAfterSalesStatusScrm fsStoreAfterSalesStatus)
+//    {
+//        return toAjax(fsStoreAfterSalesStatusService.updateFsStoreAfterSalesStatus(fsStoreAfterSalesStatus));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeAfterSalesStatus:remove')")
+//    @Log(title = "售后订单操作", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreAfterSalesStatusService.deleteFsStoreAfterSalesStatusByIds(ids));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCartScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreCartScrm;
-import com.fs.hisStore.service.IFsStoreCartScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 购物车 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreCartScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-21
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeCart")
-public class FsStoreCartScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreCartScrmService fsStoreCartService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeCart:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreCartScrm fsStoreCart)
-    {
-        startPage();
-        List<FsStoreCartScrm> list = fsStoreCartService.selectFsStoreCartList(fsStoreCart);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCart:export')")
-    @Log(title = "购物车", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreCartScrm fsStoreCart)
-    {
-        List<FsStoreCartScrm> list = fsStoreCartService.selectFsStoreCartList(fsStoreCart);
-        ExcelUtil<FsStoreCartScrm> util = new ExcelUtil<FsStoreCartScrm>(FsStoreCartScrm.class);
-        return util.exportExcel(list, "storeCart");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCart:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreCartService.selectFsStoreCartById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCart:add')")
-    @Log(title = "购物车", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreCartScrm fsStoreCart)
-    {
-        return toAjax(fsStoreCartService.insertFsStoreCart(fsStoreCart));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCart:edit')")
-    @Log(title = "购物车", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreCartScrm fsStoreCart)
-    {
-        return toAjax(fsStoreCartService.updateFsStoreCart(fsStoreCart));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCart:remove')")
-    @Log(title = "购物车", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreCartService.deleteFsStoreCartByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreCartScrm;
+//import com.fs.hisStore.service.IFsStoreCartScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 购物车 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreCartScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-21
+// */
+//@RestController
+//@RequestMapping("/store/store/storeCart")
+//public class FsStoreCartScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreCartScrmService fsStoreCartService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreCartScrm fsStoreCart)
+//    {
+//        startPage();
+//        List<FsStoreCartScrm> list = fsStoreCartService.selectFsStoreCartList(fsStoreCart);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:export')")
+//    @Log(title = "购物车", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreCartScrm fsStoreCart)
+//    {
+//        List<FsStoreCartScrm> list = fsStoreCartService.selectFsStoreCartList(fsStoreCart);
+//        ExcelUtil<FsStoreCartScrm> util = new ExcelUtil<FsStoreCartScrm>(FsStoreCartScrm.class);
+//        return util.exportExcel(list, "storeCart");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreCartService.selectFsStoreCartById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:add')")
+//    @Log(title = "购物车", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreCartScrm fsStoreCart)
+//    {
+//        return toAjax(fsStoreCartService.insertFsStoreCart(fsStoreCart));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:edit')")
+//    @Log(title = "购物车", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreCartScrm fsStoreCart)
+//    {
+//        return toAjax(fsStoreCartService.updateFsStoreCart(fsStoreCart));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCart:remove')")
+//    @Log(title = "购物车", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreCartService.deleteFsStoreCartByIds(ids));
+//    }
+//}

+ 81 - 83
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponIssueScrmBridgeController.java

@@ -1,83 +1,81 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreCouponIssueScrm;
-import com.fs.hisStore.service.IFsStoreCouponIssueScrmService;
-import com.fs.hisStore.vo.FsStoreCouponIssueVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 优惠券发放 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreCouponIssueScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeCouponIssue")
-public class FsStoreCouponIssueScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreCouponIssueScrmService fsStoreCouponIssueService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreCouponIssueScrm fsStoreCouponIssue)
-    {
-        startPage();
-        List<FsStoreCouponIssueVO> list = fsStoreCouponIssueService.selectFsStoreCouponIssueListVO(fsStoreCouponIssue);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:export')")
-    @Log(title = "优惠券发放", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreCouponIssueScrm fsStoreCouponIssue)
-    {
-        List<FsStoreCouponIssueScrm> list = fsStoreCouponIssueService.selectFsStoreCouponIssueList(fsStoreCouponIssue);
-        ExcelUtil<FsStoreCouponIssueScrm> util = new ExcelUtil<FsStoreCouponIssueScrm>(FsStoreCouponIssueScrm.class);
-        return util.exportExcel(list, "storeCouponIssue");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreCouponIssueService.selectFsStoreCouponIssueById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:add')")
-    @Log(title = "优惠券发放", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreCouponIssueScrm fsStoreCouponIssue)
-    {
-        return toAjax(fsStoreCouponIssueService.insertFsStoreCouponIssue(fsStoreCouponIssue));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:edit')")
-    @Log(title = "优惠券发放", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreCouponIssueScrm fsStoreCouponIssue)
-    {
-        return toAjax(fsStoreCouponIssueService.updateFsStoreCouponIssue(fsStoreCouponIssue));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:remove')")
-    @Log(title = "优惠券发放", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreCouponIssueService.deleteFsStoreCouponIssueByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreCouponIssueScrm;
+//import com.fs.hisStore.service.IFsStoreCouponIssueScrmService;
+//import com.fs.hisStore.vo.FsStoreCouponIssueVO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 优惠券发放 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreCouponIssueScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeCouponIssue")
+//public class FsStoreCouponIssueScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreCouponIssueScrmService fsStoreCouponIssueService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreCouponIssueScrm fsStoreCouponIssue)
+//    {
+//        startPage();
+//        List<FsStoreCouponIssueVO> list = fsStoreCouponIssueService.selectFsStoreCouponIssueListVO(fsStoreCouponIssue);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:export')")
+//    @Log(title = "优惠券发放", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreCouponIssueScrm fsStoreCouponIssue)
+//    {
+//        List<FsStoreCouponIssueScrm> list = fsStoreCouponIssueService.selectFsStoreCouponIssueList(fsStoreCouponIssue);
+//        ExcelUtil<FsStoreCouponIssueScrm> util = new ExcelUtil<FsStoreCouponIssueScrm>(FsStoreCouponIssueScrm.class);
+//        return util.exportExcel(list, "storeCouponIssue");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreCouponIssueService.selectFsStoreCouponIssueById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:add')")
+//    @Log(title = "优惠券发放", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreCouponIssueScrm fsStoreCouponIssue)
+//    {
+//        return toAjax(fsStoreCouponIssueService.insertFsStoreCouponIssue(fsStoreCouponIssue));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:edit')")
+//    @Log(title = "优惠券发放", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreCouponIssueScrm fsStoreCouponIssue)
+//    {
+//        return toAjax(fsStoreCouponIssueService.updateFsStoreCouponIssue(fsStoreCouponIssue));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCouponIssue:remove')")
+//    @Log(title = "优惠券发放", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreCouponIssueService.deleteFsStoreCouponIssueByIds(ids));
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponIssueUserScrmBridgeController.java

@@ -11,7 +11,6 @@ import com.fs.hisStore.service.IFsStoreCouponIssueUserScrmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2022-03-15
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/store/store/storeCouponIssueUser")
 public class FsStoreCouponIssueUserScrmBridgeController extends BaseController

+ 129 - 131
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponScrmBridgeController.java

@@ -1,131 +1,129 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreCouponScrm;
-import com.fs.hisStore.domain.FsStoreCouponIssueScrm;
-import com.fs.hisStore.param.FsStoreCouponPublishParam;
-import com.fs.hisStore.service.IFsStoreCouponIssueScrmService;
-import com.fs.hisStore.service.IFsStoreCouponScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 优惠券 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreCouponScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/storeCoupon")
-public class FsStoreCouponScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreCouponScrmService fsStoreCouponService;
-    @Autowired
-    private IFsStoreCouponIssueScrmService fsStoreCouponIssueService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreCouponScrm fsStoreCoupon)
-    {
-        startPage();
-        fsStoreCoupon.setIsDel(0);
-        List<FsStoreCouponScrm> list = fsStoreCouponService.selectFsStoreCouponList(fsStoreCoupon);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:export')")
-    @Log(title = "优惠券", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreCouponScrm fsStoreCoupon)
-    {
-        List<FsStoreCouponScrm> list = fsStoreCouponService.selectFsStoreCouponList(fsStoreCoupon);
-        ExcelUtil<FsStoreCouponScrm> util = new ExcelUtil<FsStoreCouponScrm>(FsStoreCouponScrm.class);
-        return util.exportExcel(list, "storeCoupon");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:query')")
-    @GetMapping(value = "/{couponId}")
-    public AjaxResult getInfo(@PathVariable("couponId") Long couponId)
-    {
-        return AjaxResult.success(fsStoreCouponService.selectFsStoreCouponById(couponId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:add')")
-    @Log(title = "优惠券", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreCouponScrm fsStoreCoupon)
-    {
-        return toAjax(fsStoreCouponService.insertFsStoreCoupon(fsStoreCoupon));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:edit')")
-    @Log(title = "优惠券", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreCouponScrm fsStoreCoupon)
-    {
-        return toAjax(fsStoreCouponService.updateFsStoreCoupon(fsStoreCoupon));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:remove')")
-    @Log(title = "优惠券", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{couponIds}")
-    public AjaxResult remove(@PathVariable Long[] couponIds)
-    {
-        return toAjax(fsStoreCouponService.deleteFsStoreCouponByIds(couponIds));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:publish')")
-    @PostMapping("/publish")
-    public AjaxResult publish(@RequestBody FsStoreCouponPublishParam publishParam)
-    {
-        FsStoreCouponScrm coupon = fsStoreCouponService.selectFsStoreCouponById(publishParam.getCouponId());
-        FsStoreCouponIssueScrm issue = new FsStoreCouponIssueScrm();
-        issue.setCouponId(publishParam.getCouponId());
-        issue.setCouponName(coupon.getTitle());
-        issue.setCouponType(coupon.getType());
-        issue.setStartTime(publishParam.getStartTime());
-        issue.setLimitTime(publishParam.getLimitTime());
-        issue.setTotalCount(publishParam.getTotalCount());
-        issue.setRemainCount(0);
-        issue.setIsPermanent(0);
-        issue.setStatus(1);
-        issue.setCreateTime(new Date());
-        return toAjax(fsStoreCouponIssueService.insertFsStoreCouponIssue(issue));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeCoupon:batchPublish')")
-    @PostMapping("/batchPublish")
-    public R batchPublish(@RequestBody FsStoreCouponPublishParam publishParam)
-    {
-        List<FsStoreCouponScrm> list = fsStoreCouponService.selectFsStoreCouponByIds(publishParam.getIds());
-        for (FsStoreCouponScrm coupon : list) {
-            FsStoreCouponIssueScrm issue = new FsStoreCouponIssueScrm();
-            issue.setCouponId(coupon.getCouponId());
-            issue.setCouponName(coupon.getTitle());
-            issue.setCouponType(coupon.getType());
-            issue.setStartTime(publishParam.getStartTime());
-            issue.setLimitTime(publishParam.getLimitTime());
-            issue.setTotalCount(publishParam.getTotalCount());
-            issue.setRemainCount(0);
-            issue.setIsPermanent(0);
-            issue.setStatus(1);
-            issue.setCreateTime(new Date());
-            fsStoreCouponIssueService.insertFsStoreCouponIssue(issue);
-        }
-        return R.ok();
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreCouponScrm;
+//import com.fs.hisStore.domain.FsStoreCouponIssueScrm;
+//import com.fs.hisStore.param.FsStoreCouponPublishParam;
+//import com.fs.hisStore.service.IFsStoreCouponIssueScrmService;
+//import com.fs.hisStore.service.IFsStoreCouponScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.Date;
+//import java.util.List;
+//
+///**
+// * 优惠券 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreCouponScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/storeCoupon")
+//public class FsStoreCouponScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreCouponScrmService fsStoreCouponService;
+//    @Autowired
+//    private IFsStoreCouponIssueScrmService fsStoreCouponIssueService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreCouponScrm fsStoreCoupon)
+//    {
+//        startPage();
+//        fsStoreCoupon.setIsDel(0);
+//        List<FsStoreCouponScrm> list = fsStoreCouponService.selectFsStoreCouponList(fsStoreCoupon);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:export')")
+//    @Log(title = "优惠券", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreCouponScrm fsStoreCoupon)
+//    {
+//        List<FsStoreCouponScrm> list = fsStoreCouponService.selectFsStoreCouponList(fsStoreCoupon);
+//        ExcelUtil<FsStoreCouponScrm> util = new ExcelUtil<FsStoreCouponScrm>(FsStoreCouponScrm.class);
+//        return util.exportExcel(list, "storeCoupon");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:query')")
+//    @GetMapping(value = "/{couponId}")
+//    public AjaxResult getInfo(@PathVariable("couponId") Long couponId)
+//    {
+//        return AjaxResult.success(fsStoreCouponService.selectFsStoreCouponById(couponId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:add')")
+//    @Log(title = "优惠券", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreCouponScrm fsStoreCoupon)
+//    {
+//        return toAjax(fsStoreCouponService.insertFsStoreCoupon(fsStoreCoupon));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:edit')")
+//    @Log(title = "优惠券", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreCouponScrm fsStoreCoupon)
+//    {
+//        return toAjax(fsStoreCouponService.updateFsStoreCoupon(fsStoreCoupon));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:remove')")
+//    @Log(title = "优惠券", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{couponIds}")
+//    public AjaxResult remove(@PathVariable Long[] couponIds)
+//    {
+//        return toAjax(fsStoreCouponService.deleteFsStoreCouponByIds(couponIds));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:publish')")
+//    @PostMapping("/publish")
+//    public AjaxResult publish(@RequestBody FsStoreCouponPublishParam publishParam)
+//    {
+//        FsStoreCouponScrm coupon = fsStoreCouponService.selectFsStoreCouponById(publishParam.getCouponId());
+//        FsStoreCouponIssueScrm issue = new FsStoreCouponIssueScrm();
+//        issue.setCouponId(publishParam.getCouponId());
+//        issue.setCouponName(coupon.getTitle());
+//        issue.setCouponType(coupon.getType());
+//        issue.setStartTime(publishParam.getStartTime());
+//        issue.setLimitTime(publishParam.getLimitTime());
+//        issue.setTotalCount(publishParam.getTotalCount());
+//        issue.setRemainCount(0);
+//        issue.setIsPermanent(0);
+//        issue.setStatus(1);
+//        issue.setCreateTime(new Date());
+//        return toAjax(fsStoreCouponIssueService.insertFsStoreCouponIssue(issue));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeCoupon:batchPublish')")
+//    @PostMapping("/batchPublish")
+//    public R batchPublish(@RequestBody FsStoreCouponPublishParam publishParam)
+//    {
+//        List<FsStoreCouponScrm> list = fsStoreCouponService.selectFsStoreCouponByIds(publishParam.getIds());
+//        for (FsStoreCouponScrm coupon : list) {
+//            FsStoreCouponIssueScrm issue = new FsStoreCouponIssueScrm();
+//            issue.setCouponId(coupon.getCouponId());
+//            issue.setCouponName(coupon.getTitle());
+//            issue.setCouponType(coupon.getType());
+//            issue.setStartTime(publishParam.getStartTime());
+//            issue.setLimitTime(publishParam.getLimitTime());
+//            issue.setTotalCount(publishParam.getTotalCount());
+//            issue.setRemainCount(0);
+//            issue.setIsPermanent(0);
+//            issue.setStatus(1);
+//            issue.setCreateTime(new Date());
+//            fsStoreCouponIssueService.insertFsStoreCouponIssue(issue);
+//        }
+//        return R.ok();
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreCouponUserScrmBridgeController.java

@@ -11,7 +11,6 @@ import com.fs.hisStore.service.IFsStoreCouponUserScrmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2022-03-15
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/store/store/storeCouponUser")
 public class FsStoreCouponUserScrmBridgeController extends BaseController

+ 94 - 96
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderAuditScrmBridgeController.java

@@ -1,96 +1,94 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreOrderAuditScrm;
-import com.fs.hisStore.param.FsStoreOrderAuditParam;
-import com.fs.hisStore.param.FsStoreOrderAuditReviewParam;
-import com.fs.hisStore.service.IFsStoreOrderAuditScrmService;
-import com.fs.hisStore.vo.FsStoreOrderAuditVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import javax.validation.Valid;
-import java.util.List;
-
-/**
- * 订单审核 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreOrderAuditScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2023-06-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeOrderAudit")
-public class FsStoreOrderAuditScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreOrderAuditScrmService fsStoreOrderAuditService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreOrderAuditParam param)
-    {
-        startPage();
-        List<FsStoreOrderAuditVO> list = fsStoreOrderAuditService.selectStoreOrderAuditVOList(param);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:export')")
-    @Log(title = "订单审核", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreOrderAuditParam param)
-    {
-        List<FsStoreOrderAuditVO> list = fsStoreOrderAuditService.selectStoreOrderAuditVOList(param);
-        ExcelUtil<FsStoreOrderAuditVO> util = new ExcelUtil<FsStoreOrderAuditVO>(FsStoreOrderAuditVO.class);
-        return util.exportExcel(list, "订单审核数据");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreOrderAuditService.getById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:add')")
-    @Log(title = "订单审核", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreOrderAuditScrm fsStoreOrderAudit)
-    {
-        return toAjax(fsStoreOrderAuditService.save(fsStoreOrderAudit));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:edit')")
-    @Log(title = "订单审核", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreOrderAuditScrm fsStoreOrderAudit)
-    {
-        return toAjax(fsStoreOrderAuditService.updateById(fsStoreOrderAudit));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:audit')")
-    @Log(title = "订单审核", businessType = BusinessType.UPDATE)
-    @PostMapping("/audit")
-    public AjaxResult audit(@Valid @RequestBody FsStoreOrderAuditReviewParam param)
-    {
-        fsStoreOrderAuditService.audit(param, null, true);
-        return AjaxResult.success();
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:remove')")
-    @Log(title = "订单审核", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreOrderAuditService.removeByIds(java.util.Arrays.asList(ids)));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreOrderAuditScrm;
+//import com.fs.hisStore.param.FsStoreOrderAuditParam;
+//import com.fs.hisStore.param.FsStoreOrderAuditReviewParam;
+//import com.fs.hisStore.service.IFsStoreOrderAuditScrmService;
+//import com.fs.hisStore.vo.FsStoreOrderAuditVO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.validation.Valid;
+//import java.util.List;
+//
+///**
+// * 订单审核 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreOrderAuditScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2023-06-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeOrderAudit")
+//public class FsStoreOrderAuditScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreOrderAuditScrmService fsStoreOrderAuditService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreOrderAuditParam param)
+//    {
+//        startPage();
+//        List<FsStoreOrderAuditVO> list = fsStoreOrderAuditService.selectStoreOrderAuditVOList(param);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:export')")
+//    @Log(title = "订单审核", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreOrderAuditParam param)
+//    {
+//        List<FsStoreOrderAuditVO> list = fsStoreOrderAuditService.selectStoreOrderAuditVOList(param);
+//        ExcelUtil<FsStoreOrderAuditVO> util = new ExcelUtil<FsStoreOrderAuditVO>(FsStoreOrderAuditVO.class);
+//        return util.exportExcel(list, "订单审核数据");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreOrderAuditService.getById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:add')")
+//    @Log(title = "订单审核", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreOrderAuditScrm fsStoreOrderAudit)
+//    {
+//        return toAjax(fsStoreOrderAuditService.save(fsStoreOrderAudit));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:edit')")
+//    @Log(title = "订单审核", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreOrderAuditScrm fsStoreOrderAudit)
+//    {
+//        return toAjax(fsStoreOrderAuditService.updateById(fsStoreOrderAudit));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:audit')")
+//    @Log(title = "订单审核", businessType = BusinessType.UPDATE)
+//    @PostMapping("/audit")
+//    public AjaxResult audit(@Valid @RequestBody FsStoreOrderAuditReviewParam param)
+//    {
+//        fsStoreOrderAuditService.audit(param, null, true);
+//        return AjaxResult.success();
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderAudit:remove')")
+//    @Log(title = "订单审核", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreOrderAuditService.removeByIds(java.util.Arrays.asList(ids)));
+//    }
+//}

+ 88 - 90
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderItemScrmBridgeController.java

@@ -1,90 +1,88 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreOrderItemScrm;
-import com.fs.hisStore.service.IFsStoreOrderItemScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 订单详情 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreOrderItemScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-21
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeOrderItem")
-public class FsStoreOrderItemScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreOrderItemScrmService fsStoreOrderItemService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreOrderItemScrm fsStoreOrderItem)
-    {
-        startPage();
-        List<FsStoreOrderItemScrm> list = fsStoreOrderItemService.selectFsStoreOrderItemList(fsStoreOrderItem);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:export')")
-    @Log(title = "订单详情", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreOrderItemScrm fsStoreOrderItem)
-    {
-        List<FsStoreOrderItemScrm> list = fsStoreOrderItemService.selectFsStoreOrderItemList(fsStoreOrderItem);
-        ExcelUtil<FsStoreOrderItemScrm> util = new ExcelUtil<FsStoreOrderItemScrm>(FsStoreOrderItemScrm.class);
-        return util.exportExcel(list, "storeOrderItem");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:query')")
-    @GetMapping(value = "/{itemId}")
-    public AjaxResult getInfo(@PathVariable("itemId") Long itemId)
-    {
-        return AjaxResult.success(fsStoreOrderItemService.selectFsStoreOrderItemById(itemId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:add')")
-    @Log(title = "订单详情", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreOrderItemScrm fsStoreOrderItem)
-    {
-        return toAjax(fsStoreOrderItemService.insertFsStoreOrderItem(fsStoreOrderItem));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:edit')")
-    @Log(title = "订单详情", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreOrderItemScrm fsStoreOrderItem)
-    {
-        return toAjax(fsStoreOrderItemService.updateFsStoreOrderItem(fsStoreOrderItem));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:remove')")
-    @Log(title = "订单详情", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{itemIds}")
-    public AjaxResult remove(@PathVariable Long[] itemIds)
-    {
-        return toAjax(fsStoreOrderItemService.deleteFsStoreOrderItemByIds(itemIds));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:updateNum')")
-    @Log(title = "订单详情修改订单数量", businessType = BusinessType.UPDATE)
-    @PutMapping("/updateNum")
-    public AjaxResult updateNum(@RequestBody FsStoreOrderItemScrm fsStoreOrderItem)
-    {
-        return toAjax(fsStoreOrderItemService.updateFsStoreOrderItemNum(fsStoreOrderItem));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreOrderItemScrm;
+//import com.fs.hisStore.service.IFsStoreOrderItemScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 订单详情 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreOrderItemScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-21
+// */
+//@RestController
+//@RequestMapping("/store/store/storeOrderItem")
+//public class FsStoreOrderItemScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreOrderItemScrmService fsStoreOrderItemService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreOrderItemScrm fsStoreOrderItem)
+//    {
+//        startPage();
+//        List<FsStoreOrderItemScrm> list = fsStoreOrderItemService.selectFsStoreOrderItemList(fsStoreOrderItem);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:export')")
+//    @Log(title = "订单详情", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreOrderItemScrm fsStoreOrderItem)
+//    {
+//        List<FsStoreOrderItemScrm> list = fsStoreOrderItemService.selectFsStoreOrderItemList(fsStoreOrderItem);
+//        ExcelUtil<FsStoreOrderItemScrm> util = new ExcelUtil<FsStoreOrderItemScrm>(FsStoreOrderItemScrm.class);
+//        return util.exportExcel(list, "storeOrderItem");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:query')")
+//    @GetMapping(value = "/{itemId}")
+//    public AjaxResult getInfo(@PathVariable("itemId") Long itemId)
+//    {
+//        return AjaxResult.success(fsStoreOrderItemService.selectFsStoreOrderItemById(itemId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:add')")
+//    @Log(title = "订单详情", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreOrderItemScrm fsStoreOrderItem)
+//    {
+//        return toAjax(fsStoreOrderItemService.insertFsStoreOrderItem(fsStoreOrderItem));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:edit')")
+//    @Log(title = "订单详情", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreOrderItemScrm fsStoreOrderItem)
+//    {
+//        return toAjax(fsStoreOrderItemService.updateFsStoreOrderItem(fsStoreOrderItem));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:remove')")
+//    @Log(title = "订单详情", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{itemIds}")
+//    public AjaxResult remove(@PathVariable Long[] itemIds)
+//    {
+//        return toAjax(fsStoreOrderItemService.deleteFsStoreOrderItemByIds(itemIds));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderItem:updateNum')")
+//    @Log(title = "订单详情修改订单数量", businessType = BusinessType.UPDATE)
+//    @PutMapping("/updateNum")
+//    public AjaxResult updateNum(@RequestBody FsStoreOrderItemScrm fsStoreOrderItem)
+//    {
+//        return toAjax(fsStoreOrderItemService.updateFsStoreOrderItemNum(fsStoreOrderItem));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderNoticeScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreOrderNoticeScrm;
-import com.fs.hisStore.service.IFsStoreOrderNoticeScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 订单通知用户 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreOrderNoticeScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeOrderNotice")
-public class FsStoreOrderNoticeScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreOrderNoticeScrmService fsStoreOrderNoticeService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreOrderNoticeScrm fsStoreOrderNotice)
-    {
-        startPage();
-        List<FsStoreOrderNoticeScrm> list = fsStoreOrderNoticeService.selectFsStoreOrderNoticeList(fsStoreOrderNotice);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:export')")
-    @Log(title = "订单通知用户", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreOrderNoticeScrm fsStoreOrderNotice)
-    {
-        List<FsStoreOrderNoticeScrm> list = fsStoreOrderNoticeService.selectFsStoreOrderNoticeList(fsStoreOrderNotice);
-        ExcelUtil<FsStoreOrderNoticeScrm> util = new ExcelUtil<FsStoreOrderNoticeScrm>(FsStoreOrderNoticeScrm.class);
-        return util.exportExcel(list, "storeOrderNotice");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreOrderNoticeService.selectFsStoreOrderNoticeById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:add')")
-    @Log(title = "订单通知用户", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreOrderNoticeScrm fsStoreOrderNotice)
-    {
-        return toAjax(fsStoreOrderNoticeService.insertFsStoreOrderNotice(fsStoreOrderNotice));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:edit')")
-    @Log(title = "订单通知用户", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreOrderNoticeScrm fsStoreOrderNotice)
-    {
-        return toAjax(fsStoreOrderNoticeService.updateFsStoreOrderNotice(fsStoreOrderNotice));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:remove')")
-    @Log(title = "订单通知用户", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreOrderNoticeService.deleteFsStoreOrderNoticeByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreOrderNoticeScrm;
+//import com.fs.hisStore.service.IFsStoreOrderNoticeScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 订单通知用户 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreOrderNoticeScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeOrderNotice")
+//public class FsStoreOrderNoticeScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreOrderNoticeScrmService fsStoreOrderNoticeService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreOrderNoticeScrm fsStoreOrderNotice)
+//    {
+//        startPage();
+//        List<FsStoreOrderNoticeScrm> list = fsStoreOrderNoticeService.selectFsStoreOrderNoticeList(fsStoreOrderNotice);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:export')")
+//    @Log(title = "订单通知用户", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreOrderNoticeScrm fsStoreOrderNotice)
+//    {
+//        List<FsStoreOrderNoticeScrm> list = fsStoreOrderNoticeService.selectFsStoreOrderNoticeList(fsStoreOrderNotice);
+//        ExcelUtil<FsStoreOrderNoticeScrm> util = new ExcelUtil<FsStoreOrderNoticeScrm>(FsStoreOrderNoticeScrm.class);
+//        return util.exportExcel(list, "storeOrderNotice");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreOrderNoticeService.selectFsStoreOrderNoticeById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:add')")
+//    @Log(title = "订单通知用户", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreOrderNoticeScrm fsStoreOrderNotice)
+//    {
+//        return toAjax(fsStoreOrderNoticeService.insertFsStoreOrderNotice(fsStoreOrderNotice));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:edit')")
+//    @Log(title = "订单通知用户", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreOrderNoticeScrm fsStoreOrderNotice)
+//    {
+//        return toAjax(fsStoreOrderNoticeService.updateFsStoreOrderNotice(fsStoreOrderNotice));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderNotice:remove')")
+//    @Log(title = "订单通知用户", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreOrderNoticeService.deleteFsStoreOrderNoticeByIds(ids));
+//    }
+//}

+ 130 - 132
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderOfflineScrmBridgeController.java

@@ -1,133 +1,131 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.crm.domain.CrmCustomer;
-import com.fs.crm.service.ICrmCustomerService;
-import com.fs.hisStore.domain.FsStoreOrderOfflineScrm;
-import com.fs.hisStore.domain.FsStoreOrderOfflineItemScrm;
-import com.fs.hisStore.param.FsStoreOrderOfflineParam;
-import com.fs.hisStore.service.IFsStoreOrderOfflineItemScrmService;
-import com.fs.hisStore.service.IFsStoreOrderOfflineScrmService;
-import com.fs.hisStore.vo.FsStoreOrderOfflineListVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 线下订单 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreOrderOfflineScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2024-10-29
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeOrderOffline")
-public class FsStoreOrderOfflineScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreOrderOfflineScrmService fsStoreOrderOfflineService;
-    @Autowired
-    private IFsStoreOrderOfflineItemScrmService fsStoreOrderOfflineItemService;
-    @Autowired
-    private ICrmCustomerService crmCustomerService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreOrderOfflineParam param)
-    {
-        startPage();
-        List<FsStoreOrderOfflineListVO> list = fsStoreOrderOfflineService.selectFsStoreOrderOfflineListVO(param);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:export')")
-    @Log(title = "线下订单", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreOrderOfflineScrm fsStoreOrderOffline)
-    {
-        List<FsStoreOrderOfflineScrm> list = fsStoreOrderOfflineService.selectFsStoreOrderOfflineList(fsStoreOrderOffline);
-        ExcelUtil<FsStoreOrderOfflineScrm> util = new ExcelUtil<FsStoreOrderOfflineScrm>(FsStoreOrderOfflineScrm.class);
-        return util.exportExcel(list, "storeOrderOffline");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:query')")
-    @GetMapping(value = "/{orderId}")
-    public R getInfo(@PathVariable("orderId") Long orderId)
-    {
-        FsStoreOrderOfflineListVO order = fsStoreOrderOfflineService.selectFsStoreOrderOfflineVOById(orderId);
-        order.setMobile(ParseUtils.parsePhone(order.getMobile()));
-        CrmCustomer customer = null;
-        if(order.getCrmId()!=null && order.getCrmId()>0){
-            customer = crmCustomerService.selectCrmCustomerById(order.getCrmId());
-            customer.setMobile(ParseUtils.parsePhone(customer.getMobile()));
-        }
-        FsStoreOrderOfflineItemScrm itemMap = new FsStoreOrderOfflineItemScrm();
-        itemMap.setOrderId(order.getOrderId());
-        List<FsStoreOrderOfflineItemScrm> items = fsStoreOrderOfflineItemService.selectFsStoreOrderOfflineItemList(itemMap);
-        return R.ok().put("order", order).put("items", items).put("customer", customer);
-    }
-
-    @GetMapping(value = "/queryPhone/{orderId}")
-    @Log(title = "查看电话", businessType = BusinessType.GRANT)
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:queryPhone')")
-    public R getPhone(@PathVariable("orderId") Long orderId)
-    {
-        FsStoreOrderOfflineListVO order = fsStoreOrderOfflineService.selectFsStoreOrderOfflineVOById(orderId);
-        String userPhone = order.getMobile();
-        return R.ok().put("userPhone", userPhone);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:add')")
-    @Log(title = "线下订单", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreOrderOfflineScrm fsStoreOrderOffline)
-    {
-        return toAjax(fsStoreOrderOfflineService.insertFsStoreOrderOffline(fsStoreOrderOffline));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:edit')")
-    @Log(title = "线下订单", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreOrderOfflineScrm fsStoreOrderOffline)
-    {
-        return toAjax(fsStoreOrderOfflineService.updateFsStoreOrderOffline(fsStoreOrderOffline));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:remove')")
-    @Log(title = "线下订单", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{orderIds}")
-    public AjaxResult remove(@PathVariable Long[] orderIds)
-    {
-        return toAjax(fsStoreOrderOfflineService.deleteFsStoreOrderOfflineByIds(orderIds));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:audit')")
-    @Log(title = "审核订单", businessType = BusinessType.UPDATE)
-    @PostMapping("/auditOrder/{orderId}")
-    public R auditOrder(@PathVariable Long orderId)
-    {
-//        LoginUser loginUser = SecurityUtils.getLoginUser();
-//        FsStoreOrderOfflineScrm fsStoreOrderOffline = new FsStoreOrderOfflineScrm();
-//        fsStoreOrderOffline.setOrderId(orderId);
-//        fsStoreOrderOffline.setStatus(3L);
-//        fsStoreOrderOffline.setAuditBy(loginUser.getCompanyUser().getNickName());
-//        fsStoreOrderOffline.setAuditTime(new Date());
-//        if (fsStoreOrderOfflineService.updateFsStoreOrderOffline(fsStoreOrderOffline) > 0){
-//            return R.ok();
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.ParseUtils;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.crm.domain.CrmCustomer;
+//import com.fs.crm.service.ICrmCustomerService;
+//import com.fs.hisStore.domain.FsStoreOrderOfflineScrm;
+//import com.fs.hisStore.domain.FsStoreOrderOfflineItemScrm;
+//import com.fs.hisStore.param.FsStoreOrderOfflineParam;
+//import com.fs.hisStore.service.IFsStoreOrderOfflineItemScrmService;
+//import com.fs.hisStore.service.IFsStoreOrderOfflineScrmService;
+//import com.fs.hisStore.vo.FsStoreOrderOfflineListVO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.Date;
+//import java.util.List;
+//
+///**
+// * 线下订单 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreOrderOfflineScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2024-10-29
+// */
+//@RestController
+//@RequestMapping("/store/store/storeOrderOffline")
+//public class FsStoreOrderOfflineScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreOrderOfflineScrmService fsStoreOrderOfflineService;
+//    @Autowired
+//    private IFsStoreOrderOfflineItemScrmService fsStoreOrderOfflineItemService;
+//    @Autowired
+//    private ICrmCustomerService crmCustomerService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreOrderOfflineParam param)
+//    {
+//        startPage();
+//        List<FsStoreOrderOfflineListVO> list = fsStoreOrderOfflineService.selectFsStoreOrderOfflineListVO(param);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:export')")
+//    @Log(title = "线下订单", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreOrderOfflineScrm fsStoreOrderOffline)
+//    {
+//        List<FsStoreOrderOfflineScrm> list = fsStoreOrderOfflineService.selectFsStoreOrderOfflineList(fsStoreOrderOffline);
+//        ExcelUtil<FsStoreOrderOfflineScrm> util = new ExcelUtil<FsStoreOrderOfflineScrm>(FsStoreOrderOfflineScrm.class);
+//        return util.exportExcel(list, "storeOrderOffline");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:query')")
+//    @GetMapping(value = "/{orderId}")
+//    public R getInfo(@PathVariable("orderId") Long orderId)
+//    {
+//        FsStoreOrderOfflineListVO order = fsStoreOrderOfflineService.selectFsStoreOrderOfflineVOById(orderId);
+//        order.setMobile(ParseUtils.parsePhone(order.getMobile()));
+//        CrmCustomer customer = null;
+//        if(order.getCrmId()!=null && order.getCrmId()>0){
+//            customer = crmCustomerService.selectCrmCustomerById(order.getCrmId());
+//            customer.setMobile(ParseUtils.parsePhone(customer.getMobile()));
 //        }
-//        return R.error("审核失败");
-        throw new RuntimeException("not implemented");
-    }
-}
+//        FsStoreOrderOfflineItemScrm itemMap = new FsStoreOrderOfflineItemScrm();
+//        itemMap.setOrderId(order.getOrderId());
+//        List<FsStoreOrderOfflineItemScrm> items = fsStoreOrderOfflineItemService.selectFsStoreOrderOfflineItemList(itemMap);
+//        return R.ok().put("order", order).put("items", items).put("customer", customer);
+//    }
+//
+//    @GetMapping(value = "/queryPhone/{orderId}")
+//    @Log(title = "查看电话", businessType = BusinessType.GRANT)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:queryPhone')")
+//    public R getPhone(@PathVariable("orderId") Long orderId)
+//    {
+//        FsStoreOrderOfflineListVO order = fsStoreOrderOfflineService.selectFsStoreOrderOfflineVOById(orderId);
+//        String userPhone = order.getMobile();
+//        return R.ok().put("userPhone", userPhone);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:add')")
+//    @Log(title = "线下订单", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreOrderOfflineScrm fsStoreOrderOffline)
+//    {
+//        return toAjax(fsStoreOrderOfflineService.insertFsStoreOrderOffline(fsStoreOrderOffline));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:edit')")
+//    @Log(title = "线下订单", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreOrderOfflineScrm fsStoreOrderOffline)
+//    {
+//        return toAjax(fsStoreOrderOfflineService.updateFsStoreOrderOffline(fsStoreOrderOffline));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:remove')")
+//    @Log(title = "线下订单", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{orderIds}")
+//    public AjaxResult remove(@PathVariable Long[] orderIds)
+//    {
+//        return toAjax(fsStoreOrderOfflineService.deleteFsStoreOrderOfflineByIds(orderIds));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderOffline:audit')")
+//    @Log(title = "审核订单", businessType = BusinessType.UPDATE)
+//    @PostMapping("/auditOrder/{orderId}")
+//    public R auditOrder(@PathVariable Long orderId)
+//    {
+////        LoginUser loginUser = SecurityUtils.getLoginUser();
+////        FsStoreOrderOfflineScrm fsStoreOrderOffline = new FsStoreOrderOfflineScrm();
+////        fsStoreOrderOffline.setOrderId(orderId);
+////        fsStoreOrderOffline.setStatus(3L);
+////        fsStoreOrderOffline.setAuditBy(loginUser.getCompanyUser().getNickName());
+////        fsStoreOrderOffline.setAuditTime(new Date());
+////        if (fsStoreOrderOfflineService.updateFsStoreOrderOffline(fsStoreOrderOffline) > 0){
+////            return R.ok();
+////        }
+////        return R.error("审核失败");
+//        throw new RuntimeException("not implemented");
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderPromotionScrmBridgeController.java

@@ -21,7 +21,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -33,7 +32,6 @@ import java.util.List;
  * @author fs
  * @date 2022-03-15
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/store/store/PromotionOrder")
 public class FsStoreOrderPromotionScrmBridgeController extends BaseController

+ 979 - 981
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderScrmBridgeController.java

@@ -1,171 +1,244 @@
-package com.fs.admin.controller.store;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.domain.entity.SysRole;
-import com.fs.common.core.domain.entity.SysUser;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.CloudHostUtils;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.ServletUtils;
-import com.fs.common.utils.StringUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.company.param.CompanyStoreOrderMoneyLogsListParam;
-import com.fs.company.service.ICompanyMoneyLogsService;
-import com.fs.company.vo.CompanyStoreOrderMoneyLogsVO;
-import com.fs.config.cloud.CloudHostProper;
-import com.fs.erp.domain.ErpDeliverys;
-import com.fs.erp.domain.ErpOrderQuery;
-import com.fs.erp.dto.ErpOrderQueryRequert;
-import com.fs.erp.dto.ErpOrderQueryResponse;
-import com.fs.erp.dto.df.DFConfigVo;
-import com.fs.erp.service.IErpOrderService;
-import com.fs.framework.web.service.TokenService;
-import com.fs.his.domain.FsDfAccount;
-import com.fs.his.domain.FsStoreOrderDf;
-import com.fs.his.domain.FsUser;
-import com.fs.his.enums.FsStoreOrderLogEnum;
-import com.fs.his.param.FsStoreOrderSetErpPhoneParam;
-import com.fs.his.service.IFsDfAccountService;
-import com.fs.his.service.IFsExpressService;
-import com.fs.his.service.IFsStoreOrderDfService;
-import com.fs.his.service.IFsUserService;
-import com.fs.his.utils.ConfigUtil;
-import com.fs.his.vo.FsStoreOrderListAndStatisticsVo;
-import com.fs.his.vo.FsStoreOrderListVO;
-import com.fs.hisStore.config.FsErpConfig;
-import com.fs.hisStore.domain.FsStoreOrderItemScrm;
-import com.fs.hisStore.domain.FsStoreOrderScrm;
-import com.fs.hisStore.domain.FsStoreOrderStatusScrm;
-import com.fs.hisStore.domain.FsStorePaymentScrm;
-import com.fs.his.dto.ExpressInfoDTO;
-import com.fs.hisStore.dto.StoreOrderExpressExportDTO;
-import com.fs.hisStore.dto.StoreOrderProductDTO;
-import com.fs.hisStore.enums.ShipperCodeEnum;
-import com.fs.hisStore.param.*;
-import com.fs.hisStore.service.*;
-import com.fs.hisStore.vo.*;
-import com.fs.system.domain.SysConfig;
-import com.fs.system.mapper.SysConfigMapper;
-import com.fs.system.service.ISysRoleService;
-import com.github.pagehelper.PageHelper;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.context.annotation.Profile;
-
-import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.text.ParseException;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * 订单 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreOrderScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeOrder")
-public class FsStoreOrderScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsExpressService expressService;
-    @Autowired
-    private IFsStoreOrderScrmService fsStoreOrderService;
-    @Autowired
-    private IFsStoreOrderItemScrmService orderItemService;
-    @Autowired
-    private IFsUserService userService;
-    @Autowired
-    private IFsStoreOrderStatusScrmService orderStatusService;
-    @Autowired
-    IFsStorePaymentScrmService paymentService;
-    @Autowired
-    private CloudHostProper cloudHostProper;
-    @Autowired
-    private ICompanyMoneyLogsService moneyLogsService;
-    @Autowired
-    @Qualifier("erpOrderServiceImpl")
-    private IErpOrderService gyOrderService;
-    @Autowired
-    @Qualifier("wdtErpOrderServiceImpl")
-    private IErpOrderService wdtOrderService;
-    @Autowired
-    @Qualifier("hzOMSErpOrderServiceImpl")
-    private IErpOrderService hzOMSErpOrderService;
-    @Autowired
-    @Qualifier("dfOrderServiceImpl")
-    private IErpOrderService dfOrderService;
-    @Autowired
-    @Qualifier("k9OrderScrmServiceImpl")
-    private IErpOrderService k9OrderService;
-    @Autowired
-    @Qualifier("JSTErpOrderServiceImpl")
-    private IErpOrderService jSTOrderService;
-    @Autowired
-    private ConfigUtil configUtil;
-    @Autowired
-    private IFsStoreOrderAuditLogScrmService orderAuditLogService;
-    @Autowired
-    private TokenService tokenService;
-    @Autowired
-    SysConfigMapper sysConfigMapper;
-    @Autowired
-    private IFsDfAccountService fsDfAccountService;
-    @Autowired
-    private IFsStoreOrderDfService fsStoreOrderDfService;
-    @Autowired
-    private IFsStoreOrderLogsScrmService fsStoreOrderLogsService;
-    @Autowired
-    private ISysRoleService sysRoleService;
-
-    private IErpOrderService getErpService()
-    {
-        IErpOrderService erpOrderService = null;
-        FsErpConfig erpConfig = configUtil.getErpConfig();
-        Integer erpOpen = erpConfig.getErpOpen();
-        if (erpOpen != null && erpOpen == 1) {
-            Integer erpType = erpConfig.getErpType();
-            if (erpType != null) {
-                if (erpType == 1) {
-                    erpOrderService = gyOrderService;
-                } else if (erpType == 2) {
-                    erpOrderService = wdtOrderService;
-                } else if (erpType == 3) {
-                    erpOrderService = hzOMSErpOrderService;
-                } else if (erpType == 4) {
-                    erpOrderService = dfOrderService;
-                } else if (erpType == 5) {
-                    erpOrderService = jSTOrderService;
-                } else if (erpType == 6) {
-                    erpOrderService = k9OrderService;
-                }
-            }
-        }
-        return erpOrderService;
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:list')")
-    @PostMapping("/list")
-    public TableDataInfo list(@RequestBody FsStoreOrderParam param)
-    {
+//package com.fs.admin.controller.store;
+//
+//import cn.hutool.core.bean.BeanUtil;
+//import cn.hutool.core.util.ObjectUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONObject;
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.domain.entity.SysRole;
+//import com.fs.common.core.domain.entity.SysUser;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.CloudHostUtils;
+//import com.fs.common.utils.ParseUtils;
+//import com.fs.common.utils.ServletUtils;
+//import com.fs.common.utils.StringUtils;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.company.param.CompanyStoreOrderMoneyLogsListParam;
+//import com.fs.company.service.ICompanyMoneyLogsService;
+//import com.fs.company.vo.CompanyStoreOrderMoneyLogsVO;
+//import com.fs.config.cloud.CloudHostProper;
+//import com.fs.erp.domain.ErpDeliverys;
+//import com.fs.erp.domain.ErpOrderQuery;
+//import com.fs.erp.dto.ErpOrderQueryRequert;
+//import com.fs.erp.dto.ErpOrderQueryResponse;
+//import com.fs.erp.dto.df.DFConfigVo;
+//import com.fs.erp.service.IErpOrderService;
+//import com.fs.framework.web.service.TokenService;
+//import com.fs.his.domain.FsDfAccount;
+//import com.fs.his.domain.FsStoreOrderDf;
+//import com.fs.his.domain.FsUser;
+//import com.fs.his.enums.FsStoreOrderLogEnum;
+//import com.fs.his.param.FsStoreOrderSetErpPhoneParam;
+//import com.fs.his.service.IFsDfAccountService;
+//import com.fs.his.service.IFsExpressService;
+//import com.fs.his.service.IFsStoreOrderDfService;
+//import com.fs.his.service.IFsUserService;
+//import com.fs.his.utils.ConfigUtil;
+//import com.fs.his.vo.FsStoreOrderListAndStatisticsVo;
+//import com.fs.his.vo.FsStoreOrderListVO;
+//import com.fs.hisStore.config.FsErpConfig;
+//import com.fs.hisStore.domain.FsStoreOrderItemScrm;
+//import com.fs.hisStore.domain.FsStoreOrderScrm;
+//import com.fs.hisStore.domain.FsStoreOrderStatusScrm;
+//import com.fs.hisStore.domain.FsStorePaymentScrm;
+//import com.fs.his.dto.ExpressInfoDTO;
+//import com.fs.hisStore.dto.StoreOrderExpressExportDTO;
+//import com.fs.hisStore.dto.StoreOrderProductDTO;
+//import com.fs.hisStore.enums.ShipperCodeEnum;
+//import com.fs.hisStore.param.*;
+//import com.fs.hisStore.service.*;
+//import com.fs.hisStore.vo.*;
+//import com.fs.system.domain.SysConfig;
+//import com.fs.system.mapper.SysConfigMapper;
+//import com.fs.system.service.ISysRoleService;
+//import com.github.pagehelper.PageHelper;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Qualifier;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.validation.annotation.Validated;
+//import org.springframework.web.bind.annotation.*;
+//import org.springframework.web.multipart.MultipartFile;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.math.BigDecimal;
+//import java.text.ParseException;
+//import java.util.*;
+//import java.util.stream.Collectors;
+//
+///**
+// * 订单 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreOrderScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeOrder")
+//public class FsStoreOrderScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsExpressService expressService;
+//    @Autowired
+//    private IFsStoreOrderScrmService fsStoreOrderService;
+//    @Autowired
+//    private IFsStoreOrderItemScrmService orderItemService;
+//    @Autowired
+//    private IFsUserService userService;
+//    @Autowired
+//    private IFsStoreOrderStatusScrmService orderStatusService;
+//    @Autowired
+//    IFsStorePaymentScrmService paymentService;
+//    @Autowired
+//    private CloudHostProper cloudHostProper;
+//    @Autowired
+//    private ICompanyMoneyLogsService moneyLogsService;
+//    @Autowired
+//    @Qualifier("erpOrderServiceImpl")
+//    private IErpOrderService gyOrderService;
+//    @Autowired
+//    @Qualifier("wdtErpOrderServiceImpl")
+//    private IErpOrderService wdtOrderService;
+//    @Autowired
+//    @Qualifier("hzOMSErpOrderServiceImpl")
+//    private IErpOrderService hzOMSErpOrderService;
+//    @Autowired
+//    @Qualifier("dfOrderServiceImpl")
+//    private IErpOrderService dfOrderService;
+//    @Autowired
+//    @Qualifier("k9OrderScrmServiceImpl")
+//    private IErpOrderService k9OrderService;
+//    @Autowired
+//    @Qualifier("JSTErpOrderServiceImpl")
+//    private IErpOrderService jSTOrderService;
+//    @Autowired
+//    private ConfigUtil configUtil;
+//    @Autowired
+//    private IFsStoreOrderAuditLogScrmService orderAuditLogService;
+//    @Autowired
+//    private TokenService tokenService;
+//    @Autowired
+//    SysConfigMapper sysConfigMapper;
+//    @Autowired
+//    private IFsDfAccountService fsDfAccountService;
+//    @Autowired
+//    private IFsStoreOrderDfService fsStoreOrderDfService;
+//    @Autowired
+//    private IFsStoreOrderLogsScrmService fsStoreOrderLogsService;
+//    @Autowired
+//    private ISysRoleService sysRoleService;
+//
+//    private IErpOrderService getErpService()
+//    {
+//        IErpOrderService erpOrderService = null;
+//        FsErpConfig erpConfig = configUtil.getErpConfig();
+//        Integer erpOpen = erpConfig.getErpOpen();
+//        if (erpOpen != null && erpOpen == 1) {
+//            Integer erpType = erpConfig.getErpType();
+//            if (erpType != null) {
+//                if (erpType == 1) {
+//                    erpOrderService = gyOrderService;
+//                } else if (erpType == 2) {
+//                    erpOrderService = wdtOrderService;
+//                } else if (erpType == 3) {
+//                    erpOrderService = hzOMSErpOrderService;
+//                } else if (erpType == 4) {
+//                    erpOrderService = dfOrderService;
+//                } else if (erpType == 5) {
+//                    erpOrderService = jSTOrderService;
+//                } else if (erpType == 6) {
+//                    erpOrderService = k9OrderService;
+//                }
+//            }
+//        }
+//        return erpOrderService;
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:list')")
+//    @PostMapping("/list")
+//    public TableDataInfo list(@RequestBody FsStoreOrderParam param)
+//    {
+////        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+////        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+////            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+////            param.setPayTimeList(param.getPayTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+////            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
+////            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+////        }
+////        param.setNotHealth(1);
+////        List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
+////        TableDataInfo dataTable = getDataTable(list);
+////        if (CloudHostUtils.hasCloudHostName("康年堂")) {
+////            dataTable.setMsg("knt");
+////        }
+////        if (list != null) {
+////            LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+////            for (FsStoreOrderVO vo : list) {
+////                if (vo.getPhone() != null) {
+////                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+////                }
+////                if (ObjectUtil.isNotEmpty(vo.getUserPhone())) {
+////                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+////                }
+////                if (CloudHostUtils.hasCloudHostName("康年堂")) {
+////                    FsStoreOrderDf df = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(vo.getId());
+////                    if (df != null) {
+////                        vo.setErpAccount(df.getLoginAccount());
+////                    }
+////                }
+////                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance")) || loginUser.getPermissions().contains("*:*:*") && (vo.getCost() != null && vo.getTotalNum() != null)) {
+////                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+////                } else {
+////                    vo.setPayPostage(BigDecimal.ZERO);
+////                    vo.setCost(BigDecimal.ZERO);
+////                    vo.setFPrice(BigDecimal.ZERO);
+////                    vo.setPayDelivery(BigDecimal.ZERO);
+////                    vo.setBarCode("");
+////                    vo.setCateName("");
+////                    vo.setBankTransactionId("");
+////                }
+////            }
+////        }
+////        FsStoreOrderListAndStatisticsVo vo = new FsStoreOrderListAndStatisticsVo();
+////        BeanUtils.copyProperties(dataTable, vo);
+////        if (dataTable.getTotal() > 0) {
+////            Map<String, BigDecimal> statistics = fsStoreOrderService.selectFsStoreOrderStatistics(param);
+////            if (statistics != null && statistics.size() >= 3) {
+////                vo.setPayPriceTotal(statistics.get("pay_price").toString());
+////                vo.setPayMoneyTotal(statistics.get("pay_money").toString());
+////                vo.setPayRemainTotal(statistics.get("pay_remain").toString());
+////            } else {
+////                vo.setPayPriceTotal("0");
+////                vo.setPayMoneyTotal("0");
+////                vo.setPayRemainTotal("0");
+////            }
+////            String productStatistics = fsStoreOrderService.selectFsStoreOrderProductStatistics(param);
+////            if (StringUtils.isNotBlank(productStatistics)) {
+////                vo.setProductInfo(productStatistics);
+////            } else {
+////                vo.setProductInfo("");
+////            }
+////        }
+////        return vo;
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:payRemainList')")
+//    @GetMapping("/payRemainList")
+//    public TableDataInfo payRemainList(FsStoreOrderParam param)
+//    {
 //        PageHelper.startPage(param.getPageNum(), param.getPageSize());
 //        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
 //            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
@@ -176,225 +249,54 @@ public class FsStoreOrderScrmBridgeController extends BaseController
 //        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
 //            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
 //        }
-//        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
-//            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+//        List<FsStoreOrderVO> list = fsStoreOrderService.selectPayRemainListVO(param);
+//        if (list != null) {
+//            for (FsStoreOrderVO vo : list) {
+//                if (vo.getPhone() != null) {
+//                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+//                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+//                }
+//            }
 //        }
-//        param.setNotHealth(1);
-//        List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
-//        TableDataInfo dataTable = getDataTable(list);
-//        if (CloudHostUtils.hasCloudHostName("康年堂")) {
-//            dataTable.setMsg("knt");
+//        return getDataTable(list);
+//    }
+//
+//    @Log(title = "付尾款订单", businessType = BusinessType.EXPORT)
+//    @GetMapping("/payRemainExport")
+//    public AjaxResult payRemainExport(FsStoreOrderParam param)
+//    {
+//        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+//            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
 //        }
+//        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+//            param.setPayTimeList(param.getPayTimeRange().split("--"));
+//        }
+//        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+//            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+//        }
+//        List<FsStorePayRemainOrderExportVO> list = fsStoreOrderService.selectFsStorePayRemainOrderListVOByExport(param);
 //        if (list != null) {
-//            LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//            for (FsStoreOrderVO vo : list) {
+//            for (FsStorePayRemainOrderExportVO vo : list) {
 //                if (vo.getPhone() != null) {
 //                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
 //                }
-//                if (ObjectUtil.isNotEmpty(vo.getUserPhone())) {
+//                if (vo.getUserPhone() != null) {
 //                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
 //                }
-//                if (CloudHostUtils.hasCloudHostName("康年堂")) {
-//                    FsStoreOrderDf df = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(vo.getId());
-//                    if (df != null) {
-//                        vo.setErpAccount(df.getLoginAccount());
-//                    }
-//                }
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance")) || loginUser.getPermissions().contains("*:*:*") && (vo.getCost() != null && vo.getTotalNum() != null)) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setPayDelivery(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
+//                if (vo.getUserAddress() != null) {
+//                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
 //                }
 //            }
 //        }
-//        FsStoreOrderListAndStatisticsVo vo = new FsStoreOrderListAndStatisticsVo();
-//        BeanUtils.copyProperties(dataTable, vo);
-//        if (dataTable.getTotal() > 0) {
-//            Map<String, BigDecimal> statistics = fsStoreOrderService.selectFsStoreOrderStatistics(param);
-//            if (statistics != null && statistics.size() >= 3) {
-//                vo.setPayPriceTotal(statistics.get("pay_price").toString());
-//                vo.setPayMoneyTotal(statistics.get("pay_money").toString());
-//                vo.setPayRemainTotal(statistics.get("pay_remain").toString());
-//            } else {
-//                vo.setPayPriceTotal("0");
-//                vo.setPayMoneyTotal("0");
-//                vo.setPayRemainTotal("0");
-//            }
-//            String productStatistics = fsStoreOrderService.selectFsStoreOrderProductStatistics(param);
-//            if (StringUtils.isNotBlank(productStatistics)) {
-//                vo.setProductInfo(productStatistics);
-//            } else {
-//                vo.setProductInfo("");
-//            }
-//        }
-//        return vo;
-        throw new RuntimeException("not implemented");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:payRemainList')")
-    @GetMapping("/payRemainList")
-    public TableDataInfo payRemainList(FsStoreOrderParam param)
-    {
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-            param.setPayTimeList(param.getPayTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-        }
-        List<FsStoreOrderVO> list = fsStoreOrderService.selectPayRemainListVO(param);
-        if (list != null) {
-            for (FsStoreOrderVO vo : list) {
-                if (vo.getPhone() != null) {
-                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                }
-            }
-        }
-        return getDataTable(list);
-    }
-
-    @Log(title = "付尾款订单", businessType = BusinessType.EXPORT)
-    @GetMapping("/payRemainExport")
-    public AjaxResult payRemainExport(FsStoreOrderParam param)
-    {
-        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-            param.setPayTimeList(param.getPayTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-        }
-        List<FsStorePayRemainOrderExportVO> list = fsStoreOrderService.selectFsStorePayRemainOrderListVOByExport(param);
-        if (list != null) {
-            for (FsStorePayRemainOrderExportVO vo : list) {
-                if (vo.getPhone() != null) {
-                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                }
-                if (vo.getUserPhone() != null) {
-                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                }
-                if (vo.getUserAddress() != null) {
-                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-                }
-            }
-        }
-        ExcelUtil<FsStorePayRemainOrderExportVO> util = new ExcelUtil<FsStorePayRemainOrderExportVO>(FsStorePayRemainOrderExportVO.class);
-        return util.exportExcel(list, "付尾款订单数据");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:export')")
-    @Log(title = "订单", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public AjaxResult export(@RequestBody FsStoreOrderParam param)
-    {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (fsStoreOrderService.isEntityNull(param)) {
-            return AjaxResult.error("请筛选数据导出");
-        }
-        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-            param.setPayTimeList(param.getPayTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
-            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-        }
-        param.setNotHealth(1);
-        List<FsStoreOrderErpExportVO> list = fsStoreOrderService.selectFsStoreOrderListVOByExport(param);
-        if (list != null) {
-            SysRole sysRole = isCheckPermission();
-            for (FsStoreOrderErpExportVO vo : list) {
-                if (vo.getPhone() != null && sysRole.getIsCheckPhone() != 1) {
-                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                }
-                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
-                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                }
-                if (vo.getUserAddress() != null && sysRole.getIsCheckAddress() != 1) {
-                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-                }
-                String orderItem = orderItemService.selectFsStoreOrderItemByOrderId(vo.getId());
-                vo.setOrderItem(orderItem);
-            }
-        }
-        String filter = param.getFilter();
-        ArrayList<String> filterList = new ArrayList<>();
-        if (StringUtils.isNotBlank(filter)) {
-            String[] filterArr = filter.split("\\s*,\\s*");
-            filterList.addAll(Arrays.asList(filterArr));
-        }
-        ExcelUtil<FsStoreOrderErpExportVO> util = new ExcelUtil<FsStoreOrderErpExportVO>(FsStoreOrderErpExportVO.class);
-        if (filter != null && !filter.isEmpty()) {
-            return util.exportExcelSelectedColumns(list, "订单数据", filterList);
-        } else {
-            return util.exportExcel(list, "订单数据");
-        }
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:export:details')")
-    @Log(title = "订单", businessType = BusinessType.EXPORT)
-    @PostMapping("/exportDetails")
-    public AjaxResult exportDetails(@RequestBody FsStoreOrderParam param)
-    {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (fsStoreOrderService.isEntityNull(param)) {
-            return AjaxResult.error("请筛选数据导出");
-        }
-        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-            param.setPayTimeList(param.getPayTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
-            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-        }
-        param.setNotHealth(1);
-        List<FsStoreOrderErpExportVO> list = fsStoreOrderService.selectFsStoreOrderListVOByExport(param);
-        String filter = param.getFilter();
-        ArrayList<String> filterList = new ArrayList<>();
-        if (StringUtils.isNotBlank(filter)) {
-            String[] filterArr = filter.split("\\s*,\\s*");
-            filterList.addAll(Arrays.asList(filterArr));
-        }
-        ExcelUtil<FsStoreOrderErpExportVO> util = new ExcelUtil<FsStoreOrderErpExportVO>(FsStoreOrderErpExportVO.class);
-        if (filter != null && !filter.isEmpty()) {
-            return util.exportExcelSelectedColumns(list, "订单数据", filterList);
-        } else {
-            return util.exportExcel(list, "订单数据");
-        }
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:exportItems')")
-    @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportItems")
-    public AjaxResult exportItems(FsStoreOrderParam param)
-    {
+//        ExcelUtil<FsStorePayRemainOrderExportVO> util = new ExcelUtil<FsStorePayRemainOrderExportVO>(FsStorePayRemainOrderExportVO.class);
+//        return util.exportExcel(list, "付尾款订单数据");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:export')")
+//    @Log(title = "订单", businessType = BusinessType.EXPORT)
+//    @PostMapping("/export")
+//    public AjaxResult export(@RequestBody FsStoreOrderParam param)
+//    {
 //        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
 //            param.setBeginTime(null);
 //            param.setEndTime(null);
@@ -408,54 +310,49 @@ public class FsStoreOrderScrmBridgeController extends BaseController
 //        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
 //            param.setPayTimeList(param.getPayTimeRange().split("--"));
 //        }
-//        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-//            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-//        }
 //        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
 //            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
 //        }
+//        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+//            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+//        }
 //        param.setNotHealth(1);
-//        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+//        List<FsStoreOrderErpExportVO> list = fsStoreOrderService.selectFsStoreOrderListVOByExport(param);
 //        if (list != null) {
 //            SysRole sysRole = isCheckPermission();
-//            LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//            for (FsStoreOrderItemExportVO vo : list) {
+//            for (FsStoreOrderErpExportVO vo : list) {
+//                if (vo.getPhone() != null && sysRole.getIsCheckPhone() != 1) {
+//                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+//                }
 //                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
-//                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
-//                    vo.setUserPhone(phone);
+//                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
 //                }
 //                if (vo.getUserAddress() != null && sysRole.getIsCheckAddress() != 1) {
 //                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
 //                }
-//                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                    try {
-//                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                        BeanUtil.copyProperties(orderProductDTO, vo);
-//                    } catch (Exception e) {
-//                    }
-//                }
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) && !Objects.isNull(vo.getCost())) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
-//                }
+//                String orderItem = orderItemService.selectFsStoreOrderItemByOrderId(vo.getId());
+//                vo.setOrderItem(orderItem);
 //            }
 //        }
-//        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
-//        return util.exportExcel(list, "订单明细数据");
-        throw new RuntimeException("not implemented");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:exportItems:details')")
-    @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportItemsDetails")
-    public AjaxResult exportItemsDetails(FsStoreOrderParam param)
-    {
+//        String filter = param.getFilter();
+//        ArrayList<String> filterList = new ArrayList<>();
+//        if (StringUtils.isNotBlank(filter)) {
+//            String[] filterArr = filter.split("\\s*,\\s*");
+//            filterList.addAll(Arrays.asList(filterArr));
+//        }
+//        ExcelUtil<FsStoreOrderErpExportVO> util = new ExcelUtil<FsStoreOrderErpExportVO>(FsStoreOrderErpExportVO.class);
+//        if (filter != null && !filter.isEmpty()) {
+//            return util.exportExcelSelectedColumns(list, "订单数据", filterList);
+//        } else {
+//            return util.exportExcel(list, "订单数据");
+//        }
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:export:details')")
+//    @Log(title = "订单", businessType = BusinessType.EXPORT)
+//    @PostMapping("/exportDetails")
+//    public AjaxResult exportDetails(@RequestBody FsStoreOrderParam param)
+//    {
 //        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
 //            param.setBeginTime(null);
 //            param.setEndTime(null);
@@ -469,6 +366,188 @@ public class FsStoreOrderScrmBridgeController extends BaseController
 //        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
 //            param.setPayTimeList(param.getPayTimeRange().split("--"));
 //        }
+//        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
+//            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+//        }
+//        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+//            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+//        }
+//        param.setNotHealth(1);
+//        List<FsStoreOrderErpExportVO> list = fsStoreOrderService.selectFsStoreOrderListVOByExport(param);
+//        String filter = param.getFilter();
+//        ArrayList<String> filterList = new ArrayList<>();
+//        if (StringUtils.isNotBlank(filter)) {
+//            String[] filterArr = filter.split("\\s*,\\s*");
+//            filterList.addAll(Arrays.asList(filterArr));
+//        }
+//        ExcelUtil<FsStoreOrderErpExportVO> util = new ExcelUtil<FsStoreOrderErpExportVO>(FsStoreOrderErpExportVO.class);
+//        if (filter != null && !filter.isEmpty()) {
+//            return util.exportExcelSelectedColumns(list, "订单数据", filterList);
+//        } else {
+//            return util.exportExcel(list, "订单数据");
+//        }
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:exportItems')")
+//    @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
+//    @GetMapping("/exportItems")
+//    public AjaxResult exportItems(FsStoreOrderParam param)
+//    {
+////        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
+////            param.setBeginTime(null);
+////            param.setEndTime(null);
+////        }
+////        if (fsStoreOrderService.isEntityNull(param)) {
+////            return AjaxResult.error("请筛选数据导出");
+////        }
+////        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+////            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+////            param.setPayTimeList(param.getPayTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+////            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
+////            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+////        }
+////        param.setNotHealth(1);
+////        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+////        if (list != null) {
+////            SysRole sysRole = isCheckPermission();
+////            LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+////            for (FsStoreOrderItemExportVO vo : list) {
+////                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
+////                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
+////                    vo.setUserPhone(phone);
+////                }
+////                if (vo.getUserAddress() != null && sysRole.getIsCheckAddress() != 1) {
+////                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
+////                }
+////                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+////                    try {
+////                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+////                        BeanUtil.copyProperties(orderProductDTO, vo);
+////                    } catch (Exception e) {
+////                    }
+////                }
+////                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) && !Objects.isNull(vo.getCost())) {
+////                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+////                } else {
+////                    vo.setPayPostage(BigDecimal.ZERO);
+////                    vo.setCost(BigDecimal.ZERO);
+////                    vo.setFPrice(BigDecimal.ZERO);
+////                    vo.setBarCode("");
+////                    vo.setCateName("");
+////                    vo.setBankTransactionId("");
+////                }
+////            }
+////        }
+////        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
+////        return util.exportExcel(list, "订单明细数据");
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:exportItems:details')")
+//    @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
+//    @GetMapping("/exportItemsDetails")
+//    public AjaxResult exportItemsDetails(FsStoreOrderParam param)
+//    {
+////        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
+////            param.setBeginTime(null);
+////            param.setEndTime(null);
+////        }
+////        if (fsStoreOrderService.isEntityNull(param)) {
+////            return AjaxResult.error("请筛选数据导出");
+////        }
+////        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+////            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+////            param.setPayTimeList(param.getPayTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+////            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+////        }
+////        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
+////            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+////        }
+////        param.setNotHealth(1);
+////        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
+////        if ("北京卓美".equals(com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())) {
+////            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
+////                    .map(vo -> {
+////                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
+////                        try {
+////                            BeanUtil.copyProperties(vo, zmvo);
+////                        } catch (Exception e) {
+////                            e.printStackTrace();
+////                        }
+////                        return zmvo;
+////                    })
+////                    .collect(Collectors.toList());
+////            if (zmvoList != null) {
+////                LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+////                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
+////                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+////                        try {
+////                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+////                            BeanUtil.copyProperties(orderProductDTO, vo);
+////                        } catch (Exception e) {
+////                        }
+////                    }
+////                    if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) && !Objects.isNull(vo.getCost())) {
+////                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+////                    } else {
+////                        vo.setPayPostage(BigDecimal.ZERO);
+////                        vo.setCost(BigDecimal.ZERO);
+////                        vo.setFPrice(BigDecimal.ZERO);
+////                        vo.setBarCode("");
+////                        vo.setCateName("");
+////                        vo.setBankTransactionId("");
+////                    }
+////                }
+////            }
+////            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
+////            return util.exportExcel(zmvoList, "订单明细数据");
+////        }
+////        if (list != null) {
+////            LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+////            for (FsStoreOrderItemExportVO vo : list) {
+////                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+////                    try {
+////                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+////                        BeanUtil.copyProperties(orderProductDTO, vo);
+////                    } catch (Exception e) {
+////                    }
+////                }
+////                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) && !Objects.isNull(vo.getCost())) {
+////                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+////                } else {
+////                    vo.setPayPostage(BigDecimal.ZERO);
+////                    vo.setCost(BigDecimal.ZERO);
+////                    vo.setFPrice(BigDecimal.ZERO);
+////                    vo.setBarCode("");
+////                    vo.setCateName("");
+////                    vo.setBankTransactionId("");
+////                }
+////            }
+////        }
+////        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
+////        return util.exportExcel(list, "订单明细数据");
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @GetMapping("/orderItemsNum")
+//    public R orderItemsNum(FsStoreOrderParam param)
+//    {
+//        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+//            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+//        }
+//        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+//            param.setPayTimeList(param.getPayTimeRange().split("--"));
+//        }
 //        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
 //            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
 //        }
@@ -476,592 +555,511 @@ public class FsStoreOrderScrmBridgeController extends BaseController
 //            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
 //        }
 //        param.setNotHealth(1);
-//        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
-//        if ("北京卓美".equals(com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())) {
-//            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
-//                    .map(vo -> {
-//                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
-//                        try {
-//                            BeanUtil.copyProperties(vo, zmvo);
-//                        } catch (Exception e) {
-//                            e.printStackTrace();
-//                        }
-//                        return zmvo;
-//                    })
-//                    .collect(Collectors.toList());
-//            if (zmvoList != null) {
-//                LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
-//                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                        try {
-//                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                            BeanUtil.copyProperties(orderProductDTO, vo);
-//                        } catch (Exception e) {
+//        Long orderItemsNum = orderItemService.countFsStoreOrderItemListExportVO(param);
+//        return R.ok().put("orderItemsNum", "订单明细数目:" + orderItemsNum);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:query')")
+//    @GetMapping(value = "/{id}")
+//    public R getInfo(@PathVariable("id") Long id)
+//    {
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
+//        order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
+//        order.setUserAddress(ParseUtils.parseAddress(order.getUserAddress()));
+//        FsUser user = userService.selectFsUserById(order.getUserId());
+//        if (user != null) {
+//            user.setPhone(ParseUtils.parsePhone(user.getPhone()));
+//        }
+//        FsStoreOrderItemScrm itemMap = new FsStoreOrderItemScrm();
+//        itemMap.setOrderId(order.getId());
+//        List<FsStoreOrderItemScrm> items = orderItemService.selectFsStoreOrderItemList(itemMap);
+//        FsStoreOrderStatusScrm statusMap = new FsStoreOrderStatusScrm();
+//        statusMap.setOrderId(order.getId());
+//        List<FsStoreOrderStatusScrm> logs = orderStatusService.selectFsStoreOrderStatusList(statusMap);
+//        List<FsStorePaymentScrm> payments = paymentService.selectFsStorePaymentByOrderId(order.getId());
+//        List<CompanyStoreOrderMoneyLogsVO> tuiMoneyLogs = new ArrayList<>();
+//        if (order.getCompanyId() != null) {
+//            CompanyStoreOrderMoneyLogsListParam moneyLogsMap = new CompanyStoreOrderMoneyLogsListParam();
+//            moneyLogsMap.setCompanyId(order.getCompanyId());
+//            moneyLogsMap.setBusinessId(order.getId().toString());
+//            tuiMoneyLogs = moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap);
+//        }
+//        List<FsStoreOrderAuditLogVO> auditLogs = orderAuditLogService.selectStoreOrderAuditLogVOByOrderId(order.getId());
+//        return R.ok().put("order", order).put("items", items).put("logs", logs).put("user", user).put("payments", payments).put("tuiMoneyLogs", tuiMoneyLogs)
+//                .put("auditLogs", auditLogs);
+//    }
+//
+//    @GetMapping(value = "/queryAddress/{id}")
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:queryAddress')")
+//    public R getAddress(@PathVariable("id") Long id)
+//    {
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
+//        String address = order.getUserAddress();
+//        return R.ok().put("address", address);
+//    }
+//
+//    @GetMapping(value = "/queryPhone/{id}")
+//    @Log(title = "查看电话", businessType = BusinessType.GRANT)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:queryPhone')")
+//    public R getPhone(@PathVariable("id") Long id)
+//    {
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
+//        String userPhone = order.getUserPhone();
+//        return R.ok().put("userPhone", userPhone);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:express')")
+//    @GetMapping(value = "/getExpress/{id}")
+//    public R getExpress(@PathVariable("id") Long id)
+//    {
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
+//        ExpressInfoDTO expressInfoDTO = null;
+//        if (StringUtils.isNotEmpty(order.getDeliveryId())) {
+//            String lastFourNumber = "";
+//            if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue())) {
+//                lastFourNumber = order.getUserPhone();
+//                if (lastFourNumber.length() == 11) {
+//                    lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
+//                }
+//            }
+//            expressInfoDTO = expressService.getExpressInfo(order.getOrderCode(), order.getDeliverySn(), order.getDeliveryId(), lastFourNumber);
+//        }
+//        return R.ok().put("data", expressInfoDTO);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:add')")
+//    @Log(title = "订单", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreOrderScrm fsStoreOrder)
+//    {
+//        return toAjax(fsStoreOrderService.insertFsStoreOrder(fsStoreOrder));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:edit')")
+//    @Log(title = "订单", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreOrderScrm fsStoreOrder)
+//    {
+//        return toAjax(fsStoreOrderService.updateFsStoreOrder(fsStoreOrder));
+//    }
+//
+//    @Log(title = "修改订单itemJson", businessType = BusinessType.UPDATE)
+//    @GetMapping("/updateStoreOrderItemJson/{orderId}/{backendEditProductType}")
+//    public AjaxResult updateStoreOrderItemJson(@PathVariable("orderId") Long orderId, @PathVariable("backendEditProductType") Integer backendEditProductType)
+//    {
+//        return toAjax(fsStoreOrderService.updateStoreOrderItemJson(orderId, backendEditProductType));
+//    }
+//
+//    @Log(title = "修改物流", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:editDeliveryId')")
+//    @PutMapping("/editDeliveryId")
+//    public AjaxResult editDeliveryId(@RequestBody FsStoreOrderScrm fsStoreOrder)
+//    {
+//        return toAjax(fsStoreOrderService.updateFsStoreOrder(fsStoreOrder));
+//    }
+//
+//    @Log(title = "同步管易物流单号", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:updateErpOrder')")
+//    @PostMapping("/updateErpOrder")
+//    public R updateErpOrder(@Validated @RequestBody FsStoreOrderExpressEditParam param)
+//    {
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(param.getOrderId());
+//        FsErpConfig erpConfig = configUtil.getErpConfig();
+//        List<Long> noErpCompany = erpConfig.getNoErpCompany();
+//        if (noErpCompany.contains(order.getCompanyId())) {
+//            logger.info("订单:{},相关公司不推送erp", order.getOrderCode());
+//            return R.ok("订单:" + order.getOrderCode() + "相关公司不推送erp");
+//        }
+//        IErpOrderService erpOrderService = getErpService();
+//        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
+//        request.setCode(order.getExtendOrderId());
+//        ErpOrderQueryResponse response = erpOrderService.getScrmOrder(request);
+//        if (response.getOrders() != null && response.getOrders().size() > 0) {
+//            for (ErpOrderQuery orderQuery : response.getOrders()) {
+//                if (orderQuery.getDeliverys() != null && orderQuery.getDeliverys().size() > 0) {
+//                    for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
+//                        if (delivery.getDelivery() && StringUtils.isNotEmpty(delivery.getMail_no())) {
+//                            fsStoreOrderService.updateDeliveryOrder(param.getOrderId(), delivery.getMail_no(), delivery.getExpress_code(), delivery.getExpress_name());
+//                            return R.ok();
 //                        }
 //                    }
-//                    if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) && !Objects.isNull(vo.getCost())) {
-//                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                    } else {
-//                        vo.setPayPostage(BigDecimal.ZERO);
-//                        vo.setCost(BigDecimal.ZERO);
-//                        vo.setFPrice(BigDecimal.ZERO);
-//                        vo.setBarCode("");
-//                        vo.setCateName("");
-//                        vo.setBankTransactionId("");
-//                    }
 //                }
 //            }
-//            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
-//            return util.exportExcel(zmvoList, "订单明细数据");
 //        }
+//        return R.error("未查询到快递信息");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:remove')")
+//    @Log(title = "订单", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreOrderService.deleteFsStoreOrderByIds(ids));
+//    }
+//
+//    @PostMapping("/createUserOrder")
+//    public R createUserOrder(@Validated @RequestBody FsStoreOrderCreateUserParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.createUserOrder(param);
+//    }
+//
+//    @Log(title = "确认订单", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:finishOrder')")
+//    @PostMapping("/finishOrder")
+//    public R finishOrder(@Validated @RequestBody FsStoreOrderFinishParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.finishOrder(param.getOrderId());
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:auditPayRemain')")
+//    @PostMapping("/auditPayRemain")
+//    public R auditPayRemain(@Validated @RequestBody FsStoreOrderAuditPayRemainParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.auditPayRemain(param.getOrderId());
+//    }
+//
+//    @Log(title = "导入", businessType = BusinessType.IMPORT)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:importExpress')")
+//    @PostMapping("/importExpress")
+//    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+//    {
+//        ExcelUtil<StoreOrderExpressExportDTO> util = new ExcelUtil<StoreOrderExpressExportDTO>(StoreOrderExpressExportDTO.class);
+//        List<StoreOrderExpressExportDTO> list = util.importExcel(file.getInputStream());
+//        String message = fsStoreOrderService.importExpress(list, updateSupport);
+//        return AjaxResult.success(message);
+//    }
+//
+//    @GetMapping("/importTemplate")
+//    public AjaxResult importTemplate()
+//    {
+//        ExcelUtil<StoreOrderExpressExportDTO> util = new ExcelUtil<StoreOrderExpressExportDTO>(StoreOrderExpressExportDTO.class);
+//        return util.importTemplateExcel("物流回单数据");
+//    }
+//
+//    @GetMapping("/getStoreOrder")
+//    public R getStoreOrder(@RequestParam("orderCode") String orderCode)
+//    {
+//        FsStoreOrderVO vo = fsStoreOrderService.selectFsStoreOrderVOByOrderCode(orderCode);
+//        return R.ok().put("data", vo);
+//    }
+//
+//    @Log(title = "冻结、解冻佣金", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:editTuiMoney')")
+//    @PostMapping("/editTuiMoney")
+//    public R editTuiMoney(@Validated @RequestBody FsStoreOrderEditTuiMoneyParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.editTuiMoney(param);
+//    }
+//
+//    @Log(title = "退款", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:refundOrderMoney')")
+//    @PostMapping("/refundOrderMoney")
+//    public synchronized R refundOrderMoney(@Validated @RequestBody FsStoreOrderRefundParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.refundOrderMoney(param.getOrderId());
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:getEroOrder')")
+//    @GetMapping("/getEroOrder")
+//    public R getEroOrder(@RequestParam("extendOrderId") String extendOrderId)
+//    {
+//        IErpOrderService erpOrderService = getErpService();
+//        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
+//        request.setCode(extendOrderId);
+//        ErpOrderQueryResponse response = erpOrderService.getScrmOrder(request);
+//        return R.ok().put("data", response);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:updateExpress')")
+//    @PostMapping("/updateExpress")
+//    public R updateExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.updateExpress(param);
+//    }
+//
+//    @Log(title = "同步物流", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:syncExpress')")
+//    @PostMapping("/syncExpress")
+//    public R syncExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.syncExpress(param);
+//    }
+//
+//    @Log(title = "分佣", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:addTuiMoney')")
+//    @PostMapping("/addTuiMoney")
+//    public R addTuiMoney(@Validated @RequestBody FsStoreOrderAddTuiMoneyParam param, HttpServletRequest request)
+//    {
+//        return fsStoreOrderService.addTuiMoney(param);
+//    }
+//
+//    @GetMapping("/getCustomerOrderList")
+//    public TableDataInfo getCustomerOrderList(FsStoreOrderParam param)
+//    {
+//        PageHelper.startPage(param.getPageNum(), param.getPageSize());
+//        List<FsStoreOrderVO> list = fsStoreOrderService.selectFsCustomerStoreOrderListVO(param);
 //        if (list != null) {
-//            LoginUser loginUser = (LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//            for (FsStoreOrderItemExportVO vo : list) {
-//                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                    try {
-//                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                        BeanUtil.copyProperties(orderProductDTO, vo);
-//                    } catch (Exception e) {
-//                    }
-//                }
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*")) && !Objects.isNull(vo.getCost())) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
+//            for (FsStoreOrderVO vo : list) {
+//                if (vo.getPhone() != null) {
+//                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2"));
+//                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2"));
 //                }
 //            }
 //        }
-//        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
-//        return util.exportExcel(list, "订单明细数据");
-        throw new RuntimeException("not implemented");
-    }
-
-    @GetMapping("/orderItemsNum")
-    public R orderItemsNum(FsStoreOrderParam param)
-    {
-        if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-            param.setPayTimeList(param.getPayTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-        }
-        if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
-            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-        }
-        param.setNotHealth(1);
-        Long orderItemsNum = orderItemService.countFsStoreOrderItemListExportVO(param);
-        return R.ok().put("orderItemsNum", "订单明细数目:" + orderItemsNum);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:query')")
-    @GetMapping(value = "/{id}")
-    public R getInfo(@PathVariable("id") Long id)
-    {
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
-        order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
-        order.setUserAddress(ParseUtils.parseAddress(order.getUserAddress()));
-        FsUser user = userService.selectFsUserById(order.getUserId());
-        if (user != null) {
-            user.setPhone(ParseUtils.parsePhone(user.getPhone()));
-        }
-        FsStoreOrderItemScrm itemMap = new FsStoreOrderItemScrm();
-        itemMap.setOrderId(order.getId());
-        List<FsStoreOrderItemScrm> items = orderItemService.selectFsStoreOrderItemList(itemMap);
-        FsStoreOrderStatusScrm statusMap = new FsStoreOrderStatusScrm();
-        statusMap.setOrderId(order.getId());
-        List<FsStoreOrderStatusScrm> logs = orderStatusService.selectFsStoreOrderStatusList(statusMap);
-        List<FsStorePaymentScrm> payments = paymentService.selectFsStorePaymentByOrderId(order.getId());
-        List<CompanyStoreOrderMoneyLogsVO> tuiMoneyLogs = new ArrayList<>();
-        if (order.getCompanyId() != null) {
-            CompanyStoreOrderMoneyLogsListParam moneyLogsMap = new CompanyStoreOrderMoneyLogsListParam();
-            moneyLogsMap.setCompanyId(order.getCompanyId());
-            moneyLogsMap.setBusinessId(order.getId().toString());
-            tuiMoneyLogs = moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap);
-        }
-        List<FsStoreOrderAuditLogVO> auditLogs = orderAuditLogService.selectStoreOrderAuditLogVOByOrderId(order.getId());
-        return R.ok().put("order", order).put("items", items).put("logs", logs).put("user", user).put("payments", payments).put("tuiMoneyLogs", tuiMoneyLogs)
-                .put("auditLogs", auditLogs);
-    }
-
-    @GetMapping(value = "/queryAddress/{id}")
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:queryAddress')")
-    public R getAddress(@PathVariable("id") Long id)
-    {
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
-        String address = order.getUserAddress();
-        return R.ok().put("address", address);
-    }
-
-    @GetMapping(value = "/queryPhone/{id}")
-    @Log(title = "查看电话", businessType = BusinessType.GRANT)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:queryPhone')")
-    public R getPhone(@PathVariable("id") Long id)
-    {
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
-        String userPhone = order.getUserPhone();
-        return R.ok().put("userPhone", userPhone);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:express')")
-    @GetMapping(value = "/getExpress/{id}")
-    public R getExpress(@PathVariable("id") Long id)
-    {
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id);
-        ExpressInfoDTO expressInfoDTO = null;
-        if (StringUtils.isNotEmpty(order.getDeliveryId())) {
-            String lastFourNumber = "";
-            if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue())) {
-                lastFourNumber = order.getUserPhone();
-                if (lastFourNumber.length() == 11) {
-                    lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
-                }
-            }
-            expressInfoDTO = expressService.getExpressInfo(order.getOrderCode(), order.getDeliverySn(), order.getDeliveryId(), lastFourNumber);
-        }
-        return R.ok().put("data", expressInfoDTO);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:add')")
-    @Log(title = "订单", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreOrderScrm fsStoreOrder)
-    {
-        return toAjax(fsStoreOrderService.insertFsStoreOrder(fsStoreOrder));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:edit')")
-    @Log(title = "订单", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreOrderScrm fsStoreOrder)
-    {
-        return toAjax(fsStoreOrderService.updateFsStoreOrder(fsStoreOrder));
-    }
-
-    @Log(title = "修改订单itemJson", businessType = BusinessType.UPDATE)
-    @GetMapping("/updateStoreOrderItemJson/{orderId}/{backendEditProductType}")
-    public AjaxResult updateStoreOrderItemJson(@PathVariable("orderId") Long orderId, @PathVariable("backendEditProductType") Integer backendEditProductType)
-    {
-        return toAjax(fsStoreOrderService.updateStoreOrderItemJson(orderId, backendEditProductType));
-    }
-
-    @Log(title = "修改物流", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:editDeliveryId')")
-    @PutMapping("/editDeliveryId")
-    public AjaxResult editDeliveryId(@RequestBody FsStoreOrderScrm fsStoreOrder)
-    {
-        return toAjax(fsStoreOrderService.updateFsStoreOrder(fsStoreOrder));
-    }
-
-    @Log(title = "同步管易物流单号", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:updateErpOrder')")
-    @PostMapping("/updateErpOrder")
-    public R updateErpOrder(@Validated @RequestBody FsStoreOrderExpressEditParam param)
-    {
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(param.getOrderId());
-        FsErpConfig erpConfig = configUtil.getErpConfig();
-        List<Long> noErpCompany = erpConfig.getNoErpCompany();
-        if (noErpCompany.contains(order.getCompanyId())) {
-            logger.info("订单:{},相关公司不推送erp", order.getOrderCode());
-            return R.ok("订单:" + order.getOrderCode() + "相关公司不推送erp");
-        }
-        IErpOrderService erpOrderService = getErpService();
-        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
-        request.setCode(order.getExtendOrderId());
-        ErpOrderQueryResponse response = erpOrderService.getScrmOrder(request);
-        if (response.getOrders() != null && response.getOrders().size() > 0) {
-            for (ErpOrderQuery orderQuery : response.getOrders()) {
-                if (orderQuery.getDeliverys() != null && orderQuery.getDeliverys().size() > 0) {
-                    for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
-                        if (delivery.getDelivery() && StringUtils.isNotEmpty(delivery.getMail_no())) {
-                            fsStoreOrderService.updateDeliveryOrder(param.getOrderId(), delivery.getMail_no(), delivery.getExpress_code(), delivery.getExpress_name());
-                            return R.ok();
-                        }
-                    }
-                }
-            }
-        }
-        return R.error("未查询到快递信息");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:remove')")
-    @Log(title = "订单", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreOrderService.deleteFsStoreOrderByIds(ids));
-    }
-
-    @PostMapping("/createUserOrder")
-    public R createUserOrder(@Validated @RequestBody FsStoreOrderCreateUserParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.createUserOrder(param);
-    }
-
-    @Log(title = "确认订单", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:finishOrder')")
-    @PostMapping("/finishOrder")
-    public R finishOrder(@Validated @RequestBody FsStoreOrderFinishParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.finishOrder(param.getOrderId());
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:auditPayRemain')")
-    @PostMapping("/auditPayRemain")
-    public R auditPayRemain(@Validated @RequestBody FsStoreOrderAuditPayRemainParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.auditPayRemain(param.getOrderId());
-    }
-
-    @Log(title = "导入", businessType = BusinessType.IMPORT)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:importExpress')")
-    @PostMapping("/importExpress")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-    {
-        ExcelUtil<StoreOrderExpressExportDTO> util = new ExcelUtil<StoreOrderExpressExportDTO>(StoreOrderExpressExportDTO.class);
-        List<StoreOrderExpressExportDTO> list = util.importExcel(file.getInputStream());
-        String message = fsStoreOrderService.importExpress(list, updateSupport);
-        return AjaxResult.success(message);
-    }
-
-    @GetMapping("/importTemplate")
-    public AjaxResult importTemplate()
-    {
-        ExcelUtil<StoreOrderExpressExportDTO> util = new ExcelUtil<StoreOrderExpressExportDTO>(StoreOrderExpressExportDTO.class);
-        return util.importTemplateExcel("物流回单数据");
-    }
-
-    @GetMapping("/getStoreOrder")
-    public R getStoreOrder(@RequestParam("orderCode") String orderCode)
-    {
-        FsStoreOrderVO vo = fsStoreOrderService.selectFsStoreOrderVOByOrderCode(orderCode);
-        return R.ok().put("data", vo);
-    }
-
-    @Log(title = "冻结、解冻佣金", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:editTuiMoney')")
-    @PostMapping("/editTuiMoney")
-    public R editTuiMoney(@Validated @RequestBody FsStoreOrderEditTuiMoneyParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.editTuiMoney(param);
-    }
-
-    @Log(title = "退款", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:refundOrderMoney')")
-    @PostMapping("/refundOrderMoney")
-    public synchronized R refundOrderMoney(@Validated @RequestBody FsStoreOrderRefundParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.refundOrderMoney(param.getOrderId());
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:getEroOrder')")
-    @GetMapping("/getEroOrder")
-    public R getEroOrder(@RequestParam("extendOrderId") String extendOrderId)
-    {
-        IErpOrderService erpOrderService = getErpService();
-        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
-        request.setCode(extendOrderId);
-        ErpOrderQueryResponse response = erpOrderService.getScrmOrder(request);
-        return R.ok().put("data", response);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:updateExpress')")
-    @PostMapping("/updateExpress")
-    public R updateExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.updateExpress(param);
-    }
-
-    @Log(title = "同步物流", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:syncExpress')")
-    @PostMapping("/syncExpress")
-    public R syncExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.syncExpress(param);
-    }
-
-    @Log(title = "分佣", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:addTuiMoney')")
-    @PostMapping("/addTuiMoney")
-    public R addTuiMoney(@Validated @RequestBody FsStoreOrderAddTuiMoneyParam param, HttpServletRequest request)
-    {
-        return fsStoreOrderService.addTuiMoney(param);
-    }
-
-    @GetMapping("/getCustomerOrderList")
-    public TableDataInfo getCustomerOrderList(FsStoreOrderParam param)
-    {
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        List<FsStoreOrderVO> list = fsStoreOrderService.selectFsCustomerStoreOrderListVO(param);
-        if (list != null) {
-            for (FsStoreOrderVO vo : list) {
-                if (vo.getPhone() != null) {
-                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2"));
-                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2"));
-                }
-            }
-        }
-        return getDataTable(list);
-    }
-
-    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
-    @ApiOperation("创建ERP订单")
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:createErpOrder')")
-    @GetMapping("/createErpOrder")
-    public R createErpOrder(@RequestParam("orderCode") String orderCode) throws Exception
-    {
-        logger.info("手动推管易订单号:{}", orderCode);
-        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderByOrderCode(orderCode);
-        return fsStoreOrderService.createOmsOrder(order.getId());
-    }
-
-    @GetMapping("/orderDimensionStatisticsList")
-    public TableDataInfo orderDimensionStatisticsList(OrderStatisticsParam param)
-    {
-        if ("广州郑多燕".equals(cloudHostProper.getCompanyName())) {
-            return getDataTable(fsStoreOrderService.selectZDYOrderSaleStatisticsList(param));
-        }
-        return getDataTable(fsStoreOrderService.selectOrderDimensionStatisticsList(param));
-    }
-
-    @Log(title = "订单维度统计", businessType = BusinessType.EXPORT)
-    @GetMapping("/orderDimensionStatisticsExport")
-    public AjaxResult orderDimensionStatisticsExport(OrderStatisticsParam param)
-    {
-        List<OrderStatisticsVo> list = fsStoreOrderService.selectOrderDimensionStatisticsList(param);
-        ExcelUtil<OrderStatisticsVo> util = new ExcelUtil<>(OrderStatisticsVo.class);
-        return util.exportExcel(list, "订单员工维度统计");
-    }
-
-    @GetMapping(value = "/queryErpPhone")
-    public AjaxResult queryErpPhone()
-    {
-        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("erp.phone");
-        List<String> list = new ArrayList<>();
-        if (sysConfig != null) {
-            String configValue = sysConfig.getConfigValue();
-            if (StringUtils.isNotEmpty(configValue)) {
-                list = JSON.parseArray(configValue, String.class);
-            }
-        }
-        return AjaxResult.success(list);
-    }
-
-    @PostMapping(value = "/saveErpPhone")
-    public AjaxResult saveErpPhone(@RequestBody List<String> phoneList)
-    {
-        phoneList = phoneList.stream().distinct().collect(Collectors.toList());
-        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("erp.phone");
-        sysConfig.setConfigValue(JSON.toJSONString(phoneList));
-        return AjaxResult.success(sysConfigMapper.updateConfig(sysConfig));
-    }
-
-    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
-    @Log(title = "订单", businessType = BusinessType.UPDATE)
-    @PostMapping("/editErpPhone")
-    public AjaxResult editErpPhone(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
-    {
-//        param.setOpeName(SecurityUtils.getLoginUser().getUser().getNickName());
-//        List<String> erpPhone = param.getErpPhone();
-//        if (erpPhone == null || erpPhone.isEmpty()) {
-//            return AjaxResult.error("请选择手机号");
-//        }
-//        return toAjax(fsStoreOrderService.batchUpdateErpByOrderIds(param));
-        throw new RuntimeException("not implemented");
-    }
-
-    @GetMapping("/getErpAccount")
-    public R getErpAccount()
-    {
-        List<String> list = new ArrayList<>();
-        if (CloudHostUtils.hasCloudHostName("金牛明医", "康年堂")) {
-            List<FsDfAccount> erpAccounts = fsDfAccountService.selectFsDfAccountList(null);
-            list = erpAccounts.stream().map(FsDfAccount::getLoginAccount).collect(Collectors.toList());
-        }
-        return R.ok().put("data", list);
-    }
-
-    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
-    @ApiOperation("批量创建ERP订单")
-    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
-    @PostMapping(value = "/batchCreateErpOrder")
-    public R batchCreateErpOrder(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
-    {
-//        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
-//        String loginAccount = param.getLoginAccount();
-//        if (StringUtils.isBlank(loginAccount)) {
-//            return R.error("未选择推送erp账户");
+//        return getDataTable(list);
+//    }
+//
+//    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
+//    @ApiOperation("创建ERP订单")
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:createErpOrder')")
+//    @GetMapping("/createErpOrder")
+//    public R createErpOrder(@RequestParam("orderCode") String orderCode) throws Exception
+//    {
+//        logger.info("手动推管易订单号:{}", orderCode);
+//        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderByOrderCode(orderCode);
+//        return fsStoreOrderService.createOmsOrder(order.getId());
+//    }
+//
+//    @GetMapping("/orderDimensionStatisticsList")
+//    public TableDataInfo orderDimensionStatisticsList(OrderStatisticsParam param)
+//    {
+//        if ("广州郑多燕".equals(cloudHostProper.getCompanyName())) {
+//            return getDataTable(fsStoreOrderService.selectZDYOrderSaleStatisticsList(param));
 //        }
-//        FsStoreOrderDf df = getDFInfo(loginAccount);
-//        if (df.getLoginAccount() == null) {
-//            return R.error("未查询到所选erp账户");
-//        }
-//        List<Long> orderIds = param.getOrderIds();
-//        if (orderIds == null || orderIds.isEmpty()) {
-//            if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-//                param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-//            }
-//            if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-//                param.setPayTimeList(param.getPayTimeRange().split("--"));
+//        return getDataTable(fsStoreOrderService.selectOrderDimensionStatisticsList(param));
+//    }
+//
+//    @Log(title = "订单维度统计", businessType = BusinessType.EXPORT)
+//    @GetMapping("/orderDimensionStatisticsExport")
+//    public AjaxResult orderDimensionStatisticsExport(OrderStatisticsParam param)
+//    {
+//        List<OrderStatisticsVo> list = fsStoreOrderService.selectOrderDimensionStatisticsList(param);
+//        ExcelUtil<OrderStatisticsVo> util = new ExcelUtil<>(OrderStatisticsVo.class);
+//        return util.exportExcel(list, "订单员工维度统计");
+//    }
+//
+//    @GetMapping(value = "/queryErpPhone")
+//    public AjaxResult queryErpPhone()
+//    {
+//        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("erp.phone");
+//        List<String> list = new ArrayList<>();
+//        if (sysConfig != null) {
+//            String configValue = sysConfig.getConfigValue();
+//            if (StringUtils.isNotEmpty(configValue)) {
+//                list = JSON.parseArray(configValue, String.class);
 //            }
-//            if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-//                param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-//            }
-//            if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
-//                param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-//            }
-//            param.setNotHealth(1);
-//            List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
-//            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
 //        }
-//        if (orderIds.isEmpty()) {
-//            return R.ok();
+//        return AjaxResult.success(list);
+//    }
+//
+//    @PostMapping(value = "/saveErpPhone")
+//    public AjaxResult saveErpPhone(@RequestBody List<String> phoneList)
+//    {
+//        phoneList = phoneList.stream().distinct().collect(Collectors.toList());
+//        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("erp.phone");
+//        sysConfig.setConfigValue(JSON.toJSONString(phoneList));
+//        return AjaxResult.success(sysConfigMapper.updateConfig(sysConfig));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
+//    @Log(title = "订单", businessType = BusinessType.UPDATE)
+//    @PostMapping("/editErpPhone")
+//    public AjaxResult editErpPhone(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
+//    {
+////        param.setOpeName(SecurityUtils.getLoginUser().getUser().getNickName());
+////        List<String> erpPhone = param.getErpPhone();
+////        if (erpPhone == null || erpPhone.isEmpty()) {
+////            return AjaxResult.error("请选择手机号");
+////        }
+////        return toAjax(fsStoreOrderService.batchUpdateErpByOrderIds(param));
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @GetMapping("/getErpAccount")
+//    public R getErpAccount()
+//    {
+//        List<String> list = new ArrayList<>();
+//        if (CloudHostUtils.hasCloudHostName("金牛明医", "康年堂")) {
+//            List<FsDfAccount> erpAccounts = fsDfAccountService.selectFsDfAccountList(null);
+//            list = erpAccounts.stream().map(FsDfAccount::getLoginAccount).collect(Collectors.toList());
 //        }
-//        orderIds.forEach(orderId -> {
-//            try {
-//                df.setOrderId(orderId);
-//                FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
-//                if (temp == null) {
-//                    df.setParcelQuantity(param.getParcelQuantity());
-//                    fsStoreOrderDfService.insertFsStoreOrderDf(df);
-//                    fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
-//                            nickName + " " + FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
-//                }
-//                fsStoreOrderService.createOmsOrder(orderId);
-//                fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
-//                        nickName + " " + FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
-//            } catch (ParseException e) {
-//                throw new RuntimeException(e);
-//            }
-//        });
-//        return R.ok();
-        throw new RuntimeException("not implemented");
-    }
-
-    @ApiOperation("批量设置订单账户")
-    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
-    @PostMapping(value = "/batchSetErpOrder")
-    public R batchSetErpOrder(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
-    {
-//        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
-//        String loginAccount = param.getLoginAccount();
-//        if (StringUtils.isBlank(loginAccount)) {
-//            return R.error("未选择erp账户");
+//        return R.ok().put("data", list);
+//    }
+//
+//    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
+//    @ApiOperation("批量创建ERP订单")
+//    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
+//    @PostMapping(value = "/batchCreateErpOrder")
+//    public R batchCreateErpOrder(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
+//    {
+////        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+////        String loginAccount = param.getLoginAccount();
+////        if (StringUtils.isBlank(loginAccount)) {
+////            return R.error("未选择推送erp账户");
+////        }
+////        FsStoreOrderDf df = getDFInfo(loginAccount);
+////        if (df.getLoginAccount() == null) {
+////            return R.error("未查询到所选erp账户");
+////        }
+////        List<Long> orderIds = param.getOrderIds();
+////        if (orderIds == null || orderIds.isEmpty()) {
+////            if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+////                param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+////            }
+////            if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+////                param.setPayTimeList(param.getPayTimeRange().split("--"));
+////            }
+////            if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+////                param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+////            }
+////            if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
+////                param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+////            }
+////            param.setNotHealth(1);
+////            List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
+////            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
+////        }
+////        if (orderIds.isEmpty()) {
+////            return R.ok();
+////        }
+////        orderIds.forEach(orderId -> {
+////            try {
+////                df.setOrderId(orderId);
+////                FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
+////                if (temp == null) {
+////                    df.setParcelQuantity(param.getParcelQuantity());
+////                    fsStoreOrderDfService.insertFsStoreOrderDf(df);
+////                    fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
+////                            nickName + " " + FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
+////                }
+////                fsStoreOrderService.createOmsOrder(orderId);
+////                fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
+////                        nickName + " " + FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
+////            } catch (ParseException e) {
+////                throw new RuntimeException(e);
+////            }
+////        });
+////        return R.ok();
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @ApiOperation("批量设置订单账户")
+//    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
+//    @PostMapping(value = "/batchSetErpOrder")
+//    public R batchSetErpOrder(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
+//    {
+////        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+////        String loginAccount = param.getLoginAccount();
+////        if (StringUtils.isBlank(loginAccount)) {
+////            return R.error("未选择erp账户");
+////        }
+////        FsStoreOrderDf df = getDFInfo(loginAccount);
+////        if (df.getLoginAccount() == null) {
+////            return R.error("未查询到所选erp账户");
+////        }
+////        List<Long> orderIds = param.getOrderIds();
+////        if (orderIds == null || orderIds.isEmpty()) {
+////            if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
+////                param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+////            }
+////            if (!StringUtils.isEmpty(param.getPayTimeRange())) {
+////                param.setPayTimeList(param.getPayTimeRange().split("--"));
+////            }
+////            if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
+////                param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
+////            }
+////            if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
+////                param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
+////            }
+////            param.setNotHealth(1);
+////            List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
+////            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
+////        }
+////        if (orderIds.isEmpty()) {
+////            return R.ok();
+////        }
+////        orderIds.forEach(orderId -> {
+////            df.setOrderId(orderId);
+////            FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
+////            df.setParcelQuantity(param.getParcelQuantity());
+////            if (temp != null) {
+////                df.setUpdateTime(new Date());
+////                fsStoreOrderDfService.updateFsStoreOrderDf(df);
+////            } else {
+////                fsStoreOrderDfService.insertFsStoreOrderDf(df);
+////            }
+////            fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
+////                    nickName + " " + FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
+////        });
+////        return R.ok();
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    @ApiOperation("批量审核订单")
+//    @Log(title = "订单管理", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:batchAudit')")
+//    @PostMapping("/batchAudit")
+//    public R batchAuditOrder(@Validated @RequestBody FsStoreOrderBatchAuditParam param)
+//    {
+//        if (param.getOrderIds() == null || param.getOrderIds().isEmpty()) {
+//            return R.error("订单ID列表不能为空");
 //        }
-//        FsStoreOrderDf df = getDFInfo(loginAccount);
-//        if (df.getLoginAccount() == null) {
-//            return R.error("未查询到所选erp账户");
+//        if (param.getIsAudit() == null) {
+//            return R.error("审核状态不能为空");
 //        }
-//        List<Long> orderIds = param.getOrderIds();
-//        if (orderIds == null || orderIds.isEmpty()) {
-//            if (!StringUtils.isEmpty(param.getCreateTimeRange())) {
-//                param.setCreateTimeList(param.getCreateTimeRange().split("--"));
-//            }
-//            if (!StringUtils.isEmpty(param.getPayTimeRange())) {
-//                param.setPayTimeList(param.getPayTimeRange().split("--"));
-//            }
-//            if (!StringUtils.isEmpty(param.getDeliveryImportTimeRange())) {
-//                param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
-//            }
-//            if (!StringUtils.isEmpty(param.getDeliverySendTimeRange())) {
-//                param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--"));
-//            }
-//            param.setNotHealth(1);
-//            List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
-//            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
+//        int count = fsStoreOrderService.batchAuditOrder(param);
+//        return R.ok("成功审核 " + count + " 条订单");
+//    }
+//
+//    @ApiOperation("订单备注")
+//    @Log(title = "订单管理", businessType = BusinessType.UPDATE)
+//    @PreAuthorize("@ss.hasPermi('store:storeOrder:remark')")
+//    @PostMapping("/remark")
+//    public R remark(@Validated @RequestBody FsStoreOrderScrm param)
+//    {
+//        if (param.getId() == null || param.getId() < 1) {
+//            return R.error("订单ID错误");
 //        }
-//        if (orderIds.isEmpty()) {
-//            return R.ok();
+//        if (StringUtils.isEmpty(param.getOrderRemark())) {
+//            return R.error("订单备注不能为空");
 //        }
-//        orderIds.forEach(orderId -> {
-//            df.setOrderId(orderId);
-//            FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
-//            df.setParcelQuantity(param.getParcelQuantity());
-//            if (temp != null) {
-//                df.setUpdateTime(new Date());
-//                fsStoreOrderDfService.updateFsStoreOrderDf(df);
-//            } else {
-//                fsStoreOrderDfService.insertFsStoreOrderDf(df);
-//            }
-//            fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
-//                    nickName + " " + FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
-//        });
-//        return R.ok();
-        throw new RuntimeException("not implemented");
-    }
-
-    @ApiOperation("批量审核订单")
-    @Log(title = "订单管理", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:batchAudit')")
-    @PostMapping("/batchAudit")
-    public R batchAuditOrder(@Validated @RequestBody FsStoreOrderBatchAuditParam param)
-    {
-        if (param.getOrderIds() == null || param.getOrderIds().isEmpty()) {
-            return R.error("订单ID列表不能为空");
-        }
-        if (param.getIsAudit() == null) {
-            return R.error("审核状态不能为空");
-        }
-        int count = fsStoreOrderService.batchAuditOrder(param);
-        return R.ok("成功审核 " + count + " 条订单");
-    }
-
-    @ApiOperation("订单备注")
-    @Log(title = "订单管理", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('store:storeOrder:remark')")
-    @PostMapping("/remark")
-    public R remark(@Validated @RequestBody FsStoreOrderScrm param)
-    {
-        if (param.getId() == null || param.getId() < 1) {
-            return R.error("订单ID错误");
-        }
-        if (StringUtils.isEmpty(param.getOrderRemark())) {
-            return R.error("订单备注不能为空");
-        }
-        return fsStoreOrderService.orderRemark(param);
-    }
-
-    private SysRole isCheckPermission()
-    {
-//        SysRole sysRole = new SysRole();
-//        SysUser user = SecurityUtils.getLoginUser().getUser();
-//        boolean flag = user.isAdmin();
-//        if (flag) {
-//            sysRole.setIsCheckPhone(1);
-//            sysRole.setIsCheckAddress(1);
-//        } else {
-//            List<SysRole> roles = user.getRoles();
-//            if (roles != null && !roles.isEmpty()) {
-//                Long[] roleIds = roles.stream().map(SysRole::getRoleId).toArray(Long[]::new);
-//                return sysRoleService.getIsCheckPermission(roleIds);
+//        return fsStoreOrderService.orderRemark(param);
+//    }
+//
+//    private SysRole isCheckPermission()
+//    {
+////        SysRole sysRole = new SysRole();
+////        SysUser user = SecurityUtils.getLoginUser().getUser();
+////        boolean flag = user.isAdmin();
+////        if (flag) {
+////            sysRole.setIsCheckPhone(1);
+////            sysRole.setIsCheckAddress(1);
+////        } else {
+////            List<SysRole> roles = user.getRoles();
+////            if (roles != null && !roles.isEmpty()) {
+////                Long[] roleIds = roles.stream().map(SysRole::getRoleId).toArray(Long[]::new);
+////                return sysRoleService.getIsCheckPermission(roleIds);
+////            }
+////        }
+////        return sysRole;
+//        throw new RuntimeException("not implemented");
+//    }
+//
+//    private FsStoreOrderDf getDFInfo(String loginAccount)
+//    {
+//        List<FsDfAccount> erpAccounts = fsDfAccountService.selectFsDfAccountList(null);
+//        FsStoreOrderDf df = new FsStoreOrderDf();
+//        for (FsDfAccount erpAccount : erpAccounts) {
+//            if (loginAccount.equals(erpAccount.getLoginAccount())) {
+//                df.setAppKey(erpAccount.getDfAppKey());
+//                df.setAppSecret(erpAccount.getDfAppsecret());
+//                df.setLoginAccount(loginAccount);
+//                df.setMonthlyCard(erpAccount.getMonthlyCard());
+//                df.setExpressProductCode(erpAccount.getExpressProductCode());
+//                df.setStatus(0);
+//                break;
 //            }
 //        }
-//        return sysRole;
-        throw new RuntimeException("not implemented");
-    }
-
-    private FsStoreOrderDf getDFInfo(String loginAccount)
-    {
-        List<FsDfAccount> erpAccounts = fsDfAccountService.selectFsDfAccountList(null);
-        FsStoreOrderDf df = new FsStoreOrderDf();
-        for (FsDfAccount erpAccount : erpAccounts) {
-            if (loginAccount.equals(erpAccount.getLoginAccount())) {
-                df.setAppKey(erpAccount.getDfAppKey());
-                df.setAppSecret(erpAccount.getDfAppsecret());
-                df.setLoginAccount(loginAccount);
-                df.setMonthlyCard(erpAccount.getMonthlyCard());
-                df.setExpressProductCode(erpAccount.getExpressProductCode());
-                df.setStatus(0);
-                break;
-            }
-        }
-        return df;
-    }
-}
+//        return df;
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreOrderStatusScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreOrderStatusScrm;
-import com.fs.hisStore.service.IFsStoreOrderStatusScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 订单操作记录 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreOrderStatusScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeOrderStatus")
-public class FsStoreOrderStatusScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreOrderStatusScrmService fsStoreOrderStatusService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreOrderStatusScrm fsStoreOrderStatus)
-    {
-        startPage();
-        List<FsStoreOrderStatusScrm> list = fsStoreOrderStatusService.selectFsStoreOrderStatusList(fsStoreOrderStatus);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:export')")
-    @Log(title = "订单操作记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreOrderStatusScrm fsStoreOrderStatus)
-    {
-        List<FsStoreOrderStatusScrm> list = fsStoreOrderStatusService.selectFsStoreOrderStatusList(fsStoreOrderStatus);
-        ExcelUtil<FsStoreOrderStatusScrm> util = new ExcelUtil<FsStoreOrderStatusScrm>(FsStoreOrderStatusScrm.class);
-        return util.exportExcel(list, "storeOrderStatus");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreOrderStatusService.selectFsStoreOrderStatusById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:add')")
-    @Log(title = "订单操作记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreOrderStatusScrm fsStoreOrderStatus)
-    {
-        return toAjax(fsStoreOrderStatusService.insertFsStoreOrderStatus(fsStoreOrderStatus));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:edit')")
-    @Log(title = "订单操作记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreOrderStatusScrm fsStoreOrderStatus)
-    {
-        return toAjax(fsStoreOrderStatusService.updateFsStoreOrderStatus(fsStoreOrderStatus));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:remove')")
-    @Log(title = "订单操作记录", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreOrderStatusService.deleteFsStoreOrderStatusByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreOrderStatusScrm;
+//import com.fs.hisStore.service.IFsStoreOrderStatusScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 订单操作记录 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreOrderStatusScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeOrderStatus")
+//public class FsStoreOrderStatusScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreOrderStatusScrmService fsStoreOrderStatusService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreOrderStatusScrm fsStoreOrderStatus)
+//    {
+//        startPage();
+//        List<FsStoreOrderStatusScrm> list = fsStoreOrderStatusService.selectFsStoreOrderStatusList(fsStoreOrderStatus);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:export')")
+//    @Log(title = "订单操作记录", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreOrderStatusScrm fsStoreOrderStatus)
+//    {
+//        List<FsStoreOrderStatusScrm> list = fsStoreOrderStatusService.selectFsStoreOrderStatusList(fsStoreOrderStatus);
+//        ExcelUtil<FsStoreOrderStatusScrm> util = new ExcelUtil<FsStoreOrderStatusScrm>(FsStoreOrderStatusScrm.class);
+//        return util.exportExcel(list, "storeOrderStatus");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreOrderStatusService.selectFsStoreOrderStatusById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:add')")
+//    @Log(title = "订单操作记录", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreOrderStatusScrm fsStoreOrderStatus)
+//    {
+//        return toAjax(fsStoreOrderStatusService.insertFsStoreOrderStatus(fsStoreOrderStatus));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:edit')")
+//    @Log(title = "订单操作记录", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreOrderStatusScrm fsStoreOrderStatus)
+//    {
+//        return toAjax(fsStoreOrderStatusService.updateFsStoreOrderStatus(fsStoreOrderStatus));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeOrderStatus:remove')")
+//    @Log(title = "订单操作记录", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreOrderStatusService.deleteFsStoreOrderStatusByIds(ids));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductAttrScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductAttrScrm;
-import com.fs.hisStore.service.IFsStoreProductAttrScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品属性 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductAttrScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductAttr")
-public class FsStoreProductAttrScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductAttrScrmService fsStoreProductAttrService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductAttrScrm fsStoreProductAttr)
-    {
-        startPage();
-        List<FsStoreProductAttrScrm> list = fsStoreProductAttrService.selectFsStoreProductAttrList(fsStoreProductAttr);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:export')")
-    @Log(title = "商品属性", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductAttrScrm fsStoreProductAttr)
-    {
-        List<FsStoreProductAttrScrm> list = fsStoreProductAttrService.selectFsStoreProductAttrList(fsStoreProductAttr);
-        ExcelUtil<FsStoreProductAttrScrm> util = new ExcelUtil<FsStoreProductAttrScrm>(FsStoreProductAttrScrm.class);
-        return util.exportExcel(list, "storeProductAttr");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreProductAttrService.selectFsStoreProductAttrById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:add')")
-    @Log(title = "商品属性", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductAttrScrm fsStoreProductAttr)
-    {
-        return toAjax(fsStoreProductAttrService.insertFsStoreProductAttr(fsStoreProductAttr));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:edit')")
-    @Log(title = "商品属性", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductAttrScrm fsStoreProductAttr)
-    {
-        return toAjax(fsStoreProductAttrService.updateFsStoreProductAttr(fsStoreProductAttr));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:remove')")
-    @Log(title = "商品属性", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreProductAttrService.deleteFsStoreProductAttrByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductAttrScrm;
+//import com.fs.hisStore.service.IFsStoreProductAttrScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品属性 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductAttrScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductAttr")
+//public class FsStoreProductAttrScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductAttrScrmService fsStoreProductAttrService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductAttrScrm fsStoreProductAttr)
+//    {
+//        startPage();
+//        List<FsStoreProductAttrScrm> list = fsStoreProductAttrService.selectFsStoreProductAttrList(fsStoreProductAttr);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:export')")
+//    @Log(title = "商品属性", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductAttrScrm fsStoreProductAttr)
+//    {
+//        List<FsStoreProductAttrScrm> list = fsStoreProductAttrService.selectFsStoreProductAttrList(fsStoreProductAttr);
+//        ExcelUtil<FsStoreProductAttrScrm> util = new ExcelUtil<FsStoreProductAttrScrm>(FsStoreProductAttrScrm.class);
+//        return util.exportExcel(list, "storeProductAttr");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreProductAttrService.selectFsStoreProductAttrById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:add')")
+//    @Log(title = "商品属性", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductAttrScrm fsStoreProductAttr)
+//    {
+//        return toAjax(fsStoreProductAttrService.insertFsStoreProductAttr(fsStoreProductAttr));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:edit')")
+//    @Log(title = "商品属性", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductAttrScrm fsStoreProductAttr)
+//    {
+//        return toAjax(fsStoreProductAttrService.updateFsStoreProductAttr(fsStoreProductAttr));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttr:remove')")
+//    @Log(title = "商品属性", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreProductAttrService.deleteFsStoreProductAttrByIds(ids));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductAttrValueScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
-import com.fs.hisStore.service.IFsStoreProductAttrValueScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品属性值 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductAttrValueScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductAttrValue")
-public class FsStoreProductAttrValueScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductAttrValueScrmService fsStoreProductAttrValueService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
-    {
-        startPage();
-        List<FsStoreProductAttrValueScrm> list = fsStoreProductAttrValueService.selectFsStoreProductAttrValueList(fsStoreProductAttrValue);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:export')")
-    @Log(title = "商品属性值", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
-    {
-        List<FsStoreProductAttrValueScrm> list = fsStoreProductAttrValueService.selectFsStoreProductAttrValueList(fsStoreProductAttrValue);
-        ExcelUtil<FsStoreProductAttrValueScrm> util = new ExcelUtil<FsStoreProductAttrValueScrm>(FsStoreProductAttrValueScrm.class);
-        return util.exportExcel(list, "storeProductAttrValue");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreProductAttrValueService.selectFsStoreProductAttrValueById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:add')")
-    @Log(title = "商品属性值", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductAttrValueScrm fsStoreProductAttrValue)
-    {
-        return toAjax(fsStoreProductAttrValueService.insertFsStoreProductAttrValue(fsStoreProductAttrValue));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:edit')")
-    @Log(title = "商品属性值", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductAttrValueScrm fsStoreProductAttrValue)
-    {
-        return toAjax(fsStoreProductAttrValueService.updateFsStoreProductAttrValue(fsStoreProductAttrValue));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:remove')")
-    @Log(title = "商品属性值", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreProductAttrValueService.deleteFsStoreProductAttrValueByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
+//import com.fs.hisStore.service.IFsStoreProductAttrValueScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品属性值 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductAttrValueScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductAttrValue")
+//public class FsStoreProductAttrValueScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductAttrValueScrmService fsStoreProductAttrValueService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
+//    {
+//        startPage();
+//        List<FsStoreProductAttrValueScrm> list = fsStoreProductAttrValueService.selectFsStoreProductAttrValueList(fsStoreProductAttrValue);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:export')")
+//    @Log(title = "商品属性值", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
+//    {
+//        List<FsStoreProductAttrValueScrm> list = fsStoreProductAttrValueService.selectFsStoreProductAttrValueList(fsStoreProductAttrValue);
+//        ExcelUtil<FsStoreProductAttrValueScrm> util = new ExcelUtil<FsStoreProductAttrValueScrm>(FsStoreProductAttrValueScrm.class);
+//        return util.exportExcel(list, "storeProductAttrValue");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreProductAttrValueService.selectFsStoreProductAttrValueById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:add')")
+//    @Log(title = "商品属性值", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductAttrValueScrm fsStoreProductAttrValue)
+//    {
+//        return toAjax(fsStoreProductAttrValueService.insertFsStoreProductAttrValue(fsStoreProductAttrValue));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:edit')")
+//    @Log(title = "商品属性值", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductAttrValueScrm fsStoreProductAttrValue)
+//    {
+//        return toAjax(fsStoreProductAttrValueService.updateFsStoreProductAttrValue(fsStoreProductAttrValue));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductAttrValue:remove')")
+//    @Log(title = "商品属性值", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreProductAttrValueService.deleteFsStoreProductAttrValueByIds(ids));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductCategoryScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductCategoryScrm;
-import com.fs.hisStore.service.IFsStoreProductCategoryScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品分类 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductCategoryScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-16
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductCategory")
-public class FsStoreProductCategoryScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductCategoryScrmService fsStoreProductCategoryService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductCategoryScrm fsStoreProductCategory)
-    {
-        startPage();
-        List<FsStoreProductCategoryScrm> list = fsStoreProductCategoryService.selectFsStoreProductCategoryList(fsStoreProductCategory);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:export')")
-    @Log(title = "商品分类", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductCategoryScrm fsStoreProductCategory)
-    {
-        List<FsStoreProductCategoryScrm> list = fsStoreProductCategoryService.selectFsStoreProductCategoryList(fsStoreProductCategory);
-        ExcelUtil<FsStoreProductCategoryScrm> util = new ExcelUtil<FsStoreProductCategoryScrm>(FsStoreProductCategoryScrm.class);
-        return util.exportExcel(list, "商品分类");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:query')")
-    @GetMapping(value = "/{cateId}")
-    public AjaxResult getInfo(@PathVariable("cateId") Long cateId)
-    {
-        return AjaxResult.success(fsStoreProductCategoryService.selectFsStoreProductCategoryById(cateId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:add')")
-    @Log(title = "商品分类", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductCategoryScrm fsStoreProductCategory)
-    {
-        return toAjax(fsStoreProductCategoryService.insertFsStoreProductCategory(fsStoreProductCategory));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:edit')")
-    @Log(title = "商品分类", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductCategoryScrm fsStoreProductCategory)
-    {
-        return toAjax(fsStoreProductCategoryService.updateFsStoreProductCategory(fsStoreProductCategory));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:remove')")
-    @Log(title = "商品分类", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{cateIds}")
-    public AjaxResult remove(@PathVariable Long[] cateIds)
-    {
-        return toAjax(fsStoreProductCategoryService.deleteFsStoreProductCategoryByIds(cateIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductCategoryScrm;
+//import com.fs.hisStore.service.IFsStoreProductCategoryScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品分类 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductCategoryScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-16
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductCategory")
+//public class FsStoreProductCategoryScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductCategoryScrmService fsStoreProductCategoryService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductCategoryScrm fsStoreProductCategory)
+//    {
+//        startPage();
+//        List<FsStoreProductCategoryScrm> list = fsStoreProductCategoryService.selectFsStoreProductCategoryList(fsStoreProductCategory);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:export')")
+//    @Log(title = "商品分类", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductCategoryScrm fsStoreProductCategory)
+//    {
+//        List<FsStoreProductCategoryScrm> list = fsStoreProductCategoryService.selectFsStoreProductCategoryList(fsStoreProductCategory);
+//        ExcelUtil<FsStoreProductCategoryScrm> util = new ExcelUtil<FsStoreProductCategoryScrm>(FsStoreProductCategoryScrm.class);
+//        return util.exportExcel(list, "商品分类");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:query')")
+//    @GetMapping(value = "/{cateId}")
+//    public AjaxResult getInfo(@PathVariable("cateId") Long cateId)
+//    {
+//        return AjaxResult.success(fsStoreProductCategoryService.selectFsStoreProductCategoryById(cateId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:add')")
+//    @Log(title = "商品分类", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductCategoryScrm fsStoreProductCategory)
+//    {
+//        return toAjax(fsStoreProductCategoryService.insertFsStoreProductCategory(fsStoreProductCategory));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:edit')")
+//    @Log(title = "商品分类", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductCategoryScrm fsStoreProductCategory)
+//    {
+//        return toAjax(fsStoreProductCategoryService.updateFsStoreProductCategory(fsStoreProductCategory));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductCategory:remove')")
+//    @Log(title = "商品分类", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{cateIds}")
+//    public AjaxResult remove(@PathVariable Long[] cateIds)
+//    {
+//        return toAjax(fsStoreProductCategoryService.deleteFsStoreProductCategoryByIds(cateIds));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductDetailsScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductDetailsScrm;
-import com.fs.hisStore.service.IFsStoreProductDetailsScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品详情 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductDetailsScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductDetails")
-public class FsStoreProductDetailsScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductDetailsScrmService fsStoreProductDetailsService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductDetailsScrm fsStoreProductDetails)
-    {
-        startPage();
-        List<FsStoreProductDetailsScrm> list = fsStoreProductDetailsService.selectFsStoreProductDetailsList(fsStoreProductDetails);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:export')")
-    @Log(title = "商品详情", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductDetailsScrm fsStoreProductDetails)
-    {
-        List<FsStoreProductDetailsScrm> list = fsStoreProductDetailsService.selectFsStoreProductDetailsList(fsStoreProductDetails);
-        ExcelUtil<FsStoreProductDetailsScrm> util = new ExcelUtil<FsStoreProductDetailsScrm>(FsStoreProductDetailsScrm.class);
-        return util.exportExcel(list, "storeProductDetails");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:query')")
-    @GetMapping(value = "/{detailsId}")
-    public AjaxResult getInfo(@PathVariable("detailsId") Long detailsId)
-    {
-        return AjaxResult.success(fsStoreProductDetailsService.selectFsStoreProductDetailsById(detailsId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:add')")
-    @Log(title = "商品详情", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductDetailsScrm fsStoreProductDetails)
-    {
-        return toAjax(fsStoreProductDetailsService.insertFsStoreProductDetails(fsStoreProductDetails));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:edit')")
-    @Log(title = "商品详情", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductDetailsScrm fsStoreProductDetails)
-    {
-        return toAjax(fsStoreProductDetailsService.updateFsStoreProductDetails(fsStoreProductDetails));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:remove')")
-    @Log(title = "商品详情", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{detailsIds}")
-    public AjaxResult remove(@PathVariable Long[] detailsIds)
-    {
-        return toAjax(fsStoreProductDetailsService.deleteFsStoreProductDetailsByIds(detailsIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductDetailsScrm;
+//import com.fs.hisStore.service.IFsStoreProductDetailsScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品详情 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductDetailsScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductDetails")
+//public class FsStoreProductDetailsScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductDetailsScrmService fsStoreProductDetailsService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductDetailsScrm fsStoreProductDetails)
+//    {
+//        startPage();
+//        List<FsStoreProductDetailsScrm> list = fsStoreProductDetailsService.selectFsStoreProductDetailsList(fsStoreProductDetails);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:export')")
+//    @Log(title = "商品详情", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductDetailsScrm fsStoreProductDetails)
+//    {
+//        List<FsStoreProductDetailsScrm> list = fsStoreProductDetailsService.selectFsStoreProductDetailsList(fsStoreProductDetails);
+//        ExcelUtil<FsStoreProductDetailsScrm> util = new ExcelUtil<FsStoreProductDetailsScrm>(FsStoreProductDetailsScrm.class);
+//        return util.exportExcel(list, "storeProductDetails");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:query')")
+//    @GetMapping(value = "/{detailsId}")
+//    public AjaxResult getInfo(@PathVariable("detailsId") Long detailsId)
+//    {
+//        return AjaxResult.success(fsStoreProductDetailsService.selectFsStoreProductDetailsById(detailsId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:add')")
+//    @Log(title = "商品详情", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductDetailsScrm fsStoreProductDetails)
+//    {
+//        return toAjax(fsStoreProductDetailsService.insertFsStoreProductDetails(fsStoreProductDetails));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:edit')")
+//    @Log(title = "商品详情", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductDetailsScrm fsStoreProductDetails)
+//    {
+//        return toAjax(fsStoreProductDetailsService.updateFsStoreProductDetails(fsStoreProductDetails));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductDetails:remove')")
+//    @Log(title = "商品详情", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{detailsIds}")
+//    public AjaxResult remove(@PathVariable Long[] detailsIds)
+//    {
+//        return toAjax(fsStoreProductDetailsService.deleteFsStoreProductDetailsByIds(detailsIds));
+//    }
+//}

+ 115 - 117
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductGroupScrmBridgeController.java

@@ -1,117 +1,115 @@
-package com.fs.admin.controller.store;
-
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONUtil;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductScrm;
-import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
-import com.fs.hisStore.domain.FsStoreProductGroupScrm;
-import com.fs.hisStore.dto.StoreProductGroupDTO;
-import com.fs.hisStore.service.IFsStoreProductAttrValueScrmService;
-import com.fs.hisStore.service.IFsStoreProductGroupScrmService;
-import com.fs.hisStore.service.IFsStoreProductScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品组合 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductGroupScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-11-23
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductGroup")
-public class FsStoreProductGroupScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductGroupScrmService fsStoreProductGroupService;
-    @Autowired
-    private IFsStoreProductAttrValueScrmService attrValueService;
-    @Autowired
-    private IFsStoreProductScrmService storeProductService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductGroupScrm fsStoreProductGroup)
-    {
-        startPage();
-        List<FsStoreProductGroupScrm> list = fsStoreProductGroupService.selectFsStoreProductGroupList(fsStoreProductGroup);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:export')")
-    @Log(title = "商品组合", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductGroupScrm fsStoreProductGroup)
-    {
-        List<FsStoreProductGroupScrm> list = fsStoreProductGroupService.selectFsStoreProductGroupList(fsStoreProductGroup);
-        ExcelUtil<FsStoreProductGroupScrm> util = new ExcelUtil<FsStoreProductGroupScrm>(FsStoreProductGroupScrm.class);
-        return util.exportExcel(list, "storeProductGroup");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:query')")
-    @GetMapping(value = "/{groupId}")
-    public AjaxResult getInfo(@PathVariable("groupId") Long groupId)
-    {
-        FsStoreProductGroupScrm storeProductGroup = fsStoreProductGroupService.selectFsStoreProductGroupById(groupId);
-        JSONArray jsonArray = JSONUtil.parseArray(storeProductGroup.getProducts());
-        List<StoreProductGroupDTO> productGroupDTOS = JSONUtil.toList(jsonArray, StoreProductGroupDTO.class);
-        for (StoreProductGroupDTO dto : productGroupDTOS) {
-            FsStoreProductAttrValueScrm attrValue = attrValueService.selectFsStoreProductAttrValueById(dto.getId());
-            if (attrValue != null) {
-                FsStoreProductScrm product = storeProductService.selectFsStoreProductById(attrValue.getProductId());
-                if (product != null) {
-                    dto.setProductId(attrValue.getProductId());
-                    dto.setId(dto.getId());
-                    dto.setBarCode(attrValue.getBarCode());
-                    dto.setPrice(attrValue.getPrice());
-                    dto.setCount(dto.getCount());
-                    dto.setSku(attrValue.getSku());
-                    dto.setImage(attrValue.getImage());
-                    dto.setProductName(product.getProductName());
-                }
-            }
-        }
-        storeProductGroup.setProductList(productGroupDTOS);
-        return AjaxResult.success(storeProductGroup);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:add')")
-    @Log(title = "商品组合", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductGroupScrm fsStoreProductGroup)
-    {
-        String products = JSONUtil.toJsonStr(fsStoreProductGroup.getProductList());
-        fsStoreProductGroup.setProducts(products);
-        return toAjax(fsStoreProductGroupService.insertFsStoreProductGroup(fsStoreProductGroup));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:edit')")
-    @Log(title = "商品组合", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductGroupScrm fsStoreProductGroup)
-    {
-        String products = JSONUtil.toJsonStr(fsStoreProductGroup.getProductList());
-        fsStoreProductGroup.setProducts(products);
-        return toAjax(fsStoreProductGroupService.updateFsStoreProductGroup(fsStoreProductGroup));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:remove')")
-    @Log(title = "商品组合", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{groupIds}")
-    public AjaxResult remove(@PathVariable Long[] groupIds)
-    {
-        return toAjax(fsStoreProductGroupService.deleteFsStoreProductGroupByIds(groupIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import cn.hutool.json.JSONArray;
+//import cn.hutool.json.JSONUtil;
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductScrm;
+//import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
+//import com.fs.hisStore.domain.FsStoreProductGroupScrm;
+//import com.fs.hisStore.dto.StoreProductGroupDTO;
+//import com.fs.hisStore.service.IFsStoreProductAttrValueScrmService;
+//import com.fs.hisStore.service.IFsStoreProductGroupScrmService;
+//import com.fs.hisStore.service.IFsStoreProductScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品组合 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductGroupScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-11-23
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductGroup")
+//public class FsStoreProductGroupScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductGroupScrmService fsStoreProductGroupService;
+//    @Autowired
+//    private IFsStoreProductAttrValueScrmService attrValueService;
+//    @Autowired
+//    private IFsStoreProductScrmService storeProductService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductGroupScrm fsStoreProductGroup)
+//    {
+//        startPage();
+//        List<FsStoreProductGroupScrm> list = fsStoreProductGroupService.selectFsStoreProductGroupList(fsStoreProductGroup);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:export')")
+//    @Log(title = "商品组合", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductGroupScrm fsStoreProductGroup)
+//    {
+//        List<FsStoreProductGroupScrm> list = fsStoreProductGroupService.selectFsStoreProductGroupList(fsStoreProductGroup);
+//        ExcelUtil<FsStoreProductGroupScrm> util = new ExcelUtil<FsStoreProductGroupScrm>(FsStoreProductGroupScrm.class);
+//        return util.exportExcel(list, "storeProductGroup");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:query')")
+//    @GetMapping(value = "/{groupId}")
+//    public AjaxResult getInfo(@PathVariable("groupId") Long groupId)
+//    {
+//        FsStoreProductGroupScrm storeProductGroup = fsStoreProductGroupService.selectFsStoreProductGroupById(groupId);
+//        JSONArray jsonArray = JSONUtil.parseArray(storeProductGroup.getProducts());
+//        List<StoreProductGroupDTO> productGroupDTOS = JSONUtil.toList(jsonArray, StoreProductGroupDTO.class);
+//        for (StoreProductGroupDTO dto : productGroupDTOS) {
+//            FsStoreProductAttrValueScrm attrValue = attrValueService.selectFsStoreProductAttrValueById(dto.getId());
+//            if (attrValue != null) {
+//                FsStoreProductScrm product = storeProductService.selectFsStoreProductById(attrValue.getProductId());
+//                if (product != null) {
+//                    dto.setProductId(attrValue.getProductId());
+//                    dto.setId(dto.getId());
+//                    dto.setBarCode(attrValue.getBarCode());
+//                    dto.setPrice(attrValue.getPrice());
+//                    dto.setCount(dto.getCount());
+//                    dto.setSku(attrValue.getSku());
+//                    dto.setImage(attrValue.getImage());
+//                    dto.setProductName(product.getProductName());
+//                }
+//            }
+//        }
+//        storeProductGroup.setProductList(productGroupDTOS);
+//        return AjaxResult.success(storeProductGroup);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:add')")
+//    @Log(title = "商品组合", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductGroupScrm fsStoreProductGroup)
+//    {
+//        String products = JSONUtil.toJsonStr(fsStoreProductGroup.getProductList());
+//        fsStoreProductGroup.setProducts(products);
+//        return toAjax(fsStoreProductGroupService.insertFsStoreProductGroup(fsStoreProductGroup));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:edit')")
+//    @Log(title = "商品组合", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductGroupScrm fsStoreProductGroup)
+//    {
+//        String products = JSONUtil.toJsonStr(fsStoreProductGroup.getProductList());
+//        fsStoreProductGroup.setProducts(products);
+//        return toAjax(fsStoreProductGroupService.updateFsStoreProductGroup(fsStoreProductGroup));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductGroup:remove')")
+//    @Log(title = "商品组合", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{groupIds}")
+//    public AjaxResult remove(@PathVariable Long[] groupIds)
+//    {
+//        return toAjax(fsStoreProductGroupService.deleteFsStoreProductGroupByIds(groupIds));
+//    }
+//}

+ 59 - 61
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductRelationScrmBridgeController.java

@@ -1,61 +1,59 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.param.FsStoreProductRelationParam;
-import com.fs.hisStore.service.IFsStoreProductRelationScrmService;
-import com.fs.hisStore.vo.FsStoreProductRelationQueryVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品点赞和收藏 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductRelationScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductRelation")
-public class FsStoreProductRelationScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductRelationScrmService fsStoreProductRelationService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRelation:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductRelationParam param)
-    {
-        startPage();
-        List<FsStoreProductRelationQueryVO> list = fsStoreProductRelationService.selectFsStoreProductRelationListVO(param);
-        for (FsStoreProductRelationQueryVO vo : list){
-            vo.setPhone(ParseUtils.parsePhone(vo.getPhone()));
-        }
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRelation:export')")
-    @Log(title = "商品浏览记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductRelationParam param)
-    {
-        List<FsStoreProductRelationQueryVO> list = fsStoreProductRelationService.selectFsStoreProductRelationListVO(param);
-        for (FsStoreProductRelationQueryVO vo : list){
-            vo.setPhone(ParseUtils.parsePhone(vo.getPhone()));
-        }
-        ExcelUtil<FsStoreProductRelationQueryVO> util = new ExcelUtil<FsStoreProductRelationQueryVO>(FsStoreProductRelationQueryVO.class);
-        return util.exportExcel(list, "商品浏览记录");
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.ParseUtils;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.param.FsStoreProductRelationParam;
+//import com.fs.hisStore.service.IFsStoreProductRelationScrmService;
+//import com.fs.hisStore.vo.FsStoreProductRelationQueryVO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import java.util.List;
+//
+///**
+// * 商品点赞和收藏 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductRelationScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductRelation")
+//public class FsStoreProductRelationScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductRelationScrmService fsStoreProductRelationService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRelation:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductRelationParam param)
+//    {
+//        startPage();
+//        List<FsStoreProductRelationQueryVO> list = fsStoreProductRelationService.selectFsStoreProductRelationListVO(param);
+//        for (FsStoreProductRelationQueryVO vo : list){
+//            vo.setPhone(ParseUtils.parsePhone(vo.getPhone()));
+//        }
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRelation:export')")
+//    @Log(title = "商品浏览记录", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductRelationParam param)
+//    {
+//        List<FsStoreProductRelationQueryVO> list = fsStoreProductRelationService.selectFsStoreProductRelationListVO(param);
+//        for (FsStoreProductRelationQueryVO vo : list){
+//            vo.setPhone(ParseUtils.parsePhone(vo.getPhone()));
+//        }
+//        ExcelUtil<FsStoreProductRelationQueryVO> util = new ExcelUtil<FsStoreProductRelationQueryVO>(FsStoreProductRelationQueryVO.class);
+//        return util.exportExcel(list, "商品浏览记录");
+//    }
+//}

+ 93 - 95
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductReplyScrmBridgeController.java

@@ -1,95 +1,93 @@
-package com.fs.admin.controller.store;
-
-import cn.hutool.core.date.DateTime;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductReplyScrm;
-import com.fs.hisStore.service.IFsStoreProductReplyScrmService;
-import com.fs.hisStore.vo.FsStoreProductReplyVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 评论 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductReplyScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductReply")
-public class FsStoreProductReplyScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductReplyScrmService fsStoreProductReplyService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductReplyScrm fsStoreProductReply)
-    {
-        startPage();
-        fsStoreProductReply.setIsDel(0);
-        List<FsStoreProductReplyVO> list = fsStoreProductReplyService.selectFsStoreProductReplyListVO(fsStoreProductReply);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:export')")
-    @Log(title = "评论", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductReplyScrm fsStoreProductReply)
-    {
-        List<FsStoreProductReplyScrm> list = fsStoreProductReplyService.selectFsStoreProductReplyList(fsStoreProductReply);
-        ExcelUtil<FsStoreProductReplyScrm> util = new ExcelUtil<FsStoreProductReplyScrm>(FsStoreProductReplyScrm.class);
-        return util.exportExcel(list, "storeProductReply");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreProductReplyService.selectFsStoreProductReplyById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:add')")
-    @Log(title = "评论", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductReplyScrm fsStoreProductReply)
-    {
-        return toAjax(fsStoreProductReplyService.insertFsStoreProductReply(fsStoreProductReply));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:edit')")
-    @Log(title = "评论", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductReplyScrm fsStoreProductReply)
-    {
-        return toAjax(fsStoreProductReplyService.updateFsStoreProductReply(fsStoreProductReply));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:remove')")
-    @Log(title = "评论", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreProductReplyService.deleteFsStoreProductReplyByIds(ids));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductReply:reply')")
-    @Log(title = "评论回复", businessType = BusinessType.INSERT)
-    @PostMapping("/reply")
-    public AjaxResult reply(@RequestBody FsStoreProductReplyScrm fsStoreProductReply)
-    {
-        fsStoreProductReply.setIsReply(1);
-        fsStoreProductReply.setReplyTime(new DateTime());
-        return toAjax(fsStoreProductReplyService.updateFsStoreProductReply(fsStoreProductReply));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import cn.hutool.core.date.DateTime;
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductReplyScrm;
+//import com.fs.hisStore.service.IFsStoreProductReplyScrmService;
+//import com.fs.hisStore.vo.FsStoreProductReplyVO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 评论 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductReplyScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductReply")
+//public class FsStoreProductReplyScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductReplyScrmService fsStoreProductReplyService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductReplyScrm fsStoreProductReply)
+//    {
+//        startPage();
+//        fsStoreProductReply.setIsDel(0);
+//        List<FsStoreProductReplyVO> list = fsStoreProductReplyService.selectFsStoreProductReplyListVO(fsStoreProductReply);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:export')")
+//    @Log(title = "评论", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductReplyScrm fsStoreProductReply)
+//    {
+//        List<FsStoreProductReplyScrm> list = fsStoreProductReplyService.selectFsStoreProductReplyList(fsStoreProductReply);
+//        ExcelUtil<FsStoreProductReplyScrm> util = new ExcelUtil<FsStoreProductReplyScrm>(FsStoreProductReplyScrm.class);
+//        return util.exportExcel(list, "storeProductReply");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreProductReplyService.selectFsStoreProductReplyById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:add')")
+//    @Log(title = "评论", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductReplyScrm fsStoreProductReply)
+//    {
+//        return toAjax(fsStoreProductReplyService.insertFsStoreProductReply(fsStoreProductReply));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:edit')")
+//    @Log(title = "评论", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductReplyScrm fsStoreProductReply)
+//    {
+//        return toAjax(fsStoreProductReplyService.updateFsStoreProductReply(fsStoreProductReply));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:remove')")
+//    @Log(title = "评论", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreProductReplyService.deleteFsStoreProductReplyByIds(ids));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductReply:reply')")
+//    @Log(title = "评论回复", businessType = BusinessType.INSERT)
+//    @PostMapping("/reply")
+//    public AjaxResult reply(@RequestBody FsStoreProductReplyScrm fsStoreProductReply)
+//    {
+//        fsStoreProductReply.setIsReply(1);
+//        fsStoreProductReply.setReplyTime(new DateTime());
+//        return toAjax(fsStoreProductReplyService.updateFsStoreProductReply(fsStoreProductReply));
+//    }
+//}

+ 101 - 103
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductRuleScrmBridgeController.java

@@ -1,103 +1,101 @@
-package com.fs.admin.controller.store;
-
-import cn.hutool.json.JSONUtil;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductRuleScrm;
-import com.fs.hisStore.param.FsStoreProductRuleParam;
-import com.fs.hisStore.service.IFsStoreProductRuleScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品规格 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductRuleScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductRule")
-public class FsStoreProductRuleScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductRuleScrmService fsStoreProductRuleService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRule:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductRuleScrm fsStoreProductRule)
-    {
-        startPage();
-        fsStoreProductRule.setIsDel(0);
-        List<FsStoreProductRuleScrm> list = fsStoreProductRuleService.selectFsStoreProductRuleList(fsStoreProductRule);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRule:export')")
-    @Log(title = "商品规格", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductRuleScrm fsStoreProductRule)
-    {
-        List<FsStoreProductRuleScrm> list = fsStoreProductRuleService.selectFsStoreProductRuleList(fsStoreProductRule);
-        ExcelUtil<FsStoreProductRuleScrm> util = new ExcelUtil<FsStoreProductRuleScrm>(FsStoreProductRuleScrm.class);
-        return util.exportExcel(list, "storeProductRule");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRule:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Integer id)
-    {
-        return AjaxResult.success(fsStoreProductRuleService.selectFsStoreProductRuleById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRule:add')")
-    @Log(title = "商品规格", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductRuleParam fsStoreProductRule)
-    {
-        FsStoreProductRuleScrm rule = new FsStoreProductRuleScrm();
-        rule.setRuleName(fsStoreProductRule.getRuleName());
-        rule.setRuleValue(JSONUtil.toJsonStr(fsStoreProductRule.getRuleValue()));
-        rule.setIsDel(0);
-        return toAjax(fsStoreProductRuleService.insertFsStoreProductRule(rule));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRule:edit')")
-    @Log(title = "商品规格", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductRuleParam fsStoreProductRule)
-    {
-        FsStoreProductRuleScrm rule = new FsStoreProductRuleScrm();
-        rule.setId(fsStoreProductRule.getId());
-        rule.setRuleName(fsStoreProductRule.getRuleName());
-        rule.setRuleValue(JSONUtil.toJsonStr(fsStoreProductRule.getRuleValue()));
-        rule.setIsDel(0);
-        return toAjax(fsStoreProductRuleService.updateFsStoreProductRule(rule));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductRule:remove')")
-    @Log(title = "商品规格", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Integer[] ids)
-    {
-        return toAjax(fsStoreProductRuleService.deleteFsStoreProductRuleByIds(ids));
-    }
-
-    @GetMapping("/getAllList")
-    public R getAllList(FsStoreProductRuleScrm fsStoreProductRule)
-    {
-        fsStoreProductRule.setIsDel(0);
-        List<FsStoreProductRuleScrm> list = fsStoreProductRuleService.selectFsStoreProductRuleList(fsStoreProductRule);
-        return R.ok().put("data", list);
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import cn.hutool.json.JSONUtil;
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductRuleScrm;
+//import com.fs.hisStore.param.FsStoreProductRuleParam;
+//import com.fs.hisStore.service.IFsStoreProductRuleScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品规格 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductRuleScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductRule")
+//public class FsStoreProductRuleScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductRuleScrmService fsStoreProductRuleService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRule:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductRuleScrm fsStoreProductRule)
+//    {
+//        startPage();
+//        fsStoreProductRule.setIsDel(0);
+//        List<FsStoreProductRuleScrm> list = fsStoreProductRuleService.selectFsStoreProductRuleList(fsStoreProductRule);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRule:export')")
+//    @Log(title = "商品规格", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductRuleScrm fsStoreProductRule)
+//    {
+//        List<FsStoreProductRuleScrm> list = fsStoreProductRuleService.selectFsStoreProductRuleList(fsStoreProductRule);
+//        ExcelUtil<FsStoreProductRuleScrm> util = new ExcelUtil<FsStoreProductRuleScrm>(FsStoreProductRuleScrm.class);
+//        return util.exportExcel(list, "storeProductRule");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRule:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Integer id)
+//    {
+//        return AjaxResult.success(fsStoreProductRuleService.selectFsStoreProductRuleById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRule:add')")
+//    @Log(title = "商品规格", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductRuleParam fsStoreProductRule)
+//    {
+//        FsStoreProductRuleScrm rule = new FsStoreProductRuleScrm();
+//        rule.setRuleName(fsStoreProductRule.getRuleName());
+//        rule.setRuleValue(JSONUtil.toJsonStr(fsStoreProductRule.getRuleValue()));
+//        rule.setIsDel(0);
+//        return toAjax(fsStoreProductRuleService.insertFsStoreProductRule(rule));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRule:edit')")
+//    @Log(title = "商品规格", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductRuleParam fsStoreProductRule)
+//    {
+//        FsStoreProductRuleScrm rule = new FsStoreProductRuleScrm();
+//        rule.setId(fsStoreProductRule.getId());
+//        rule.setRuleName(fsStoreProductRule.getRuleName());
+//        rule.setRuleValue(JSONUtil.toJsonStr(fsStoreProductRule.getRuleValue()));
+//        rule.setIsDel(0);
+//        return toAjax(fsStoreProductRuleService.updateFsStoreProductRule(rule));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductRule:remove')")
+//    @Log(title = "商品规格", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Integer[] ids)
+//    {
+//        return toAjax(fsStoreProductRuleService.deleteFsStoreProductRuleByIds(ids));
+//    }
+//
+//    @GetMapping("/getAllList")
+//    public R getAllList(FsStoreProductRuleScrm fsStoreProductRule)
+//    {
+//        fsStoreProductRule.setIsDel(0);
+//        List<FsStoreProductRuleScrm> list = fsStoreProductRuleService.selectFsStoreProductRuleList(fsStoreProductRule);
+//        return R.ok().put("data", list);
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreProductTemplateScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreProductTemplateScrm;
-import com.fs.hisStore.service.IFsStoreProductTemplateScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 商品模板 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreProductTemplateScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeProductTemplate")
-public class FsStoreProductTemplateScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreProductTemplateScrmService fsStoreProductTemplateService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreProductTemplateScrm fsStoreProductTemplate)
-    {
-        startPage();
-        List<FsStoreProductTemplateScrm> list = fsStoreProductTemplateService.selectFsStoreProductTemplateList(fsStoreProductTemplate);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:export')")
-    @Log(title = "商品模板", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreProductTemplateScrm fsStoreProductTemplate)
-    {
-        List<FsStoreProductTemplateScrm> list = fsStoreProductTemplateService.selectFsStoreProductTemplateList(fsStoreProductTemplate);
-        ExcelUtil<FsStoreProductTemplateScrm> util = new ExcelUtil<FsStoreProductTemplateScrm>(FsStoreProductTemplateScrm.class);
-        return util.exportExcel(list, "storeProductTemplate");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:query')")
-    @GetMapping(value = "/{tempId}")
-    public AjaxResult getInfo(@PathVariable("tempId") Long tempId)
-    {
-        return AjaxResult.success(fsStoreProductTemplateService.selectFsStoreProductTemplateById(tempId));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:add')")
-    @Log(title = "商品模板", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreProductTemplateScrm fsStoreProductTemplate)
-    {
-        return toAjax(fsStoreProductTemplateService.insertFsStoreProductTemplate(fsStoreProductTemplate));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:edit')")
-    @Log(title = "商品模板", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreProductTemplateScrm fsStoreProductTemplate)
-    {
-        return toAjax(fsStoreProductTemplateService.updateFsStoreProductTemplate(fsStoreProductTemplate));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:remove')")
-    @Log(title = "商品模板", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{tempIds}")
-    public AjaxResult remove(@PathVariable Long[] tempIds)
-    {
-        return toAjax(fsStoreProductTemplateService.deleteFsStoreProductTemplateByIds(tempIds));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreProductTemplateScrm;
+//import com.fs.hisStore.service.IFsStoreProductTemplateScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 商品模板 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreProductTemplateScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeProductTemplate")
+//public class FsStoreProductTemplateScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreProductTemplateScrmService fsStoreProductTemplateService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreProductTemplateScrm fsStoreProductTemplate)
+//    {
+//        startPage();
+//        List<FsStoreProductTemplateScrm> list = fsStoreProductTemplateService.selectFsStoreProductTemplateList(fsStoreProductTemplate);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:export')")
+//    @Log(title = "商品模板", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreProductTemplateScrm fsStoreProductTemplate)
+//    {
+//        List<FsStoreProductTemplateScrm> list = fsStoreProductTemplateService.selectFsStoreProductTemplateList(fsStoreProductTemplate);
+//        ExcelUtil<FsStoreProductTemplateScrm> util = new ExcelUtil<FsStoreProductTemplateScrm>(FsStoreProductTemplateScrm.class);
+//        return util.exportExcel(list, "storeProductTemplate");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:query')")
+//    @GetMapping(value = "/{tempId}")
+//    public AjaxResult getInfo(@PathVariable("tempId") Long tempId)
+//    {
+//        return AjaxResult.success(fsStoreProductTemplateService.selectFsStoreProductTemplateById(tempId));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:add')")
+//    @Log(title = "商品模板", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreProductTemplateScrm fsStoreProductTemplate)
+//    {
+//        return toAjax(fsStoreProductTemplateService.insertFsStoreProductTemplate(fsStoreProductTemplate));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:edit')")
+//    @Log(title = "商品模板", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreProductTemplateScrm fsStoreProductTemplate)
+//    {
+//        return toAjax(fsStoreProductTemplateService.updateFsStoreProductTemplate(fsStoreProductTemplate));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeProductTemplate:remove')")
+//    @Log(title = "商品模板", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{tempIds}")
+//    public AjaxResult remove(@PathVariable Long[] tempIds)
+//    {
+//        return toAjax(fsStoreProductTemplateService.deleteFsStoreProductTemplateByIds(tempIds));
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreRecommendScrmBridgeController.java

@@ -11,7 +11,6 @@ import com.fs.hisStore.service.IFsStoreRecommendScrmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -22,7 +21,6 @@ import java.util.List;
  * @author fs
  * @date 2023-06-15
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/store/store/recommend")
 public class FsStoreRecommendScrmBridgeController extends BaseController

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreShopStaffScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreShopStaffScrm;
-import com.fs.hisStore.service.IFsStoreShopStaffScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 门店店员 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreShopStaffScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeShopStaff")
-public class FsStoreShopStaffScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreShopStaffScrmService fsStoreShopStaffService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreShopStaffScrm fsStoreShopStaff)
-    {
-        startPage();
-        List<FsStoreShopStaffScrm> list = fsStoreShopStaffService.selectFsStoreShopStaffList(fsStoreShopStaff);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:export')")
-    @Log(title = "门店店员", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreShopStaffScrm fsStoreShopStaff)
-    {
-        List<FsStoreShopStaffScrm> list = fsStoreShopStaffService.selectFsStoreShopStaffList(fsStoreShopStaff);
-        ExcelUtil<FsStoreShopStaffScrm> util = new ExcelUtil<FsStoreShopStaffScrm>(FsStoreShopStaffScrm.class);
-        return util.exportExcel(list, "storeShopStaff");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreShopStaffService.selectFsStoreShopStaffById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:add')")
-    @Log(title = "门店店员", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreShopStaffScrm fsStoreShopStaff)
-    {
-        return toAjax(fsStoreShopStaffService.insertFsStoreShopStaff(fsStoreShopStaff));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:edit')")
-    @Log(title = "门店店员", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreShopStaffScrm fsStoreShopStaff)
-    {
-        return toAjax(fsStoreShopStaffService.updateFsStoreShopStaff(fsStoreShopStaff));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:remove')")
-    @Log(title = "门店店员", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreShopStaffService.deleteFsStoreShopStaffByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreShopStaffScrm;
+//import com.fs.hisStore.service.IFsStoreShopStaffScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 门店店员 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreShopStaffScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeShopStaff")
+//public class FsStoreShopStaffScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreShopStaffScrmService fsStoreShopStaffService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreShopStaffScrm fsStoreShopStaff)
+//    {
+//        startPage();
+//        List<FsStoreShopStaffScrm> list = fsStoreShopStaffService.selectFsStoreShopStaffList(fsStoreShopStaff);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:export')")
+//    @Log(title = "门店店员", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreShopStaffScrm fsStoreShopStaff)
+//    {
+//        List<FsStoreShopStaffScrm> list = fsStoreShopStaffService.selectFsStoreShopStaffList(fsStoreShopStaff);
+//        ExcelUtil<FsStoreShopStaffScrm> util = new ExcelUtil<FsStoreShopStaffScrm>(FsStoreShopStaffScrm.class);
+//        return util.exportExcel(list, "storeShopStaff");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreShopStaffService.selectFsStoreShopStaffById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:add')")
+//    @Log(title = "门店店员", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreShopStaffScrm fsStoreShopStaff)
+//    {
+//        return toAjax(fsStoreShopStaffService.insertFsStoreShopStaff(fsStoreShopStaff));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:edit')")
+//    @Log(title = "门店店员", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreShopStaffScrm fsStoreShopStaff)
+//    {
+//        return toAjax(fsStoreShopStaffService.updateFsStoreShopStaff(fsStoreShopStaff));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeShopStaff:remove')")
+//    @Log(title = "门店店员", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreShopStaffService.deleteFsStoreShopStaffByIds(ids));
+//    }
+//}

+ 80 - 82
fs-agent/src/main/java/com/fs/admin/controller/store/FsStoreVisitScrmBridgeController.java

@@ -1,82 +1,80 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.FsStoreVisitScrm;
-import com.fs.hisStore.service.IFsStoreVisitScrmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 产品浏览分析 Bridge Controller (fs-admin端)
- * 桥接 hisStore.FsStoreVisitScrmController,供平台总后台跨租户管理
- *
- * @author fs
- * @date 2022-03-15
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/store/storeVisit")
-public class FsStoreVisitScrmBridgeController extends BaseController
-{
-    @Autowired
-    private IFsStoreVisitScrmService fsStoreVisitService;
-
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(FsStoreVisitScrm fsStoreVisit)
-    {
-        startPage();
-        List<FsStoreVisitScrm> list = fsStoreVisitService.selectFsStoreVisitList(fsStoreVisit);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:export')")
-    @Log(title = "产品浏览分析", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsStoreVisitScrm fsStoreVisit)
-    {
-        List<FsStoreVisitScrm> list = fsStoreVisitService.selectFsStoreVisitList(fsStoreVisit);
-        ExcelUtil<FsStoreVisitScrm> util = new ExcelUtil<FsStoreVisitScrm>(FsStoreVisitScrm.class);
-        return util.exportExcel(list, "storeVisit");
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsStoreVisitService.selectFsStoreVisitById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:add')")
-    @Log(title = "产品浏览分析", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsStoreVisitScrm fsStoreVisit)
-    {
-        return toAjax(fsStoreVisitService.insertFsStoreVisit(fsStoreVisit));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:edit')")
-    @Log(title = "产品浏览分析", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsStoreVisitScrm fsStoreVisit)
-    {
-        return toAjax(fsStoreVisitService.updateFsStoreVisit(fsStoreVisit));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeVisit:remove')")
-    @Log(title = "产品浏览分析", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsStoreVisitService.deleteFsStoreVisitByIds(ids));
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.FsStoreVisitScrm;
+//import com.fs.hisStore.service.IFsStoreVisitScrmService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 产品浏览分析 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.FsStoreVisitScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// * @date 2022-03-15
+// */
+//@RestController
+//@RequestMapping("/store/store/storeVisit")
+//public class FsStoreVisitScrmBridgeController extends BaseController
+//{
+//    @Autowired
+//    private IFsStoreVisitScrmService fsStoreVisitService;
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsStoreVisitScrm fsStoreVisit)
+//    {
+//        startPage();
+//        List<FsStoreVisitScrm> list = fsStoreVisitService.selectFsStoreVisitList(fsStoreVisit);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:export')")
+//    @Log(title = "产品浏览分析", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsStoreVisitScrm fsStoreVisit)
+//    {
+//        List<FsStoreVisitScrm> list = fsStoreVisitService.selectFsStoreVisitList(fsStoreVisit);
+//        ExcelUtil<FsStoreVisitScrm> util = new ExcelUtil<FsStoreVisitScrm>(FsStoreVisitScrm.class);
+//        return util.exportExcel(list, "storeVisit");
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsStoreVisitService.selectFsStoreVisitById(id));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:add')")
+//    @Log(title = "产品浏览分析", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsStoreVisitScrm fsStoreVisit)
+//    {
+//        return toAjax(fsStoreVisitService.insertFsStoreVisit(fsStoreVisit));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:edit')")
+//    @Log(title = "产品浏览分析", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsStoreVisitScrm fsStoreVisit)
+//    {
+//        return toAjax(fsStoreVisitService.updateFsStoreVisit(fsStoreVisit));
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('store:storeVisit:remove')")
+//    @Log(title = "产品浏览分析", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsStoreVisitService.deleteFsStoreVisitByIds(ids));
+//    }
+//}

+ 0 - 2
fs-agent/src/main/java/com/fs/admin/controller/store/FsUserPromoterApplyScrmBridgeController.java

@@ -13,7 +13,6 @@ import com.fs.hisStore.vo.FsUserPromoterApplyVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
 
 import java.util.List;
 
@@ -24,7 +23,6 @@ import java.util.List;
  * @author fs
  * @date 2023-02-28
  */
-@Profile("admin")
 @RestController
 @RequestMapping("/store/store/userPromoterApply")
 public class FsUserPromoterApplyScrmBridgeController extends BaseController

+ 61 - 63
fs-agent/src/main/java/com/fs/admin/controller/store/SysOperlogScrmBridgeController.java

@@ -1,63 +1,61 @@
-package com.fs.admin.controller.store;
-
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.domain.SysOperLogScrm;
-import com.fs.hisStore.param.StoreOperMainQueryParam;
-import com.fs.hisStore.service.ISysOperLogScrmService;
-import com.fs.hisStore.vo.StoreOperMainVO;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.context.annotation.Profile;
-
-import java.util.List;
-
-/**
- * 操作日志 Bridge Controller (fs-admin端)
- * 桥接 hisStore.SysOperlogScrmController,供平台总后台跨租户管理
- *
- * @author fs
- */
-@Profile("admin")
-@RestController
-@RequestMapping("/store/operlogScrm")
-public class SysOperlogScrmBridgeController extends BaseController
-{
-    private final ISysOperLogScrmService operLogService;
-
-    public SysOperlogScrmBridgeController(ISysOperLogScrmService operLogService) {
-        this.operLogService = operLogService;
-    }
-
-    @PreAuthorize("@ss.hasPermi('his:storeLog:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SysOperLogScrm operLog)
-    {
-        startPage();
-        List<SysOperLogScrm> list = operLogService.selectOperLogList(operLog);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('his:storeLog:list')")
-    @GetMapping("/getMains")
-    public R getMains(StoreOperMainQueryParam operLog)
-    {
-        List<StoreOperMainVO> list = operLogService.getMains(operLog);
-        return R.ok().put("data", list);
-    }
-
-    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermi('his:storeLog:export')")
-    @GetMapping("/export")
-    public AjaxResult export(SysOperLogScrm operLog)
-    {
-        List<SysOperLogScrm> list = operLogService.selectOperLogList(operLog);
-        ExcelUtil<SysOperLogScrm> util = new ExcelUtil<>(SysOperLogScrm.class);
-        return util.exportExcel(list, "操作日志");
-    }
-}
+//package com.fs.admin.controller.store;
+//
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.domain.R;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.hisStore.domain.SysOperLogScrm;
+//import com.fs.hisStore.param.StoreOperMainQueryParam;
+//import com.fs.hisStore.service.ISysOperLogScrmService;
+//import com.fs.hisStore.vo.StoreOperMainVO;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 操作日志 Bridge Controller (fs-admin端)
+// * 桥接 hisStore.SysOperlogScrmController,供平台总后台跨租户管理
+// *
+// * @author fs
+// */
+//@RestController
+//@RequestMapping("/store/operlogScrm")
+//public class SysOperlogScrmBridgeController extends BaseController
+//{
+//    private final ISysOperLogScrmService operLogService;
+//
+//    public SysOperlogScrmBridgeController(ISysOperLogScrmService operLogService) {
+//        this.operLogService = operLogService;
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('his:storeLog:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(SysOperLogScrm operLog)
+//    {
+//        startPage();
+//        List<SysOperLogScrm> list = operLogService.selectOperLogList(operLog);
+//        return getDataTable(list);
+//    }
+//
+//    @PreAuthorize("@ss.hasPermi('his:storeLog:list')")
+//    @GetMapping("/getMains")
+//    public R getMains(StoreOperMainQueryParam operLog)
+//    {
+//        List<StoreOperMainVO> list = operLogService.getMains(operLog);
+//        return R.ok().put("data", list);
+//    }
+//
+//    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
+//    @PreAuthorize("@ss.hasPermi('his:storeLog:export')")
+//    @GetMapping("/export")
+//    public AjaxResult export(SysOperLogScrm operLog)
+//    {
+//        List<SysOperLogScrm> list = operLogService.selectOperLogList(operLog);
+//        ExcelUtil<SysOperLogScrm> util = new ExcelUtil<>(SysOperLogScrm.class);
+//        return util.exportExcel(list, "操作日志");
+//    }
+//}

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels