刘俊驰 1 年之前
父節點
當前提交
7abaee85a6

+ 7 - 0
mec-client-api/src/main/java/com/ym/mec/mall/MallFeignService.java

@@ -50,4 +50,11 @@ public interface MallFeignService {
 //    @ApiOperation("分页获取所有商品属性分类")
     @RequestMapping(value = "/open/productAttribute/category/list", method = RequestMethod.GET)
     List<ProductAttributeCategoryDto> getProductAttributeCategoryList();
+
+
+
+
+    //    @ApiOperation("分页获取所有商品属性分类")
+    @RequestMapping(value = "/open/returnApply", method = RequestMethod.POST)
+    CommonResult<Boolean> returnApply(ReturnApplyDto returnApplyDto);
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/mall/fallback/MallFeignServiceFallback.java

@@ -48,5 +48,10 @@ public class MallFeignServiceFallback implements MallFeignService {
         return null;
     }
 
+    @Override
+    public CommonResult<Boolean> returnApply(ReturnApplyDto returnApplyDto) {
+        return null;
+    }
+
 
 }

+ 20 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/dto/ReturnApplyDto.java

@@ -0,0 +1,20 @@
+package com.ym.mec.common.dto;
+
+import lombok.Data;
+
+@Data
+public class ReturnApplyDto {
+
+    // 订单号
+    private String orderSn;
+
+    // 退货商品sku id
+    private Long skuId;
+
+    // 退货单号
+    private String returnApplySn;
+
+
+//    "原因")
+    private String reason;
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/OpenController.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.api.R;
 import com.ym.mec.common.dto.PmsProductDto;
 import com.ym.mec.common.dto.PmsProductQueryParamDto;
+import com.ym.mec.common.dto.ReturnApplyDto;
 import com.ym.mec.common.page.PageInfo;
 import com.yonge.cooleshow.admin.controller.OmsOrderReturnApplyController;
 import com.yonge.cooleshow.admin.dto.OrderCreate;
@@ -64,6 +65,7 @@ public class OpenController {
     @Autowired
     private OmsOrderService orderService;
 
+
     private static final Logger log = LoggerFactory.getLogger(OmsOrderReturnApplyController.class);
 
     @ApiOperation("完成退货测试接口")
@@ -110,6 +112,21 @@ public class OpenController {
     }
 
 
+    /**
+     * 退货
+     */
+    @PostMapping(value = "/product/returnApply", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public CommonResult<Boolean> returnApply(@RequestBody ReturnApplyDto returnApplyDto) {
+
+        log.info("创建管乐迷退款:{}", JSON.toJSONString(returnApplyDto));
+
+        returnApplyService.returnApply(returnApplyDto);
+
+
+        return CommonResult.success(true);
+    }
+
+
     // 同步订单状态,
     /**
      * 查询商品订单状态

+ 6 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.service;
 
+import com.ym.mec.common.dto.ReturnApplyDto;
 import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
@@ -46,4 +47,9 @@ public interface OmsOrderReturnApplyService {
      * @return
      */
     HomeStatistical countReturnStatus();
+
+    /**
+     * 管乐迷同步退款申请
+     */
+    void returnApply(ReturnApplyDto returnApplyDto);
 }

+ 67 - 4
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -2,24 +2,26 @@ package com.yonge.cooleshow.admin.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.github.pagehelper.PageHelper;
+import com.ym.mec.common.dto.ReturnApplyDto;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.yonge.cooleshow.admin.dao.OmsOrderReturnApplyDao;
 import com.yonge.cooleshow.admin.dto.*;
+import com.yonge.cooleshow.admin.service.OmsOrderService;
+import com.yonge.cooleshow.admin.service.PmsProductService;
 import com.yonge.cooleshow.mall.common.exception.ApiException;
 import com.yonge.cooleshow.mall.common.service.RedisService;
-import com.yonge.cooleshow.mbg.mapper.OmsOrderItemMapper;
+import com.yonge.cooleshow.mbg.mapper.*;
 import com.yonge.cooleshow.mbg.model.*;
-import com.yonge.cooleshow.mbg.mapper.OmsOrderReturnApplyMapper;
-import com.yonge.cooleshow.mbg.mapper.UserOrderPaymentMapper;
-import com.yonge.cooleshow.mbg.mapper.UserOrderRefundMapper;
 import com.yonge.cooleshow.admin.service.OmsOrderReturnApplyService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -42,9 +44,19 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
     private OmsOrderReturnApplyMapper returnApplyMapper;
 
     @Autowired
+    private OmsOrderService omsOrderService;
+    @Autowired
+    private OmsOrderMapper omsOrderMapper;
+
+    @Autowired
     private OmsOrderItemMapper orderItemMapper;
 
     @Autowired
+    private PmsProductMapper productMapper;
+    @Autowired
+    private PmsBrandMapper brandMapper;
+
+    @Autowired
     private RedisService redisService;
     private String REDIS_KEY_ORDER_ID= "redis.key.orderId";
     private String REDIS_DATABASE = "redis.database";
@@ -211,6 +223,57 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
         return returnApplyDao.selectReturnStatusCount();
     }
 
+    @Override
+    @Transactional
+    public void returnApply(ReturnApplyDto returnApplyDto) {
+
+        // 查询订单
+        OmsOrder byOrderSn = omsOrderMapper.getByOrderSn(returnApplyDto.getOrderSn());
+        if (byOrderSn == null) {
+            throw new ApiException("未找到订单信息");
+        }
+        OmsOrderItemExample example = new OmsOrderItemExample();
+        example.createCriteria().andOrderIdEqualTo(byOrderSn.getId());
+        List<OmsOrderItem> omsOrderItems = orderItemMapper.selectByExample(example);
+        if (CollectionUtils.isEmpty(omsOrderItems)) {
+            throw new ApiException("未找到订单商品信息");
+        }
+
+        OmsOrderItem orderItem = omsOrderItems.stream().filter(omsOrderItem -> omsOrderItem.getProductSkuId()
+            .equals(returnApplyDto.getSkuId())).findFirst().orElseThrow(() -> new ApiException("未找到订单商品信息"));
+        PmsProduct pmsProduct = productMapper.selectByPrimaryKey(orderItem.getProductId());
+        if (pmsProduct == null) {
+            throw new ApiException("未找到商品信息");
+        }
+
+
+
+        OmsOrderReturnApply returnApply = new OmsOrderReturnApply();
+        returnApply.setOrderId(byOrderSn.getId());
+        returnApply.setProductId(pmsProduct.getId());
+        returnApply.setOrderItemId(orderItem.getId());
+        returnApply.setOrderSn(byOrderSn.getOrderSn());
+        returnApply.setCreateTime(new Date());
+        returnApply.setMemberUsername(byOrderSn.getMemberUsername());
+        returnApply.setReturnAmount(BigDecimal.ZERO);
+        returnApply.setStatus(2);
+        returnApply.setHandleTime(new Date());
+        returnApply.setProductPic(pmsProduct.getPic());
+        returnApply.setProductName(pmsProduct.getName());
+        if (pmsProduct.getBrandId() != null) {
+            returnApply.setProductBrand(brandMapper.selectByPrimaryKey(pmsProduct.getBrandId()).getName());
+        }
+        returnApply.setProductAttr(orderItem.getProductAttr());
+        returnApply.setProductCount(orderItem.getProductQuantity());
+        returnApply.setProductPrice(orderItem.getProductPrice());
+        returnApply.setProductRealPrice(orderItem.getRealAmount());
+        returnApply.setReason(returnApplyDto.getReason());
+
+        returnApplyMapper.insert(returnApply);
+
+
+    }
+
 
     /**
      * 生成18位退款订单编号:8位日期+2位平台号码+2位支付方式+6位以上自增id

+ 11 - 6
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java

@@ -333,15 +333,20 @@ public class OmsOrderServiceImpl implements OmsOrderService {
         OmsOrderDetail detail = orderDao.getDetail(id);
 
         // 学校订单查询学校信息
-        if (detail.getSourceType() == 2) {
-            HttpResponseResult<List<SchoolDto>> schoolDtoHttpResponseResult = webFeignService.schoolListByIds(Lists.newArrayList(detail.getMemberId()));
-            if (schoolDtoHttpResponseResult.getCode() == 200 && schoolDtoHttpResponseResult.getStatus()) {
-                List<SchoolDto> data = schoolDtoHttpResponseResult.getData();
-                if (!CollectionUtils.isEmpty(data)) {
-                    detail.setMemberUsername(data.get(0).getName());
+        try {
+            if (detail.getSourceType() == 2) {
+                HttpResponseResult<List<SchoolDto>> schoolDtoHttpResponseResult = webFeignService.schoolListByIds(Lists.newArrayList(detail.getMemberId()));
+                if (schoolDtoHttpResponseResult.getCode() == 200 && schoolDtoHttpResponseResult.getStatus()) {
+                    List<SchoolDto> data = schoolDtoHttpResponseResult.getData();
+                    if (!CollectionUtils.isEmpty(data)) {
+                        detail.setMemberUsername(data.get(0).getName());
+                    }
                 }
             }
+        } catch (Exception e) {
+            log.error("查询学校信息失败", e);
         }
+
         return detail;
     }