Browse Source

fix:获取优惠券优惠

liujunchi 2 years ago
parent
commit
964c794412

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -252,4 +252,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 
     // 撤销支付
     BaseResult<Map<String, Object>> refund(String orderNo, String notifyUrl, String refundNo);
+
+    // 查询优惠券优惠券金额
+    Map couponAmount(MallCreateOrderModel model);
 }

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -1120,7 +1120,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         studentGoodsSell.setOrganId(student.getOrganId());
         studentGoodsSell.setTotalAmount(studentPaymentOrder.getActualAmount());
         studentGoodsSell.setGoodsType("MALL");
-        // studentGoodsSell.setGoodsJson(JSONObject.toJSONString(goodsSellDtos));
+        studentGoodsSell.setGoodsJson(model.getOrderInfo());
         studentGoodsSell.setOrderNo(model.getOrderNo());
         List<Integer> couponIdList = model.getCouponIdList();
         if (couponIdList != null && couponIdList.size() > 0) {
@@ -1257,4 +1257,13 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         return Payment.reversePayment(orderByOrderNo.getTransNo(),hfMerchantConfig.getAppId(),refundNo,
                                orderByOrderNo.getActualAmount().setScale(2,BigDecimal.ROUND_HALF_UP).toString(),notifyUrl);
     }
+
+    @Override
+    public Map couponAmount(MallCreateOrderModel model) {
+        Map payMap = new HashMap();
+        StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(model.getCouponIdList(), model.getAmount(),false);
+        payMap.put("mallCouponAmount",studentPaymentOrder.getCouponRemitFee() == null?BigDecimal.ZERO:studentPaymentOrder.getCouponRemitFee());
+        payMap.put("mallStatus",1);
+        return payMap;
+    }
 }

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/web/WebFeignService.java

@@ -66,4 +66,8 @@ public interface WebFeignService {
 	// 商城获取 退款数据
 	@PostMapping("/api/refund")
 	HttpResponseResult<BaseResult<Map<String, Object>>> refund(@RequestBody RefundModel refundModel);
+
+	// 商城订单优惠券金额
+	@PostMapping("/api/couponAmount")
+	HttpResponseResult<Map> couponAmount(@RequestBody MallCreateOrderModel model);
 }

+ 20 - 13
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -11,7 +11,6 @@ import com.ym.mec.common.entity.OrderCancelModel;
 import com.ym.mec.common.entity.RefundModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
-import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.adapay.entity.BaseResult;
 import com.ym.mec.web.WebFeignService;
 import com.yonge.cooleshow.mall.common.api.CommonPage;
@@ -152,7 +151,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
                 userOrderPayment.setId(null);
                 userOrderPaymentService.saveOrUpdate(userOrderPayment);
 
-                return feignMecCreateOrder(order.getCouponId(), oldOrderNo, orderSn, null, detail.getMemberId().intValue(), detail.getTotalAmount());
+                return feignMecCreateOrder(order.getCouponId(), oldOrderNo, orderSn, null, detail.getMemberId().intValue(), detail.getTotalAmount(),
+                                           JSON.toJSONString(detail));
             } else {
                 throw new BizException("订单信息获取失败");
             }
@@ -204,9 +204,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         }
 
         BigDecimal amount = calcTotalAmount(orderItemList);
-
-        Map data = feignMecCreateOrder(orderParam.getCouponId(),orderParam.getOrderNo(), orderSn,
-                                       orderParam.getTeacherId()==null?null:orderParam.getTeacherId().intValue(), currentMember.getId().intValue(), amount);
+        Map data = feignMecCouponAmount(orderParam.getCouponId(), orderParam.getOrderAmount());
 
         BigDecimal couponAmount = MapUtil.get(data, "mallCouponAmount", BigDecimal.class);
         if (couponAmount == null) {
@@ -373,23 +371,31 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             userOrderPayment.setStatus(TradeStatusEnum.succeeded.getCode());
         }
         userOrderPaymentService.save(userOrderPayment);
-        result.put("pay",data);
 
+        // 生成订单
         // 保存商品信息到管乐迷
         OmsOrderDetail detail = detail(order.getOrderSn());
+        data = feignMecCreateOrder(orderParam.getCouponId(),orderParam.getOrderNo(), orderSn,
+                                       orderParam.getTeacherId()==null?null:orderParam.getTeacherId().intValue(),
+                                       currentMember.getId().intValue(), amount,JSON.toJSONString(detail));
+        result.put("pay",data);
+
+        return result;
+    }
+
+    private Map feignMecCouponAmount(String couponId,BigDecimal amount) {
 
         MallCreateOrderModel model = new MallCreateOrderModel();
-        model.setOrderNo(order.getOrderSn());
-        model.setOrderInfo(JSON.toJSONString(detail));
-        HttpResponseResult<Map> mapHttpResponseResult = webFeignService.mallSaveOrderInfo(model);
+        model.setCouponIdList(StringUtil.toIntegerList(couponId));
+        model.setAmount(amount);
+        HttpResponseResult<Map> mapHttpResponseResult = webFeignService.couponAmount(model);
         if (!mapHttpResponseResult.getStatus()) {
-            throw new BizException(mapHttpResponseResult.getMsg());
+            throw new BizException("管乐迷获取优惠券优惠失败");
         }
-
-        return result;
+        return mapHttpResponseResult.getData();
     }
 
-    private Map feignMecCreateOrder(String couponId, String oldOrderNo, String orderSn, Integer teacherId, Integer userId, BigDecimal amount) {
+    private Map feignMecCreateOrder(String couponId, String oldOrderNo, String orderSn, Integer teacherId, Integer userId, BigDecimal amount, String orderDetail) {
         // 远程调用管乐迷订单记录
         MallCreateOrderModel model = new MallCreateOrderModel();
         model.setAmount(amount);
@@ -400,6 +406,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         model.setUserId(userId);
         model.setCouponIdList(StringUtil.toIntegerList(couponId));
         model.setOldOrderNo(oldOrderNo);
+        model.setOrderInfo(orderDetail);
         HttpResponseResult<Map> mapHttpResponseResult = webFeignService.mallCreateOrder(model);
         if (!mapHttpResponseResult.getStatus()) {
             throw new BizException("管乐迷订单生成失败");

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/controller/APIController.java

@@ -145,6 +145,16 @@ public class APIController extends BaseController {
 		}
 	}
 
+	// 商城订单优惠券金额
+	@PostMapping("/couponAmount")
+	public HttpResponseResult<Map> couponAmount(@RequestBody MallCreateOrderModel model) {
+		try {
+			return succeed(studentPaymentOrderService.couponAmount(model));
+		} catch (Exception e) {
+			e.printStackTrace();
+			return failed();
+		}
+	}
 
 	// 商城保存订单详情数据
 	@PostMapping("/mallSaveOrderInfo")