TdCBusinessCouponServiceImpl.java
25.3 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
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
package com.zteits.business.biz.impl;
import org.apache.commons.collections4.CollectionUtils;
import com.clouds.common.utils.ListCopyUtil;
import com.github.pagehelper.PageInfo;
import com.xiaoleilu.hutool.util.BeanUtil;
import com.zteits.business.dao.OrderBusinessCouponSubDao;
import com.zteits.business.dao.TdCBusinessCouponDao;
import com.zteits.business.dao.TdCBusinessCouponRuleParkRelDao;
import com.zteits.business.domain.*;
import com.zteits.business.mapper.TdCBusinessCouponMapper;
import com.zteits.business.mapper.TdCBusinessOrderParkRecordMapper;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.apibase.bean.PageBean;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.business.dto.TdCBusinessCouponDTO;
import com.zteits.clouds.api.dto.business.dto.TdCBusinessCouponDetailSummaryDTO;
import com.zteits.clouds.api.dto.business.dto.TdCBusinessCouponSumStaDTO;
import com.zteits.clouds.api.dto.business.dto.TdCBusinessOrderParkRecordDTO;
import com.zteits.clouds.api.dto.business.param.*;
import com.zteits.clouds.api.dto.clouds.param.BatchDeleteByPrimaryKeyRequest;
import com.zteits.clouds.api.dto.clouds.param.BusinessCouponBatchSaveRequest;
import com.zteits.clouds.api.dto.order.parkorder.dto.OrderParkDTO;
import com.zteits.clouds.api.service.business.TdCBusinessCouponService;
import com.zteits.sys.pagepaper.PageBeanUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class TdCBusinessCouponServiceImpl implements TdCBusinessCouponService {
private static final Logger logger = LoggerFactory.getLogger(TdCBusinessCouponServiceImpl.class);
@Autowired
private TdCBusinessCouponDao tdCBusinessCouponDao;
@Autowired
private TdCBusinessCouponRuleParkRelDao tdCBusinessCouponRuleParkRelDao;
@Autowired
private OrderBusinessCouponSubDao orderBusinessCouponSubDao;
// 对应 商户停车订单减免记录表 td_c_business_order_park_record
@Autowired
private TdCBusinessOrderParkRecordMapper businessOrderParkRecordMapper;
@Autowired
private TdCBusinessCouponMapper tdCBusinessCouponMapper;
@Override
public BizResult<List<TdCBusinessCouponDTO>> queryTdCBusinessCoupon(TdCBusinessCouponRequest request) {
List<TdCBusinessCouponDTO> tdCBusinessCouponDTOS = new ArrayList<>();
List<TdCBusinessCoupon> tdCBusinessCoupons = tdCBusinessCouponDao.queryTdCBusinessCoupon(request);
if(CollectionUtils.isEmpty(tdCBusinessCoupons)){
return new BizResult<>(tdCBusinessCouponDTOS);
}
for (TdCBusinessCoupon source:tdCBusinessCoupons){
TdCBusinessCouponDTO dto = new TdCBusinessCouponDTO();
BeanUtils.copyProperties(source,dto);
tdCBusinessCouponDTOS.add(dto);
}
return new BizResult<>(tdCBusinessCouponDTOS);
}
/**
* 根据cardNo 查询信息
*
* @param request
* @return
*/
@Override
public BizResult<TdCBusinessCouponDTO> queryTdCBusinessCouponByCardNo(TdCBusinessCouponRequest request) {
TdCBusinessCouponDTO dto = null;
TdCBusinessCoupon entity = tdCBusinessCouponDao.queryByCardNo(request.getCardNo());
if(entity != null){
dto = new TdCBusinessCouponDTO();
BeanUtils.copyProperties(entity, dto);
}
return new BizResult<>(dto);
}
@Override
public BizResult<PageBean<TdCBusinessCouponDTO>> queryTdCBusinessCouponForPage(TdCBusinessCouponRequest request) {
PageBean<TdCBusinessCouponDTO> pageBean = new PageBean<>();
PageInfo<TdCBusinessCoupon> pageInfo = tdCBusinessCouponDao.queryTdCBusinessCouponForPage(request);
if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) {
PageBeanUtil.copyProperties(pageInfo, pageBean, TdCBusinessCouponDTO.class);
}
return new BizResult<>(pageBean);
}
@Override
public BizResult<Boolean> batchDeleteTdCBusinessCouponByPrimaryKey(BatchDeleteByPrimaryKeyRequest request) {
int delenum = tdCBusinessCouponDao.batchDeleteTdCBusinessCouponByPrimaryKey(request.getIds(),request.getOpId(),request.getsOpName());
return new BizResult<>(delenum>0);
}
@Override
public BizResult<Boolean> saveTdCBusinessCoupon(TdCBusinessCouponRequest request) {
TdCBusinessCoupon tdCBusinessCoupon = new TdCBusinessCoupon();
BeanUtils.copyProperties(request,tdCBusinessCoupon);
int saveNum = tdCBusinessCouponDao.saveTdCBusinessCoupon(tdCBusinessCoupon);
return new BizResult<>(saveNum>0);
}
/**
* 批量根据卡号将状态修改为已使用
*
* @param request
*/
@Override
public BizResult<Boolean> batchUpdateCouponUsedStatus(BusinessCouponBatchSaveRequest request) {
tdCBusinessCouponDao.batchUpdateCouponUsedStatus(request);
return new BizResult<>(Boolean.TRUE);
}
/**
* 批量保存
*
* @param requests
*/
@Override
public BizResult<Boolean> batchSaveTdCBusinessCoupon(BusinessCouponBatchSaveRequest requests) {
int saveNum = tdCBusinessCouponDao.batchSaveTdCBusinessCoupon(requests.getRequests());
return new BizResult<>(saveNum>0);
}
@Override
public BizResult<Boolean> updateByPrimaryKeySelective(TdCBusinessCouponRequest request) {
TdCBusinessCoupon tdCBusinessCoupon = new TdCBusinessCoupon();
BeanUtils.copyProperties(request,tdCBusinessCoupon);
int upNum = tdCBusinessCouponDao.updateByPrimaryKeySelective(tdCBusinessCoupon);
return new BizResult<>(upNum>0);
}
/**
* 车主领取完商户券
* 1、修改那张商户券使用状态和下发状态
* 2、修改该类别优惠券总的数量
* 3、记录到商户停车订单减免记录表
* @param businessCouponRequest
* @param businessCouponRuleParkRelRequest
* @param orderParkDTO
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public BizResult<Boolean> handleBusinessCoupon(TdCBusinessCouponRequest businessCouponRequest,
TdCBusinessCouponRuleParkRelRequest businessCouponRuleParkRelRequest,
OrderParkDTO orderParkDTO) {
// 更新优惠券使用状态为已使用和已下发
TdCBusinessCoupon tdCBusinessCoupon = new TdCBusinessCoupon();
BeanUtils.copyProperties(businessCouponRequest,tdCBusinessCoupon);
int num1 = tdCBusinessCouponDao.updateByPrimaryKeySelective(tdCBusinessCoupon);
logger.info("领取优惠券-修改优惠使用和下发状态, 更新数据个数:{}",num1);
// 修改优惠券状态总和
TdCBusinessCouponRuleParkRel tdCBusinessCouponRuleParkRel = new TdCBusinessCouponRuleParkRel();
BeanUtils.copyProperties(businessCouponRuleParkRelRequest, tdCBusinessCouponRuleParkRel);
int num2 = tdCBusinessCouponRuleParkRelDao.updateByPrimaryKeySelective(tdCBusinessCouponRuleParkRel);
logger.info("领取优惠券-修改优惠券总和, 更新数据个数:{}",num2);
// 增加商户停车订单减免记录表
TdCBusinessOrderParkRecord businessOrderParkRecord = new TdCBusinessOrderParkRecord();
businessOrderParkRecord.setOrderId(orderParkDTO.getOrderId());
businessOrderParkRecord.setPlNo(orderParkDTO.getPlNo());
businessOrderParkRecord.setPlName(orderParkDTO.getPlName());
businessOrderParkRecord.setCarNumber(orderParkDTO.getCarNumber());
businessOrderParkRecord.setParkInTime(orderParkDTO.getParkInTime());
businessOrderParkRecord.setBusinessId(businessCouponRequest.getBusinessId());
businessOrderParkRecord.setBusinessName(businessCouponRequest.getBusinessName());
businessOrderParkRecord.setbCouponId(businessCouponRequest.getId());
businessOrderParkRecord.setbCouponCode(businessCouponRequest.getCardNo());
businessOrderParkRecord.setType(businessCouponRequest.getCardType());
if(businessCouponRequest.getDiscValue() != null && !businessCouponRequest.getDiscValue().isEmpty()){
businessOrderParkRecord.setRealValue(Integer.valueOf(businessCouponRequest.getDiscValue()));
}
businessOrderParkRecord.setDataState(1);
businessOrderParkRecord.setOrgId(orderParkDTO.getOrgId());
businessOrderParkRecord.setCreateEmpId(businessCouponRequest.getCreateEmpid());
businessOrderParkRecord.setCreateDate(new Date());
businessOrderParkRecord.setTypeName(businessCouponRequest.getCardRuleName());
int num3 = businessOrderParkRecordMapper.insertSelective(businessOrderParkRecord);
logger.info("领取优惠券-增加商户停车订单减免记录表, 增加数据个数:{}",num3);
return new BizResult<>(true);
}
/**
* 卡券申领明细表
* @param request
* @return
*/
@Override
public BizResult<PageBean<TdCBusinessCouponDTO>> queryTdCBusinessCouponIssuedForPage(TdCBusinessCouponRequest request) {
PageBean<TdCBusinessCouponDTO> pageBean = new PageBean<>();
PageInfo<TdCBusinessCoupon> pageInfo = tdCBusinessCouponDao.queryTdCBusinessCouponIssuedForPage(request);
if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) {
PageBeanUtil.copyProperties(pageInfo, pageBean, TdCBusinessCouponDTO.class);
}
return new BizResult<>(pageBean);
}
/**
* 根据表td_c_business_coupon_rule_park_rel中的card_rel_park_no字段查询表td_c_business_coupon对应的没有使用的商券 仅返回一条
*
* @param request
* @return
*/
@Override
public BizResult<TdCBusinessCouponDTO> selectOneBusinessCouponByRelNo(TdCBusinessCouponRuleParkRelRequest request) {
TdCBusinessCoupon businessCoupon = tdCBusinessCouponDao.selectOneBusinessCouponByRelNo(request.getCardRelParkNo());
TdCBusinessCouponDTO dto = new TdCBusinessCouponDTO();
if (businessCoupon != null) {
BeanUtil.copyProperties(businessCoupon, dto);
}
return new BizResult<>(dto);
}
/**
* 车辆出场未产生费用时候,将这个车下发的优惠券回收
*/
@Override
@Transactional(rollbackFor = Exception.class)
public BizResult<Integer> businessCouponCallBack(BusCouponCallBackRequest request) {
// 根据停车场编号以及车牌号码,从 td_c_business_coupon 中获取已发放,未使用的列表
List<TdCBusinessCoupon> couponList = getIssuedUnUsedCouponList(request.getPlNo(), request.getCarNumber());
if(CollectionUtils.isEmpty(couponList)){
return new BizResult<>(0);
}
logger.info("待回收的优惠券个数:{}", couponList.size());
// 回收下发的优惠券
this.callBackCoupon(couponList);
// 根据优惠券购买的订单号,获取关联的 规则关联车场编码 集合
List<String> cardRelParkNoList = this.queryCardRelParkNoListByOrderIds(couponList);
// 修改 td_c_business_coupon_rule_park_rel card_num 增加 1
this.addBusinessCouponRuleParkRelCardNum(cardRelParkNoList);
return new BizResult<>(couponList.size());
}
/**
* 卡券申领明细总览
* @param request
* @return
*/
@Override
public BizResult<TdCBusinessCouponDetailSummaryDTO> couponDetailSummary(TdCBusinessCouponRequest request) {
// // 共18张券被领取,合计金额100.00元,其中已使用16张
TdCBusinessCouponDetailSummaryDTO dto = new TdCBusinessCouponDetailSummaryDTO();
/**被领取张数*/
int issuedCount = tdCBusinessCouponDao.getIssuedCount(request);
/**使用张数*/
int usedCount = tdCBusinessCouponDao.getUsedCount(request);
/**金额*/
String totalFee = tdCBusinessCouponDao.couponDetailSummary(request);
if(totalFee!=null && !totalFee.equals("")){
dto.setTotalFee(totalFee);
}else{
dto.setTotalFee("0");
}
dto.setIssuedCount(issuedCount);
dto.setUsedCount(usedCount);
return new BizResult<>(dto);
}
/**
* td_c_business_coupon_rule_park_rel card_num 增加1
*/
private void addBusinessCouponRuleParkRelCardNum(List<String> cardRelParkNoList) {
if(CollectionUtils.isEmpty(cardRelParkNoList)){
return;
}
for(String relNo : cardRelParkNoList){
tdCBusinessCouponRuleParkRelDao.addBusinessCouponRuleParkRelCardNum(relNo, 1);
}
}
/**
* 根据优惠券购买的订单号,获取关联的 规则关联车场编码 集合
*/
private List<String> queryCardRelParkNoListByOrderIds( List<TdCBusinessCoupon> couponList ) {
// 根据优惠券购买的订单号,获取关联的 规则关联车场编码 集合
List<String> orderCouponIds = couponList.stream().map(TdCBusinessCoupon::getOrderId).collect(Collectors.toList());
OrderBusinessCouponSubExample queryExample = new OrderBusinessCouponSubExample();
queryExample.createCriteria().andOrderNoIn(orderCouponIds);
List<OrderBusinessCouponSub> orderBusinessCouponSubs = orderBusinessCouponSubDao.selectByExample(queryExample);
return orderBusinessCouponSubs.stream().map(OrderBusinessCouponSub::getCardRelParkNo).collect(Collectors.toList());
}
/**
* 将已经发放 未使用的优惠券设置未 未发放、未使用的状态
* 修改 td_c_business_coupon 表
* `issued` 是否发放 0:未发放 1:已发放', 修改未 0
* `is_uesed` '是否已使用 1:已使用/绑定 0:未使用', 修改未 0
*/
private void callBackCoupon(List<TdCBusinessCoupon> couponList ) {
// 获取优惠券ID集合
List<Long> ids = couponList.stream().map(TdCBusinessCoupon::getId).collect(Collectors.toList());
TdCBusinessCoupon record = new TdCBusinessCoupon();
// 设置是否发放 0:未发放 1:已发放
record.setIssued(0);
// 设置是否已使用 1:已使用/绑定 0:未使用
record.setIsUesed(0);
TdCBusinessCouponExample updateQuery = new TdCBusinessCouponExample();
updateQuery.createCriteria().andIdIn(ids);
tdCBusinessCouponDao.updateByExampleSelective(record, updateQuery);
}
/**
* 根据商户券卡编号 设置为已经使用 修改IsUesed为1 已使用状态
* @param request
*/
@Override
public int setCouponUsed(TdCBusinessCouponRequest request) {
TdCBusinessCoupon record = new TdCBusinessCoupon();
// 设置是否发放 0:未发放 1:已发放
record.setIssued(1);
// 设置是否已使用 1:已使用/绑定 0:未使用
record.setIsUesed(1);
TdCBusinessCouponExample updateQuery = new TdCBusinessCouponExample();
updateQuery.createCriteria().andCardNoEqualTo(request.getCardNo());
return tdCBusinessCouponDao.updateByExampleSelective(record, updateQuery);
}
/**
* 设置 td_c_business_order_park_record 数据无效
* 更新商户券使用状态td_c_business_coupon
* 修改 td_c_business_coupon_rule_park_rel card_num 增加 1
* @param request
*/
@Transactional(rollbackFor = Exception.class)
@Override
public int setBusinessOrderParkRecordDataInvalid(BusinessOrderParkRecordRequest request) {
// 1、更新车辆券使用记录表td_c_business_order_park_record
TdCBusinessOrderParkRecord businessOrderParkRecord = new TdCBusinessOrderParkRecord();
businessOrderParkRecord.setDataState(0);
TdCBusinessOrderParkRecordExample example = new TdCBusinessOrderParkRecordExample();
example.createCriteria().andBCouponCodeEqualTo(request.getCouponCode());
businessOrderParkRecordMapper.updateByExampleSelective(businessOrderParkRecord,example);
logger.info("商户券{}--更新车辆领取记录表",request.getCouponCode());
//2、更新商户券使用状态td_c_business_coupon
TdCBusinessCoupon record = new TdCBusinessCoupon();
// 设置是否发放 0:未发放 1:已发放
record.setIssued(0);
// 设置是否已使用 1:已使用/绑定 0:未使用
record.setIsUesed(0);
TdCBusinessCouponExample updateQuery = new TdCBusinessCouponExample();
updateQuery.createCriteria().andCardNoEqualTo(request.getCouponCode());
tdCBusinessCouponDao.updateByExampleSelective(record, updateQuery);
logger.info("商户券{}--更新商户券表",request.getCouponCode());
//3、根据优惠券购买的订单号,获取关联的 规则关联车场编码 集合
TdCBusinessCoupon businessCoupon = tdCBusinessCouponDao.queryByCardNo(request.getCouponCode());
List<OrderBusinessCouponSub> list = orderBusinessCouponSubDao.queryOrderBusinessCouponSubByOrderNo(businessCoupon.getOrderId());
if(list != null && list.size() > 0 ){
List<String> cardRelParkNoList = new ArrayList<>();
cardRelParkNoList.add(list.get(0).getCardRelParkNo());
// 修改 td_c_business_coupon_rule_park_rel card_num 增加 1
this.addBusinessCouponRuleParkRelCardNum(cardRelParkNoList);
logger.info("商户券{}--更新商户券数量",request.getCouponCode());
}
return 1;
}
/**
* 根据停车场编号以及车牌号码,从 td_c_business_coupon 中获取已发放,未使用的列表
*/
private List<TdCBusinessCoupon> getIssuedUnUsedCouponList(String plNo, String carNumber) {
TdCBusinessCouponExample couponQuery = new TdCBusinessCouponExample();
couponQuery.createCriteria().andPlNoEqualTo(plNo)
.andCarNumberEqualTo(carNumber)
.andIsUesedEqualTo(0)
.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
return tdCBusinessCouponDao.selectByExample(couponQuery);
}
/**
* 根据停车场编、车牌号码和领券时间条件,从 td_c_business_coupon中获取已领取但未使用的列表,
*/
@Override
public List<TdCBusinessCouponDTO> getIssuedAndUnUsedCouponList(TdCBusinessCouponRequest request) {
// plNo在数据库存储的形式["P15040000000058"],此处进行转换
String plNoDTO = "[\"" + request.getPlNo() + "\"]";
TdCBusinessCouponExample couponQuery = new TdCBusinessCouponExample();
couponQuery.createCriteria()
.andPlNoEqualTo(plNoDTO)
.andCarNumberEqualTo(request.getCarNumber())
.andIsUesedEqualTo(0)
.andIssuedEqualTo(1)
.andIssuedEffDateGreaterThan(request.getEndTime())
.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
List<TdCBusinessCoupon> list = tdCBusinessCouponDao.selectByExample(couponQuery);
List<TdCBusinessCouponDTO> businessCoupons = new ArrayList<>();
ListCopyUtil.listCopyProperties(list, businessCoupons, TdCBusinessCouponDTO.class);
return businessCoupons;
}
/**
* 根据商户券编号couponCode 更新表 td_c_business_order_park_record 加入出场时间、实际金额、应付金额
* @param request
* couponCode 商户券
* parkOutTime 出场时间
* orderActFee 实缴费用
* orderTotalFee 应付费用
*/
@Override
public int updateBusinessOrderParkRecord(BusinessOrderParkRecordRequest request){
TdCBusinessOrderParkRecord businessOrderParkRecord = new TdCBusinessOrderParkRecord();
businessOrderParkRecord.setParkOutTime(request.getParkOutTime());
businessOrderParkRecord.setOrderActFee(request.getOrderActFee());
businessOrderParkRecord.setOrderTotalFee(request.getOrderTotalFee());
businessOrderParkRecord.setParkingDuration(request.getParkingDuration());
if(request.getRealValue() != null && !request.getRealValue().isEmpty()){
businessOrderParkRecord.setRealValue(Integer.valueOf(request.getRealValue()));
}
TdCBusinessOrderParkRecordExample example = new TdCBusinessOrderParkRecordExample();
example.createCriteria().andBCouponCodeEqualTo(request.getCouponCode())
.andDataStateEqualTo(1);
return businessOrderParkRecordMapper.updateByExampleSelective(businessOrderParkRecord,example);
}
/**
* 根据商户券编号couponCode 更新表 td_c_business_order_park_record 加入出场时间、实际金额、应付金额
*
* @param request
* couponCode 商户券
* parkOutTime 出场时间
* orderActFee 实缴费用
* orderTotalFee 应付费用
* carNumber 车牌号码
*/
@Override
public int updateBusinessOrderParkRecord(BusinessOrderParkRecordRequest request,String carNumber){
TdCBusinessOrderParkRecord businessOrderParkRecord = new TdCBusinessOrderParkRecord();
businessOrderParkRecord.setParkOutTime(request.getParkOutTime());
businessOrderParkRecord.setOrderActFee(request.getOrderActFee());
businessOrderParkRecord.setOrderTotalFee(request.getOrderTotalFee());
businessOrderParkRecord.setParkingDuration(request.getParkingDuration());
businessOrderParkRecord.setCarType(request.getCarType());
if(request.getRealValue() != null && !request.getRealValue().isEmpty()){
businessOrderParkRecord.setRealValue(Integer.valueOf(request.getRealValue()));
}
TdCBusinessOrderParkRecordExample example = new TdCBusinessOrderParkRecordExample();
example.createCriteria().andBCouponCodeEqualTo(request.getCouponCode())
.andDataStateEqualTo(1)
.andCarNumberEqualTo(carNumber);
return businessOrderParkRecordMapper.updateByExampleSelective(businessOrderParkRecord,example);
}
/**
* 20221214增加商户券使用统计表
*/
@Override
public BizResult<PageBean<TdCBusinessCouponSumStaDTO>> queryTdCBusinessCouponSumStaForPage(TdCBusinessCouponSumStaRequest request) {
PageBean<TdCBusinessCouponSumStaDTO> pageBean = new PageBean<>();
PageInfo<TdCBusinessCouponSumStaDTO> pageInfo = tdCBusinessCouponDao.queryTdCBusinessCouponSumStaForPage(request);
if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) {
PageBeanUtil.copyProperties(pageInfo, pageBean, TdCBusinessCouponSumStaDTO.class);
}
return new BizResult<>(pageBean);
}
/**
* 通过orderId获取一条商户停车订单减免记录表数据
* @param tdCBusinessCouponRequest
* @return
*/
@Override
public BizResult<TdCBusinessOrderParkRecordDTO> getBusinessOrderParkRecord(TdCBusinessCouponRequest tdCBusinessCouponRequest) {
TdCBusinessOrderParkRecordExample tdCBusinessOrderParkRecordExample = new TdCBusinessOrderParkRecordExample();
tdCBusinessOrderParkRecordExample.createCriteria()
.andOrderIdEqualTo(tdCBusinessCouponRequest.getOrderId());
List<TdCBusinessOrderParkRecord> list = businessOrderParkRecordMapper.selectByExample(tdCBusinessOrderParkRecordExample);
if (CollectionUtils.isEmpty(list)) {
return new BizResult<>(null);
} else {
TdCBusinessOrderParkRecordDTO tdCBusinessOrderParkRecordDTO = new TdCBusinessOrderParkRecordDTO();
BeanUtils.copyProperties(list.get(0), tdCBusinessOrderParkRecordDTO);
return new BizResult<>(tdCBusinessOrderParkRecordDTO);
}
}
/**
* 根据orderpark停车订单号查询领取优惠券的信息和使用状态
* @param tdCBusinessCouponRequest
* @return
*/
@Override
public BizResult<TdCBusinessCouponDTO> getBusinessCouponByOrderId(TdCBusinessCouponRequest tdCBusinessCouponRequest) {
TdCBusinessOrderParkRecordExample tdCBusinessOrderParkRecordExample = new TdCBusinessOrderParkRecordExample();
tdCBusinessOrderParkRecordExample.createCriteria()
.andOrderIdEqualTo(tdCBusinessCouponRequest.getOrderId());
List<TdCBusinessOrderParkRecord> list = businessOrderParkRecordMapper.selectByExample(tdCBusinessOrderParkRecordExample);
if (CollectionUtils.isNotEmpty(list)) {
TdCBusinessOrderParkRecord tdCBusinessOrderParkRecord = list.get(0);
TdCBusinessCouponExample tdCBusinessCouponExample = new TdCBusinessCouponExample();
// 领取但是没有使用
tdCBusinessCouponExample.createCriteria()
.andIdEqualTo(tdCBusinessOrderParkRecord.getbCouponId())
.andIssuedEqualTo(1)
.andIsUesedEqualTo(0);
List<TdCBusinessCoupon> tdCBusinessCouponList = tdCBusinessCouponMapper.selectByExample(tdCBusinessCouponExample);
if (CollectionUtils.isNotEmpty(tdCBusinessCouponList)) {
TdCBusinessCoupon tdCBusinessCoupon = tdCBusinessCouponList.get(0);
TdCBusinessCouponDTO tdCBusinessCouponDTO = new TdCBusinessCouponDTO();
BeanUtils.copyProperties(tdCBusinessCoupon, tdCBusinessCouponDTO);
return new BizResult<>(tdCBusinessCouponDTO);
}
}
return new BizResult<>(null);
}
}