浏览代码

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

刘俊驰 1 年之前
父节点
当前提交
8dd85fd72e

+ 3 - 3
mec-application/src/main/java/com/ym/mec/web/controller/GoodsController.java

@@ -151,18 +151,18 @@ public class GoodsController extends BaseController {
     @ApiOperation(value = "查询商品类型")
     @GetMapping("/queryGoodsTypeList")
     public Object queryGoodsTypeList() {
-        return goodsService.queryGoodsTypeList();
+        return succeed(goodsService.queryGoodsTypeList());
     }
 
     @ApiOperation(value = "查询商品分类")
     @GetMapping("/queryGoodsCategoryList")
     public Object queryGoodsCategoryList() {
-        return goodsService.queryGoodsCategoryList();
+        return succeed(goodsService.queryGoodsCategoryList());
     }
 
     @ApiOperation(value = "查询商品品牌")
     @GetMapping("/queryGoodsBrandList")
     public Object queryGoodsBrandList() {
-        return goodsService.queryGoodsBrandList();
+        return succeed(goodsService.queryGoodsBrandList());
     }
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderAddress.java

@@ -22,6 +22,14 @@ public class MusicGroupPaymentCalenderAddress implements Serializable {
     @ApiModelProperty(value = "缴费项目编号")
     private Long calenderId;
 
+    @TableField("order_no_")
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @TableField("delivery_flag_")
+    @ApiModelProperty("是否发货")
+    private Boolean deliveryFlag = false;
+
     @TableField("name_")
     @ApiModelProperty(value = "收货人")
     private String name;

+ 49 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -23,6 +23,7 @@ import com.ym.mec.common.dto.OrderCreate;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
@@ -37,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutorService;
@@ -1033,25 +1035,62 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                         , studentIds, courseIds, classGroupStudents, allLockCourseIds, batchNo, adjust.getMasterTotalPrice());
             } else if (calender.getPaymentType() == GOODS_PURCHASE) {
                 //TODO 推送订单到商城
+                MusicGroupPaymentCalenderAddress address = musicGroupPaymentCalenderAddressService.lambdaQuery()
+                        .eq(MusicGroupPaymentCalenderAddress::getCalenderId, calender.getId()).one();
+                if (address == null) {
+                    throw new BizException("收货地址不存在");
+                }
+                //获取商品信息
+                List<MusicGroupPaymentCalenderGoods> goods = musicGroupPaymentCalenderGoodsService.lambdaQuery()
+                        .eq(MusicGroupPaymentCalenderGoods::getCalenderId, calender.getId()).list();
+                if (CollectionUtils.isEmpty(goods)) {
+                    throw new BizException("商品信息不存在");
+                }
                 OrderCreate orderCreate = new OrderCreate();
                 String orderNo = idGeneratorService.generatorId("payment") + "";
+                address.setOrderNo(orderNo);
                 orderCreate.setOrderNo(orderNo);
 //                orderCreate.setOrchestraId(musicGroup.getId());
                 orderCreate.setMemberId(musicGroup.getSchoolId().longValue());
                 orderCreate.setTotalAmount(calender.getCurrentTotalAmount());
                 orderCreate.setOrderFormType("MEC");
                 orderCreate.setPlatformType("SCHOOL");
-                MusicGroupPaymentCalenderAddress address = musicGroupPaymentCalenderAddressService.lambdaQuery()
-                        .eq(MusicGroupPaymentCalenderAddress::getCalenderId, calender.getId()).one();
-                if (address != null) {
-                    orderCreate.setReceiverName(address.getName());
-                    orderCreate.setReceiverPostCode(address.getPostCode());
-                    orderCreate.setReceiverPhone(address.getPhone());
-                    orderCreate.setReceiverProvince(address.getProvince());
-                    orderCreate.setReceiverCity(address.getCity());
-                    orderCreate.setReceiverRegion(address.getRegion());
-                    orderCreate.setReceiverDetailAddress(address.getAddress());
+                orderCreate.setSourceType(2);
+                orderCreate.setReceiverName(address.getName());
+                orderCreate.setReceiverPostCode(address.getPostCode());
+                orderCreate.setReceiverPhone(address.getPhone());
+                orderCreate.setReceiverProvince(address.getProvince());
+                orderCreate.setReceiverCity(address.getCity());
+                orderCreate.setReceiverRegion(address.getRegion());
+                orderCreate.setReceiverDetailAddress(address.getAddress());
+                List<OrderCreate.OrderItem> orderItems = new ArrayList<>();
+                for (MusicGroupPaymentCalenderGoods e : goods) {
+                    BigDecimal totalPrice = e.getTotalPrice();
+                    List<ComplementGoodsDto> goodsDtoList = JSON.parseArray(e.getChildGoodsJson(), ComplementGoodsDto.class);
+                    //总金额按比例分配
+                    //待分配
+                    BigDecimal waitRemitFee = totalPrice;
+                    BigDecimal totalAmount = WrapperUtil.sumList(goodsDtoList, ComplementGoodsDto::getOrganCostPrice);
+                    for (int i = 0; i < goodsDtoList.size(); i++) {
+                        ComplementGoodsDto goodsDto = goodsDtoList.get(i);
+                        OrderCreate.OrderItem orderItemCreate = new OrderCreate.OrderItem();
+                        orderItemCreate.setProductQuantity(1);
+                        orderItemCreate.setProductSkuId(goodsDto.getSkuStockId().longValue());
+                        //如果是最后一件商品
+                        if (i == goodsDtoList.size() - 1) {
+                            orderItemCreate.setRealAmount(waitRemitFee);
+                        } else {
+                            //获取比例
+                            BigDecimal ratioAmount = goodsDto.getOrganCostPrice().divide(totalAmount, 6, RoundingMode.HALF_UP);
+                            //获取分配的金额
+                            BigDecimal multiply = ratioAmount.multiply(totalPrice).setScale(2, RoundingMode.HALF_UP);
+                            orderItemCreate.setRealAmount(multiply);
+                            waitRemitFee = waitRemitFee.subtract(multiply);
+                        }
+                        orderItems.add(orderItemCreate);
+                    }
                 }
+                orderCreate.setOrderItemList(orderItems);
             }
             for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenders) {
                 //将0元未缴费学员缴费状态更新为已缴费

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/dto/OrderCreate.java

@@ -16,7 +16,7 @@ import java.util.List;
 public class OrderCreate {
 
 //    @ApiModelProperty("乐团ID")
-    private Long orchestraId;
+    private String orchestraId;
 
 //    @ApiModelProperty("用户ID/学校ID")
     private Long memberId;