Browse Source

乐团乐器可以多个购买方式

周箭河 5 years ago
parent
commit
4601edddea

+ 16 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -472,13 +472,27 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(key -> key.toString()).collect(Collectors.joining(","));
             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds);
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
-                JSONObject json = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson());
+                Map groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), HashMap.class);
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
+                    if(!groupType.containsKey("GROUP")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
+                    remitFee = new BigDecimal((String) groupType.get("GROUP"));
+                }
                 if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
+                    if(!groupType.containsKey("LEASE")){
+                       throw new BizException("乐器提供方式不存在");
+                    }
                     goodsGroup.setPrice(goodsGroup.getDepositFee());
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
+                    remitFee = new BigDecimal((String) groupType.get("LEASE"));
                 }
                 if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
+                    if(!groupType.containsKey("FREE")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
                     goodsGroup.setPrice(new BigDecimal(0));
+                    remitFee = new BigDecimal((String) groupType.get("FREE"));
                 }
                 if(goodsGroup.getType().equals(GoodsType.INSTRUMENT)){
                     instrumentFee = instrumentFee.add(goodsGroup.getPrice());
@@ -489,6 +503,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
             }
+            orderAmount.subtract(remitFee);
         }
 
         //单独辅件

+ 17 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -1,10 +1,12 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.util.Arrays;
@@ -51,6 +53,8 @@ import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
 import com.ym.mec.thirdparty.yqpay.YqPayUtil;
 import com.ym.mec.util.http.HttpUtil;
 
+import javax.servlet.http.HttpServletResponse;
+
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
 @RestController
@@ -71,6 +75,8 @@ public class StudentOrderController extends BaseController {
     private YqPayFeignService yqPayFeignService;
     @Autowired
     private StudentPaymentOrderDao studentPaymentOrderDao;
+    @Autowired
+    private SysConfigDao sysConfigDao;
 
     @PostMapping("/notify")
     public Msg notify(@ModelAttribute Msg msg) throws Exception {
@@ -273,4 +279,15 @@ public class StudentOrderController extends BaseController {
         }
         return succeed("订单不存在");
     }
+
+
+    @RequestMapping("paymentResult")
+    public void paymentResult(HttpServletResponse response,String orderNo) {
+        try {
+            String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
+            response.sendRedirect(baseApiUrl+"/#/paymentresult?orderNo=" + orderNo);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }