Kaynağa Gözat

订单编号的生成

yq 2 yıl önce
ebeveyn
işleme
26958b5f02

+ 37 - 4
src/main/java/com/usky/dxtop/service/impl/DreOrderServiceImpl.java

@@ -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);
+    }
+
 }

+ 1 - 1
src/main/resources/smart-doc.json

@@ -4,7 +4,7 @@
   "isStrict": false,
   "coverOld": true,
   "allInOne": true,
-  "packageFilters": "com.usky.dxtop.controller.web.business.DreMenuController,com.usky.dxtop.controller.web.business.DreOrderController,com.usky.dxtop.controller.web.business.DreOrderDetailController",
+  "packageFilters": "com.usky.dxtop.controller.web.business",
   "requestExample":"false",
   "responseExample":"true",
   "projectName": "充值系统API接口说明文件",