xiangpei
2025-05-22 0d9214d780c5093165f566f3e6f0c60f5d8aead7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package cn.lili.modules.store.entity.dto;
 
import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.store.entity.enums.BillStatusEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
 
import java.util.Date;
 
/**
 * 结算单搜索参数
 *
 * @author Chopper
 * @since 2021/3/17 6:08 下午
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BillSearchParams extends PageVO {
 
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "起始日期")
    private String startDate;
 
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束日期")
    private String endDate;
 
    @ApiModelProperty(value = "账单号")
    private String sn;
 
    /**
     * @see BillStatusEnum
     */
    @ApiModelProperty(value = "状态:OUT(已出账),CHECK(已对账),EXAMINE(已审核),PAY(已付款)")
    private String billStatus;
 
    @ApiModelProperty(value = "流水类型")
    private String flowType;
 
    @ApiModelProperty(value = "店铺名称")
    private String storeName;
 
    @ApiModelProperty(value = "店铺ID")
    private String storeId;
 
    @ApiModelProperty(value = "支付方式")
    private String paymentName;
 
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "起始日期")
    private Date startTime;
 
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "起始日期")
    private Date endTime;
 
    public <T> QueryWrapper<T> queryWrapper() {
        QueryWrapper<T> wrapper = new QueryWrapper<>();
 
        //创建时间
        if (CharSequenceUtil.isNotEmpty(startDate) && CharSequenceUtil.isNotEmpty(endDate)) {
            wrapper.between("bill_time", startDate, endDate);
        } else if (CharSequenceUtil.isNotEmpty(startDate)) {
            wrapper.ge("bill_time", startDate);
        } else if (CharSequenceUtil.isNotEmpty(endDate)) {
            wrapper.le("bill_time", endDate);
        }
        //账单号
        wrapper.eq(CharSequenceUtil.isNotEmpty(sn), "sn", sn);
        //结算状态
        wrapper.eq(CharSequenceUtil.isNotEmpty(billStatus), "bill_status", billStatus);
        //店铺名称
        wrapper.eq(CharSequenceUtil.isNotEmpty(storeName), "store_name", storeName);
        //按卖家查询
        wrapper.eq(CharSequenceUtil.isNotEmpty(storeId),
                "store_id", storeId);
 
        //按卖家查询
        wrapper.eq(CharSequenceUtil.isNotEmpty(paymentName),
                "payment_name", paymentName);
 
        wrapper.eq(CharSequenceUtil.isNotEmpty(flowType), "flow_type", flowType);
        if (startTime != null && endTime != null) {
            wrapper.between("bill_time", startTime, endTime);
        } else if (startTime != null) {
            wrapper.ge("bill_time", startTime);
        } else if (endTime != null) {
            wrapper.le("bill_time", endTime);
        }
 
        return wrapper;
    }
 
    public <T> QueryWrapper<T> queryWrapperBillList() {
        QueryWrapper<T> wrapper = new QueryWrapper<>();
 
        //创建时间
        if (CharSequenceUtil.isNotEmpty(startDate) && CharSequenceUtil.isNotEmpty(endDate)) {
            wrapper.between("create_time", startDate, endDate);
        } else if (CharSequenceUtil.isNotEmpty(startDate)) {
            wrapper.ge("create_time", startDate);
        } else if (CharSequenceUtil.isNotEmpty(endDate)) {
            wrapper.le("create_time", endDate);
        }
        //账单号
        wrapper.eq(CharSequenceUtil.isNotEmpty(sn), "sn", sn);
        //结算状态
        wrapper.eq(CharSequenceUtil.isNotEmpty(billStatus), "bill_status", billStatus);
        //店铺名称
        wrapper.eq(CharSequenceUtil.isNotEmpty(storeName), "store_name", storeName);
        //按卖家查询
        wrapper.eq(CharSequenceUtil.isNotEmpty(storeId),
                "store_id", storeId);
 
        //按卖家查询
        wrapper.eq(CharSequenceUtil.isNotEmpty(paymentName),
                "payment_name", paymentName);
 
        wrapper.eq(CharSequenceUtil.isNotEmpty(flowType), "flow_type", flowType);
        if (startTime != null && endTime != null) {
            wrapper.between("create_time", startTime, endTime);
        } else if (startTime != null) {
            wrapper.ge("create_time", startTime);
        } else if (endTime != null) {
            wrapper.le("create_time", endTime);
        }
 
        return wrapper;
    }
 
}