123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394 |
- package com.xy.dto;
- import cn.hutool.core.date.DateTime;
- import cn.hutool.core.util.StrUtil;
- import com.fasterxml.jackson.annotation.JsonFormat;
- import com.xy.utils.PageBean;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import javax.validation.constraints.NotBlank;
- import javax.validation.constraints.NotNull;
- import java.math.BigDecimal;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.util.List;
- /**
- * <p>
- * 设备统计数据
- * </p>
- *
- * @author lijin
- * @since 2023-01-11
- */
- public class DeviceDataDto {
- @Data
- @Accessors(chain = true)
- public static class DayChartDto {
- @ApiModelProperty(value = "商户ID")
- private Long mercId;
- @ApiModelProperty(value = "统计类型(day,month,year)", required = true)
- @NotNull(message = "统计类型不能为空")
- private String type;
- @NotNull(message = "开始时间不能为空")
- @ApiModelProperty(value = "开始时间", required = true)
- @JsonFormat(pattern = "yyyy-MM-dd")
- private LocalDate beginDate;
- @NotNull(message = "结束时间不能为空")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "结束时间", required = true)
- private LocalDate endDate;
- public Integer getBeginInt() {
- return Integer.valueOf(StrUtil.replace(beginDate.toString(), "-", ""));
- }
- public Integer getEndDateInt() {
- return Integer.valueOf(StrUtil.replace(endDate.toString(), "-", ""));
- }
- }
- @Data
- @Accessors(chain = true)
- public static class DayChartVo {
- @ApiModelProperty("时间")
- private Integer time;
- @ApiModelProperty("笔数")
- private Integer num;
- @ApiModelProperty("销售额(分)")
- private Integer totalMoney;
- @ApiModelProperty("销售额(元)")
- private BigDecimal totalMoneyYuan;
- public BigDecimal getTotalMoneyYuan() {
- return BigDecimal.valueOf(totalMoney).divide(new BigDecimal(100));
- }
- }
- @Data
- @Accessors(chain = true)
- public static class SumCountVo {
- @ApiModelProperty(value = "营业额;单位分")
- private Integer salesMoney;
- @ApiModelProperty(value = "销售笔数")
- private Integer salesCount;
- @ApiModelProperty(value = "销售商品数")
- private Integer goodsCount;
- @ApiModelProperty(value = "退款金额;单位分")
- private Integer refundMoney;
- @ApiModelProperty(value = "退款笔数")
- private Integer refundCount;
- @ApiModelProperty(value = "风险订单数")
- private Integer riskCount;
- @ApiModelProperty(value = "0元订单笔数")
- private Integer zeroCount;
- }
- @Data
- @Accessors(chain = true)
- public static class SumCountDto {
- @ApiModelProperty(value = "商户ID", required = true)
- private Long mercId;
- @NotNull(message = "统计类型不能为空")
- @ApiModelProperty(value = "统计类型", required = true)
- private String type;
- @NotNull(message = "排序字段不能为空")
- @ApiModelProperty(value = "排序字段", required = true)
- private String orderByKey;
- @NotNull(message = "排序方式不能为空")
- @ApiModelProperty(value = "排序方式", required = true)
- private String orderBy;
- @ApiModelProperty("开始时间")
- private String beginDate;
- @ApiModelProperty("结束时间")
- private String endDate;
- @ApiModelProperty(value = "商户拥有的设备ID")
- private List<Long> mercDeviceIds;
- public String getBeginDate() {
- return StrUtil.replace(beginDate, "-", "");
- }
- public String getEndDate() {
- return StrUtil.replace(endDate, "-", "");
- }
- }
- @Data
- @Accessors(chain = true)
- public static class SumPageDto extends SumCountDto {
- @NotNull(message = "分页信息不能为空")
- @ApiModelProperty(value = "分页信息", required = true)
- private PageBean page;
- @ApiModelProperty(value = "商户拥有的设备ID")
- private List<Long> mercDeviceIds;
- }
- @Data
- @Accessors(chain = true)
- public static class SumPageVo {
- @ApiModelProperty(value = "平台商品id")
- private Long deviceId;
- @ApiModelProperty(value = "设备名称")
- private String deviceName;
- @ApiModelProperty(value = "营业额;单位分")
- private Integer salesMoney;
- @ApiModelProperty(value = "销售笔数")
- private Integer salesCount;
- @ApiModelProperty(value = "销售商品数")
- private Integer goodsCount;
- @ApiModelProperty(value = "退款金额;单位分")
- private Integer refundMoney;
- @ApiModelProperty(value = "退款笔数")
- private Integer refundCount;
- @ApiModelProperty(value = "风险订单数")
- private Integer riskCount;
- @ApiModelProperty(value = "0元订单笔数")
- private Integer zeroCount;
- }
- @Data
- @Accessors(chain = true)
- public static class Page extends Vo {
- @ApiModelProperty(value = "分页对象", required = true)
- private PageBean page;
- @JsonFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "创建时间-起")
- private LocalDate beginCreateTime;
- @JsonFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "创建时间-始")
- private LocalDate endCreateTime;
- public LocalDateTime getBeginCreateTime() {
- return beginCreateTime == null ? null : beginCreateTime.atTime(0, 0, 0);
- }
- public LocalDateTime getEndCreateTime() {
- return endCreateTime == null ? null : endCreateTime.atTime(23, 59, 59);
- }
- }
- @Data
- @Accessors(chain = true)
- public static class SaveOrAccum extends Vo {
- @NotNull(message = "deviceId不能为空")
- @ApiModelProperty(value = "设备ID")
- private Long deviceId;
- }
- @Data
- @Accessors(chain = true)
- public static class Vo {
- @ApiModelProperty(value = "id")
- private Integer id;
- @ApiModelProperty(value = "商户ID")
- private Long mercId;
- @ApiModelProperty(value = "设备ID")
- private Long deviceId;
- @ApiModelProperty(value = "统计类型;year|month|day")
- private String type;
- @ApiModelProperty(value = "统计日期;2022|202206|20220603")
- private Integer dateValue;
- @ApiModelProperty(value = "营业额;单位分")
- private Integer salesMoney;
- @ApiModelProperty(value = "销售笔数")
- private Integer salesCount;
- @ApiModelProperty(value = "销售商品数")
- private Integer goodsCount;
- @ApiModelProperty(value = "退款金额;单位分")
- private Integer refundMoney;
- @ApiModelProperty(value = "退款笔数")
- private Integer refundCount;
- @ApiModelProperty(value = "风险订单数")
- private Integer riskCount;
- @ApiModelProperty(value = "0元订单笔数")
- private Integer zeroCount;
- @ApiModelProperty(value = "设备故障数")
- private Integer deviceFaultCount;
- @ApiModelProperty(value = "创建时间")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime createTime;
- @ApiModelProperty(value = "更新时间")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private LocalDateTime updateTime;
- }
- @Data
- @Accessors(chain = true)
- public static class ListDTO {
- @ApiModelProperty(value = "商户ID")
- private Long mercId;
- @ApiModelProperty(value = "设备ID")
- private Long deviceId;
- @ApiModelProperty(value = "设备ID们")
- private List<Long> deviceIds;
- @ApiModelProperty(value = "统计类型;year|month|day")
- private String type;
- @ApiModelProperty(value = "统计日期;2022|202206|20220603")
- private Integer dateValue;
- @ApiModelProperty(value = "营业额;单位分")
- private Integer salesMoney;
- @ApiModelProperty(value = "销售笔数")
- private Integer salesCount;
- @ApiModelProperty(value = "销售商品数")
- private Integer goodsCount;
- @ApiModelProperty(value = "退款金额;单位分")
- private Integer refundMoney;
- @ApiModelProperty(value = "退款笔数")
- private Integer refundCount;
- @ApiModelProperty(value = "风险订单数")
- private Integer riskCount;
- @ApiModelProperty(value = "0元订单笔数")
- private Integer zeroCount;
- @ApiModelProperty(value = "设备故障数")
- private Integer deviceFaultCount;
- }
- /**
- * B端小程序订单分页统计 按天
- */
- @Data
- @Accessors(chain = true)
- public static class MercOrdersDayCountVO {
- @ApiModelProperty(value = "总订单数")
- private Integer orderNum;
- @ApiModelProperty(value = "订单总金额")
- private Integer orderTotalAmount;
- }
- @Data
- @Accessors(chain = true)
- public static class MercOrdersDayCountDTO {
- @JsonFormat(pattern = "yyyy-MM-dd")
- @ApiModelProperty(value = "日期(yyyy-MM-dd)")
- private DateTime orderDate;
- }
- @Data
- @Accessors(chain = true)
- public static class CountByDay {
- @ApiModelProperty(value = "设备ID")
- private Long deviceId;
- @ApiModelProperty(value = "商户ID")
- private Long mercId;
- @ApiModelProperty(value = "日期")
- private String dateValue;
- }
- @Data
- @Accessors(chain = true)
- public static class CountByMonth {
- @ApiModelProperty(value = "设备ID")
- private Long deviceId;
- @ApiModelProperty(value = "商户ID")
- private Long mercId;
- @ApiModelProperty(value = "日期")
- private String dateValue;
- }
- @Data
- @Accessors(chain = true)
- public static class PageByMercAndDate {
- @ApiModelProperty(value = "分页信息", required = true)
- private PageBean page;
- @NotNull(message = "mercId不能为空")
- @ApiModelProperty(value = "商户ID")
- private Long mercId;
- @NotBlank(message = "type不能为空")
- @ApiModelProperty(value = "统计类型;year|month|day")
- private String type;
- @NotNull(message = "beginDateValue不能为空")
- @ApiModelProperty(value = "统计开始日期")
- private Integer beginDateValue;
- @NotNull(message = "beginDateValue不能为空")
- @ApiModelProperty(value = "统计结束日期")
- private Integer endDateValue;
- @ApiModelProperty(value = "设备ID")
- private List<Long> deviceId;
- }
- }
|