|
@@ -5,7 +5,11 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.yonge.cooleshow.api.feign.AdminFeignService;
|
|
|
+import com.yonge.cooleshow.api.feign.StudentFeignService;
|
|
|
import com.yonge.cooleshow.api.feign.dto.CouponInfoApi;
|
|
|
+import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
|
|
|
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
import com.yonge.cooleshow.common.entity.MallOrderItemDto;
|
|
|
import com.yonge.cooleshow.common.enums.PostStatusEnum;
|
|
@@ -22,6 +26,7 @@ import com.yonge.cooleshow.portal.dao.PortalOrderDao;
|
|
|
import com.yonge.cooleshow.portal.dao.PortalOrderItemDao;
|
|
|
import com.yonge.cooleshow.portal.dao.PortalProductDao;
|
|
|
import com.yonge.cooleshow.portal.domain.*;
|
|
|
+import com.yonge.cooleshow.portal.dto.OrderCreate;
|
|
|
import com.yonge.cooleshow.portal.dto.OrderPayReq;
|
|
|
import com.yonge.cooleshow.portal.dto.OrderPayRes;
|
|
|
import com.yonge.cooleshow.portal.service.*;
|
|
@@ -111,13 +116,17 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
|
|
|
@Autowired
|
|
|
private PmsProductMapper pmsProductMapper;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
@Autowired
|
|
|
private UserOrderRefundMapper userOrderRefundMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private RedissonClient redissonClient;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OmsOrderCourierService orderCourierService;
|
|
|
+
|
|
|
|
|
|
@Autowired
|
|
|
private PortalProductDao productDao;
|
|
@@ -352,7 +361,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
int count = portalOrderDao.updateSkuStock(orderDetail.getOrderItemList());
|
|
|
|
|
|
// 减商品库存
|
|
|
- updateProductStock(orderDetail);
|
|
|
+ updateProductStock(orderDetail,true);
|
|
|
|
|
|
// 查询订单
|
|
|
OmsOrderDetail detail = detail(orderId);
|
|
@@ -407,7 +416,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
/**
|
|
|
* 减商品库存
|
|
|
*/
|
|
|
- private void updateProductStock(OmsOrderDetail orderDetail) {
|
|
|
+ private void updateProductStock(OmsOrderDetail orderDetail,Boolean status) {
|
|
|
Map<Long, List<OmsOrderItem>> collect = orderDetail.getOrderItemList()
|
|
|
.stream()
|
|
|
.collect(Collectors.groupingBy(OmsOrderItem::getProductId));
|
|
@@ -424,7 +433,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
stock.setStock(sum);
|
|
|
productStockList.add(stock);
|
|
|
}
|
|
|
- productDao.updateProductStock(productStockList);
|
|
|
+ if (status) {
|
|
|
+ productDao.updateProductStock(productStockList);
|
|
|
+ } else {
|
|
|
+ productDao.refundProductStock(productStockList);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -881,6 +894,157 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
return omsOrders.size();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public Boolean jmeduOrderRefund(String orderNo) {
|
|
|
+ OmsOrderDetail detail = detail(orderNo);
|
|
|
+ if (detail == null) {
|
|
|
+ throw new BizException("订单不存在");
|
|
|
+ }
|
|
|
+ if(detail.getStatus() != 1) {
|
|
|
+ throw new BizException("当前订单不能退款");
|
|
|
+ }
|
|
|
+ OmsOrder order = new OmsOrder();
|
|
|
+ order.setStatus(4);
|
|
|
+ order.setId(detail.getId());
|
|
|
+ orderMapper.updateByPrimaryKeySelective(order);
|
|
|
+
|
|
|
+ // 减sku库存
|
|
|
+ portalOrderDao.updateRefundSkuStock(detail.getOrderItemList());
|
|
|
+
|
|
|
+ // 减商品库存
|
|
|
+ updateProductStock(detail,false);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void jmeduProductOrderCreate(OrderCreate order) {
|
|
|
+
|
|
|
+
|
|
|
+ // 查询订单是否已存在
|
|
|
+ OmsOrder detail = orderMapper.getByOrderSn(order.getOrderNo());
|
|
|
+ if (detail != null) {
|
|
|
+ throw new BizException("订单已存在");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // 1.查询酷乐秀学生账户
|
|
|
+ HttpResponseResult<StudentWrapper.UnionStudentResp> unionStudent = adminFeignService.unionStudent(
|
|
|
+ StudentWrapper.UnionStudent.builder().tokenCheck(false).mobile(order.getMobile()).build());
|
|
|
+
|
|
|
+ Long userId = unionStudent.getData().getUserId();
|
|
|
+ UmsMember umsMember = memberService.getById(userId);
|
|
|
+ if (umsMember == null) {
|
|
|
+ umsMember = memberService.createUmsMember(
|
|
|
+ JSON.parseObject(JSON.toJSONString(unionStudent.getData().getSysUser()), SysUser.class));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 创建订单
|
|
|
+
|
|
|
+ //设置自动收货天数
|
|
|
+ List<OmsOrderSetting> orderSettings = orderSettingMapper.selectByExample(new OmsOrderSettingExample());
|
|
|
+
|
|
|
+
|
|
|
+ detail = new OmsOrder();
|
|
|
+ detail.setMemberId(umsMember.getId());
|
|
|
+ detail.setPlatformType("JMEDU");
|
|
|
+ detail.setOrderSn(order.getOrderNo());
|
|
|
+ detail.setCreateTime(new Date());
|
|
|
+ detail.setMemberUsername(umsMember.getUsername());
|
|
|
+ detail.setTotalAmount(order.getTotalAmount());
|
|
|
+ detail.setPayAmount(order.getTotalAmount());
|
|
|
+ detail.setFreightAmount(BigDecimal.ZERO);
|
|
|
+ detail.setPromotionAmount(BigDecimal.ZERO);
|
|
|
+ detail.setIntegrationAmount(BigDecimal.ZERO);
|
|
|
+ detail.setCouponAmount(BigDecimal.ZERO);
|
|
|
+ detail.setDiscountAmount(BigDecimal.ZERO);
|
|
|
+ detail.setPayType(order.getPayType());
|
|
|
+ detail.setConfirmStatus(0);
|
|
|
+ detail.setSourceType(1);
|
|
|
+ detail.setStatus(1);
|
|
|
+ detail.setOrderType(0);
|
|
|
+ if (CollUtil.isNotEmpty(orderSettings)) {
|
|
|
+ detail.setAutoConfirmDay(orderSettings.get(0).getConfirmOvertime());
|
|
|
+ }
|
|
|
+ detail.setReceiverName(order.getReceiverName());
|
|
|
+ detail.setReceiverPhone(order.getReceiverPhone());
|
|
|
+ detail.setReceiverPostCode(order.getReceiverPostCode());
|
|
|
+ detail.setReceiverProvince(order.getReceiverProvince());
|
|
|
+ detail.setReceiverCity(order.getReceiverCity());
|
|
|
+ detail.setReceiverRegion(order.getReceiverRegion());
|
|
|
+ detail.setReceiverDetailAddress(order.getReceiverDetailAddress());
|
|
|
+ detail.setDeleteStatus(0);
|
|
|
+ detail.setPaymentTime(new Date());
|
|
|
+ detail.setAfterSale(1);
|
|
|
+ detail.setModifyTime(new Date());
|
|
|
+ orderMapper.insert(detail);
|
|
|
+
|
|
|
+ List<OmsOrderItem> orderItemList = new ArrayList<>();
|
|
|
+ // 创建订单详情
|
|
|
+ for (OrderCreate.OrderItem orderItem : order.getOrderItemList()) {
|
|
|
+
|
|
|
+ // 获取商品信息
|
|
|
+ PmsSkuStock pmsSkuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId());
|
|
|
+ if (pmsSkuStock == null) {
|
|
|
+ throw new BizException("商品规格不存在");
|
|
|
+ }
|
|
|
+ PmsProduct pmsProduct = pmsProductMapper.selectByPrimaryKey(pmsSkuStock.getProductId());
|
|
|
+
|
|
|
+ if (pmsProduct == null) {
|
|
|
+ throw new BizException("商品不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ OmsOrderItem omsOrderItem = new OmsOrderItem();
|
|
|
+ omsOrderItem.setOrderId(detail.getId());
|
|
|
+ omsOrderItem.setOrderSn(detail.getOrderSn());
|
|
|
+ omsOrderItem.setProductId(pmsProduct.getId());
|
|
|
+ omsOrderItem.setProductPic(pmsProduct.getPic());
|
|
|
+ omsOrderItem.setProductName(pmsProduct.getName());
|
|
|
+ omsOrderItem.setProductBrand(pmsProduct.getBrandName());
|
|
|
+ omsOrderItem.setProductPrice(pmsProduct.getPrice());
|
|
|
+ omsOrderItem.setProductQuantity(1);
|
|
|
+ omsOrderItem.setProductSkuId(pmsSkuStock.getId());
|
|
|
+ omsOrderItem.setProductSkuCode(pmsSkuStock.getSkuCode());
|
|
|
+ omsOrderItem.setProductCategoryId(pmsProduct.getProductCategoryId());
|
|
|
+ omsOrderItem.setPromotionAmount(BigDecimal.ZERO);
|
|
|
+ omsOrderItem.setCouponAmount(BigDecimal.ZERO);
|
|
|
+ omsOrderItem.setIntegrationAmount(BigDecimal.ZERO);
|
|
|
+ omsOrderItem.setRealAmount(orderItem.getRealAmount());
|
|
|
+ omsOrderItem.setProductAttr(pmsSkuStock.getSpData());
|
|
|
+ omsOrderItem.setReturnStatus(-1);
|
|
|
+
|
|
|
+ orderItemList.add(omsOrderItem);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 保存数据
|
|
|
+ if (!CollectionUtils.isEmpty(orderItemList)) {
|
|
|
+ orderItemDao.insertList(orderItemList);
|
|
|
+ // 减sku库存
|
|
|
+ OmsOrderDetail orderDetail = detail(order.getOrderNo());
|
|
|
+ portalOrderDao.updateSkuStock(orderDetail.getOrderItemList());
|
|
|
+
|
|
|
+ // 减商品库存
|
|
|
+ updateProductStock(orderDetail,true);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public OmsOrderCourier productOrderCourier(String orderNo) {
|
|
|
+ OmsOrderDetail detail = detail(orderNo);
|
|
|
+ if (!StringUtil.isEmpty(detail.getDeliverySn()) ) {
|
|
|
+ return orderCourierService.getCourierInfo(orderNo);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
private void FinishReceiveOrder(Long orderId) {
|
|
|
|
|
|
// UmsMember member = memberService.getCurrentMember();
|