diff --git a/microservices/wei-api/src/main/java/cn/qihangerp/api/wei/controller/WeiOrderController.java b/microservices/wei-api/src/main/java/cn/qihangerp/api/wei/controller/WeiOrderController.java index 8428e3b8..1ba6b852 100644 --- a/microservices/wei-api/src/main/java/cn/qihangerp/api/wei/controller/WeiOrderController.java +++ b/microservices/wei-api/src/main/java/cn/qihangerp/api/wei/controller/WeiOrderController.java @@ -54,10 +54,8 @@ public class WeiOrderController extends BaseController { public AjaxResult confirmOrder(@RequestBody WeiOrderConfirmBo bo) { log.info("=========确认订单======={}", JSONObject.toJSONString(bo)); -// var result = orderService.confirmOrder(bo); -// if(result.getCode()==0) return success(); -// else return AjaxResult.error(result.getMsg()); - - return AjaxResult.error("未实现"); + var result = orderService.confirmOrder(bo); + if(result.getCode()==0) return success(); + else return AjaxResult.error(result.getMsg()); } } diff --git a/serviceImpl/wei/pom.xml b/serviceImpl/wei/pom.xml index 48978d0d..21bcf5ee 100644 --- a/serviceImpl/wei/pom.xml +++ b/serviceImpl/wei/pom.xml @@ -24,6 +24,11 @@ 1.0 compile + + cn.qihangerp.mapper + mapper + 2.0.0 + cn.qihangerp.service goods diff --git a/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/WeiOrderService.java b/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/WeiOrderService.java index 4400f505..a4528108 100644 --- a/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/WeiOrderService.java +++ b/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/WeiOrderService.java @@ -4,6 +4,7 @@ import cn.qihangerp.common.PageQuery; import cn.qihangerp.common.PageResult; import cn.qihangerp.common.ResultVo; import cn.qihangerp.module.open.wei.domain.WeiOrder; +import cn.qihangerp.module.open.wei.domain.bo.WeiOrderConfirmBo; import com.baomidou.mybatisplus.extension.service.IService; @@ -17,4 +18,5 @@ public interface WeiOrderService extends IService { ResultVo saveOrder(Long shopId, WeiOrder order); WeiOrder queryDetailById(Long id); WeiOrder queryDetailByOrderId(String orderId); + ResultVo confirmOrder(WeiOrderConfirmBo confirmBo); } diff --git a/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/impl/WeiOrderServiceImpl.java b/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/impl/WeiOrderServiceImpl.java index 968716ed..065c8eb5 100644 --- a/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/impl/WeiOrderServiceImpl.java +++ b/serviceImpl/wei/src/main/java/cn/qihangerp/module/open/wei/service/impl/WeiOrderServiceImpl.java @@ -4,9 +4,16 @@ import cn.qihangerp.common.PageQuery; import cn.qihangerp.common.PageResult; import cn.qihangerp.common.ResultVo; import cn.qihangerp.common.ResultVoEnum; +import cn.qihangerp.common.enums.EnumShopType; +import cn.qihangerp.common.utils.DateUtils; +import cn.qihangerp.mapper.ErpOrderItemMapper; +import cn.qihangerp.mapper.ErpOrderMapper; +import cn.qihangerp.model.entity.OOrder; +import cn.qihangerp.model.entity.OOrderItem; import cn.qihangerp.module.open.wei.domain.WeiGoodsSku; import cn.qihangerp.module.open.wei.domain.WeiOrder; import cn.qihangerp.module.open.wei.domain.WeiOrderItem; +import cn.qihangerp.module.open.wei.domain.bo.WeiOrderConfirmBo; import cn.qihangerp.module.open.wei.mapper.WeiGoodsSkuMapper; import cn.qihangerp.module.open.wei.mapper.WeiOrderItemMapper; import cn.qihangerp.module.open.wei.mapper.WeiOrderMapper; @@ -21,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.StringUtils; +import java.util.Date; import java.util.List; /** @@ -35,6 +43,8 @@ public class WeiOrderServiceImpl extends ServiceImpl private final WeiOrderMapper mapper; private final WeiOrderItemMapper itemMapper; private final WeiGoodsSkuMapper goodsSkuMapper; + private final ErpOrderMapper erpOrderMapper; + private final ErpOrderItemMapper erpOrderItemMapper; // private final MQClientService mqClientService; @Override @@ -148,6 +158,98 @@ public class WeiOrderServiceImpl extends ServiceImpl return weiOrders.get(0); }else return null; } + + @Override + public ResultVo confirmOrder(WeiOrderConfirmBo confirmBo) { + WeiOrder pddOrder = mapper.selectById(confirmBo.getOrderId()); + if(pddOrder==null) return ResultVo.error("订单数据不存在"); + if(pddOrder.getAuditStatus()!=0) return ResultVo.error("已经确认过了!"); + + List pddOrderItems = itemMapper.selectList( + new LambdaQueryWrapper() + .eq(WeiOrderItem::getOrderId, pddOrder.getOrderId())); + if(pddOrderItems==null || pddOrderItems.isEmpty()){ + return ResultVo.error("找不到订单item"); + } + + OOrder erpOrder = erpOrderMapper.selectOne(new LambdaQueryWrapper().eq(OOrder::getOrderNum,pddOrder.getOrderId())); + if(erpOrder!=null) { + // 已经确认过了,更新自己 + WeiOrder douOrderUpdate = new WeiOrder(); + douOrderUpdate.setId(pddOrder.getId()); + douOrderUpdate.setAuditStatus(1); + douOrderUpdate.setAuditTime(new Date()); + mapper.updateById(douOrderUpdate); + + return ResultVo.error("已经确认过了"); + } + OOrder order = new OOrder(); + order.setOrderNum(pddOrder.getOrderId()); + order.setShopType(EnumShopType.WEI.getIndex()); + order.setShopId(pddOrder.getShopId()); +// order.setShipType(confirmBo.getShipType()); + order.setShipType(0); + order.setBuyerMemo(""); + order.setSellerMemo(""); + order.setRefundStatus(1); + order.setOrderStatus(1); + order.setGoodsAmount(pddOrder.getProductPrice()!=null?pddOrder.getProductPrice().doubleValue()/100:0.0); + order.setPostFee(pddOrder.getFreight()!=null?pddOrder.getFreight().doubleValue()/100:0.0); + order.setSellerDiscount(pddOrder.getDiscountedPrice()!=null?pddOrder.getDiscountedPrice().doubleValue()/100:0.0); + order.setPlatformDiscount(0.0); + order.setAmount(pddOrder.getOrderPrice()!=null?pddOrder.getOrderPrice().doubleValue()/100:0.0); + order.setPayment(order.getAmount()); + order.setReceiverName(confirmBo.getReceiver()); + order.setReceiverMobile(confirmBo.getMobile()); + order.setAddress(confirmBo.getAddress()); + order.setProvince(confirmBo.getProvince()); + order.setCity(confirmBo.getCity()); + order.setTown(confirmBo.getTown()); + order.setOrderTime(pddOrder.getCreateTime()!=null?new Date(pddOrder.getCreateTime()*1000):new Date()); + order.setShipper(-1); + order.setShipStatus(0); + order.setCreateTime(new Date()); + order.setCreateBy("手动确认订单"); + erpOrderMapper.insert(order); + //插入item + for (var item : pddOrderItems) { + OOrderItem oOrderItem = new OOrderItem(); + oOrderItem.setOrderId(order.getId()); + oOrderItem.setOrderNum(order.getOrderNum()); + oOrderItem.setSubOrderNum(order.getOrderNum()+"-"+item.getSkuId()); + oOrderItem.setShopType(EnumShopType.WEI.getIndex()); + oOrderItem.setShopId(pddOrder.getShopId()); + oOrderItem.setSkuId(item.getSkuId()); + oOrderItem.setGoodsId(item.getOGoodsId()!=null?item.getOGoodsId():0L); + oOrderItem.setGoodsSkuId(item.getOGoodsSkuId()!=null?item.getOGoodsSkuId():0L); + oOrderItem.setGoodsTitle(item.getTitle()); + oOrderItem.setGoodsImg(item.getThumbImg()); + oOrderItem.setGoodsNum(item.getOutProductId()); + oOrderItem.setGoodsSpec(""); + oOrderItem.setSkuNum(item.getOutSkuId()); + oOrderItem.setGoodsPrice(item.getSalePrice()!=null?item.getSalePrice().doubleValue()/100:0.0); + oOrderItem.setQuantity(item.getSkuCnt()); + oOrderItem.setItemAmount(oOrderItem.getGoodsPrice()*oOrderItem.getQuantity()); + oOrderItem.setDiscountAmount(0.0); + oOrderItem.setPayment(0.0); + + oOrderItem.setRefundCount(0); + oOrderItem.setRefundStatus(1); + oOrderItem.setShipper(-1); + oOrderItem.setShipType(order.getShipType()); + oOrderItem.setShipStatus(0); + oOrderItem.setCreateTime(new Date()); + oOrderItem.setCreateBy("手动确认订单"); + erpOrderItemMapper.insert(oOrderItem); + } + // 更新自己 + WeiOrder douOrderUpdate = new WeiOrder(); + douOrderUpdate.setId(pddOrder.getId()); + douOrderUpdate.setAuditStatus(1); + douOrderUpdate.setAuditTime(new Date()); + mapper.updateById(douOrderUpdate); + return ResultVo.success(); + } }