|
@@ -69,8 +69,7 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public boolean add(DreOrder dreOrder) {
|
|
|
- String orderNumber = UUID.randomUUID().toString(true);
|
|
|
- dreOrder.setOrderNumber(orderNumber);
|
|
|
+ dreOrder.setOrderNumber(generateOrderNumber());
|
|
|
this.save(dreOrder);
|
|
|
dreOrderDetailService.insertList(dreOrder);
|
|
|
((DreOrderServiceImpl) AopContext.currentProxy()).sendWxMessage(dreOrder);
|
|
@@ -79,7 +78,12 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
|
|
|
|
|
|
@Override
|
|
|
public boolean update(DreOrder dreOrder) {
|
|
|
- return this.updateById(dreOrder);
|
|
|
+ DreOrder oldOrder = this.getById(dreOrder.getId());
|
|
|
+ if (dreOrder.getOrderStatus() > oldOrder.getOrderStatus()){
|
|
|
+ return this.updateById(dreOrder);
|
|
|
+ }else {
|
|
|
+ throw new CustomException("该订单已被处理");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -99,7 +103,12 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
|
|
|
.in(CollectionUtils.isNotEmpty(dreOrderRequest.getStatusList()),DreOrder::getOrderStatus,dreOrderRequest.getStatusList())
|
|
|
.orderByDesc(DreOrder::getId);
|
|
|
page = this.page(page,queryWrapper);
|
|
|
- return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
|
|
|
+ List<DreOrder> records = page.getRecords();
|
|
|
+ if (CollectionUtils.isNotEmpty(records)){
|
|
|
+ List<DreOrderDetail> listByOrderIds = this.getListByOrderIds(records);
|
|
|
+ enhanceOrder(records,listByOrderIds);
|
|
|
+ }
|
|
|
+ return new CommonPage<>(records,page.getTotal(),page.getCurrent(),page.getSize());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -187,6 +196,18 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
|
|
|
return orderExport;
|
|
|
}
|
|
|
|
|
|
+ public List<DreOrderDetail> getListByOrderIds(List<DreOrder> dreOrders){
|
|
|
+ LambdaQueryWrapper<DreOrderDetail> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.in(DreOrderDetail::getOrderId,dreOrders.stream().map(DreOrder::getId).collect(Collectors.toList()));
|
|
|
+ return dreOrderDetailService.list(queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void enhanceOrder(List<DreOrder> orders,List<DreOrderDetail> dreOrderDetails){
|
|
|
+ for (DreOrder dreOrder:orders) {
|
|
|
+ dreOrder.setDreOrderDetails(dreOrderDetails.stream().filter(de -> de.getOrderId().equals(dreOrder.getId())).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Async
|
|
|
public void sendWxMessage(DreOrder dreOrder){
|
|
@@ -220,4 +241,16 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public static String generateOrderNumber(){
|
|
|
+ Random random = new Random();
|
|
|
+ String result="";
|
|
|
+ for (int i=0;i<4;i++)
|
|
|
+ {
|
|
|
+ result+=random.nextInt(10);
|
|
|
+ }
|
|
|
+ String format = DateUtils.format(new Date(), DateUtils.YYYYMMDDHHMMSS);
|
|
|
+ return String.format("%s%s",result,format);
|
|
|
+ }
|
|
|
+
|
|
|
}
|