diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/OrdersController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/OrdersController.java index b7f4948352..df5e5f9d3e 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/OrdersController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/OrdersController.java @@ -68,6 +68,21 @@ public class OrdersController { ordersService.auditOrders(updateReqVO); return success(true); } + @PutMapping("/submit") + @Operation(summary = "提交订单") + @PreAuthorize("@ss.hasPermission('haoka:orders:submit')") + public CommonResult submitOrders(@Valid @RequestBody OrdersSaveReqVO updateReqVO) { + ordersService.submitOrders(updateReqVO); + return success(true); + } + + @PutMapping("/submitUpStreamStatus") + @Operation(summary = "强制修改订单提交状态") + @PreAuthorize("@ss.hasPermission('haoka:orders:submitUpStreamStatus')") + public CommonResult submitUpStreamStatus(@Valid @RequestBody OrdersSaveReqVO updateReqVO) { + ordersService.submitUpStreamStatus(updateReqVO); + return success(true); + } @DeleteMapping("/delete") @Operation(summary = "删除订单") diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/vo/OrdersSaveReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/vo/OrdersSaveReqVO.java index 815ae66bf1..7a69879132 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/vo/OrdersSaveReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/orders/vo/OrdersSaveReqVO.java @@ -202,5 +202,25 @@ public class OrdersSaveReqVO { private String face; @Schema(description = "订单联系状态码") private Long callStatus; + /** + * 请求参数 + */ + @Schema(description = "请求参数") + private String orderCreateRequest; + /** + * 返回参数 + */ + @Schema(description = "返回参数") + private String orderCreateResponse; + /** + * 是否加急 0或空 不加急 1 加急 + */ + @Schema(description = "是否加急") + private Integer isUrgent; + /** + * 上游订单状态(生产异常 -430 开卡失败-460 提交异常 0 开卡中470 待发货500 已发货550 已激活700) + */ + @Schema(description = "上游订单状态") + private Integer upstreamOrderStatus; } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/orders/OrdersDO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/orders/OrdersDO.java index 2315d5f2cc..b6f61a75a1 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/orders/OrdersDO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/orders/OrdersDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.haoka.dal.dataobject.orders; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -233,6 +234,10 @@ public class OrdersDO extends BaseDO { * 上游订单号 */ private String upstreamOrderId; + /** + * 上游订单状态(-430 生产异常 -460 提交异常 0 开卡中470 待发货500 已发货550 已激活700) + */ + private Integer upstreamOrderStatus; /** * 生产备注 */ diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersService.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersService.java index 89d8220ca2..3097eb7f01 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersService.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersService.java @@ -63,4 +63,16 @@ public interface OrdersService extends IService { * @return orderId */ public Long reCreateOrder(Long orderId); + + /** + * 提交订单 + * @param updateReqVO + */ + void submitOrders(OrdersSaveReqVO updateReqVO); + + /** + * 强制修改订单提交状态 + * @param updateReqVO + */ + void submitUpStreamStatus(OrdersSaveReqVO updateReqVO); } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersServiceImpl.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersServiceImpl.java index 6bf6c17664..f31f278377 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersServiceImpl.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/orders/OrdersServiceImpl.java @@ -175,40 +175,65 @@ public class OrdersServiceImpl extends ServiceImpl imple validateOrdersExists(updateReqVO.getId()); // 更新 OrdersDO updateObj = BeanUtils.toBean(updateReqVO, OrdersDO.class); - ordersMapper.updateById(updateObj); // 判断自动发货还是手动发货 + Long productId = updateObj.getProductId(); updateObj.setProducerId(1L); + ordersMapper.updateById(updateObj); + Long status = updateObj.getStatus(); +// 进入审核流程 + if (ObjectUtil.equals(status, 450)) { + // 450 审核通过 + createOrder(updateObj); + } + } + + /** + * 提交订单 + * @param updateReqVO + */ + @Override + public void submitOrders(OrdersSaveReqVO updateReqVO) { + OrdersDO updateObj = BeanUtils.toBean(updateReqVO, OrdersDO.class); createOrder(updateObj); } + @Override + public void submitUpStreamStatus(OrdersSaveReqVO updateReqVO) { + + } + /** * 调用运营商产生订单 * * @param ordersDO */ private void createOrder(OrdersDO ordersDO) { - Long status = ordersDO.getStatus(); - if (ObjectUtil.equals(status, 450)) { - // 进入审核流程且下单 - OrderApiCreateParam param = new OrderApiCreateParam(); - BeanUtils.copyProperties(ordersDO, param); - ApiDealResp orderResponse = apiDealStrategyService.createOrder(param); - // 是否是是上游黑名单 如果是 存本地黑名单 - Boolean isBlack = orderResponse.getIsBlack(); - // 上游是否支持这个接口 - // Boolean isSupport = orderResponse.getIsSupport(); 都支持创建订单的 查询不一定 - // 成功? - Boolean success = orderResponse.getSuccess(); - // 响应信息 - String msg = orderResponse.getMsg(); + // 向上游提交订单 + OrderApiCreateParam param = new OrderApiCreateParam(); + BeanUtils.copyProperties(ordersDO, param); + ApiDealResp orderResponse = apiDealStrategyService.createOrder(param); + // 是否是是上游黑名单 如果是 存本地黑名单 todo + Boolean isBlack = orderResponse.getIsBlack(); + // 上游是否支持这个接口 + // Boolean isSupport = orderResponse.getIsSupport(); 都支持创建订单的 查询不一定 + // 是否成功? + Boolean success = orderResponse.getSuccess(); + // 响应信息 + String msg = orderResponse.getMsg(); + if(success){ // 订单创结果 OrderApiCreateResp orderData = orderResponse.getData(); - // 上游订单ID - orderData.getSupplierOrderId(); - // ordersDO 记录 create param 和 响应信息 - + ordersDO.setOrderCreateResponse(orderData.getOrderCreateResponse()); + // 上游订单ID + String supplierOrderId = orderData.getSupplierOrderId(); + ordersDO.setUpstreamOrderId(supplierOrderId); + // 记录成功操作记录 todo + }else { + // 失败操作记录 todo } + // 更新订单 + ordersMapper.updateById(ordersDO); } @Override diff --git a/yudao-server/src/main/resources/db/migration/V5.0.15__insert_upstream_order_status_enum_to_dict.sql b/yudao-server/src/main/resources/db/migration/V5.0.15__insert_upstream_order_status_enum_to_dict.sql new file mode 100644 index 0000000000..db1e85b9e1 --- /dev/null +++ b/yudao-server/src/main/resources/db/migration/V5.0.15__insert_upstream_order_status_enum_to_dict.sql @@ -0,0 +1,20 @@ +-- 创建字典类型 +INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `creator`, `updater`, `deleted`) +VALUES ('上游订单状态', 'haoka_upstream_order_status', 0, '', '1', '1', b'0'); + +# 生产异常 -430 开卡失败-460 提交异常 0 开卡中 470 待发货 500 已发货 550 已激活 700 + +-- 插入字典数据 +INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `updater`, `deleted`) +VALUES + (1, '生产异常', '-430', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'), + (2, '开卡失败', '-460', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'), + (3, '提交异常', '0', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'), + (4, '开卡中', '470', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'), + (5, '待发货', '500', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'), + (6, '已发货', '550', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'), + (7, '已激活', '700', 'haoka_upstream_order_status', 0, '', '', NULL, '1', '1', b'0'); + +ALTER TABLE `haoka_orders` + MODIFY COLUMN `refund_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交易状态' AFTER `status_updated_at`, + ADD COLUMN `upstream_order_status` varchar(50) NULL COMMENT '上游订单状态' AFTER `upstream_order_id`; \ No newline at end of file