数据统计相关接口
This commit is contained in:
parent
7e7a764201
commit
626f23b45b
|
|
@ -0,0 +1,83 @@
|
|||
package com.czg.controller.admin;
|
||||
|
||||
import com.czg.log.annotation.OperationLog;
|
||||
import com.czg.order.param.DataSummaryProductSaleParam;
|
||||
import com.czg.order.param.DataSummaryTradeParam;
|
||||
import com.czg.order.service.DataSummaryService;
|
||||
import com.czg.order.vo.DataSummaryDateAmountVo;
|
||||
import com.czg.order.vo.DataSummaryPayTypeVo;
|
||||
import com.czg.order.vo.DataSummaryProductSaleVo;
|
||||
import com.czg.order.vo.DataSummaryTradeVo;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.sa.StpKit;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 数据统计
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:25
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/admin/data/summary")
|
||||
public class DataSummaryController {
|
||||
private final DataSummaryService dataSummaryService;
|
||||
|
||||
/**
|
||||
* 营业板块-上半部分
|
||||
*/
|
||||
@GetMapping("trade")
|
||||
@OperationLog("营业板块-上半部分")
|
||||
//@SaAdminCheckPermission("dataSummary:trade")
|
||||
public CzgResult<DataSummaryTradeVo> getTradeData(DataSummaryTradeParam param) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
param.setShopId(shopId);
|
||||
DataSummaryTradeVo data = dataSummaryService.getTradeData(param);
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品销售 右下
|
||||
*/
|
||||
@GetMapping("productSaleDate")
|
||||
@OperationLog("商品销售-右下")
|
||||
//@SaAdminCheckPermission("dataSummary:productSaleData")
|
||||
private CzgResult<DataSummaryProductSaleVo> getProductSaleData(DataSummaryProductSaleParam param) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
param.setShopId(shopId);
|
||||
DataSummaryProductSaleVo data = dataSummaryService.getProductSaleData(param);
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 销售趋势柱状图 左下
|
||||
*
|
||||
* @param day 天数
|
||||
*/
|
||||
@GetMapping("dateAmount")
|
||||
@OperationLog("销售趋势柱状图 左下")
|
||||
//@SaAdminCheckPermission("dataSummary:dateAmount")
|
||||
private CzgResult<DataSummaryDateAmountVo> getDateAmount(@RequestParam Integer day) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
DataSummaryDateAmountVo data = dataSummaryService.getSummaryAmountData(shopId, day);
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付占比饼图 左下
|
||||
*
|
||||
* @param day 天数
|
||||
*/
|
||||
@GetMapping("datePayType")
|
||||
//@SaAdminCheckPermission("dataSummary:datePayType")
|
||||
private Object shopSummaryPayType(@RequestParam Integer day) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
DataSummaryPayTypeVo data = dataSummaryService.getSummaryPayTypeData(shopId, day);
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package com.czg.controller.admin;
|
||||
|
||||
import com.czg.log.annotation.OperationLog;
|
||||
import com.czg.order.param.SaleSummaryCountParam;
|
||||
import com.czg.order.service.SaleSummaryService;
|
||||
import com.czg.order.vo.SaleSummaryCountVo;
|
||||
import com.czg.order.vo.SaleSummaryInfoVo;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销量统计
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:25
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/admin/sale/summary")
|
||||
public class SaleSummaryController {
|
||||
private final SaleSummaryService saleSummaryService;
|
||||
|
||||
/**
|
||||
* 统计
|
||||
*/
|
||||
@GetMapping("count")
|
||||
@OperationLog("统计")
|
||||
//@SaAdminCheckPermission("saleSummary:count")
|
||||
public CzgResult<SaleSummaryCountVo> summaryCount(SaleSummaryCountParam param) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
param.setShopId(shopId);
|
||||
SaleSummaryCountVo data = saleSummaryService.summaryCount(param);
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*/
|
||||
@GetMapping("page")
|
||||
@OperationLog("分页")
|
||||
//@SaAdminCheckPermission("saleSummary:page")
|
||||
public CzgResult<Page<SaleSummaryInfoVo>> summaryPage(SaleSummaryCountParam param) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
param.setShopId(shopId);
|
||||
Page<SaleSummaryInfoVo> page = saleSummaryService.summaryPage(param);
|
||||
return CzgResult.success(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*/
|
||||
@ResponseExcel(name = "销售统计明细")
|
||||
@GetMapping("/export")
|
||||
@OperationLog("导出")
|
||||
//@SaAdminCheckPermission("saleSummary:export")
|
||||
public List<SaleSummaryInfoVo> summaryExport(SaleSummaryCountParam param) {
|
||||
return saleSummaryService.summaryList(param);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package com.czg.controller.admin;
|
||||
|
||||
import com.czg.log.annotation.OperationLog;
|
||||
import com.czg.order.param.TableSummaryParam;
|
||||
import com.czg.order.service.TableSummaryService;
|
||||
import com.czg.order.vo.TableSummaryExportVo;
|
||||
import com.czg.order.vo.TableSummaryInfoVo;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 台桌统计
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:25
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/admin/table/summary")
|
||||
public class TableSummaryController {
|
||||
private final TableSummaryService tableSummaryService;
|
||||
|
||||
/**
|
||||
* 统计
|
||||
*/
|
||||
@GetMapping("list")
|
||||
@OperationLog("统计")
|
||||
//@SaAdminCheckPermission("tableSummary:list")
|
||||
public CzgResult<List<TableSummaryInfoVo>> summaryList(TableSummaryParam param) {
|
||||
Long shopId = StpKit.USER.getShopId(0L);
|
||||
param.setShopId(shopId);
|
||||
List<TableSummaryInfoVo> data = tableSummaryService.summaryList(param);
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*/
|
||||
@ResponseExcel(name = "台桌统计")
|
||||
@GetMapping("export")
|
||||
@OperationLog("导出")
|
||||
//@SaAdminCheckPermission("tableSummary:export")
|
||||
public List<TableSummaryExportVo> summaryExport(TableSummaryParam param) {
|
||||
return tableSummaryService.summaryExport(param);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.czg.order.param;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 数据统计-营业-产品销量
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:35
|
||||
*/
|
||||
@Data
|
||||
public class DataSummaryProductSaleParam implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 天数
|
||||
*/
|
||||
private Integer day;
|
||||
/**
|
||||
* 店铺id
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
private Long shopId;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package com.czg.order.param;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 数据统计-营业-上半部分
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:35
|
||||
*/
|
||||
@Data
|
||||
public class DataSummaryTradeParam implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 开始时间 格式:yyyy-MM-dd
|
||||
*/
|
||||
private String beginTime;
|
||||
/**
|
||||
* 结束时间 格式:yyyy-MM-dd
|
||||
*/
|
||||
private String endTime;
|
||||
/**
|
||||
* 店铺id
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
private Long shopId;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
package com.czg.order.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 销售统计Count入参
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:23
|
||||
*/
|
||||
@Data
|
||||
public class SaleSummaryCountParam implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* shopId
|
||||
*/
|
||||
private Long shopId;
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private Long cateId;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
private String proName;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package com.czg.order.param;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 台桌统计
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:35
|
||||
*/
|
||||
@Data
|
||||
public class TableSummaryParam implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 开始时间 格式:yyyy-MM-dd
|
||||
*/
|
||||
private String beginTime;
|
||||
/**
|
||||
* 结束时间 格式:yyyy-MM-dd
|
||||
*/
|
||||
private String endTime;
|
||||
/**
|
||||
* 店铺id
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
private Long shopId;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.czg.order.service;
|
||||
|
||||
import com.czg.order.param.DataSummaryProductSaleParam;
|
||||
import com.czg.order.param.DataSummaryTradeParam;
|
||||
import com.czg.order.vo.DataSummaryDateAmountVo;
|
||||
import com.czg.order.vo.DataSummaryPayTypeVo;
|
||||
import com.czg.order.vo.DataSummaryProductSaleVo;
|
||||
import com.czg.order.vo.DataSummaryTradeVo;
|
||||
|
||||
/**
|
||||
* 数据统计Service接口
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:31
|
||||
*/
|
||||
public interface DataSummaryService {
|
||||
|
||||
DataSummaryTradeVo getTradeData(DataSummaryTradeParam param);
|
||||
|
||||
DataSummaryProductSaleVo getProductSaleData(DataSummaryProductSaleParam param);
|
||||
|
||||
DataSummaryDateAmountVo getSummaryAmountData(Long shopId,Integer day);
|
||||
|
||||
DataSummaryPayTypeVo getSummaryPayTypeData(Long shopId, Integer day);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.czg.order.service;
|
||||
|
||||
import com.czg.order.param.SaleSummaryCountParam;
|
||||
import com.czg.order.vo.SaleSummaryCountVo;
|
||||
import com.czg.order.vo.SaleSummaryInfoVo;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销量统计Service接口
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:31
|
||||
*/
|
||||
public interface SaleSummaryService {
|
||||
|
||||
SaleSummaryCountVo summaryCount(SaleSummaryCountParam param);
|
||||
Page<SaleSummaryInfoVo> summaryPage(SaleSummaryCountParam param);
|
||||
List<SaleSummaryInfoVo> summaryList(SaleSummaryCountParam param);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.czg.order.service;
|
||||
|
||||
import com.czg.order.param.TableSummaryParam;
|
||||
import com.czg.order.vo.TableSummaryExportVo;
|
||||
import com.czg.order.vo.TableSummaryInfoVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 台桌统计Service接口
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:31
|
||||
*/
|
||||
public interface TableSummaryService {
|
||||
|
||||
List<TableSummaryInfoVo> summaryList(TableSummaryParam param);
|
||||
List<TableSummaryExportVo> summaryExport(TableSummaryParam param);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售趋势柱状图 左下
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:08
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class DataSummaryDateAmountVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* total
|
||||
*/
|
||||
private List<TotalVo> total;
|
||||
|
||||
/**
|
||||
* TotalVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class TotalVo {
|
||||
/**
|
||||
* 实收金额
|
||||
*/
|
||||
private Integer actualAmount;
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
private Integer discountAmount;
|
||||
/**
|
||||
* 订单金额
|
||||
*/
|
||||
private Integer orderAmount;
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private String tradeDay;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 支付占比饼图 左下
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:08
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class DataSummaryPayTypeVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* countPayType
|
||||
*/
|
||||
private List<CountPayTypeVo> countPayType;
|
||||
|
||||
/**
|
||||
* CountPayTypeVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class CountPayTypeVo {
|
||||
/**
|
||||
* 笔数
|
||||
*/
|
||||
private Integer count;
|
||||
/**
|
||||
* 支付方式
|
||||
*/
|
||||
private String payType;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据汇总-商品销售
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:50
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class DataSummaryProductSaleVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* productSum
|
||||
*/
|
||||
private ProductSumVo productSum;
|
||||
/**
|
||||
* countList
|
||||
*/
|
||||
private List<CountListVo> countList;
|
||||
/**
|
||||
* productCount
|
||||
*/
|
||||
private ProductCountVo productCount;
|
||||
/**
|
||||
* productList
|
||||
*/
|
||||
private Page<ContentVo> productList;
|
||||
|
||||
/**
|
||||
* ProductSumVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class ProductSumVo {
|
||||
/**
|
||||
* icon
|
||||
*/
|
||||
private String icon;
|
||||
/**
|
||||
* isAmount
|
||||
*/
|
||||
private String isAmount;
|
||||
/**
|
||||
* payAmount
|
||||
*/
|
||||
private BigDecimal payAmount;
|
||||
/**
|
||||
* payType
|
||||
*/
|
||||
private String payType;
|
||||
/**
|
||||
* saveAmount
|
||||
*/
|
||||
private Object saveAmount;
|
||||
}
|
||||
|
||||
/**
|
||||
* ProductCountVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class ProductCountVo {
|
||||
/**
|
||||
* icon
|
||||
*/
|
||||
private String icon;
|
||||
/**
|
||||
* isAmount
|
||||
*/
|
||||
private String isAmount;
|
||||
/**
|
||||
* payAmount
|
||||
*/
|
||||
private BigDecimal payAmount;
|
||||
/**
|
||||
* payType
|
||||
*/
|
||||
private String payType;
|
||||
/**
|
||||
* saveAmount
|
||||
*/
|
||||
private Object saveAmount;
|
||||
}
|
||||
/**
|
||||
* ContentVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class ContentVo {
|
||||
/**
|
||||
* cateName
|
||||
*/
|
||||
private String cateName;
|
||||
/**
|
||||
* num
|
||||
*/
|
||||
private BigDecimal num;
|
||||
/**
|
||||
* price
|
||||
*/
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* productId
|
||||
*/
|
||||
private Object productId;
|
||||
/**
|
||||
* productName
|
||||
*/
|
||||
private String productName;
|
||||
/**
|
||||
* productSkuId
|
||||
*/
|
||||
private Object productSkuId;
|
||||
/**
|
||||
* productSkuName
|
||||
*/
|
||||
private Object productSkuName;
|
||||
/**
|
||||
* refAmount
|
||||
*/
|
||||
private BigDecimal refAmount;
|
||||
/**
|
||||
* refNum
|
||||
*/
|
||||
private BigDecimal refNum;
|
||||
/**
|
||||
* salesAmount
|
||||
*/
|
||||
private BigDecimal salesAmount;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 销售数量
|
||||
*/
|
||||
private BigDecimal salesNum;
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
private String unitName;
|
||||
}
|
||||
|
||||
/**
|
||||
* CountListVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class CountListVo {
|
||||
/**
|
||||
* 销售额
|
||||
*/
|
||||
private BigDecimal saleAmount;
|
||||
/**
|
||||
* 销售量
|
||||
*/
|
||||
private BigDecimal saleNum;
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private String tradeDay;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据统计-营业-上半部分
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:35
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class DataSummaryTradeVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* sale
|
||||
*/
|
||||
private SaleVo sale;
|
||||
/**
|
||||
* count
|
||||
*/
|
||||
private CountVo count;
|
||||
/**
|
||||
* vip
|
||||
*/
|
||||
private VipVo vip;
|
||||
|
||||
/**
|
||||
* SaleVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class SaleVo {
|
||||
/**
|
||||
* 会员退款金额
|
||||
*/
|
||||
private BigDecimal outAmount;
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
private BigDecimal totalSaleAmount;
|
||||
/**
|
||||
* 会员总金额
|
||||
*/
|
||||
private BigDecimal totalVipAmount;
|
||||
/**
|
||||
* 会员充值金额
|
||||
*/
|
||||
private BigDecimal inAmount;
|
||||
/**
|
||||
* 总实收
|
||||
*/
|
||||
private BigDecimal incomeAmountAll;
|
||||
/**
|
||||
* 销售收款金额
|
||||
*/
|
||||
private BigDecimal incomeAmount;
|
||||
/**
|
||||
* payCount
|
||||
*/
|
||||
private List<PayCountVo> payCount;
|
||||
/**
|
||||
* 销售退款金额
|
||||
*/
|
||||
private BigDecimal refundAmount;
|
||||
|
||||
/**
|
||||
* PayCountVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class PayCountVo {
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
private String icon;
|
||||
/**
|
||||
* isAmount
|
||||
*/
|
||||
private String isAmount;
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private Integer payAmount;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String payType;
|
||||
/**
|
||||
* saveAmount
|
||||
*/
|
||||
private Object saveAmount;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* CountVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class CountVo {
|
||||
/**
|
||||
* 客单价
|
||||
*/
|
||||
private Integer unitPrice;
|
||||
/**
|
||||
* 翻台率
|
||||
*/
|
||||
private String turnoverRate;
|
||||
/**
|
||||
* 优惠单数
|
||||
*/
|
||||
private Integer saveNum;
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
private BigDecimal saveAmount;
|
||||
}
|
||||
|
||||
/**
|
||||
* VipVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class VipVo {
|
||||
/**
|
||||
* 会员消费笔数
|
||||
*/
|
||||
private Integer useNum;
|
||||
/**
|
||||
* 新增会员数
|
||||
*/
|
||||
private Integer newFlow;
|
||||
/**
|
||||
* 会员消费金额
|
||||
*/
|
||||
private BigDecimal useAmount;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 销量统计汇总
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:22
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class SaleSummaryCountVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* icon
|
||||
*/
|
||||
private String icon;
|
||||
/**
|
||||
* isAmount
|
||||
*/
|
||||
private String isAmount;
|
||||
/**
|
||||
* payAmount
|
||||
*/
|
||||
private Double payAmount;
|
||||
/**
|
||||
* payType
|
||||
*/
|
||||
private String payType;
|
||||
/**
|
||||
* saveAmount
|
||||
*/
|
||||
private Object saveAmount;
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnore;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.pig4cloud.plugin.excel.annotation.ExcelLine;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 销量统计导出
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:22
|
||||
*/
|
||||
@Data
|
||||
public class SaleSummaryExportVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 导入时候回显行号
|
||||
*/
|
||||
@ExcelLine
|
||||
@ExcelIgnore
|
||||
@JSONField(serialize = false)
|
||||
private Long lineNum;
|
||||
/**
|
||||
* 商品分类
|
||||
*/
|
||||
@ExcelProperty("商品分类")
|
||||
private String categoryName;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
@ExcelProperty("商品名称")
|
||||
private String productName;
|
||||
/**
|
||||
* 商品规格
|
||||
*/
|
||||
@ExcelProperty("商品规格")
|
||||
private String specName;
|
||||
/**
|
||||
* 销售额
|
||||
*/
|
||||
@ExcelProperty("销售额")
|
||||
private BigDecimal salesAmount;
|
||||
/**
|
||||
* 退单额
|
||||
*/
|
||||
@ExcelProperty("退单额")
|
||||
private BigDecimal refundAmount;
|
||||
/**
|
||||
* 实际销量
|
||||
*/
|
||||
@ExcelProperty("实际销量")
|
||||
private BigDecimal salesNum;
|
||||
/**
|
||||
* 退单量
|
||||
*/
|
||||
@ExcelProperty("退单量")
|
||||
private BigDecimal refundNum;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销量统计明细
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:22
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class SaleSummaryInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* cateName
|
||||
*/
|
||||
private String cateName;
|
||||
/**
|
||||
* name
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* productId
|
||||
*/
|
||||
private Integer productId;
|
||||
/**
|
||||
* refAmount
|
||||
*/
|
||||
private Integer refAmount;
|
||||
/**
|
||||
* refNum
|
||||
*/
|
||||
private Integer refNum;
|
||||
/**
|
||||
* salesAmount
|
||||
*/
|
||||
private Integer salesAmount;
|
||||
/**
|
||||
* salesNum
|
||||
*/
|
||||
private Integer salesNum;
|
||||
/**
|
||||
* skus
|
||||
*/
|
||||
private List<SkusVo> skus;
|
||||
/**
|
||||
* typeEnum
|
||||
*/
|
||||
private String typeEnum;
|
||||
|
||||
/**
|
||||
* SkusVo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class SkusVo {
|
||||
/**
|
||||
* cateName
|
||||
*/
|
||||
private String cateName;
|
||||
/**
|
||||
* name
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* productId
|
||||
*/
|
||||
private Integer productId;
|
||||
/**
|
||||
* refAmount
|
||||
*/
|
||||
private Integer refAmount;
|
||||
/**
|
||||
* refNum
|
||||
*/
|
||||
private Integer refNum;
|
||||
/**
|
||||
* salesAmount
|
||||
*/
|
||||
private Integer salesAmount;
|
||||
/**
|
||||
* salesNum
|
||||
*/
|
||||
private Integer salesNum;
|
||||
/**
|
||||
* skus
|
||||
*/
|
||||
private List<?> skus;
|
||||
/**
|
||||
* typeEnum
|
||||
*/
|
||||
private String typeEnum;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnore;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.pig4cloud.plugin.excel.annotation.ExcelLine;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 台桌统计明细
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:22
|
||||
*/
|
||||
@Data
|
||||
public class TableSummaryExportVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 导入时候回显行号
|
||||
*/
|
||||
@ExcelLine
|
||||
@ExcelIgnore
|
||||
@JSONField(serialize = false)
|
||||
private Long lineNum;
|
||||
/**
|
||||
* 台桌
|
||||
*/
|
||||
@ExcelProperty("台桌")
|
||||
private String tableName;
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
@ExcelProperty("日期")
|
||||
private String date;
|
||||
/**
|
||||
* 商品分类
|
||||
*/
|
||||
@ExcelProperty("商品分类")
|
||||
private String categoryName;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
@ExcelProperty("商品名称")
|
||||
private String productName;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ExcelProperty("单位")
|
||||
private String unitName;
|
||||
/**
|
||||
* 商品规格
|
||||
*/
|
||||
@ExcelProperty("商品规格")
|
||||
private String specName;
|
||||
/**
|
||||
* 销量
|
||||
*/
|
||||
@ExcelProperty("销量")
|
||||
private BigDecimal salesNum;
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
@ExcelProperty("单价")
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
@ExcelProperty("金额")
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 销售额
|
||||
*/
|
||||
@ExcelProperty("销售额")
|
||||
private BigDecimal salesAmount;
|
||||
/**
|
||||
* 总销售额
|
||||
*/
|
||||
@ExcelProperty("总销售额")
|
||||
private BigDecimal totalSalesAmount;
|
||||
/**
|
||||
* 退单量
|
||||
*/
|
||||
@ExcelProperty("退单量")
|
||||
private Integer refundNum;
|
||||
/**
|
||||
* 退单额
|
||||
*/
|
||||
@ExcelProperty("退单额")
|
||||
private BigDecimal refundAmount;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
package com.czg.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 台桌统计明细
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 16:22
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class TableSummaryInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// 台桌 日期 商品分类 商品名称 单位 商品规格 销量 单价 金额 销售额 总销售额 退单量 退单额
|
||||
|
||||
|
||||
/**
|
||||
* 台桌
|
||||
*/
|
||||
private String tableName;
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private String date;
|
||||
/**
|
||||
* 商品分类
|
||||
*/
|
||||
private String categoryName;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
private String productName;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unitName;
|
||||
/**
|
||||
* 商品规格
|
||||
*/
|
||||
private String specName;
|
||||
/**
|
||||
* 销量
|
||||
*/
|
||||
private BigDecimal salesNum;
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 销售额
|
||||
*/
|
||||
private BigDecimal salesAmount;
|
||||
/**
|
||||
* 总销售额
|
||||
*/
|
||||
private BigDecimal totalSalesAmount;
|
||||
/**
|
||||
* 退单量
|
||||
*/
|
||||
private Integer refundNum;
|
||||
/**
|
||||
* 退单额
|
||||
*/
|
||||
private BigDecimal refundAmount;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.czg.service.order.service.impl;
|
||||
|
||||
import com.czg.order.param.DataSummaryProductSaleParam;
|
||||
import com.czg.order.param.DataSummaryTradeParam;
|
||||
import com.czg.order.service.DataSummaryService;
|
||||
import com.czg.order.vo.DataSummaryDateAmountVo;
|
||||
import com.czg.order.vo.DataSummaryPayTypeVo;
|
||||
import com.czg.order.vo.DataSummaryProductSaleVo;
|
||||
import com.czg.order.vo.DataSummaryTradeVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 数据统计Service实现类
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:32
|
||||
*/
|
||||
@Service
|
||||
public class DataSummaryServiceImpl implements DataSummaryService {
|
||||
@Override
|
||||
public DataSummaryTradeVo getTradeData(DataSummaryTradeParam param) {
|
||||
return new DataSummaryTradeVo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSummaryProductSaleVo getProductSaleData(DataSummaryProductSaleParam param) {
|
||||
return new DataSummaryProductSaleVo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSummaryDateAmountVo getSummaryAmountData(Long shopId, Integer day) {
|
||||
return new DataSummaryDateAmountVo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSummaryPayTypeVo getSummaryPayTypeData(Long shopId, Integer day) {
|
||||
return new DataSummaryPayTypeVo();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.czg.service.order.service.impl;
|
||||
|
||||
import com.czg.order.param.SaleSummaryCountParam;
|
||||
import com.czg.order.service.SaleSummaryService;
|
||||
import com.czg.order.vo.SaleSummaryCountVo;
|
||||
import com.czg.order.vo.SaleSummaryInfoVo;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销量统计Service实现类
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:32
|
||||
*/
|
||||
@Service
|
||||
public class SaleSummaryServiceImpl implements SaleSummaryService {
|
||||
|
||||
@Override
|
||||
public SaleSummaryCountVo summaryCount(SaleSummaryCountParam param) {
|
||||
return new SaleSummaryCountVo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<SaleSummaryInfoVo> summaryPage(SaleSummaryCountParam param) {
|
||||
Page<SaleSummaryInfoVo> page = new Page<>();
|
||||
page.setRecords(new ArrayList<SaleSummaryInfoVo>());
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaleSummaryInfoVo> summaryList(SaleSummaryCountParam param) {
|
||||
return List.of();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package com.czg.service.order.service.impl;
|
||||
|
||||
import com.czg.order.param.TableSummaryParam;
|
||||
import com.czg.order.service.TableSummaryService;
|
||||
import com.czg.order.vo.TableSummaryExportVo;
|
||||
import com.czg.order.vo.TableSummaryInfoVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 台桌统计Service实现类
|
||||
*
|
||||
* @author tankaikai
|
||||
* @since 2025-03-07 15:32
|
||||
*/
|
||||
@Service
|
||||
public class TableSummaryServiceImpl implements TableSummaryService {
|
||||
|
||||
|
||||
@Override
|
||||
public List<TableSummaryInfoVo> summaryList(TableSummaryParam param) {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TableSummaryExportVo> summaryExport(TableSummaryParam param) {
|
||||
return List.of();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue