boss пре 2 недеља
родитељ
комит
192f910351
65 измењених фајлова са 225 додато и 6465 уклоњено
  1. 27 0
      fs-admin/pom.xml
  2. 2 1
      fs-admin/src/main/java/com/fs/FSApplication.java
  3. 0 99
      fs-admin/src/main/java/com/fs/admin/controller/AdminMissingStubsController.java
  4. 1 1
      fs-admin/src/main/java/com/fs/admin/controller/CompanyAdminController.java
  5. 0 9
      fs-admin/src/main/java/com/fs/chat/param/ChatUploadFileCParam.java
  6. 43 0
      fs-admin/src/main/java/com/fs/config/RedissonConfig.java
  7. 0 12
      fs-admin/src/main/java/com/fs/his/param/BatchCreateErpOrderParam.java
  8. 0 13
      fs-admin/src/main/java/com/fs/his/param/BatchSetErpOrderParam.java
  9. 0 24
      fs-admin/src/main/java/com/fs/his/param/FsDoctorEditParam.java
  10. 0 12
      fs-admin/src/main/java/com/fs/his/param/FsDoctorPwParam.java
  11. 0 247
      fs-admin/src/main/java/com/fs/his/param/FurtherConsultationParam.java
  12. 0 329
      fs-admin/src/main/java/com/fs/his/param/PrescriptionParam.java
  13. 14 14
      fs-admin/src/main/java/com/fs/live/controller/LiveAfterSalesController.java
  14. 1 1
      fs-admin/src/main/java/com/fs/live/controller/LiveController.java
  15. 1 1
      fs-admin/src/main/java/com/fs/live/controller/LiveDataController.java
  16. 4 4
      fs-admin/src/main/java/com/fs/live/controller/LiveGoodsController.java
  17. 4 4
      fs-admin/src/main/java/com/fs/live/controller/LiveMsgController.java
  18. 1 1
      fs-admin/src/main/java/com/fs/live/controller/LiveOrderController.java
  19. 4 4
      fs-admin/src/main/java/com/fs/live/controller/OrderController.java
  20. 0 266
      fs-admin/src/main/java/com/fs/live/live/controller/LiveAfterSalesController.java
  21. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveAfterSalesItemController.java
  22. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveAfterSalesLogsController.java
  23. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveAnchorController.java
  24. 0 227
      fs-admin/src/main/java/com/fs/live/live/controller/LiveAutoTaskController.java
  25. 0 98
      fs-admin/src/main/java/com/fs/live/live/controller/LiveCartController.java
  26. 0 234
      fs-admin/src/main/java/com/fs/live/live/controller/LiveController.java
  27. 0 227
      fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponController.java
  28. 0 103
      fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponIssueController.java
  29. 0 103
      fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponIssueUserController.java
  30. 0 105
      fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponUserController.java
  31. 0 193
      fs-admin/src/main/java/com/fs/live/live/controller/LiveDataController.java
  32. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveEventConfController.java
  33. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveGiftController.java
  34. 0 181
      fs-admin/src/main/java/com/fs/live/live/controller/LiveGoodsController.java
  35. 0 419
      fs-admin/src/main/java/com/fs/live/live/controller/LiveHealthOrderController.java
  36. 0 143
      fs-admin/src/main/java/com/fs/live/live/controller/LiveLotteryConfController.java
  37. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveLotteryRecordController.java
  38. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveLotteryRegistrationController.java
  39. 0 133
      fs-admin/src/main/java/com/fs/live/live/controller/LiveMsgController.java
  40. 0 805
      fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderController.java
  41. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderItemController.java
  42. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderLogsController.java
  43. 0 118
      fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderPaymentController.java
  44. 0 125
      fs-admin/src/main/java/com/fs/live/live/controller/LiveRedConfController.java
  45. 0 4
      fs-admin/src/main/java/com/fs/live/live/controller/LiveRedController.java
  46. 0 125
      fs-admin/src/main/java/com/fs/live/live/controller/LiveRewardRecordController.java
  47. 0 98
      fs-admin/src/main/java/com/fs/live/live/controller/LiveSensitiveWordsController.java
  48. 0 122
      fs-admin/src/main/java/com/fs/live/live/controller/LiveTrafficLogController.java
  49. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveUserFavoriteController.java
  50. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveUserFollowController.java
  51. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveUserLikeController.java
  52. 0 108
      fs-admin/src/main/java/com/fs/live/live/controller/LiveUserLotteryRecordController.java
  53. 0 97
      fs-admin/src/main/java/com/fs/live/live/controller/LiveUserRedRecordController.java
  54. 0 120
      fs-admin/src/main/java/com/fs/live/live/controller/LiveVideoController.java
  55. 0 356
      fs-admin/src/main/java/com/fs/live/live/controller/OrderController.java
  56. 18 4
      fs-admin/src/main/java/com/fs/tenant/upgrade/service/impl/TenantUpgradeServiceImpl.java
  57. 2 2
      fs-admin/src/main/java/com/fs/web/controller/monitor/SysUserOnlineController.java
  58. 12 8
      fs-admin/src/main/java/com/fs/web/controller/system/SysKeywordController.java
  59. 28 0
      fs-service/src/main/java/com/fs/company/domain/Company.java
  60. 8 0
      fs-service/src/main/java/com/fs/company/mapper/CompanyMapper.java
  61. 8 0
      fs-service/src/main/java/com/fs/company/service/ICompanyService.java
  62. 12 0
      fs-service/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java
  63. 1 0
      fs-service/src/main/java/com/fs/his/param/BatchCreateErpOrderParam.java
  64. 33 0
      fs-service/src/main/resources/mapper/company/CompanyMapper.xml
  65. 1 1
      pom.xml

+ 27 - 0
fs-admin/pom.xml

@@ -142,6 +142,33 @@
 
     <build>
         <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.11.0</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>${project.build.sourceEncoding}</encoding>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                            <version>${lombok.version}</version>
+                        </path>
+                        <path>
+                            <groupId>org.mapstruct</groupId>
+                            <artifactId>mapstruct-processor</artifactId>
+                            <version>${org.mapstruct.version}</version>
+                        </path>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok-mapstruct-binding</artifactId>
+                            <version>0.2.0</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>

+ 2 - 1
fs-admin/src/main/java/com/fs/FSApplication.java

@@ -4,6 +4,7 @@ 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;
@@ -13,7 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
 /**
  * 启动程序
  */
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, RedissonAutoConfiguration.class})
 @ComponentScan(
     basePackages = "com.fs",
     nameGenerator = OverridingBeanNameGenerator.class,

+ 0 - 99
fs-admin/src/main/java/com/fs/admin/controller/AdminMissingStubsController.java

@@ -1,99 +0,0 @@
-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 端补全缺失模块的存根控制器
- * 仅在 fs-admin (8004) 加载(fs-company 通过 ComponentScan 排除 com.fs.admin.controller.*)
- *
- * 覆盖:
- *   - 代理核心 4 项:proxy/balance, proxy/info, proxy/dashboard, proxy/moduleUsage
- *   - AI 客服 8 项:chat/chatKeyword, chatDataset, chatRole, chatSession, chatMsg,
- *                    chatMsgLogs, chatDatasetFile, chatUser
- *   - 系统审批 1 项:system/approval(会员转移记录)
- */
-@RestController
-public class AdminMissingStubsController extends BaseController {
-
-    @Autowired(required = false)
-    private JdbcTemplate jdbcTemplate;
-
-    private TableDataInfo emptyTable() {
-        TableDataInfo r = new TableDataInfo();
-        r.setCode(200);
-        r.setMsg("查询成功");
-        r.setRows(new ArrayList<>());
-        r.setTotal(0);
-        return r;
-    }
-
-    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 + " LIMIT 100");
-                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;
-    }
-
-    // ========== 代理 proxy 核心 ==========
-    @GetMapping("/proxy/balance/list")
-    public TableDataInfo proxyBalance() { return safeListFromTable("proxy_balance"); }
-
-    @GetMapping("/proxy/info/list")
-    public TableDataInfo proxyInfo() { return safeListFromTable("proxy_info"); }
-
-    @GetMapping("/proxy/dashboard/list")
-    public TableDataInfo proxyDashboard() { return safeListFromTable("proxy"); }
-
-    @GetMapping("/proxy/moduleUsage/list")
-    public TableDataInfo proxyModuleUsage() { return safeListFromTable("proxy_module_usage"); }
-
-    // ========== AI 客服 chat/* ==========
-    @GetMapping("/chat/chatKeyword/list")
-    public TableDataInfo chatKeyword() { return safeListFromTable("chat_keyword"); }
-
-    @GetMapping("/chat/chatDataset/list")
-    public TableDataInfo chatDataset() { return safeListFromTable("chat_dataset"); }
-
-    @GetMapping("/chat/chatRole/list")
-    public TableDataInfo chatRole() { return safeListFromTable("chat_role"); }
-
-    @GetMapping("/chat/chatSession/list")
-    public TableDataInfo chatSession() { return safeListFromTable("chat_session"); }
-
-    @GetMapping("/chat/chatMsg/list")
-    public TableDataInfo chatMsg() { return safeListFromTable("chat_msg"); }
-
-    @GetMapping("/chat/chatMsgLogs/list")
-    public TableDataInfo chatMsgLogs() { return safeListFromTable("chat_msg_logs"); }
-
-    @GetMapping("/chat/chatDatasetFile/list")
-    public TableDataInfo chatDatasetFile() { return safeListFromTable("chat_dataset_file"); }
-
-    @GetMapping("/chat/chatUser/list")
-    public TableDataInfo chatUser() { return safeListFromTable("chat_user"); }
-
-    // ========== 系统审批 ==========
-    @GetMapping("/system/approval/list")
-    public TableDataInfo systemApproval() { return safeListFromTable("sys_approval"); }
-}

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

@@ -31,7 +31,7 @@ public class CompanyAdminController extends BaseController {
     @GetMapping("/list")
     public TableDataInfo list(Company company) {
         startPage();
-        List<Company> list = companyService.selectCompanyList(company);
+        List<Company> list = companyService.selectCompanyListWithStats(company);
         return getDataTable(list);
     }
 

+ 0 - 9
fs-admin/src/main/java/com/fs/chat/param/ChatUploadFileCParam.java

@@ -1,9 +0,0 @@
-package com.fs.chat.param;
-
-import lombok.Data;
-
-@Data
-public class ChatUploadFileCParam {
-    String mediaId;
-    Long companyId;
-}

+ 43 - 0
fs-admin/src/main/java/com/fs/config/RedissonConfig.java

@@ -0,0 +1,43 @@
+package com.fs.config;
+
+import org.redisson.Redisson;
+import org.redisson.api.RedissonClient;
+import org.redisson.config.Config;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 手动配置RedissonClient,仅用于分布式锁。
+ * 排除RedissonAutoConfiguration后,避免Redisson接管RedisTemplate的连接工厂。
+ */
+@Configuration
+public class RedissonConfig {
+
+    @Value("${spring.redis.host:localhost}")
+    private String host;
+
+    @Value("${spring.redis.port:6379}")
+    private int port;
+
+    @Value("${spring.redis.password:}")
+    private String password;
+
+    @Value("${spring.redis.database:0}")
+    private int database;
+
+    @Bean(destroyMethod = "shutdown")
+    public RedissonClient redissonClient() {
+        Config config = new Config();
+        String address = "redis://" + host + ":" + port;
+        config.useSingleServer()
+                .setAddress(address)
+                .setDatabase(database)
+                .setConnectionMinimumIdleSize(1)
+                .setConnectionPoolSize(4);
+        if (password != null && !password.isEmpty()) {
+            config.useSingleServer().setPassword(password);
+        }
+        return Redisson.create(config);
+    }
+}

+ 0 - 12
fs-admin/src/main/java/com/fs/his/param/BatchCreateErpOrderParam.java

@@ -1,12 +0,0 @@
-package com.fs.his.param;
-
-import lombok.Data;
-
-import java.util.List;
-@Data
-public class BatchCreateErpOrderParam {
-    private List<Long> orderIds;
-    private String loginAccount;
-    private Integer parcelQuantity; //包裹数量
-    private List<String> erpPhones;
-}

+ 0 - 13
fs-admin/src/main/java/com/fs/his/param/BatchSetErpOrderParam.java

@@ -1,13 +0,0 @@
-package com.fs.his.param;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class BatchSetErpOrderParam {
-    private List<Long> orderIds;
-    private String loginAccount;
-    private Integer parcelQuantity; //包裹数量
-    private List<String> erpPhones;
-}

+ 0 - 24
fs-admin/src/main/java/com/fs/his/param/FsDoctorEditParam.java

@@ -1,24 +0,0 @@
-package com.fs.his.param;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fs.common.annotation.Excel;
-import lombok.Data;
-
-import java.util.Date;
-
-@Data
-public class FsDoctorEditParam {
-    /** ID */
-    private Long doctorId;
-
-    /** 是否审核 */
-
-    private Integer isAudit;
-    /** 审核时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date auditTime;
-
-    /** 备注 */
-    private String remark;
-
-}

+ 0 - 12
fs-admin/src/main/java/com/fs/his/param/FsDoctorPwParam.java

@@ -1,12 +0,0 @@
-package com.fs.his.param;
-
-import com.fs.common.annotation.Excel;
-import lombok.Data;
-
-@Data
-public class FsDoctorPwParam {
-    /** ID */
-    private Long doctorId;
-
-    private String password;
-}

+ 0 - 247
fs-admin/src/main/java/com/fs/his/param/FurtherConsultationParam.java

@@ -1,247 +0,0 @@
-package com.fs.his.param;
-
-import lombok.Builder;
-import lombok.Data;
-
-/**
- * 复诊信息实体请求参数
- */
-@Data
-@Builder
-public class FurtherConsultationParam {
-
-    /**
-     * 接口调用凭证,可能不用传
-     */
-    private String accessToken;
-
-    /**
-     * 第三方厂商标识
-     */
-    private String clientId;
-
-    /**
-     * 唯一标识,用于唯一确定某条记录,避免重复上传,一般传该条数据的主键
-     */
-    private String thirdUniqueid;
-
-    /**
-     * 机构名称
-     */
-    private String orgName;
-
-    /**
-     * 机构编码,组织机构代码
-     */
-    private String orgCode;
-
-    /**
-     * 诊疗渠道,平台名称
-     */
-    private String channelName;
-
-    /**
-     * 复诊科室
-     */
-    private String section;
-
-    /**
-     * 科室编码,三医
-     */
-    private String sectionCode;
-
-    /**
-     * 复诊医师姓名
-     */
-    private String docName;
-
-    /**
-     * 执业资格证号
-     */
-    private String certificateNum;
-
-    /**
-     * 患者姓名
-     */
-    private String patientName;
-
-    /**
-     * 患者年龄,低于6岁为低龄儿童
-     */
-    private Integer patientAge;
-
-    /**
-     * 患者性别,1男/2女
-     */
-    private String patientSex;
-
-    /**
-     * 证件类型,1 身份证  2 护照
-     */
-    private Integer patientIdcardType;
-
-    /**
-     * 患者证件号码,18位
-     */
-    private String patientIdcardNum;
-
-    /**
-     * 网络复诊编号
-     */
-    private String furtherConsultNo;
-
-    /**
-     * 复诊类别,1、图文诊疗 2语音诊疗 3、视频诊疗
-     */
-    private Integer furtherConsulType;
-
-    /**
-     * 监护人姓名,患者年龄小于6岁,需填此项
-     */
-    private String guardianName;
-
-    /**
-     * 监护人身份证号,患者年龄小于6岁,需填此项
-     */
-    private String guardianIdcardNum;
-
-    /**
-     * 患者简要病史描述,病史摘要
-     */
-    private String medicalHistory;
-
-    /**
-     * 首诊诊断类型,1文字 2图片jpg格式 3图片png格式 4图片bmp格式
-     */
-    private Integer consultDiagnosisType;
-
-    /**
-     * 首诊诊断,复诊患者在首诊医院的诊断,如有多条,使用"|"进行分隔;当传图片时,需要传图片的base64字符串
-     */
-    private String consultDiagnosis;
-
-    /**
-     * 首诊时间,YYYY-MM-DD HH:mm:ss
-     */
-    private String consultTime;
-
-    /**
-     * 首诊机构
-     */
-    private String consultOrg;
-
-    /**
-     * 复诊申请时间,YYYY-MM-DD HH:mm:ss
-     */
-    private String furtherConsultApplyTime;
-
-    /**
-     * 复诊开始时间,YYYY-MM-DD HH:mm:ss
-     */
-    private String furtherConsulStartTime;
-
-    /**
-     * 复诊结束时间,YYYY-MM-DD HH:mm:ss
-     */
-    private String furtherConsulEndTime;
-
-    /**
-     * 复诊是否回复,0未回复 1已回复
-     */
-    private Integer furtherConsulIsReply;
-
-    /**
-     * 费别,1自费 2医保
-     */
-    private Integer feeType;
-
-    /**
-     * 复诊诊断,复诊患者在实体医院的诊断名称,如有多条,使用"|"进行分隔
-     */
-    private String furtherConsultDiagnosis;
-
-    /**
-     * 复诊icd诊断编码
-     */
-    private String furtherConsultDiagnosisNo;
-
-    /**
-     * 复诊价格,单位:元
-     */
-    private Double furtherConsultPrice;
-
-    /**
-     * 患者满意度,1-5,1代表非常满意,5代表非常不满意
-     */
-    private Integer patientEvaluate;
-
-    /**
-     * 投诉举报信息,文本信息
-     */
-    private String complainInfo;
-
-    /**
-     * 处理结果信息,文本信息
-     */
-    private String disposeResult;
-
-    /**
-     * 是否进行诊前风险提示,0否 1是
-     */
-    private Integer isRiskWarn;
-
-    /**
-     * 是否确认患者为签约对象,0否 1是
-     */
-    private Integer isPatientSign;
-
-    /**
-     * 是否开具处方,0否 1是
-     */
-    private Integer isPrescription;
-
-    /**
-     * 上传时间,YYYY-MM-DD HH:mm:ss
-     */
-    private String uploadTime;
-
-    /**
-     * 复诊拒绝时间
-     */
-    private String furtherConsultRefuseTime;
-
-    /**
-     * 复诊拒绝类别,1医生主动拒绝 2超时未回复系统自动拒绝
-     */
-    private Integer furtherConsultRefuseType;
-
-    /**
-     * 复诊拒绝、取消原因
-     */
-    private String furtherConsultRefuseReason;
-
-    /**
-     * ca登录值
-     */
-    private String caLoginSign;
-
-    /**
-     * ca登录时间,YYYY-MM-DD HH:mm:ss
-     */
-    private String caLoginTime;
-
-    /**
-     * 城市id(参考地区字段)
-     */
-    private String cityId;
-
-    /**
-     * 年
-     */
-    private String year;
-
-    /**
-     * 是否留痕,1:代表留痕;0代表未留痕
-     */
-    private String isMark;
-}

+ 0 - 329
fs-admin/src/main/java/com/fs/his/param/PrescriptionParam.java

@@ -1,329 +0,0 @@
-package com.fs.his.param;
-
-import lombok.Builder;
-import lombok.Data;
-
-/**
- * 电子处方信息上传请求参数
- */
-@Data
-@Builder
-public class PrescriptionParam {
-
-    /**
-     * 接口调用凭证
-     */
-    private String accessToken;
-
-    /**
-     * 第三方厂商标识
-     */
-    private String clientId;
-
-    /**
-     * 唯一标识,用于唯一确定某条记录,避免重复上传,一般传该条数据的主键
-     */
-    private String thirdUniqueid;
-
-    /**
-     * 机构名称
-     */
-    private String orgName;
-
-    /**
-     * 机构编码
-     */
-    private String orgCode;
-
-    /**
-     * 科室名称
-     */
-    private String section;
-
-    /**
-     * 科室编码
-     */
-    private String sectionCode;
-
-    /**
-     * 医师姓名
-     */
-    private String docName;
-
-    /**
-     * 医师执业资格证号
-     */
-    private String docCertificateNum;
-
-    /**
-     * 药师姓名
-     */
-    private String pharmacistName;
-
-    /**
-     * 药师执业机构
-     */
-    private String pharmacistOrg;
-
-    /**
-     * 药师执业资格证号
-     */
-    private String pharmacistCertificateNum;
-
-    /**
-     * 网络复诊编号,对应接口二
-     */
-    private String furtherConsultNo;
-
-    /**
-     * 复诊诊断,复诊患者在实体医院的诊断名称,如有多条,使用"|"进行分隔
-     */
-    private String furtherConsultDiagnosis;
-
-    /**
-     * 患者姓名
-     */
-    private String patientName;
-
-    /**
-     * 患者性别,1男/2女
-     */
-    private String patientSex;
-
-    /**
-     * 患者年龄,示例:19
-     */
-    private Integer patientAge;
-
-    /**
-     * 证件类型,1 身份证  2 护照
-     */
-    private Integer patientIdcardType;
-
-    /**
-     * 患者证件号码
-     */
-    private String patientIdcardNum;
-
-    /**
-     * 监护人姓名,患者年龄小于6岁需填此项
-     */
-    private String guardianName;
-
-    /**
-     * 监护人身份证,患者年龄小于6岁需填此项
-     */
-    private String guardianIdcardNum;
-
-    /**
-     * 陪伴医师姓名,患者年龄小于6岁需填此项
-     */
-    private String accompanyDocName;
-
-    /**
-     * 陪伴医师执业证号码,患者年龄小于6岁需填此项
-     */
-    private String accompanyCertificateNum;
-
-    /**
-     * 费别,1自费 2医保
-     */
-    private Integer feeType;
-
-    /**
-     * 患者简要病史描述,病史摘要
-     */
-    private String medicalHistory;
-
-    /**
-     * 处方日期,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String recipeTime;
-
-    /**
-     * 处方类型,1中药 2西药 3成药(三医)
-     */
-    private Integer recipeType;
-
-    /**
-     * 审方日期,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String reviewTime;
-
-    /**
-     * 处方单价,单位:元
-     */
-    private Double recipeUnitPrice;
-
-    /**
-     * 药品名称商品名,以|作为分隔,相同index位置的为一组数据
-     * 示例:"快克|板蓝根颗粒|阿莫西林胶囊"
-     */
-    private String drugName;
-
-    /**
-     * 药品编码
-     */
-    private String drugCode;
-
-    /**
-     * 药品通用名
-     */
-    private String drugCommonName;
-
-    /**
-     * 规格
-     */
-    private String specification;
-
-    /**
-     * 使用频度
-     * 示例:"2次/天|3次/天|3次/天"
-     */
-    private String frequency;
-
-    /**
-     * 用法
-     */
-    private String usage;
-
-    /**
-     * 剂量单位
-     */
-    private String doseUnit;
-
-    /**
-     * 每次剂量
-     */
-    private String doseEachTime;
-
-    /**
-     * 用药天数
-     */
-    private Double medicationDays;
-
-    /**
-     * 帖数
-     */
-    private Double packetNum;
-
-    /**
-     * 数量
-     */
-    private Double quantity;
-
-    /**
-     * 药品包装
-     */
-    private String drugPackage;
-
-    /**
-     * 处方总价,单位:元
-     */
-    private Double recipeAllPrice;
-
-    /**
-     * 是否经过合理用药判断标志,0 否 1 是
-     */
-    private Integer isRationalDrugUse;
-
-    /**
-     * 合理用药审核结果
-     */
-    private String rationalDrugUseReason;
-
-    /**
-     * 配送单位,配送药企、医院药房发药或药店名称
-     */
-    private String deliveryOrg;
-
-    /**
-     * 核销方式,0 医院取药 1物流配送 2药店取药 3自动失效
-     */
-    private Integer cancelAfterVerifyWay;
-
-    /**
-     * 处方核销状态,0未核销 1已核销
-     */
-    private Integer cancelAfterVerifyStatus;
-
-    /**
-     * 处方核销时间,物流配送、医院药房发药或药店自购时间、自动失效时间
-     */
-    private String cancelAfterVerifyTime;
-
-    /**
-     * 配送金额
-     */
-    private Double deliveryPrice;
-
-    /**
-     * 上传时间,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String uploadTime;
-
-    /**
-     * 医师ca签名订单id
-     */
-    private String docCaSignOrderId;
-
-    /**
-     * 医师ca签名值
-     */
-    private String docCaSign;
-
-    /**
-     * 医师ca签名时间,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String docCaSignTime;
-
-    /**
-     * 医师ca登录值
-     */
-    private String docCaLoginSign;
-
-    /**
-     * 医师ca登录时间,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String docCaLoginTime;
-
-    /**
-     * 药师ca签名订单id
-     */
-    private String pharmacistCaSignOrderId;
-
-    /**
-     * 药师ca签名值
-     */
-    private String pharmacistCaSign;
-
-    /**
-     * 药师ca签名时间,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String pharmacistCaSignTime;
-
-    /**
-     * 药师ca登录值
-     */
-    private String pharmacistCaLoginSign;
-
-    /**
-     * 药师ca登录时间,格式:YYYY-MM-DD HH:mm:ss
-     */
-    private String pharmacistCaLoginTime;
-
-    /**
-     * 医院处方编号
-     */
-    private String recipeNo;
-
-    /**
-     * 所在城市id(参考地区字段)
-     */
-    private String cityId;
-
-    /**
-     * 职称
-     */
-    private String jobTitle;
-}

+ 14 - 14
fs-admin/src/main/java/com/fs/live/controller/LiveAfterSalesController.java

@@ -5,13 +5,13 @@ 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.framework.security.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.framework.web.service.TokenService;
+import com.fs.framework.service.TokenService;
 import com.fs.system.service.ISysConfigService;
 import com.fs.his.domain.FsStoreAfterSalesLogs;
 import com.fs.his.domain.FsUser;
@@ -193,12 +193,12 @@ public class LiveAfterSalesController extends BaseController
     public AjaxResult edit(@RequestBody LiveAfterSales liveAfterSales)
     {
 
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
         //操作记录
         LiveAfterSalesLogs logs = new LiveAfterSalesLogs();
         logs.setChangeTime(new DateTime());
         logs.setChangeType(2);
-        logs.setOperator(loginUser.getUser().getNickName());
+        logs.setOperator(loginUser.getCompanyUser().getNickName());
         logs.setStoreAfterSalesId(liveAfterSales.getId());
         logs.setChangeMessage(FsStoreAfterSalesStatusEnum.STATUS_2.getDesc());
         liveAfterSales.setStatus(FsStoreAfterSalesStatusEnum.STATUS_2.getValue());
@@ -222,8 +222,8 @@ public class LiveAfterSalesController extends BaseController
     //平台审核
     public R audit1(@RequestBody LiveAfterSalesAudit1Param param)
     {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getUser().getNickName());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setOperator(loginUser.getCompanyUser().getNickName());
         return liveAfterSalesService.audit1(param);
     }
 
@@ -232,8 +232,8 @@ public class LiveAfterSalesController extends BaseController
     //仓库审核
     public R audit2(@RequestBody LiveAfterSalesAudit2Param param)
     {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getUser().getNickName());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setOperator(loginUser.getCompanyUser().getNickName());
         return liveAfterSalesService.audit2(param);
     }
     //财务审核
@@ -241,16 +241,16 @@ public class LiveAfterSalesController extends BaseController
     @PostMapping("/refund")
     public R refund(@RequestBody LiveAfterSalesRefundParam param)
     {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getUser().getNickName());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setOperator(loginUser.getCompanyUser().getNickName());
         return liveAfterSalesService.refundMoney(param);
     }
     //平台撤销
     @PreAuthorize("@ss.hasPermi('store:storeAfterSales:cancel')")
     @PostMapping("/cancel")
     public R cancel(@RequestBody LiveAfterSalesCancelParam param) throws ParseException {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getUser().getNickName());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setOperator(loginUser.getCompanyUser().getNickName());
         return liveAfterSalesService.cancel(param);
     }
 
@@ -258,8 +258,8 @@ public class LiveAfterSalesController extends BaseController
     @PostMapping("/handleImmediatelyRefund")
     public R handleImmediatelyRefund(@RequestBody LiveAfterSalesRefundParam param)
     {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getUser().getNickName());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setOperator(loginUser.getCompanyUser().getNickName());
         return liveAfterSalesService.handleImmediatelyRefund(param.getOrderId());
     }
 

+ 1 - 1
fs-admin/src/main/java/com/fs/live/controller/LiveController.java

@@ -10,7 +10,7 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.vo.CompanyVO;
-import com.fs.framework.web.service.TokenService;
+import com.fs.framework.service.TokenService;
 import com.fs.hisStore.task.LiveTask;
 import com.fs.hisStore.task.MallStoreTask;
 import com.fs.live.domain.Live;

+ 1 - 1
fs-admin/src/main/java/com/fs/live/controller/LiveDataController.java

@@ -9,7 +9,7 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.SecurityUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
-import com.fs.framework.web.service.TokenService;
+import com.fs.framework.service.TokenService;
 import com.fs.live.domain.LiveData;
 import com.fs.live.param.LiveDataParam;
 import com.fs.live.service.ILiveDataService;

+ 4 - 4
fs-admin/src/main/java/com/fs/live/controller/LiveGoodsController.java

@@ -5,10 +5,10 @@ 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.SysUser;
-import com.fs.common.core.domain.model.LoginUser;
+import com.fs.framework.security.LoginUser;
+import com.fs.framework.security.SecurityUtils;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.SecurityUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.hisStore.service.IFsStoreProductScrmService;
 import com.fs.hisStore.vo.FsStoreProductListVO;
@@ -92,7 +92,7 @@ public class LiveGoodsController extends BaseController
     public AjaxResult add(@RequestBody Map<String, Object> payload)
     {
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        //CompanyUser companyUser = companyUserService.selectCompanyUserById(loginUser.getUser().getUserId());
+        //CompanyUser companyUser = companyUserService.selectCompanyUserById(loginUser.getCompanyUser().getUserId());
         SysUser user = loginUser.getUser();
         return toAjax(liveGoodsService.insertLiveGoodsAdmin(payload, user));
     }
@@ -126,7 +126,7 @@ public class LiveGoodsController extends BaseController
     private void setCompanyId(LiveGoods liveGoods) {
         // 设置企业ID 企业用户ID
         //LoginUser loginUser = SecurityUtils.getLoginUser();
-        //CompanyUser companyUser = companyUserService.selectCompanyUserById(loginUser.getUser().getUserId());
+        //CompanyUser companyUser = companyUserService.selectCompanyUserById(loginUser.getCompanyUser().getUserId());
         //liveGoods.setCompanyId(companyUser.getCompanyId());
         //liveGoods.setCompanyUserId(companyUser.getUserId());
     }

+ 4 - 4
fs-admin/src/main/java/com/fs/live/controller/LiveMsgController.java

@@ -4,12 +4,12 @@ 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.framework.security.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.poi.ExcelUtil;
-import com.fs.framework.web.service.TokenService;
+import com.fs.framework.service.TokenService;
 import com.fs.live.domain.LiveMsg;
 import com.fs.live.service.ILiveMsgService;
 import com.fs.live.vo.LiveMsgExportVO;
@@ -120,8 +120,8 @@ public class LiveMsgController extends BaseController
     public AjaxResult exportComments(@PathVariable("liveId") Long liveId)
     {
         try {
-            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-            Long userId = loginUser.getUser().getUserId();
+            com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
+            Long userId = loginUser.getCompanyUser().getUserId();
             
             List<LiveMsgExportVO> list = liveMsgService.exportLiveMsgComments(liveId, userId);
             ExcelUtil<LiveMsgExportVO> util = new ExcelUtil<LiveMsgExportVO>(LiveMsgExportVO.class);

+ 1 - 1
fs-admin/src/main/java/com/fs/live/controller/LiveOrderController.java

@@ -23,7 +23,7 @@ import com.fs.erp.domain.ErpOrderQuery;
 import com.fs.erp.dto.ErpOrderQueryRequert;
 import com.fs.erp.dto.ErpOrderQueryResponse;
 import com.fs.erp.service.IErpOrderService;
-import com.fs.framework.web.service.TokenService;
+import com.fs.framework.service.TokenService;
 import com.fs.his.domain.FsDfAccount;
 import com.fs.his.domain.FsStoreOrderDf;
 import com.fs.his.domain.FsUser;

+ 4 - 4
fs-admin/src/main/java/com/fs/live/controller/OrderController.java

@@ -5,7 +5,7 @@ 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.model.LoginUser;
+import com.fs.framework.security.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.core.page.PageDomain;
 import com.fs.common.core.page.TableSupport;
@@ -14,7 +14,7 @@ import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.constant.HttpStatus;
-import com.fs.framework.web.service.TokenService;
+import com.fs.framework.service.TokenService;
 import com.fs.his.utils.PhoneUtil;
 import com.fs.hisStore.dto.StoreOrderProductDTO;
 import com.fs.hisStore.service.IMergedOrderService;
@@ -131,7 +131,7 @@ public class OrderController extends BaseController
         }
         list = list.stream().filter(item -> StringUtils.isNotEmpty(item.getBankTransactionId())).collect(Collectors.toList());
 
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
 
         for (MergedOrderVO vo : list) {
             if (!StringUtils.isEmpty(vo.getItemJson())) {
@@ -172,7 +172,7 @@ public class OrderController extends BaseController
         }
         list = list.stream().filter(item -> StringUtils.isNotEmpty(item.getBankTransactionId())).collect(Collectors.toList());
 
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
 
         for (MergedOrderVO vo : list) {
             if (!StringUtils.isEmpty(vo.getItemJson())) {

+ 0 - 266
fs-admin/src/main/java/com/fs/live/live/controller/LiveAfterSalesController.java

@@ -1,266 +0,0 @@
-package com.fs.live.controller;
-
-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.domain.R;
-import com.fs.framework.security.LoginUser;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.ServletUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.framework.service.TokenService;
-import com.fs.system.service.ISysConfigService;
-import com.fs.his.domain.FsStoreAfterSalesLogs;
-import com.fs.his.domain.FsUser;
-import com.fs.his.enums.FsStoreAfterSalesStatusEnum;
-import com.fs.his.service.IFsUserService;
-import com.fs.hisStore.vo.FsStoreOrderItemExportRefundZMVO;
-import com.fs.live.domain.LiveAfterSales;
-import com.fs.live.domain.LiveAfterSalesItem;
-import com.fs.live.domain.LiveAfterSalesLogs;
-import com.fs.live.domain.LiveOrder;
-import com.fs.live.param.LiveAfterSalesAudit1Param;
-import com.fs.live.param.LiveAfterSalesAudit2Param;
-import com.fs.live.param.LiveAfterSalesCancelParam;
-import com.fs.live.param.LiveAfterSalesRefundParam;
-import com.fs.live.service.ILiveAfterSalesItemService;
-import com.fs.live.service.ILiveAfterSalesLogsService;
-import com.fs.live.service.ILiveAfterSalesService;
-import com.fs.live.service.ILiveOrderService;
-import com.fs.live.vo.LiveAfterSalesVo;
-import com.github.pagehelper.PageHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.text.ParseException;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 售后记录Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveAfterSales")
-public class LiveAfterSalesController extends BaseController
-{
-    @Autowired
-    private ILiveAfterSalesService liveAfterSalesService;
-
-    @Autowired
-    private TokenService tokenService;
-    @Autowired
-    private ILiveAfterSalesItemService liveAfterSalesItemService;
-    @Autowired
-    private ILiveAfterSalesLogsService liveAfterSalesLogsService;
-    @Autowired
-    private IFsUserService userService;
-    @Autowired
-    private ILiveOrderService orderService;
-
-    @Autowired
-    private ISysConfigService sysConfigService;
-
-    /**
-     * 获取售后记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSales:query')")
-    @GetMapping(value = "/{id}")
-    public R getInfo(@PathVariable("id") Long id)
-    {
-        LiveAfterSales liveAfterSales = liveAfterSalesService.selectLiveAfterSalesById(id);
-        if(liveAfterSales==null) return R.error("售后记录不存在");
-        List<LiveAfterSalesItem> list = liveAfterSalesItemService.selectLiveAfterSalesItemByAfterId(id);
-        List<LiveAfterSalesLogs> logList = liveAfterSalesLogsService.selectLiveAfterSalesLogsByAfterId(id);
-        FsUser user=userService.selectFsUserById(liveAfterSales.getUserId());
-        user.setPhone(ParseUtils.parsePhone(user.getPhone()));
-        LiveOrder liveOrder = orderService.selectLiveOrderByOrderId(String.valueOf(liveAfterSales.getOrderId()));
-        return R.ok().put("afterSales",liveAfterSales).put("items",list).put("logs",logList).put("user",user).put("order",liveOrder);
-
-    }
-
-    /**
-     * 查询售后记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSales:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveAfterSalesVo liveAfterSales)
-    {
-        startPage();
-        // 将productName映射到productNameQuery用于查询
-        if (liveAfterSales.getProductName() != null && !liveAfterSales.getProductName().isEmpty()) {
-            liveAfterSales.setProductNameQuery(liveAfterSales.getProductName());
-        }
-        List<LiveAfterSalesVo> list = liveAfterSalesService.selectLiveAfterSalesVoList(liveAfterSales);
-        for (LiveAfterSalesVo liveAfterSalesVo : list) {
-            liveAfterSalesVo.setUserPhone(ParseUtils.parsePhone(liveAfterSalesVo.getUserPhone()));
-        }
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出售后记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSales:export')")
-    @Log(title = "售后记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveAfterSalesVo liveAfterSales)
-    {
-        PageHelper.clearPage();
-        PageHelper.startPage(1, 10000, "");
-        List<LiveAfterSalesVo> list = liveAfterSalesService.selectLiveAfterSalesVoListExport(liveAfterSales);
-        if("北京卓美".equals(sysConfigService.getProjectConfig().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.setFPrice("");
-                            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.getCreateTime());
-                            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.setAfterSalesNumber
-                            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 (LiveAfterSalesVo liveAfterSalesVo : list) {
-            liveAfterSalesVo.setUserPhone(liveAfterSalesVo.getUserPhone() == null ? "" : liveAfterSalesVo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-            liveAfterSalesVo.setPhoneNumber(liveAfterSalesVo.getPhoneNumber() == null ? "" : liveAfterSalesVo.getPhoneNumber().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-        }
-        ExcelUtil<LiveAfterSalesVo> util = new ExcelUtil<LiveAfterSalesVo>(LiveAfterSalesVo.class);
-        return util.exportExcel(list, "销售直播退款订单数据");
-    }
-
-
-    /**
-     * 新增售后记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSales:add')")
-    @Log(title = "售后记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveAfterSales liveAfterSales)
-    {
-        return toAjax(liveAfterSalesService.insertLiveAfterSales(liveAfterSales));
-    }
-
-    /**
-     * 修改售后记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSales:edit')")
-    @Log(title = "售后记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveAfterSales liveAfterSales)
-    {
-
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-        //操作记录
-        LiveAfterSalesLogs logs = new LiveAfterSalesLogs();
-        logs.setChangeTime(new DateTime());
-        logs.setChangeType(2);
-        logs.setOperator(loginUser.getCompanyUser().getNickName());
-        logs.setStoreAfterSalesId(liveAfterSales.getId());
-        logs.setChangeMessage(FsStoreAfterSalesStatusEnum.STATUS_2.getDesc());
-        liveAfterSales.setStatus(FsStoreAfterSalesStatusEnum.STATUS_2.getValue());
-        liveAfterSalesLogsService.insertLiveAfterSalesLogs(logs);
-        return toAjax(liveAfterSalesService.updateLiveAfterSales(liveAfterSales));
-    }
-
-    /**
-     * 删除售后记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSales:remove')")
-    @Log(title = "售后记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveAfterSalesService.deleteLiveAfterSalesByIds(ids));
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:audit1')")
-    @PostMapping("/audit1")
-    //平台审核
-    public R audit1(@RequestBody LiveAfterSalesAudit1Param param)
-    {
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getCompanyUser().getNickName());
-        return liveAfterSalesService.audit1(param);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:audit2')")
-    @PostMapping("/audit2")
-    //仓库审核
-    public R audit2(@RequestBody LiveAfterSalesAudit2Param param)
-    {
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getCompanyUser().getNickName());
-        return liveAfterSalesService.audit2(param);
-    }
-    //财务审核
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:refund')")
-    @PostMapping("/refund")
-    public R refund(@RequestBody LiveAfterSalesRefundParam param)
-    {
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getCompanyUser().getNickName());
-        return liveAfterSalesService.refundMoney(param);
-    }
-    //平台撤销
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:cancel')")
-    @PostMapping("/cancel")
-    public R cancel(@RequestBody LiveAfterSalesCancelParam param) throws ParseException {
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getCompanyUser().getNickName());
-        return liveAfterSalesService.cancel(param);
-    }
-
-    @PreAuthorize("@ss.hasPermi('store:storeAfterSales:refund')")
-    @PostMapping("/handleImmediatelyRefund")
-    public R handleImmediatelyRefund(@RequestBody LiveAfterSalesRefundParam param)
-    {
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setOperator(loginUser.getCompanyUser().getNickName());
-        return liveAfterSalesService.handleImmediatelyRefund(param.getOrderId());
-    }
-
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveAfterSalesItemController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveAfterSalesItem;
-import com.fs.live.service.ILiveAfterSalesItemService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 售后子Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveAfterSalesItem")
-public class LiveAfterSalesItemController extends BaseController
-{
-    @Autowired
-    private ILiveAfterSalesItemService liveAfterSalesItemService;
-
-    /**
-     * 查询售后子列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesItem:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveAfterSalesItem liveAfterSalesItem)
-    {
-        startPage();
-        List<LiveAfterSalesItem> list = liveAfterSalesItemService.selectLiveAfterSalesItemList(liveAfterSalesItem);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出售后子列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesItem:export')")
-    @Log(title = "售后子", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveAfterSalesItem liveAfterSalesItem)
-    {
-        List<LiveAfterSalesItem> list = liveAfterSalesItemService.selectLiveAfterSalesItemList(liveAfterSalesItem);
-        ExcelUtil<LiveAfterSalesItem> util = new ExcelUtil<LiveAfterSalesItem>(LiveAfterSalesItem.class);
-        return util.exportExcel(list, "售后子数据");
-    }
-
-    /**
-     * 获取售后子详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesItem:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveAfterSalesItemService.selectLiveAfterSalesItemById(id));
-    }
-
-    /**
-     * 新增售后子
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesItem:add')")
-    @Log(title = "售后子", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveAfterSalesItem liveAfterSalesItem)
-    {
-        return toAjax(liveAfterSalesItemService.insertLiveAfterSalesItem(liveAfterSalesItem));
-    }
-
-    /**
-     * 修改售后子
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesItem:edit')")
-    @Log(title = "售后子", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveAfterSalesItem liveAfterSalesItem)
-    {
-        return toAjax(liveAfterSalesItemService.updateLiveAfterSalesItem(liveAfterSalesItem));
-    }
-
-    /**
-     * 删除售后子
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesItem:remove')")
-    @Log(title = "售后子", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveAfterSalesItemService.deleteLiveAfterSalesItemByIds(ids));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveAfterSalesLogsController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveAfterSalesLogs;
-import com.fs.live.service.ILiveAfterSalesLogsService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 售后订单操作Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveAfterSalesLogs")
-public class LiveAfterSalesLogsController extends BaseController
-{
-    @Autowired
-    private ILiveAfterSalesLogsService liveAfterSalesLogsService;
-
-    /**
-     * 查询售后订单操作列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesLogs:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveAfterSalesLogs liveAfterSalesLogs)
-    {
-        startPage();
-        List<LiveAfterSalesLogs> list = liveAfterSalesLogsService.selectLiveAfterSalesLogsList(liveAfterSalesLogs);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出售后订单操作列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesLogs:export')")
-    @Log(title = "售后订单操作", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveAfterSalesLogs liveAfterSalesLogs)
-    {
-        List<LiveAfterSalesLogs> list = liveAfterSalesLogsService.selectLiveAfterSalesLogsList(liveAfterSalesLogs);
-        ExcelUtil<LiveAfterSalesLogs> util = new ExcelUtil<LiveAfterSalesLogs>(LiveAfterSalesLogs.class);
-        return util.exportExcel(list, "售后订单操作数据");
-    }
-
-    /**
-     * 获取售后订单操作详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesLogs:query')")
-    @GetMapping(value = "/{logsId}")
-    public AjaxResult getInfo(@PathVariable("logsId") Long logsId)
-    {
-        return AjaxResult.success(liveAfterSalesLogsService.selectLiveAfterSalesLogsByLogsId(logsId));
-    }
-
-    /**
-     * 新增售后订单操作
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesLogs:add')")
-    @Log(title = "售后订单操作", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveAfterSalesLogs liveAfterSalesLogs)
-    {
-        return toAjax(liveAfterSalesLogsService.insertLiveAfterSalesLogs(liveAfterSalesLogs));
-    }
-
-    /**
-     * 修改售后订单操作
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesLogs:edit')")
-    @Log(title = "售后订单操作", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveAfterSalesLogs liveAfterSalesLogs)
-    {
-        return toAjax(liveAfterSalesLogsService.updateLiveAfterSalesLogs(liveAfterSalesLogs));
-    }
-
-    /**
-     * 删除售后订单操作
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAfterSalesLogs:remove')")
-    @Log(title = "售后订单操作", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{logsIds}")
-    public AjaxResult remove(@PathVariable Long[] logsIds)
-    {
-        return toAjax(liveAfterSalesLogsService.deleteLiveAfterSalesLogsByLogsIds(logsIds));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveAnchorController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveAnchor;
-import com.fs.live.service.ILiveAnchorService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 主播Controller
- *
- * @author fs
- * @date 2025-01-17
- */
-@RestController
-@RequestMapping("/live/liveAnchor")
-public class LiveAnchorController extends BaseController
-{
-    @Autowired
-    private ILiveAnchorService liveAnchorService;
-
-    /**
-     * 查询主播列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAnchor:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveAnchor liveAnchor)
-    {
-        startPage();
-        List<LiveAnchor> list = liveAnchorService.selectLiveAnchorList(liveAnchor);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出主播列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAnchor:export')")
-    @Log(title = "主播", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveAnchor liveAnchor)
-    {
-        List<LiveAnchor> list = liveAnchorService.selectLiveAnchorList(liveAnchor);
-        ExcelUtil<LiveAnchor> util = new ExcelUtil<LiveAnchor>(LiveAnchor.class);
-        return util.exportExcel(list, "主播数据");
-    }
-
-    /**
-     * 获取主播详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAnchor:query')")
-    @GetMapping(value = "/{anchorId}")
-    public AjaxResult getInfo(@PathVariable("anchorId") Long anchorId)
-    {
-        return AjaxResult.success(liveAnchorService.selectLiveAnchorByAnchorId(anchorId));
-    }
-
-    /**
-     * 新增主播
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAnchor:add')")
-    @Log(title = "主播", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveAnchor liveAnchor)
-    {
-        return toAjax(liveAnchorService.insertLiveAnchor(liveAnchor));
-    }
-
-    /**
-     * 修改主播
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAnchor:edit')")
-    @Log(title = "主播", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveAnchor liveAnchor)
-    {
-        return toAjax(liveAnchorService.updateLiveAnchor(liveAnchor));
-    }
-
-    /**
-     * 删除主播
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveAnchor:remove')")
-    @Log(title = "主播", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{anchorIds}")
-    public AjaxResult remove(@PathVariable Long[] anchorIds)
-    {
-        return toAjax(liveAnchorService.deleteLiveAnchorByAnchorIds(anchorIds));
-    }
-}

+ 0 - 227
fs-admin/src/main/java/com/fs/live/live/controller/LiveAutoTaskController.java

@@ -1,227 +0,0 @@
-package com.fs.live.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.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.DateUtils;
-import com.fs.common.utils.StringUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.Live;
-import com.fs.live.domain.LiveAutoTask;
-import com.fs.live.mapper.LiveMapper;
-import com.fs.live.param.LiveAutoTaskExportParam;
-import com.fs.live.param.LiveAutoTaskImportParam;
-import com.fs.live.service.ILiveAutoTaskService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-/**
- * 直播间自动化任务配置Controller
- *
- * @author fs
- * @date 2025-08-29
- */
-@RestController
-@RequestMapping("/live/task")
-public class LiveAutoTaskController extends BaseController
-{
-    @Autowired
-    private ILiveAutoTaskService liveAutoTaskService;
-    @Autowired
-    private LiveMapper liveMapper;
-
-    /**
-     * 查询直播间自动化任务配置列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:task:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveAutoTask liveAutoTask)
-    {
-        startPage();
-        List<LiveAutoTask> list = liveAutoTaskService.selectLiveAutoTaskList(liveAutoTask);
-        return getDataTable(list);
-    }
-    /**
-     * 查询直播间自动化任务配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:task:list')")
-    @GetMapping("/listBarrage")
-    public TableDataInfo listBarrage(LiveAutoTask liveAutoTask)
-    {
-        startPage();
-        List<LiveAutoTask> list = liveAutoTaskService.selectLiveAutoTaskBarrageList(liveAutoTask);
-        return getDataTable(list);
-    }
-
-//    @PreAuthorize("@ss.hasPermi('live:task:list')")
-    @GetMapping("/consoleList")
-    public TableDataInfo consoleList(LiveAutoTask liveAutoTask)
-    {
-        startPage();
-        // 大屏查询后面20条数据
-        List<LiveAutoTask> list = liveAutoTaskService.consoleList(liveAutoTask.getLiveId());
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播间自动化任务配置列表
-     */
-//    @PreAuthorize("@ss.hasPermi('shop:task:export')")
-    @Log(title = "直播间自动化任务配置", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveAutoTask liveAutoTask)
-    {
-        List<LiveAutoTask> list = liveAutoTaskService.selectLiveAutoTaskList(liveAutoTask);
-        ExcelUtil<LiveAutoTask> util = new ExcelUtil<LiveAutoTask>(LiveAutoTask.class);
-        return util.exportExcel(list, "直播间自动化任务配置数据");
-    }
-
-    /**
-     * 获取直播间自动化任务配置详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:task:list')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveAutoTaskService.selectLiveAutoTaskById(id));
-    }
-
-    /**
-     * 新增直播间自动化任务配置
-     */
-//    @PreAuthorize("@ss.hasPermi('shop:task:add')")
-    @Log(title = "直播间自动化任务配置", businessType = BusinessType.INSERT)
-    @PostMapping
-    public R add(@RequestBody LiveAutoTask liveAutoTask)
-    {
-        return liveAutoTaskService.insertLiveAutoTask(liveAutoTask);
-    }
-
-    /**
-     * 修改直播间自动化任务配置
-     */
-//    @PreAuthorize("@ss.hasPermi('shop:task:edit')")
-    @Log(title = "直播间自动化任务配置", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public R edit(@RequestBody LiveAutoTask liveAutoTask)
-    {
-        return liveAutoTaskService.updateLiveAutoTask(liveAutoTask);
-    }
-
-    /**
-     * 删除直播间自动化任务配置
-     */
-//    @PreAuthorize("@ss.hasPermi('shop:task:remove')")
-    @Log(title = "直播间自动化任务配置", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveAutoTaskService.deleteLiveAutoTaskByIds(ids));
-    }
-
-    /**
-     * 导出直播间自动化任务配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:task:export')")
-    @Log(title = "直播间自动化任务配置", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportData")
-    public AjaxResult exportData(LiveAutoTask liveAutoTask)
-    {
-        List<LiveAutoTask> list = liveAutoTaskService.selectLiveAutoTaskBarrageList(liveAutoTask);
-        ExcelUtil<LiveAutoTaskExportParam> util = new ExcelUtil<LiveAutoTaskExportParam>(LiveAutoTaskExportParam.class);
-        ArrayList<LiveAutoTaskExportParam> barrageList = new ArrayList<>();
-        for (LiveAutoTask autoTask : list) {
-            LiveAutoTaskExportParam liveAutoTaskImportParam = new LiveAutoTaskExportParam();
-            liveAutoTaskImportParam.setTaskName(autoTask.getTaskName());
-            liveAutoTaskImportParam.setContent(autoTask.getContent());
-            liveAutoTaskImportParam.setRegisterDate(autoTask.getTriggerValue());
-            barrageList.add(liveAutoTaskImportParam);
-        }
-
-        return util.exportExcel(barrageList, "直播间弹幕脚本数据");
-    }
-
-    @GetMapping("/importTemplate")
-    public AjaxResult importTemplate()
-    {
-        ExcelUtil<LiveAutoTaskImportParam> util = new ExcelUtil<>(LiveAutoTaskImportParam.class);
-        return util.importTemplateExcel("导入模板");
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:task:export')")
-    @PostMapping("/importData")
-    public AjaxResult importLineData(@RequestParam("liveId") String liveId, MultipartFile file) throws Exception
-    {
-        ExcelUtil<LiveAutoTaskImportParam> util = new ExcelUtil<LiveAutoTaskImportParam>(LiveAutoTaskImportParam.class);
-        List<LiveAutoTaskImportParam> list = util.importExcel(file.getInputStream());
-        if(list.size()>12000){
-            return new AjaxResult(500,"导入数据超出范围,最大12000条");
-        }
-        LiveAutoTask liveAutoTask;
-        Date nowDate = DateUtils.getNowDate();
-        Live live = liveMapper.selectLiveByLiveId(Long.parseLong(liveId));
-        for (LiveAutoTaskImportParam liveAutoTaskImportParam : list) {
-            if(StringUtils.isEmpty(liveAutoTaskImportParam.getTaskName()) || StringUtils.isEmpty(liveAutoTaskImportParam.getRegisterDate()) || StringUtils.isEmpty(liveAutoTaskImportParam.getContent())) continue;
-            liveAutoTask = new LiveAutoTask();
-            liveAutoTask.setLiveId(Long.parseLong(liveId));
-            liveAutoTask.setTaskName(liveAutoTaskImportParam.getTaskName());
-            liveAutoTask.setTaskType(3L);
-            liveAutoTask.setTriggerType(2L);
-            liveAutoTask.setTriggerValue(formatTime(liveAutoTaskImportParam.getRegisterDate()));
-            liveAutoTask.setContent(liveAutoTaskImportParam.getContent());
-            liveAutoTask.setAbsValue(getTriggerValue(liveAutoTask.getTriggerValue(),live.getStartTime()));
-            liveAutoTask.setCreateTime(nowDate);
-            liveAutoTask.setUpdateTime(nowDate);
-            liveAutoTask.setStatus(1L);
-            liveAutoTask.setFinishStatus(0L);
-            liveAutoTaskService.directInsertLiveAutoTask(liveAutoTask);
-        }
-        return AjaxResult.success();
-    }
-
-    public static Date formatTime(String duration) {
-        String[] parts = duration.split(":");
-        if (parts.length != 3) {
-            throw new IllegalArgumentException("时间格式不正确,应为 hh:mm:ss");
-        }
-        int hours = Integer.parseInt(parts[0]);
-        int minutes = Integer.parseInt(parts[1]);
-        int seconds = Integer.parseInt(parts[2]);
-
-        // 获取当前日期的Calendar实例
-        Calendar calendar = Calendar.getInstance();
-        // 设置时分秒
-        calendar.set(Calendar.HOUR_OF_DAY, hours); // 24小时制
-        calendar.set(Calendar.MINUTE, minutes);
-        calendar.set(Calendar.SECOND, seconds);
-        calendar.set(Calendar.MILLISECOND, 0); // 毫秒设为0
-
-        return calendar.getTime();
-    }
-
-    private Date getTriggerValue(Date triggerValue, LocalDateTime liveStartTime) {
-        LocalDateTime triggerDateTime = LocalDateTime.ofInstant(
-                triggerValue.toInstant(),
-                ZoneId.systemDefault()
-        );
-        LocalTime triggerTime = triggerDateTime.toLocalTime();
-        LocalDateTime combinedTime = liveStartTime
-                .plusHours(triggerTime.getHour())
-                .plusMinutes(triggerTime.getMinute())
-                .plusSeconds(triggerTime.getSecond());
-        return Date.from(combinedTime.atZone(ZoneId.systemDefault()).toInstant());
-    }
-}

+ 0 - 98
fs-admin/src/main/java/com/fs/live/live/controller/LiveCartController.java

@@ -1,98 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveCart;
-import com.fs.live.service.ILiveCartService;
-import com.fs.live.vo.LiveCartVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 购物车Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveCart")
-public class LiveCartController extends BaseController
-{
-    @Autowired
-    private ILiveCartService liveCartService;
-
-    /**
-     * 查询购物车列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCart:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveCart liveCart)
-    {
-        startPage();
-        List<LiveCartVo> list = liveCartService.selectLiveCartListVo(liveCart);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出购物车列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCart:export')")
-    @Log(title = "购物车", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveCart liveCart)
-    {
-        List<LiveCart> list = liveCartService.selectLiveCartList(liveCart);
-        ExcelUtil<LiveCart> util = new ExcelUtil<LiveCart>(LiveCart.class);
-        return util.exportExcel(list, "购物车数据");
-    }
-
-    /**
-     * 获取购物车详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCart:query')")
-    @GetMapping(value = "/{cardId}")
-    public AjaxResult getInfo(@PathVariable("cardId") Long cardId)
-    {
-        return AjaxResult.success(liveCartService.selectLiveCartByCartId(cardId));
-    }
-
-    /**
-     * 新增购物车
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCart:add')")
-    @Log(title = "购物车", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveCart liveCart)
-    {
-        return toAjax(liveCartService.insertLiveCart(liveCart));
-    }
-
-    /**
-     * 修改购物车
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCart:edit')")
-    @Log(title = "购物车", businessType = BusinessType.UPDATE)
-    @PostMapping("/update")
-    public AjaxResult edit(@RequestBody LiveCart liveCart)
-    {
-        return toAjax(liveCartService.updateLiveCart(liveCart));
-    }
-
-    /**
-     * 删除购物车
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCart:remove')")
-    @Log(title = "购物车", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{cardIds}")
-    public AjaxResult remove(@PathVariable Long[] cardIds)
-    {
-        return toAjax(liveCartService.deleteLiveCartByCartIds(cardIds));
-    }
-}

+ 0 - 234
fs-admin/src/main/java/com/fs/live/live/controller/LiveController.java

@@ -1,234 +0,0 @@
-package com.fs.live.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.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.poi.ExcelUtil;
-import com.fs.company.vo.CompanyVO;
-import com.fs.framework.service.TokenService;
-import com.fs.hisStore.task.LiveTask;
-import com.fs.hisStore.task.MallStoreTask;
-import com.fs.live.domain.Live;
-import com.fs.live.service.ILiveService;
-import com.fs.live.vo.LiveListVo;
-import com.fs.qw.domain.QwTagGroup;
-import com.fs.qw.service.IQwTagGroupService;
-import com.fs.qw.service.impl.QwUserServiceImpl;
-import com.fs.qw.vo.QwOptionsVO;
-import com.fs.qw.vo.QwTagGroupListVO;
-import com.hc.openapi.tool.fastjson.JSON;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.text.ParseException;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 直播Controller
- *
- * @author fs
- * @date 2025-01-17
- */
-@RestController
-@RequestMapping("/live/live")
-public class LiveController extends BaseController {
-    private static final Logger log = LoggerFactory.getLogger(LiveController.class);
-    @Autowired
-    private ILiveService liveService;
-
-    @Autowired
-    private TokenService tokenService;
-
-    @Autowired
-    QwUserServiceImpl qwUserService;
-
-    @Autowired
-    private IQwTagGroupService qwTagGroupService;
-
-
-    /**
-     * 查询直播列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(Live live) {
-        startPage();
-        List<Live> list = liveService.selectLiveList(live);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:export')")
-    @Log(title = "直播", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(Live live) {
-        List<Live> list = liveService.selectLiveList(live);
-        ExcelUtil<Live> util = new ExcelUtil<Live>(Live.class);
-        return util.exportExcel(list, "直播数据");
-    }
-
-
-    /**
-     * 获取直播详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:query')")
-    @GetMapping(value = "/{liveId}")
-    public AjaxResult getInfo(@PathVariable("liveId") Long liveId) {
-        return AjaxResult.success(liveService.selectLiveDbByLiveId(liveId));
-    }
-
-    /**
-     * 新增直播
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:add')")
-    @Log(title = "直播", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody Live live) {
-        return toAjax(liveService.insertLive(live));
-    }
-
-    /**
-     * 修改直播
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @Log(title = "直播", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody Live live) {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        log.info("loginUser:{},update:{}", loginUser.getUserId(), JSON.toJSONString( live));
-        return toAjax(liveService.updateLive(live));
-    }
-
-    /**
-     * 删除直播
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:remove')")
-    @Log(title = "直播", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{liveIds}")
-    public AjaxResult remove(@PathVariable Long[] liveIds) {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        log.info("loginUser:{},update:{}", loginUser.getUserId(), JSON.toJSONString( liveIds));
-        return toAjax(liveService.deleteLiveByLiveIds(liveIds, new Live()));
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:live:query')")
-    @GetMapping("/living/{liveId}")
-    public R getRoom(@PathVariable String liveId) {
-        return liveService.getLiveRoom(liveId);
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @PostMapping("/updateLiveIsAudit")
-    public Integer updateLiveIsAudit(@RequestBody Live live) {
-        return liveService.updateLiveIsAudit(live);
-    }
-
-
-
-    /**
-     * 批量上下架视频
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @PostMapping("/handleShelfOrUn")
-    public R handleShelfOrUn(@RequestBody LiveListVo listVo) {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        log.info("loginUser:{},update:{}", loginUser.getUserId(), JSON.toJSONString( listVo));
-        return liveService.handleShelfOrUnAdmin(listVo);
-    }
-
-    /**
-     * 批量删除视频
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @PostMapping("/handleDeleteSelected")
-    public R handleDeleteSelected(@RequestBody LiveListVo listVo) {
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        log.info("loginUser:{},update:{}", loginUser.getUserId(), JSON.toJSONString( listVo));
-        return liveService.handleDeleteSelectedAdmin(listVo);
-    }
-    /**
-     * 校验上传的身份证信息
-     */
-    @PostMapping("/verifyIdInfo")
-    public R verifyIdInfo(@RequestBody Map<String, String> payload) {
-        return liveService.verifyIdInfo(payload);
-    }
-
-    /**
-     * 结束直播
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @GetMapping("/finishLive")
-    public R finishLive(Live live) {
-        return liveService.finishLive(live);
-    }
-//    @GetMapping("/test/test")
-//    public R test() {
-//         liveTask.updateExpress();
-//        return R.ok();
-//    }
-
-    /**
-     * 复制直播
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @GetMapping("/copyLive")
-    public R copyLive(Live live) {
-
-        return liveService.copyLive(live);
-    }
-
-    /**
-     * 开启直播
-     */
-    @PreAuthorize("@ss.hasPermi('live:live:edit')")
-    @GetMapping("/startLive")
-    public R startLive(Live live) {
-        return liveService.startLive(live);
-    }
-
-
-    /**
-     * 获取公司下拉列表
-     * @return
-     */
-    @GetMapping("/getCompanyDropList")
-    public R getCompanyDropList(){
-        List<CompanyVO> companyDropList = liveService.getCompanyDropList();
-        return R.ok().put("data",companyDropList);
-    }
-
-    @GetMapping("/getQwCorpList/{companyId}")
-    public R getQwCorpList(@PathVariable Long companyId){
-        List<QwOptionsVO> qwOptionsVOS = qwUserService.selectQwCompanyListOptionsVOByCompanyId(companyId);
-        return R.ok().put("data",qwOptionsVOS);
-    }
-
-    @GetMapping("/getTagsListByCorpId")
-    public TableDataInfo getTagsListByCorpId(QwTagGroup qwTagGroup){
-        startPage();
-        List<QwTagGroupListVO> list = qwTagGroupService.selectQwTagGroupListVO(qwTagGroup);
-        return getDataTable(list);
-    }
-
-    /**
-     * 清除直播间缓存
-     */
-    @Log(title = "直播", businessType = BusinessType.UPDATE)
-    @PostMapping("/clearCache/{liveId}")
-    public R clearCache(@PathVariable("liveId") Long liveId) {
-        return liveService.clearLiveCache(liveId);
-    }
-
-}

+ 0 - 227
fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponController.java

@@ -1,227 +0,0 @@
-package com.fs.live.controller;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import com.fs.common.core.domain.R;
-import com.fs.live.domain.LiveCouponIssue;
-import com.fs.live.param.LiveCouponPublishParam;
-import com.fs.live.service.ILiveCouponIssueService;
-import com.fs.live.vo.LiveCouponListVo;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-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.live.domain.LiveCoupon;
-import com.fs.live.service.ILiveCouponService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
-
-/**
- * 优惠券Controller
- *
- * @author fs
- * @date 2025-09-30
- */
-@RestController
-@RequestMapping("/live/coupon")
-public class LiveCouponController extends BaseController
-{
-    @Autowired
-    private ILiveCouponService liveCouponService;
-    @Autowired
-    private ILiveCouponIssueService liveCouponIssueService;
-
-
-    /**
-     * 查询优惠券列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveCoupon liveCoupon)
-    {
-        startPage();
-        liveCoupon.setIsDel(0);
-        List<LiveCoupon> list = liveCouponService.selectLiveCouponList(liveCoupon);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出优惠券列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:export')")
-    @Log(title = "优惠券", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveCoupon liveCoupon)
-    {
-        List<LiveCoupon> list = liveCouponService.selectLiveCouponList(liveCoupon);
-        ExcelUtil<LiveCoupon> util = new ExcelUtil<LiveCoupon>(LiveCoupon.class);
-        return util.exportExcel(list, "coupon");
-    }
-
-    /**
-     * 获取优惠券详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:query')")
-    @GetMapping(value = "/{couponId}")
-    public AjaxResult getInfo(@PathVariable("couponId") Long couponId)
-    {
-        return AjaxResult.success(liveCouponService.selectLiveCouponById(couponId));
-    }
-
-    /**
-     * 新增优惠券
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:add')")
-    @Log(title = "优惠券", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveCoupon liveCoupon)
-    {
-        return toAjax(liveCouponService.insertLiveCoupon(liveCoupon));
-    }
-
-    /**
-     * 修改优惠券
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:edit')")
-    @Log(title = "优惠券", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveCoupon liveCoupon)
-    {
-        return toAjax(liveCouponService.updateLiveCoupon(liveCoupon));
-    }
-
-    /**
-     * 删除优惠券
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:remove')")
-    @Log(title = "优惠券", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{couponIds}")
-    public AjaxResult remove(@PathVariable Long[] couponIds)
-    {
-        return toAjax(liveCouponService.deleteLiveCouponByIds(couponIds));
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:publish')")
-    @PostMapping("/publish")
-    public AjaxResult publish(@RequestBody LiveCouponPublishParam publishParam)
-    {
-        LiveCoupon coupon=liveCouponService.selectLiveCouponById(publishParam.getCouponId());
-        LiveCouponIssue issue=new LiveCouponIssue();
-        issue.setCouponId(publishParam.getCouponId());
-        issue.setCouponName(coupon.getTitle());
-        issue.setCouponType(Math.toIntExact(coupon.getType()));
-        issue.setStartTime(publishParam.getStartTime());
-        issue.setLimitTime(publishParam.getLimitTime());
-        issue.setTotalCount(Long.valueOf(publishParam.getTotalCount()));
-        issue.setRemainCount(Long.valueOf(publishParam.getTotalCount()));
-        issue.setIsPermanent(0);
-        issue.setStatus(1);
-        issue.setCreateTime(new Date());
-        // 继承优惠券的领取上限字段
-        issue.setLimitReceiveCount(coupon.getLimitReceiveCount());
-        return toAjax( liveCouponIssueService.insertLiveCouponIssue(issue));
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:batchPublish')")
-    @PostMapping("/batchPublish")
-    public R batchPublish(@RequestBody LiveCouponPublishParam publishParam)
-    {
-
-        List<LiveCoupon> list=liveCouponService.selectLiveCouponByIds(publishParam.getIds());
-        for (LiveCoupon coupon :list ){
-            LiveCouponIssue issue=new LiveCouponIssue();
-            issue.setCouponId(coupon.getCouponId());
-            issue.setCouponName(coupon.getTitle());
-            issue.setCouponType(Math.toIntExact(coupon.getType()));
-            issue.setStartTime(publishParam.getStartTime());
-            issue.setLimitTime(publishParam.getLimitTime());
-            issue.setTotalCount(Long.valueOf(publishParam.getTotalCount()));
-            issue.setRemainCount(Long.valueOf(publishParam.getTotalCount()));
-            issue.setIsPermanent(0);
-            issue.setStatus(1);
-            issue.setCreateTime(new Date());
-            // 继承优惠券的领取上限字段
-            issue.setLimitReceiveCount(coupon.getLimitReceiveCount());
-            liveCouponIssueService.insertLiveCouponIssue(issue);
-        }
-        return R.ok();
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:query')")
-    @GetMapping(value = "/listLiveCoupon")
-    public TableDataInfo listLiveCoupon(@RequestParam("liveId") Long liveId)
-    {
-        startPage();
-        List<LiveCoupon> list = liveCouponService.selectLiveCouponByLiveId(liveId);
-        return getDataTable(list);
-    }
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:query')")
-    @GetMapping(value = "/listCoupon")
-    public TableDataInfo listCoupon(@RequestParam("liveId") Long liveId,@RequestParam("couponName") String couponName)
-    {
-        startPage();
-        List<LiveCoupon> list = liveCouponService.listCoupon(liveId,couponName);
-        return getDataTable(list);
-    }
-
-    /**
-     * 查询优惠券列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:list')")
-    @GetMapping("/listOn")
-    public TableDataInfo listOn(@RequestParam("liveId") Long liveId)
-    {
-        startPage();
-        List<LiveCoupon> list = liveCouponService.listOn(liveId);
-        return getDataTable(list);
-    }
-
-
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:add')")
-    @Log(title = "直播优惠券", businessType = BusinessType.INSERT)
-    @PostMapping("/delLiveCoupon")
-    public AjaxResult delLiveCoupon(@RequestBody LiveCouponListVo vo)
-    {
-        return toAjax(liveCouponService.delLiveCoupon(vo));
-    }
-
-    /**
-     * 新增直播商品
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:add')")
-    @Log(title = "直播优惠券", businessType = BusinessType.INSERT)
-    @PostMapping("/addLiveCoupon")
-    public AjaxResult addLiveCoupon(@RequestBody Map<String, Object> payload)
-    {
-
-        return toAjax(liveCouponService.insertLiveCouponEntity(payload));
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:edit')")
-    @PostMapping("/handleIsShowChange")
-    public R handleIsShowChange(@RequestBody Map<String, Object> payload) {
-        return liveCouponService.handleIsShowChange(payload);
-    }
-
-    /**
-     * 批量删除视频
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:edit')")
-    @PostMapping("/handleDeleteSelected")
-    public R handleDeleteSelected(@RequestBody LiveCouponListVo listVo) {
-        return liveCouponService.handleDeleteSelectedAdmin(listVo);
-    }
-    /**
-     * 批量删除视频
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveCoupon:edit')")
-    @PostMapping("/updateLiveCouponBind")
-    public R updateLiveCouponBind(@RequestBody LiveCouponListVo listVo) {
-        return liveCouponService.updateLiveCouponBind(listVo);
-    }
-}

+ 0 - 103
fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponIssueController.java

@@ -1,103 +0,0 @@
-package com.fs.live.controller;
-
-import java.util.List;
-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.live.domain.LiveCouponIssue;
-import com.fs.live.service.ILiveCouponIssueService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
-
-/**
- * 优惠券领取Controller
- *
- * @author fs
- * @date 2025-09-30
- */
-@RestController
-@RequestMapping("/live/coupon/issue")
-public class LiveCouponIssueController extends BaseController
-{
-    @Autowired
-    private ILiveCouponIssueService liveCouponIssueService;
-
-    /**
-     * 查询优惠券领取列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveCouponIssue liveCouponIssue)
-    {
-        startPage();
-        List<LiveCouponIssue> list = liveCouponIssueService.selectLiveCouponIssueList(liveCouponIssue);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出优惠券领取列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:export')")
-    @Log(title = "优惠券领取", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveCouponIssue liveCouponIssue)
-    {
-        List<LiveCouponIssue> list = liveCouponIssueService.selectLiveCouponIssueList(liveCouponIssue);
-        ExcelUtil<LiveCouponIssue> util = new ExcelUtil<LiveCouponIssue>(LiveCouponIssue.class);
-        return util.exportExcel(list, "issue");
-    }
-
-    /**
-     * 获取优惠券领取详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveCouponIssueService.selectLiveCouponIssueById(id));
-    }
-
-    /**
-     * 新增优惠券领取
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:add')")
-    @Log(title = "优惠券领取", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveCouponIssue liveCouponIssue)
-    {
-        return toAjax(liveCouponIssueService.insertLiveCouponIssue(liveCouponIssue));
-    }
-
-    /**
-     * 修改优惠券领取
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:edit')")
-    @Log(title = "优惠券领取", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveCouponIssue liveCouponIssue)
-    {
-        return toAjax(liveCouponIssueService.updateLiveCouponIssue(liveCouponIssue));
-    }
-
-    /**
-     * 删除优惠券领取
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:remove')")
-    @Log(title = "优惠券领取", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveCouponIssueService.deleteLiveCouponIssueByIds(ids));
-    }
-}

+ 0 - 103
fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponIssueUserController.java

@@ -1,103 +0,0 @@
-package com.fs.live.controller;
-
-import java.util.List;
-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.live.domain.LiveCouponIssueUser;
-import com.fs.live.service.ILiveCouponIssueUserService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
-
-/**
- * 优惠券用户领取记录Controller
- *
- * @author fs
- * @date 2025-09-30
- */
-@RestController
-@RequestMapping("/live/coupon/issue/user")
-public class LiveCouponIssueUserController extends BaseController
-{
-    @Autowired
-    private ILiveCouponIssueUserService liveCouponIssueUserService;
-
-    /**
-     * 查询优惠券用户领取记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveCouponIssueUser liveCouponIssueUser)
-    {
-        startPage();
-        List<LiveCouponIssueUser> list = liveCouponIssueUserService.selectLiveCouponIssueUserList(liveCouponIssueUser);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出优惠券用户领取记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:export')")
-    @Log(title = "优惠券用户领取记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveCouponIssueUser liveCouponIssueUser)
-    {
-        List<LiveCouponIssueUser> list = liveCouponIssueUserService.selectLiveCouponIssueUserList(liveCouponIssueUser);
-        ExcelUtil<LiveCouponIssueUser> util = new ExcelUtil<LiveCouponIssueUser>(LiveCouponIssueUser.class);
-        return util.exportExcel(list, "user");
-    }
-
-    /**
-     * 获取优惠券用户领取记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveCouponIssueUserService.selectLiveCouponIssueUserById(id));
-    }
-
-    /**
-     * 新增优惠券用户领取记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:add')")
-    @Log(title = "优惠券用户领取记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveCouponIssueUser liveCouponIssueUser)
-    {
-        return toAjax(liveCouponIssueUserService.insertLiveCouponIssueUser(liveCouponIssueUser));
-    }
-
-    /**
-     * 修改优惠券用户领取记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:edit')")
-    @Log(title = "优惠券用户领取记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveCouponIssueUser liveCouponIssueUser)
-    {
-        return toAjax(liveCouponIssueUserService.updateLiveCouponIssueUser(liveCouponIssueUser));
-    }
-
-    /**
-     * 删除优惠券用户领取记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:remove')")
-    @Log(title = "优惠券用户领取记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveCouponIssueUserService.deleteLiveCouponIssueUserByIds(ids));
-    }
-}

+ 0 - 105
fs-admin/src/main/java/com/fs/live/live/controller/LiveCouponUserController.java

@@ -1,105 +0,0 @@
-package com.fs.live.controller;
-
-import java.util.List;
-
-import com.fs.common.utils.ParseUtils;
-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.live.domain.LiveCouponUser;
-import com.fs.live.service.ILiveCouponUserService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
-
-/**
- * 优惠券发放记录Controller
- *
- * @author fs
- * @date 2025-09-30
- */
-@RestController
-@RequestMapping("/live/coupon/user")
-public class LiveCouponUserController extends BaseController
-{
-    @Autowired
-    private ILiveCouponUserService liveCouponUserService;
-
-    /**
-     * 查询优惠券发放记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveCouponUser liveCouponUser)
-    {
-        startPage();
-        List<LiveCouponUser> list = liveCouponUserService.selectLiveCouponUserList(liveCouponUser);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出优惠券发放记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:export')")
-    @Log(title = "优惠券发放记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveCouponUser liveCouponUser)
-    {
-        List<LiveCouponUser> list = liveCouponUserService.selectLiveCouponUserList(liveCouponUser);
-        ExcelUtil<LiveCouponUser> util = new ExcelUtil<LiveCouponUser>(LiveCouponUser.class);
-        return util.exportExcel(list, "user");
-    }
-
-    /**
-     * 获取优惠券发放记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveCouponUserService.selectLiveCouponUserById(id));
-    }
-
-    /**
-     * 新增优惠券发放记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:add')")
-    @Log(title = "优惠券发放记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveCouponUser liveCouponUser)
-    {
-        return toAjax(liveCouponUserService.insertLiveCouponUser(liveCouponUser));
-    }
-
-    /**
-     * 修改优惠券发放记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:edit')")
-    @Log(title = "优惠券发放记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveCouponUser liveCouponUser)
-    {
-        return toAjax(liveCouponUserService.updateLiveCouponUser(liveCouponUser));
-    }
-
-    /**
-     * 删除优惠券发放记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:issue:remove')")
-    @Log(title = "优惠券发放记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveCouponUserService.deleteLiveCouponUserByIds(ids));
-    }
-}

+ 0 - 193
fs-admin/src/main/java/com/fs/live/live/controller/LiveDataController.java

@@ -1,193 +0,0 @@
-package com.fs.live.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.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.SecurityUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.company.domain.CompanyUser;
-import com.fs.framework.service.TokenService;
-import com.fs.live.domain.LiveData;
-import com.fs.live.param.LiveDataParam;
-import com.fs.live.service.ILiveDataService;
-import com.fs.live.vo.LiveUserFirstVo;
-import com.fs.live.vo.LiveUserDetailExportVO;
-import com.github.pagehelper.PageHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-import java.util.Map;
-
-
-@RestController
-@RequestMapping("/liveData/liveData")
-public class LiveDataController extends BaseController {
-
-    @Autowired
-    private ILiveDataService liveDataService;
-    @Autowired
-    private TokenService tokenService;
-
-    /**
-     * 直播数据页面卡片数据
-     */
-    @GetMapping("/dashboardData")
-    public R dashboardData(@RequestParam Long liveId, HttpServletRequest request) {
-        return liveDataService.dashboardData(liveId);
-    }
-
-    /**
-     * 直播数据页面 分页查询邀请榜单
-     */
-    @GetMapping("/dashboardInviteList")
-    public TableDataInfo inviteList(@RequestParam Long liveId, HttpServletRequest request) {
-        startPage();
-        List<LiveUserFirstVo> list = liveDataService.inviteList(liveId);
-        return getDataTable(list);
-    }
-
-    /**
-     * 查询新直播数据列表
-     */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:list')")
-    @PostMapping("/listLiveData")
-    public R listLiveData(@RequestBody LiveDataParam param, HttpServletRequest request)
-    {
-        PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        return liveDataService.listLiveData(param);
-    }
-
-    /**
-     * 查询直播数据列表
-     * */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/list")
-    public List<LiveData> list(LiveData liveData) {
-        return liveDataService.selectLiveDataList(liveData);
-    }
-
-    /**
-     * 查询直播数据详情
-     * */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/get/{liveId}")
-    public R getLiveData(@PathVariable Long liveId) {
-        return R.ok().put("liveData", liveDataService.selectLiveDataByLiveId(liveId));
-    }
-
-    /**
-     * 点赞
-     * */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:edit')")
-    @GetMapping("/like/{liveId}")
-    public R like(@PathVariable Long liveId) {
-        return R.ok(liveDataService.updateLikeByLiveId(liveId, SecurityUtils.getLoginUser().getUser().getUserId()));
-    }
-
-    /**
-     * 收藏
-     * */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:edit')")
-    @GetMapping("/collect/{liveId}")
-    public R collect(@PathVariable Long liveId) {
-        return R.ok(liveDataService.collect(liveId, SecurityUtils.getLoginUser().getUser().getUserId()));
-    }
-
-    /**
-     * 关注
-     * */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:edit')")
-    @GetMapping("/follow/{liveId}")
-    public R follow(@PathVariable Long liveId) {
-        return R.ok(liveDataService.follow(liveId, SecurityUtils.getLoginUser().getUser().getUserId()));
-    }
-
-    /**
-     * 获取直播内数据
-     * */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/getLiveViewData")
-    public R getLiveViewData(Long liveId) {
-        Map<String,Object> liveViewData =liveDataService.getLiveViewData(liveId);
-        return R.ok(liveViewData);
-    }
-
-    /**
-     * 查询直播间详情数据(SQL方式)
-     * @param liveId 直播间ID
-     * @return 详情数据
-     */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/getLiveDataDetailBySql")
-    public R getLiveDataDetailBySql(@RequestParam Long liveId) {
-        return liveDataService.getLiveDataDetailBySql(liveId);
-    }
-
-    /**
-     * 查询直播间用户详情列表(SQL方式)
-     * @param liveId 直播间ID
-     * @param pageNum 页码
-     * @param pageSize 每页大小
-     * @return 用户详情列表
-     */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/getLiveUserDetailListBySql")
-    public R getLiveUserDetailListBySql(@RequestParam Long liveId,
-                                        @RequestParam(defaultValue = "1") Integer pageNum,
-                                        @RequestParam(defaultValue = "100") Integer pageSize) {
-        // 限制最大每页查询条数为1000
-        if (pageSize > 1000) {
-            pageSize = 1000;
-        }
-
-        PageHelper.startPage(pageNum, pageSize);
-        return liveDataService.getLiveUserDetailListBySql(liveId,null,null);
-    }
-
-    /**
-     * 查询直播间详情数据(查询数据服务器处理方式)
-     * @param liveId 直播间ID
-     * @return 详情数据
-     */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/getLiveDataDetailByServer")
-    public R getLiveDataDetailByServer(@RequestParam Long liveId) {
-        return liveDataService.getLiveDataDetailByServer(liveId);
-    }
-
-    /**
-     * 查询直播间用户详情列表(查询数据服务器处理方式)
-     * @param liveId 直播间ID
-     * @return 用户详情列表
-     */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:query')")
-    @GetMapping("/getLiveUserDetailListByServer")
-    public R getLiveUserDetailListByServer(@RequestParam Long liveId) {
-        return liveDataService.getLiveUserDetailListByServer(liveId);
-    }
-
-    /**
-     * 导出直播间用户详情数据
-     * @param liveId 直播间ID
-     * @return Excel文件
-     */
-    @PreAuthorize("@ss.hasPermi('liveData:liveData:export')")
-    @Log(title = "直播间用户详情", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportLiveUserDetail")
-    public AjaxResult exportLiveUserDetail(@RequestParam Long liveId) {
-        List<LiveUserDetailExportVO> list = liveDataService.exportLiveUserDetail(liveId,null,null);
-        if (list == null || list.isEmpty()) {
-            return AjaxResult.error("未找到用户详情数据");
-        }
-
-        ExcelUtil<LiveUserDetailExportVO> util = new ExcelUtil<>(LiveUserDetailExportVO.class);
-        return util.exportExcel(list, "直播间用户详情数据");
-    }
-
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveEventConfController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveEventConf;
-import com.fs.live.service.ILiveEventConfService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播触发事件配置Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveEventConf")
-public class LiveEventConfController extends BaseController
-{
-    @Autowired
-    private ILiveEventConfService liveEventConfService;
-
-    /**
-     * 查询直播触发事件配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveEventConf:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveEventConf liveEventConf)
-    {
-        startPage();
-        List<LiveEventConf> list = liveEventConfService.selectLiveEventConfList(liveEventConf);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播触发事件配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveEventConf:export')")
-    @Log(title = "直播触发事件配置", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveEventConf liveEventConf)
-    {
-        List<LiveEventConf> list = liveEventConfService.selectLiveEventConfList(liveEventConf);
-        ExcelUtil<LiveEventConf> util = new ExcelUtil<LiveEventConf>(LiveEventConf.class);
-        return util.exportExcel(list, "直播触发事件配置数据");
-    }
-
-    /**
-     * 获取直播触发事件配置详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveEventConf:query')")
-    @GetMapping(value = "/{eventId}")
-    public AjaxResult getInfo(@PathVariable("eventId") Long eventId)
-    {
-        return AjaxResult.success(liveEventConfService.selectLiveEventConfByEventId(eventId));
-    }
-
-    /**
-     * 新增直播触发事件配置
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveEventConf:add')")
-    @Log(title = "直播触发事件配置", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveEventConf liveEventConf)
-    {
-        return toAjax(liveEventConfService.insertLiveEventConf(liveEventConf));
-    }
-
-    /**
-     * 修改直播触发事件配置
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveEventConf:edit')")
-    @Log(title = "直播触发事件配置", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveEventConf liveEventConf)
-    {
-        return toAjax(liveEventConfService.updateLiveEventConf(liveEventConf));
-    }
-
-    /**
-     * 删除直播触发事件配置
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveEventConf:remove')")
-    @Log(title = "直播触发事件配置", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{eventIds}")
-    public AjaxResult remove(@PathVariable Long[] eventIds)
-    {
-        return toAjax(liveEventConfService.deleteLiveEventConfByEventIds(eventIds));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveGiftController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveGift;
-import com.fs.live.service.ILiveGiftService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播间礼物配置Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/gift")
-public class LiveGiftController extends BaseController
-{
-    @Autowired
-    private ILiveGiftService liveGiftService;
-
-    /**
-     * 查询直播间礼物配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:gift:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveGift liveGift)
-    {
-        startPage();
-        List<LiveGift> list = liveGiftService.selectLiveGiftList(liveGift);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播间礼物配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:gift:export')")
-    @Log(title = "直播间礼物配置", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveGift liveGift)
-    {
-        List<LiveGift> list = liveGiftService.selectLiveGiftList(liveGift);
-        ExcelUtil<LiveGift> util = new ExcelUtil<LiveGift>(LiveGift.class);
-        return util.exportExcel(list, "直播间礼物配置数据");
-    }
-
-    /**
-     * 获取直播间礼物配置详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:gift:query')")
-    @GetMapping(value = "/{giftId}")
-    public AjaxResult getInfo(@PathVariable("giftId") Long giftId)
-    {
-        return AjaxResult.success(liveGiftService.selectLiveGiftByGiftId(giftId));
-    }
-
-    /**
-     * 新增直播间礼物配置
-     */
-    @PreAuthorize("@ss.hasPermi('live:gift:add')")
-    @Log(title = "直播间礼物配置", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveGift liveGift)
-    {
-        return toAjax(liveGiftService.insertLiveGift(liveGift));
-    }
-
-    /**
-     * 修改直播间礼物配置
-     */
-    @PreAuthorize("@ss.hasPermi('live:gift:edit')")
-    @Log(title = "直播间礼物配置", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveGift liveGift)
-    {
-        return toAjax(liveGiftService.updateLiveGift(liveGift));
-    }
-
-    /**
-     * 删除直播间礼物配置
-     */
-    @PreAuthorize("@ss.hasPermi('live:gift:remove')")
-    @Log(title = "直播间礼物配置", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{giftIds}")
-    public AjaxResult remove(@PathVariable Long[] giftIds)
-    {
-        return toAjax(liveGiftService.deleteLiveGiftByGiftIds(giftIds));
-    }
-}

+ 0 - 181
fs-admin/src/main/java/com/fs/live/live/controller/LiveGoodsController.java

@@ -1,181 +0,0 @@
-package com.fs.live.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.domain.R;
-import com.fs.common.core.domain.entity.SysUser;
-import com.fs.framework.security.LoginUser;
-import com.fs.framework.security.SecurityUtils;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.hisStore.service.IFsStoreProductScrmService;
-import com.fs.hisStore.vo.FsStoreProductListVO;
-import com.fs.live.domain.LiveGoods;
-import com.fs.live.service.ILiveGoodsService;
-import com.fs.live.vo.LiveGoodsListVo;
-import com.fs.live.vo.LiveGoodsVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * 直播商品Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveGoods")
-public class LiveGoodsController extends BaseController
-{
-    @Autowired
-    private ILiveGoodsService liveGoodsService;
-
-    @Autowired
-    private IFsStoreProductScrmService fsStoreProductService;
-
-
-    /**
-     * 查询直播商品列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveGoods liveGoods, @RequestParam(value = "liveId", required = true) Long liveId)
-    {
-        // 设置企业ID和企业用户ID
-        setCompanyId(liveGoods);
-        liveGoods.setLiveId(liveId);
-
-        startPage();
-        List<LiveGoodsVo> list = liveGoodsService.selectProductListByLiveId(liveGoods);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播商品列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:export')")
-    @Log(title = "直播商品", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveGoods liveGoods)
-    {
-        // 设置企业ID和企业用户ID
-        setCompanyId(liveGoods);
-
-        List<LiveGoods> list = liveGoodsService.selectLiveGoodsList(liveGoods);
-        ExcelUtil<LiveGoods> util = new ExcelUtil<LiveGoods>(LiveGoods.class);
-        return util.exportExcel(list, "直播商品数据");
-    }
-
-    /**
-     * 获取直播商品详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:query')")
-    @GetMapping(value = "/{goodsId}")
-    public AjaxResult getInfo(@PathVariable("goodsId") Long goodsId)
-    {
-        //CompanyUser user = SecurityUtils.getLoginUser().getUser();
-        return AjaxResult.success();
-    }
-
-    /**
-     * 新增直播商品
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:add')")
-    @Log(title = "直播商品", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody Map<String, Object> payload)
-    {
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        //CompanyUser companyUser = companyUserService.selectCompanyUserById(loginUser.getCompanyUser().getUserId());
-        SysUser user = loginUser.getUser();
-        return toAjax(liveGoodsService.insertLiveGoodsAdmin(payload, user));
-    }
-
-    /**
-     * 修改直播商品
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:edit')")
-    @Log(title = "直播商品", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public R edit(@RequestBody LiveGoods liveGoods)
-    {
-        return liveGoodsService.updateLiveGoods(liveGoods);
-    }
-
-    /**
-     * 删除直播商品
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:remove')")
-    @Log(title = "直播商品", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{goodsIds}")
-    public AjaxResult remove(@PathVariable Long[] goodsIds)
-    {
-        return toAjax(liveGoodsService.deleteLiveGoodsByGoodsIds(goodsIds));
-    }
-
-    /**
-     * 设置企业ID 企业用户ID
-     * @param liveGoods 直播商品
-     */
-    private void setCompanyId(LiveGoods liveGoods) {
-        // 设置企业ID 企业用户ID
-        //LoginUser loginUser = SecurityUtils.getLoginUser();
-        //CompanyUser companyUser = companyUserService.selectCompanyUserById(loginUser.getCompanyUser().getUserId());
-        //liveGoods.setCompanyId(companyUser.getCompanyId());
-        //liveGoods.setCompanyUserId(companyUser.getUserId());
-    }
-
-    /**
-     * 查询商品列表
-     */
-    @PreAuthorize("@ss.hasPermi('store:storeProduct:list')")
-    @GetMapping("/liveList")
-    public TableDataInfo liveList(LiveGoods liveGoods)
-    {
-        startPage();
-        List<FsStoreProductListVO> list = fsStoreProductService.liveList(liveGoods);
-        return getDataTable(list);
-    }
-
-    /**
-     * 获取直播店铺
-     * */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:query')")
-    @GetMapping("/liveStore/{liveId}")
-    public R liveGoodsStore(@PathVariable Long liveId,@RequestParam String key)
-    {
-        return liveGoodsService.getStoreByLiveId(liveId, key);
-    }
-
-    /**
-     * 批量上下架视频
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:edit')")
-    @PostMapping("/handleShelfOrUn")
-    public R handleShelfOrUn(@RequestBody LiveGoodsListVo listVo) {
-        return liveGoodsService.handleShelfOrUnAdmin(listVo);
-    }
-
-    /**
-     * 批量删除视频
-     */
-    @PostMapping("/handleDeleteSelected")
-    public R handleDeleteSelected(@RequestBody LiveGoodsListVo listVo) {
-        return liveGoodsService.handleDeleteSelectedAdmin(listVo);
-    }
-
-    /**
-     * 更新展示状态
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveGoods:edit')")
-    @PostMapping("/handleIsShowChange")
-    public R handleIsShowChange(@RequestBody LiveGoodsListVo listVo) {
-        return liveGoodsService.handleIsShowChange(listVo);
-    }
-}

+ 0 - 419
fs-admin/src/main/java/com/fs/live/live/controller/LiveHealthOrderController.java

@@ -1,419 +0,0 @@
-package com.fs.live.controller;
-
-import cn.hutool.core.bean.BeanUtil;
-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.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.CloudHostUtils;
-import com.fs.common.utils.StringUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.his.domain.FsStoreOrderDf;
-import com.fs.his.vo.FsStoreOrderListAndStatisticsVo;
-import com.fs.hisStore.dto.StoreOrderProductDTO;
-import com.fs.hisStore.param.FsStoreOrderParam;
-import com.fs.hisStore.vo.FsStoreOrderErpExportVO;
-import com.fs.hisStore.vo.FsStoreOrderExportVO;
-import com.fs.hisStore.vo.FsStoreOrderItemExportVO;
-import com.fs.live.domain.LiveOrderDf;
-import com.fs.live.dto.LiveOrderDeliveryNoteDTO;
-import com.fs.live.param.LiveOrderParam;
-import com.fs.live.service.ILiveOrderDfService;
-import com.fs.live.service.ILiveOrderItemService;
-import com.fs.live.service.ILiveOrderService;
-import com.fs.live.vo.*;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.math.BigDecimal;
-import java.util.*;
-
-/**`
- * 订单Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveOrder")
-public class LiveHealthOrderController extends BaseController {
-
-    @Autowired
-    private ILiveOrderService liveOrderService;
-    @Autowired
-    private ILiveOrderItemService orderItemService;
-
-    @Autowired
-    private ILiveOrderDfService liveOrderDfService;
-
-    @PreAuthorize("@ss.hasPermi('store:healthStoreOrder:exportItems:details')")
-    @Log(title = "商城订单明细导出", businessType = BusinessType.EXPORT)
-    @GetMapping("/healthExportItemsDetails")
-    public AjaxResult healthExportItemsDetails(LiveOrderParam param) {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (liveOrderService.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.setIsHealth("1");
-        List<LiveOrderItemExportVO> list = orderItemService.selectLiveOrderItemListExportVO(param);
-        //对手机号脱敏
-        if (list != null) {
-            for (LiveOrderItemExportVO vo : list) {
-                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-                    try {
-                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-                        BeanUtil.copyProperties(orderProductDTO, vo);
-                    } catch (Exception e) {
-                    }
-                }
-            }
-        }
-        ExcelUtil<LiveOrderItemExportVO> util = new ExcelUtil<LiveOrderItemExportVO>(LiveOrderItemExportVO.class);
-        return util.exportExcel(list, "订单明细数据");
-    }
-
-
-    /**
-     * 导出健康商城列表(明文)
-     */
-    @PreAuthorize("@ss.hasPermi('store:healthStoreOrder:export:details')")
-    @Log(title = "健康商城订单", businessType = BusinessType.EXPORT)
-    @PostMapping("/healthExportDetails")
-    public AjaxResult healthExportDetails(@RequestBody LiveOrderParam param) {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (liveOrderService.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.setIsHealth("1");
-        List<LiveOrderErpExportVO> list = liveOrderService.selectLiveOrderListVOByExport(param);
-        String filter = param.getFilter();
-        // 1. 处理filter参数:将逗号分隔的字符串拆分为ArrayList<String>
-        ArrayList<String> filterList = new ArrayList<>();
-        if (StringUtils.isNotBlank(filter)) {
-            // 按逗号拆分,同时去除可能的空格(如filter传"orderId, orderCode"时兼容)
-            String[] filterArr = filter.split("\\s*,\\s*");
-            filterList.addAll(Arrays.asList(filterArr));
-        }
-        // 动态导出:根据选中的字段生成Excel
-        ExcelUtil<LiveOrderErpExportVO> util = new ExcelUtil<LiveOrderErpExportVO>(LiveOrderErpExportVO.class);
-        AjaxResult result;
-        // 如果有选中的字段,只导出这些字段
-        if (filter != null && !filter.isEmpty()) {
-            return util.exportExcelSelectedColumns(list, "订单数据", filterList);
-        } else {
-            // 导出所有字段
-            return util.exportExcel(list, "订单数据");
-        }
-    }
-
-    /**
-     * 导出健康商城列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:healthLiveOrder:export')")
-    @Log(title = "健康商城订单", businessType = BusinessType.EXPORT)
-    @PostMapping("/healthExport")
-    public AjaxResult export1(@RequestBody LiveOrderParam param) {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (liveOrderService.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.setIsHealth("1");
-        List<LiveOrderErpExportVO> list = liveOrderService.selectLiveOrderListVOByExport(param);
-        //对手机号脱敏
-        if (list != null) {
-            for (LiveOrderErpExportVO 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"));
-                }
-
-            }
-        }
-        String filter = param.getFilter();
-        // 1. 处理filter参数:将逗号分隔的字符串拆分为ArrayList<String>
-        ArrayList<String> filterList = new ArrayList<>();
-        if (StringUtils.isNotBlank(filter)) {
-            // 按逗号拆分,同时去除可能的空格(如filter传"orderId, orderCode"时兼容)
-            String[] filterArr = filter.split("\\s*,\\s*");
-            filterList.addAll(Arrays.asList(filterArr));
-        }
-        // 动态导出:根据选中的字段生成Excel
-        ExcelUtil<LiveOrderErpExportVO> util = new ExcelUtil<LiveOrderErpExportVO>(LiveOrderErpExportVO.class);
-        AjaxResult result;
-        // 如果有选中的字段,只导出这些字段
-        if (filter != null && !filter.isEmpty()) {
-            return util.exportExcelSelectedColumns(list, "订单数据", filterList);
-        } else {
-            // 导出所有字段
-            return util.exportExcel(list, "订单数据");
-        }
-    }
-
-    /**
-     * 查询健康商城订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:healthLiveOrder:list')")
-    @PostMapping("/healthList")
-    public TableDataInfo healthStoreList(@RequestBody LiveOrderParam param) {
-        startPage();
-        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.setIsHealth("1");
-        List<LiveOrderVO> list = liveOrderService.selectLiveOrderListVO(param);
-        //金牛需求 区别其他项目 status = 6 (金牛代服管家) ,其他项目请避免使用订单状态status = 6
-        TableDataInfo dataTable = getDataTable(list);
-        if (CloudHostUtils.hasCloudHostName("康年堂")){
-            dataTable.setMsg("knt");
-        }
-        if (list != null) {
-            for (LiveOrderVO 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"));
-                }
-                if (CloudHostUtils.hasCloudHostName("康年堂")){
-                    //查询顺丰代服账号
-                    LiveOrderDf df = liveOrderDfService.selectLiveOrderDfByOrderId(vo.getId());
-                    if (df != null){
-                        vo.setErpAccount(df.getLoginAccount());
-                    }
-                }
-
-            }
-        }
-        LiveOrderListAndStatisticsVo vo = new LiveOrderListAndStatisticsVo();
-        BeanUtils.copyProperties(dataTable, vo);
-        if (dataTable.getTotal()>0){
-            Map<String, BigDecimal> statistics= liveOrderService.selectLiveOrderStatistics(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= liveOrderService.selectLiveOrderProductStatistics(param);
-            if (StringUtils.isNotBlank(productStatistics)){
-                vo.setProductInfo(productStatistics);
-            } else {
-                vo.setProductInfo("");
-            }
-
-        }
-        return vo;
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:healthLiveOrder:exportItems')")
-    @Log(title = "直播订单明细导出", businessType = BusinessType.EXPORT)
-    @GetMapping("/healthExportItems")
-    public AjaxResult exportItems1(LiveOrderParam param) {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (liveOrderService.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.setIsHealth("1");
-        List<LiveOrderItemExportVO> list = orderItemService.selectLiveOrderItemListExportVO(param);
-        //对手机号脱敏
-        if (list != null) {
-            for (LiveOrderItemExportVO vo : list) {
-                if (vo.getUserPhone() != null) {
-                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
-                    vo.setUserPhone(phone);
-                }
-                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-                    try {
-                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-                        BeanUtil.copyProperties(orderProductDTO, vo);
-                    } catch (Exception e) {
-                    }
-                }
-            }
-        }
-        ExcelUtil<LiveOrderItemExportVO> util = new ExcelUtil<LiveOrderItemExportVO>(LiveOrderItemExportVO.class);
-        return util.exportExcel(list, "订单明细数据");
-    }
-
-
-
-    // 允许的文件扩展名
-    private static final String[] ALLOWED_EXCEL_EXTENSIONS = {".xlsx", ".xls"};
-
-    // 最大文件大小(5MB)
-    private static final long MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB
-
-    /**
-     * 下载订单发货导入模板
-     */
-    @GetMapping("/importDeliveryNoteExpressTemplate")
-    public AjaxResult importDeliveryNoteExpressTemplate() {
-        ExcelUtil<LiveOrderDeliveryNoteDTO> util = new ExcelUtil<>(LiveOrderDeliveryNoteDTO.class);
-        return util.importTemplateExcel("订单发货导入模板");
-    }
-
-    /**
-     * 订单发货批量导入
-     */
-    @Log(title = "发货同步导入", businessType = BusinessType.IMPORT)
-    @PostMapping("/importDeliveryNoteExpress")
-    public R importDeliveryNoteExpress(@RequestParam("file") MultipartFile file, @RequestParam("miniAppId") String miniAppId) {
-        // 1. 检查文件是否为空
-        if (file.isEmpty()) {
-            return R.error("上传的文件不能为空");
-        }
-        // 2. 检查文件大小
-        if (file.getSize() > MAX_FILE_SIZE) {
-            return R.error("文件大小不能超过5MB");
-        }
-        // 3. 检查文件扩展名
-        String fileName = file.getOriginalFilename();
-        if (fileName == null || !isValidExcelFile(fileName)) {
-            return R.error("请上传Excel文件(.xlsx或.xls格式)");
-        }
-
-        ExcelUtil<LiveOrderDeliveryNoteDTO> util = new ExcelUtil<>(LiveOrderDeliveryNoteDTO.class);
-        try {
-            List<LiveOrderDeliveryNoteDTO> dtoList = util.importExcel(file.getInputStream());
-            if (!dtoList.isEmpty()) {
-                if (dtoList.size() > 200) {
-                    return R.error("操作失败,导入数据不能大于200条!");
-                }
-                return liveOrderService.importDeliveryNoteExpress(dtoList,miniAppId);
-            } else {
-                return R.error("操作失败,导入数据不能小于1条!");
-            }
-        } catch (Exception e) {
-            logger.error("导入发货单失败", e);
-            return R.error("导入失败:" + e.getMessage());
-        }
-    }
-
-    /**
-     * 发货单导出接口
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:healthExportShippingOrder')")
-    @Log(title = "发货单导出", businessType = BusinessType.EXPORT)
-    @GetMapping("/healthExportShippingOrder")
-    public AjaxResult healthExportShippingOrder(LiveOrderParam param) {
-        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())) {
-            param.setBeginTime(null);
-            param.setEndTime(null);
-        }
-        if (liveOrderService.isEntityNull(param)) {
-            param = new LiveOrderParam();
-        }
-        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("--"));
-        }
-        List<LiveOrderDeliveryNoteExportVO> deliveryNoteExportVOList = liveOrderService.getDeliveryNote(param);
-        ExcelUtil<LiveOrderDeliveryNoteExportVO> util = new ExcelUtil<>(LiveOrderDeliveryNoteExportVO.class);
-        //通过商品ID获取关键字
-        String firstKeyword = deliveryNoteExportVOList.stream()
-                .map(LiveOrderDeliveryNoteExportVO::getKeyword)
-                .findFirst()
-                .orElse("无订单");
-        String fileName = "077AC" + firstKeyword + new java.text.SimpleDateFormat("yyyyMMdd").format(new Date());
-        return util.exportExcel(deliveryNoteExportVOList, fileName);
-    }
-
-    /**
-     * 检查文件是否为有效的Excel文件
-     */
-    private boolean isValidExcelFile(String fileName) {
-        for (String ext : ALLOWED_EXCEL_EXTENSIONS) {
-            if (fileName.toLowerCase().endsWith(ext)) {
-                return true;
-            }
-        }
-        return false;
-    }
-}

+ 0 - 143
fs-admin/src/main/java/com/fs/live/live/controller/LiveLotteryConfController.java

@@ -1,143 +0,0 @@
-package com.fs.live.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.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.SecurityUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveLotteryConf;
-import com.fs.live.param.LiveLotteryProductSaveParam;
-import com.fs.live.service.ILiveLotteryConfService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播抽奖配置Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveLotteryConf")
-public class LiveLotteryConfController extends BaseController
-{
-    @Autowired
-    private ILiveLotteryConfService liveLotteryConfService;
-
-    /**
-     * 查询直播抽奖配置列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveLotteryConf liveLotteryConf)
-    {
-        startPage();
-        List<LiveLotteryConf> list = liveLotteryConfService.selectLiveLotteryConfList(liveLotteryConf);
-        return getDataTable(list);
-    }
-
-    @GetMapping("/listOn")
-    public TableDataInfo listOn(LiveLotteryConf liveLotteryConf)
-    {
-        startPage();
-        List<LiveLotteryConf> list = liveLotteryConfService.selectLiveLotteryConfListOn(liveLotteryConf);
-        return getDataTable(list);
-    }
-    /**
-     * 导出直播抽奖配置列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:export')")
-    @Log(title = "直播抽奖配置", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveLotteryConf liveLotteryConf)
-    {
-        List<LiveLotteryConf> list = liveLotteryConfService.selectLiveLotteryConfList(liveLotteryConf);
-        ExcelUtil<LiveLotteryConf> util = new ExcelUtil<LiveLotteryConf>(LiveLotteryConf.class);
-        return util.exportExcel(list, "直播抽奖配置数据");
-    }
-
-    /**
-     * 获取直播抽奖配置详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:query')")
-    @GetMapping(value = "/{lotteryId}")
-    public AjaxResult getInfo(@PathVariable("lotteryId") Long lotteryId)
-    {
-        return AjaxResult.success(liveLotteryConfService.selectLiveLotteryConfByLotteryId(lotteryId));
-    }
-
-    /**
-     * 新增直播抽奖配置
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:add')")
-    @Log(title = "直播抽奖配置", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveLotteryConf liveLotteryConf)
-    {
-        return toAjax(liveLotteryConfService.insertLiveLotteryConf(liveLotteryConf));
-    }
-
-    /**
-     * 修改直播抽奖配置
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:edit')")
-    @Log(title = "直播抽奖配置", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public R edit(@RequestBody LiveLotteryConf liveLotteryConf)
-    {
-        return liveLotteryConfService.updateLiveLotteryConf(liveLotteryConf);
-    }
-
-    /**
-     * 删除直播抽奖配置
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:remove')")
-//    @Log(title = "直播抽奖配置", businessType = BusinessType.DELETE)
-//	@DeleteMapping("/{lotteryIds}")
-//    public AjaxResult remove(@PathVariable Long[] lotteryIds)
-//    {
-//        return toAjax(liveLotteryConfService.deleteLiveLotteryConfByLotteryIds(lotteryIds));
-//    }
-
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:query')")
-    @GetMapping("/live/{liveId}")
-    public List<LiveLotteryConf> getByLiveId(@PathVariable Long liveId) {
-        return liveLotteryConfService.getByLiveId(liveId);
-    }
-
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:remove')")
-    @DeleteMapping("/{id}")
-    public void delete(@PathVariable Long id) {
-        liveLotteryConfService.delete(id);
-    }
-
-    /**
-     * 发起抽奖
-     * */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:edit')")
-    @GetMapping("/start/{lotteryId}")
-    public String  start(@PathVariable Long lotteryId) {
-       return liveLotteryConfService.startLottery(lotteryId, SecurityUtils.getLoginUser().getUser().getUserId());
-    }
-
-    /** 查询抽奖配置的所有商品信息*/
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:query')")
-    @GetMapping("/getGoods/{lotteryId}")
-    public R getGoods(@PathVariable Long lotteryId) {
-        return R.ok().put("data",liveLotteryConfService.getGoods(lotteryId));
-    }
-
-    /** 抽奖商品配置保存*/
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryConf:edit')")
-    @PostMapping("/product")
-    public void saveGoods(@RequestBody LiveLotteryProductSaveParam liveLotteryProducts) {
-        //liveLotteryProducts.setCreateBy(getUsername());
-        liveLotteryConfService.saveProducts(liveLotteryProducts);
-    }
-
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveLotteryRecordController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveLotteryRecord;
-import com.fs.live.service.ILiveLotteryRecordService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播抽奖记录Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveLotteryRecord")
-public class LiveLotteryRecordController extends BaseController
-{
-    @Autowired
-    private ILiveLotteryRecordService liveLotteryRecordService;
-
-    /**
-     * 查询直播抽奖记录列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRecord:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveLotteryRecord liveLotteryRecord)
-    {
-        startPage();
-        List<LiveLotteryRecord> list = liveLotteryRecordService.selectLiveLotteryRecordList(liveLotteryRecord);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播抽奖记录列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRecord:export')")
-    @Log(title = "直播抽奖记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveLotteryRecord liveLotteryRecord)
-    {
-        List<LiveLotteryRecord> list = liveLotteryRecordService.selectLiveLotteryRecordList(liveLotteryRecord);
-        ExcelUtil<LiveLotteryRecord> util = new ExcelUtil<LiveLotteryRecord>(LiveLotteryRecord.class);
-        return util.exportExcel(list, "直播抽奖记录数据");
-    }
-
-    /**
-     * 获取直播抽奖记录详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRecord:query')")
-    @GetMapping(value = "/{lotteryId}")
-    public AjaxResult getInfo(@PathVariable("lotteryId") Long lotteryId)
-    {
-        return AjaxResult.success(liveLotteryRecordService.selectLiveLotteryRecordByLotteryId(lotteryId));
-    }
-
-    /**
-     * 新增直播抽奖记录
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRecord:add')")
-    @Log(title = "直播抽奖记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveLotteryRecord liveLotteryRecord)
-    {
-        return toAjax(liveLotteryRecordService.insertLiveLotteryRecord(liveLotteryRecord));
-    }
-
-    /**
-     * 修改直播抽奖记录
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRecord:edit')")
-    @Log(title = "直播抽奖记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveLotteryRecord liveLotteryRecord)
-    {
-        return toAjax(liveLotteryRecordService.updateLiveLotteryRecord(liveLotteryRecord));
-    }
-
-    /**
-     * 删除直播抽奖记录
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRecord:remove')")
-    @Log(title = "直播抽奖记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{lotteryIds}")
-    public AjaxResult remove(@PathVariable Long[] lotteryIds)
-    {
-        return toAjax(liveLotteryRecordService.deleteLiveLotteryRecordByLotteryIds(lotteryIds));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveLotteryRegistrationController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveLotteryRegistration;
-import com.fs.live.service.ILiveLotteryRegistrationService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播抽奖登记Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveLotteryRegistration")
-public class LiveLotteryRegistrationController extends BaseController
-{
-    @Autowired
-    private ILiveLotteryRegistrationService liveLotteryRegistrationService;
-
-    /**
-     * 查询直播抽奖登记列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRegistration:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveLotteryRegistration liveLotteryRegistration)
-    {
-        startPage();
-        List<LiveLotteryRegistration> list = liveLotteryRegistrationService.selectLiveLotteryRegistrationList(liveLotteryRegistration);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播抽奖登记列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRegistration:export')")
-    @Log(title = "直播抽奖登记", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveLotteryRegistration liveLotteryRegistration)
-    {
-        List<LiveLotteryRegistration> list = liveLotteryRegistrationService.selectLiveLotteryRegistrationList(liveLotteryRegistration);
-        ExcelUtil<LiveLotteryRegistration> util = new ExcelUtil<LiveLotteryRegistration>(LiveLotteryRegistration.class);
-        return util.exportExcel(list, "直播抽奖登记数据");
-    }
-
-    /**
-     * 获取直播抽奖登记详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRegistration:query')")
-    @GetMapping(value = "/{registrationId}")
-    public AjaxResult getInfo(@PathVariable("registrationId") Long registrationId)
-    {
-        return AjaxResult.success(liveLotteryRegistrationService.selectLiveLotteryRegistrationByRegistrationId(registrationId));
-    }
-
-    /**
-     * 新增直播抽奖登记
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRegistration:add')")
-    @Log(title = "直播抽奖登记", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveLotteryRegistration liveLotteryRegistration)
-    {
-        return toAjax(liveLotteryRegistrationService.insertLiveLotteryRegistration(liveLotteryRegistration));
-    }
-
-    /**
-     * 修改直播抽奖登记
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRegistration:edit')")
-    @Log(title = "直播抽奖登记", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveLotteryRegistration liveLotteryRegistration)
-    {
-        return toAjax(liveLotteryRegistrationService.updateLiveLotteryRegistration(liveLotteryRegistration));
-    }
-
-    /**
-     * 删除直播抽奖登记
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveLotteryRegistration:remove')")
-    @Log(title = "直播抽奖登记", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{registrationIds}")
-    public AjaxResult remove(@PathVariable Long[] registrationIds)
-    {
-        return toAjax(liveLotteryRegistrationService.deleteLiveLotteryRegistrationByRegistrationIds(registrationIds));
-    }
-}

+ 0 - 133
fs-admin/src/main/java/com/fs/live/live/controller/LiveMsgController.java

@@ -1,133 +0,0 @@
-package com.fs.live.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.domain.R;
-import com.fs.framework.security.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.poi.ExcelUtil;
-import com.fs.framework.service.TokenService;
-import com.fs.live.domain.LiveMsg;
-import com.fs.live.service.ILiveMsgService;
-import com.fs.live.vo.LiveMsgExportVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播讨论Controller
- *
- * @author fs
- * @date 2025-01-17
- */
-@RestController
-@RequestMapping("/live/liveMsg")
-public class LiveMsgController extends BaseController
-{
-    @Autowired
-    private ILiveMsgService liveMsgService;
-    
-    @Autowired
-    private TokenService tokenService;
-
-    /**
-     * 查询直播讨论列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveMsg:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveMsg liveMsg)
-    {
-        startPage();
-        List<LiveMsg> list = liveMsgService.selectLiveMsgList(liveMsg);
-        return getDataTable(list);
-    }
-
-    @GetMapping("/singleList")
-    public TableDataInfo singleList(LiveMsg liveMsg)
-    {
-        startPage();
-        List<LiveMsg> list = liveMsgService.selectLiveMsgSingleList(liveMsg);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播讨论列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveMsg:export')")
-    @Log(title = "直播讨论", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveMsg liveMsg)
-    {
-        List<LiveMsg> list = liveMsgService.selectLiveMsgList(liveMsg);
-        ExcelUtil<LiveMsg> util = new ExcelUtil<LiveMsg>(LiveMsg.class);
-        return util.exportExcel(list, "直播讨论数据");
-    }
-
-    /**
-     * 获取直播讨论详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveMsg:query')")
-    @GetMapping(value = "/{msgId}")
-    public AjaxResult getInfo(@PathVariable("msgId") Long msgId)
-    {
-        return AjaxResult.success(liveMsgService.selectLiveMsgByMsgId(msgId));
-    }
-
-    /**
-     * 新增直播讨论
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveMsg:add')")
-    @Log(title = "直播讨论", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveMsg liveMsg)
-    {
-        return toAjax(liveMsgService.insertLiveMsg(liveMsg));
-    }
-
-    /**
-     * 修改直播讨论
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveMsg:edit')")
-    @Log(title = "直播讨论", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveMsg liveMsg)
-    {
-        return toAjax(liveMsgService.updateLiveMsg(liveMsg));
-    }
-
-    /**
-     * 删除直播讨论
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveMsg:remove')")
-    @Log(title = "直播讨论", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{msgIds}")
-    public AjaxResult remove(@PathVariable Long[] msgIds)
-    {
-        return toAjax(liveMsgService.deleteLiveMsgByMsgIds(msgIds));
-    }
-
-    /**
-     * 导出直播评论
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveMsg:export')")
-    @Log(title = "直播评论导出", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportComments/{liveId}")
-    public AjaxResult exportComments(@PathVariable("liveId") Long liveId)
-    {
-        try {
-            com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-            Long userId = loginUser.getCompanyUser().getUserId();
-            
-            List<LiveMsgExportVO> list = liveMsgService.exportLiveMsgComments(liveId, userId);
-            ExcelUtil<LiveMsgExportVO> util = new ExcelUtil<LiveMsgExportVO>(LiveMsgExportVO.class);
-            return util.exportExcel(list, "直播评论数据");
-        } catch (Exception e) {
-            return AjaxResult.error("导出失败:" + e.getMessage());
-        }
-    }
-}

+ 0 - 805
fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderController.java

@@ -1,805 +0,0 @@
-package com.fs.live.controller;
-
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
-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.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.crm.domain.CrmCustomer;
-import com.fs.crm.service.ICrmCustomerService;
-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.service.IErpOrderService;
-import com.fs.framework.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.service.IFsDfAccountService;
-import com.fs.his.service.IFsExpressService;
-import com.fs.his.service.IFsUserService;
-import com.fs.his.utils.ConfigUtil;
-import com.fs.hisStore.config.FsErpConfig;
-import com.fs.hisStore.dto.StoreOrderExpressExportDTO;
-import com.fs.hisStore.param.*;
-import com.fs.hisStore.service.IFsExpressScrmService;
-import com.fs.hisStore.task.ExpressTask;
-import com.fs.hisStore.task.LiveTask;
-import com.fs.hisStore.vo.FsStoreOrderItemExportZMVO;
-import com.fs.hisStore.vo.FsStoreOrderVO;
-import com.fs.live.domain.*;
-import com.fs.live.dto.LiveOrderCustomerExportDTO;
-import com.fs.live.dto.LiveOrderDeliveryNoteDTO;
-import com.fs.live.dto.LiveOrderExpressExportDTO;
-import com.fs.live.param.LiveOrderParam;
-import com.fs.live.vo.LiveOrderDeliveryNoteExportVO;
-import com.fs.live.enums.LiveOrderCancleReason;
-import com.fs.live.param.LiveOrderScrmSetErpPhoneParam;
-import com.fs.live.service.*;
-import com.fs.live.vo.*;
-import com.fs.qw.utils.RSAUtils;
-import com.fs.store.domain.FsStoreDelivers;
-import com.fs.system.domain.SysConfig;
-import com.fs.system.mapper.SysConfigMapper;
-import io.swagger.annotations.ApiOperation;
-import org.apache.http.util.Asserts;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-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.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-
-/**`
- * 订单Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveOrder")
-public class LiveOrderController extends BaseController
-{
-    @Autowired
-    private ILiveOrderService liveOrderService;
-    @Autowired
-    private ICrmCustomerService crmCustomerService;
-    @Autowired
-    private IFsUserService userService;
-    @Autowired
-    private ILiveOrderItemService orderItemService;
-    @Autowired
-    private ILiveOrderLogsService orderLogsService;
-    @Autowired
-    private ILiveOrderPaymentService orderPaymentService;
-    @Autowired
-    private TokenService tokenService;
-    @Autowired
-    private IFsExpressScrmService expressService;
-//    @Autowired
-//    private FsWarehousesMapper fsWarehousesMapper;
-    @Autowired
-    IErpOrderService erpOrderService;
-
-
-
-    @Autowired
-    private IFsDfAccountService fsDfAccountService;
-
-    @Autowired
-    SysConfigMapper sysConfigMapper;
-
-    @Autowired
-    private ILiveOrderDfService liveOrderDfService;
-
-    @Autowired
-    private LiveTask liveTask;
-    @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;
-
-
-
-
-    @GetMapping("/importTemplate")
-    public AjaxResult importTemplate() {
-        ExcelUtil<LiveOrderExpressExportDTO> util = new ExcelUtil<LiveOrderExpressExportDTO>(LiveOrderExpressExportDTO.class);
-        return util.importTemplateExcel("物流回单数据");
-    }
-
-    /**
-     * 查询订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveOrder liveOrder)
-    {
-        startPage();
-        List<LiveOrder> list = liveOrderService.selectLiveOrderList(liveOrder);
-        for (LiveOrder vo : list){
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-        }
-        return getDataTable(list);
-    }
-
-
-    /**
-     * 导出订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:export')")
-    @Log(title = "订单", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveOrder liveOrder)
-    {
-        List<LiveOrder> list = liveOrderService.selectLiveOrderList(liveOrder);
-        ExcelUtil<LiveOrder> util = new ExcelUtil<LiveOrder>(LiveOrder.class);
-        return util.exportExcel(list, "订单数据");
-    }
-
-    /**
-     * 查询订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:list')")
-    @GetMapping("/listZm")
-    public TableDataInfo listZm(LiveOrder liveOrder)
-    {
-        startPage();
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        List<LiveOrderVoZm> list = liveOrderService.selectLiveOrderListZm(liveOrder);
-        for (LiveOrderVoZm vo : list){
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-            vo.setCompanyUserPhone(ParseUtils.parsePhone(vo.getCompanyUserPhone()));
-            vo.setUserBindPhone(ParseUtils.parsePhone(vo.getUserBindPhone()));
-            vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-
-            // 财务独特字段
-            if (loginUser.getPermissions().contains("live:liveOrder:finance") || loginUser.getPermissions().contains("*:*:*")) {
-                vo.setCostPrice(vo.getCostPrice());
-                vo.setFPrice(vo.getCostPrice().multiply(BigDecimal.valueOf(Long.parseLong(vo.getTotalNum()))));
-            } else {
-                vo.setCostPrice(BigDecimal.ZERO);
-                vo.setFPrice(BigDecimal.ZERO);
-                vo.setPayDelivery(BigDecimal.ZERO);
-                vo.setBarCode("");
-                vo.setCateName("");
-                vo.setBankTransactionId("");
-            }
-            vo.setCost(vo.getCostPrice());
-
-        }
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:export')")
-    @Log(title = "订单", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportZm")
-    public AjaxResult exportZm(LiveOrder liveOrder)
-    {
-        List<LiveOrderVoZm> list = liveOrderService.selectLiveOrderListZm(liveOrder);
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        for (LiveOrderVoZm vo : list){
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-            vo.setCompanyUserPhone(ParseUtils.parsePhone(vo.getCompanyUserPhone()));
-            vo.setUserBindPhone(ParseUtils.parsePhone(vo.getUserBindPhone()));
-            vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-            // 财务独特字段
-            if (loginUser.getPermissions().contains("live:liveOrder:finance") || loginUser.getPermissions().contains("*:*:*")) {
-                vo.setCostPrice(vo.getCost());
-                vo.setFPrice(vo.getCostPrice().multiply(BigDecimal.valueOf(Long.parseLong(vo.getTotalNum()))));
-            } else {
-                vo.setCostPrice(BigDecimal.ZERO);
-                vo.setFPrice(BigDecimal.ZERO);
-                vo.setBankTransactionId("");
-            }
-            vo.setCost(vo.getCostPrice());
-        }
-        ExcelUtil<LiveOrderVoZm> util = new ExcelUtil<LiveOrderVoZm>(LiveOrderVoZm.class);
-        return util.exportExcel(list, "订单数据");
-    }
-
-    /**
-     * 导出订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:export')")
-    @Log(title = "订单", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportZmNew")
-    public AjaxResult exportZmNew(LiveOrder liveOrder){
-        List<FsStoreOrderItemExportZMVO> list = liveOrderService.selectLiveOrderListZmNew(liveOrder);
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        for (FsStoreOrderItemExportZMVO vo : list){
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-//            vo.setCompanyUserPhone(ParseUtils.parsePhone(vo.getCompanyUserPhone()));
-//            vo.setUserBindPhone(ParseUtils.parsePhone(vo.getUserBindPhone()));
-            vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-            // 财务独特字段
-            if (loginUser.getPermissions().contains("live:liveOrder:finance") || loginUser.getPermissions().contains("*:*:*")) {
-//                vo.setCostPrice(vo.getCost());
-                vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getNum())));
-            } else {
-                vo.setCost(BigDecimal.ZERO);
-                vo.setFPrice(BigDecimal.ZERO);
-                vo.setBankTransactionId("");
-            }
-//            vo.setCost(vo.getCostPrice());
-        }
-        ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
-        return util.exportExcel(list, "订单数据");
-    }
-    /**
-     * 获取订单详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:query')")
-    @GetMapping(value = "/info/{orderId}")
-    public AjaxResult getInfo(@PathVariable("orderId") String orderId)
-    {
-        return AjaxResult.success(liveOrderService.selectLiveOrderByOrderId(orderId));
-    }
-
-
-    /**
-     * 新增订单
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:add')")
-    @Log(title = "订单", businessType = BusinessType.INSERT)
-    @PostMapping("/create")
-    public R add(@RequestBody LiveOrder liveOrder)
-    {
-        return R.ok().put("data", liveOrderService.insertLiveOrder(liveOrder));
-    }
-
-    /**
-     * 修改订单
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:edit')")
-    @Log(title = "订单", businessType = BusinessType.UPDATE)
-    @PutMapping("/update")
-    public AjaxResult edit(@RequestBody LiveOrder liveOrder)
-    {
-        return toAjax(liveOrderService.updateLiveOrder(liveOrder));
-    }
-
-    /**
-     * 支付订单
-     * */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:pay')")
-    @PostMapping(value = "/pay")
-    public void pay(LiveOrder liveOrder)
-    {
-       liveOrderService.handlePay(liveOrder);
-    }
-
-    /**
-     * 取消订单确认
-     * */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:edit')")
-    @GetMapping(value = "/cancelConfirm/{orderId}")
-    public R cancelConfirm(@PathVariable String orderId)
-    {
-        LiveOrder byId = liveOrderService.getById(orderId);
-        List<Map<String, String>> allCodeDescMap = LiveOrderCancleReason.getAllCodeDescMap();
-        return R.ok().put("reason",allCodeDescMap).put("data",byId);
-    }
-
-    /**
-     * 按照时间粒度返回订单
-     * */
-    @GetMapping(value = "/getLiveOrderTimeGranularity")
-    public R getLiveOrderTimeGranularity(LiveOrderTimeVo liveOrder){
-        return liveOrderService.getLiveOrderTimeGranularity(liveOrder);
-    }
-
-
-    @Log(title = "同步物流", businessType = BusinessType.UPDATE)
-    @GetMapping(value = "/syncExpress/{id}")
-    public R syncExpress(@PathVariable("id") Long id) {
-        return liveOrderService.syncExpress(id);
-    }
-
-
-    /**
-     * 查询订单商品列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:query')")
-    @GetMapping("/ltemlist/{orderId}")
-    public TableDataInfo ltemlist(@PathVariable("orderId") String orderId)
-    {
-        List<LiveGoodsVo> list = liveOrderService.selectLiveOrderItemList(orderId);
-        return getDataTable(list);
-    }
-
-
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:refundOrderMoney')")
-    @Log(title = "退款", businessType = BusinessType.UPDATE)
-//    @PreAuthorize("@ss.hasPermi('live:liveOrder:refundOrderMoney')")
-    @PostMapping("/refundOrderMoney")
-    public synchronized R refundOrderMoney(@Validated @RequestBody FsStoreOrderRefundParam param, HttpServletRequest request) {
-        return liveOrderService.refundOrderMoney(param.getOrderId());
-    }
-
-    /**
-     * 获取订单详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:query')")
-    @GetMapping(value = "/{id}")
-    public R getInfo(@PathVariable("id") Long id)
-    {
-        LiveOrder order=liveOrderService.selectLiveOrderByOrderId(String.valueOf(id));
-        order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
-        order.setUserAddress(ParseUtils.parseAddress(order.getUserAddress()));
-        FsUser user=userService.selectFsUserById(Long.valueOf(order.getUserId()));
-        user.setPhone(ParseUtils.parsePhone(user.getPhone()));
-        List<LiveOrderItem> items=orderItemService.selectCheckedByOrderId(id);
-//        FsStoreOrderStatus statusMap=new FsStoreOrderStatus();
-
-        List<LiveOrderLogs> logs=orderLogsService.selectLiveOrderLogsByOrderId(id);
-        List<LiveOrderPayment> payments=orderPaymentService.selectLiveOrderPaymentByOrderId(id);
-
-        CrmCustomer customer=null;
-        if(order.getCustomerId()!=null&&order.getCustomerId()>0){
-            customer=crmCustomerService.selectCrmCustomerById(order.getCustomerId());
-        }
-        return R.ok().put("order", order).put("items", items).put("logs",logs).put("user",user).put("customer",customer).put("payments",payments) ;
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:query')")
-    @GetMapping(value = "/payments/{id}")
-    public R getOrderPayments(@PathVariable("id") Long id){
-        List<LiveOrderPayment> payments=orderPaymentService.selectLiveOrderPaymentByOrderId(id);
-        return R.ok().put("payments",payments);
-    }
-//    @Autowired
-//    private FsStoreDeliversMapper fsStoreDeliversMapper;
-    @GetMapping(value = "/express/{id}")
-    public R getExpress(@PathVariable("id") Long id){
-//        List<FsStoreDelivers> data = fsStoreDeliversMapper.findByOrderIdWithType(id, 1);
-        return R.ok().put("data","123");
-    }
-
-    @Autowired
-    private ICompanyMoneyLogsService moneyLogsService;
-
-    @GetMapping(value = "/tuiMoneyLogs")
-    public R tuiMoneyLogs(@RequestParam("orderId") String orderId){
-        LiveOrder liveOrder = liveOrderService.selectLiveOrderByOrderId(orderId);
-        List<CompanyStoreOrderMoneyLogsVO> tuiMoneyLogs=new ArrayList<>();
-        if(liveOrder.getCompanyId()!=null){
-            CompanyStoreOrderMoneyLogsListParam moneyLogsMap=new CompanyStoreOrderMoneyLogsListParam();
-            moneyLogsMap.setCompanyId(liveOrder.getCompanyId());
-            moneyLogsMap.setBusinessId(liveOrder.getOrderId().toString());
-//            moneyLogsMap.setType(1);
-            tuiMoneyLogs=moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap);
-        }
-        return R.ok().put("data",tuiMoneyLogs);
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:query')")
-    @GetMapping(value = "/logs/{id}")
-    public R getOrderLogs(@PathVariable("id") Long id){
-        List<LiveOrderLogs> logs=orderLogsService.selectLiveOrderLogsByOrderId(id);
-        return R.ok().put("logs",logs);
-    }
-
-    @GetMapping(value = "/queryAddress/{id}")
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:queryAddress')")
-    public R getAddress(@PathVariable("id") Long id)
-    {
-        LiveOrder order = liveOrderService.selectLiveOrderByOrderId(String.valueOf(id));
-        String address = order.getUserAddress();
-        return R.ok().put("address",address);
-    }
-    @GetMapping(value = "/queryPhone/{id}")
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:queryPhone')")
-    @Log(title = "查看电话", businessType = BusinessType.GRANT)
-    public R getPhone(@PathVariable("id") Long id)
-    {
-        LiveOrder order = liveOrderService.selectLiveOrderByOrderId(String.valueOf(id));
-        String userPhone = order.getUserPhone();
-        return R.ok().put("userPhone",userPhone);
-    }
-
-    /**
-     * 根据orderId查询
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:query')")
-    @GetMapping("/getByOrderId/{orderId}")
-    public R getByOrderId(@PathVariable Long orderId) {
-        LiveOrder liveOrder = liveOrderService.selectLiveOrderByOrderId(String.valueOf(orderId));
-        return R.ok().put("data",liveOrder);
-    }
-
-    @ApiOperation("物流查询")
-    @PostMapping("/getExpressByDeliverId")
-    public R getExpressByDeliverId(@Validated @RequestBody FsStoreOrderExpressParam param, HttpServletRequest request){
-        return expressService.getLiveExpressByDeliverId(param);
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:auditPayRemain')")
-    @PostMapping("/auditPayRemain")
-    public R auditPayRemain(@Validated @RequestBody FsStoreOrderAuditPayRemainParam param, HttpServletRequest request) {
-        return liveOrderService.auditPayRemain(param.getOrderId());
-    }
-
-    @Log(title = "分佣", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:addTuiMoney')")
-    @PostMapping("/addTuiMoney")
-    public R addTuiMoney(@Validated @RequestBody FsStoreOrderAddTuiMoneyParam param, HttpServletRequest request) {
-        return liveOrderService.addTuiMoney(param);
-    }
-
-    @Log(title = "同步物流", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:syncExpress')")
-    @PostMapping("/syncExpress")
-    public R syncExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request) {
-        return liveOrderService.syncExpress(param.getOrderId());
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:updateExpress')")
-    @PostMapping("/updateExpress")
-    public R updateExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request) {
-        return liveOrderService.updateExpress(param.getOrderId());
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:getEroOrder')")
-    @GetMapping("/getEroOrder")
-    public R getEroOrder(@RequestParam("extendOrderId") String extendOrderId) {
-        IErpOrderService erpOrderService = getErpService();
-        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
-        request.setCode(extendOrderId);
-        ErpOrderQueryResponse response = erpOrderService.getLiveOrder(request);
-        return R.ok().put("data",response);
-    }
-    private IErpOrderService getErpService(){
-        //判断是否开启erp
-        IErpOrderService erpOrderService = null;
-        FsErpConfig erpConfig = configUtil.getErpConfig();
-        Integer erpOpen = erpConfig.getErpOpen();
-        if (erpOpen != null && erpOpen == 1) {
-            //判断erp类型
-            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;
-    }
-
-    @Log(title = "冻结、解冻佣金", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:editTuiMoney')")
-    @PostMapping("/editTuiMoney")
-    public R editTuiMoney(@Validated @RequestBody FsStoreOrderEditTuiMoneyParam param, HttpServletRequest request) {
-        return liveOrderService.editTuiMoney(param.getOrderId());
-    }
-
-    @Log(title = "确认订单", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:finishOrder')")
-    @PostMapping("/finishOrder")
-    public R finishOrder(@Validated @RequestBody FsStoreOrderFinishParam param, HttpServletRequest request) {
-        return liveOrderService.finishOrder(param.getOrderId());
-    }
-
-    /**
-     * 修改物流
-     * @param deliveryDTO
-     * @return AjaxResult
-     */
-    @Log(title = "修改物流", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:editDeliveryId')")
-    @PutMapping("/editDeliveryId")
-    public AjaxResult editDeliveryId(@RequestBody FsStoreDelivers deliveryDTO) {
-        liveOrderService.editLiveOrderDeliveryId(deliveryDTO);
-        return AjaxResult.success();
-    }
-
-
-    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
-    @ApiOperation("创建ERP订单")
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:createErpOrder')")
-    @GetMapping("/createErpOrder")
-    public R createErpOrder(@RequestParam("orderCode") String orderCode) throws Exception
-    {
-        logger.info("手动推管易 订单号: {}",orderCode);
-        LiveOrder order=liveOrderService.selectOrderIdByOrderCode(orderCode);
-        if (orderPaymentService.selectByBussinessId(order.getOrderId()) != null) {
-            liveOrderService.createOmsOrder(order.getOrderId());
-            return R.ok();
-        }
-        return R.error("订单未支付!");
-
-    }
-
-    @Log(title = "同步管易物流单号", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:updateErpOrder')")
-    @PostMapping("/updateErpOrder")
-    public R updateErpOrder(@Validated @RequestBody FsStoreOrderExpressEditParam param) {
-//        LiveOrder order = liveOrderService.selectLiveOrderByOrderId(String.valueOf(param.getOrderId()));
-//        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
-//        request.setCode(order.getExtendOrderId());
-//
-//        // 根据仓库code找erp
-//        if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-//            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
-//            ErpContextHolder.setErpType(erp);
-//        }
-//
-//        ErpOrderQueryResponse response = erpOrderService.getOrderLive(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())){
-//                            //更新商订单状态
-//                            liveOrderService.updateDeliveryOrder(param.getOrderId(), delivery.getMail_no(),delivery.getExpress_code(),delivery.getExpress_name());
-//                            return R.ok();
-//                        }
-//                    }
-//
-//                }
-//            }
-//        }
-        return R.error("未查询到快递信息");
-    }
-
-    /**
-     * 删除订单
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:remove')")
-    @Log(title = "订单", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids) {
-        return toAjax(liveOrderService.deleteLiveOrderByIds(ids));
-    }
-
-    /**
-     * 获取erp账户
-     */
-    @GetMapping("/getErpAccount")
-    public R getErpAccount()
-    {
-        List<FsDfAccount> erpAccounts = fsDfAccountService.selectFsDfAccountList(null);
-        List<String> list = erpAccounts.stream().map(FsDfAccount::getLoginAccount).collect(Collectors.toList());
-        return R.ok().put("data", list);
-    }
-
-    /**
-     * 查询erp默认手机号
-     * @return
-     */
-    @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);
-    }
-
-    /**
-     * 设置erp默认手机号
-     * @param phoneList
-     * @return
-     */
-    @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));
-    }
-
-    /**
-     * 批量设置erp手机号
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrder:createErpOrder')")
-    @Log(title = "订单", businessType = BusinessType.UPDATE)
-    @PostMapping("/editErpPhone")
-    public AjaxResult editErpPhone(@RequestBody LiveOrderScrmSetErpPhoneParam param)
-    {
-        param.setOpeName(getLoginUser().getUser().getNickName());
-        List<String> erpPhone = param.getErpPhone();
-        if (erpPhone == null || erpPhone.isEmpty()) {
-            return AjaxResult.error("请选择手机号");
-        }
-        return toAjax(liveOrderService.batchUpdateErpByOrderIds(param));
-    }
-
-    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
-    @ApiOperation("批量创建ERP订单")
-    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
-    @PostMapping(value = "/batchCreateErpOrder")
-    public R batchCreateErpOrder(@RequestBody LiveOrderScrmSetErpPhoneParam param)
-    {
-        String nickName = getLoginUser().getUser().getNickName();
-        String loginAccount = param.getLoginAccount();
-        if (StringUtils.isBlank(loginAccount)){
-            return R.error("未选择推送erp账户");
-        }
-        LiveOrderDf 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<LiveOrderVO> list = liveOrderService.selectLiveOrderListVO(param);
-            orderIds = list.stream().map(LiveOrderVO::getId).collect(Collectors.toList());
-        }
-        if (orderIds.isEmpty()){
-            return R.ok();
-        }
-        orderIds.forEach(orderId->{
-            try {
-                df.setOrderId(orderId);
-                LiveOrderDf temp = liveOrderDfService.selectLiveOrderDfByOrderId(df.getOrderId());
-                if (temp == null){
-                    df.setParcelQuantity(param.getParcelQuantity()); //设置包裹数量
-                    liveOrderDfService.insertLiveOrderDf(df);
-                    orderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
-                            nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
-                }
-                if (orderPaymentService.selectByBussinessId(orderId) != null) {
-                    liveOrderService.createOmsOrder(orderId);
-                    orderLogsService.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();
-    }
-
-    @ApiOperation("批量设置订单账户")
-    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
-    @PostMapping(value = "/batchSetErpOrder")
-    public R batchSetErpOrder(@RequestBody LiveOrderScrmSetErpPhoneParam param)
-    {
-        String nickName = getLoginUser().getUser().getNickName();
-        String loginAccount = param.getLoginAccount();
-        if (StringUtils.isBlank(loginAccount)){
-            return R.error("未选择erp账户");
-        }
-        LiveOrderDf 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<LiveOrderVO> list = liveOrderService.selectLiveOrderListVO(param);
-            orderIds = list.stream().map(LiveOrderVO::getId).collect(Collectors.toList());
-        }
-        if (orderIds.isEmpty()){
-            return R.ok();
-        }
-        orderIds.forEach(orderId->{
-            df.setOrderId(orderId);
-            LiveOrderDf temp = liveOrderDfService.selectLiveOrderDfByOrderId(df.getOrderId());
-            df.setParcelQuantity(param.getParcelQuantity());
-            if (temp != null){
-                df.setUpdateTime(new Date());
-                liveOrderDfService.updateLiveOrderDf(df);
-            } else {
-                liveOrderDfService.insertLiveOrderDf(df);
-            }
-            orderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
-                    nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
-        });
-        return R.ok();
-    }
-
-    private LiveOrderDf getDFInfo(String loginAccount) {
-        //查询订单账户 判断是否存在该订单账户
-        List<FsDfAccount> erpAccounts = fsDfAccountService.selectFsDfAccountList(null);
-        LiveOrderDf df = new LiveOrderDf();
-        for (FsDfAccount erpAccount : erpAccounts) {
-            if (loginAccount.equals(erpAccount.getLoginAccount())){
-                //添加df记录
-                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;
-    }
-
-
-
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderItemController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveOrderItem;
-import com.fs.live.service.ILiveOrderItemService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 订单详情Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveOrderItem")
-public class LiveOrderItemController extends BaseController
-{
-    @Autowired
-    private ILiveOrderItemService liveOrderItemService;
-
-    /**
-     * 查询订单详情列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderItem:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveOrderItem liveOrderItem)
-    {
-        startPage();
-        List<LiveOrderItem> list = liveOrderItemService.selectLiveOrderItemList(liveOrderItem);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出订单详情列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderItem:export')")
-    @Log(title = "订单详情", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveOrderItem liveOrderItem)
-    {
-        List<LiveOrderItem> list = liveOrderItemService.selectLiveOrderItemList(liveOrderItem);
-        ExcelUtil<LiveOrderItem> util = new ExcelUtil<LiveOrderItem>(LiveOrderItem.class);
-        return util.exportExcel(list, "订单详情数据");
-    }
-
-    /**
-     * 获取订单详情详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderItem:query')")
-    @GetMapping(value = "/{itemId}")
-    public AjaxResult getInfo(@PathVariable("itemId") String itemId)
-    {
-        return AjaxResult.success(liveOrderItemService.selectLiveOrderItemByItemId(itemId));
-    }
-
-    /**
-     * 新增订单详情
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderItem:add')")
-    @Log(title = "订单详情", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveOrderItem liveOrderItem)
-    {
-        return toAjax(liveOrderItemService.insertLiveOrderItem(liveOrderItem));
-    }
-
-    /**
-     * 修改订单详情
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderItem:edit')")
-    @Log(title = "订单详情", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveOrderItem liveOrderItem)
-    {
-        return toAjax(liveOrderItemService.updateLiveOrderItem(liveOrderItem));
-    }
-
-    /**
-     * 删除订单详情
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderItem:remove')")
-    @Log(title = "订单详情", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{itemIds}")
-    public AjaxResult remove(@PathVariable String[] itemIds)
-    {
-        return toAjax(liveOrderItemService.deleteLiveOrderItemByItemIds(itemIds));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderLogsController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveOrderLogs;
-import com.fs.live.service.ILiveOrderLogsService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 订单操作记录Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/liveOrderLogs")
-public class LiveOrderLogsController extends BaseController
-{
-    @Autowired
-    private ILiveOrderLogsService liveOrderLogsService;
-
-    /**
-     * 查询订单操作记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderLogs:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveOrderLogs liveOrderLogs)
-    {
-        startPage();
-        List<LiveOrderLogs> list = liveOrderLogsService.selectLiveOrderLogsList(liveOrderLogs);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出订单操作记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderLogs:export')")
-    @Log(title = "订单操作记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveOrderLogs liveOrderLogs)
-    {
-        List<LiveOrderLogs> list = liveOrderLogsService.selectLiveOrderLogsList(liveOrderLogs);
-        ExcelUtil<LiveOrderLogs> util = new ExcelUtil<LiveOrderLogs>(LiveOrderLogs.class);
-        return util.exportExcel(list, "订单操作记录数据");
-    }
-
-    /**
-     * 获取订单操作记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderLogs:query')")
-    @GetMapping(value = "/{logsId}")
-    public AjaxResult getInfo(@PathVariable("logsId") String logsId)
-    {
-        return AjaxResult.success(liveOrderLogsService.selectLiveOrderLogsByLogsId(logsId));
-    }
-
-    /**
-     * 新增订单操作记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderLogs:add')")
-    @Log(title = "订单操作记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveOrderLogs liveOrderLogs)
-    {
-        return toAjax(liveOrderLogsService.insertLiveOrderLogs(liveOrderLogs));
-    }
-
-    /**
-     * 修改订单操作记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderLogs:edit')")
-    @Log(title = "订单操作记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveOrderLogs liveOrderLogs)
-    {
-        return toAjax(liveOrderLogsService.updateLiveOrderLogs(liveOrderLogs));
-    }
-
-    /**
-     * 删除订单操作记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveOrderLogs:remove')")
-    @Log(title = "订单操作记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{logsIds}")
-    public AjaxResult remove(@PathVariable String[] logsIds)
-    {
-        return toAjax(liveOrderLogsService.deleteLiveOrderLogsByLogsIds(logsIds));
-    }
-}

+ 0 - 118
fs-admin/src/main/java/com/fs/live/live/controller/LiveOrderPaymentController.java

@@ -1,118 +0,0 @@
-package com.fs.live.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.common.utils.ParseUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveOrderPayment;
-import com.fs.live.service.ILiveOrderPaymentService;
-import com.fs.live.vo.LiveOrderPaymentVo;
-import com.github.pagehelper.PageHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 支付明细Controller
- *
- * @author fs
- * @date 2025-08-07
- */
-@RestController
-@RequestMapping("/live/order/payment")
-public class LiveOrderPaymentController extends BaseController
-{
-    @Autowired
-    private ILiveOrderPaymentService liveOrderPaymentService;
-
-    /**
-     * 查询支付明细列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:query')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveOrderPayment liveOrderPayment)
-    {
-        startPage();
-        List<LiveOrderPayment> list = liveOrderPaymentService.selectLiveOrderPaymentList(liveOrderPayment);
-        return getDataTable(list);
-    }
-    /**
-     * 查询支付明细列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:query')")
-    @GetMapping
-    public TableDataInfo listNew(LiveOrderPaymentVo liveOrderPayment)
-    {
-        startPage();
-        List<LiveOrderPaymentVo> list = liveOrderPaymentService.selectLiveOrderPaymentVoList(liveOrderPayment);
-        for (LiveOrderPaymentVo vo : list){
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-        }
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出支付明细列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:export')")
-    @Log(title = "支付明细", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveOrderPaymentVo liveOrderPayment)
-    {
-        PageHelper.startPage(1, 10000, "");
-        List<LiveOrderPaymentVo> list = liveOrderPaymentService.selectLiveOrderPaymentVoList(liveOrderPayment);
-        for (LiveOrderPaymentVo vo : list){
-            vo.setUserPhone(vo.getUserPhone() == null ? "" : vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-        }
-        ExcelUtil<LiveOrderPaymentVo> util = new ExcelUtil<LiveOrderPaymentVo>(LiveOrderPaymentVo.class);
-        return util.exportExcel(list, "直播订单支付记录");
-    }
-
-    /**
-     * 获取支付明细详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:query')")
-    @GetMapping(value = "/{paymentId}")
-    public AjaxResult getInfo(@PathVariable("paymentId") Long paymentId)
-    {
-        return AjaxResult.success(liveOrderPaymentService.selectLiveOrderPaymentByPaymentIdNew(paymentId));
-    }
-
-    /**
-     * 新增支付明细
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:edit')")
-    @Log(title = "支付明细", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveOrderPayment liveOrderPayment)
-    {
-        return toAjax(liveOrderPaymentService.insertLiveOrderPayment(liveOrderPayment));
-    }
-
-    /**
-     * 修改支付明细
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:edit')")
-    @Log(title = "支付明细", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveOrderPayment liveOrderPayment)
-    {
-        return toAjax(liveOrderPaymentService.updateLiveOrderPayment(liveOrderPayment));
-    }
-
-    /**
-     * 删除支付明细
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:payment:remove')")
-    @Log(title = "支付明细", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{paymentIds}")
-    public AjaxResult remove(@PathVariable Long[] paymentIds)
-    {
-        return toAjax(liveOrderPaymentService.deleteLiveOrderPaymentByPaymentIds(paymentIds));
-    }
-}

+ 0 - 125
fs-admin/src/main/java/com/fs/live/live/controller/LiveRedConfController.java

@@ -1,125 +0,0 @@
-package com.fs.live.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.domain.R;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.SecurityUtils;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveRedConf;
-import com.fs.live.service.ILiveRedConfService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播红包记录配置Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveRedConf")
-public class LiveRedConfController extends BaseController
-{
-    @Autowired
-    private ILiveRedConfService liveRedConfService;
-
-    /**
-     * 查询直播红包记录配置列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveRedConf liveRedConf)
-    {
-        startPage();
-        List<LiveRedConf> list = liveRedConfService.selectLiveRedConfList(liveRedConf);
-        return getDataTable(list);
-    }
-
-    @GetMapping("/listOn")
-    public TableDataInfo listOn(LiveRedConf liveRedConf)
-    {
-        startPage();
-        List<LiveRedConf> list = liveRedConfService.selectLiveRedConfListOn(liveRedConf);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播红包记录配置列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:export')")
-    @Log(title = "直播红包记录配置", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveRedConf liveRedConf)
-    {
-        List<LiveRedConf> list = liveRedConfService.selectLiveRedConfList(liveRedConf);
-        ExcelUtil<LiveRedConf> util = new ExcelUtil<LiveRedConf>(LiveRedConf.class);
-        return util.exportExcel(list, "直播红包记录配置数据");
-    }
-
-    /**
-     * 获取直播红包记录配置详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:query')")
-    @GetMapping(value = "/{redId}")
-    public AjaxResult getInfo(@PathVariable("redId") Long redId)
-    {
-        return AjaxResult.success(liveRedConfService.selectLiveRedConfByRedId(redId));
-    }
-
-    /**
-     * 新增直播红包记录配置
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:add')")
-    @Log(title = "直播红包记录配置", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveRedConf liveRedConf)
-    {
-        return toAjax(liveRedConfService.insertLiveRedConf(liveRedConf));
-    }
-
-    /**
-     * 修改直播红包记录配置
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:edit')")
-    @Log(title = "直播红包记录配置", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public R edit(@RequestBody LiveRedConf liveRedConf)
-    {
-        liveRedConfService.updateLiveRedConf(liveRedConf);
-        return R.ok(liveRedConf.getRedStatus().toString());
-    }
-
-    /**
-     * 删除直播红包记录配置
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:remove')")
-    @Log(title = "直播红包记录配置", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{redIds}")
-    public AjaxResult remove(@PathVariable Long[] redIds)
-    {
-        return toAjax(liveRedConfService.deleteLiveRedConfByRedIds(redIds));
-    }
-
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:query')")
-    @GetMapping("/live/{liveId}")
-    public List<LiveRedConf> getByLiveId(@PathVariable Long liveId) {
-        return liveRedConfService.getByLiveId(liveId);
-    }
-
-    /**
-     * 点击发放红包
-     * */
-//    @PreAuthorize("@ss.hasPermi('live:liveRedConf:edit')")
-    @PostMapping("/start/{redId}")
-    public String start(@PathVariable String redId) {
-        return liveRedConfService.start(redId, SecurityUtils.getLoginUser().getUser().getUserId());
-    }
-
-
-
-}

+ 0 - 4
fs-admin/src/main/java/com/fs/live/live/controller/LiveRedController.java

@@ -1,4 +0,0 @@
-package com.fs.live.controller;
-
-public class LiveRedController {
-}

+ 0 - 125
fs-admin/src/main/java/com/fs/live/live/controller/LiveRewardRecordController.java

@@ -1,125 +0,0 @@
-package com.fs.live.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.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.live.domain.LiveRewardRecord;
-import com.fs.live.service.ILiveRewardRecordService;
-import com.fs.live.vo.LiveRewardRecordStatisticsVo;
-import com.fs.live.vo.LiveRewardRecordVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 用户直播间奖励记录Controller
- *
- * @author fs
- * @date 2025-08-27
- */
-@RestController
-@RequestMapping("/live/record")
-public class LiveRewardRecordController extends BaseController
-{
-    @Autowired
-    private ILiveRewardRecordService liveRewardRecordService;
-
-    /**
-     * 查询用户直播间奖励记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveRewardRecord liveRewardRecord)
-    {
-        startPage();
-        List<LiveRewardRecord> list = liveRewardRecordService.selectLiveRewardRecordList(liveRewardRecord);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出用户直播间奖励记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:export')")
-    @Log(title = "用户直播间奖励记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveRewardRecord liveRewardRecord)
-    {
-        List<LiveRewardRecord> list = liveRewardRecordService.selectLiveRewardRecordList(liveRewardRecord);
-        ExcelUtil<LiveRewardRecord> util = new ExcelUtil<LiveRewardRecord>(LiveRewardRecord.class);
-        return util.exportExcel(list, "用户直播间奖励记录数据");
-    }
-
-    /**
-     * 获取用户直播间奖励记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveRewardRecordService.selectLiveRewardRecordById(id));
-    }
-
-    /**
-     * 新增用户直播间奖励记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:add')")
-    @Log(title = "用户直播间奖励记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveRewardRecord liveRewardRecord)
-    {
-        return toAjax(liveRewardRecordService.insertLiveRewardRecord(liveRewardRecord));
-    }
-
-    /**
-     * 修改用户直播间奖励记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:edit')")
-    @Log(title = "用户直播间奖励记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveRewardRecord liveRewardRecord)
-    {
-        return toAjax(liveRewardRecordService.updateLiveRewardRecord(liveRewardRecord));
-    }
-
-    /**
-     * 删除用户直播间奖励记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:remove')")
-    @Log(title = "用户直播间奖励记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveRewardRecordService.deleteLiveRewardRecordByIds(ids));
-    }
-
-    /**
-     * 删除用户直播间奖励记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:record:query')")
-    @PostMapping("/statistics")
-    public R statistics(@RequestBody LiveRewardRecordVo param)
-    {
-        return liveRewardRecordService.statistics(param);
-        // 可惜了 我华丽的实现
-        //        return liveRewardRecordService.count(step,companyId);
-    }
-
-    @PreAuthorize("@ss.hasPermi('live:record:export')")
-    @PostMapping("/export")
-    public AjaxResult export(@RequestBody LiveRewardRecordVo param)
-    {
-        List<LiveRewardRecordStatisticsVo> list = liveRewardRecordService.selectRewardSummary(param);
-
-        ExcelUtil<LiveRewardRecordStatisticsVo> util = new ExcelUtil<LiveRewardRecordStatisticsVo>(LiveRewardRecordStatisticsVo.class);
-        return util.exportExcel(list, "liveIntegralLogs");
-
-//        return liveRewardRecordService.export(param);
-//        return R.ok();
-    }
-}

+ 0 - 98
fs-admin/src/main/java/com/fs/live/live/controller/LiveSensitiveWordsController.java

@@ -1,98 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveSensitiveWords;
-import com.fs.live.service.ILiveSensitiveWordsService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播间敏感词过滤Controller
- *
- * @author fs
- * @date 2025-07-08
- */
-@RestController
-@RequestMapping("/live/words")
-public class LiveSensitiveWordsController extends BaseController
-{
-    @Autowired
-    private ILiveSensitiveWordsService liveSensitiveWordsService;
-
-    /**
-     * 查询直播间敏感词过滤列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:words:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveSensitiveWords liveSensitiveWords)
-    {
-        startPage();
-        List<LiveSensitiveWords> list = liveSensitiveWordsService.selectLiveSensitiveWordsList(liveSensitiveWords);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播间敏感词过滤列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:words:export')")
-    @Log(title = "直播间敏感词过滤", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveSensitiveWords liveSensitiveWords)
-    {
-        List<LiveSensitiveWords> list = liveSensitiveWordsService.selectLiveSensitiveWordsList(liveSensitiveWords);
-        ExcelUtil<LiveSensitiveWords> util = new ExcelUtil<LiveSensitiveWords>(LiveSensitiveWords.class);
-        return util.exportExcel(list, "直播间敏感词过滤数据");
-    }
-
-    /**
-     * 获取直播间敏感词过滤详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:words:query')")
-    @GetMapping(value = "/{wordId}")
-    public AjaxResult getInfo(@PathVariable("wordId") Long wordId)
-    {
-        return AjaxResult.success(liveSensitiveWordsService.selectLiveSensitiveWordsByWordId(wordId));
-    }
-
-    /**
-     * 新增直播间敏感词过滤
-     */
-    @PreAuthorize("@ss.hasPermi('live:words:add')")
-    @Log(title = "直播间敏感词过滤", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveSensitiveWords liveSensitiveWords)
-    {
-
-        return toAjax(liveSensitiveWordsService.insertLiveSensitiveWords(liveSensitiveWords));
-    }
-
-    /**
-     * 修改直播间敏感词过滤
-     */
-    @PreAuthorize("@ss.hasPermi('live:words:edit')")
-    @Log(title = "直播间敏感词过滤", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveSensitiveWords liveSensitiveWords)
-    {
-        return toAjax(liveSensitiveWordsService.updateLiveSensitiveWords(liveSensitiveWords));
-    }
-
-    /**
-     * 删除直播间敏感词过滤
-     */
-    @PreAuthorize("@ss.hasPermi('live:words:remove')")
-    @Log(title = "直播间敏感词过滤", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{wordIds}")
-    public AjaxResult remove(@PathVariable Long[] wordIds)
-    {
-        return toAjax(liveSensitiveWordsService.deleteLiveSensitiveWordsByWordIds(wordIds));
-    }
-}

+ 0 - 122
fs-admin/src/main/java/com/fs/live/live/controller/LiveTrafficLogController.java

@@ -1,122 +0,0 @@
-package com.fs.live.controller;
-
-import java.text.SimpleDateFormat;
-import java.util.List;
-
-import com.fs.live.param.LiveTrafficLogParam;
-import com.fs.live.vo.LiveTrafficLogListVO;
-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.live.domain.LiveTrafficLog;
-import com.fs.live.service.ILiveTrafficLogService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
-
-/**
- * 直播流量记录Controller
- *
- * @author fs
- * @date 2025-10-13
- */
-@RestController
-@RequestMapping("/live/trafficLog")
-public class LiveTrafficLogController extends BaseController
-{
-    @Autowired
-    private ILiveTrafficLogService liveTrafficLogService;
-
-    /**
-     * 查询直播流量记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:trafficLog:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveTrafficLogParam param)
-    {
-        startPage();
-        if (param.getTime() != null) {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
-            String formattedDate = sdf.format(param.getTime());
-            String[] parts = formattedDate.split("-");
-            param.setYear(Integer.parseInt(parts[0]));
-            param.setMonth(Integer.parseInt(parts[1]));
-        }
-        List<LiveTrafficLogListVO> list = liveTrafficLogService.selectTrafficByCompany(param);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播流量记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:trafficLog:export')")
-    @Log(title = "直播流量记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveTrafficLogParam param)
-    {
-        if (param.getTime() != null) {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
-            String formattedDate = sdf.format(param.getTime());
-            String[] parts = formattedDate.split("-");
-            param.setYear(Integer.parseInt(parts[0]));
-            param.setMonth(Integer.parseInt(parts[1]));
-        }
-
-        List<LiveTrafficLogListVO> list = liveTrafficLogService.selectTrafficByCompany(param);
-        ExcelUtil<LiveTrafficLogListVO> util = new ExcelUtil<LiveTrafficLogListVO>(LiveTrafficLogListVO.class);
-        return util.exportExcel(list, "直播流量记录数据");
-    }
-
-    /**
-     * 获取直播流量记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:trafficLog:query')")
-    @GetMapping(value = "/{logId}")
-    public AjaxResult getInfo(@PathVariable("logId") Long logId)
-    {
-        return AjaxResult.success(liveTrafficLogService.selectLiveTrafficLogById(logId));
-    }
-
-    /**
-     * 新增直播流量记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:trafficLog:add')")
-    @Log(title = "直播流量记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveTrafficLog liveTrafficLog)
-    {
-        return toAjax(liveTrafficLogService.insertLiveTrafficLog(liveTrafficLog));
-    }
-
-    /**
-     * 修改直播流量记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:trafficLog:edit')")
-    @Log(title = "直播流量记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveTrafficLog liveTrafficLog)
-    {
-        return toAjax(liveTrafficLogService.updateLiveTrafficLog(liveTrafficLog));
-    }
-
-    /**
-     * 删除直播流量记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:trafficLog:remove')")
-    @Log(title = "直播流量记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{logIds}")
-    public AjaxResult remove(@PathVariable Long[] logIds)
-    {
-        return toAjax(liveTrafficLogService.deleteLiveTrafficLogByIds(logIds));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveUserFavoriteController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveUserFavorite;
-import com.fs.live.service.ILiveUserFavoriteService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 用户直播收藏Controller
- *
- * @author fs
- * @date 2025-07-11
- */
-@RestController
-@RequestMapping("/live/liveUserFavorite")
-public class LiveUserFavoriteController extends BaseController
-{
-    @Autowired
-    private ILiveUserFavoriteService liveUserFavoriteService;
-
-    /**
-     * 查询用户直播收藏列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFavorite:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveUserFavorite liveUserFavorite)
-    {
-        startPage();
-        List<LiveUserFavorite> list = liveUserFavoriteService.selectLiveUserFavoriteList(liveUserFavorite);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出用户直播收藏列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFavorite:export')")
-    @Log(title = "用户直播收藏", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveUserFavorite liveUserFavorite)
-    {
-        List<LiveUserFavorite> list = liveUserFavoriteService.selectLiveUserFavoriteList(liveUserFavorite);
-        ExcelUtil<LiveUserFavorite> util = new ExcelUtil<LiveUserFavorite>(LiveUserFavorite.class);
-        return util.exportExcel(list, "用户直播收藏数据");
-    }
-
-    /**
-     * 获取用户直播收藏详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFavorite:query')")
-    @GetMapping(value = "/{favoriteId}")
-    public AjaxResult getInfo(@PathVariable("favoriteId") Long favoriteId)
-    {
-        return AjaxResult.success(liveUserFavoriteService.selectLiveUserFavoriteByFavoriteId(favoriteId));
-    }
-
-    /**
-     * 新增用户直播收藏
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFavorite:add')")
-    @Log(title = "用户直播收藏", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveUserFavorite liveUserFavorite)
-    {
-        return toAjax(liveUserFavoriteService.insertLiveUserFavorite(liveUserFavorite));
-    }
-
-    /**
-     * 修改用户直播收藏
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFavorite:edit')")
-    @Log(title = "用户直播收藏", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveUserFavorite liveUserFavorite)
-    {
-        return toAjax(liveUserFavoriteService.updateLiveUserFavorite(liveUserFavorite));
-    }
-
-    /**
-     * 删除用户直播收藏
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFavorite:remove')")
-    @Log(title = "用户直播收藏", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{favoriteIds}")
-    public AjaxResult remove(@PathVariable Long[] favoriteIds)
-    {
-        return toAjax(liveUserFavoriteService.deleteLiveUserFavoriteByFavoriteIds(favoriteIds));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveUserFollowController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveUserFollow;
-import com.fs.live.service.ILiveUserFollowService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 用户直播关注Controller
- *
- * @author fs
- * @date 2025-07-11
- */
-@RestController
-@RequestMapping("/live/liveUserFollow")
-public class LiveUserFollowController extends BaseController
-{
-    @Autowired
-    private ILiveUserFollowService liveUserFollowService;
-
-    /**
-     * 查询用户直播关注列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFollow:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveUserFollow liveUserFollow)
-    {
-        startPage();
-        List<LiveUserFollow> list = liveUserFollowService.selectLiveUserFollowList(liveUserFollow);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出用户直播关注列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFollow:export')")
-    @Log(title = "用户直播关注", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveUserFollow liveUserFollow)
-    {
-        List<LiveUserFollow> list = liveUserFollowService.selectLiveUserFollowList(liveUserFollow);
-        ExcelUtil<LiveUserFollow> util = new ExcelUtil<LiveUserFollow>(LiveUserFollow.class);
-        return util.exportExcel(list, "用户直播关注数据");
-    }
-
-    /**
-     * 获取用户直播关注详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFollow:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveUserFollowService.selectLiveUserFollowById(id));
-    }
-
-    /**
-     * 新增用户直播关注
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFollow:add')")
-    @Log(title = "用户直播关注", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveUserFollow liveUserFollow)
-    {
-        return toAjax(liveUserFollowService.insertLiveUserFollow(liveUserFollow));
-    }
-
-    /**
-     * 修改用户直播关注
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFollow:edit')")
-    @Log(title = "用户直播关注", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveUserFollow liveUserFollow)
-    {
-        return toAjax(liveUserFollowService.updateLiveUserFollow(liveUserFollow));
-    }
-
-    /**
-     * 删除用户直播关注
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserFollow:remove')")
-    @Log(title = "用户直播关注", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveUserFollowService.deleteLiveUserFollowByIds(ids));
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveUserLikeController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveUserLike;
-import com.fs.live.service.ILiveUserLikeService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 用户直播赞Controller
- *
- * @author fs
- * @date 2025-07-11
- */
-@RestController
-@RequestMapping("/live/liveUserLike")
-public class LiveUserLikeController extends BaseController
-{
-    @Autowired
-    private ILiveUserLikeService liveUserLikeService;
-
-    /**
-     * 查询用户直播赞列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserLike:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveUserLike liveUserLike)
-    {
-        startPage();
-        List<LiveUserLike> list = liveUserLikeService.selectLiveUserLikeList(liveUserLike);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出用户直播赞列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserLike:export')")
-    @Log(title = "用户直播赞", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveUserLike liveUserLike)
-    {
-        List<LiveUserLike> list = liveUserLikeService.selectLiveUserLikeList(liveUserLike);
-        ExcelUtil<LiveUserLike> util = new ExcelUtil<LiveUserLike>(LiveUserLike.class);
-        return util.exportExcel(list, "用户直播赞数据");
-    }
-
-    /**
-     * 获取用户直播赞详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserLike:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveUserLikeService.selectLiveUserLikeById(id));
-    }
-
-    /**
-     * 新增用户直播赞
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserLike:add')")
-    @Log(title = "用户直播赞", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveUserLike liveUserLike)
-    {
-        return toAjax(liveUserLikeService.insertLiveUserLike(liveUserLike));
-    }
-
-    /**
-     * 修改用户直播赞
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserLike:edit')")
-    @Log(title = "用户直播赞", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveUserLike liveUserLike)
-    {
-        return toAjax(liveUserLikeService.updateLiveUserLike(liveUserLike));
-    }
-
-    /**
-     * 删除用户直播赞
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserLike:remove')")
-    @Log(title = "用户直播赞", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveUserLikeService.deleteLiveUserLikeByIds(ids));
-    }
-}

+ 0 - 108
fs-admin/src/main/java/com/fs/live/live/controller/LiveUserLotteryRecordController.java

@@ -1,108 +0,0 @@
-package com.fs.live.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.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.live.domain.LiveUserLotteryRecord;
-import com.fs.live.service.ILiveUserLotteryRecordService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播用户中奖记录Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveUserLotteryRecord")
-public class LiveUserLotteryRecordController extends BaseController
-{
-    @Autowired
-    private ILiveUserLotteryRecordService liveUserLotteryRecordService;
-
-    /**
-     * 查询直播用户中奖记录列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveUserLotteryRecord liveUserLotteryRecord)
-    {
-        startPage();
-        List<LiveUserLotteryRecord> list = liveUserLotteryRecordService.selectLiveUserLotteryRecordList(liveUserLotteryRecord);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播用户中奖记录列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:export')")
-    @Log(title = "直播用户中奖记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveUserLotteryRecord liveUserLotteryRecord)
-    {
-        List<LiveUserLotteryRecord> list = liveUserLotteryRecordService.selectLiveUserLotteryRecordList(liveUserLotteryRecord);
-        ExcelUtil<LiveUserLotteryRecord> util = new ExcelUtil<LiveUserLotteryRecord>(LiveUserLotteryRecord.class);
-        return util.exportExcel(list, "直播用户中奖记录数据");
-    }
-
-    /**
-     * 获取直播用户中奖记录详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveUserLotteryRecordService.selectLiveUserLotteryRecordById(id));
-    }
-
-    /**
-     * 新增直播用户中奖记录
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:add')")
-    @Log(title = "直播用户中奖记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveUserLotteryRecord liveUserLotteryRecord)
-    {
-        return toAjax(liveUserLotteryRecordService.insertLiveUserLotteryRecord(liveUserLotteryRecord));
-    }
-
-    /**
-     * 修改直播用户中奖记录
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:edit')")
-    @Log(title = "直播用户中奖记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveUserLotteryRecord liveUserLotteryRecord)
-    {
-        return toAjax(liveUserLotteryRecordService.updateLiveUserLotteryRecord(liveUserLotteryRecord));
-    }
-
-    /**
-     * 删除直播用户中奖记录
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:remove')")
-    @Log(title = "直播用户中奖记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveUserLotteryRecordService.deleteLiveUserLotteryRecordByIds(ids));
-    }
-
-    /**
-     * 查询直播用户中奖记录列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveUserLotteryRecord:list')")
-    @PostMapping("/info")
-    public R info(@RequestBody LiveUserLotteryRecord liveUserLotteryRecord)
-    {
-        return liveUserLotteryRecordService.selectRecordByLiveIdAndLotteryId(liveUserLotteryRecord);
-    }
-}

+ 0 - 97
fs-admin/src/main/java/com/fs/live/live/controller/LiveUserRedRecordController.java

@@ -1,97 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.live.domain.LiveUserRedRecord;
-import com.fs.live.service.ILiveUserRedRecordService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播用户红包记录Controller
- *
- * @author fs
- * @date 2025-07-17
- */
-@RestController
-@RequestMapping("/live/liveUserRedRecord")
-public class LiveUserRedRecordController extends BaseController
-{
-    @Autowired
-    private ILiveUserRedRecordService liveUserRedRecordService;
-
-    /**
-     * 查询直播用户红包记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserRedRecord:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveUserRedRecord liveUserRedRecord)
-    {
-        startPage();
-        List<LiveUserRedRecord> list = liveUserRedRecordService.selectLiveUserRedRecordList(liveUserRedRecord);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播用户红包记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserRedRecord:export')")
-    @Log(title = "直播用户红包记录", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveUserRedRecord liveUserRedRecord)
-    {
-        List<LiveUserRedRecord> list = liveUserRedRecordService.selectLiveUserRedRecordList(liveUserRedRecord);
-        ExcelUtil<LiveUserRedRecord> util = new ExcelUtil<LiveUserRedRecord>(LiveUserRedRecord.class);
-        return util.exportExcel(list, "直播用户红包记录数据");
-    }
-
-    /**
-     * 获取直播用户红包记录详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserRedRecord:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(liveUserRedRecordService.selectLiveUserRedRecordById(id));
-    }
-
-    /**
-     * 新增直播用户红包记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserRedRecord:add')")
-    @Log(title = "直播用户红包记录", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveUserRedRecord liveUserRedRecord)
-    {
-        return toAjax(liveUserRedRecordService.insertLiveUserRedRecord(liveUserRedRecord));
-    }
-
-    /**
-     * 修改直播用户红包记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserRedRecord:edit')")
-    @Log(title = "直播用户红包记录", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveUserRedRecord liveUserRedRecord)
-    {
-        return toAjax(liveUserRedRecordService.updateLiveUserRedRecord(liveUserRedRecord));
-    }
-
-    /**
-     * 删除直播用户红包记录
-     */
-    @PreAuthorize("@ss.hasPermi('live:liveUserRedRecord:remove')")
-    @Log(title = "直播用户红包记录", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(liveUserRedRecordService.deleteLiveUserRedRecordByIds(ids));
-    }
-}

+ 0 - 120
fs-admin/src/main/java/com/fs/live/live/controller/LiveVideoController.java

@@ -1,120 +0,0 @@
-package com.fs.live.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.common.utils.poi.ExcelUtil;
-import com.fs.config.cloud.CloudHostProper;
-import com.fs.hisStore.enums.CompanyEnum;
-import com.fs.hisStore.enums.LiveEnum;
-import com.fs.live.domain.LiveVideo;
-import com.fs.live.service.ILiveVideoService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 直播视频Controller
- *
- * @author fs
- * @date 2025-01-17
- */
-@RestController
-@RequestMapping("/live/liveVideo")
-public class LiveVideoController extends BaseController
-{
-    @Autowired
-    private ILiveVideoService liveVideoService;
-
-    /**
-     * 查询直播视频列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(LiveVideo liveVideo)
-    {
-        startPage();
-        List<LiveVideo> list = liveVideoService.selectLiveVideoList(liveVideo);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出直播视频列表
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:export')")
-    @Log(title = "直播视频", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(LiveVideo liveVideo)
-    {
-        List<LiveVideo> list = liveVideoService.selectLiveVideoList(liveVideo);
-        ExcelUtil<LiveVideo> util = new ExcelUtil<LiveVideo>(LiveVideo.class);
-        return util.exportExcel(list, "直播视频数据");
-    }
-
-    /**
-     * 获取直播视频详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:query')")
-    @GetMapping(value = "/{videoId}")
-    public AjaxResult getInfo(@PathVariable("videoId") Long videoId)
-    {
-        return AjaxResult.success(liveVideoService.selectLiveVideoByVideoId(videoId));
-    }
-
-    /**
-     * 获取直播视频详细信息
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:query')")
-    @GetMapping(value = "/liveVideoByLiveId/{liveId}")
-    public AjaxResult getLiveVideoByLiveId(@PathVariable("liveId") Long liveId)
-    {
-        return AjaxResult.success(liveVideoService.selectLiveVideoByLiveId(liveId));
-    }
-
-    /**
-     * 获取直播视频详细信息
-     */
-    @GetMapping(value = "/preview/{liveId}")
-    public AjaxResult getLiveVideoByLiveIdAndType(@PathVariable("liveId") Long liveId)
-    {
-        return AjaxResult.success(liveVideoService.selectLiveVideoByLiveIdAndType(liveId,3));
-    }
-
-    /**
-     * 新增直播视频
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:add')")
-    @Log(title = "直播视频", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody LiveVideo liveVideo)
-    {
-
-        return toAjax(liveVideoService.insertLiveVideo(liveVideo));
-    }
-
-    /**
-     * 修改直播视频
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:edit')")
-    @Log(title = "直播视频", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody LiveVideo liveVideo)
-    {
-        return toAjax(liveVideoService.updateLiveVideo(liveVideo));
-    }
-
-    /**
-     * 删除直播视频
-     */
-//    @PreAuthorize("@ss.hasPermi('live:liveVideo:remove')")
-    @Log(title = "直播视频", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{videoIds}")
-    public AjaxResult remove(@PathVariable Long[] videoIds)
-    {
-        return toAjax(liveVideoService.deleteLiveVideoByVideoIds(videoIds));
-    }
-}

+ 0 - 356
fs-admin/src/main/java/com/fs/live/live/controller/OrderController.java

@@ -1,356 +0,0 @@
-package com.fs.live.controller;
-
-import cn.hutool.core.bean.BeanUtil;
-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.framework.security.LoginUser;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.core.page.PageDomain;
-import com.fs.common.core.page.TableSupport;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.ServletUtils;
-import com.fs.common.utils.StringUtils;
-import com.fs.common.constant.HttpStatus;
-import com.fs.framework.service.TokenService;
-import com.fs.his.utils.PhoneUtil;
-import com.fs.hisStore.dto.StoreOrderProductDTO;
-import com.fs.hisStore.service.IMergedOrderService;
-import com.fs.hisStore.vo.FsStoreOrderItemExportVO;
-import com.fs.live.param.MergedOrderQueryParam;
-import com.fs.live.vo.MergedOrderVO;
-import com.fs.live.vo.MergedOrderExportVO;
-import com.fs.common.utils.poi.ExcelUtil;
-import org.springframework.beans.BeanUtils;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-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.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-/**
- * 合并订单Controller
- *
- * @author fs
- * @date 2025-01-XX
- */
-@Api("合并订单管理")
-@RestController
-@RequestMapping("/order")
-public class OrderController extends BaseController
-{
-    @Autowired
-    private IMergedOrderService mergedOrderService;
-    // 设置最大导出数量限制为20000条
-    private static final int maxExportCount = 50000;
-
-
-    @Autowired
-    private TokenService tokenService;
-
-    /**
-     * 查询合并订单列表
-     */
-    @ApiOperation("查询合并订单列表")
-    @GetMapping("/list")
-    public TableDataInfo list(MergedOrderQueryParam param)
-    {
-        // 从请求参数中获取分页信息
-        PageDomain pageDomain = TableSupport.buildPageRequest();
-        Integer pageNum = pageDomain.getPageNum();
-        Integer pageSize = pageDomain.getPageSize();
-        
-        // 设置分页参数到 param
-        if (pageNum == null || pageNum < 1) {
-            pageNum = 1;
-            param.setPageNum(1);
-        } else {
-            param.setPageNum(pageNum);
-        }
-        if (pageSize == null || pageSize < 1) {
-            pageSize = 10;
-            param.setPageSize(10);
-        } else {
-            param.setPageSize(pageSize);
-        }
-        
-        // 在外面计算 offset,然后放在请求参数中
-        Integer offset = (pageNum - 1) * pageSize;
-        param.setOffset(offset);
-        
-        // 先查询总数(不分页)
-        long total = mergedOrderService.countMergedOrderList(param);
-        
-        // 查询分页数据
-        List<MergedOrderVO> list = mergedOrderService.selectMergedOrderList(param);
-        for (MergedOrderVO vo : list) {
-            vo.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-            vo.setPhone(ParseUtils.parsePhone(vo.getPhone()));
-            vo.setSalesPhone(ParseUtils.parsePhone(vo.getSalesPhone()));
-            vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-            vo.setCost(BigDecimal.ZERO);
-        }
-        
-        TableDataInfo dataTable = new TableDataInfo();
-        dataTable.setCode(HttpStatus.SUCCESS);
-        dataTable.setMsg("查询成功");
-        dataTable.setRows(list);
-        dataTable.setTotal(total);
-        return dataTable;
-    }
-
-    /**
-     * 导出合并订单列表
-     */
-    @PreAuthorize("@ss.hasPermi('live:order:export')")
-    @ApiOperation("导出合并订单列表")
-    @Log(title = "合并订单", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(MergedOrderQueryParam param)
-    {
-        // 先查询数据,限制查询20001条,用于判断是否超过限制
-        param.setExportFlag(1);
-        param.setPageNum(1);
-        param.setPageSize(maxExportCount + 1);
-        List<MergedOrderVO> list = mergedOrderService.selectMergedOrderList(param);
-        // 如果查询结果超过20000条,返回错误提示
-        if (list != null && list.size() > maxExportCount) {
-            return AjaxResult.error("导出数据量超过限制,最多只能导出" + maxExportCount + "条数据,请缩小查询范围后重试");
-        }
-        list = list.stream().filter(item -> StringUtils.isNotEmpty(item.getBankTransactionId())).collect(Collectors.toList());
-
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-
-        for (MergedOrderVO vo : list) {
-            if (!StringUtils.isEmpty(vo.getItemJson())) {
-                try {
-                    StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getItemJson(), StoreOrderProductDTO.class);
-                    BeanUtil.copyProperties(orderProductDTO, vo);
-                } catch (Exception e) {
-                    System.out.println(e.getMessage());
-                }
-            }
-        }
-
-        // 转换为导出VO
-        List<MergedOrderExportVO> exportList = convertToExportVO(list, false,loginUser);
-
-        // 如果数据量在限制范围内,正常导出
-        ExcelUtil<MergedOrderExportVO> util = new ExcelUtil<>(MergedOrderExportVO.class);
-        return util.exportExcel(exportList, "合并订单数据");
-    }
-
-    /**
-     * 导出合并订单(明文)
-     */
-    @ApiOperation("导出合并订单(明文)")
-    @Log(title = "合并订单(明文)", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermi('live:order:exportAll')")
-    @GetMapping("/exportDetails")
-    public AjaxResult exportDetails(MergedOrderQueryParam param)
-    {
-        // 先查询数据,限制查询20001条,用于判断是否超过限制
-        param.setExportFlag(1);
-        param.setPageNum(1);
-        param.setPageSize(maxExportCount + 1);
-        List<MergedOrderVO> list = mergedOrderService.selectMergedOrderList(param);
-        // 如果查询结果超过20000条,返回错误提示
-        if (list != null && list.size() > maxExportCount) {
-            return AjaxResult.error("导出数据量超过限制,最多只能导出" + maxExportCount + "条数据,请缩小查询范围后重试");
-        }
-        list = list.stream().filter(item -> StringUtils.isNotEmpty(item.getBankTransactionId())).collect(Collectors.toList());
-
-        com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-
-        for (MergedOrderVO vo : list) {
-            if (!StringUtils.isEmpty(vo.getItemJson())) {
-                try {
-                    StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getItemJson(), StoreOrderProductDTO.class);
-                    BeanUtil.copyProperties(orderProductDTO, vo);
-                } catch (Exception e) {
-                }
-            }
-            //
-
-        }
-
-        // 转换为导出VO(明文模式,不脱敏)
-        List<MergedOrderExportVO> exportList = convertToExportVO(list, true,loginUser);
-
-        ExcelUtil<MergedOrderExportVO> util = new ExcelUtil<>(MergedOrderExportVO.class);
-        return util.exportExcel(exportList, "合并订单(明文)");
-    }
-
-    /**
-     * 导出合并订单明细
-     */
-    // 预留接口
-    @PreAuthorize("@ss.hasPermi('live:order:exportOther')")
-    @ApiOperation("导出合并订单明细")
-    @Log(title = "合并订单明细", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportItems")
-    public AjaxResult exportItems(MergedOrderQueryParam param)
-    {
-        // 先查询数据,限制查询20001条,用于判断是否超过限制
-        param.setExportFlag(1);
-        param.setPageNum(1);
-        param.setPageSize(maxExportCount + 1);
-        List<MergedOrderVO> list = mergedOrderService.selectMergedOrderList(param);
-
-        // 如果查询结果超过20000条,返回错误提示
-        if (list != null && list.size() > maxExportCount) {
-            return AjaxResult.error("导出数据量超过限制,最多只能导出" + maxExportCount + "条数据,请缩小查询范围后重试");
-        }
-
-        ExcelUtil<MergedOrderVO> util = new ExcelUtil<>(MergedOrderVO.class);
-        return util.exportExcel(list, "合并订单明细");
-    }
-
-
-
-    /**
-     * 导出合并订单明细(明文)
-     */
-    // 预留接口
-    @PreAuthorize("@ss.hasPermi('live:order:exportOther')")
-    @ApiOperation("导出合并订单明细(明文)")
-    @Log(title = "合并订单明细(明文)", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportItemsDetails")
-    public AjaxResult exportItemsDetails(MergedOrderQueryParam param)
-    {
-        // 先查询数据,限制查询20001条,用于判断是否超过限制
-        param.setExportFlag(1);
-        param.setPageNum(1);
-        param.setPageSize(maxExportCount + 1);
-        List<MergedOrderVO> list = mergedOrderService.selectMergedOrderList(param);
-
-        // 如果查询结果超过20000条,返回错误提示
-        if (list != null && list.size() > maxExportCount) {
-            return AjaxResult.error("导出数据量超过限制,最多只能导出" + maxExportCount + "条数据,请缩小查询范围后重试");
-        }
-
-        ExcelUtil<MergedOrderVO> util = new ExcelUtil<>(MergedOrderVO.class);
-        return util.exportExcel(list, "合并订单明细(明文)");
-    }
-
-    /**
-     * 导出合并订单发货单
-     */
-    @ApiOperation("导出合并订单发货单")
-    @Log(title = "合并订单发货单", businessType = BusinessType.EXPORT)
-    @GetMapping("/exportShipping")
-    public AjaxResult exportShipping(MergedOrderQueryParam param)
-    {
-        // 先查询数据,限制查询20001条,用于判断是否超过限制
-        param.setExportFlag(1);
-        param.setPageNum(1);
-        param.setPageSize(maxExportCount + 1);
-        List<MergedOrderVO> list = mergedOrderService.selectMergedOrderList(param);
-        // 如果查询结果超过20000条,返回错误提示
-        if (list != null && list.size() > maxExportCount) {
-            return AjaxResult.error("导出数据量超过限制,最多只能导出" + maxExportCount + "条数据,请缩小查询范围后重试");
-        }
-        ExcelUtil<MergedOrderVO> util = new ExcelUtil<>(MergedOrderVO.class);
-        return util.exportExcel(list, "合并订单发货单");
-    }
-
-    /**
-     * 将 MergedOrderVO 转换为 MergedOrderExportVO
-     * @param list 原始数据列表
-     * @param isPlainText 是否为明文模式(true:不脱敏,false:脱敏)
-     * @return 导出VO列表
-     */
-    private List<MergedOrderExportVO> convertToExportVO(List<MergedOrderVO> list, boolean isPlainText,LoginUser loginUser)
-    {
-        if (list == null || list.isEmpty()) {
-            return new ArrayList<>();
-        }
-
-        return list.stream().map(vo -> {
-            MergedOrderExportVO exportVO = new MergedOrderExportVO();
-
-            // 订单基本信息(参考 FsStoreOrderItemExportVO 的顺序)
-            exportVO.setOrderTypeName(vo.getOrderTypeName());
-            exportVO.setOrderCode(vo.getOrderCode());
-            exportVO.setStatus(vo.getStatus() != null ? String.valueOf(vo.getStatus()) : null);
-            exportVO.setUserId(vo.getUserId());
-
-            // 产品信息
-            exportVO.setProductName(StringUtils.isEmpty(vo.getProductName()) ? "产品被删除" : vo.getProductName());
-            exportVO.setBarCode(vo.getBarCode());
-            exportVO.setProductSpec(StringUtils.isEmpty(vo.getProductSpec()) ? "默认" : vo.getProductSpec());
-            exportVO.setTotalNum(vo.getTotalNum());
-            exportVO.setPrice(vo.getTotalPrice()); // 产品价格使用订单总价
-            exportVO.setCost(vo.getCost() != null ? vo.getCost() : BigDecimal.ZERO);
-            exportVO.setFPrice(vo.getCost() != null ? vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())) : BigDecimal.ZERO); // 结算价,合并订单暂无此字段
-            exportVO.setPayPostage(vo.getPayDelivery());
-            exportVO.setCateName(StringUtils.isEmpty(vo.getCateName()) ? "产品被删除" : vo.getCateName());
-            // 收货信息
-            exportVO.setRealName(vo.getRealName());
-            if (isPlainText) {
-                exportVO.setUserPhone(vo.getUserPhone());
-                exportVO.setUserAddress(vo.getUserAddress());
-            } else {
-                exportVO.setUserPhone(ParseUtils.parsePhone(vo.getUserPhone()));
-                exportVO.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
-            }
-
-            // 时间信息
-            exportVO.setCreateTime(vo.getCreateTime());
-            exportVO.setPayTime(vo.getPayTime());
-            exportVO.setHfshh(vo.getHfshh());
-
-            // 物流信息
-            exportVO.setDeliverySn(vo.getDeliveryCode()); // 快递公司编号,合并订单暂无此字段
-            exportVO.setDeliveryName(vo.getDeliveryName()); // 快递公司,合并订单暂无此字段
-            exportVO.setDeliveryId(vo.getDeliveryId());
-
-            // 公司和销售信息
-            exportVO.setCompanyName(vo.getCompanyName());
-            exportVO.setCompanyUserNickName(vo.getCompanyUserNickName());
-
-            // 套餐信息
-            exportVO.setPackageName(null); // 套餐名称,合并订单暂无此字段
-            exportVO.setGroupBarCode(null); // 组合码,合并订单暂无此字段
-
-            // 凭证信息
-            exportVO.setIsUpload(null); // 是否上传凭证,合并订单暂无此字段
-            exportVO.setUploadTime(null); // 上传时间,合并订单暂无此字段
-
-            // 档期信息
-            exportVO.setScheduleName(null); // 归属档期,合并订单暂无此字段
-
-            // 银行交易流水号
-            exportVO.setBankTransactionId(vo.getBankTransactionId());
-
-            // 金额信息
-            exportVO.setTotalPrice(vo.getTotalPrice());
-            exportVO.setPayPrice(vo.getPayPrice());
-            exportVO.setPayMoney(vo.getPayMoney());
-            exportVO.setPayPostage(vo.getPayDelivery()); // 额外运费,合并订单暂无此字段
-            exportVO.setPayDelivery(vo.getPayDelivery());
-            if ((loginUser.getPermissions().contains("order: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.setBankTransactionId("");
-            }
-
-            return exportVO;
-        }).collect(Collectors.toList());
-    }
-}

+ 18 - 4
fs-admin/src/main/java/com/fs/tenant/upgrade/service/impl/TenantUpgradeServiceImpl.java

@@ -414,19 +414,33 @@ public class TenantUpgradeServiceImpl implements TenantUpgradeService {
         DataSourceUtils.releaseConnection(holder.connection, dataSource);
     }
 
-    @Data
-    @AllArgsConstructor
     private static class MigrationScript {
         private String version;
         private String fileName;
         private String checksum;
         private Resource resource;
+
+        public MigrationScript(String version, String fileName, String checksum, Resource resource) {
+            this.version = version;
+            this.fileName = fileName;
+            this.checksum = checksum;
+            this.resource = resource;
+        }
+
+        public String getVersion() { return version; }
+        public String getFileName() { return fileName; }
+        public String getChecksum() { return checksum; }
+        public Resource getResource() { return resource; }
     }
 
-    @Data
-    @AllArgsConstructor
     private static class ConnectionHolder {
         private java.sql.Connection connection;
+
+        public ConnectionHolder(java.sql.Connection connection) {
+            this.connection = connection;
+        }
+
+        public java.sql.Connection getConnection() { return connection; }
     }
 
     private String str(Object v) {

+ 2 - 2
fs-admin/src/main/java/com/fs/web/controller/monitor/SysUserOnlineController.java

@@ -15,7 +15,7 @@ import com.fs.common.annotation.Log;
 import com.fs.common.constant.Constants;
 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.framework.security.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.enums.BusinessType;
@@ -46,7 +46,7 @@ public class SysUserOnlineController extends BaseController
         List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
         for (String key : keys)
         {
-            LoginUser user = redisCache.getCacheObject(key);
+            LoginUser user = (LoginUser) redisCache.getCacheObject(key);
             if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
             {
                 if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))

+ 12 - 8
fs-admin/src/main/java/com/fs/web/controller/system/SysKeywordController.java

@@ -137,15 +137,19 @@ public class SysKeywordController extends BaseController
      */
     @PostConstruct
     public void initKeywords() {
-        SysKeyword sysKeywordParam = new SysKeyword();
-        List<SysKeyword> sysKeywords = sysKeywordService.selectSysKeywordList(sysKeywordParam);
-        List<String> keywords = sysKeywords.stream()
-                .map(SysKeyword::getKeyword)
-                .collect(Collectors.toList());
+        try {
+            SysKeyword sysKeywordParam = new SysKeyword();
+            List<SysKeyword> sysKeywords = sysKeywordService.selectSysKeywordList(sysKeywordParam);
+            List<String> keywords = sysKeywords.stream()
+                    .map(SysKeyword::getKeyword)
+                    .collect(Collectors.toList());
 
-        if (!keywords.isEmpty()) {
-            redisTemplate.opsForSet().add(REDIS_KEY, keywords.toArray(new String[0]));
+            if (!keywords.isEmpty()) {
+                redisTemplate.opsForSet().add(REDIS_KEY, keywords.toArray(new String[0]));
+            }
+            System.out.println("加载全部关键字到缓存");
+        } catch (Exception e) {
+            System.err.println("警告: 加载关键字到Redis缓存失败,应用继续启动: " + e.getMessage());
         }
-        System.out.println("加载全部关键字到缓存");
     }
 }

+ 28 - 0
fs-service/src/main/java/com/fs/company/domain/Company.java

@@ -146,4 +146,32 @@ public class Company extends BaseEntity
 
     @TableField(exist = false)
     private List<Long> showGatewayIds;
+
+    /** 已消费总额 */
+    @TableField(exist = false)
+    private BigDecimal totalCost;
+
+    /** 开通账户数 */
+    @TableField(exist = false)
+    private Integer accountCount;
+
+    /** 绑定企微账户数 */
+    @TableField(exist = false)
+    private Integer qwAccountCount;
+
+    /** 绑定个微账户数 */
+    @TableField(exist = false)
+    private Integer wxAccountCount;
+
+    /** 客户数 */
+    @TableField(exist = false)
+    private Integer customerCount;
+
+    /** 企微用户数 */
+    @TableField(exist = false)
+    private Integer qwUserCount;
+
+    /** 归属代理名称 */
+    @TableField(exist = false)
+    private String proxyName;
 }

+ 8 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyMapper.java

@@ -40,6 +40,14 @@ public interface CompanyMapper
      */
     public List<Company> selectCompanyList(Company company);
 
+    /**
+     * 查询企业列表(附带统计数据)
+     *
+     * @param company 企业
+     * @return 企业集合
+     */
+    public List<Company> selectCompanyListWithStats(Company company);
+
     /**
      * 新增企业
      *

+ 8 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyService.java

@@ -50,6 +50,14 @@ public interface ICompanyService
      */
     public List<Company> selectCompanyList(Company company);
 
+    /**
+     * 查询企业列表(附带统计数据)
+     *
+     * @param company 企业
+     * @return 企业集合
+     */
+    public List<Company> selectCompanyListWithStats(Company company);
+
     /**
      * 新增企业
      *

+ 12 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java

@@ -392,6 +392,18 @@ public class CompanyServiceImpl implements ICompanyService
         return companyMapper.selectCompanyList(company);
     }
 
+    /**
+     * 查询企业列表(附带统计数据)
+     *
+     * @param company 企业
+     * @return 企业集合
+     */
+    @Override
+    public List<Company> selectCompanyListWithStats(Company company)
+    {
+        return companyMapper.selectCompanyListWithStats(company);
+    }
+
     /**
      * 新增企业
      *

+ 1 - 0
fs-service/src/main/java/com/fs/his/param/BatchCreateErpOrderParam.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import java.util.List;
 @Data
 public class BatchCreateErpOrderParam {
+    private String deliveryMethod; //配送方式
     private List<Long> orderIds;
     private String loginAccount;
     private Integer parcelQuantity; //包裹数量

+ 33 - 0
fs-service/src/main/resources/mapper/company/CompanyMapper.xml

@@ -42,6 +42,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="groupName"    column="group_name"    />
         <result property="maxPadNum"    column="max_pad_num"    />
         <result property="deptId"   column="dept_id" />
+        <result property="totalCost"    column="totalCost"    />
+        <result property="accountCount"    column="accountCount"    />
+        <result property="qwAccountCount"    column="qwAccountCount"    />
+        <result property="wxAccountCount"    column="wxAccountCount"    />
+        <result property="customerCount"    column="customerCount"    />
+        <result property="qwUserCount"    column="qwUserCount"    />
+        <result property="proxyName"    column="proxyName"    />
     </resultMap>
 
     <sql id="selectCompanyVo">
@@ -277,6 +284,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </update>
 
+    <select id="selectCompanyListWithStats" resultMap="CompanyResult">
+        SELECT c.*,
+            (SELECT COALESCE(SUM(cml.money), 0) FROM company_money_logs cml WHERE cml.company_id = c.company_id AND cml.logs_type IN (2, 4)) AS totalCost,
+            (SELECT COUNT(*) FROM company_user cu WHERE cu.company_id = c.company_id AND cu.del_flag = '0') AS accountCount,
+            (SELECT COUNT(*) FROM company_user cu2 WHERE cu2.company_id = c.company_id AND cu2.del_flag = '0' AND cu2.qw_user_id IS NOT NULL AND cu2.qw_user_id != '') AS qwAccountCount,
+            (SELECT COUNT(*) FROM company_wx_user cwu WHERE cwu.company_id = c.company_id) AS wxAccountCount,
+            (SELECT COUNT(*) FROM qw_external_contact qec WHERE qec.company_id = c.company_id AND qec.status = 0) AS customerCount,
+            (SELECT COUNT(*) FROM qw_user qu WHERE qu.company_id = c.company_id AND qu.is_del = 0) AS qwUserCount,
+            (SELECT p.proxy_name FROM proxy_tenant_rel ptr LEFT JOIN proxy p ON ptr.proxy_id = p.proxy_id WHERE ptr.tenant_id = c.company_id LIMIT 1) AS proxyName
+        FROM company c
+        WHERE c.is_del = 0
+        <if test="companyName != null and companyName != ''">
+            AND c.company_name LIKE CONCAT('%', #{companyName}, '%')
+        </if>
+        <if test="companyMobile != null and companyMobile != ''">
+            AND c.company_mobile = #{companyMobile}
+        </if>
+        <if test="status != null">
+            AND c.status = #{status}
+        </if>
+        <if test="deptId != null">
+            AND c.dept_id = #{deptId}
+        </if>
+        ORDER BY c.company_id DESC
+    </select>
+
     <select id="getGateWayList" resultType="java.lang.String">
         select GROUP_CONCAT(gateway_id) from company_bind_gateway where company_id = #{companyId}
     </select>

+ 1 - 1
pom.xml

@@ -13,7 +13,7 @@
         <fs.version>1.1.0</fs.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>17</java.version>
+        <java.version>1.8</java.version>
         <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
         <druid.version>1.2.6</druid.version>
         <bitwalker.version>1.21</bitwalker.version>