Selaa lähdekoodia

Merge branch 'zx_saas_goods' of http://git.dayaedu.com/yonge/mec into zx_saas_goods

刘俊驰 1 vuosi sitten
vanhempi
commit
ca8258a098

+ 30 - 1
mec-application/src/main/java/com/ym/mec/web/controller/education/EduRepairController.java

@@ -1,6 +1,9 @@
 package com.ym.mec.web.controller.education;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.StudentInstrumentDao;
@@ -12,21 +15,26 @@ import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.dto.BrandDto;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.mall.MallFeignService;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 @RequestMapping("${app-config.url.web:}/eduRepair")
 @Api(tags = "教务维修服务")
@@ -53,6 +61,8 @@ public class EduRepairController extends BaseController {
     private StudentInstrumentService studentInstrumentService;
     @Autowired
     private StudentInstrumentDao studentInstrumentDao;
+    @Resource
+    private MallFeignService mallFeignService;
 
     @ApiOperation("获取学生列表")
     @GetMapping(value = "/getStudents")
@@ -113,7 +123,26 @@ public class EduRepairController extends BaseController {
     public HttpResponseResult getStudentRepairList(RepairStudentQueryInfo queryInfo) {
         queryInfo.setEmployeeId(sysUserService.getUserId());
         queryInfo.setPayStatus(2);
-        return succeed(studentRepairService.queryPage(queryInfo));
+        PageInfo<StudentRepair> repairPageInfo = studentRepairService.queryPage(queryInfo);
+        List<StudentRepair> rows = repairPageInfo.getRows();
+        if (!rows.isEmpty()) {
+            Map<Long, String> brandIdNameMap = mallFeignService.getList().stream().collect(Collectors.toMap(BrandDto::getId, BrandDto::getName));
+            rows.forEach(row -> {
+                String goodsJson = row.getGoodsJson();
+                if (StringUtils.isNotEmpty(goodsJson)) {
+                    JSONArray goods = JSON.parseArray(goodsJson);
+                    for (Object good : goods) {
+                        JSONObject goodObject = (JSONObject) good;
+                        String brand = goodObject.getString("brand");
+                        if (Objects.nonNull(brand) && NumberUtils.isNumber(brand)) {
+                            goodObject.put("brandName", brandIdNameMap.getOrDefault(Long.valueOf(brand), ""));
+                        }
+                    }
+                    row.setGoodsJson(JSON.toJSONString(goods));
+                }
+            });
+        }
+        return succeed(repairPageInfo);
     }
 
     @ApiOperation("获取乐器种类")

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrder.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -139,4 +140,7 @@ public class StudentPaymentOrder extends BaseEntity {
 	private Long calenderId;
 
 	private Integer cooperationId;
+
+	// 需要关闭的订单号
+	private List<String> closeOrderNoList;
 }

+ 10 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -288,23 +288,14 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
         }
         //获取总金额
         BigDecimal detailTotalPrice = goodsOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-        BigDecimal balancePaymentAmount = studentPaymentOrder.getBalancePaymentAmount();
-        if (balancePaymentAmount.compareTo(BigDecimal.ZERO) > 0) {
-            BigDecimal expectAmount = studentPaymentOrder.getExpectAmount();
-            BigDecimal organShareProfit = orderDetails.stream().filter(o -> o.getType() == ORGAN_SHARE_PROFIT).map(StudentPaymentOrderDetail::getPrice)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            if(organShareProfit != null){
-                expectAmount = expectAmount.subtract(organShareProfit);
-            }
-            //获取比例
-            BigDecimal ratioAmount = BigDecimal.ZERO;
-            if(expectAmount.compareTo(BigDecimal.ZERO) > 0){
-                ratioAmount = balancePaymentAmount.divide(expectAmount, 6, BigDecimal.ROUND_HALF_UP);
-            }
-            //获取分配的减免金额
-            balancePaymentAmount = balancePaymentAmount.multiply(ratioAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
+        //获取比例
+        BigDecimal totalRatioAmount = BigDecimal.ZERO;
+        if(studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) > 0){
+            totalRatioAmount = detailTotalPrice.divide(studentPaymentOrder.getExpectAmount(), 6, BigDecimal.ROUND_HALF_UP);
         }
-        //获取总减免金额
+        //获取分配的余额
+        BigDecimal balancePaymentAmount = studentPaymentOrder.getBalancePaymentAmount().multiply(totalRatioAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
+        //获取总优惠券金额
         BigDecimal detailTotalRemitPrice = goodsOrderDetails.stream().map(StudentPaymentOrderDetail::getRemitFee).reduce(BigDecimal.ZERO, BigDecimal::add);
 
         List<SellOrder> sellOrders = new ArrayList<>();
@@ -497,7 +488,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    @Transactional(rollbackFor = Exception.class)
     public List<SellOrder> refund(List<SellOrder> sellOrders, Boolean reBackFee) {
         Date nowDate = new Date();
         for (SellOrder sellOrder : sellOrders) {
@@ -646,7 +637,8 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
         mallOrder.setSourceType(1);
 
         // 乐团学生报名默认收货地址
-        if (studentPaymentOrder.getType() == OrderTypeEnum.APPLY && StringUtils.isNotBlank(mallOrder.getOrchestraId())) {
+        if ((studentPaymentOrder.getType() == OrderTypeEnum.APPLY || studentPaymentOrder.getType() == OrderTypeEnum.SUBJECT_CHANGE)
+            && StringUtils.isNotBlank(mallOrder.getOrchestraId())) {
 
             // 查询乐团默认收货地址
             MusicGroupShippingAddressQueryInfo queryInfo = new MusicGroupShippingAddressQueryInfo();

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -689,7 +689,6 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
         //销售订单详情
         if (allDetails.size() > 0 && (detailTypeEnums.contains(MUSICAL) || detailTypeEnums.contains(ACCESSORIES) || detailTypeEnums.contains(TEACHING))) {
             sellOrderService.addOrderDetail2SellOrder(allDetails, studentPaymentOrder, musicGroup.getId());
-
         }
 
         //活动小课包处理

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -14,7 +14,10 @@ import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.dto.BrandDto;
+import com.ym.mec.mall.MallFeignService;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.math.NumberUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -115,6 +118,8 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
     private SysCouponCodeService sysCouponCodeService;
     @Autowired
     private TeacherService teacherService;
+    @Autowired
+    private MallFeignService mallFeignService;
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -886,6 +891,19 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             List<Integer> collect = Arrays.stream(couponIds.split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
             repairInfo.setCouponCodeDtos(sysCouponCodeService.findByIdList(collect));
         }
+        String goodsJson = repairInfo.getGoodsJson();
+        if (StringUtils.isNotEmpty(goodsJson)) {
+            JSONArray goods = JSON.parseArray(repairInfo.getGoodsJson());
+            Map<Long, String> brandIdNameMap = mallFeignService.getList().stream().collect(Collectors.toMap(BrandDto::getId, BrandDto::getName));
+            for (Object good : goods) {
+                JSONObject goodObject = (JSONObject) good;
+                String brand = goodObject.getString("brand");
+                if (Objects.nonNull(brand) && NumberUtils.isNumber(brand)) {
+                    goodObject.put("brandName", brandIdNameMap.getOrDefault(Long.valueOf(brand), ""));
+                }
+            }
+            repairInfo.setGoodsJson(JSON.toJSONString(goods));
+        }
         return repairInfo;
     }