|
@@ -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
|