zwhui преди 2 години
родител
ревизия
8af5d9575b

+ 49 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/UpgradeOrderDonSearchView.java

@@ -0,0 +1,49 @@
+package com.cyksj.model.manage.views;
+
+import com.cyksj.model.entity.GoodsDon;
+import com.cyksj.model.entity.OrderDon;
+import com.cyksj.model.entity.OrderDonWaybill;
+import com.cyksj.model.views.GoodsDonSkuView;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/*
+ *项目名: netflix
+ *文件名: OrderDonSearchView
+ *创建者: JavaZou
+ *创建时间:2023/7/28 16:21
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select * from upgrade_order_don :orderId:) o left join upgrade_package up on o.package_id = up.id ")
+public class UpgradeOrderDonSearchView {
+	@DbField("o.id")
+	private Long id;
+
+	@DbField("up.name")
+	private String name;
+
+	@DbField("up.num")
+	private Integer num;
+
+	@DbField("o.status")
+	private OrderDon.Status status;
+
+	@DbField("o.type")
+	private OrderDon.Type type;
+
+	@DbField("o.created_time")
+	private Date createdTime;
+
+	@DbField("o.pay_time")
+	private Date payTime;
+
+}

+ 5 - 1
netflix-dao/src/main/java/com/cyksj/model/manage/views/UpgradeOrderDonView.java

@@ -23,7 +23,8 @@ import java.util.List;
 @Getter
 @Setter
 @SearchBean(tables = "upgrade_order_don o left join upgrade_package up on o.package_id = up.id " +
-        "left join goods_don g on g.id = o.goods_id")
+        "left join goods_don g on g.id = o.goods_id " +
+        "left join goods_don_sku sku on up.sku_id = sku.id ")
 public class UpgradeOrderDonView {
 
     @DbField("o.id")
@@ -41,6 +42,9 @@ public class UpgradeOrderDonView {
     @DbField("g.title")
     private String title;
 
+    @DbField("sku.spec_val")
+    private String specVal;
+
     @DbField("g.id")
     private Long goodsId;
 

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/order/OrderDonService.java

@@ -92,6 +92,8 @@ public interface OrderDonService extends IService<OrderDon> {
      */
     void zeroOrderConfirm(Long orderId);
 
+    void zeroUpgradeOrderConfirm(Long orderId);
+
     void orderNotify(OrderDon orderDon);
 
     UpgradeOrderDon submitUpgrade(OrderPayRequest payRequest);

+ 21 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1240,6 +1240,27 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		unifiedHandlerOrderNotify(orderDon, goodsDon, sku);
 	}
 
+	@Override
+	public void zeroUpgradeOrderConfirm(Long orderId) {
+		UpgradeOrderDon orderDon = upgradeOrderDonMapper.selectById(orderId);
+		if (orderDon == null) throw BusinessRuntimeException.getInstance("订单不存在");
+		if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0) {
+			throw BusinessRuntimeException.getInstance("订单异常");
+		}
+		if (orderDon.getStatus() != UpgradeOrderDon.Status.noPayment) {
+			throw BusinessRuntimeException.getInstance("订单状态已修改");
+		}
+		UpgradePackage upgradePackage = null;
+		if (orderDon.getPackageId() != null) {
+			upgradePackage = upgradePackageMapper.selectById(orderDon.getPackageId());
+		}
+		if (orderDon.getBalance().compareTo(BigDecimal.ZERO) > 0) {
+			orderDon.setType(UpgradeOrderDon.Type.BALANCE);
+			orderDon.setPayTime(DateTime.now());
+		}
+		unifiedHandlerUpgradeOrderNotify(orderDon,upgradePackage);
+	}
+
 	public void updateCarParkAndSendMsg(GoodsDon goodsDon, GoodsDonSku sku, OrderDon order) {
 		if (goodsDon.getType() == 1) {
 			//修改车位状态

+ 27 - 4
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java

@@ -26,10 +26,7 @@ import com.cyksj.mapper.market.task.UserBindDetailMapper;
 import com.cyksj.model.dto.AliPayParams;
 import com.cyksj.model.dto.H5JsPayParams;
 import com.cyksj.model.entity.*;
-import com.cyksj.model.manage.views.OrderDonSearchView;
-import com.cyksj.model.manage.views.OrderDonView;
-import com.cyksj.model.manage.views.UpgradeOrderDetailView;
-import com.cyksj.model.manage.views.UpgradeOrderDonView;
+import com.cyksj.model.manage.views.*;
 import com.cyksj.model.request.AlipayOrderDonReq;
 import com.cyksj.model.request.OrderPayRequest;
 import com.cyksj.model.response.AliPayTradeStatus;
@@ -198,6 +195,15 @@ public class OrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
+    /**
+     * 套餐0元订单确认
+     */
+    @PostMapping("/post/upgrade/order/status/{orderId}")
+    public Result<String> zeroUpgradeOrderConfirm(@PathVariable Long orderId) {
+        orderDonService.zeroUpgradeOrderConfirm(orderId);
+        return GatewayResponse.SUCCESS.newBuilder().toResult();
+    }
+
 
     /**
      * 支付
@@ -486,6 +492,23 @@ public class OrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonView);
     }
 
+    /**
+     * 查询套餐订单支付状态
+     */
+    @GetMapping("/get/upgrade/order/status/{orderId}")
+    public Result<UpgradeOrderDonSearchView> getUpgradeOrderStatusById(@PathVariable Long orderId) {
+        if (orderId < 1) {
+            throw BusinessRuntimeException.getInstance("订单不存在");
+        }
+        UpgradeOrderDonSearchView orderDonView = beanSearcher.searchFirst(UpgradeOrderDonSearchView.class, MapUtils.builder()
+                .put("orderId", String.format("where id = %s", orderId))
+                .build());
+        if (orderDonView == null) {
+            throw BusinessRuntimeException.getInstance("订单不存在");
+        }
+        return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonView);
+    }
+
     @PostMapping("/get/noLogin/order")
     public Result<List<OrderDonView>> getSearchResult(@RequestBody List<Long> orderIds) {
         List<OrderDonView> orderDonViews = beanSearcher.searchAll(OrderDonView.class, MapUtils.builder()