订单信息处理

This commit is contained in:
Damonny 2025-01-11 21:13:08 +08:00
parent 76b19ef413
commit 9e2582e7af
1 changed files with 59 additions and 22 deletions

View File

@ -3,14 +3,14 @@ package cn.iocoder.yudao.module.haoka.service.orders;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.module.haoka.api.ApiFrom;
import cn.iocoder.yudao.module.haoka.controller.admin.onsaleproduct.vo.OnSaleProductPreOrderRespVO;
import cn.iocoder.yudao.module.haoka.controller.admin.orderoperatelog.vo.OrderOperateLogSaveReqVO;
import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.HaoKaProductRespVO;
import cn.iocoder.yudao.module.haoka.dal.dataobject.onsaleproduct.OnSaleProductDO;
import cn.iocoder.yudao.module.haoka.dal.dataobject.product.HaoKaProductDO;
import cn.iocoder.yudao.module.haoka.service.api.models.ApiDealResp;
import cn.iocoder.yudao.module.haoka.service.api.ApiDealStrategyService;
import cn.iocoder.yudao.module.haoka.service.api.models.OrderApiCreateParam;
import cn.iocoder.yudao.module.haoka.service.api.models.OrderApiCreateResp;
import cn.iocoder.yudao.module.haoka.service.onsaleproduct.OnSaleProductService;
import cn.iocoder.yudao.module.haoka.service.orderoperatelog.OrderOperateLogService;
import cn.iocoder.yudao.module.haoka.service.smstask.SmsTaskService;
import cn.iocoder.yudao.module.haoka.utils.SnowflakeId;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -51,6 +51,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
@Resource
private SmsTaskService smsTaskService;
@Resource
private OrderOperateLogService orderOperateLogService;
/**
* 重新提交订单
* @param orderId
@ -90,14 +92,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
}
private OrdersDO handleOrderCreate(final OrdersDO ordersDO){
OrderApiCreateParam param = new OrderApiCreateParam();
BeanUtils.copyProperties(ordersDO,param);
ApiDealResp<OrderApiCreateResp> strategyServiceOrder = apiDealStrategyService.createOrder(param);
// todo: 根据上游创建订单结果更新 ordersDO的信息 状态上游订单id等等.....
//
return ordersDO;
return createOrder(ordersDO);
}
@ -182,14 +177,29 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
Long productId = updateObj.getProductId();
OnSaleProductPreOrderRespVO onSaleProduct = onSaleProductService.getOnSaleProductPreOrder(productId);
HaoKaProductRespVO haoKaProduct = onSaleProduct.getParentProduct();
updateObj.setAutoType(haoKaProduct.getAutoType());
Integer autoType = haoKaProduct.getAutoType();
updateObj.setAutoType(autoType);
ordersMapper.updateById(updateObj);
Long status = updateObj.getStatus();
// 进入审核流程
if (ObjectUtil.equals(status, 450)) {
// 450 审核通过
createOrder(updateObj);
if("2".equals(autoType)){
// 自动生产
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(updateObj.getId());
logSaveReqVO.setMsg("已自动提交到上游");
logSaveReqVO.setMsgType("0");
logSaveReqVO.setMsgSource("1");
orderOperateLogService.createOrderOperateLog(logSaveReqVO);
createOrder(updateObj);
}else {
// 手动生产
updateObj.setStatus(450L);
ordersMapper.updateById(updateObj);
}
}
}
@ -214,7 +224,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
*
* @param ordersDO
*/
private void createOrder(OrdersDO ordersDO) {
private OrdersDO createOrder(OrdersDO ordersDO) {
// 向上游提交订单
OrderApiCreateParam param = new OrderApiCreateParam();
BeanUtils.copyProperties(ordersDO, param);
@ -227,21 +237,48 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
Boolean success = orderResponse.getSuccess();
// 响应信息
String msg = orderResponse.getMsg();
// 记录操作记录
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(ordersDO.getId());
if(success){
// 订单创结果
// 订单调用接口返回结果
logSaveReqVO.setMsgSource("1");
// 订单创建结果
OrderApiCreateResp orderData = orderResponse.getData();
// ordersDO 记录 create param 响应信息
ordersDO.setOrderCreateResponse(orderData.getOrderCreateResponse());
// 上游订单ID
String supplierOrderId = orderData.getSupplierOrderId();
ordersDO.setUpstreamOrderId(supplierOrderId);
// 记录成功操作记录 todo
String orderStatusCode = orderData.getOrderStatusCode();
// 上游订单状态
ordersDO.setUpstreamOrderStatus(Integer.valueOf(orderStatusCode));
// api记录成功操作记录
if("0".equals(orderStatusCode)){
// 提交异常
logSaveReqVO.setMsgType("1");
ordersDO.setStatus(-460L);
logSaveReqVO.setMsg(orderData.getSupplierOrderStatusDesc());
} else {
// 成功 470
// ordersDO 记录 create param 响应信息
ordersDO.setOrderCreateResponse(orderData.getOrderCreateResponse());
// 上游订单ID
String supplierOrderId = orderData.getSupplierOrderId();
ordersDO.setUpstreamOrderId(supplierOrderId);
logSaveReqVO.setMsgType("0");
ordersDO.setStatus(470L);
logSaveReqVO.setMsg("提单成功");
}
}else {
// 失败操作记录 todo
// 系统失败操作记录
logSaveReqVO.setMsg(msg);
logSaveReqVO.setMsgSource("0");
logSaveReqVO.setMsgType("1");
// 产品定义存在问题
ordersDO.setStatus(450L);
}
ordersDO.setOrderCreateResponse(msg);
orderOperateLogService.createOrderOperateLog(logSaveReqVO);
// 更新订单
ordersMapper.updateById(ordersDO);
return ordersDO;
}
@Override