e80df919
atao
init
|
1
2
3
4
5
6
7
8
9
10
11
|
package com.rnt.service;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
|
80db26ae
王富生
提交
|
12
|
import com.alibaba.fastjson.JSONObject;
|
9a7cfd5c
atao
提交代码
|
13
|
|
e80df919
atao
init
|
14
15
16
17
18
19
20
|
import com.jfinal.aop.Before;
import com.jfinal.aop.Duang;
import com.jfinal.log.Log;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.tx.Tx;
import com.rnt.commo.enums.DSEnum;
import com.rnt.commo.enums.DataStatusEnum;
|
e80df919
atao
init
|
21
22
23
24
25
26
|
import com.rnt.commo.enums.OrderTypeEnum;
import com.rnt.commo.enums.PayOrderEnum;
import com.rnt.commo.enums.SequenceTypeEnum;
import com.rnt.model.zf.CardCoupons;
import com.rnt.model.zf.Order;
import com.rnt.model.zf.OrderDetailCard;
|
80db26ae
王富生
提交
|
27
|
import com.rnt.model.zf.OrderDetailPark;
|
e80df919
atao
init
|
28
29
|
import com.rnt.model.zf.ParkOrderFlow;
import com.rnt.model.zf.PayOrder;
|
e80df919
atao
init
|
30
31
|
import com.rnt.utils.SequenceUtil;
import com.rnt.vo.OrderVO;
|
9a7cfd5c
atao
提交代码
|
32
|
import org.beetl.sql.core.kit.StringKit;
|
e80df919
atao
init
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public class OrderService {
IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class);
private static final Log logger = Log.getLog(OrderService.class);
/**
* 支付成功后调用的函数
*
* @param payOrderId 支付单ID
* @return 是否成功
*/
@Before(Tx.class)
|
9a7cfd5c
atao
提交代码
|
47
|
public Boolean payOrderSuccess(String payOrderId, String transId) {
|
e80df919
atao
init
|
48
|
logger.info("========支付成功后,修改单据状态==== start ====");
|
9a7cfd5c
atao
提交代码
|
49
|
logger.info("========支付成功后,修改单据状态 入参为:payOrderId=" + payOrderId + "; transId=" + transId);
|
e80df919
atao
init
|
50
|
//修改支付单状态
|
9a7cfd5c
atao
提交代码
|
51
52
|
PayOrder payOrder = PayOrder.dao.findFirst("select * from td_b_pay_order t where t.pay_order_id = ?",
payOrderId);
|
e80df919
atao
init
|
53
54
55
56
57
58
59
60
61
|
payOrder.setPayOrderState(Integer.valueOf(PayOrderEnum.PAY_ORDER_STATE_PAY_SUCCESS.getValue()));
//微信端的订单交易流水
payOrder.setRltPayOrderId(transId);
boolean flag = payOrder.update();
logger.info("修改支付单,flag状态为: flag=" + flag);
String orderId = payOrder.getRltOrderId();
//修改订单状态
Order order = Order.dao.findFirst("select * from td_b_order t where t.order_id = ?", orderId);
order.setOrderState(OrderTypeEnum.ORDER_TYPE_3.value());
|
9a7cfd5c
atao
提交代码
|
62
|
flag = flag & order.update();
|
e80df919
atao
init
|
63
64
65
66
67
68
69
70
71
|
logger.info("修改订单,flag状态为: flag=" + flag);
//查询订单明细表
OrderDetailCard orderDetailCard = OrderDetailCard.dao.findFirst(
"select * from td_b_order_detail_card t where t.order_id = ?", orderId);
Integer orderDetailType = orderDetailCard.getOrderDetailType();
Long cardCoponsId = orderDetailCard.getPersonCardId();
CardCoupons cardCoupons = CardCoupons.dao.findById(cardCoponsId);
|
9a7cfd5c
atao
提交代码
|
72
73
74
|
//推送状态:1已推送,0:未推送
//将卡卷信息推送状态设置为0: 未推送
cardCoupons.setPushState(0);
|
e80df919
atao
init
|
75
76
|
Integer orderType = order.getOrderType();
|
9a7cfd5c
atao
提交代码
|
77
|
if (OrderTypeEnum.PARK_ORDER_TYPE_1.value().equals(orderType)) {
|
e80df919
atao
init
|
78
79
80
81
|
/**停车订单*/
/** 上面已将订单状态修改为已支付,无需后续操作了*/
logger.info("停车订单修改,将订单状态修改为已支付");
|
9a7cfd5c
atao
提交代码
|
82
83
|
} else if (OrderTypeEnum.PARK_ORDER_TYPE_2.value().equals(orderType) || OrderTypeEnum.PARK_ORDER_TYPE_3.value()
.equals(orderType)) {
|
e80df919
atao
init
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/**年卡、月卡订单*/
if (OrderTypeEnum.ORDER_DETAIL_TYPE_BUY_CARD.value().equals(orderDetailType)) {
/**购卡单*/
cardCoupons.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
flag = flag & cardCoupons.update();
logger.info("购卡单修改数据状态,flag状态为: flag=" + flag);
} else if (OrderTypeEnum.ORDER_DETAIL_TYPE_RENEW_CARD.value().equals(orderDetailType)) {
/**续费单*/
//1、 从订单明细表中获取失效日期
Date expDate = orderDetailCard.getExpDate();
//2、更改个人卡卷表失效日期
cardCoupons.setExpDate(expDate);
flag = flag & cardCoupons.update();
logger.info("支付单修改数据状态,flag状态为: flag=" + flag);
} else {
logger.info("无法识别的订单类型 orderDetailType=" + orderDetailType);
}
|
9a7cfd5c
atao
提交代码
|
101
|
} else {
|
e80df919
atao
init
|
102
103
104
|
logger.info("无法识别的订单类型 orderType=" + orderType);
}
|
e80df919
atao
init
|
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
|
logger.info("========支付成功后,修改单据状态==== end ====");
return flag;
}
/**
* 查询支付成功的历史车牌,最多3个.<br/>
*
* @param custId 个人客户id
* @return
*/
public List<String> queryHistoryCarNum(String custId) {
List<String> list = new ArrayList<String>();
StringBuffer sql = new StringBuffer("select a.car_number");
sql.append(" from td_b_order a ");
sql.append(" where a.order_state in(3,4) ");
sql.append(" and cust_person_id= ? ");
sql.append(" group by a.car_number,a.create_date");
sql.append(" order by a.create_date desc ");
sql.append(" limit 0,3 ");
List<Order> orderList = new Order().find(sql.toString(), custId);
if (orderList != null && orderList.size() > 0) {
for (Order order : orderList) {
list.add(order.getCarNumber());
}
}
return list;
}
|
9a7cfd5c
atao
提交代码
|
134
|
|
80db26ae
王富生
提交
|
135
136
|
/**
* 通过订单好
|
9a7cfd5c
atao
提交代码
|
137
|
*
|
80db26ae
王富生
提交
|
138
139
140
|
* @param orderId
* @return
*/
|
9a7cfd5c
atao
提交代码
|
141
142
143
144
145
146
|
public OrderDetailPark queryDetailParkByOrderId(String orderId) {
StringBuffer sql = new StringBuffer("select order_id,record_id");
sql.append(" from td_b_order_detail_park a ");
sql.append(" where a.data_state =1");
sql.append(" and a.order_id ? ");
OrderDetailPark orderDetailPark = new OrderDetailPark().findFirst(sql.toString(), orderId);
|
80db26ae
王富生
提交
|
147
148
|
return orderDetailPark;
}
|
e80df919
atao
init
|
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/**
* 查询待支付的停车订单.<br/>
* 步骤:
* 1.查询待支付的订单
* 1.调用艾润接口查询费用.<br/>
* 3.更新订单费用.<br/>
* 4.更新订单明细费用.<br/>
* 5.插入订单流水表.
*
* @param carNum
* @throws ParseException
*/
|
81145463
王富生
更改车牌号支付流程
|
162
163
|
public OrderVO queryParkOrderForNotPay(String orderId) throws ParseException {
logger.info("---begin订单信息更新,orderId=" + orderId);
|
e80df919
atao
init
|
164
165
|
OrderVO orderVO = new OrderVO();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
9a7cfd5c
atao
提交代码
|
166
|
Map<String, String> resultmap = new HashMap<String, String>();
|
80db26ae
王富生
提交
|
167
|
//1.查询支付订单
|
81145463
王富生
更改车牌号支付流程
|
168
|
Order order = this.findOrderByOrderId(orderId);
|
9a7cfd5c
atao
提交代码
|
169
|
logger.info("通过车牌号查询到的支付订单信息结果=" + JSONObject.toJSON(order));
|
80db26ae
王富生
提交
|
170
171
|
//2.调用查询费用接口
if (order != null && StringKit.isNotBlank(order.getOrderId())) {
|
9a7cfd5c
atao
提交代码
|
172
173
|
resultmap = this.chosseBillQuery(order.getCarNumber(), order);
}
|
e80df919
atao
init
|
174
175
176
|
boolean orderUpdateFlg = false;
int updateOrderDetailFlg = 0;
//3.更新订单
|
9a7cfd5c
atao
提交代码
|
177
178
179
180
181
182
183
184
185
186
187
188
189
|
if (resultmap != null && resultmap.size() > 0) {
Order updateOrder = new Order();
updateOrder.setId(order.getId());
updateOrder.setOrderId(order.getOrderId());
updateOrder.setOrderType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_PARK.getValue()));
updateOrder.setOrderState(Integer.valueOf(OrderTypeEnum.ORDER_TYPE_2.value()));
updateOrder.setOrderPayedFee(new BigDecimal(resultmap.get("order_payed_fee")));
updateOrder.setOrderNotPayFee(new BigDecimal(resultmap.get("order_not_pay_fee")));
updateOrder.setOrderTotalFee(new BigDecimal(resultmap.get("order_total_fee")));
updateOrder.setModfiyDate(new Date());
/**更新订单表.*/
orderUpdateFlg = updateOrder.update();
logger.info("更新订单结果=" + (orderUpdateFlg == true ? "成功!" : "失败!"));
|
e80df919
atao
init
|
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
if (orderUpdateFlg) {
StringBuffer sqls = new StringBuffer("update td_b_order_detail_park a ");
sqls.append("set a.order_id =?,");
sqls.append("a.record_id=?,");
sqls.append("a.park_in_time=?,");
sqls.append("a.park_out_time =?,");
sqls.append("a.parking_duration=?,");
sqls.append("a.modfiy_date= ?,");
sqls.append("a.remark= '查询费用后更新'");
sqls.append(" where a.order_id =?");
/**更新订单明细表.*/
updateOrderDetailFlg = Db.use(DSEnum.ZF_DATASOURCE.name()).update(sqls.toString(),
order.getOrderId(),
|
80db26ae
王富生
提交
|
204
205
206
207
|
resultmap.get("record_id"),
format.parse(resultmap.get("park_in_time")),
format.parse(resultmap.get("park_out_time")),
Long.valueOf(resultmap.get("parking_duration")),
|
e80df919
atao
init
|
208
209
|
new Date(),
order.getOrderId());
|
9a7cfd5c
atao
提交代码
|
210
|
logger.info("更新停车订单明细结果=" + (updateOrderDetailFlg > 0 ? "成功" : "失败"));
|
80db26ae
王富生
提交
|
211
|
if (updateOrderDetailFlg > 0) {
|
9a7cfd5c
atao
提交代码
|
212
|
//封装返回数据
|
e80df919
atao
init
|
213
|
orderVO.setOrderId(order.getOrderId());
|
9a7cfd5c
atao
提交代码
|
214
|
}
|
80db26ae
王富生
提交
|
215
|
/**插入订单流水.*/
|
e80df919
atao
init
|
216
217
218
219
220
221
222
|
ParkOrderFlow parkOrderFlow = new ParkOrderFlow();
parkOrderFlow.setParkOrderFolwId(SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PARK_FLOW.value()));
parkOrderFlow.setParkOrderId(order.getOrderId());
parkOrderFlow.setProcTime(new Date());
parkOrderFlow.setProcResult(1);
parkOrderFlow.save();
|
9a7cfd5c
atao
提交代码
|
223
|
}
|
e80df919
atao
init
|
224
|
}
|
9a7cfd5c
atao
提交代码
|
225
226
|
logger.info("---end订单信息更新,结果=" + JSONObject.toJSON(orderVO));
|
e80df919
atao
init
|
227
228
|
return orderVO;
}
|
9a7cfd5c
atao
提交代码
|
229
|
|
e80df919
atao
init
|
230
|
/**
|
80db26ae
王富生
提交
|
231
|
* 查询费用艾润或者青岛路侧费用查询接口.<br/>
|
9a7cfd5c
atao
提交代码
|
232
|
*
|
80db26ae
王富生
提交
|
233
|
* @param carNum
|
e80df919
atao
init
|
234
235
|
* @return
*/
|
9a7cfd5c
atao
提交代码
|
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
public Map<String, String> chosseBillQuery(String carNum, Order order) {
OrderService orderService = Duang.duang(OrderService.class);
IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class);
Map<String, String> reultMap = new HashMap<String, String>();
if (order != null && StringKit.isNotBlank(order.getOrderId())) {
logger.info("查询费用来源=" + (order.getSourceType() == 2 ? "调用青岛路侧费用查询接口" : "调用艾润查询费用接口"));
if ("1".equals(String.valueOf(order.getSourceType()))) {//道闸:调用艾润查询费用接口
/**调用艾润查询费用接口.*/
reultMap = iRainQueryService.billQuery(carNum, order.getParkId());
} else if ("2".equals(String.valueOf(order.getSourceType()))
&& StringKit.isNotBlank(order.getOrderId())) {//调用青岛路侧查询费用接口
/**查询停车记录id.*/
OrderDetailPark OrderDetailPark = orderService.queryDetailParkByOrderId(order.getOrderId());
if (OrderDetailPark != null && StringKit.isNotBlank(OrderDetailPark.getRecordId())) {
/**调用青岛路侧费用查询接口.*/
reultMap = iRainQueryService.queryBillRoadside(OrderDetailPark.getRecordId());
}
|
e80df919
atao
init
|
253
|
|
9a7cfd5c
atao
提交代码
|
254
255
256
257
|
}
}
return reultMap;
}
|
80db26ae
王富生
提交
|
258
|
|
e80df919
atao
init
|
259
260
261
262
263
264
265
266
267
|
/**
* 通过车牌查询待核算支付单信息.<br/>
*
* @param
*/
public Order findOrderByCarNum(String carNum) {
//1.查询待支付订单
StringBuffer sql = new StringBuffer(
"select a.id, a.order_id,a.car_number,a.order_title,a.order_payed_fee,a.order_not_pay_fee,a"
|
81145463
王富生
更改车牌号支付流程
|
268
|
+ ".order_total_fee,a.park_id,source_type,park_name");
|
e80df919
atao
init
|
269
270
271
|
sql.append(" from td_b_order a");
sql.append(" where a.order_state in(1,2,3)");
sql.append(" and a.car_number=?");
|
81145463
王富生
更改车牌号支付流程
|
272
|
sql.append(" and a.data_state=1");
|
e950ab14
王富生
提交
|
273
|
sql.append(" order by a.create_date DESC");
|
e80df919
atao
init
|
274
275
|
Order order = new Order().findFirst(sql.toString(), carNum);
|
e80df919
atao
init
|
276
277
278
|
return order;
}
|
9a7cfd5c
atao
提交代码
|
279
|
|
81145463
王富生
更改车牌号支付流程
|
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
|
/**
* 通过车牌查询待核算支付单信息.<br/>
*
* @param
*/
public Order findOrderByOrderId(String orderId) {
//1.查询待支付订单
StringBuffer sql = new StringBuffer(
"select a.id, a.order_id,a.car_number,a.order_title,a.order_payed_fee,a.order_not_pay_fee,a"
+ ".order_total_fee,a.park_id,source_type,park_name");
sql.append(" from td_b_order a");
sql.append(" where a.order_state in(1,2,3)");
sql.append(" and a.order_id=?");
sql.append(" and a.data_state=1");
Order order = new Order().findFirst(sql.toString(), orderId);
return order;
}
|
e80df919
atao
init
|
297
|
|
e80df919
atao
init
|
298
|
}
|