Эх сурвалжийг харах

fix 去除跨域注解,部分bug修改

pengzhenggao 1 долоо хоног өмнө
parent
commit
2fae528e37
100 өөрчлөгдсөн 1856 нэмэгдсэн , 1069 устгасан
  1. 2 3
      fuintAdmin/.env.development
  2. 2 2
      fuintAdmin/package.json
  3. 6 0
      fuintBackend/fuint-application/Dockerfile
  4. 12 3
      fuintBackend/fuint-application/pom.xml
  5. 0 2
      fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/AliPayBean.java
  6. 1 1
      fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/UnionPayBean.java
  7. 1 1
      fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/WxPayBean.java
  8. 0 1
      fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/WxPayV3Bean.java
  9. 32 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/config/GlobalCorsConfig.java
  10. 19 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/config/WebSocketConfiguration.java
  11. 6 38
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderDto.java
  12. 2 29
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderItemDto.java
  13. 2 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/UserOrderDto.java
  14. 35 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/AlertDTO.java
  15. 21 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/AllGoodsDto.java
  16. 0 22
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/EchartsBarResponse.java
  17. 17 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/PurchaseOrderSearchDto.java
  18. 15 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/RevenueStatisticsDto.java
  19. 13 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/SelectDto.java
  20. 3 6
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/SeriesData.java
  21. 17 7
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/ShopAlertRequest.java
  22. 52 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/TransactionsDto.java
  23. 84 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/enums/AlertEnum.java
  24. 7 5
      fuintBackend/fuint-application/src/main/java/com/fuint/common/job/ScheduleTask.java
  25. 10 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/AccountService.java
  26. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/AlertService.java
  27. 1 3
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/EmailService.java
  28. 8 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/GoodsService.java
  29. 5 1
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/MaterialTypeService.java
  30. 12 2
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/OrderService.java
  31. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/PurchaseOrderService.java
  32. 13 5
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/StoreAlertService.java
  33. 426 369
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/AccountServiceImpl.java
  34. 63 53
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/AlertServiceImpl.java
  35. 2 3
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/CartServiceImpl.java
  36. 1 1
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/CountryServiceImpl.java
  37. 34 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/GoodsServiceImpl.java
  38. 7 5
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/MaterialServiceImpl.java
  39. 26 5
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/MaterialTypeServiceImpl.java
  40. 145 33
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java
  41. 3 3
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderItemServiceImpl.java
  42. 142 132
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderServiceImpl.java
  43. 69 34
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/StoreAlertServiceImpl.java
  44. 11 5
      fuintBackend/fuint-application/src/main/java/com/fuint/common/util/TimeUtils.java
  45. 13 2
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MaterialVo.java
  46. 1 2
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderItemVo.java
  47. 78 6
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderVo.java
  48. 15 2
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/ShopDetailVO.java
  49. 15 4
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/ShopVO.java
  50. 0 2
      fuintBackend/fuint-application/src/main/java/com/fuint/fuintApplication.java
  51. 8 8
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendAccountController.java
  52. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendArticleController.java
  53. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBalanceController.java
  54. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBannerController.java
  55. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookCateController.java
  56. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookController.java
  57. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookItemController.java
  58. 7 7
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCashierController.java
  59. 3 3
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCateController.java
  60. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionCashController.java
  61. 3 3
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionLogController.java
  62. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionRuleController.java
  63. 1 1
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommonController.java
  64. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendConfirmLogController.java
  65. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCountryController.java
  66. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponController.java
  67. 8 8
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponGroupController.java
  68. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCurrencyController.java
  69. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendDoConfirmController.java
  70. 6 6
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendDutyController.java
  71. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendFileController.java
  72. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendGenCodeController.java
  73. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendGiveLogController.java
  74. 33 12
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendGoodsController.java
  75. 13 9
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendHomeController.java
  76. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendIngredientController.java
  77. 12 1
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendLoginController.java
  78. 48 23
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMaterialController.java
  79. 19 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMaterialTypeController.java
  80. 10 10
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java
  81. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberGroupController.java
  82. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMerchantController.java
  83. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendOpenGiftController.java
  84. 25 15
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendOrderController.java
  85. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPointController.java
  86. 7 7
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPrinterController.java
  87. 15 16
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderController.java
  88. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderItemController.java
  89. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendRefundController.java
  90. 2 2
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSendLogController.java
  91. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSettlementController.java
  92. 3 3
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSmsController.java
  93. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSmsTemplateController.java
  94. 6 6
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStaffController.java
  95. 51 6
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStatisticController.java
  96. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStockController.java
  97. 5 5
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStoreController.java
  98. 3 3
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSubMessageController.java
  99. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendTableCategoryController.java
  100. 4 4
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendTableController.java

+ 2 - 3
fuintAdmin/.env.development

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 盼达点餐管理系统
+VUE_APP_TITLE = fuint餐饮点餐营销管理系统
 
 # 开发环境配置
 ENV = 'development'
@@ -11,5 +11,4 @@ VUE_APP_BASE_API = '/dev-api'
 VUE_APP_PUBLIC_PATH = '/'
 
 # 后端接口地址
-# VUE_APP_SERVER_URL = 'http://192.168.1.44:8080'
-VUE_APP_SERVER_URL = 'http://192.168.1.44:8080'
+VUE_APP_SERVER_URL = 'http://192.168.1.110:8080'

+ 2 - 2
fuintAdmin/package.json

@@ -5,8 +5,8 @@
   "author": "FSQ",
   "license": "MIT",
   "scripts": {
-    "dev": "vue-cli-service serve",
-    "build:prod": "vue-cli-service build",
+    "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+    "build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
     "build:stage": "vue-cli-service build --mode staging",
     "preview": "node build/index.js --preview",
     "lint": "eslint --ext .js,.vue src"

+ 6 - 0
fuintBackend/fuint-application/Dockerfile

@@ -0,0 +1,6 @@
+FROM openjdk:8-jdk-slim
+
+WORKDIR /opt
+COPY ./target/fuint-food-1.0.0.jar  fuint-food-1.0.0.jar
+EXPOSE 8080
+ENTRYPOINT ["nohup","java", "-jar","-server","-Xms2048m","-Xmx2048m","fuint-food-1.0.0.jar",">","fuint-food-1.0.0.log","&"]

+ 12 - 3
fuintBackend/fuint-application/pom.xml

@@ -37,8 +37,14 @@
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.aspectj</groupId>  
-            <artifactId>aspectjweaver</artifactId>  
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
+        </dependency>
+        <!-- SAAJ 实现(旧版,适用于Java 8/Javax命名空间) -->
+        <dependency>
+            <groupId>com.sun.xml.messaging.saaj</groupId>
+            <artifactId>saaj-impl</artifactId>
+            <version>1.5.3</version>
         </dependency>
         <dependency>
             <groupId>commons-httpclient</groupId>
@@ -77,7 +83,10 @@
             <artifactId>mybatis-plus</artifactId>
             <version>${mybatis-plus.version}</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper-spring-boot-starter</artifactId>

+ 0 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/AliPayBean.java

@@ -1,7 +1,6 @@
 package com.fuint.common.bean;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.PropertySource;
 import org.springframework.stereotype.Component;
 
 /**
@@ -11,7 +10,6 @@ import org.springframework.stereotype.Component;
  * CopyRight https://www.fuint.cn
  */
 @Component
-@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
 @ConfigurationProperties(prefix = "alipay")
 public class AliPayBean {
 

+ 1 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/UnionPayBean.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
  * CopyRight https://www.fuint.cn
  */
 @Component
-@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
+
 @ConfigurationProperties(prefix = "union")
 public class UnionPayBean {
 

+ 1 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/WxPayBean.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
  * CopyRight https://www.fuint.cn
  */
 @Component
-@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
+
 @ConfigurationProperties(prefix = "wxpay")
 public class WxPayBean {
 

+ 0 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/common/bean/WxPayV3Bean.java

@@ -11,7 +11,6 @@ import org.springframework.stereotype.Component;
  * CopyRight https://www.fuint.cn
  */
 @Component
-@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
 @ConfigurationProperties(prefix = "v3")
 public class WxPayV3Bean {
 

+ 32 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/config/GlobalCorsConfig.java

@@ -0,0 +1,32 @@
+package com.fuint.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+@Configuration
+public class GlobalCorsConfig {
+	@Bean
+	public CorsFilter corsFilter() {
+		//1. 添加 CORS配置信息
+		CorsConfiguration config = new CorsConfiguration();
+		//放行哪些原始域
+		config.addAllowedOrigin("*");
+		//是否发送 Cookie
+		config.setAllowCredentials(true);
+		//放行哪些请求方式
+		config.addAllowedMethod("*");
+		//放行哪些原始请求头部信息
+		config.addAllowedHeader("*");
+		//暴露哪些头部信息
+		config.addExposedHeader("*");
+		//2. 添加映射路径
+		UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
+		corsConfigurationSource.registerCorsConfiguration("/**",config);
+		//3. 返回新的CorsFilter
+		return new CorsFilter(corsConfigurationSource);
+	}
+}
+

+ 19 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/config/WebSocketConfiguration.java

@@ -0,0 +1,19 @@
+package com.fuint.common.config;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+@Configuration
+public class WebSocketConfiguration {
+	/**
+	 * 	注入ServerEndpointExporter,
+	 * 	这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint
+	 */
+	@Bean
+	public ServerEndpointExporter serverEndpointExporter() {
+		return new ServerEndpointExporter();
+	}
+}
+

+ 6 - 38
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderDto.java

@@ -1,16 +1,12 @@
 package com.fuint.common.dto;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.Setter;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -27,50 +23,31 @@ public class MtPurchaseOrderDto extends Page implements Serializable {
 
     @ApiModelProperty("实际支付")
     @NonNull
-    private Double actualPrice;
+    private BigDecimal actualPrice;
 
     @ApiModelProperty("联系方式")
     private String contactWay;
 
-    @ApiModelProperty("创建时间")
-    private Date createTime;
-
-    @ApiModelProperty("创建时间截止时间")
-    private Date endTime;
+    @ApiModelProperty("负责人")
+    private String responsible;
 
     @ApiModelProperty("创建用户id")
     private String createUserId;
 
-    @ApiModelProperty("是否删除 0否 1是")
-    private Integer deleteFlag;
-
     @ApiModelProperty("发票文件/图片id")
     private String fileId;
 
-    @ApiModelProperty("采购记录id")
-    @TableId(value = "ID", type = IdType.ID_WORKER)
-    private Long id;
-
     @ApiModelProperty("订单编号")
     private String orderNo;
 
-    @ApiModelProperty("项目标识")
-    private String project;
-
     @ApiModelProperty("采购货源")
     private String puchaseSource;
 
     @ApiModelProperty("采购时间")
-    private Date purchaseTime;
+    private String purchaseTime;
 
     @ApiModelProperty("支付方式")
-    private Integer purchaseType;
-
-    @ApiModelProperty("店铺id")
-    private Long storeId;
-
-    @ApiModelProperty("总价")
-    private Double totalPrice;
+    private String purchaseType;
 
     @ApiModelProperty("商品总数量")
     private Integer totalQuantity;
@@ -78,15 +55,6 @@ public class MtPurchaseOrderDto extends Page implements Serializable {
     @ApiModelProperty("商品总数量")
     private Integer totalWeight;
 
-    @ApiModelProperty("更新时间")
-    private Date updateTime;
-
-    @ApiModelProperty("修改用户id")
-    private String updateUserId;
-
-    @ApiModelProperty("采购人")
-    private String userId;
-
     @ApiModelProperty("订单项列表")
     private List<MtPurchaseOrderItemDto> orderItemList;
 

+ 2 - 29
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderItemDto.java

@@ -1,15 +1,11 @@
 package com.fuint.common.dto;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.math.BigDecimal;
 
 /**
  * 材料采购订单项表实体
@@ -21,46 +17,23 @@ import java.util.Date;
 @Setter
 public class MtPurchaseOrderItemDto extends Page implements Serializable {
 
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("创建时间")
-    private Date createTime;
-
-    @ApiModelProperty("创建用户id")
-    private String createUserId;
-
-    @ApiModelProperty("是否删除 0否 1是")
-    private Integer deleteFlag;
-
     @ApiModelProperty("采购菜单项id")
-    @TableId(value = "ID", type = IdType.ID_WORKER)
     private Long id;
 
     @ApiModelProperty("材料id")
     private String materialId;
 
-    @ApiModelProperty("材料名字")
     private String materialName;
 
-    @ApiModelProperty("项目标识")
-    private String project;
-
     @ApiModelProperty("采购订单id")
     private String purchaseNo;
 
-    @ApiModelProperty("总价")
-    private Long totalPrice;
-
     @ApiModelProperty("总数")
     private Integer totalQuantity;
 
     @ApiModelProperty("单价")
-    private Double unitPrice;
+    private BigDecimal unitPrice;
 
-    @ApiModelProperty("更新时间")
-    private Date updateTime;
 
-    @ApiModelProperty("修改用户id")
-    private String updateUserId;
 
 }

+ 2 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/UserOrderDto.java

@@ -46,6 +46,8 @@ public class UserOrderDto implements Serializable {
     @ApiModelProperty("卡券ID")
     private Long couponId;
 
+    private BigDecimal serviceFee;
+
     private MtTableInfo newTableInfo;
 
     @ApiModelProperty("会员ID")

+ 35 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/AlertDTO.java

@@ -0,0 +1,35 @@
+package com.fuint.common.dto.ext;
+
+import com.fuint.common.enums.AlertEnum;
+
+public class AlertDTO {
+	private Integer alertId;
+
+	private String desc;
+
+	private Integer days;
+
+	// 通过枚举构造 DTO
+	public AlertDTO(AlertEnum alert) {
+		this.alertId = alert.getAlertId();
+		this.desc = alert.getDesc();
+		this.days = alert.getDays();
+	}
+
+	// Getter 方法(省略Setter)
+	public Integer getAlertId() { return alertId; }
+	public String getDesc() { return desc; }
+	public Integer getDays() { return days; }
+
+	public void setAlertId(Integer alertId) {
+		this.alertId = alertId;
+	}
+
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+
+	public void setDays(Integer days) {
+		this.days = days;
+	}
+}

+ 21 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/AllGoodsDto.java

@@ -0,0 +1,21 @@
+package com.fuint.common.dto.ext;
+
+import com.fuint.repository.model.MtGoods;
+import com.fuint.repository.model.MtGoodsCate;
+import com.fuint.repository.model.MtGoodsSku;
+import com.fuint.repository.model.MtGoodsSpec;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AllGoodsDto {
+
+	private List<MtGoods> goodsList;
+
+	private List<MtGoodsCate> goodsCateList;
+
+	private List<MtGoodsSku> goodsSkuList;
+
+	private List<MtGoodsSpec> goodsSpecList;
+}

+ 0 - 22
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/EchartsBarResponse.java

@@ -1,22 +0,0 @@
-package com.fuint.common.dto.ext;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.util.List;
-
-// ECharts 响应格式 DTO
-@Data
-public class EchartsBarResponse {
-    private List<String> years;        // xAxis.data: ['2012', '2013', ...]
-    private List<SeriesData> series;   // 各店铺数据系列
-
-    public EchartsBarResponse(List<String> dates, List<SeriesData> series) {
-        this.years = dates;
-        this.series = series;
-    }
-
-    public EchartsBarResponse() {
-
-    }
-}

+ 17 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/PurchaseOrderSearchDto.java

@@ -0,0 +1,17 @@
+package com.fuint.common.dto.ext;
+import com.fuint.common.dto.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class PurchaseOrderSearchDto extends Page {
+
+	@ApiModelProperty("订单编号")
+	private String orderNo;
+
+	@ApiModelProperty("采购时间")
+	private String purchaseTime;
+
+}

+ 15 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/RevenueStatisticsDto.java

@@ -0,0 +1,15 @@
+package com.fuint.common.dto.ext;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+// ECharts 响应格式 DTO
+@Data
+public class RevenueStatisticsDto {
+
+    private List<String> dataX;
+
+    private List<BigDecimal> dataY;
+}

+ 13 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/SelectDto.java

@@ -0,0 +1,13 @@
+package com.fuint.common.dto.ext;
+
+import lombok.Data;
+
+@Data
+public class SelectDto {
+
+	//店铺id
+	private Long value;
+
+	//店铺名称
+	private String label;
+}

+ 3 - 6
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/SeriesData.java

@@ -1,6 +1,5 @@
 package com.fuint.common.dto.ext;
 
-import lombok.AllArgsConstructor;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -8,9 +7,7 @@ import java.util.List;
 
 // 系列数据
 @Data
-@AllArgsConstructor
 public class SeriesData {
-    private String name;     // 店铺名称(如Forest)
-    private String type;     // 图表类型(如bar)
-    private List<BigDecimal> data;  // 各年度数据
-}
+
+    List<BigDecimal> totalAmount;
+}

+ 17 - 7
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/ShopAlertRequest.java

@@ -1,21 +1,31 @@
 package com.fuint.common.dto.ext;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 
 import java.math.BigDecimal;
 
 @Data
 public class ShopAlertRequest {
-    //    @NotNull(message = "店铺id不能为空")
-    @TableId(type = IdType.AUTO)
+
+    /**
+     * 店铺id
+     */
     private Long id;
-    //    @NotBlank(message = "邮箱不能为空")
-//    @Email(message = "邮箱格式不合法")
+
+    /**
+     * 邮箱
+     */
     private String mail;
 
+    /**
+     * 阈值
+     */
     //    @NotNull(message = "预警值不能为空")
 //    @DecimalMin(value = "0.0", inclusive = false, message = "预警值必须大于0")
     private BigDecimal threshold;
-}
+
+    /**
+     * 预警id
+     */
+    private Integer alertId;
+}

+ 52 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/ext/TransactionsDto.java

@@ -0,0 +1,52 @@
+
+package com.fuint.common.dto.ext;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class TransactionsDto {
+	/**
+	 * 店铺名称
+	 */
+	@ApiModelProperty("店铺名称")
+	private String storeName; //店铺名称
+
+	/**
+	 * 国家名
+	 */
+	@ApiModelProperty("国家名")
+	private String countryName; //国家名
+
+	/**
+	 * 总收益金额
+	 */
+	@ApiModelProperty("总收益金额")
+	private BigDecimal totalAmount; //总收益金额
+
+	/**
+	 * 总交易金额
+	 */
+	@ApiModelProperty("总交易金额")
+	private BigDecimal totalTransactionAmount; //总交易金额
+
+	/**
+	 * 退款金额
+	 */
+	@ApiModelProperty("退款金额")
+	private BigDecimal refundAmount; //退款金额
+
+	/**
+	 * 交易订单数
+	 */
+	@ApiModelProperty("交易订单数")
+	private Integer orderNumber; //交易订单数
+
+	/**
+	 * 退款订单数
+	 */
+	@ApiModelProperty("退款订单数")
+	private Integer refundOrderNumber; //退款订单数
+}

+ 84 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/enums/AlertEnum.java

@@ -0,0 +1,84 @@
+package com.fuint.common.enums;
+
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+public enum AlertEnum {
+
+	ONE_DAY(1,"一天",1),
+
+	SEVEN_DAYS(2,"七天",7),
+
+	ONE_MONTH(3,"一个月",30),
+
+	A_QUARTER(4,"一个季度",90),
+
+	YEAR(5,"一年",365);
+
+	private Integer alertId;
+
+	private String desc;
+
+	private Integer days;
+
+	public static String getAlertDesc(Integer alertId){
+		for (AlertEnum value : AlertEnum.values()) {
+			if (value.getAlertId().equals(alertId)){
+				return value.getDesc();
+			}
+		}
+		return null;
+	}
+
+	public static Set<Integer> getAlertIds(){
+		return Arrays.stream(AlertEnum.values()).map(AlertEnum::getAlertId)
+				.collect(Collectors.toSet());
+	}
+
+	public static Integer getDaysByAlertId(Integer alertId){
+		for (AlertEnum value : AlertEnum.values()) {
+			if (value.getAlertId().equals(alertId)){
+				return value.getDays();
+			}
+		}
+		return Integer.MAX_VALUE;
+	}
+
+	public static List<AlertEnum> getAlertEnumList(){
+		AlertEnum[] values = AlertEnum.values();
+		return Arrays.asList(values);
+	}
+
+	AlertEnum(Integer alertId, String desc, Integer days) {
+		this.alertId = alertId;
+		this.desc = desc;
+		this.days = days;
+	}
+
+	public Integer getAlertId() {
+		return alertId;
+	}
+
+	public void setAlertId(Integer alertId) {
+		this.alertId = alertId;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+
+	public Integer getDays() {
+		return days;
+	}
+
+	public void setDays(Integer days) {
+		this.days = days;
+	}
+}

+ 7 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/common/job/ScheduleTask.java

@@ -2,10 +2,11 @@ package com.fuint.common.job;
 
 import com.fuint.common.service.AlertService;
 import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
 
 @Configuration
+@Slf4j
 public class ScheduleTask {
 
     private AlertService alertService;
@@ -16,8 +17,9 @@ public class ScheduleTask {
 
     // 每天23:30执行
 //    @Scheduled( cron = "*/10 * * * * *")
-    @XxlJob("dailySalesCheck")
-    public void dailySalesCheck() {
-        alertService.checkDailySalesAndAlert();
+    @XxlJob("storeAlertsJob")
+    public void storeAlertsJob() {
+        log.info("------------------------storeAlertsJob-------------------------");
+        alertService.storeAlertsJob();
     }
-}
+}

+ 10 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/AccountService.java

@@ -6,10 +6,12 @@ import com.fuint.common.dto.AccountInfo;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.module.backendApi.request.CashRegisterLoginRequest;
 import com.fuint.module.backendApi.request.LoginRequest;
 import com.fuint.module.backendApi.response.LoginResponse;
 import com.fuint.repository.model.TAccount;
 import com.fuint.repository.model.TDuty;
+
 import java.util.List;
 
 /**
@@ -119,4 +121,12 @@ public interface AccountService extends IService<TAccount> {
      * @return
      * */
     LoginResponse doLogin(LoginRequest loginRequest, String userAgent) throws BusinessCheckException;
+
+    /**
+     *收银台登录
+     * @param loginRequest 登录参数
+     * @param userAgent 登录浏览器
+     * @return 结果
+     */
+    LoginResponse cashRegisterDoLogin(CashRegisterLoginRequest loginRequest, String userAgent) throws BusinessCheckException;
 }

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/AlertService.java

@@ -4,5 +4,5 @@ public interface AlertService {
     /**
      * 检查当日营业额并发送预警邮件
      */
-    void checkDailySalesAndAlert();
-}
+    void storeAlertsJob();
+}

+ 1 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/EmailService.java

@@ -1,7 +1,6 @@
 package com.fuint.common.service;
 
 
-
 import com.fuint.common.dto.ext.ShopAlertInfo;
 import com.fuint.repository.model.MtOrder;
 import com.fuint.repository.model.MtStore;
@@ -16,7 +15,6 @@ import javax.mail.internet.MimeMessage;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
-import java.time.format.DateTimeFormatter;
 import java.util.List;
 
 @Service
@@ -108,4 +106,4 @@ public class EmailService {
 
         return sb.toString();
     }
-}
+}

+ 8 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/GoodsService.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fuint.common.dto.GoodsDto;
 import com.fuint.common.dto.GoodsSpecValueDto;
 import com.fuint.common.dto.GoodsTopDto;
+import com.fuint.common.dto.ext.AllGoodsDto;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.MtGoods;
 import com.fuint.repository.model.MtGoodsSku;
 import com.fuint.repository.model.MtGoodsSpec;
@@ -141,4 +143,10 @@ public interface GoodsService extends IService<MtGoods> {
      * @return
      * */
     List<GoodsTopDto> getGoodsSaleTopList(Long merchantId, Long storeId, Date startTime, Date endTime);
+
+    /**
+     * 获取当前店铺所有商品相关数据
+     * @return 结果
+     */
+    AllGoodsDto selectAllGoods();
 }

+ 5 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/MaterialTypeService.java

@@ -2,13 +2,15 @@ package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fuint.common.dto.MaterialTypeSearchDto;
+import com.fuint.common.dto.ext.SelectDto;
 import com.fuint.common.vo.MaterialTypeVo;
+import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
 import com.fuint.framework.web.PageResult;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.MtMaterialType;
-import com.fuint.framework.exception.BusinessCheckException;
+
 import java.util.List;
 import java.util.Map;
 
@@ -86,4 +88,6 @@ public interface MaterialTypeService extends IService<MtMaterialType> {
      * @return 结果
      */
     ResponseObject deleteHandler(Long id) throws BusinessCheckException;
+
+    List<SelectDto> getAllMaterialType();
 }

+ 12 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/OrderService.java

@@ -1,13 +1,16 @@
 package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fuint.common.dto.Page;
 import com.fuint.common.dto.UserOrderDto;
 import com.fuint.common.dto.OrderDto;
-import com.fuint.common.dto.ext.EchartsBarResponse;
+import com.fuint.common.dto.ext.RevenueStatisticsDto;
+import com.fuint.common.dto.ext.TransactionsDto;
 import com.fuint.common.param.OrderListParam;
 import com.fuint.common.param.SettlementParam;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.repository.bean.TransactionsBean;
 import com.fuint.repository.model.MtCart;
 import com.fuint.repository.model.MtOrder;
 import javax.servlet.http.HttpServletRequest;
@@ -252,5 +255,12 @@ public interface OrderService extends IService<MtOrder> {
 
 
 
-    EchartsBarResponse getYearlyRevenue(Integer startYear, Integer endYear);
+    RevenueStatisticsDto getYearlyRevenue(Integer startYear, Integer endYear);
+
+
+    RevenueStatisticsDto revenueStatistics(String startTime, String endTime);
+
+    List<MtOrder> refundOrder(Long merchantId, Long storeId, Date startTime, Date endTime);
+
+    List<TransactionsDto> getTransactionsList(Page page, String startTime, String endTime);
 }

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/PurchaseOrderService.java

@@ -2,11 +2,11 @@ package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fuint.common.dto.MtPurchaseOrderDto;
+import com.fuint.common.dto.ext.PurchaseOrderSearchDto;
 import com.fuint.common.vo.MtPurchaseOrderVo;
-import com.fuint.common.vo.MtPurchaseOrderVo;
+import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.PageResult;
 import com.fuint.repository.model.MtPurchaseOrder;
-import com.fuint.framework.exception.BusinessCheckException;
 
 /**
  * 采购订单表业务接口
@@ -18,11 +18,11 @@ public interface PurchaseOrderService extends IService<MtPurchaseOrder> {
 
     MtPurchaseOrderVo queryPurchaseOrderById(Long id) throws BusinessCheckException;
 
-    PageResult<MtPurchaseOrderVo> queryOrderPageList(MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException;
+    PageResult<MtPurchaseOrderVo> queryOrderPageList(PurchaseOrderSearchDto mtPurchaseOrderDto) throws BusinessCheckException;
 
-    void savePurcahseOrder(MtPurchaseOrderDto mtPurchaseOrderDto);
+    void savePurcahseOrder(MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException;
 
     void updatePurchaseOrderByOrderNo(MtPurchaseOrderDto mtPurchaseOrderDto);
 
-    void deletePurchaseOrderByOrderNo(Long orderNo);
+    void deletePurchaseOrderByOrderNo(Long id);
 }

+ 13 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/ShopAlertService.java → fuintBackend/fuint-application/src/main/java/com/fuint/common/service/StoreAlertService.java

@@ -1,13 +1,16 @@
 package com.fuint.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fuint.common.dto.ext.AlertDTO;
 import com.fuint.common.dto.ext.PageResult;
+import com.fuint.common.dto.ext.SelectDto;
+import com.fuint.common.dto.ext.ShopAlertRequest;
 import com.fuint.common.vo.ShopDetailVO;
 import com.fuint.common.vo.ShopVO;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.repository.model.MtStore;
 
-import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
@@ -15,7 +18,7 @@ import java.math.BigDecimal;
  * @date 2025/3/12
  * @description TODO 店铺预警相关接口
  */
-public interface ShopAlertService extends IService<MtStore> {
+public interface StoreAlertService extends IService<MtStore> {
     /**
      * 新增店铺预警信息
      * @param id
@@ -23,7 +26,7 @@ public interface ShopAlertService extends IService<MtStore> {
      * @param threshold
      * @throws BusinessCheckException
      */
-    void addShopAlert(Long id, String mail, BigDecimal threshold) throws BusinessCheckException;
+    void addShopAlert(ShopAlertRequest alertRequest) throws BusinessCheckException;
 
     /**
      * 更新店铺预警信息
@@ -32,7 +35,7 @@ public interface ShopAlertService extends IService<MtStore> {
      * @param threshold
      * @return
      */
-    MtStore updateShopAlert(Long shopId, String mail, BigDecimal threshold) throws BusinessCheckException;
+    MtStore updateShopAlert(ShopAlertRequest alertRequest) throws BusinessCheckException;
 
 
     /**
@@ -56,5 +59,10 @@ public interface ShopAlertService extends IService<MtStore> {
      * @param name
      * @return
      */
-    PageResult<ShopVO> listShops(Integer page, Integer size, String name) throws BusinessCheckException;
+    PageResult<ShopVO> listShops(Integer page, Integer size, String name,String nextReminderDay ) throws BusinessCheckException;
+
+
+    List<AlertDTO> alertInterval();
+
+    List<SelectDto> earlyWarningStore(String storeName);
 }

+ 426 - 369
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/AccountServiceImpl.java

@@ -17,6 +17,7 @@ import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.exception.BusinessRuntimeException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.module.backendApi.request.CashRegisterLoginRequest;
 import com.fuint.module.backendApi.request.LoginRequest;
 import com.fuint.module.backendApi.response.LoginResponse;
 import com.fuint.repository.mapper.*;
@@ -33,11 +34,12 @@ import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.util.*;
 
 /**
  * 后台账号接口
- *
+ * <p>
  * Created by FSQ
  * CopyRight https://www.fuint.cn
  */
@@ -45,374 +47,429 @@ import java.util.*;
 @AllArgsConstructor
 public class AccountServiceImpl extends ServiceImpl<TAccountMapper, TAccount> implements AccountService {
 
-    private TAccountMapper tAccountMapper;
-
-    private TDutyMapper tDutyMapper;
-
-    private TAccountDutyMapper tAccountDutyMapper;
-
-    private MtMerchantMapper mtMerchantMapper;
-
-    private MtStoreMapper mtStoreMapper;
-
-    /**
-     * 员工接口
-     */
-    private StaffService staffService;
-
-    /**
-     * 店铺服务接口
-     * */
-    private StoreService storeService;
-
-    /**
-     * 验证码服务接口
-     * */
-    private CaptchaService captchaService;
-
-    /**
-     * 分页查询账号列表
-     *
-     * @param paginationRequest
-     * @return
-     */
-    @Override
-    public PaginationResponse<AccountDto> getAccountListByPagination(PaginationRequest paginationRequest) {
-        Page<MtBanner> pageHelper = PageHelper.startPage(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
-        LambdaQueryWrapper<TAccount> lambdaQueryWrapper = Wrappers.lambdaQuery();
-        lambdaQueryWrapper.ne(TAccount::getAccountStatus, -1); // 1:启用;0:禁用;-1:删除
-
-        String name = paginationRequest.getSearchParams().get("name") == null ? "" : paginationRequest.getSearchParams().get("name").toString();
-        if (StringUtils.isNotEmpty(name)) {
-            lambdaQueryWrapper.like(TAccount::getAccountName, name);
-        }
-        String realName = paginationRequest.getSearchParams().get("realName") == null ? "" : paginationRequest.getSearchParams().get("realName").toString();
-        if (StringUtils.isNotEmpty(realName)) {
-            lambdaQueryWrapper.like(TAccount::getRealName, realName);
-        }
-        String status = paginationRequest.getSearchParams().get("status") == null ? "" : paginationRequest.getSearchParams().get("status").toString();
-        if (StringUtils.isNotEmpty(status)) {
-            lambdaQueryWrapper.eq(TAccount::getAccountStatus, status);
-        }
-        String merchantId = paginationRequest.getSearchParams().get("merchantId") == null ? "" : paginationRequest.getSearchParams().get("merchantId").toString();
-        if (StringUtils.isNotEmpty(merchantId)) {
-            lambdaQueryWrapper.eq(TAccount::getMerchantId, merchantId);
-        }
-        String storeId = paginationRequest.getSearchParams().get("storeId") == null ? "" : paginationRequest.getSearchParams().get("storeId").toString();
-        if (StringUtils.isNotEmpty(storeId)) {
-            lambdaQueryWrapper.eq(TAccount::getStoreId, storeId);
-        }
-
-        lambdaQueryWrapper.orderByDesc(TAccount::getAcctId);
-        List<TAccount> accountList = tAccountMapper.selectList(lambdaQueryWrapper);
-        List<AccountDto> dataList = new ArrayList<>();
-
-        for (TAccount tAccount : accountList) {
-             AccountDto accountDto = new AccountDto();
-             BeanUtils.copyProperties(tAccount, accountDto);
-             accountDto.setId(tAccount.getAcctId());
-             MtMerchant mtMerchant = mtMerchantMapper.selectById(tAccount.getMerchantId());
-             if (mtMerchant != null) {
-                 accountDto.setMerchantName(mtMerchant.getName());
-             }
-             MtStore mtStore = mtStoreMapper.selectById(tAccount.getStoreId());
-             if (mtStore != null) {
-                 accountDto.setStoreName(mtStore.getName());
-             }
-             accountDto.setSalt(null);
-             accountDto.setPassword(null);
-             dataList.add(accountDto);
-        }
-
-        PageRequest pageRequest = PageRequest.of(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
-        PageImpl pageImpl = new PageImpl(dataList, pageRequest, pageHelper.getTotal());
-        PaginationResponse<AccountDto> paginationResponse = new PaginationResponse(pageImpl, AccountDto.class);
-        paginationResponse.setTotalPages(pageHelper.getPages());
-        paginationResponse.setTotalElements(pageHelper.getTotal());
-        paginationResponse.setContent(dataList);
-
-        return paginationResponse;
-    }
-
-    /**
-     * 根据账号名称获取账号信息
-     *
-     * @param userName 账号名称
-     * @return
-     * */
-    @Override
-    public AccountInfo getAccountByName(String userName) {
-        Map<String, Object> param = new HashMap();
-        param.put("account_name", userName);
-        param.put("account_status", 1);
-        List<TAccount> accountList = tAccountMapper.selectByMap(param);
-        if (accountList != null && accountList.size() > 0) {
-            AccountInfo accountInfo = new AccountInfo();
-            TAccount account = accountList.get(0);
-            accountInfo.setId(account.getAcctId());
-            accountInfo.setAccountName(account.getAccountName());
-            accountInfo.setRealName(account.getRealName());
-            accountInfo.setRoleIds(account.getRoleIds());
-            accountInfo.setStaffId(account.getStaffId());
-            accountInfo.setStoreId(account.getStoreId());
-            accountInfo.setMerchantId(account.getMerchantId());
-            if (account.getMerchantId() != null && account.getMerchantId() > 0) {
-                MtMerchant mtMerchant = mtMerchantMapper.selectById(account.getMerchantId());
-                if (mtMerchant != null) {
-                    accountInfo.setMerchantName(mtMerchant.getName());
-                }
-            }
-            if (account.getStoreId() != null && account.getStoreId() > 0) {
-                MtStore mtStore = mtStoreMapper.selectById(account.getStoreId());
-                if (mtStore != null) {
-                    accountInfo.setStoreName(mtStore.getName());
-                }
-            }
-            return accountInfo;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * 根据ID获取账号信息
-     *
-     * @param userId 账号ID
-     * @return
-     * */
-    @Override
-    public TAccount getAccountInfoById(Long userId) {
-        TAccount tAccount = tAccountMapper.selectById(userId);
-        return tAccount;
-    }
-
-    /**
-     * 新增后台账户
-     *
-     * @param tAccount
-     * @return
-     * */
-    @Override
-    @OperationServiceLog(description = "新增后台账户")
-    public TAccount createAccountInfo(TAccount tAccount, List<TDuty> duties) throws BusinessCheckException {
-        TAccount account = new TAccount();
-        account.setAccountKey(tAccount.getAccountKey());
-        account.setAccountName(tAccount.getAccountName().toLowerCase());
-        account.setAccountStatus(tAccount.getAccountStatus()==null?1:tAccount.getAccountStatus());
-        account.setRealName(tAccount.getRealName());
-        account.setRoleIds(tAccount.getRoleIds());
-        account.setStaffId(tAccount.getStaffId());
-        Long storeId = tAccount.getStoreId() == null ? 0 : tAccount.getStoreId();
-        if (tAccount.getMerchantId() == null || tAccount.getMerchantId() <= 0) {
-            MtStore mtStore = storeService.queryStoreById(storeId);
-            if (mtStore != null) {
-                tAccount.setMerchantId(mtStore.getMerchantId());
-            }
-        }
-        account.setMerchantId(tAccount.getMerchantId());
-        account.setStoreId(tAccount.getStoreId());
-        account.setCreateDate(new Date());
-        account.setModifyDate(new Date());
-        account.setStoreId(tAccount.getStoreId());
-        account.setStaffId(tAccount.getStaffId());
-        account.setPassword(tAccount.getPassword());
-        this.entryptPassword(account);
-        long id = tAccountMapper.insert(account);
-
-        if (id > 0 && duties != null && duties.size() > 0) {
-            for (TDuty tDuty : duties) {
-                 TAccountDuty tAccountDuty = new TAccountDuty();
-                 tAccountDuty.setDutyId(tDuty.getDutyId());
-                 tAccountDuty.setAcctId(account.getAcctId());
-                 tAccountDutyMapper.insert(tAccountDuty);
-            }
-        }
-
-        if (id > 0 ) {
-            return this.getAccountInfoById(id);
-        } else {
-            throw new BusinessRuntimeException("创建账号错误");
-        }
-    }
-
-    /**
-     * 获取账号角色ID
-     *
-     * @param accountId
-     * @return
-     * */
-    @Override
-    public List<Long> getRoleIdsByAccountId(Long accountId) {
-        List<Long> roleIds = tDutyMapper.getRoleIdsByAccountId(accountId);
-        return roleIds;
-    }
-
-    /**
-     * 修改账户
-     *
-     * @param  tAccount 账户实体
-     * @throws BusinessCheckException
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    @OperationServiceLog(description = "修改后台账户")
-    public void editAccount(TAccount tAccount, List<TDuty> duties) throws BusinessCheckException {
-        TAccount oldAccount = tAccountMapper.selectById(tAccount.getAcctId());
-        if (oldAccount == null) {
-            throw new BusinessCheckException(I18nUtil.getMessage("accountNonexistent"));
-        }
-        tAccount.setModifyDate(new Date());
-        if (duties != null && duties.size() > 0) {
-            if (tAccount.getAcctId() != null && tAccount.getAcctId() > 0) {
-                tAccountDutyMapper.deleteDutiesByAccountId(tAccount.getAcctId());
-                for (TDuty tDuty : duties) {
-                     TAccountDuty tAccountDuty = new TAccountDuty();
-                     tAccountDuty.setDutyId(tDuty.getDutyId());
-                     tAccountDuty.setAcctId(tAccount.getAcctId());
-                     tAccountDutyMapper.insert(tAccountDuty);
-                }
-            }
-        }
-        if (tAccount.getStaffId() != null && tAccount.getStaffId() > 0) {
-            MtStaff mtStaff = staffService.queryStaffById(tAccount.getStaffId());
-            if (mtStaff == null) {
-                tAccount.setStaffId(0L);
-            }
-        }
-        tAccountMapper.updateById(tAccount);
-    }
-
-    /**
-     * 根据账户名称获取账户所分配的角色ID集合
-     *
-     * @param  accountId 账户
-     * @return 角色ID集合
-     */
-    @Override
-    public List<Long> getDutyIdsByAccountId(Long accountId) {
-        return tAccountDutyMapper.getDutyIdsByAccountId(accountId);
-    }
-
-    /**
-     * 更新账户
-     *
-     * @param tAccount
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    @OperationServiceLog(description = "修改后台账户")
-    public void updateAccount(TAccount tAccount) {
-        tAccountMapper.updateById(tAccount);
-    }
-
-    /**
-     * 删除账号
-     *
-     * @param accountId 账号ID
-     * @return
-     * */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    @OperationServiceLog(description = "删除后台账户")
-    public void deleteAccount(Long accountId) {
-        TAccount tAccount = tAccountMapper.selectById(accountId);
-        tAccount.setAccountStatus(-1);
-        tAccount.setModifyDate(new Date());
-        tAccountMapper.updateById(tAccount);
-    }
-
-    /**
-     * 设定安全的密码
-     *
-     * @param tAccount 账号信息
-     * @return
-     */
-    @Override
-    public void entryptPassword(TAccount tAccount) {
-        byte[] salt = Digests.generateSalt(8);
-        tAccount.setSalt(Encodes.encodeHex(salt));
-        byte[] hashPassword = Digests.sha1(tAccount.getPassword().getBytes(), salt, 1024);
-        tAccount.setPassword(Encodes.encodeHex(hashPassword));
-    }
-
-    /**
-     * 获取加密密码
-     *
-     * @param password
-     * @param salt
-     * @return
-     * */
-    @Override
-    public String getEntryptPassword(String password, String salt) {
-        byte[] salt1 = Encodes.decodeHex(salt);
-        byte[] hashPassword = Digests.sha1(password.getBytes(), salt1, 1024);
-        return Encodes.encodeHex(hashPassword);
-    }
-
-    /**
-     * 登录后台系统
-     *
-     * @param loginRequest 登录参数
-     * @param userAgent 登录浏览器
-     * @return
-     * */
-    @Override
-    @OperationServiceLog(description = "登录后台系统")
-    public LoginResponse doLogin(LoginRequest loginRequest, String userAgent) throws BusinessCheckException {
-        String accountName = loginRequest.getUsername();
-        String password = loginRequest.getPassword();
-        String captchaCode = loginRequest.getCaptchaCode();
-        String uuid = loginRequest.getUuid();
-        String loginFrom = loginRequest.getLoginFrom();
-
-        Boolean captchaVerify = captchaService.checkCodeByUuid(captchaCode, uuid);
-        if (!captchaVerify) {
-            throw new BusinessCheckException(I18nUtil.getMessage("captchaInvalid"));
-        }
-
-        if (StringUtil.isEmpty(accountName)|| StringUtil.isEmpty(password) || StringUtil.isEmpty(captchaCode)) {
+	private TAccountMapper tAccountMapper;
+
+	private TDutyMapper tDutyMapper;
+
+	private TAccountDutyMapper tAccountDutyMapper;
+
+	private MtMerchantMapper mtMerchantMapper;
+
+	private MtStoreMapper mtStoreMapper;
+
+	/**
+	 * 员工接口
+	 */
+	private StaffService staffService;
+
+	/**
+	 * 店铺服务接口
+	 */
+	private StoreService storeService;
+
+	/**
+	 * 验证码服务接口
+	 */
+	private CaptchaService captchaService;
+
+	/**
+	 * 分页查询账号列表
+	 *
+	 * @param paginationRequest
+	 * @return
+	 */
+	@Override
+	public PaginationResponse<AccountDto> getAccountListByPagination(PaginationRequest paginationRequest) {
+		Page<MtBanner> pageHelper = PageHelper.startPage(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
+		LambdaQueryWrapper<TAccount> lambdaQueryWrapper = Wrappers.lambdaQuery();
+		lambdaQueryWrapper.ne(TAccount::getAccountStatus, -1); // 1:启用;0:禁用;-1:删除
+
+		String name = paginationRequest.getSearchParams().get("name") == null ? "" : paginationRequest.getSearchParams().get("name").toString();
+		if (StringUtils.isNotEmpty(name)) {
+			lambdaQueryWrapper.like(TAccount::getAccountName, name);
+		}
+		String realName = paginationRequest.getSearchParams().get("realName") == null ? "" : paginationRequest.getSearchParams().get("realName").toString();
+		if (StringUtils.isNotEmpty(realName)) {
+			lambdaQueryWrapper.like(TAccount::getRealName, realName);
+		}
+		String status = paginationRequest.getSearchParams().get("status") == null ? "" : paginationRequest.getSearchParams().get("status").toString();
+		if (StringUtils.isNotEmpty(status)) {
+			lambdaQueryWrapper.eq(TAccount::getAccountStatus, status);
+		}
+		String merchantId = paginationRequest.getSearchParams().get("merchantId") == null ? "" : paginationRequest.getSearchParams().get("merchantId").toString();
+		if (StringUtils.isNotEmpty(merchantId)) {
+			lambdaQueryWrapper.eq(TAccount::getMerchantId, merchantId);
+		}
+		String storeId = paginationRequest.getSearchParams().get("storeId") == null ? "" : paginationRequest.getSearchParams().get("storeId").toString();
+		if (StringUtils.isNotEmpty(storeId)) {
+			lambdaQueryWrapper.eq(TAccount::getStoreId, storeId);
+		}
+
+		lambdaQueryWrapper.orderByDesc(TAccount::getAcctId);
+		List<TAccount> accountList = tAccountMapper.selectList(lambdaQueryWrapper);
+		List<AccountDto> dataList = new ArrayList<>();
+
+		for (TAccount tAccount : accountList) {
+			AccountDto accountDto = new AccountDto();
+			BeanUtils.copyProperties(tAccount, accountDto);
+			accountDto.setId(tAccount.getAcctId());
+			MtMerchant mtMerchant = mtMerchantMapper.selectById(tAccount.getMerchantId());
+			if (mtMerchant != null) {
+				accountDto.setMerchantName(mtMerchant.getName());
+			}
+			MtStore mtStore = mtStoreMapper.selectById(tAccount.getStoreId());
+			if (mtStore != null) {
+				accountDto.setStoreName(mtStore.getName());
+			}
+			accountDto.setSalt(null);
+			accountDto.setPassword(null);
+			dataList.add(accountDto);
+		}
+
+		PageRequest pageRequest = PageRequest.of(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());
+		PageImpl pageImpl = new PageImpl(dataList, pageRequest, pageHelper.getTotal());
+		PaginationResponse<AccountDto> paginationResponse = new PaginationResponse(pageImpl, AccountDto.class);
+		paginationResponse.setTotalPages(pageHelper.getPages());
+		paginationResponse.setTotalElements(pageHelper.getTotal());
+		paginationResponse.setContent(dataList);
+
+		return paginationResponse;
+	}
+
+	/**
+	 * 根据账号名称获取账号信息
+	 *
+	 * @param userName 账号名称
+	 * @return
+	 */
+	@Override
+	public AccountInfo getAccountByName(String userName) {
+		Map<String, Object> param = new HashMap();
+		param.put("account_name", userName);
+		param.put("account_status", 1);
+		List<TAccount> accountList = tAccountMapper.selectByMap(param);
+		if (accountList != null && accountList.size() > 0) {
+			AccountInfo accountInfo = new AccountInfo();
+			TAccount account = accountList.get(0);
+			accountInfo.setId(account.getAcctId());
+			accountInfo.setAccountName(account.getAccountName());
+			accountInfo.setRealName(account.getRealName());
+			accountInfo.setRoleIds(account.getRoleIds());
+			accountInfo.setStaffId(account.getStaffId());
+			accountInfo.setStoreId(account.getStoreId());
+			accountInfo.setMerchantId(account.getMerchantId());
+			if (account.getMerchantId() != null && account.getMerchantId() > 0) {
+				MtMerchant mtMerchant = mtMerchantMapper.selectById(account.getMerchantId());
+				if (mtMerchant != null) {
+					accountInfo.setMerchantName(mtMerchant.getName());
+				}
+			}
+			if (account.getStoreId() != null && account.getStoreId() > 0) {
+				MtStore mtStore = mtStoreMapper.selectById(account.getStoreId());
+				if (mtStore != null) {
+					accountInfo.setStoreName(mtStore.getName());
+				}
+			}
+			return accountInfo;
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * 根据ID获取账号信息
+	 *
+	 * @param userId 账号ID
+	 * @return
+	 */
+	@Override
+	public TAccount getAccountInfoById(Long userId) {
+		TAccount tAccount = tAccountMapper.selectById(userId);
+		return tAccount;
+	}
+
+	/**
+	 * 新增后台账户
+	 *
+	 * @param tAccount
+	 * @return
+	 */
+	@Override
+	@OperationServiceLog(description = "新增后台账户")
+	public TAccount createAccountInfo(TAccount tAccount, List<TDuty> duties) throws BusinessCheckException {
+		TAccount account = new TAccount();
+		account.setAccountKey(tAccount.getAccountKey());
+		account.setAccountName(tAccount.getAccountName().toLowerCase());
+		account.setAccountStatus(tAccount.getAccountStatus() == null ? 1 : tAccount.getAccountStatus());
+		account.setRealName(tAccount.getRealName());
+		account.setRoleIds(tAccount.getRoleIds());
+		account.setStaffId(tAccount.getStaffId());
+		Long storeId = tAccount.getStoreId() == null ? 0 : tAccount.getStoreId();
+		if (tAccount.getMerchantId() == null || tAccount.getMerchantId() <= 0) {
+			MtStore mtStore = storeService.queryStoreById(storeId);
+			if (mtStore != null) {
+				tAccount.setMerchantId(mtStore.getMerchantId());
+			}
+		}
+		account.setMerchantId(tAccount.getMerchantId());
+		account.setStoreId(tAccount.getStoreId());
+		account.setCreateDate(new Date());
+		account.setModifyDate(new Date());
+		account.setStoreId(tAccount.getStoreId());
+		account.setStaffId(tAccount.getStaffId());
+		account.setPassword(tAccount.getPassword());
+		this.entryptPassword(account);
+		long id = tAccountMapper.insert(account);
+
+		if (id > 0 && duties != null && duties.size() > 0) {
+			for (TDuty tDuty : duties) {
+				TAccountDuty tAccountDuty = new TAccountDuty();
+				tAccountDuty.setDutyId(tDuty.getDutyId());
+				tAccountDuty.setAcctId(account.getAcctId());
+				tAccountDutyMapper.insert(tAccountDuty);
+			}
+		}
+
+		if (id > 0) {
+			return this.getAccountInfoById(id);
+		} else {
+			throw new BusinessRuntimeException("创建账号错误");
+		}
+	}
+
+	/**
+	 * 获取账号角色ID
+	 *
+	 * @param accountId
+	 * @return
+	 */
+	@Override
+	public List<Long> getRoleIdsByAccountId(Long accountId) {
+		List<Long> roleIds = tDutyMapper.getRoleIdsByAccountId(accountId);
+		return roleIds;
+	}
+
+	/**
+	 * 修改账户
+	 *
+	 * @param tAccount 账户实体
+	 * @throws BusinessCheckException
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@OperationServiceLog(description = "修改后台账户")
+	public void editAccount(TAccount tAccount, List<TDuty> duties) throws BusinessCheckException {
+		TAccount oldAccount = tAccountMapper.selectById(tAccount.getAcctId());
+		if (oldAccount == null) {
+			throw new BusinessCheckException(I18nUtil.getMessage("accountNonexistent"));
+		}
+		tAccount.setModifyDate(new Date());
+		if (duties != null && duties.size() > 0) {
+			if (tAccount.getAcctId() != null && tAccount.getAcctId() > 0) {
+				tAccountDutyMapper.deleteDutiesByAccountId(tAccount.getAcctId());
+				for (TDuty tDuty : duties) {
+					TAccountDuty tAccountDuty = new TAccountDuty();
+					tAccountDuty.setDutyId(tDuty.getDutyId());
+					tAccountDuty.setAcctId(tAccount.getAcctId());
+					tAccountDutyMapper.insert(tAccountDuty);
+				}
+			}
+		}
+		if (tAccount.getStaffId() != null && tAccount.getStaffId() > 0) {
+			MtStaff mtStaff = staffService.queryStaffById(tAccount.getStaffId());
+			if (mtStaff == null) {
+				tAccount.setStaffId(0L);
+			}
+		}
+		tAccountMapper.updateById(tAccount);
+	}
+
+	/**
+	 * 根据账户名称获取账户所分配的角色ID集合
+	 *
+	 * @param accountId 账户
+	 * @return 角色ID集合
+	 */
+	@Override
+	public List<Long> getDutyIdsByAccountId(Long accountId) {
+		return tAccountDutyMapper.getDutyIdsByAccountId(accountId);
+	}
+
+	/**
+	 * 更新账户
+	 *
+	 * @param tAccount
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@OperationServiceLog(description = "修改后台账户")
+	public void updateAccount(TAccount tAccount) {
+		tAccountMapper.updateById(tAccount);
+	}
+
+	/**
+	 * 删除账号
+	 *
+	 * @param accountId 账号ID
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@OperationServiceLog(description = "删除后台账户")
+	public void deleteAccount(Long accountId) {
+		TAccount tAccount = tAccountMapper.selectById(accountId);
+		tAccount.setAccountStatus(-1);
+		tAccount.setModifyDate(new Date());
+		tAccountMapper.updateById(tAccount);
+	}
+
+	/**
+	 * 设定安全的密码
+	 *
+	 * @param tAccount 账号信息
+	 * @return
+	 */
+	@Override
+	public void entryptPassword(TAccount tAccount) {
+		byte[] salt = Digests.generateSalt(8);
+		tAccount.setSalt(Encodes.encodeHex(salt));
+		byte[] hashPassword = Digests.sha1(tAccount.getPassword().getBytes(), salt, 1024);
+		tAccount.setPassword(Encodes.encodeHex(hashPassword));
+	}
+
+	/**
+	 * 获取加密密码
+	 *
+	 * @param password
+	 * @param salt
+	 * @return
+	 */
+	@Override
+	public String getEntryptPassword(String password, String salt) {
+		byte[] salt1 = Encodes.decodeHex(salt);
+		byte[] hashPassword = Digests.sha1(password.getBytes(), salt1, 1024);
+		return Encodes.encodeHex(hashPassword);
+	}
+
+	/**
+	 * 登录后台系统
+	 *
+	 * @param loginRequest 登录参数
+	 * @param userAgent    登录浏览器
+	 * @return
+	 */
+	@Override
+	@OperationServiceLog(description = "登录后台系统")
+	public LoginResponse doLogin(LoginRequest loginRequest, String userAgent) throws BusinessCheckException {
+		String accountName = loginRequest.getUsername();
+		String password = loginRequest.getPassword();
+		String captchaCode = loginRequest.getCaptchaCode();
+		String uuid = loginRequest.getUuid();
+		String loginFrom = loginRequest.getLoginFrom();
+
+		Boolean captchaVerify = captchaService.checkCodeByUuid(captchaCode, uuid);
+
+		if (!captchaVerify) {
+			throw new BusinessCheckException(I18nUtil.getMessage("captchaInvalid"));
+		}
+
+		if (StringUtil.isEmpty(accountName) || StringUtil.isEmpty(password) || StringUtil.isEmpty(captchaCode)) {
+			throw new BusinessCheckException(I18nUtil.getMessage("paramErr"));
+		} else {
+			AccountInfo accountInfo = getAccountByName(loginRequest.getUsername());
+			if (accountInfo == null) {
+				throw new BusinessCheckException(I18nUtil.getMessage("loginAccountOrPasswordIncorrect"));
+			}
+//            if (accountInfo.getStoreId() == null || accountInfo.getStoreId()<=0){
+//                throw new BusinessCheckException(I18nUtil.getMessage("noPermissionToLogIn"));
+//            }
+			TAccount tAccount = getAccountInfoById(accountInfo.getId());
+
+			if (StringUtils.equals("cashier", loginFrom) && (tAccount.getStoreId() == null || tAccount.getStoreId() == 0L)) {
+				throw new BusinessCheckException(I18nUtil.getMessage("accountUnauthorized"));
+			}
+
+			String myPassword = tAccount.getPassword();
+			String inputPassword = getEntryptPassword(password, tAccount.getSalt());
+			if (!myPassword.equals(inputPassword) || !tAccount.getAccountStatus().toString().equals("1")) {
+				throw new BusinessCheckException(I18nUtil.getMessage("loginAccountOrPasswordIncorrect"));
+			}
+
+			// 商户已禁用
+			if (tAccount.getMerchantId() != null && tAccount.getMerchantId() > 0) {
+				MtMerchant mtMerchant = mtMerchantMapper.selectById(tAccount.getMerchantId());
+				if (mtMerchant != null && !mtMerchant.getStatus().equals(StatusEnum.ENABLED.getKey())) {
+					throw new BusinessCheckException(I18nUtil.getMessage("merchantDisabledContactPlatform"));
+				}
+			}
+
+			// 店铺已禁用
+			if (tAccount.getStoreId() != null && tAccount.getStoreId() > 0) {
+				MtStore mtStore = mtStoreMapper.selectById(tAccount.getStoreId());
+				if (mtStore != null && !mtStore.getStatus().equals(StatusEnum.ENABLED.getKey())) {
+					throw new BusinessCheckException(I18nUtil.getMessage("shopDisabledContactPlatform"));
+				}
+			}
+
+			String token = TokenUtil.generateToken(userAgent, accountInfo);
+			LoginResponse response = new LoginResponse();
+			response.setLogin(true);
+			response.setToken(token);
+			response.setTokenCreatedTime(new Date());
+
+			return response;
+		}
+	}
+
+	@Override
+	public LoginResponse cashRegisterDoLogin(CashRegisterLoginRequest loginRequest, String userAgent) throws BusinessCheckException {
+		String accountName = loginRequest.getUsername();
+		String password = loginRequest.getPassword();
+		String loginFrom = loginRequest.getLoginFrom();
+        if (StringUtil.isEmpty(accountName) || StringUtil.isEmpty(password)) {
             throw new BusinessCheckException(I18nUtil.getMessage("paramErr"));
-        } else {
-            AccountInfo accountInfo = getAccountByName(loginRequest.getUsername());
-            if (accountInfo == null) {
-                throw new BusinessCheckException(I18nUtil.getMessage("loginAccountOrPasswordIncorrect"));
-            }
-
-            TAccount tAccount = getAccountInfoById(accountInfo.getId());
-
-            if (StringUtils.equals("cashier", loginFrom) && ( tAccount.getStoreId() == null || tAccount.getStoreId() == 0L) ){
-                throw new BusinessCheckException(I18nUtil.getMessage("accountUnauthorized"));
-            }
-
-            String myPassword = tAccount.getPassword();
-            String inputPassword = getEntryptPassword(password, tAccount.getSalt());
-            if (!myPassword.equals(inputPassword) || !tAccount.getAccountStatus().toString().equals("1")) {
-                throw new BusinessCheckException(I18nUtil.getMessage("loginAccountOrPasswordIncorrect"));
-            }
-
-            // 商户已禁用
-            if (tAccount.getMerchantId() != null && tAccount.getMerchantId() > 0) {
-                MtMerchant mtMerchant = mtMerchantMapper.selectById(tAccount.getMerchantId());
-                if (mtMerchant != null && !mtMerchant.getStatus().equals(StatusEnum.ENABLED.getKey())) {
-                    throw new BusinessCheckException(I18nUtil.getMessage("merchantDisabledContactPlatform"));
-                }
-            }
-
-            // 店铺已禁用
-            if (tAccount.getStoreId() != null && tAccount.getStoreId() > 0) {
-                MtStore mtStore = mtStoreMapper.selectById(tAccount.getStoreId());
-                if (mtStore != null && !mtStore.getStatus().equals(StatusEnum.ENABLED.getKey())) {
-                    throw new BusinessCheckException(I18nUtil.getMessage("shopDisabledContactPlatform"));
-                }
-            }
-
-            String token = TokenUtil.generateToken(userAgent, accountInfo);
-            LoginResponse response = new LoginResponse();
-            response.setLogin(true);
-            response.setToken(token);
-            response.setTokenCreatedTime(new Date());
-
-            return response;
         }
-    }
+		AccountInfo accountInfo = getAccountByName(accountName);
+		if (accountInfo == null) {
+			throw new BusinessCheckException(I18nUtil.getMessage("loginAccountOrPasswordIncorrect"));
+		}
+//		if (accountInfo.getStoreId() == null || accountInfo.getStoreId() <= 0) {
+//			throw new BusinessCheckException(I18nUtil.getMessage("noPermissionToLogIn"));
+//		}
+		TAccount tAccount = getAccountInfoById(accountInfo.getId());
+
+		if (StringUtils.equals("cashier", loginFrom) && (tAccount.getStoreId() == null || tAccount.getStoreId() == 0L)) {
+			throw new BusinessCheckException(I18nUtil.getMessage("accountUnauthorized"));
+		}
+
+		String myPassword = tAccount.getPassword();
+		String inputPassword = getEntryptPassword(password, tAccount.getSalt());
+		if (!myPassword.equals(inputPassword) || !tAccount.getAccountStatus().toString().equals("1")) {
+			throw new BusinessCheckException(I18nUtil.getMessage("loginAccountOrPasswordIncorrect"));
+		}
+
+		// 商户已禁用
+		if (tAccount.getMerchantId() != null && tAccount.getMerchantId() > 0) {
+			MtMerchant mtMerchant = mtMerchantMapper.selectById(tAccount.getMerchantId());
+			if (mtMerchant != null && !mtMerchant.getStatus().equals(StatusEnum.ENABLED.getKey())) {
+				throw new BusinessCheckException(I18nUtil.getMessage("merchantDisabledContactPlatform"));
+			}
+		}
+
+		// 店铺已禁用
+		if (tAccount.getStoreId() != null && tAccount.getStoreId() > 0) {
+			MtStore mtStore = mtStoreMapper.selectById(tAccount.getStoreId());
+			if (mtStore != null && !mtStore.getStatus().equals(StatusEnum.ENABLED.getKey())) {
+				throw new BusinessCheckException(I18nUtil.getMessage("shopDisabledContactPlatform"));
+			}
+		}
+
+		String token = TokenUtil.generateToken(userAgent, accountInfo);
+		LoginResponse response = new LoginResponse();
+		response.setLogin(true);
+		response.setToken(token);
+		response.setTokenCreatedTime(new Date());
+
+		return response;
+	}
 }

+ 63 - 53
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/AlertServiceImpl.java

@@ -1,82 +1,92 @@
 package com.fuint.common.service.impl;
 
 
+import cn.hutool.core.lang.Validator;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fuint.common.dto.ext.ShopAlertInfo;
+import com.fuint.common.enums.AlertEnum;
+import com.fuint.common.enums.PayStatusEnum;
+import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.service.AlertService;
 import com.fuint.common.service.EmailService;
+import com.fuint.common.service.StoreService;
 import com.fuint.repository.mapper.MtOrderMapper;
-import com.fuint.repository.mapper.MtStoreMapper;
 import com.fuint.repository.model.MtOrder;
 import com.fuint.repository.model.MtStore;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
 public class AlertServiceImpl implements AlertService {
-    private EmailService emailService;
+	private EmailService emailService;
 
-    private MtStoreMapper mtStoreMapper;
+	private StoreService storeService;
 
-    private MtOrderMapper mtOrderMapper;
+	private MtOrderMapper mtOrderMapper;
 
 
-    /**
-     * 检查当日营业额并发送预警邮件
-     */
-    @Override
-    @Transactional(readOnly = true)
-    public void checkDailySalesAndAlert() {
-        // 0. 获取时间范围(统一时间变量)
-        LocalDateTime start = LocalDate.now().atStartOfDay();
-        LocalDateTime end = LocalDateTime.now();
+	/**
+	 * 检查当日营业额并发送预警邮件
+	 */
+	@Override
+	public void storeAlertsJob() {
+		// 0. 获取时间范围(统一时间变量)
+		Set<Integer> alertIds = AlertEnum.getAlertIds();
+		// 1. 获取所有店铺
+		List<MtStore> shops = storeService.list(new LambdaQueryWrapper<MtStore>()
+				.eq(MtStore::getNextReminderDay, LocalDate.now())
+				.eq(MtStore::getStatus, StatusEnum.ENABLED.getKey())
+				.in(MtStore::getAlertId, alertIds));
+		List<Long> shopIds = shops.stream().map(MtStore::getId).collect(Collectors.toList());
 
-        // 1. 获取所有店铺
-        List<MtStore> shops = mtStoreMapper.selectList(new QueryWrapper<MtStore>().isNotNull("mail"));
-        List<Long> shopIds = shops.stream().map(MtStore::getId).collect(Collectors.toList());
+		// 2. 批量查询所有相关订单(优化性能)
+		Map<Long, List<MtOrder>> ordersByShop = shopIds.isEmpty() ?
+				Collections.emptyMap() :
+				mtOrderMapper.selectList(
+						new LambdaQueryWrapper<MtOrder>()
+								.in(MtOrder::getStoreId, shopIds)
+								.eq(MtOrder::getPayStatus, PayStatusEnum.SUCCESS.getKey())
+				).stream().collect(Collectors.groupingBy(MtOrder::getStoreId));
 
-        // 2. 批量查询所有相关订单(优化性能)
-        Map<Long, List<MtOrder>> ordersByShop = shopIds.isEmpty() ?
-                Collections.emptyMap() :
-                mtOrderMapper.selectList(
-                        new LambdaQueryWrapper<MtOrder>()
-                                .in(MtOrder::getStoreId, shopIds)
-                                .between(MtOrder::getCreateTime, start, end)
-                ).stream().collect(Collectors.groupingBy(MtOrder::getStoreId));
+		// 3. 构建预警数据(包含订单明细)
+		Map<String, List<ShopAlertInfo>> alertMap = shops.stream()
+				.map(shop -> {
+					// 计算总销售额
+					BigDecimal sales = Optional.ofNullable(ordersByShop.get(shop.getId()))
+							.orElse(Collections.emptyList())
+							.stream()
+							.map(MtOrder::getAmount)
+							.reduce(BigDecimal.ZERO, BigDecimal::add);
 
-        // 3. 构建预警数据(包含订单明细)
-        Map<String, List<ShopAlertInfo>> alertMap = shops.stream()
-                .map(shop -> {
-                    // 计算总销售额
-                    BigDecimal sales = Optional.ofNullable(ordersByShop.get(shop.getId()))
-                            .orElse(Collections.emptyList())
-                            .stream()
-                            .map(MtOrder::getAmount)
-                            .reduce(BigDecimal.ZERO, BigDecimal::add);
+					// 注入订单明细
+					return new ShopAlertInfo(
+							shop,
+							sales,
+							ordersByShop.getOrDefault(shop.getId(), Collections.emptyList())
+					);
+				})
+				.filter(info -> info.getTotalSales().compareTo(info.getShop().getThreshold()) < 0)
+				.collect(Collectors.groupingBy(info -> info.getShop().getMail()));
 
-                    // 注入订单明细
-                    return new ShopAlertInfo(
-                            shop,
-                            sales,
-                            ordersByShop.getOrDefault(shop.getId(), Collections.emptyList())
-                    );
-                })
-                .filter(info -> info.getTotalSales().compareTo(info.getShop().getThreshold()) < 0)
-                .collect(Collectors.groupingBy(info -> info.getShop().getMail()));
+		// 4. 发送邮件(逻辑保持不变)
+		CompletableFuture.runAsync(()->{
+			alertMap.forEach((mail, list) -> {
+				if (Validator.isEmail(mail)) {
+					emailService.sendAggregatedAlertEmail(mail, list);
+				}
+			});
+		});
 
-        // 4. 发送邮件(逻辑保持不变)
-        alertMap.forEach((mail, list) -> emailService.sendAggregatedAlertEmail(mail, list));
-    }
-}
+		//重新刷新店铺预警时间点
+		List<MtStore> stores = shops.stream().peek(shop -> shop.setNextReminderDay(LocalDate.now()
+				.plusDays(AlertEnum.getDaysByAlertId(shop.getAlertId())))).collect(Collectors.toList());
+		storeService.updateBatchById(stores);
+	}
+}

+ 2 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/CartServiceImpl.java

@@ -14,7 +14,6 @@ import com.fuint.repository.mapper.MtGoodsMapper;
 import com.fuint.repository.mapper.MtGoodsSkuMapper;
 import com.fuint.repository.mapper.MtTableInfoMapper;
 import com.fuint.repository.model.MtCart;
-import com.fuint.repository.model.MtGoods;
 import com.fuint.repository.model.MtGoodsSku;
 import com.fuint.repository.model.MtTableInfo;
 import com.fuint.utils.StringUtil;
@@ -91,7 +90,7 @@ public class CartServiceImpl extends ServiceImpl<MtCartMapper, MtCart> implement
         Long cartId = 1L;
 
         // 检查库存是否充足
-        if (action.equals("+") || action.equals("=") && reqDto.getNum() > 0) {
+        /*if (action.equals("+") || action.equals("=") && reqDto.getNum() > 0) {
             MtGoods mtGoods = mtGoodsMapper.selectById(reqDto.getGoodsId());
             Map<String, Object> param = new HashMap<>();
             param.put("status", StatusEnum.ENABLED.getKey());
@@ -122,7 +121,7 @@ public class CartServiceImpl extends ServiceImpl<MtCartMapper, MtCart> implement
                     throw new BusinessCheckException(mtGoods.getName() + I18nUtil.getMessage("stockOut"));
                 }
             }
-        }
+        }*/
 
         if (reqDto.getGoodsId() > 0) {
             mtCart.setGoodsId(reqDto.getGoodsId());

+ 1 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/CountryServiceImpl.java

@@ -223,7 +223,7 @@ public class CountryServiceImpl extends ServiceImpl<MtCountryMapper, MtCountry>
     private List<MtCountry> buildTree(List<MtCountry> countries) {
         // 将所有国家根据 parentId 构建树形结构
         return countries.stream()
-                .filter(country -> country.getParentId() == null)
+                .filter(country -> country.getParentId() == 0)
                 .peek(parent -> parent.setChildren(getChildren(parent, countries)))
                 .collect(Collectors.toList());
     }

+ 34 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/GoodsServiceImpl.java

@@ -8,6 +8,7 @@ import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.GoodsDto;
 import com.fuint.common.dto.GoodsSpecValueDto;
 import com.fuint.common.dto.GoodsTopDto;
+import com.fuint.common.dto.ext.AllGoodsDto;
 import com.fuint.common.enums.GoodsTypeEnum;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.enums.YesOrNoEnum;
@@ -18,6 +19,7 @@ import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.bean.GoodsBean;
 import com.fuint.repository.bean.GoodsTopBean;
 import com.fuint.repository.mapper.MtGoodsMapper;
@@ -37,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 商品业务实现类
@@ -697,4 +700,35 @@ public class GoodsServiceImpl extends ServiceImpl<MtGoodsMapper, MtGoods> implem
         }
         return goodsList;
     }
+
+
+	@Override
+	public AllGoodsDto selectAllGoods() {
+        Long storeId = AuthUserUtil.get().getStoreId();
+        //获取当前店铺下所有菜品数据
+        List<MtGoods> mtGoods = this.baseMapper.selectList(new LambdaQueryWrapper<MtGoods>()
+                .eq(MtGoods::getStoreId, storeId));
+        AllGoodsDto allGoodsDto = new AllGoodsDto();
+        allGoodsDto.setGoodsList(mtGoods);
+        //获取当前店铺下所有菜品分类数据
+        List<MtGoodsCate> goodsCates = cateService.list(new LambdaQueryWrapper<MtGoodsCate>()
+                .eq(MtGoodsCate::getStoreId, storeId));
+        allGoodsDto.setGoodsCateList(goodsCates);
+        //获取菜品id集合
+        Set<Long> goodsIds = mtGoods.stream().map(MtGoods::getId)
+                .collect(Collectors.toSet());
+        //获取商品sku和规格
+        if (!goodsIds.isEmpty()){
+            List<MtGoodsSku> goodsSkus = mtGoodsSkuMapper.selectList(new LambdaQueryWrapper<MtGoodsSku>()
+                    .in(MtGoodsSku::getGoodsId, goodsIds));
+            allGoodsDto.setGoodsSkuList(goodsSkus);
+            List<MtGoodsSpec> mtGoodsSpecs = mtGoodsSpecMapper.selectList(new LambdaQueryWrapper<MtGoodsSpec>()
+                    .in(MtGoodsSpec::getGoodsId, goodsIds));
+            allGoodsDto.setGoodsSpecList(mtGoodsSpecs);
+        }else{
+            allGoodsDto.setGoodsSkuList(new ArrayList<>());
+            allGoodsDto.setGoodsSkuList(new ArrayList<>());
+        }
+        return allGoodsDto;
+	}
 }

+ 7 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/MaterialServiceImpl.java

@@ -98,6 +98,11 @@ public class MaterialServiceImpl extends ServiceImpl<MtMaterialMapper, MtMateria
 		if (Objects.isNull(mtStore)){
 			throw new BusinessCheckException(I18nUtil.getMessage("storeNonexistent"));
 		}
+		Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<MtMaterial>()
+				.eq(MtMaterial::getName, mtMaterial.getName()));
+		if (count>0){
+			throw new BusinessCheckException(I18nUtil.getMessage(I18nUtil.getMessage("matEx")));
+		}
 		mtMaterial.setDeleteFlag(0);
 		mtMaterial.setUpdateTime(new Date());
 		mtMaterial.setCreateTime(new Date());
@@ -135,10 +140,7 @@ public class MaterialServiceImpl extends ServiceImpl<MtMaterialMapper, MtMateria
 		if (null == mtMaterial) {
 			return;
 		}
-		mtMaterial.setUpdateUserId(operator);
-		mtMaterial.setDeleteFlag(1);
-		mtMaterial.setUpdateTime(new Date());
-		mtMaterialMapper.updateById(mtMaterial);
+		mtMaterialMapper.deleteById(mtMaterial);
 	}
 
 	/**
@@ -204,7 +206,7 @@ public class MaterialServiceImpl extends ServiceImpl<MtMaterialMapper, MtMateria
 		if (StringUtils.isNotBlank(materialSearchDto.getStoreId()) && Long.parseLong(materialSearchDto.getStoreId())>0){
 			queryWrapper.eq(MtMaterial::getStoreId, Long.valueOf(materialSearchDto.getStoreId()));
 		}
-		if (StringUtils.isNotBlank(materialSearchDto.getCreateTime())){
+		if (StringUtils.isNotEmpty(materialSearchDto.getCreateTime())){
 			queryWrapper.between(MtMaterial::getCreateTime,
 					TimeUtils.getStartAndEndOfDay(materialSearchDto.getCreateTime())[0],
 					TimeUtils.getStartAndEndOfDay(materialSearchDto.getCreateTime())[1]);

+ 26 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/MaterialTypeServiceImpl.java

@@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fuint.common.Constants;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.MaterialTypeSearchDto;
+import com.fuint.common.dto.ext.SelectDto;
+import com.fuint.common.enums.StatusEnum;
+import com.fuint.common.service.MaterialTypeService;
 import com.fuint.common.util.AuthUserUtil;
 import com.fuint.common.util.I18nUtil;
 import com.fuint.common.vo.MaterialTypeVo;
@@ -16,28 +19,30 @@ import com.fuint.framework.pagination.PaginationRequest;
 import com.fuint.framework.pagination.PaginationResponse;
 import com.fuint.framework.web.PageResult;
 import com.fuint.framework.web.ResponseObject;
+import com.fuint.repository.mapper.MtMaterialTypeMapper;
 import com.fuint.repository.mapper.MtStoreMapper;
 import com.fuint.repository.mapper.TAccountMapper;
 import com.fuint.repository.model.MtMaterialType;
-import com.fuint.common.service.MaterialTypeService;
-import com.fuint.common.enums.StatusEnum;
-import com.fuint.repository.mapper.MtMaterialTypeMapper;
 import com.fuint.repository.model.MtStore;
 import com.fuint.repository.model.TAccount;
 import com.fuint.utils.PropertiesUtil;
+import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import com.github.pagehelper.Page;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import java.util.*;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
@@ -266,4 +271,20 @@ public class MaterialTypeServiceImpl extends ServiceImpl<MtMaterialTypeMapper, M
         return updateById?new ResponseObject(FrameworkConstants.HTTP_RESPONSE_CODE_SUCCESS, "操作成功", null):
                 new ResponseObject(1001, PropertiesUtil.getResponseErrorMessageByCode(1001), null);
     }
+
+    @Override
+    public List<SelectDto> getAllMaterialType() {
+        //获取店铺
+        Long storeId = AuthUserUtil.get().getStoreId();
+        List<MtMaterialType> mtMaterialTypes = this.baseMapper.selectList(new LambdaQueryWrapper<MtMaterialType>()
+                .eq((Objects.nonNull(storeId)&&storeId>0),MtMaterialType::getStoreId, storeId)
+                .eq(MtMaterialType::getEnable, 1));
+        //将数据封装到SelectDto
+	    return mtMaterialTypes.stream().map(materialType -> {
+            SelectDto selectDto = new SelectDto();
+            selectDto.setValue(materialType.getId());
+            selectDto.setLabel(materialType.getName());
+            return selectDto;
+        }).collect(Collectors.toList());
+    }
 }

+ 145 - 33
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java

@@ -1,12 +1,15 @@
 package com.fuint.common.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fuint.common.Constants;
 import com.fuint.common.dto.*;
-import com.fuint.common.dto.ext.*;
+import com.fuint.common.dto.ext.RevenueStatisticsDto;
+import com.fuint.common.dto.ext.TransactionsDto;
 import com.fuint.common.enums.*;
 import com.fuint.common.param.OrderListParam;
 import com.fuint.common.param.SettlementParam;
@@ -17,6 +20,7 @@ import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationResponse;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.bean.RevenueResult;
+import com.fuint.repository.bean.StorePayAmountBean;
 import com.fuint.repository.mapper.*;
 import com.fuint.repository.model.*;
 import com.fuint.utils.PropertiesUtil;
@@ -37,7 +41,6 @@ import weixin.popular.util.JsonUtil;
 
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
-import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
@@ -184,6 +187,9 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
      * */
     private PrinterService printerService;
 
+
+    private CountryService countryService;
+
     /**
      * 获取用户订单列表
      * @param  orderListParam
@@ -398,15 +404,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             mtOrder.setVerifyCode(SeqUtil.getRandomNumber(6));
         }
         //计算服务费
-        if (orderDto.getStoreId() != null && orderDto.getStoreId() > 0) {
-            MtStore storeInfo = storeService.queryStoreById(orderDto.getStoreId());
-            if (storeInfo.getServiceFeeRate()!=null && storeInfo.getServiceFeeRate().compareTo(new BigDecimal("0"))>0){
-                BigDecimal serviceFeeRate = storeInfo.getServiceFeeRate();
-                mtOrder.setPayAmount(mtOrder.getPayAmount().add(mtOrder.getPayAmount().multiply(serviceFeeRate)));
-                mtOrder.setServiceFee(mtOrder.getPayAmount().multiply(serviceFeeRate));
-            }
 
-        }
         // 首先生成订单
         if (mtOrder.getId() == null || mtOrder.getId() < 1) {
             mtOrderMapper.insert(mtOrder);
@@ -539,8 +537,15 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
                 }
             }
         }
-
-
+        //计算服务费
+        if (orderDto.getStoreId() != null && orderDto.getStoreId() > 0) {
+            MtStore storeInfo = storeService.queryStoreById(orderDto.getStoreId());
+            if (storeInfo.getServiceFeeRate()!=null && storeInfo.getServiceFeeRate().compareTo(new BigDecimal("0"))>=0){
+                BigDecimal serviceFeeRate = storeInfo.getServiceFeeRate();
+                mtOrder.setPayAmount(mtOrder.getPayAmount().add(mtOrder.getPayAmount().multiply(serviceFeeRate)));
+                mtOrder.setServiceFee(mtOrder.getAmount().multiply(serviceFeeRate));
+            }
+        }
         // 再次更新订单
         try {
              orderInfo = updateOrder(mtOrder);
@@ -594,7 +599,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
                  mtOrderGoodsMapper.insert(orderGoods);
                  // 扣减库存
                  MtGoods goodsInfo = mtGoodsMapper.selectById(cart.getGoodsId());
-                 if (goodsInfo.getIsSingleSpec().equals(YesOrNoEnum.YES.getKey())) {
+                 /*if (goodsInfo.getIsSingleSpec().equals(YesOrNoEnum.YES.getKey())) {
                      // 单规格减去库存
                      Integer stock = goodsInfo.getStock() - cart.getNum();
                      if (stock < 0) {
@@ -621,7 +626,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
                              }
                          }
                      }
-                 }
+                 }*/
                  if (cart.getId() > 0) {
                      //删除购物车
                      mtCartMapper.deleteById(cart.getId());
@@ -993,7 +998,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             if (realPayAmount.compareTo(new BigDecimal("0")) < 0) {
                 realPayAmount = new BigDecimal("0");
             }
-            reqOrder.setPayAmount(realPayAmount);
+            reqOrder.setPayAmount(realPayAmount.add(orderInfo.getServiceFee()));
             updateOrder(reqOrder);
             orderInfo = getOrderInfo(orderInfo.getId());
         }
@@ -1651,6 +1656,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
         userOrderDto.setRemark(orderInfo.getRemark());
         userOrderDto.setType(orderInfo.getType());
         userOrderDto.setPayType(orderInfo.getPayType());
+        userOrderDto.setServiceFee(orderInfo.getServiceFee());
         userOrderDto.setOrderMode(orderInfo.getOrderMode());
         userOrderDto.setCreateTime(DateUtil.formatDate(orderInfo.getCreateTime(), "yyyy.MM.dd HH:mm"));
         userOrderDto.setUpdateTime(DateUtil.formatDate(orderInfo.getUpdateTime(), "yyyy.MM.dd HH:mm"));
@@ -1806,6 +1812,8 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
                     orderGoodsDto.setPrice(orderGoods.getPrice().toString());
                     orderGoodsDto.setDiscount(orderGoods.getDiscount().toString());
                     orderGoodsDto.setGoodsId(orderGoods.getGoodsId());
+
+
                     if (orderGoods.getSkuId() > 0) {
                         List<GoodsSpecValueDto> specList = goodsService.getSpecListBySkuId(orderGoods.getSkuId());
                         orderGoodsDto.setSpecList(specList);
@@ -2339,7 +2347,7 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
     }
 
     @Override
-    public EchartsBarResponse getYearlyRevenue(Integer startYear, Integer endYear) {
+    public RevenueStatisticsDto getYearlyRevenue(Integer startYear, Integer endYear) {
         // 1. 查询数据库获取原始数据
         List<RevenueResult> dbData = mtOrderMapper.selectYearlyRevenue(startYear, endYear);
 
@@ -2368,26 +2376,130 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             storeYearMap.get(dto.getStoreName())
                     .put( dto.getYear(), dto.getTotalAmount());
         });
-
-        // 4. 转换为 ECharts 系列格式
-        List<SeriesData> series = allStores.stream()
-                .map(store -> {
-                    List<BigDecimal> data = years.stream()
-                            .map(yearStr -> {
-                                int year = Integer.parseInt(yearStr);
-                                return storeYearMap.get(store).get(year);
-                            })
-                            .collect(Collectors.toList());
-                    return new SeriesData(store, "bar", data);
-                })
-                .collect(Collectors.toList());
-
         // 5. 构建响应对象
-        EchartsBarResponse response = new EchartsBarResponse();
-        response.setYears(years);
-        response.setSeries(series);
+        RevenueStatisticsDto response = new RevenueStatisticsDto();
         return response;
     }
+
+    @Override
+    public RevenueStatisticsDto revenueStatistics(String startTime, String endTime) {
+        Long storeId = AuthUserUtil.get().getStoreId();
+        if (storeId>0){
+            return new RevenueStatisticsDto();
+        }
+        List<StorePayAmountBean> storePayAmountBeans = this.baseMapper.revenueStatistics(startTime, endTime,storeId);
+        //分别出创建存储金额和店铺名称的集合
+        List<BigDecimal> totalAmount = new ArrayList<>();
+        List<String> storeName = new ArrayList<>();
+        for (StorePayAmountBean storePayAmountBean : storePayAmountBeans) {
+            MtStore store = storeService.getById(storePayAmountBean.getStoreId());
+            //依次add
+            storeName.add(store.getName());
+            totalAmount.add(storePayAmountBean.getPayAmount());
+        }
+        int size = storePayAmountBeans.size();
+        //如果小于10则填充店铺,保证满足10个店铺
+        int count = storeService.count(new LambdaQueryWrapper<MtStore>().ne(MtStore::getStatus,StatusEnum.DISABLE.getKey()));
+        if (size < 10 && count > size){
+            //获取店铺id
+            Set<Long> storeIds = storePayAmountBeans.stream()
+                    .map(StorePayAmountBean::getStoreId).collect(Collectors.toSet());
+            List<MtStore> mtStores = storeService.list(new LambdaQueryWrapper<MtStore>()
+                    .ne(MtStore::getStatus,StatusEnum.DISABLE.getKey())
+                    .notIn(CollectionUtil.isNotEmpty(storeIds), MtStore::getId, storeIds).last(" limit "+(10-size)));
+            for (MtStore mtStore : mtStores) {
+                storeName.add(mtStore.getName());
+                totalAmount.add(new BigDecimal("0"));
+            }
+        }
+        //将数据封装到RevenueStatisticsDto
+        RevenueStatisticsDto revenueStatisticsDto = new RevenueStatisticsDto();
+        revenueStatisticsDto.setDataX(storeName);
+        revenueStatisticsDto.setDataY(totalAmount);
+        return revenueStatisticsDto;
     }
 
+    @Override
+    public List<MtOrder> refundOrder(Long merchantId, Long storeId, Date beginTime, Date endTime) {
+        List<MtOrder> refundOrderList;
+        if (storeId != null && storeId > 0) {
+            refundOrderList = mtOrderMapper.refundOrder(storeId, beginTime, endTime);
+        } else {
+           refundOrderList = mtOrderMapper.getRefundOrderyByMerchantId(merchantId, beginTime, endTime);
+        }
+        if (refundOrderList == null) {
+            return new ArrayList<>();
+        }
+        return refundOrderList;
+    }
+
+    @Override
+    public List<TransactionsDto> getTransactionsList(com.fuint.common.dto.Page page, String startTime, String endTime) {
+        Integer pageNo = page.getPageNo()!=null?page.getPageNo():1;
+
+        Integer pageSize = page.getPageSize()!=null?page.getPageSize():10;
+
+        //分页获取店铺
+        IPage<MtStore> mtStoreIPage = storeService.page(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNo, pageSize));
+        List<MtStore> storeList = mtStoreIPage.getRecords();
+        List<Long> storeIds = storeList.stream().map(MtStore::getId).collect(Collectors.toList());
+        //获取店铺订单
+        List<MtOrder> orderList = mtOrderMapper.getTransactionsList(storeIds,startTime,endTime);
+        //对订单通过店铺id进行分组
+        Map<Long, List<MtOrder>> orderMap = orderList.stream().collect(Collectors.groupingBy(MtOrder::getStoreId));
+        //获取退款的订单id集合
+        Set<Long> refundOrderIds = orderList.stream()
+                .filter(order->{return order.getStatus().equals("H");})
+                .map(MtOrder::getId).collect(Collectors.toSet());
+        //通过店铺id分组后的退款的列表
+        Map<Long, List<MtRefund>> refundMap;
+        if (!refundOrderIds.isEmpty()){
+            refundMap = refundService.list(new LambdaQueryWrapper<MtRefund>()
+                    .in(MtRefund::getOrderId, refundOrderIds)).stream().collect(Collectors.groupingBy(MtRefund::getStoreId));
+        } else {
+	        refundMap = new HashMap<>();
+        }
+
+	    //通过国家id获取国家名
+        List<Long> countryId = storeList.stream().map(MtStore::getCountryId).collect(Collectors.toList());
+        List<TransactionsDto> transactionsDtoList = storeList.stream().map(store -> {
+            TransactionsDto transactionsDto = new TransactionsDto();
+            //设置店铺名
+            transactionsDto.setStoreName(store.getName());
+            //计算总交易金额
+            List<MtOrder> totalTransactions = orderMap.get(store.getId());
+            BigDecimal totalTransactionAmount;
+            if (totalTransactions!=null){
+                totalTransactionAmount = totalTransactions.stream().map(MtOrder::getPayAmount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+            }else{
+                totalTransactionAmount = new BigDecimal("0");
+            }
+
+            transactionsDto.setTotalTransactionAmount(totalTransactionAmount);
+            //计算总收益金额
+            List<MtRefund> mtRefunds = refundMap.get(store.getId());
+            BigDecimal refundAmount;
+            if (mtRefunds!=null){
+                refundAmount = mtRefunds.stream().map(MtRefund::getAmount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+            }else{
+                refundAmount = new BigDecimal("0");
+            }
+
+            transactionsDto.setTotalAmount(totalTransactionAmount.subtract(refundAmount));
+            transactionsDto.setOrderNumber(totalTransactions!=null?totalTransactions.size():0);
+            transactionsDto.setRefundOrderNumber(mtRefunds!=null?mtRefunds.size():0);
+            MtCountry country = countryService.getById(store.getCountryId());
+            if (country != null) {
+                transactionsDto.setCountryName(country.getCountryName());
+            }
+            return transactionsDto;
+        }).collect(Collectors.toList());
+        return transactionsDtoList;
+    }
+
+
+}
+
 

+ 3 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderItemServiceImpl.java

@@ -91,7 +91,7 @@ public class PurchaseOrderItemServiceImpl extends ServiceImpl<MtPurchaseOrderIte
         MtStore mtStore = mtStoreMapper.selectById(accountInfo.getStoreId());
         Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
 
-        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice() - item.getTotalPrice());
+        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice().subtract(item.getTotalPrice()));
 
         int delete = mtPurchaseOrderItemMapper.deleteById(id);
         int delete1 = mtPurchaseOrderMapper.updateById(mtPurchaseOrder);
@@ -126,7 +126,7 @@ public class PurchaseOrderItemServiceImpl extends ServiceImpl<MtPurchaseOrderIte
         item.setUpdateTime(new Date());
         item.setUpdateUserId(String.valueOf(accountInfo.getId()));
 
-        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice() - item1.getTotalPrice() + item.getTotalPrice());
+        mtPurchaseOrder.setTotalPrice((mtPurchaseOrder.getTotalPrice().subtract(item1.getTotalPrice())).add(item.getTotalPrice()));
 
         int update = mtPurchaseOrderItemMapper.updateById(item);
 
@@ -161,7 +161,7 @@ public class PurchaseOrderItemServiceImpl extends ServiceImpl<MtPurchaseOrderIte
         int insert = mtPurchaseOrderItemMapper.insert(item);
         Assert.isFalse(insert!=1, "添加失败");
 
-        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice()  + item.getTotalPrice());
+        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice().add(item.getTotalPrice()));
 
         int update = mtPurchaseOrderMapper.updateById(mtPurchaseOrder);
         Assert.isFalse(update!=1, "添加失败");

+ 142 - 132
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderServiceImpl.java

@@ -10,33 +10,36 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.MtPurchaseOrderDto;
 import com.fuint.common.dto.MtPurchaseOrderItemDto;
+import com.fuint.common.dto.ext.PurchaseOrderSearchDto;
+import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.service.PurchaseOrderItemService;
+import com.fuint.common.service.PurchaseOrderService;
 import com.fuint.common.util.AuthUserUtil;
 import com.fuint.common.util.I18nUtil;
 import com.fuint.common.vo.MtPurchaseOrderItemVo;
 import com.fuint.common.vo.MtPurchaseOrderVo;
+import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.PageResult;
 import com.fuint.repository.mapper.MtPurchaseOrderItemMapper;
+import com.fuint.repository.mapper.MtPurchaseOrderMapper;
 import com.fuint.repository.mapper.MtStoreMapper;
 import com.fuint.repository.model.MtPurchaseOrder;
-import com.fuint.common.service.PurchaseOrderService;
-import com.fuint.common.enums.StatusEnum;
-import com.fuint.repository.mapper.MtPurchaseOrderMapper;
 import com.fuint.repository.model.MtPurchaseOrderItem;
 import com.fuint.repository.model.MtStore;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
 import java.util.*;
-import java.util.stream.Collectors;
 
 
 /**
  * 采购订单表服务接口
- *
  * Created by huangwen
  * CopyRight https://www.fuint.cn
  */
@@ -44,55 +47,61 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class PurchaseOrderServiceImpl extends ServiceImpl<MtPurchaseOrderMapper, MtPurchaseOrder> implements PurchaseOrderService {
 
-    private static final Logger logger = LoggerFactory.getLogger(PurchaseOrderServiceImpl.class);
-
-    private MtPurchaseOrderMapper mtPurchaseOrderMapper;
+	private static final Logger logger = LoggerFactory.getLogger(PurchaseOrderServiceImpl.class);
 
-    private MtPurchaseOrderItemMapper mtPurchaseOrderItemMapper;
+	private MtPurchaseOrderMapper mtPurchaseOrderMapper;
 
-    private MtStoreMapper mtStoreMapper;
+	private MtPurchaseOrderItemMapper mtPurchaseOrderItemMapper;
 
-    private PurchaseOrderItemService purchaseOrderItemService;
+	private MtStoreMapper mtStoreMapper;
 
-    @Override
-    public MtPurchaseOrderVo queryPurchaseOrderById(Long id) {
+	private PurchaseOrderItemService purchaseOrderItemService;
 
-        Assert.isTrue(ObjectUtils.isNotEmpty(AuthUserUtil.get()), I18nUtil.getMessage("notAuthenticated"));
-        Assert.isTrue(ObjectUtils.isNotEmpty(id), "请选择查询的订单");
+	@Override
+	public MtPurchaseOrderVo queryPurchaseOrderById(Long id) throws BusinessCheckException {
 
-        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getId, id));
-        List<MtPurchaseOrderItem> itemList = mtPurchaseOrderItemMapper.selectList(new LambdaQueryWrapper<MtPurchaseOrderItem>().eq(MtPurchaseOrderItem::getPurchaseNo, id));
+		Assert.isTrue(ObjectUtils.isNotEmpty(AuthUserUtil.get()), I18nUtil.getMessage("notAuthenticated"));
+		Assert.isTrue(ObjectUtils.isNotEmpty(id), I18nUtil.getMessage("orderQuery"));
 
-        MtPurchaseOrderVo mtPurchaseOrderVo = BeanUtil.copyProperties(mtPurchaseOrder, MtPurchaseOrderVo.class);
-        if (ObjectUtils.isNotEmpty(itemList)) {
-            List<MtPurchaseOrderItemVo> mtPurchaseOrderItemVos = BeanUtil.copyToList(itemList, MtPurchaseOrderItemVo.class);
-            mtPurchaseOrderVo.setOrderItemList(mtPurchaseOrderItemVos);
-        }
+		MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getId, id));
+		if (Objects.isNull(mtPurchaseOrder)){
+			throw new BusinessCheckException(I18nUtil.getMessage("orderMissing"));
+		}
+		List<MtPurchaseOrderItem> itemList = mtPurchaseOrderItemMapper.selectList(new LambdaQueryWrapper<MtPurchaseOrderItem>().eq(MtPurchaseOrderItem::getPurchaseNo, mtPurchaseOrder.getOrderNo()));
 
-        return mtPurchaseOrderVo ;
-    }
+		MtPurchaseOrderVo mtPurchaseOrderVo = BeanUtil.copyProperties(mtPurchaseOrder, MtPurchaseOrderVo.class);
+		if (StringUtils.isNotBlank(mtPurchaseOrderVo.getFileId())) {
+			String[] split = mtPurchaseOrderVo.getFileId().split(",");
+			List<String> fileList = Arrays.asList(split);
+			mtPurchaseOrderVo.setFileList(fileList);
+		}
 
+		if (ObjectUtils.isNotEmpty(itemList)) {
+			List<MtPurchaseOrderItemVo> mtPurchaseOrderItemVos = BeanUtil.copyToList(itemList, MtPurchaseOrderItemVo.class);
+			mtPurchaseOrderVo.setOrderItemList(mtPurchaseOrderItemVos);
+		}
 
+		return mtPurchaseOrderVo;
+	}
 
-    @Override
-    public PageResult<MtPurchaseOrderVo> queryOrderPageList(MtPurchaseOrderDto mtPurchaseOrderDto)  {
 
-        AccountInfo accountInfo = AuthUserUtil.get();
-        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getStoreId()), "请选择餐厅");
-        Assert.isFalse(accountInfo.getStoreId()!=0 && !accountInfo.getStoreId().equals(mtPurchaseOrderDto.getStoreId()), "暂无该餐厅权限");
+	@Override
+	public PageResult<MtPurchaseOrderVo> queryOrderPageList(PurchaseOrderSearchDto mtPurchaseOrderDto) {
 
-        //分页
-        IPage<MtPurchaseOrder> page = new Page<>(mtPurchaseOrderDto.getPageNo()==null?1:mtPurchaseOrderDto.getPageNo(), mtPurchaseOrderDto.getPageSize()==null?10:mtPurchaseOrderDto.getPageSize());
-        IPage<MtPurchaseOrder> orderIPage = mtPurchaseOrderMapper.selectPage(page, new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getStoreId, mtPurchaseOrderDto.getStoreId()));
-        if (ObjectUtils.isEmpty(orderIPage.getRecords())){
-            return PageResult.<MtPurchaseOrderVo>builder().data(new ArrayList<>()).currentPage((int)orderIPage.getCurrent()).total((int)orderIPage.getTotal()).build();
-        }
-        List<MtPurchaseOrderVo> mtPurchaseOrderVos = BeanUtil.copyToList(orderIPage.getRecords(), MtPurchaseOrderVo.class);
+		AccountInfo accountInfo = AuthUserUtil.get();
+		Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
+		Long storeId = AuthUserUtil.get().getStoreId();
+		//分页
+		IPage<MtPurchaseOrder> page = new Page<>(mtPurchaseOrderDto.getPageNo() == null ? 1 : mtPurchaseOrderDto.getPageNo(), mtPurchaseOrderDto.getPageSize() == null ? 10 : mtPurchaseOrderDto.getPageSize());
+		IPage<MtPurchaseOrder> orderIPage = mtPurchaseOrderMapper.selectPage(page, new LambdaQueryWrapper<MtPurchaseOrder>().
+				eq((Objects.nonNull(storeId) && storeId > 0), MtPurchaseOrder::getStoreId, storeId));
+		if (ObjectUtils.isEmpty(orderIPage.getRecords())) {
+			return PageResult.<MtPurchaseOrderVo>builder().data(new ArrayList<>()).currentPage((int) orderIPage.getCurrent()).total((int) orderIPage.getTotal()).build();
+		}
+		List<MtPurchaseOrderVo> mtPurchaseOrderVos = BeanUtil.copyToList(orderIPage.getRecords(), MtPurchaseOrderVo.class);
 
-        //订单项列表
-        List<MtPurchaseOrderItem> itemList = mtPurchaseOrderItemMapper.selectList(new LambdaQueryWrapper<MtPurchaseOrderItem>()
-                .in(MtPurchaseOrderItem::getPurchaseNo));
+		//订单项列表
+       /* List<MtPurchaseOrderItem> itemList = mtPurchaseOrderItemMapper.selectList(null);
         Map<String, List<MtPurchaseOrderItem>> orderNoItemMap = itemList.stream().collect(Collectors.groupingBy(MtPurchaseOrderItem::getPurchaseNo));
 
         mtPurchaseOrderVos.forEach(vo -> {
@@ -101,96 +110,97 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<MtPurchaseOrderMapper,
                 List<MtPurchaseOrderItemVo> orderItemVos = BeanUtil.copyToList(orderItemList, MtPurchaseOrderItemVo.class);
                 vo.setOrderItemList(orderItemVos);
             }
-        });
-        return PageResult.<MtPurchaseOrderVo>builder().data(mtPurchaseOrderVos).total((int)orderIPage.getTotal()).currentPage(mtPurchaseOrderDto.getPageNo()).build();
-    }
-
-    @Override
-    @Transactional
-    public void savePurcahseOrder(MtPurchaseOrderDto mtPurchaseOrderDto) {
-        //参数验证
-        AccountInfo accountInfo = AuthUserUtil.get();
-        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getStoreId()), "请选择餐厅");
-        List<MtPurchaseOrderItemDto> orderItemList = mtPurchaseOrderDto.getOrderItemList();
-        Assert.isFalse(orderItemList.isEmpty(), "请添加采购项");
-        Assert.isFalse(accountInfo.getStoreId()!=0 && !accountInfo.getStoreId().equals(mtPurchaseOrderDto.getStoreId()), "暂无该餐厅权限");
-        MtStore mtStore = mtStoreMapper.selectOne(new LambdaQueryWrapper<MtStore>().eq(MtStore::getId, mtPurchaseOrderDto.getStoreId()).eq(MtStore::getStatus, StatusEnum.ENABLED.getKey()));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
-        //参数准备
-        MtPurchaseOrder purchaseOrder = BeanUtil.copyProperties(mtPurchaseOrderDto, MtPurchaseOrder.class);
-        purchaseOrder.setCreateTime(new Date());
-        purchaseOrder.setCreateUserId(String.valueOf(accountInfo.getId()));
-        purchaseOrder.setOrderNo(new Snowflake(1,1).nextIdStr());
-
-        ArrayList<MtPurchaseOrderItem> orderItems = new ArrayList<>();
-        for (MtPurchaseOrderItemDto itemDto : orderItemList) {
-            MtPurchaseOrderItem purchaseOrderItem = BeanUtil.copyProperties(itemDto, MtPurchaseOrderItem.class);
-            purchaseOrderItem.setPurchaseNo(String.valueOf(purchaseOrder.getOrderNo()));
-            purchaseOrderItem.setCreateTime(new Date());
-            purchaseOrderItem.setCreateUserId(String.valueOf(accountInfo.getId()));
-            purchaseOrderItem.setTotalPrice(purchaseOrderItem.getUnitPrice()*purchaseOrderItem.getTotalQuantity());
-            orderItems.add(purchaseOrderItem);
-        }
-        purchaseOrder.setTotalPrice(orderItems.stream().mapToDouble(MtPurchaseOrderItem::getTotalPrice).sum());
-        //保存订单
-        int insert = mtPurchaseOrderMapper.insert(purchaseOrder);
-        Assert.isFalse(insert!=1, "保存失败");
-        //保存订单项
-        boolean b = purchaseOrderItemService.saveBatch(orderItems);
-        Assert.isFalse(b, "保存失败");
-    }
-
-    @Override
-    @Transactional
-    public void updatePurchaseOrderByOrderNo(MtPurchaseOrderDto mtPurchaseOrderDto) {
-        //参数验证
-        AccountInfo accountInfo = AuthUserUtil.get();
-        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getStoreId()), "请选择餐厅");
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getOrderNo()), "请选择采购单");
-        Assert.isFalse(mtPurchaseOrderDto.getOrderItemList().isEmpty(), "请添加采购项");
-        Assert.isFalse(accountInfo.getStoreId()!=0 && !accountInfo.getStoreId().equals(mtPurchaseOrderDto.getStoreId()), "暂无该餐厅权限");
-
-        MtStore mtStore = mtStoreMapper.selectOne(new LambdaQueryWrapper<MtStore>().eq(MtStore::getId, mtPurchaseOrderDto.getStoreId()).eq(MtStore::getStatus, StatusEnum.ENABLED.getKey()));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
-
-        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, mtPurchaseOrderDto.getOrderNo()));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
-
-        //修改订单
-        MtPurchaseOrder purchaseOrder = BeanUtil.copyProperties(mtPurchaseOrderDto, MtPurchaseOrder.class);
-        purchaseOrder.setUpdateTime(new Date());
-        purchaseOrder.setUpdateUserId(String.valueOf(accountInfo.getId()));
-        purchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice() );
-        purchaseOrder.setTotalQuantity(mtPurchaseOrder.getTotalQuantity());
-        purchaseOrder.setTotalWeight(mtPurchaseOrder.getTotalWeight());
-        purchaseOrder.setCreateUserId(mtPurchaseOrder.getCreateUserId());
-        purchaseOrder.setCreateTime(mtPurchaseOrder.getCreateTime());
-        purchaseOrder.setDeleteFlag(mtPurchaseOrderDto.getDeleteFlag());
-        purchaseOrder.setOrderNo(mtPurchaseOrder.getOrderNo());
-        purchaseOrder.setId(mtPurchaseOrder.getId());
-        purchaseOrder.setProject(mtPurchaseOrder.getProject());
-        int update = mtPurchaseOrderMapper.updateById(purchaseOrder);
-        Assert.isFalse(update!=1, "修改失败");
-
-    }
-
-    @Override
-    @Transactional
-    public void deletePurchaseOrderByOrderNo(Long orderNo) {
-        //参数验证
-        AccountInfo accountInfo = AuthUserUtil.get();
-        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
-        Assert.isTrue(ObjectUtils.isNotEmpty(orderNo), "请选择采购单");
-
-        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, orderNo));
-        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
-        Assert.isFalse(accountInfo.getStoreId()!=0 && mtPurchaseOrder.getStoreId() != accountInfo.getStoreId(), "暂无该餐厅权限");
-
-        int delete = mtPurchaseOrderMapper.deleteById(orderNo);
-        Assert.isFalse(delete!=1, "删除失败");
-        int delete1 = mtPurchaseOrderItemMapper.delete(new LambdaQueryWrapper<MtPurchaseOrderItem>().eq(MtPurchaseOrderItem::getPurchaseNo, orderNo));
-        Assert.isFalse(delete1!=1, "删除失败");
-    }
+        });*/
+		return PageResult.<MtPurchaseOrderVo>builder().data(mtPurchaseOrderVos).total((int) orderIPage.getTotal()).build();
+	}
+
+	@Override
+	@Transactional
+	public void savePurcahseOrder(MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
+		//参数验证
+		AccountInfo accountInfo = AuthUserUtil.get();
+		Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
+		List<MtPurchaseOrderItemDto> orderItemList = mtPurchaseOrderDto.getOrderItemList();
+		Assert.isFalse(orderItemList.isEmpty(), I18nUtil.getMessage("procurementItem"));
+		Assert.isFalse(accountInfo.getStoreId() <= 0, I18nUtil.getMessage("superAdminNotAllowedUseMerchantAccount"));
+		MtStore mtStore = mtStoreMapper.selectOne(new LambdaQueryWrapper<MtStore>().eq(MtStore::getId, accountInfo.getStoreId()).eq(MtStore::getStatus, StatusEnum.ENABLED.getKey()));
+		Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), I18nUtil.getMessage("novaDine"));
+		String orderNo = mtPurchaseOrderDto.getOrderNo();
+		Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<MtPurchaseOrder>()
+				.eq(MtPurchaseOrder::getOrderNo, orderNo));
+		if (count > 0) {
+			throw new BusinessCheckException(I18nUtil.getMessage("ordNumEx"));
+		}
+		//参数准备
+		MtPurchaseOrder purchaseOrder = BeanUtil.copyProperties(mtPurchaseOrderDto, MtPurchaseOrder.class);
+		purchaseOrder.setCreateTime(new Date());
+		purchaseOrder.setCreateUserId(String.valueOf(accountInfo.getId()));
+		purchaseOrder.setOrderNo(orderNo != null ? orderNo : new Snowflake(1, 1).nextIdStr());
+
+		List<MtPurchaseOrderItem> orderItems = new ArrayList<>();
+		for (MtPurchaseOrderItemDto itemDto : orderItemList) {
+			MtPurchaseOrderItem purchaseOrderItem = BeanUtil.copyProperties(itemDto, MtPurchaseOrderItem.class);
+			purchaseOrderItem.setPurchaseNo(String.valueOf(purchaseOrder.getOrderNo()));
+			purchaseOrderItem.setCreateUserId(String.valueOf(accountInfo.getId()));
+			purchaseOrderItem.setTotalPrice(purchaseOrderItem.getUnitPrice().multiply(BigDecimal.valueOf(purchaseOrderItem.getTotalQuantity())));
+			orderItems.add(purchaseOrderItem);
+		}
+		purchaseOrder.setTotalPrice(orderItems.stream().map(MtPurchaseOrderItem::getTotalPrice)
+				.reduce(BigDecimal.ZERO, BigDecimal::add));
+		purchaseOrder.setStoreId(accountInfo.getStoreId());
+		purchaseOrder.setUserId(accountInfo.getId().toString());
+		//保存订单
+		int insert = mtPurchaseOrderMapper.insert(purchaseOrder);
+		Assert.isFalse(insert != 1, I18nUtil.getMessage("saveErr"));
+		//保存订单项
+		boolean b = purchaseOrderItemService.saveBatch(orderItems);
+		Assert.isTrue(b, I18nUtil.getMessage("saveErr"));
+	}
+
+	@Override
+	@Transactional
+	public void updatePurchaseOrderByOrderNo(MtPurchaseOrderDto mtPurchaseOrderDto) {
+		//参数验证
+		AccountInfo accountInfo = AuthUserUtil.get();
+		Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
+		Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getOrderNo()), I18nUtil.getMessage("pOSheet"));
+		Assert.isFalse(mtPurchaseOrderDto.getOrderItemList().isEmpty(), I18nUtil.getMessage("procurementItem"));
+		Assert.isFalse(accountInfo.getStoreId() == 0, I18nUtil.getMessage("superAdminNotAllowedUseMerchantAccount"));
+
+		MtStore mtStore = mtStoreMapper.selectOne(new LambdaQueryWrapper<MtStore>().eq(MtStore::getId, accountInfo.getStoreId()).eq(MtStore::getStatus, StatusEnum.ENABLED.getKey()));
+		Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), I18nUtil.getMessage("phantomEats"));
+
+		MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, mtPurchaseOrderDto.getOrderNo()));
+		Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), I18nUtil.getMessage("orderMissing"));
+
+		//修改订单
+		MtPurchaseOrder purchaseOrder = BeanUtil.copyProperties(mtPurchaseOrderDto, MtPurchaseOrder.class);
+		purchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice());
+		purchaseOrder.setTotalQuantity(mtPurchaseOrder.getTotalQuantity());
+		purchaseOrder.setTotalWeight(mtPurchaseOrder.getTotalWeight());
+		purchaseOrder.setOrderNo(mtPurchaseOrder.getOrderNo());
+		purchaseOrder.setId(mtPurchaseOrder.getId());
+		purchaseOrder.setProject(mtPurchaseOrder.getProject());
+		int update = mtPurchaseOrderMapper.updateById(purchaseOrder);
+		Assert.isFalse(update != 1, I18nUtil.getMessage("updateErr"));
+
+	}
+
+	@Override
+	@Transactional
+	public void deletePurchaseOrderByOrderNo(Long id) {
+		//参数验证
+		AccountInfo accountInfo = AuthUserUtil.get();
+		Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), I18nUtil.getMessage("notAuthenticated"));
+		Assert.isTrue(ObjectUtils.isNotEmpty(id), I18nUtil.getMessage(I18nUtil.getMessage("pOSheet")));
+
+		MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getId, id));
+		Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), I18nUtil.getMessage("orderMissing"));
+		Assert.isFalse(accountInfo.getStoreId() != 0 && mtPurchaseOrder.getStoreId() != accountInfo.getStoreId(), I18nUtil.getMessage("superAdminNotAllowedUseMerchantAccount"));
+
+		int delete = mtPurchaseOrderMapper.deleteById(id);
+		Assert.isFalse(delete != 1, I18nUtil.getMessage("deleteErr"));
+		int delete1 = mtPurchaseOrderItemMapper.delete(new LambdaQueryWrapper<MtPurchaseOrderItem>().eq(MtPurchaseOrderItem::getPurchaseNo, mtPurchaseOrder.getOrderNo()));
+		Assert.isFalse(delete1 != 1, I18nUtil.getMessage("deleteErr"));
+	}
 }

+ 69 - 34
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/ShopAlertServiceImpl.java → fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/StoreAlertServiceImpl.java

@@ -1,12 +1,15 @@
 package com.fuint.common.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fuint.common.dto.ext.AlertDTO;
 import com.fuint.common.dto.ext.PageResult;
-import com.fuint.common.service.ShopAlertService;
-import com.fuint.common.service.TableService;
+import com.fuint.common.dto.ext.SelectDto;
+import com.fuint.common.dto.ext.ShopAlertRequest;
+import com.fuint.common.enums.AlertEnum;
+import com.fuint.common.service.StoreAlertService;
 import com.fuint.common.util.I18nUtil;
 import com.fuint.common.vo.OrderVO;
 import com.fuint.common.vo.ShopDetailVO;
@@ -14,20 +17,20 @@ import com.fuint.common.vo.ShopVO;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.repository.mapper.MtOrderMapper;
 import com.fuint.repository.mapper.MtStoreMapper;
-import com.fuint.repository.mapper.MtTableMapper;
 import com.fuint.repository.model.MtOrder;
 import com.fuint.repository.model.MtStore;
-import com.fuint.repository.model.MtTable;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -37,7 +40,7 @@ import java.util.stream.Collectors;
  */
 @Service
 @AllArgsConstructor
-public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> implements ShopAlertService {
+public class StoreAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> implements StoreAlertService {
 
 
     private MtStoreMapper shopMapper;
@@ -46,34 +49,39 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
 
     @Override
     @Transactional
-    public void addShopAlert(Long shopId, String mail, BigDecimal threshold) throws BusinessCheckException {
+    public void addShopAlert(ShopAlertRequest alertRequest) throws BusinessCheckException {
         // 1. 校验店铺存在性
-        MtStore shop = shopMapper.selectById(shopId);
+        MtStore shop = shopMapper.selectById(alertRequest.getId());
         if (shop == null) {
             throw new BusinessCheckException(I18nUtil.getMessage("storeNonexistent"));
         }
         // 2. 更新字段
-        shop.setMail(mail);
-        shop.setThreshold(threshold);
-
+        shop.setMail(alertRequest.getMail());
+        shop.setThreshold(alertRequest.getThreshold());
+        shop.setAlertId(alertRequest.getAlertId());
+        Integer daysByAlertId = AlertEnum.getDaysByAlertId(alertRequest.getAlertId());
+        if (Objects.nonNull(daysByAlertId)){
+            shop.setNextReminderDay(LocalDate.now().plusDays(daysByAlertId));
+        }else{
+            shop.setNextReminderDay(LocalDate.now().minusDays(1));
+        }
         // 3. 持久化到数据库
-        int rows = shopMapper.updateById(shop);
+       shopMapper.updateById(shop);
     }
 
     @Override
     @Transactional
-    public MtStore updateShopAlert(Long id, String mail, BigDecimal threshold) throws BusinessCheckException{
+    public MtStore updateShopAlert(ShopAlertRequest alertRequest) throws BusinessCheckException{
         // 1. 验证店铺存在性
-        MtStore shop = shopMapper.selectById(id);
+        MtStore shop = shopMapper.selectById(alertRequest.getId());
         if (shop == null) {
             throw new BusinessCheckException(I18nUtil.getMessage("storeNonexistent"));
         }
 
         // 2. 数据更新
-        shop.setMail(mail);
-        shop.setThreshold(threshold);
-        shop.setUpdateTime(new Date()); // 更新时间戳
-
+        shop.setMail(alertRequest.getMail());
+        shop.setThreshold(alertRequest.getThreshold());
+        shop.setAlertId(alertRequest.getAlertId());
         int rows = shopMapper.updateById(shop);
         if (rows == 0){
             throw new BusinessCheckException(I18nUtil.getMessage("updateFail"));
@@ -93,8 +101,13 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
         // 2. 清除预警配置
         shop.setMail("");          // 清空邮箱
         shop.setThreshold(BigDecimal.ZERO);  // 重置阈值
+        shop.setAlertId(null);
         shop.setUpdateTime(new Date());
-        int rows = shopMapper.updateById(shop);
+        int rows = shopMapper.update(null,new LambdaUpdateWrapper<MtStore>()
+                .set(MtStore::getAlertId,null)
+                .set(MtStore::getMail,null)
+                .set(MtStore::getThreshold,BigDecimal.ZERO)
+                .eq(MtStore::getId,shop.getId()));
         return shop;
     }
 
@@ -118,6 +131,8 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
                 .setId(shop.getId())
                 .setName(shop.getName())
                 .setMail(shop.getMail())
+                .setNextReminderDay(shop.getNextReminderDay())
+                .setAlertDesc(AlertEnum.getAlertDesc(shop.getAlertId()))
                 .setThreshold(shop.getThreshold())
                 .setCreateTime(shop.getCreateTime())
                 .setUpdateTime(shop.getUpdateTime());
@@ -142,15 +157,18 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
      * @return
      */
     @Override
-    public PageResult<ShopVO> listShops(Integer page, Integer size, String name) {
+    public PageResult<ShopVO> listShops(Integer page, Integer size, String name,String nextReminderDay ) {
         // 1. 构建分页参数
         Page<MtStore> pageParam = new Page<>(page, size);
-
+        Set<Integer> alertIds = AlertEnum.getAlertIds();
         // 2. 构建查询条件
         LambdaQueryWrapper<MtStore> wrapper = new LambdaQueryWrapper<>();
-        wrapper.like(StringUtils.hasText(name), MtStore::getName, name)
+        wrapper.likeRight(StringUtils.hasText(name), MtStore::getName, name)
+                .eq(StringUtils.hasText(nextReminderDay),MtStore::getNextReminderDay,nextReminderDay)
+                .in(MtStore::getAlertId,alertIds)
                 .select(MtStore::getId, MtStore::getName, MtStore::getMail,
                         MtStore::getContact, MtStore::getPhone,
+                        MtStore::getAlertId,MtStore::getNextReminderDay,
                         MtStore::getThreshold, MtStore::getUpdateTime);
 
         // 3. 执行分页查询
@@ -159,16 +177,12 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
         //计算每个店铺的总收益额
         // 4. 转换VO对象
         List<ShopVO> vos = shopPage.getRecords().stream()
-                .map(shop -> new ShopVO(
-                        shop.getId(),
-                        shop.getName(),
-                        shop.getMail(),
-                        shop.getPhone(),
-                        shop.getContact(),
-                        shop.getThreshold(),
-                        shop.getUpdateTime()
-                ))
-                .collect(Collectors.toList());
+                .map(shop -> {
+                    ShopVO shopVO = new ShopVO();
+                    BeanUtils.copyProperties(shop,shopVO);
+                    shopVO.setAlertDesc(AlertEnum.getAlertDesc(shopVO.getAlertId()));
+                    return shopVO;
+                }).collect(Collectors.toList());
 
         // 5. 封装分页结果
         return new PageResult<>(
@@ -179,6 +193,27 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
         );
     }
 
+    @Override
+    public List<AlertDTO> alertInterval() {
+	    return AlertEnum.getAlertEnumList().stream()
+                .map(AlertDTO::new)
+                .collect(Collectors.toList());
+    }
+
+    @Override
+    public List<SelectDto> earlyWarningStore(String storeName) {
+        Set<Integer> alertIds = AlertEnum.getAlertIds();
+        List<MtStore> mtStores = shopMapper.selectList(new LambdaQueryWrapper<MtStore>()
+                .likeRight(StringUtils.hasText(storeName), MtStore::getName, storeName)
+                .notIn(MtStore::getAlertId, alertIds));
+	    return mtStores.stream().map(store -> {
+            SelectDto selectDto = new SelectDto();
+            selectDto.setValue(store.getId());
+            selectDto.setLabel(store.getName());
+            return selectDto;
+        }).collect(Collectors.toList());
+    }
+
 
     /**
      * 参数转换  MtOrder-》vo
@@ -190,4 +225,4 @@ public class ShopAlertServiceImpl extends ServiceImpl<MtStoreMapper, MtStore> im
                 .map(o -> new OrderVO(o.getId(), o.getAmount(), o.getCreateTime()))
                 .collect(Collectors.toList());
     }
-}
+}

+ 11 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/common/util/TimeUtils.java

@@ -4,13 +4,13 @@ import org.apache.commons.lang.StringUtils;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
-import java.util.Date;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Date;
 
 /**
  * 时间相关的工具类
@@ -114,12 +114,18 @@ public class TimeUtils {
     }
 
     public static LocalDateTime[] getStartAndEndOfDay(String dateStr) throws DateTimeParseException {
-        if (StringUtils.isEmpty(dateStr)){
+        if (StringUtils.isEmpty(dateStr)) {
             return null;
         }
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        LocalDateTime startDate = LocalDateTime.parse(dateStr, formatter).with(LocalTime.MIDNIGHT);
-        LocalDateTime endDate = startDate.plusDays(1).minusSeconds(1);
+
+        // 先解析为 LocalDate 再转换
+        LocalDate date = LocalDate.parse(dateStr, formatter);
+        LocalDateTime startDate = date.atStartOfDay(); // 等价于 atTime(LocalTime.MIDNIGHT)
+
+        // 更精确的结束时间计算方式
+        LocalDateTime endDate = date.plusDays(1).atStartOfDay().minusNanos(1);
+
         return new LocalDateTime[]{startDate, endDate};
     }
 }

+ 13 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MaterialVo.java

@@ -1,11 +1,12 @@
 package com.fuint.common.vo;
 
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * 材料DTO
  */
@@ -16,6 +17,9 @@ public class MaterialVo {
 	@ApiModelProperty("材料表id")
 	private Long id;
 
+	@ApiModelProperty("材料名称")
+	private String name;
+
 	@ApiModelProperty("材料文件/图片id")
 	private String fileId;
 
@@ -40,6 +44,13 @@ public class MaterialVo {
 	@ApiModelProperty("规格")
 	private String specification;
 
+	@ApiModelProperty("创建时间")
+	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+	private Date createTime;
+
+	@ApiModelProperty("状态")
+	private Integer status;
+
 	@ApiModelProperty("单位")
 	private String unit;
 

+ 1 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderItemVo.java

@@ -2,7 +2,6 @@ package com.fuint.common.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.fuint.common.dto.Page;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -18,7 +17,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-public class MtPurchaseOrderItemVo extends Page implements Serializable {
+public class MtPurchaseOrderItemVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 

+ 78 - 6
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderVo.java

@@ -2,12 +2,13 @@ package com.fuint.common.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.fuint.common.dto.Page;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -19,71 +20,142 @@ import java.util.List;
  */
 @Getter
 @Setter
-public class MtPurchaseOrderVo extends Page implements Serializable {
+public class MtPurchaseOrderVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 实际支付
+     */
     @ApiModelProperty("实际支付")
-    private Double actualPrice;
+    private BigDecimal actualPrice;
 
+    /**
+     * 联系方式
+     */
     @ApiModelProperty("联系方式")
     private String contactWay;
 
+    /**
+     * 创建时间
+     */
     @ApiModelProperty("创建时间")
+    @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
     private Date createTime;
 
+    /**
+     * 创建用户id
+     */
     @ApiModelProperty("创建用户id")
     private String createUserId;
 
+    /**
+     * 是否删除 0否 1是
+     */
     @ApiModelProperty("是否删除 0否 1是")
     private Integer deleteFlag;
 
+    /**
+     * 发票文件/图片id
+     */
     @ApiModelProperty("发票文件/图片id")
     private String fileId;
 
+    /**
+     * 采购记录id
+     */
     @ApiModelProperty("采购记录id")
     @TableId(value = "ID", type = IdType.ID_WORKER)
     private Long id;
 
+    /**
+     * 订单编号
+     */
     @ApiModelProperty("订单编号")
     private String orderNo;
 
+    /**
+     * 项目标识
+     */
     @ApiModelProperty("项目标识")
     private String project;
 
+    /**
+     * 采购货源
+     */
     @ApiModelProperty("采购货源")
     private String puchaseSource;
 
+    /**
+     * 采购时间
+     */
     @ApiModelProperty("采购时间")
+    @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
     private Date purchaseTime;
 
+    /**
+     * 支付方式
+     */
     @ApiModelProperty("支付方式")
-    private Integer purchaseType;
+    private String purchaseType;
 
+    /**
+     * 店铺id
+     */
     @ApiModelProperty("店铺id")
     private Long storeId;
 
+    /**
+     * 总价
+     */
     @ApiModelProperty("总价")
-    private Double totalPrice;
+    private BigDecimal totalPrice;
 
+    /**
+     * 商品总数量
+     */
     @ApiModelProperty("商品总数量")
     private Integer totalQuantity;
 
-    @ApiModelProperty("商品总数量")
+    /**
+     * 商品总KG
+     */
+    @ApiModelProperty("商品总KG")
     private Integer totalWeight;
 
+    /**
+     * 更新时间
+     */
     @ApiModelProperty("更新时间")
+    @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
     private Date updateTime;
 
+    /**
+     * 修改用户id
+     */
     @ApiModelProperty("修改用户id")
     private String updateUserId;
 
+    /**
+     * 负责人
+     */
+    private String responsible;
+
+    /**
+     * 采购人
+     */
     @ApiModelProperty("采购人")
     private String userId;
 
+    /**
+     * 订单发票图片列表
+     */
     @ApiModelProperty("订单发票图片列表")
     private List<String> fileList;
 
+    /**
+     * 订单项列表
+     */
     @ApiModelProperty("订单项列表")
     private List<MtPurchaseOrderItemVo> orderItemList;
 

+ 15 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/ShopDetailVO.java

@@ -1,10 +1,12 @@
 package com.fuint.common.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
+import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
 
@@ -13,11 +15,22 @@ import java.util.List;
 @Accessors(chain = true)
 public class ShopDetailVO {
     private Long id;
+
     private String name;
+
     private String mail;
+
     private BigDecimal threshold;
+
     private Date createTime;
+
     private Date updateTime;
+
+    private String alertDesc;
+
+    @ApiModelProperty("下个预警日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate nextReminderDay;
 //    当日订单
     private List<OrderVO> ordersToday;
-}
+}

+ 15 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/ShopVO.java

@@ -1,16 +1,16 @@
 package com.fuint.common.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
+import java.time.LocalDate;
 import java.util.Date;
 
 // 店铺VO对象
 @Data
-@AllArgsConstructor
+
 public class ShopVO {
     private Long id;
     private String name;
@@ -22,8 +22,19 @@ public class ShopVO {
     private String mail;
     @ApiModelProperty("预警阈值")
     private BigDecimal threshold;
+
+    @ApiModelProperty("预警id")
+    private Integer alertId;
+
+    private String alertDesc;
+
+    @ApiModelProperty("下个预警日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate nextReminderDay;
+
     @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
    /* @ApiModelProperty("总收益额")
     private BigDecimal totalIncome;*/
-}
+}

+ 0 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/fuintApplication.java

@@ -4,7 +4,6 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.PropertySource;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.tuckey.web.filters.urlrewrite.UrlRewriteFilter;
 
@@ -16,7 +15,6 @@ import org.tuckey.web.filters.urlrewrite.UrlRewriteFilter;
  */
 @EnableScheduling
 @SpringBootApplication
-@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
 public class fuintApplication {
 
     public static final String REWRITE_FILTER_NAME = "rewriteFilter";

+ 8 - 8
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendAccountController.java

@@ -72,7 +72,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "账户信息列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -125,7 +125,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "获取账户详情")
     @RequestMapping(value = "/info/{userId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject info(HttpServletRequest request, @PathVariable("userId") Long userId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
@@ -201,7 +201,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "新增账户")
     @RequestMapping(value = "/doCreate", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:add')")
     public ResponseObject doCreate(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -266,7 +266,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "修改账户信息")
     @RequestMapping(value = "/update", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:edit')")
     public ResponseObject update(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -345,7 +345,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "删除账户信息")
     @RequestMapping(value = "/delete/{userIds}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:delete')")
     public ResponseObject deleteAccount(HttpServletRequest request, @PathVariable("userIds") String userIds) {
         String token = request.getHeader("Access-Token");
@@ -388,7 +388,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "更新账户状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -425,7 +425,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "修改账户密码")
     @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:edit')")
     public ResponseObject resetPwd(HttpServletRequest request, @RequestBody Map<String, Object> param) {
         String token = request.getHeader("Access-Token");
@@ -459,7 +459,7 @@ public class BackendAccountController extends BaseController {
      */
     @ApiOperation(value = "自己修改自己的账户密码")
     @RequestMapping(value = "/mySelfResetPwd", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:account:edit')")
     public ResponseObject mySelfResetPwd(HttpServletRequest request, @RequestBody Map<String, Object> param) {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendArticleController.java

@@ -62,7 +62,7 @@ public class BackendArticleController extends BaseController {
      */
     @ApiOperation(value = "文章列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:article:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -129,7 +129,7 @@ public class BackendArticleController extends BaseController {
      */
     @ApiOperation(value = "更新文章状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:article:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -165,7 +165,7 @@ public class BackendArticleController extends BaseController {
      */
     @ApiOperation(value = "保存文章")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:article:add')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -221,7 +221,7 @@ public class BackendArticleController extends BaseController {
      */
     @ApiOperation(value = "获取文章详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:article:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBalanceController.java

@@ -66,7 +66,7 @@ public class BackendBalanceController extends BaseController {
      */
     @ApiOperation(value = "余额明细列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('balance:list')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -126,7 +126,7 @@ public class BackendBalanceController extends BaseController {
      */
     @ApiOperation(value = "提交充值")
     @RequestMapping(value = "/doRecharge", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('balance:modify')")
     public ResponseObject doRecharge(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -179,7 +179,7 @@ public class BackendBalanceController extends BaseController {
      */
     @ApiOperation(value = "发放余额")
     @RequestMapping(value = "/distribute", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('balance:distribute')")
     public ResponseObject distribute(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -205,7 +205,7 @@ public class BackendBalanceController extends BaseController {
      */
     @ApiOperation(value = "充值设置详情")
     @RequestMapping(value = "/setting", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('balance:setting')")
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -257,7 +257,7 @@ public class BackendBalanceController extends BaseController {
      */
     @ApiOperation(value = "保存充值设置")
     @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('balance:setting')")
     public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBannerController.java

@@ -65,7 +65,7 @@ public class BackendBannerController extends BaseController {
      */
     @ApiOperation(value = "焦点图列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:banner:list')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -145,7 +145,7 @@ public class BackendBannerController extends BaseController {
      */
     @ApiOperation(value = "更新焦点图状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:banner:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -181,7 +181,7 @@ public class BackendBannerController extends BaseController {
      */
     @ApiOperation(value = "保存焦点图")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:banner:add')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -231,7 +231,7 @@ public class BackendBannerController extends BaseController {
      */
     @ApiOperation(value = "获取焦点图详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('content:banner:list')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookCateController.java

@@ -62,7 +62,7 @@ public class BackendBookCateController extends BaseController {
      */
     @ApiOperation(value = "预约分类列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -130,7 +130,7 @@ public class BackendBookCateController extends BaseController {
      */
     @ApiOperation(value = "更新预约分类状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -164,7 +164,7 @@ public class BackendBookCateController extends BaseController {
      */
     @ApiOperation(value = "保存预约分类")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -213,7 +213,7 @@ public class BackendBookCateController extends BaseController {
      */
     @ApiOperation(value = "获取预约分类详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookController.java

@@ -71,7 +71,7 @@ public class BackendBookController extends BaseController {
      */
     @ApiOperation(value = "预约项目列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -145,7 +145,7 @@ public class BackendBookController extends BaseController {
      */
     @ApiOperation(value = "更新预约项目状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
@@ -181,7 +181,7 @@ public class BackendBookController extends BaseController {
      */
     @ApiOperation(value = "保存预约项目")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -256,7 +256,7 @@ public class BackendBookController extends BaseController {
      */
     @ApiOperation(value = "获取预约项目详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendBookItemController.java

@@ -72,7 +72,7 @@ public class BackendBookItemController extends BaseController {
      */
     @ApiOperation(value = "预约订单列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -171,7 +171,7 @@ public class BackendBookItemController extends BaseController {
      */
     @ApiOperation(value = "更新预约订单状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -205,7 +205,7 @@ public class BackendBookItemController extends BaseController {
      */
     @ApiOperation(value = "保存预约订单")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -245,7 +245,7 @@ public class BackendBookItemController extends BaseController {
      */
     @ApiOperation(value = "获取预约订单详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('book:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 7 - 7
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCashierController.java

@@ -99,7 +99,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "收银台初始化")
     @RequestMapping(value = "/init/{userId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject init(HttpServletRequest request, @PathVariable("userId") Long userId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -172,7 +172,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "查询商品列表")
     @RequestMapping(value = "/searchGoods", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject searchGoods(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -209,7 +209,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "获取商品详情")
     @RequestMapping(value = "/getGoodsInfo/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject getGoodsInfo(HttpServletRequest request, @PathVariable("id") Long goodsId) throws InvocationTargetException, IllegalAccessException {
         String token = request.getHeader("Access-Token");
@@ -287,7 +287,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "搜索会员信息")
     @RequestMapping(value = "/getMemberInfo", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject getMemberInfo(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -329,7 +329,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "获取会员信息")
     @RequestMapping(value = "/getMemberInfoById/{userId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject getMemberInfoById(HttpServletRequest request, @PathVariable("userId") String userId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -354,7 +354,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "执行挂单")
     @RequestMapping(value = "/doHangUp", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject doHangUp(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -392,7 +392,7 @@ public class BackendCashierController extends BaseController {
      */
     @ApiOperation(value = "获取挂单列表")
     @RequestMapping(value = "/getHangUpList", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:index')")
     public ResponseObject getHangUpList(HttpServletRequest request,@RequestParam(value = "categoryName",defaultValue = "") String categoryName) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 3 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCateController.java

@@ -73,7 +73,7 @@ public class BackendCateController extends BaseController {
      */
     @ApiOperation(value = "获取商品分类列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:cate:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -141,7 +141,7 @@ public class BackendCateController extends BaseController {
      */
     @ApiOperation(value = "更新商品分类状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:cate:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -237,7 +237,7 @@ public class BackendCateController extends BaseController {
      */
     @ApiOperation(value = "商品分类详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:cate:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionCashController.java

@@ -60,7 +60,7 @@ public class BackendCommissionCashController extends BaseController {
      */
     @ApiOperation(value = "分销提成提现记录列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:cash:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -151,7 +151,7 @@ public class BackendCommissionCashController extends BaseController {
      */
     @ApiOperation(value = "获取分销提成提现详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:cash:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 3 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionLogController.java

@@ -67,7 +67,7 @@ public class BackendCommissionLogController extends BaseController {
      */
     @ApiOperation(value = "分销提成记录查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:log:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -177,7 +177,7 @@ public class BackendCommissionLogController extends BaseController {
      */
     @ApiOperation(value = "获取分销提成记录详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:log:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -224,7 +224,7 @@ public class BackendCommissionLogController extends BaseController {
      */
     @ApiOperation(value = "作废分销提成记录")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:log:index')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommissionRuleController.java

@@ -59,7 +59,7 @@ public class BackendCommissionRuleController extends BaseController {
      */
     @ApiOperation(value = "规则列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:rule:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -129,7 +129,7 @@ public class BackendCommissionRuleController extends BaseController {
      */
     @ApiOperation(value = "更新分销提成规则状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:rule:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -165,7 +165,7 @@ public class BackendCommissionRuleController extends BaseController {
      */
     @ApiOperation(value = "保存分销提成规则")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:rule:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody CommissionRuleParam params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -197,7 +197,7 @@ public class BackendCommissionRuleController extends BaseController {
      */
     @ApiOperation(value = "获取分销提成规则详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('commission:rule:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 1 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCommonController.java

@@ -73,7 +73,7 @@ public class BackendCommonController extends BaseController {
      */
     @ApiOperation(value = "生成二维码")
     @RequestMapping(value = "/createQrCode", method = RequestMethod.POST)
-    @CrossOrigin
+    
     public ResponseObject createQrCode(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String type = params.get("type") != null ? params.get("type").toString() : "";

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendConfirmLogController.java

@@ -71,7 +71,7 @@ public class BackendConfirmLogController extends BaseController {
      */
     @ApiOperation(value = "获取会员卡券核销记录列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:confirmLog:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -148,7 +148,7 @@ public class BackendConfirmLogController extends BaseController {
      */
     @ApiOperation(value = "撤销已使用的卡券")
     @RequestMapping(value = "/rollbackUserCoupon/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:confirmLog:index')")
     public ResponseObject rollbackUserCoupon(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCountryController.java

@@ -41,8 +41,8 @@ public class BackendCountryController extends BaseController {
      */
     @ApiOperation(value = "国家表树形结构查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
-    @PreAuthorize("@pms.hasPermission('country:list')")
+    
+//    @PreAuthorize("@pms.hasPermission('country:list')")
     public ResponseObject list(@RequestParam(value = "countryCode",defaultValue = "") String countryCode,
                                @RequestParam(value = "countryName",defaultValue = "") String countryName) throws BusinessCheckException {
         List<CountryVo> countryVoList = countryService.getCountryTree(countryCode,countryName);
@@ -56,7 +56,7 @@ public class BackendCountryController extends BaseController {
      */
     @ApiOperation(value = "更新国家表状态")
     @RequestMapping(value = "/updateCountry", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('country:edit')")
     public ResponseObject updateCountry(CountryDto countryDto) throws BusinessCheckException {
         AccountInfo accountInfo = AuthUserUtil.get();
@@ -75,7 +75,7 @@ public class BackendCountryController extends BaseController {
      */
     @ApiOperation(value = "保存国家表")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('country:add')")
     public ResponseObject saveHandler(@RequestBody CountryDto countryDto) throws BusinessCheckException {
         AccountInfo accountInfo = AuthUserUtil.get();
@@ -95,7 +95,7 @@ public class BackendCountryController extends BaseController {
      */
     @ApiOperation(value = "通过id删除国家表数据")
     @DeleteMapping("/{id}")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('country:list')")
     public ResponseObject deleteCountry(@PathVariable Long id) throws BusinessCheckException {
         boolean success = countryService.deleteCountry(id);

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponController.java

@@ -88,7 +88,7 @@ public class BackendCouponController extends BaseController {
      */
     @ApiOperation(value = "查询卡券列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:coupon:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -247,7 +247,7 @@ public class BackendCouponController extends BaseController {
      */
     @ApiOperation(value = "删除卡券")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:coupon:index')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -273,7 +273,7 @@ public class BackendCouponController extends BaseController {
      */
     @ApiOperation(value = "保存卡券")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:coupon:add')")
     public ResponseObject saveCouponHandler(HttpServletRequest request, @RequestBody ReqCouponDto reqCouponDto) throws BusinessCheckException,ParseException {
         String token = request.getHeader("Access-Token");
@@ -317,7 +317,7 @@ public class BackendCouponController extends BaseController {
      */
     @ApiOperation(value = "卡券详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:coupon:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -417,7 +417,7 @@ public class BackendCouponController extends BaseController {
      */
     @ApiOperation(value = "发放卡券")
     @RequestMapping(value = "/sendCoupon", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:coupon:index')")
     public ResponseObject sendCoupon(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 8 - 8
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCouponGroupController.java

@@ -71,7 +71,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "查询卡券分组列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:group:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -156,7 +156,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "保存卡券分组信息")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:group:edit')")
     public ResponseObject save(HttpServletRequest request, @RequestBody ReqCouponGroupDto reqCouponGroupDto) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -183,7 +183,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "删除卡券分组")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:group:edit')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -213,7 +213,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "更新分组状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:group:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -243,7 +243,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "获取分组详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:group:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -269,7 +269,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "导出模板文件")
     @RequestMapping(value = "/exportTemplate", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public void exportTemplate(HttpServletRequest request, HttpServletResponse response) throws BusinessCheckException {
         ClassLoader classLoader = this.getClass().getClassLoader();
         URL url = classLoader.getResource("");
@@ -299,7 +299,7 @@ public class BackendCouponGroupController extends BaseController {
      */
     @ApiOperation(value = "上传文件")
     @RequestMapping(value = "/upload/", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")
-    @CrossOrigin
+    
     public ResponseObject uploadFile(HttpServletRequest request, @RequestParam("fileInput") MultipartFile file) throws Exception {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
@@ -317,7 +317,7 @@ public class BackendCouponGroupController extends BaseController {
      * */
     @ApiOperation(value = "查询分组列表")
     @RequestMapping(value = "/quickSearch", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject quickSearch(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendCurrencyController.java

@@ -42,7 +42,7 @@ public class BackendCurrencyController extends BaseController {
      */
     @ApiOperation(value = "货币表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('currency:list')")
     public PageResult<CurrencyVo> list(@RequestParam(defaultValue = "") String name, PageParam pageParam) throws BusinessCheckException {
         return currencyService.getCurrencyById(name,pageParam);
@@ -55,7 +55,7 @@ public class BackendCurrencyController extends BaseController {
      */
     @ApiOperation(value = "更新货币数据")
     @RequestMapping(value = "/updateCurrency", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('currency:edit')")
     public ResponseObject updateStatus(@RequestBody CurrencyDto currencyDto) throws BusinessCheckException {
         boolean success = currencyService.updateCurrency(currencyDto);
@@ -70,7 +70,7 @@ public class BackendCurrencyController extends BaseController {
      */
     @ApiOperation(value = "保存货币表")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('currency:add')")
     public ResponseObject saveHandler(@RequestBody CurrencyDto currencyDto) throws BusinessCheckException {
         boolean success = currencyService.addCurrency(currencyDto);
@@ -85,7 +85,7 @@ public class BackendCurrencyController extends BaseController {
      */
     @ApiOperation(value = "通过id删除货币数据")
     @DeleteMapping("/{id}")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('currency:delete')")
     public ResponseObject info(@PathVariable("id") Integer id) throws BusinessCheckException {
         boolean success = currencyService.deleteCurrency(id);
@@ -101,7 +101,7 @@ public class BackendCurrencyController extends BaseController {
      */
     @ApiOperation(value = "获取全部的货币列表")
     @DeleteMapping("/allList")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('currency:list')")
     public ResponseObject allList(@RequestParam(value = "name",defaultValue = "") String name) throws BusinessCheckException {
         List<CurrencyVo> result = currencyService.allList(name);

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendDoConfirmController.java

@@ -75,7 +75,7 @@ public class BackendDoConfirmController extends BaseController {
      */
     @ApiOperation(value = "核销详情")
     @RequestMapping(value = "/info", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:confirm:index')")
     public ResponseObject info(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -155,7 +155,7 @@ public class BackendDoConfirmController extends BaseController {
      */
     @ApiOperation(value = "确认核销")
     @RequestMapping(value = "/doConfirm", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('coupon:confirm:index')")
     public ResponseObject doConfirm(HttpServletRequest request, @RequestBody Map<String, Object> param) {
         String token = request.getHeader("Access-Token");

+ 6 - 6
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendDutyController.java

@@ -63,7 +63,7 @@ public class BackendDutyController extends BaseController {
      */
     @ApiOperation(value = "获取角色列表")
     @RequestMapping(value = "/list")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:role:index')")
     public ResponseObject list(HttpServletRequest request) {
         String token = request.getHeader("Access-Token");
@@ -126,7 +126,7 @@ public class BackendDutyController extends BaseController {
      */
     @ApiOperation(value = "新增角色")
     @RequestMapping(value = "/add", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:role:add')")
     public ResponseObject addHandler(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -172,7 +172,7 @@ public class BackendDutyController extends BaseController {
      */
     @ApiOperation(value = "获取角色详情")
     @RequestMapping(value = "/info/{roleId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:role:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("roleId") Long roleId) {
         String token = request.getHeader("Access-Token");
@@ -209,7 +209,7 @@ public class BackendDutyController extends BaseController {
      */
     @ApiOperation(value = "修改角色")
     @RequestMapping(value = "/update", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:role:edit')")
     public ResponseObject updateHandler(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -258,7 +258,7 @@ public class BackendDutyController extends BaseController {
      */
     @ApiOperation(value = "删除角色信息")
     @RequestMapping(value = "/delete/{roleId}", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:role:delete')")
     public ResponseObject deleteRole(HttpServletRequest request, @PathVariable("roleId") Long roleId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -278,7 +278,7 @@ public class BackendDutyController extends BaseController {
      */
     @ApiOperation(value = "修改角色状态")
     @RequestMapping(value = "/changeStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:role:edit')")
     public ResponseObject changeStatus(HttpServletRequest request, @RequestBody DutyStatusRequest dutyStatusRequest) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendFileController.java

@@ -62,7 +62,7 @@
 //     */
 //    @ApiOperation(value = "后台上传文件")
 //    @RequestMapping(value = "/upload", method = RequestMethod.POST)
-//    @CrossOrigin
+//    
 //    public ResponseObject fileLocal(HttpServletRequest request) {
 //        String token = request.getHeader("Access-Token");
 //        String action = request.getParameter("action") == null ? "" : request.getParameter("action");
@@ -252,7 +252,7 @@ public class BackendFileController extends BaseController {
      */
     @ApiOperation(value = "后台上传文件")
     @RequestMapping(value = "/upload", method = RequestMethod.POST)
-    @CrossOrigin
+    
     public ResponseObject fileLocal(@RequestParam("file") MultipartFile file) {
         // 验证 token 是否有效
 //        AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendGenCodeController.java

@@ -48,7 +48,7 @@ public class BackendGenCodeController extends BaseController {
      */
     @ApiOperation(value = "代码生成列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:genCode:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -89,7 +89,7 @@ public class BackendGenCodeController extends BaseController {
      */
     @ApiOperation(value = "更新代码状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:genCode:add')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -120,7 +120,7 @@ public class BackendGenCodeController extends BaseController {
      */
     @ApiOperation(value = "保存代码生成")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:genCode:add')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -165,7 +165,7 @@ public class BackendGenCodeController extends BaseController {
      */
     @ApiOperation(value = "获取代码生成详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:genCode:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -190,7 +190,7 @@ public class BackendGenCodeController extends BaseController {
      */
     @ApiOperation(value = "生成代码")
     @RequestMapping(value = "/gen/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('system:genCode:gen')")
     public ResponseObject gen(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendGiveLogController.java

@@ -74,7 +74,7 @@ public class BackendGiveLogController extends BaseController {
      */
     @ApiOperation(value = "查询转赠列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         Integer page = request.getParameter("page") == null ? Constants.PAGE_NUMBER : Integer.parseInt(request.getParameter("page"));
@@ -124,7 +124,7 @@ public class BackendGiveLogController extends BaseController {
      * */
     @ApiOperation(value = "查询转赠详情")
     @RequestMapping(value = "/giveItem", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject giveItem(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String giveId = request.getParameter("giveId");

+ 33 - 12
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendGoodsController.java

@@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fuint.common.Constants;
 import com.fuint.common.dto.*;
+import com.fuint.common.dto.ext.AllGoodsDto;
 import com.fuint.common.enums.GoodsTypeEnum;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.enums.YesOrNoEnum;
 import com.fuint.common.service.*;
+import com.fuint.common.util.AuthUserUtil;
 import com.fuint.common.util.CommonUtil;
 import com.fuint.common.util.I18nUtil;
 import com.fuint.common.util.TokenUtil;
@@ -82,7 +84,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "分页查询商品列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -193,7 +195,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "删除商品")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:edit')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Long goodsId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -219,7 +221,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "更新商品状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -260,7 +262,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "获取商品详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long goodsId) throws BusinessCheckException, InvocationTargetException, IllegalAccessException {
         String token = request.getHeader("Access-Token");
@@ -387,7 +389,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "保存商品信息")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:add')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -525,7 +527,7 @@ public class BackendGoodsController extends BaseController {
             // 库存等于所有sku库存相加
             Integer allStock = 0;
             for (LinkedHashMap item : skuList) {
-                 allStock = allStock + Integer.parseInt(item.get("stock").toString());
+                 allStock = allStock + Integer.parseInt(Objects.isNull(item.get("stock"))?"0":item.get("stock").toString());
             }
             stock = allStock.toString();
         }
@@ -613,7 +615,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "保存商品规格")
     @RequestMapping(value = "/saveSpecName", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:add')")
     public ResponseObject saveSpecName(HttpServletRequest request, @RequestBody Map<String, Object> param) {
         String token = request.getHeader("Access-Token");
@@ -667,7 +669,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "保存商品规格值")
     @RequestMapping(value = "/saveSpecValue", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:add')")
     public ResponseObject saveSpecValue(HttpServletRequest request, @RequestBody Map<String, Object> param) {
         String token = request.getHeader("Access-Token");
@@ -755,7 +757,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "删除商品规格")
     @RequestMapping(value = "/deleteSpec", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:add')")
     public ResponseObject deleteSpec(HttpServletRequest request) {
         String specName = request.getParameter("specName") == null ? "" : request.getParameter("specName");
@@ -786,10 +788,10 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "删除商品规格值")
     @RequestMapping(value = "/deleteSpecValue", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('goods:goods:add')")
     public ResponseObject deleteSpecValue(HttpServletRequest request) {
-        Integer specId = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id"));
+        Long specId = request.getParameter("id") == null ? 0 : Long.parseLong(request.getParameter("id"));
 
         if (specId < 1) {
             return getFailureResult(201, "请求参数错误");
@@ -828,7 +830,7 @@ public class BackendGoodsController extends BaseController {
      */
     @ApiOperation(value = "获取选择商品列表")
     @RequestMapping(value = "/selectGoods", method = RequestMethod.POST)
-    @CrossOrigin
+    
     public ResponseObject selectGoods(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
@@ -850,4 +852,23 @@ public class BackendGoodsController extends BaseController {
 
         return getSuccessResult(result);
     }
+
+    /**
+     * 获取当前店铺所有商品相关数据
+     * @return 结果
+     */
+    @ApiOperation(value = "获取当前店铺所有商品相关数据")
+    @RequestMapping(value = "/selectAllGoods", method = RequestMethod.GET)
+    
+    public ResponseObject selectAllGoods(){
+        AccountInfo accountInfo = AuthUserUtil.get();
+        if (accountInfo == null) {
+            return getFailureResult(401, I18nUtil.getMessage("notAuthenticated"));
+        }
+        if (accountInfo.getStoreId()==null || accountInfo.getStoreId()<=0){
+            return getFailureResult(401, I18nUtil.getMessage("accountUnauthorized"));
+        }
+        AllGoodsDto allGoodsDto = goodsService.selectAllGoods();
+        return getSuccessResult(allGoodsDto);
+    }
 }

+ 13 - 9
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendHomeController.java

@@ -56,7 +56,7 @@ public class BackendHomeController extends BaseController {
      */
     @ApiOperation(value = "首页统计数据")
     @RequestMapping(value = "/index", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject index(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
 
@@ -114,7 +114,7 @@ public class BackendHomeController extends BaseController {
      */
     @ApiOperation(value = "首页图表统计数据")
     @RequestMapping(value = "/statistic", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject statistic(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String tag = request.getParameter("tag") == null ? "order,user_active" : request.getParameter("tag");
@@ -171,7 +171,7 @@ public class BackendHomeController extends BaseController {
      */
     @ApiOperation(value = "获取收款结果")
     @RequestMapping(value = "/cashierResult", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject cashierResult(HttpServletRequest request) throws BusinessCheckException {
         Long orderId = request.getParameter("orderId") == null ? 0 : Long.parseLong(request.getParameter("orderId"));
 
@@ -184,12 +184,16 @@ public class BackendHomeController extends BaseController {
     }
 
 
-    @GetMapping("/yearly")
-    public ResponseObject getYearlyRevenue(
-            @RequestParam Integer startYear,
-            @RequestParam Integer endYear
-    ) {
-        EchartsBarResponse data = orderService.getYearlyRevenue(startYear, endYear);
+    /**
+     *
+     * @param startTime 开始日期
+     * @param endTime 结束日期
+     * @return 结果
+     */
+    @GetMapping("/revenue/statistics")
+    public ResponseObject revenueStatistics(@RequestParam("startTime") String startTime,
+                                           @RequestParam("endTime") String endTime) {
+        RevenueStatisticsDto data = orderService.revenueStatistics(startTime, endTime);
         return getSuccessResult(data);
     }
 }

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendIngredientController.java

@@ -50,7 +50,7 @@ public class BackendIngredientController extends BaseController {
      */
     @ApiOperation(value = "菜品配料表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('ingredient:list')")
     public ResponseObject list(HttpServletRequest request, IngredientDto ingredientDto) throws BusinessCheckException {
 
@@ -66,7 +66,7 @@ public class BackendIngredientController extends BaseController {
      */
     @ApiOperation(value = "更新菜品配料表状态")
     @RequestMapping(value = "/updateIngredient", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('ingredient:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody IngredientDto ingredientDto) throws BusinessCheckException {
 
@@ -82,7 +82,7 @@ public class BackendIngredientController extends BaseController {
      */
     @ApiOperation(value = "删除菜品配料表状态")
     @RequestMapping(value = "/deleteIngredientById/{id}", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('ingredient:edit')")
     public ResponseObject deleteIngredientById(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
 
@@ -99,7 +99,7 @@ public class BackendIngredientController extends BaseController {
      */
     @ApiOperation(value = "为菜品添加配料")
     @RequestMapping(value = "/addIngredientForGoods", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('ingredient:add')")
     public ResponseObject addIngredientForGoods(HttpServletRequest request, @RequestBody List<IngredientDto > ingredientDtoList) throws BusinessCheckException {
 
@@ -116,7 +116,7 @@ public class BackendIngredientController extends BaseController {
      */
     @ApiOperation(value = "获取菜品配料表详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('ingredient:list')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
 

+ 12 - 1
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendLoginController.java

@@ -13,6 +13,7 @@ import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
+import com.fuint.module.backendApi.request.CashRegisterLoginRequest;
 import com.fuint.module.backendApi.request.LoginRequest;
 import com.fuint.module.backendApi.response.LoginResponse;
 import com.fuint.repository.model.*;
@@ -67,6 +68,16 @@ public class BackendLoginController extends BaseController {
         LoginResponse response = accountService.doLogin(loginRequest, userAgent);
         return getSuccessResult(response);
     }
+    /**
+     * 收银台登录
+     * */
+    @ApiOperation(value = "收银台登录")
+    @RequestMapping(value="/cashRegisterDoLogin", method = RequestMethod.POST)
+    public ResponseObject cashRegisterDoLogin(HttpServletRequest request, @RequestBody CashRegisterLoginRequest loginRequest) throws BusinessCheckException {
+        String userAgent = request.getHeader("user-agent");
+        LoginResponse response = accountService.cashRegisterDoLogin(loginRequest, userAgent);
+        return getSuccessResult(response);
+    }
 
     /**
      * 获取登录信息接口
@@ -133,7 +144,7 @@ public class BackendLoginController extends BaseController {
      */
     @ApiOperation(value = "获取登录路由菜单接口")
     @RequestMapping(value = "/getRouters", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject getRouters(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);

+ 48 - 23
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMaterialController.java

@@ -4,16 +4,16 @@ import com.alipay.api.internal.util.StringUtils;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.MaterialDto;
 import com.fuint.common.dto.MaterialSearchDto;
+import com.fuint.common.service.MaterialService;
 import com.fuint.common.util.AuthUserUtil;
 import com.fuint.common.util.I18nUtil;
 import com.fuint.common.util.TokenUtil;
 import com.fuint.common.vo.MaterialVo;
 import com.fuint.framework.FrameworkConstants;
+import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.PageResult;
 import com.fuint.framework.web.ResponseObject;
-import com.fuint.common.service.MaterialService;
-import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.repository.model.MtMaterial;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -21,8 +21,8 @@ import lombok.AllArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -49,14 +49,13 @@ public class BackendMaterialController extends BaseController {
     /**
      * 材料表列表查询
      *
-     * @param  request HttpServletRequest对象
      * @return 材料表列表
      */
     @ApiOperation(value = "材料表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material:list')")
-    public  ResponseObject list(HttpServletRequest request, MaterialSearchDto materialSearchDto) throws BusinessCheckException {
+    public  ResponseObject list(MaterialSearchDto materialSearchDto) throws BusinessCheckException {
 
         AccountInfo accountInfo = AuthUserUtil.get();
         if (accountInfo == null) {
@@ -73,15 +72,15 @@ public class BackendMaterialController extends BaseController {
     }
 
     /**
-     * 更新材料表状态
+     * 更新材料
      *
      * @return 结果
      */
-    @ApiOperation(value = "更新材料表状态")
-    @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
-    @PreAuthorize("@pms.hasPermission('material:edit')")
-    public ResponseObject updateStatus(@RequestBody MaterialDto materialDto) throws BusinessCheckException {
+    @ApiOperation(value = "更新材料")
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    
+    @PreAuthorize("@pms.hasPermission('material:list:edit')")
+    public ResponseObject update(@RequestBody MaterialDto materialDto) throws BusinessCheckException {
 
         AccountInfo accountInfo = AuthUserUtil.get();
         if (accountInfo == null) {
@@ -93,8 +92,34 @@ public class BackendMaterialController extends BaseController {
         if (rawMaterial == null) {
             return getFailureResult(201,I18nUtil.getMessage("dataNonExistent"));
         }
-        mtMaterial.setUpdateTime(new Date());
-        mtMaterial.setUpdateUserId(String.valueOf(accountInfo.getId()));
+        materialService.updateMaterial(mtMaterial);
+
+        return getSuccessResult(true);
+    }
+
+    /**
+     * 更新材料表状态
+     *
+     * @return 结果
+     */
+    @ApiOperation(value = "更新材料状态")
+    @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
+    
+    @PreAuthorize("@pms.hasPermission('material:list:edit')")
+    public ResponseObject updateStatus(@RequestBody MaterialDto materialDto) throws BusinessCheckException {
+
+        AccountInfo accountInfo = AuthUserUtil.get();
+        if (accountInfo == null) {
+            return getFailureResult(1001, I18nUtil.getMessage("notAuthenticated"));
+        }
+
+        MtMaterial rawMaterial = materialService.queryMaterialById(materialDto.getId());
+        if (rawMaterial == null) {
+            return getFailureResult(201,I18nUtil.getMessage("dataNonExistent"));
+        }
+        MtMaterial mtMaterial = new MtMaterial();
+        mtMaterial.setId(materialDto.getId());
+        mtMaterial.setStatus(materialDto.getStatus());
         materialService.updateMaterial(mtMaterial);
 
         return getSuccessResult(true);
@@ -107,7 +132,7 @@ public class BackendMaterialController extends BaseController {
      */
     @ApiOperation(value = "保存材料表")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material:list:add')")
     public ResponseObject saveHandler(@RequestBody MaterialDto materialDto) throws BusinessCheckException {
 
@@ -115,6 +140,9 @@ public class BackendMaterialController extends BaseController {
         if (accountInfo == null) {
             return getFailureResult(1001, I18nUtil.getMessage("notAuthenticated"));
         }
+        if (accountInfo.getStoreId() == null || accountInfo.getStoreId()<=0) {
+            return getFailureResult(1001, I18nUtil.getMessage("superAdminNotAllowedUseMerchantAccount"));
+        }
         Long storeId;
         if(StringUtils.isEmpty(materialDto.getStoreId())){
             storeId = AuthUserUtil.get().getStoreId();
@@ -125,12 +153,9 @@ public class BackendMaterialController extends BaseController {
         MtMaterial mtMaterial = new MtMaterial();
         BeanUtils.copyProperties(materialDto,mtMaterial);
         if (!Objects.isNull(mtMaterial.getId())) {
-            mtMaterial.setUpdateTime(new Date());
             materialService.updateMaterial(mtMaterial);
         } else {
-            mtMaterial.setStoreId(Long.valueOf(storeId));
-            mtMaterial.setCreateUserId(String.valueOf(accountInfo.getId()));
-            mtMaterial.setUpdateUserId(String.valueOf(accountInfo.getId()));
+            mtMaterial.setStoreId(storeId);
             materialService.addMaterial(mtMaterial);
         }
         return getSuccessResult(true);
@@ -144,16 +169,16 @@ public class BackendMaterialController extends BaseController {
      */
     @ApiOperation(value = "获取材料表详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material:list')")
-    public ResponseObject info(HttpServletRequest request, @PathVariable("id") String id) throws BusinessCheckException {
+    public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
         if (accountInfo == null) {
             return getFailureResult(1001, I18nUtil.getMessage("notAuthenticated"));
         }
 
-        MtMaterial materialInfo = materialService.queryMaterialById(Long.valueOf(id));
+        MtMaterial materialInfo = materialService.queryMaterialById(id);
 
         Map<String, Object> result = new HashMap<>();
         result.put("materialInfo", materialInfo);
@@ -163,7 +188,7 @@ public class BackendMaterialController extends BaseController {
 
     @ApiOperation(value = "删除材料数据")
     @DeleteMapping(value = "/delete/{id}")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material:list:delete')")
     public ResponseObject deleteById(@PathVariable("id") String id) throws BusinessCheckException {
         AccountInfo accountInfo = AuthUserUtil.get();

+ 19 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMaterialTypeController.java

@@ -3,6 +3,7 @@ package com.fuint.module.backendApi.controller;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.MaterialTypeDto;
 import com.fuint.common.dto.MaterialTypeSearchDto;
+import com.fuint.common.dto.ext.SelectDto;
 import com.fuint.common.service.MaterialTypeService;
 import com.fuint.common.util.AuthUserUtil;
 import com.fuint.common.util.I18nUtil;
@@ -19,6 +20,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 材料类型表管理类controller
  *
@@ -43,7 +46,7 @@ public class BackendMaterialTypeController extends BaseController {
      */
     @ApiOperation(value = "材料类型表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material:type:list')")
     public PageResult<MaterialTypeVo> list(MaterialTypeSearchDto materialTypeSearchDto) throws BusinessCheckException {
 
@@ -62,7 +65,7 @@ public class BackendMaterialTypeController extends BaseController {
      */
     @ApiOperation(value = "更新材料类型表状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material_type:edit')")
     public ResponseObject updateStatus(@RequestBody MaterialTypeDto mtMaterialTypeDto) throws BusinessCheckException {
         AccountInfo accountInfo = AuthUserUtil.get();
@@ -91,7 +94,7 @@ public class BackendMaterialTypeController extends BaseController {
      */
     @ApiOperation(value = "保存材料类型表")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material:type:add')")
     public ResponseObject saveHandler(@RequestBody MaterialTypeDto mtMaterialTypeDto) throws BusinessCheckException {
 
@@ -111,7 +114,7 @@ public class BackendMaterialTypeController extends BaseController {
      */
     @ApiOperation(value = "删除材料类型数据")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('material_type:delete')")
     public ResponseObject deleteHandler(@PathVariable Long id) throws BusinessCheckException {
 
@@ -122,4 +125,16 @@ public class BackendMaterialTypeController extends BaseController {
         return materialTypeService.deleteHandler(id);
     }
 
+    /**
+     * 获取材料分类全部数据
+     * @return 结果
+     */
+    @GetMapping("/getAllMaterialType")
+    
+    @PreAuthorize("@pms.hasPermission('material:type:list')")
+    public ResponseObject getAllMaterialType(){
+        List<SelectDto> mtMaterialTypes = materialTypeService.getAllMaterialType();
+        return getSuccessResult(mtMaterialTypes);
+    }
+
 }

+ 10 - 10
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java

@@ -80,7 +80,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "查询会员列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -195,7 +195,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "更新会员状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -226,7 +226,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "删除会员")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:index')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -248,7 +248,7 @@ public class BackendMemberController extends BaseController {
      * @return
      */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:add')")
     public ResponseObject save(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
@@ -330,7 +330,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "获取会员详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -382,7 +382,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "获取会员设置")
     @RequestMapping(value = "/setting", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:setting')")
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -434,7 +434,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "保存会员设置")
     @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:setting')")
     public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -505,7 +505,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "重置会员密码")
     @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:add')")
     public ResponseObject resetPwd(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -546,7 +546,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "获取会员分组")
     @RequestMapping(value = "/groupList", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:group:index')")
     public ResponseObject groupList(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -581,7 +581,7 @@ public class BackendMemberController extends BaseController {
      */
     @ApiOperation(value = "查找会员列表")
     @RequestMapping(value = "/searchMembers", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject searchMembers(HttpServletRequest request) {
         String token = request.getHeader("Access-Token");
         String groupIds = request.getParameter("groupIds") != null ? request.getParameter("groupIds") : "";

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberGroupController.java

@@ -56,7 +56,7 @@ public class BackendMemberGroupController extends BaseController {
      */
     @ApiOperation(value = "查询会员分组列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:group:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -110,7 +110,7 @@ public class BackendMemberGroupController extends BaseController {
      */
     @ApiOperation(value = "保存会员分组")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:group:index')")
     public ResponseObject save(HttpServletRequest request, @RequestBody MemberGroupDto memberGroupDto) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -142,7 +142,7 @@ public class BackendMemberGroupController extends BaseController {
      */
     @ApiOperation(value = "删除会员分组")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:group:index')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -172,7 +172,7 @@ public class BackendMemberGroupController extends BaseController {
      */
     @ApiOperation(value = "更新分组状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:group:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -202,7 +202,7 @@ public class BackendMemberGroupController extends BaseController {
      */
     @ApiOperation(value = "获取分组详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('member:group:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMerchantController.java

@@ -58,7 +58,7 @@ public class BackendMerchantController extends BaseController {
      */
     @ApiOperation(value = "分页查询商户列表")
     @GetMapping(value = "/list")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('merchant:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -123,7 +123,7 @@ public class BackendMerchantController extends BaseController {
      * */
     @ApiOperation(value = "查询商户列表")
     @RequestMapping(value = "/searchMerchant",  method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject searchMerchant(HttpServletRequest request) throws BusinessCheckException {
         String merchantId = request.getParameter("id") == null ? "" : request.getParameter("id");
         String name = request.getParameter("name") == null ? "" : request.getParameter("name");
@@ -152,7 +152,7 @@ public class BackendMerchantController extends BaseController {
      */
     @ApiOperation(value = "更新商户状态")
     @RequestMapping(value = "/updateStatus")
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('merchant:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -181,7 +181,7 @@ public class BackendMerchantController extends BaseController {
      */
     @ApiOperation(value = "保存商户信息")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('merchant:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -255,7 +255,7 @@ public class BackendMerchantController extends BaseController {
      */
     @ApiOperation(value = "获取商户详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('merchant:index')")
     public ResponseObject getMerchantInfo(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendOpenGiftController.java

@@ -55,7 +55,7 @@ public class BackendOpenGiftController extends BaseController {
      */
     @ApiOperation(value = "开卡赠礼列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('openGift:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -109,7 +109,7 @@ public class BackendOpenGiftController extends BaseController {
      * */
     @ApiOperation(value = "开卡赠礼详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('openGift:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -142,7 +142,7 @@ public class BackendOpenGiftController extends BaseController {
      */
     @ApiOperation(value = "提交开卡赠礼")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('openGift:add')")
     public ResponseObject handleSave(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -210,7 +210,7 @@ public class BackendOpenGiftController extends BaseController {
      */
     @ApiOperation(value = "更新开卡赠礼")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('openGift:index')")
     public ResponseObject updateStatus(@RequestBody Map<String, Object> param) throws BusinessCheckException {
         Integer id = param.get("id") == null ? 0 : Integer.parseInt(param.get("id").toString());
@@ -237,7 +237,7 @@ public class BackendOpenGiftController extends BaseController {
      */
     @ApiOperation(value = "删除开卡赠礼")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('openGift:index')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 25 - 15
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendOrderController.java

@@ -85,7 +85,7 @@ public class BackendOrderController extends BaseController {
      */
     @ApiOperation(value = "订单列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:index')")
     public ResponseObject list(HttpServletRequest request, @RequestBody OrderListParam orderListParam) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -199,7 +199,7 @@ public class BackendOrderController extends BaseController {
      * */
     @ApiOperation(value = "获取订单详情")
     @RequestMapping(value = "/info/{orderId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:detail')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("orderId") Long orderId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -251,7 +251,7 @@ public class BackendOrderController extends BaseController {
      * */
     @ApiOperation(value = "确认发货")
     @RequestMapping(value = "/delivered", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:delivery')")
     public ResponseObject delivered(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -315,7 +315,7 @@ public class BackendOrderController extends BaseController {
      * */
     @ApiOperation(value = "修改订单")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:edit')")
     public ResponseObject save(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -363,7 +363,7 @@ public class BackendOrderController extends BaseController {
      * */
     @ApiOperation(value = "验证并核销订单")
     @RequestMapping(value = "/verify", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('cashier:confirmOrder')")
     public ResponseObject verify(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -401,7 +401,7 @@ public class BackendOrderController extends BaseController {
      */
     @ApiOperation(value = "最新订单列表查询")
     @RequestMapping(value = "/latest", method = RequestMethod.POST)
-    @CrossOrigin
+    
     public ResponseObject latest(HttpServletRequest request, @RequestBody OrderListParam orderListParam) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
@@ -437,7 +437,7 @@ public class BackendOrderController extends BaseController {
      */
     @ApiOperation(value = "删除订单")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:delete')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -460,7 +460,7 @@ public class BackendOrderController extends BaseController {
      */
     @ApiOperation(value = "订单设置详情")
     @RequestMapping(value = "/setting", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:setting')")
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -500,7 +500,7 @@ public class BackendOrderController extends BaseController {
      */
     @ApiOperation(value = "保存订单设置")
     @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:setting')")
     public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -548,7 +548,7 @@ public class BackendOrderController extends BaseController {
      */
     @ApiOperation(value = "导出订单")
     @RequestMapping(value = "/export", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:index')")
     public void export(HttpServletRequest request, HttpServletResponse response) throws Exception {
         String token = request.getParameter("token");
@@ -556,6 +556,7 @@ public class BackendOrderController extends BaseController {
         String userId = request.getParameter("userId") == null ? "" : request.getParameter("userId");
         String mobile = request.getParameter("mobile") == null ? "" : request.getParameter("mobile");
         String status = request.getParameter("status") == null ? "" : request.getParameter("status");
+        String orderSn = request.getParameter("orderSn") == null ? "" : request.getParameter("orderSn");
         String payStatus = request.getParameter("payStatus") == null ? "" : request.getParameter("payStatus");
         String startTime = request.getParameter("startTime") == null ? "" : request.getParameter("startTime");
         String endTime = request.getParameter("endTime") == null ? "" : request.getParameter("endTime");
@@ -575,6 +576,9 @@ public class BackendOrderController extends BaseController {
         if (StringUtil.isNotEmpty(storeId)) {
             params.setStoreId(Long.valueOf(storeId));
         }
+        if (StringUtil.isNotEmpty(orderSn)){
+            params.setOrderSn(orderSn);
+        }
         if (StringUtil.isNotEmpty(userId)) {
             params.setUserId(Long.valueOf(userId));
         }
@@ -597,7 +601,7 @@ public class BackendOrderController extends BaseController {
         PaginationResponse<UserOrderDto> result = orderService.getUserOrderList(params);
 
         // excel标题
-        String[] title = { "订单号", "会员名称", "订单类型", "所属门店", "总金额", "支付状态", "订单状态" };
+        String[] title = { "订单号", "会员名称", "订单类型","下单金额", "桌码", "所属门店", "订单金额","支付金额","服务费", "订单状态" ,"下单时间","更新时间"};
 
         // excel文件名
         String fileName = "订单列表"+ DateUtil.formatDate(new Date(), "yyyy.MM.dd_HHmm") +".xls";
@@ -627,10 +631,16 @@ public class BackendOrderController extends BaseController {
                 content[i][0] = objectConvertToString(orderDto.getOrderSn());
                 content[i][1] = objectConvertToString(userName);
                 content[i][2] = objectConvertToString(orderDto.getTypeName());
-                content[i][3] = objectConvertToString(storeName);
-                content[i][4] = objectConvertToString(orderDto.getAmount());
-                content[i][5] = objectConvertToString(orderDto.getPayStatus());
-                content[i][6] = objectConvertToString(orderDto.getStatusText());
+                content[i][3] = objectConvertToString(orderDto.getAmount());
+                content[i][4] = objectConvertToString(orderDto.getNewTableInfo()!=null?orderDto.getNewTableInfo().getTableNumber():"--");
+                content[i][5] = objectConvertToString(storeName);
+                content[i][6] = objectConvertToString(orderDto.getAmount());
+                content[i][7] = objectConvertToString(orderDto.getPayAmount());
+                content[i][8] = objectConvertToString(orderDto.getServiceFee()!=null?orderDto.getServiceFee():"0");
+//                content[i][5] = objectConvertToString(orderDto.getPayStatus());
+                content[i][9] = objectConvertToString(orderDto.getStatusText());
+                content[i][10] = objectConvertToString(orderDto.getCreateTime());
+                content[i][11] = objectConvertToString(orderDto.getUpdateTime());
             }
         }
 

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPointController.java

@@ -69,7 +69,7 @@ public class BackendPointController extends BaseController {
      */
     @ApiOperation(value = "积分明细列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('point:list')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -130,7 +130,7 @@ public class BackendPointController extends BaseController {
      */
     @ApiOperation(value = "积分设置详情")
     @RequestMapping(value = "/setting", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('point:setting')")
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -177,7 +177,7 @@ public class BackendPointController extends BaseController {
      */
     @ApiOperation(value = "提交积分设置")
     @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('point:setting')")
     public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -237,7 +237,7 @@ public class BackendPointController extends BaseController {
      */
     @ApiOperation(value = "提交积分充值")
     @RequestMapping(value = "/doRecharge", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('point:modify')")
     public ResponseObject doRecharge(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 7 - 7
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPrinterController.java

@@ -70,7 +70,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "打印机列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('printer:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -139,7 +139,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "更新打印机状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('printer:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -172,7 +172,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "保存打印机")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('printer:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -220,7 +220,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "获取打印机详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('printer:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -245,7 +245,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "获取打印设置")
     @RequestMapping(value = "/setting", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('printer:setting')")
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -287,7 +287,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "保存打印设置")
     @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('printer:setting')")
     public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -331,7 +331,7 @@ public class BackendPrinterController extends BaseController {
      */
     @ApiOperation(value = "打印订单")
     @RequestMapping(value = "/doPrint/{orderId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('order:index')")
     public ResponseObject doPrint(HttpServletRequest request, @PathVariable("orderId") Long orderId) throws Exception {
         String token = request.getHeader("Access-Token");

+ 15 - 16
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderController.java

@@ -1,6 +1,7 @@
 package com.fuint.module.backendApi.controller;
 
 import com.fuint.common.dto.MtPurchaseOrderDto;
+import com.fuint.common.dto.ext.PurchaseOrderSearchDto;
 import com.fuint.common.vo.MtPurchaseOrderVo;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.PageResult;
@@ -39,11 +40,11 @@ public class BackendPurchaseOrderController extends BaseController {
      */
     @ApiOperation(value = "采购订单表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
-    @PreAuthorize("@pms.hasPermission('purchase_order:list')")
-    public ResponseObject list(HttpServletRequest request, @RequestParam MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
+    
+    @PreAuthorize("@pms.hasPermission('material:order:index')")
+    public ResponseObject list(HttpServletRequest request, PurchaseOrderSearchDto purchaseOrderSearchDto) throws BusinessCheckException {
 
-        PageResult<MtPurchaseOrderVo> pageVoList = purchaseOrderService.queryOrderPageList(mtPurchaseOrderDto);
+        PageResult<MtPurchaseOrderVo> pageVoList = purchaseOrderService.queryOrderPageList(purchaseOrderSearchDto);
 
         return getSuccessResult(pageVoList);
     }
@@ -55,7 +56,7 @@ public class BackendPurchaseOrderController extends BaseController {
      */
     @ApiOperation(value = "更新采购订单表状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('purchase_order:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
         purchaseOrderService.updatePurchaseOrderByOrderNo(mtPurchaseOrderDto);
@@ -70,8 +71,8 @@ public class BackendPurchaseOrderController extends BaseController {
      */
     @ApiOperation(value = "保存采购订单表")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
-    @PreAuthorize("@pms.hasPermission('purchase_order:add')")
+    
+    @PreAuthorize("@pms.hasPermission('purchase:order:add')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
         purchaseOrderService.savePurcahseOrder(mtPurchaseOrderDto);
         return getSuccessResult(true);
@@ -85,22 +86,20 @@ public class BackendPurchaseOrderController extends BaseController {
      */
     @ApiOperation(value = "获取采购订单表详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
-    @PreAuthorize("@pms.hasPermission('purchase_order:list')")
+    
+    @PreAuthorize("@pms.hasPermission('material:order:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
-
         MtPurchaseOrderVo vo = purchaseOrderService.queryPurchaseOrderById(id);
 
         return getSuccessResult(vo);
     }
 
     @ApiOperation(value = "删除采购订单表")
-    @RequestMapping(value = "/delete/{orderNo}", method = RequestMethod.GET)
-    @CrossOrigin
-    @PreAuthorize("@pms.hasPermission('purchase_order:delete')")
-    public ResponseObject delete(HttpServletRequest request, @PathVariable("orderNo") Long orderNo) throws BusinessCheckException {
-
-        purchaseOrderService.deletePurchaseOrderByOrderNo(orderNo);
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    
+    @PreAuthorize("@pms.hasPermission('purchase:order:delete')")
+    public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
+        purchaseOrderService.deletePurchaseOrderByOrderNo(id);
 
         return getSuccessResult(true);
     }

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderItemController.java

@@ -39,7 +39,7 @@ public class BackendPurchaseOrderItemController extends BaseController {
      */
     @ApiOperation(value = "材料采购订单项表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('purchase_order_item:list')")
     public ResponseObject list(HttpServletRequest request, @RequestParam MtPurchaseOrderItemDto mtPurchaseOrderItemDto) throws BusinessCheckException {
 
@@ -55,7 +55,7 @@ public class BackendPurchaseOrderItemController extends BaseController {
      */
     @ApiOperation(value = "更新材料采购订单项表")
     @RequestMapping(value = "/updateOrderItem", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('purchase_order_item:edit')")
     public ResponseObject updateOrderItem(HttpServletRequest request, @RequestBody MtPurchaseOrderItemDto mtPurchaseOrderItemDto) throws BusinessCheckException {
 
@@ -71,7 +71,7 @@ public class BackendPurchaseOrderItemController extends BaseController {
      */
     @ApiOperation(value = "删除材料采购订单项")
     @RequestMapping(value = "/deleteOrderItemById/{id}", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('purchase_order_item:delete')")
     public ResponseObject deleteOrderItemById(HttpServletRequest request,@PathVariable("id") Long id) throws BusinessCheckException {
 
@@ -87,7 +87,7 @@ public class BackendPurchaseOrderItemController extends BaseController {
      */
     @ApiOperation(value = "添加材料采购订单项表")
     @RequestMapping(value = "/addOrderItem", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('purchase_order_item:add')")
     public ResponseObject addOrderItem(HttpServletRequest request, @RequestBody MtPurchaseOrderItemDto mtPurchaseOrderItemDto) throws BusinessCheckException {
 

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendRefundController.java

@@ -69,7 +69,7 @@ public class BackendRefundController extends BaseController {
      */
     @ApiOperation(value = "退款列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('refund:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -169,7 +169,7 @@ public class BackendRefundController extends BaseController {
      * */
     @ApiOperation(value = "查询退款详情")
     @RequestMapping(value = "/info/{refundId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('refund:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("refundId") Integer refundId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -197,7 +197,7 @@ public class BackendRefundController extends BaseController {
      */
     @ApiOperation(value = "保存售后订单")
     @RequestMapping(value = "save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('refund:edit')")
     public ResponseObject save(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -239,7 +239,7 @@ public class BackendRefundController extends BaseController {
      */
     @ApiOperation(value = "发起退款")
     @RequestMapping(value = "doRefund", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('refund:edit')")
     public ResponseObject doRefund(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 2 - 2
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSendLogController.java

@@ -60,7 +60,7 @@ public class BackendSendLogController extends BaseController {
      */
     @ApiOperation(value = "查询发券记录列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String status = request.getParameter("status") == null ? "" : request.getParameter("status");
@@ -127,7 +127,7 @@ public class BackendSendLogController extends BaseController {
      */
     @ApiOperation(value = "废除用户卡券")
     @RequestMapping(value = "/removeUserCoupon/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject removeUserCoupon(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSettlementController.java

@@ -65,7 +65,7 @@ public class BackendSettlementController extends BaseController {
      */
     @ApiOperation(value = "结算列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('settlement:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -142,7 +142,7 @@ public class BackendSettlementController extends BaseController {
      * */
     @ApiOperation(value = "获取结算单详情")
     @RequestMapping(value = "/info", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('settlement:index')")
     public ResponseObject info(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -181,7 +181,7 @@ public class BackendSettlementController extends BaseController {
      */
     @ApiOperation(value = "提交结算")
     @RequestMapping(value = "/doSubmit", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('settlement:doSubmit')")
     public ResponseObject doSubmit(HttpServletRequest request, @RequestBody SettlementRequest requestParam) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -206,7 +206,7 @@ public class BackendSettlementController extends BaseController {
      */
     @ApiOperation(value = "确认结算")
     @RequestMapping(value = "/doConfirm", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('settlement:doConfirm')")
     public ResponseObject doConfirm(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 3 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSmsController.java

@@ -59,7 +59,7 @@ public class BackendSmsController extends BaseController {
      */
     @ApiOperation(value = "查询已发短信列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         Integer page = request.getParameter("page") == null ? Constants.PAGE_NUMBER : Integer.parseInt(request.getParameter("page"));
@@ -101,7 +101,7 @@ public class BackendSmsController extends BaseController {
      */
     @ApiOperation(value = "获取短信设置")
     @RequestMapping(value = "/setting", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('smsTemplate:edit')")
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -147,7 +147,7 @@ public class BackendSmsController extends BaseController {
      */
     @ApiOperation(value = "保存短信设置")
     @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('smsTemplate:edit')")
     public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSmsTemplateController.java

@@ -49,7 +49,7 @@ public class BackendSmsTemplateController extends BaseController {
      */
     @ApiOperation(value = "查询短信模板列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('smsTemplate:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -93,7 +93,7 @@ public class BackendSmsTemplateController extends BaseController {
      */
     @ApiOperation(value = "保存短信模板")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('smsTemplate:edit')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody SmsTemplateDto smsTemplateDto) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -114,7 +114,7 @@ public class BackendSmsTemplateController extends BaseController {
      */
     @ApiOperation(value = "模板详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('smsTemplate:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -139,7 +139,7 @@ public class BackendSmsTemplateController extends BaseController {
      */
     @ApiOperation(value = "删除短信模板")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('smsTemplate:edit')")
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 6 - 6
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStaffController.java

@@ -52,7 +52,7 @@ public class BackendStaffController extends BaseController {
      */
     @ApiOperation(value = "获取员工列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('staff:list')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -121,7 +121,7 @@ public class BackendStaffController extends BaseController {
      */
     @ApiOperation(value = "更新员工状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('staff:edit')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -145,7 +145,7 @@ public class BackendStaffController extends BaseController {
      */
     @ApiOperation(value = "保存员工信息")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('staff:add')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -216,7 +216,7 @@ public class BackendStaffController extends BaseController {
      */
     @ApiOperation(value = "查询员工详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('staff:list')")
     public ResponseObject getStaffInfo(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -248,7 +248,7 @@ public class BackendStaffController extends BaseController {
      */
     @ApiOperation(value = "店铺员工列表")
     @RequestMapping(value = "/storeStaffList/{storeId}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject storeStaffList(HttpServletRequest request, @PathVariable("storeId") Long storeId) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
 
@@ -282,7 +282,7 @@ public class BackendStaffController extends BaseController {
      */
     @ApiOperation(value = "删除员工")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('staff:list')")
     public ResponseObject deleteStaff(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 51 - 6
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStatisticController.java

@@ -1,26 +1,34 @@
 package com.fuint.module.backendApi.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.GoodsTopDto;
 import com.fuint.common.dto.MemberTopDto;
+import com.fuint.common.dto.Page;
+import com.fuint.common.dto.ext.TransactionsDto;
 import com.fuint.common.service.GoodsService;
 import com.fuint.common.service.MemberService;
 import com.fuint.common.service.OrderService;
+import com.fuint.common.service.RefundService;
 import com.fuint.common.util.DateUtil;
 import com.fuint.common.util.I18nUtil;
 import com.fuint.common.util.TokenUtil;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
+import com.fuint.repository.model.MtOrder;
+import com.fuint.repository.model.MtRefund;
 import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
+
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 数据统计控制器
@@ -49,6 +57,9 @@ public class BackendStatisticController extends BaseController {
      * */
     private GoodsService goodsService;
 
+
+    private RefundService refundService;
+
     /**
      * 数据概况
      *
@@ -56,7 +67,7 @@ public class BackendStatisticController extends BaseController {
      */
     @ApiOperation(value = "数据概况")
     @RequestMapping(value = "/main", method = RequestMethod.POST)
-    @CrossOrigin
+    
     public ResponseObject main(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
         String startTimeStr = param.get("startTime") == null ? "" : param.get("startTime").toString();
@@ -85,15 +96,30 @@ public class BackendStatisticController extends BaseController {
 
         // 交易金额
         BigDecimal payAmount = orderService.getPayMoney(merchantId, storeId, startTime, endTime);
+
+        //获取支付后退款的订单
+        List<MtOrder> refundOrder = orderService.refundOrder(merchantId, storeId, startTime, endTime);
+        Set<Long> refundOrderIds = refundOrder.stream().map(MtOrder::getId).collect(Collectors.toSet());
+        BigDecimal totalRefundAmount;
+        if (!refundOrderIds.isEmpty()){
+            totalRefundAmount = refundService.list(new LambdaQueryWrapper<MtRefund>()
+                            .in(MtRefund::getOrderId, refundOrderIds)).stream()
+                    .map(MtRefund::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            payAmount = payAmount.subtract(totalRefundAmount);
+        }else{
+            totalRefundAmount = new BigDecimal("0");
+        }
+
         // 总交易金额
-        BigDecimal totalPayAmount = orderService.getPayMoney(merchantId, storeId);
+        BigDecimal totalPayAmount = orderService.getPayMoney(merchantId, storeId, startTime, endTime);
 
         // 活跃会员数
-        Long activeUserCount = memberService.getActiveUserCount(merchantId, storeId, startTime, endTime);
+//        Long activeUserCount = memberService.getActiveUserCount(merchantId, storeId, startTime, endTime);
 
         // 总支付人数
         Integer totalPayUserCount = orderService.getPayUserCount(merchantId, storeId);
 
+
         Map<String, Object> result = new HashMap<>();
 
         result.put("userCount", userCount);
@@ -102,20 +128,39 @@ public class BackendStatisticController extends BaseController {
         result.put("totalOrderCount", totalOrderCount);
         result.put("payAmount", payAmount);
         result.put("totalPayAmount", totalPayAmount);
-        result.put("activeUserCount", activeUserCount);
+        result.put("totalRefundAmount", totalRefundAmount);
+//        result.put("activeUserCount", activeUserCount);
         result.put("totalPayUserCount", totalPayUserCount);
 
         return getSuccessResult(result);
     }
 
     /**
+     * 获取交易列表
+     *
+     * @param page      分页参数
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return 结果
+     */
+    @ApiOperation(value = "获取交易列表")
+    @RequestMapping(value = "/getTransactionsList", method = RequestMethod.GET)
+    
+    public ResponseObject getTransactionsList(Page page,
+                                              @RequestParam("startTime") String startTime,
+                                              @RequestParam("endTime") String endTime){
+        List<TransactionsDto> transactionsBeanList = orderService.getTransactionsList(page,startTime,endTime);
+        return getSuccessResult(transactionsBeanList);
+    }
+
+    /**
      * 排行榜数据
      *
      * @return
      */
     @ApiOperation(value = "排行榜数据")
     @RequestMapping(value = "/top", method = RequestMethod.POST)
-    @CrossOrigin
+    
     public ResponseObject top(HttpServletRequest request, @RequestBody Map<String, Object> param) throws ParseException {
         String token = request.getHeader("Access-Token");
         String startTimeStr = param.get("startTime") == null ? "" : param.get("startTime").toString();
@@ -150,7 +195,7 @@ public class BackendStatisticController extends BaseController {
      */
     @ApiOperation(value = "获取会员数量")
     @RequestMapping(value = "/totalMember", method = RequestMethod.GET)
-    @CrossOrigin
+    
     public ResponseObject totalMember(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStockController.java

@@ -70,7 +70,7 @@ public class BackendStockController extends BaseController {
      */
     @ApiOperation(value = "获取库存管理记录列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('stock:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -142,7 +142,7 @@ public class BackendStockController extends BaseController {
      */
     @ApiOperation(value = "删除库存管理记录状态")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('stock:index')")
     public ResponseObject delete(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -155,7 +155,7 @@ public class BackendStockController extends BaseController {
 
         MtStock mtStock = stockService.queryStockById(id.longValue());
         if (mtStock == null) {
-            return getFailureResult(201, "该数据不存在");
+            return getFailureResult(201, I18nUtil.getMessage("dataNonExistent"));
         }
 
         String operator = accountInfo.getAccountName();
@@ -172,7 +172,7 @@ public class BackendStockController extends BaseController {
      */
     @ApiOperation(value = "保存库存管理记录")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('stock:index')")
     public ResponseObject save(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -213,7 +213,7 @@ public class BackendStockController extends BaseController {
      */
     @ApiOperation(value = "获取库存管理记录详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('stock:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

+ 5 - 5
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStoreController.java

@@ -66,7 +66,7 @@ public class BackendStoreController extends BaseController {
 	 */
 	@ApiOperation(value = "获取店铺列表")
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
-	@CrossOrigin
+	
 	@PreAuthorize("@pms.hasPermission('store:list')")
 	public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
 		String token = request.getHeader("Access-Token");
@@ -125,7 +125,7 @@ public class BackendStoreController extends BaseController {
 	 */
 	@ApiOperation(value = "搜索店铺")
 	@RequestMapping(value = "/searchStore", method = RequestMethod.GET)
-	@CrossOrigin
+	
 	public ResponseObject search(HttpServletRequest request) throws BusinessCheckException {
 		String token = request.getHeader("Access-Token");
 		String merchantId = request.getParameter("merchantId") == null ? "" : request.getParameter("merchantId");
@@ -171,7 +171,7 @@ public class BackendStoreController extends BaseController {
 	 */
 	@ApiOperation(value = "更新店铺状态")
 	@RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-	@CrossOrigin
+	
 	@PreAuthorize("@pms.hasPermission('store:add')")
 	public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
 		String token = request.getHeader("Access-Token");
@@ -197,7 +197,7 @@ public class BackendStoreController extends BaseController {
 	 */
 	@ApiOperation(value = "保存店铺")
 	@RequestMapping(value = "/save", method = RequestMethod.POST)
-	@CrossOrigin
+	
 	@PreAuthorize("@pms.hasPermission('store:add')")
 	public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
 		String token = request.getHeader("Access-Token");
@@ -325,7 +325,7 @@ public class BackendStoreController extends BaseController {
 	 */
 	@ApiOperation(value = "获取店铺详情")
 	@RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-	@CrossOrigin
+	
 	@PreAuthorize("@pms.hasPermission('store:list')")
 	public ResponseObject getStoreInfo(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
 		String token = request.getHeader("Access-Token");

+ 3 - 3
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendSubMessageController.java

@@ -56,7 +56,7 @@ public class BackendSubMessageController extends BaseController {
      */
     @ApiOperation(value = "订阅消息模板列表")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('subMessage:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -124,7 +124,7 @@ public class BackendSubMessageController extends BaseController {
      */
     @ApiOperation(value = "订阅消息模板详情")
     @RequestMapping(value = "/info/{key}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('subMessage:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("key") String key) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -204,7 +204,7 @@ public class BackendSubMessageController extends BaseController {
      */
     @ApiOperation(value = "保存订阅消息模板")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('subMessage:edit')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> param) {
         String token = request.getHeader("Access-Token");

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendTableCategoryController.java

@@ -41,7 +41,7 @@ public class BackendTableCategoryController extends BaseController {
      */
     @ApiOperation(value = "餐桌分类表列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('tableCategory:list')")
     public  PageResult<TableCategoryBean> list(@RequestParam(value = "categoryName",defaultValue = "") String categoryName, PageParam pageParam) throws BusinessCheckException, ExecutionException, InterruptedException {
        return  tableCategoryService.selectTableCategoryList(categoryName,pageParam);
@@ -54,7 +54,7 @@ public class BackendTableCategoryController extends BaseController {
      */
     @ApiOperation(value = "更新餐桌分类")
     @RequestMapping(value = "/update", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('tableCategory:edit')")
     public ResponseObject updateStatus(@RequestBody TableCategoryDto tableCategoryDto) throws BusinessCheckException {
         tableCategoryService.updateStatus(tableCategoryDto);
@@ -69,7 +69,7 @@ public class BackendTableCategoryController extends BaseController {
      */
     @ApiOperation(value = "新增餐桌分类表")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('tableCategory:add')")
     public ResponseObject saveHandler(@RequestBody TableCategoryDto tableCategoryDto) throws BusinessCheckException {
         tableCategoryService.saveHandler(tableCategoryDto);
@@ -85,7 +85,7 @@ public class BackendTableCategoryController extends BaseController {
      */
     @ApiOperation(value = "根据id删除餐桌分类")
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('tableCategory:delete')")
     public ResponseObject deleteHandler(@PathVariable("id") Long id) throws BusinessCheckException {
         tableCategoryService.deleteHandler(id);

+ 4 - 4
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendTableController.java

@@ -62,7 +62,7 @@ public class BackendTableController extends BaseController {
      */
     @ApiOperation(value = "桌码列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('table:index')")
     public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -130,7 +130,7 @@ public class BackendTableController extends BaseController {
      */
     @ApiOperation(value = "更新桌码状态")
     @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('table:index')")
     public ResponseObject updateStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -163,7 +163,7 @@ public class BackendTableController extends BaseController {
      */
     @ApiOperation(value = "保存桌码")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('table:index')")
     public ResponseObject saveHandler(HttpServletRequest request, @RequestBody Map<String, Object> params) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
@@ -213,7 +213,7 @@ public class BackendTableController extends BaseController {
      */
     @ApiOperation(value = "获取桌码详情")
     @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
-    @CrossOrigin
+    
     @PreAuthorize("@pms.hasPermission('table:index')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно