BillingInfoUtil.java
3.25 KB
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
package com.zteits.bill.util;
import java.util.Date;
import java.util.List;
import com.xiaoleilu.hutool.date.DateUnit;
import com.xiaoleilu.hutool.date.DateUtil;
import com.zteits.clouds.api.dto.bill.billing.param.BillingReq;
import com.zteits.clouds.api.dto.bill.billinglog.dto.BillingLogDTO;
import com.zteits.clouds.api.dto.bill.billinglog.dto.BillingLogDetailDTO;
import com.zteits.clouds.api.dto.bill.billinglog.dto.BillingLogOfDayDTO;
/**
* Copyright: Copyright (c) 2017 zteits
*
* @ClassName: com.zteits.billing.util
* @Description:
* @version: v1.0.0
* @author: atao
* @date: 2017/11/7 下午2:37
* Modification History:
* Date Author Version Description
* ---------------------------------------------------------*
* 2017/11/7 atao v1.0.0 创建
*/
public class BillingInfoUtil {
private static final ThreadLocal<BillingLogDTO> tl = new ThreadLocal<> ();
private BillingInfoUtil(){
}
public static BillingLogDTO init(BillingReq req) {
tl.remove();
BillingLogDTO dto = new BillingLogDTO();
dto.setPlNo(req.getPlNo());
dto.setCarNo(req.getCarNo());
dto.setCarType(req.getCarType());
dto.setInTime(req.getInTime());
dto.setOutTime(req.getOutTime());
dto.setParkDuration(DateUtil.between(req.getInTime(), req.getOutTime(), DateUnit.SECOND));
tl.set(dto);
return dto;
}
/**
* 生成新的一天计费日志对象
*
* @param date
* @return
*/
public static BillingLogOfDayDTO newDayLog(Date date) {
List<BillingLogOfDayDTO> dayLogs = tl.get().getDayLogs();
BillingLogOfDayDTO dto = new BillingLogOfDayDTO();
dto.setDay(date);
dayLogs.add(dto);
return dto;
}
/**
* 获取最后一天计费日志对象
*
* @return
*/
public static BillingLogOfDayDTO getLastBillingLogDay() {
List<BillingLogOfDayDTO> dayLogs = tl.get().getDayLogs();
if (null == dayLogs || 0 == dayLogs.size()) {
return null;
}
return dayLogs.get(dayLogs.size() - 1);
}
/**
* @return
*/
public static BillingLogDetailDTO newDayLogDetail() {
BillingLogDetailDTO billingLogDetailDTO = new BillingLogDetailDTO();
BillingLogOfDayDTO billingLogOfDayDTO = getLastBillingLogDay();
if (null != billingLogOfDayDTO) {
List<BillingLogDetailDTO> detailBillingLogs = billingLogOfDayDTO.getDetailBillingLogs();
detailBillingLogs.add(billingLogDetailDTO);
}
return billingLogDetailDTO;
}
/**
* 获取最后一条计费规则明细
*
* @return
*/
public static BillingLogDetailDTO getLastBillingLogDetail() {
BillingLogOfDayDTO billingLogOfDayDTO = getLastBillingLogDay();
if (null != billingLogOfDayDTO) {
List<BillingLogDetailDTO> detailBillingLogs = billingLogOfDayDTO.getDetailBillingLogs();
return detailBillingLogs.get(detailBillingLogs.size() - 1);
} else {
return null;
}
}
/**
* 获取计费日志对象
*
* @return
*/
public static BillingLogDTO getBillingLog() {
return tl.get();
}
public static void remove() {
tl.remove();
}
}