Browse Source

补考订单

he2802 3 years ago
parent
commit
0f71ed3806

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/Order.java

@@ -25,6 +25,7 @@ private static final long serialVersionUID=1L;
 
     public static final Integer RECHARGE_ORDER =1;  //充值订单
     public static final Integer CONSUME_ORDER = 2;  //消费订单
+    public static final Integer MAKEUP_ORDER = 3;  //补考订单
 
     public static final Integer PAY_NO =0;  //0未收费
     public static final Integer PAY_PART =1;  //1部分收费

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -54,6 +54,8 @@ public interface IOrderService extends IService<Order> {
 
 	Map<String, String> resumeSmallOrder(OrderAddBo bo);
 
+	Map<String, String> placeSmallMakeUpOrder(OrderAddBo bo);
+
 	/**
 	 * 根据编辑业务对象修改订单
 	 * @param bo 订单编辑业务对象

+ 61 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -375,6 +375,67 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return payResult;
     }
 
+    @Override
+    public Map<String, String> placeSmallMakeUpOrder(OrderAddBo bo) {
+        List<OrderGoodsAddBo> goodsList = bo.getGoodsList();
+        if(goodsList==null||goodsList.size()<1){
+            throw new CustomException("商品列表为空");
+        }
+        Order add = BeanUtil.toBean(bo, Order.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        add.setOrderType(Order.MAKEUP_ORDER);  //补考订单
+
+        //生成订单号
+        String out_trade_no = DateUtils.getDateOrderSn();
+        BigDecimal totalPrice = new BigDecimal(0);
+        BigDecimal payPrice = new BigDecimal(0);
+        String body = "中正祥粤云补考-";
+        //生成订单
+        for (OrderGoodsAddBo g : goodsList) {
+            //订单商品
+            Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId,g.getGoodsId()));
+            if(goods.getGoodsStatus()!=1){
+                throw new CustomException("商品尚未上架");
+            }
+            body = "中正祥粤云补考-"+goods.getGoodsName();
+            OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
+            orderGoods.setOrderSn(out_trade_no);
+            if(g.getGoodsInputData()!=null){
+                orderGoods.setGoodsInputData(JSON.toJSONString(g.getGoodsInputData()));
+            }
+
+            //成交价
+            orderGoods.setGoodsRealPrice(goods.getStandPrice());
+            orderGoods.setGoodsPrice(goods.getStandPrice());
+            orderGoods.setCreateTime(DateUtils.getNowTime());
+            orderGoods.setUpdateTime(DateUtils.getNowTime());
+            boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
+            //订单价格不计算优惠
+            totalPrice = totalPrice.add(goods.getStandPrice());
+            //暂不计算优惠券
+            payPrice = payPrice.add(goods.getStandPrice());
+
+            this.checkBuyGoods(g.getGoodsId(),bo.getUserId());
+
+        }
+
+        add.setOrderSn(out_trade_no);
+        add.setOrderFrom(Order.FROM_SMALL);
+        add.setPayPrice(payPrice);
+        add.setOrderPrice(totalPrice);
+        this.save(add);
+        Map<String, Object> result = new HashMap<>();
+        result.put("oderId",add.getOrderId());
+        result.put("orderSn",out_trade_no);
+        UserVo userVo = iUserService.queryById(add.getUserId());
+        String price = "1";
+        Map<String, String> payResult =  iWxPayService.payment(out_trade_no,userVo.getOpenId(),body,price);
+        payResult.put("orderSn",out_trade_no);
+        return payResult;
+    }
+
 
     @Override
     public Boolean updateByEditBo(OrderEditBo bo) {