diff --git a/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoOrderController.java b/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoOrderController.java index 2794f698..7f9885f2 100644 --- a/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoOrderController.java +++ b/microservices/tao-api/src/main/java/cn/qihangerp/api/tao/controller/TaoOrderController.java @@ -63,10 +63,8 @@ public class TaoOrderController extends BaseController { public AjaxResult confirmOrder(@RequestBody TaoOrderConfirmBo 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/tao/pom.xml b/serviceImpl/tao/pom.xml index c03bb170..5da5f4ff 100644 --- a/serviceImpl/tao/pom.xml +++ b/serviceImpl/tao/pom.xml @@ -24,6 +24,11 @@ 1.0 compile + + cn.qihangerp.mapper + mapper + 2.0.0 + cn.qihangerp.service goods diff --git a/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java b/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java index 6e3e4973..40d06422 100644 --- a/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java +++ b/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java @@ -6,6 +6,7 @@ import cn.qihangerp.common.ResultVo; import cn.qihangerp.common.bo.ShopOrderShipBo; import cn.qihangerp.module.open.tao.domain.TaoOrder; import cn.qihangerp.module.open.tao.domain.bo.TaoOrderBo; +import cn.qihangerp.module.open.tao.domain.bo.TaoOrderConfirmBo; import com.baomidou.mybatisplus.extension.service.IService; @@ -36,4 +37,6 @@ public interface TaoOrderService extends IService { * @return */ // ResultVo manualShipmentOrder(ShopOrderShipBo shipBo, String createBy); + + ResultVo confirmOrder(TaoOrderConfirmBo confirmBo); } diff --git a/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java b/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java index c0c6eaa6..1cbca250 100644 --- a/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java +++ b/serviceImpl/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java @@ -6,11 +6,18 @@ import cn.qihangerp.common.PageResult; import cn.qihangerp.common.ResultVo; import cn.qihangerp.common.ResultVoEnum; import cn.qihangerp.common.bo.ShopOrderShipBo; +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.tao.domain.TaoGoodsSku; import cn.qihangerp.module.open.tao.domain.TaoOrder; import cn.qihangerp.module.open.tao.domain.TaoOrderItem; import cn.qihangerp.module.open.tao.domain.TaoOrderPromotion; import cn.qihangerp.module.open.tao.domain.bo.TaoOrderBo; +import cn.qihangerp.module.open.tao.domain.bo.TaoOrderConfirmBo; import cn.qihangerp.module.open.tao.mapper.TaoOrderItemMapper; import cn.qihangerp.module.open.tao.mapper.TaoOrderMapper; import cn.qihangerp.module.open.tao.mapper.TaoOrderPromotionMapper; @@ -45,6 +52,9 @@ public class TaoOrderServiceImpl extends ServiceImpl private final TaoOrderItemMapper itemMapper; private final TaoOrderPromotionMapper promotionDetailsMapper; private final TaoGoodsSkuService goodsSkuService; + private final ErpOrderMapper erpOrderMapper; + private final ErpOrderItemMapper erpOrderItemMapper; + private final String DATE_PATTERN = "^(?:(?:(?:\\d{4}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|1\\d|2[0-8]))|(?:(?:(?:\\d{2}(?:0[48]|[2468][048]|[13579][26])|(?:(?:0[48]|[2468][048]|[13579][26])00))-0?2-29))$)|(?:(?:(?:\\d{4}-(?:0?[13578]|1[02]))-(?:0?[1-9]|[12]\\d|30))$)|(?:(?:(?:\\d{4}-0?[13-9]|1[0-2])-(?:0?[1-9]|[1-2]\\d|30))$)|(?:(?:(?:\\d{2}(?:0[48]|[13579][26]|[2468][048])|(?:(?:0[48]|[13579][26]|[2468][048])00))-0?2-29))$)$"; private final Pattern DATE_FORMAT = Pattern.compile(DATE_PATTERN); @@ -223,6 +233,98 @@ public class TaoOrderServiceImpl extends ServiceImpl } } + @Override + public ResultVo confirmOrder(TaoOrderConfirmBo confirmBo) { + TaoOrder 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(TaoOrderItem::getTid, pddOrder.getTid())); + if(pddOrderItems==null || pddOrderItems.isEmpty()){ + return ResultVo.error("找不到订单item"); + } + + OOrder erpOrder = erpOrderMapper.selectOne(new LambdaQueryWrapper().eq(OOrder::getOrderNum,pddOrder.getTid())); + if(erpOrder!=null) { + // 已经确认过了,更新自己 + TaoOrder douOrderUpdate = new TaoOrder(); + douOrderUpdate.setId(pddOrder.getId()); + douOrderUpdate.setAuditStatus(1); + douOrderUpdate.setAuditTime(new Date()); + mapper.updateById(douOrderUpdate); + + return ResultVo.error("已经确认过了"); + } + OOrder order = new OOrder(); + order.setOrderNum(pddOrder.getTid()); + order.setShopType(EnumShopType.TAO.getIndex()); + order.setShopId(pddOrder.getShopId()); +// order.setShipType(confirmBo.getShipType()); + order.setShipType(0); + order.setBuyerMemo(pddOrder.getBuyerMemo()); + order.setSellerMemo(pddOrder.getSellerMemo()); + order.setRefundStatus(1); + order.setOrderStatus(1); + order.setGoodsAmount(pddOrder.getTotalFee()!=null?pddOrder.getTotalFee():0.0); + order.setPostFee(pddOrder.getPostFee()!=null?pddOrder.getPostFee().doubleValue():0.0); + order.setSellerDiscount(pddOrder.getDiscountFee()!=null?pddOrder.getDiscountFee().doubleValue():0.0); + order.setPlatformDiscount(0.0); + order.setAmount(pddOrder.getTotalFee()!=null?pddOrder.getTotalFee().doubleValue():0.0); + order.setPayment(pddOrder.getPayment()!=null?pddOrder.getPayment().doubleValue():0.0); + 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(StringUtils.hasText(pddOrder.getCreated())? DateUtils.dateTime("yyyy-MM-dd HH:mm:ss",pddOrder.getCreated()):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(item.getOid().toString()); + oOrderItem.setShopType(EnumShopType.TAO.getIndex()); + oOrderItem.setShopId(pddOrder.getShopId()); + oOrderItem.setSkuId(item.getSkuId().toString()); + oOrderItem.setGoodsId(StringUtils.hasText(item.getoGoodsId())?Long.parseLong(item.getoGoodsId()):0L); + oOrderItem.setGoodsSkuId(StringUtils.hasText(item.getoGoodsSkuId())?Long.parseLong(item.getoGoodsSkuId()):0L); + oOrderItem.setGoodsTitle(item.getTitle()); + oOrderItem.setGoodsImg(item.getPicPath()); + oOrderItem.setGoodsNum(item.getOuterIid()); + oOrderItem.setGoodsSpec(item.getSkuPropertiesName()); + oOrderItem.setSkuNum(item.getOuterSkuId()); + oOrderItem.setGoodsPrice(item.getPrice()!=null?item.getPrice().doubleValue():0.0); + oOrderItem.setQuantity(item.getNum()); + 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); + } + // 更新自己 + TaoOrder douOrderUpdate = new TaoOrder(); + douOrderUpdate.setId(pddOrder.getId()); + douOrderUpdate.setAuditStatus(1); + douOrderUpdate.setAuditTime(new Date()); + mapper.updateById(douOrderUpdate); + return ResultVo.success(); + } + // @Transactional(rollbackFor = Exception.class) // @Override // public ResultVo manualShipmentOrder(ShopOrderShipBo shipBo, String createBy) {