diff --git a/eladmin-system/pom.xml b/eladmin-system/pom.xml
index 406ea226..a88fe20e 100644
--- a/eladmin-system/pom.xml
+++ b/eladmin-system/pom.xml
@@ -24,6 +24,11 @@
spring-boot-starter-validation
+
+ com.github.gavlyukovskiy
+ p6spy-spring-boot-starter
+ 1.7.0
+
cn.ysk.cashier
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryController.java
index e7f09c34..bcdd6f4e 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryController.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryController.java
@@ -2,6 +2,7 @@ package cn.ysk.cashier.controller.shop;
import cn.ysk.cashier.annotation.rest.AnonymousGetMapping;
import cn.ysk.cashier.annotation.rest.AnonymousPostMapping;
+import cn.ysk.cashier.dto.BaseQueryDto;
import cn.ysk.cashier.dto.shop.ShopTableSaleInfoDto;
import cn.ysk.cashier.service.SummaryService;
import lombok.RequiredArgsConstructor;
@@ -23,11 +24,20 @@ public class SummaryController {
@Resource
private SummaryService summaryService;
- @GetMapping
- private Object shopSummary(@RequestParam Integer shopId) {
- return summaryService.selectSummary(shopId);
+
+ @PostMapping("/trade")
+ @AnonymousPostMapping
+ private Object shopSummaryDate(@RequestBody BaseQueryDto param) {
+ return summaryService.trade(param);
}
+
+
+// @GetMapping
+// private Object shopSummary(@RequestParam Integer shopId) {
+// return summaryService.selectSummary(shopId);
+// }
+
@GetMapping("/date")
private Object shopSummaryDate(@RequestParam Integer shopId, @RequestParam Integer day) {
return summaryService.selectSummaryDate(shopId, day);
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbDeviceStockController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbDeviceStockController.java
index 31d9c628..229a401e 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbDeviceStockController.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbDeviceStockController.java
@@ -50,8 +50,8 @@ public class TbDeviceStockController {
throw new RuntimeException("请先添加台桌");
}
- if (downloadDto.getCount() > (shopTables.size() * 2)) {
- throw new RuntimeException("最多可获取台桌数量的2倍");
+ if (downloadDto.getCount() > 500) {
+ throw new RuntimeException("最多可获取500个");
}
TbDeviceStock lastRecord = tbDeviceStockService.findLastRecord();
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/BaseQueryDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/BaseQueryDto.java
new file mode 100644
index 00000000..1d8117ff
--- /dev/null
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/BaseQueryDto.java
@@ -0,0 +1,36 @@
+package cn.ysk.cashier.dto;
+
+import org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+
+public class BaseQueryDto {
+ private Integer shopId;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+
+ public Integer getShopId() {
+ return shopId;
+ }
+
+ public void setShopId(Integer shopId) {
+ this.shopId = shopId;
+ }
+
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public Date getEndTime() {
+ return endTime;
+ }
+
+ public void setEndTime(Date endTime) {
+ this.endTime = endTime;
+ }
+}
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java
index 8560fec3..a2b667d8 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java
@@ -23,6 +23,7 @@ import javax.persistence.Column;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.io.Serializable;
+import java.util.List;
/**
* @website https://eladmin.vip
@@ -192,4 +193,10 @@ public class TbShopInfoDto implements Serializable {
private String isReturn;
private String isMemberIn;
private String isMemberReturn;
+ private Integer isTableFee;
+ private BigDecimal tableFee;
+ private List eatModel;
+ //程序码(零点八零首页)
+ private String smallQrcode;
+ private String paymentQrcode;
}
\ No newline at end of file
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mapper/shop/TbShopInfoMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mapper/shop/TbShopInfoMapper.java
index 0749836d..6cc0ada3 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/mapper/shop/TbShopInfoMapper.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/mapper/shop/TbShopInfoMapper.java
@@ -18,8 +18,13 @@ package cn.ysk.cashier.mapper.shop;
import cn.ysk.cashier.base.BaseMapper;
import cn.ysk.cashier.pojo.shop.TbShopInfo;
import cn.ysk.cashier.dto.shop.TbShopInfoDto;
+import cn.ysk.cashier.utils.ListUtil;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
/**
* @website https://eladmin.vip
@@ -29,4 +34,19 @@ import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface TbShopInfoMapper extends BaseMapper {
+ // 自定义的字符串到整数列表的转换方法
+ default List map(String value) {
+ return ListUtil.stringChangeStringList(value);
+ }
+
+ // 如果需要从DTO转回实体,也可能需要实现反向的映射方法
+ default String map(List values) {
+ if (!CollectionUtils.isEmpty(values)) {
+ return "";
+ }
+ // 将整数列表转换为由逗号分隔的字符串
+ return values.stream()
+ .map(String::valueOf)
+ .collect(Collectors.joining(","));
+ }
}
\ No newline at end of file
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java
index 6e80822b..d4053259 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java
@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
/**
* @author GYJ
@@ -41,6 +41,33 @@ public interface TbShopUserFlowMapper extends BaseMapper {
@Param("startTime") String startTime,
@Param("endTime") String endTime);
+ @Select("")
+ Map tradeIndexFlow(@Param("shopId") Integer shopId,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime);
+
+ @Select("")
+ Integer tradeIndexNewFlow(@Param("shopId") Integer shopId, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
@Select(value = "select * from tb_shop_user_flow where shop_user_id=#{userId} order by id desc limit #{page},#{size}")
List selectByUserId(@Param("userId") Integer userId,@Param("page") Integer page,@Param("size") Integer size);
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java
index 5f8a7944..6bd14fa1 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java
@@ -258,13 +258,28 @@ public class TbShopInfo implements Serializable {
@ApiModelProperty(value = "是否允许用户自定义金额")
private String isMemberIn;
-
@Column(name = "is_member_return")
@ApiModelProperty(value = "是否允许用户自定义金额")
private String isMemberReturn;
+ @Column(name = "is_table_fee")
+ @ApiModelProperty(value = "是否免除桌位费 0否1是")
+ private Integer isTableFee;
+ @Column(name = "tableFee")
+ @ApiModelProperty(value = "桌位费")
+ private BigDecimal tableFee;
+ @Column(name = "eat_model")
+ @ApiModelProperty(value = "就餐模式 堂食 dine-in 外带 take-out")
+ private String eatModel;
+
+ @Column(name = "small_qrcode")
+ @ApiModelProperty(value = "程序码(零点八零首页)")
+ private String smallQrcode;
+ @Column(name = "payment_qrcode")
+ @ApiModelProperty(value = "店铺收款码")
+ private String paymentQrcode;
public void copy(TbShopInfo source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(false));
diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java
index c59da55c..69efbe63 100644
--- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java
+++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java
@@ -31,6 +31,7 @@ import javax.persistence.Tuple;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
+import java.util.Map;
/**
* @website https://eladmin.vip
@@ -54,6 +55,22 @@ public interface TbOrderInfoRepository extends JpaRepository:start AND info.createdAt<:end")
TbOrderPayCountVo queryTbOrderRefund(@Param("shopId")String shopId, @Param("tableName") String tableName ,@Param("start") Long start, @Param("end") Long end);
+ @Query(value = "SELECT " +
+ "COALESCE(SUM( info.order_amount ),0) AS 'saleAmount'," +
+ "COALESCE(count( 1 ),0) AS 'saleNum'," +
+ "COALESCE(sum( discount_amount ),0) AS 'saveAmount'," +
+ "COALESCE(COUNT( CASE WHEN discount_amount IS NOT NULL AND discount_amount > 0.00 THEN 1 ELSE NULL END ),0) AS 'saveNum' " +
+ "FROM tb_order_info info " +
+ "WHERE info.shop_id = :shopId " +
+ "AND info.created_at > :startTime AND info.created_at < :endTime " +
+ "AND ((info.STATUS = 'closed' ) OR ( info.STATUS = 'refund' AND info.order_type != 'return' ))", nativeQuery = true)
+ Map tradeIndex(@Param("shopId") Integer shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+ @Query(value = "SELECT COALESCE(SUM(info.order_amount),0) FROM tb_order_info info " +
+ "WHERE info.shop_id = :shopId AND info.order_type = 'return' " +
+ "AND info.created_at > :startTime AND info.created_at < :endTime", nativeQuery = true)
+ BigDecimal tradeIndexRefund(@Param("shopId") Integer shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+
+
@Query(value = "SELECT COUNT(1) ,pay_type AS payType FROM tb_order_info Where shop_id = :shopId AND " +
" created_at BETWEEN :startTime AND :endTime AND status='closed'AND order_type <>'return' GROUP BY pay_type", nativeQuery = true)
List