From 135ab54b7bf3693c5f2d2c7a246616a9261e92ff Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Thu, 9 Sep 2021 23:20:49 +0800 Subject: [PATCH] fix order --- .../db/migration/V202109070001__order.sql | 707 +++++++++++++----- .../controller/WxOrderController.java | 29 +- .../controller/WxPayOrderController.java | 40 +- .../schedule/OrderExpiringSchedule.java | 19 +- .../config/BaseMyBatisConfiguration.java | 2 +- ...{WxComposeOrder.java => WxBatchOrder.java} | 4 +- .../com/iformall/domain/po/WxCouponOrder.java | 6 +- .../java/com/iformall/domain/po/WxOrder.java | 3 + .../com/iformall/enums/EnumComposeOrder.java | 25 +- .../iformall/mapper/WxBatchOrderMapper.java | 20 + .../iformall/mapper/WxComposeOrderMapper.java | 20 - .../service/WxCouponOrderService.java | 2 +- .../com/iformall/service/WxOrderService.java | 15 +- .../iformall/service/WxPayOrderService.java | 8 +- .../helper/WxPayOrderServiceHelper.java | 2 +- .../impl/WxCouponOrderServiceImpl.java | 39 +- .../service/impl/WxGameServiceImpl.java | 2 +- .../service/impl/WxOrderServiceImpl.java | 219 ++---- .../service/impl/WxPayOrderServiceImpl.java | 248 +++--- .../service/order/OrderAdapterService.java | 47 ++ .../iformall/service/order/OrderFactory.java | 20 + .../service/order/entity/WxComposeOrder.java | 25 + .../order/impl/BatchOrderAdapterService.java | 108 +++ .../order/impl/SingleOrderAdapterService.java | 78 ++ .../service/order/util/OrderHelper.java | 26 + .../pay/service/pay/PayAdapterService.java | 5 +- .../pay/wx/BaseWxPayAdapterService.java | 2 +- .../pay/service/pay/wx/h5/WxH5PayService.java | 5 +- .../appPay/WxMiniAppPayAdapterService.java | 58 +- .../maPay/WxMiniMaPayAdapterService.java | 29 +- ...OrderMapper.xml => WxBatchOrderMapper.xml} | 18 +- .../resources/mapper/WxCouponOrderMapper.xml | 13 +- .../main/resources/mapper/WxOrderMapper.xml | 7 +- 33 files changed, 1160 insertions(+), 691 deletions(-) rename mallinkService/src/main/java/com/iformall/domain/po/{WxComposeOrder.java => WxBatchOrder.java} (92%) create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java delete mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxComposeOrderMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/order/OrderFactory.java create mode 100644 mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeOrder.java create mode 100644 mallinkService/src/main/java/com/iformall/service/order/impl/BatchOrderAdapterService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/order/util/OrderHelper.java rename mallinkService/src/main/resources/mapper/{WxComposeOrderMapper.xml => WxBatchOrderMapper.xml} (82%) diff --git a/mallinkAdmin/src/main/resources/db/migration/V202109070001__order.sql b/mallinkAdmin/src/main/resources/db/migration/V202109070001__order.sql index b8ac11bef..3dbab2ade 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202109070001__order.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202109070001__order.sql @@ -1,4 +1,4 @@ -CREATE TABLE `wx_compose_order` ( +CREATE TABLE `wx_batch_order` ( `id` bigint(20) NOT NULL, `tenant_id` varchar(5) NOT NULL, `parent_tenant_id` varchar(5) DEFAULT NULL, @@ -213,206 +213,509 @@ ALTER TABLE wx_order_97 ADD COLUMN `coupon_number` int(8) COMMENT '购买 ALTER TABLE wx_order_98 ADD COLUMN `coupon_number` int(8) COMMENT '购买券数量'; ALTER TABLE wx_order_99 ADD COLUMN `coupon_number` int(8) COMMENT '购买券数量'; -ALTER TABLE wx_pay_order_0 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_1 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_2 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_3 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_4 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_5 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_6 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_7 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_8 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_9 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_10 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_11 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_12 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_13 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_14 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_15 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_16 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_17 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_18 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_19 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_20 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_21 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_22 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_23 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_24 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_25 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_26 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_27 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_28 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_29 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_30 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_31 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_32 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_33 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_34 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_35 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_36 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_37 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_38 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_39 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_40 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_41 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_42 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_43 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_44 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_45 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_46 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_47 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_48 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_49 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_50 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_51 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_52 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_53 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_54 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_55 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_56 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_57 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_58 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_59 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_60 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_61 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_62 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_63 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_64 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_65 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_66 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_67 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_68 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_69 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_70 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_71 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_72 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_73 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_74 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_75 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_76 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_77 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_78 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_79 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_80 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_81 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_82 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_83 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_84 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_85 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_86 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_87 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_88 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_89 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_90 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_91 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_92 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_93 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_94 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_95 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_96 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_97 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_98 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; -ALTER TABLE wx_pay_order_99 ADD COLUMN `compose_order` TINYINT(1) COMMENT '是否为组合订单,1-是 0-不是'; +ALTER TABLE wx_pay_order_0 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_1 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_2 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_3 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_4 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_5 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_6 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_7 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_8 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_9 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_10 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_11 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_12 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_13 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_14 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_15 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_16 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_17 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_18 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_19 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_20 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_21 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_22 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_23 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_24 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_25 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_26 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_27 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_28 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_29 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_30 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_31 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_32 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_33 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_34 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_35 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_36 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_37 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_38 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_39 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_40 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_41 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_42 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_43 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_44 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_45 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_46 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_47 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_48 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_49 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_50 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_51 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_52 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_53 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_54 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_55 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_56 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_57 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_58 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_59 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_60 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_61 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_62 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_63 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_64 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_65 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_66 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_67 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_68 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_69 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_70 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_71 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_72 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_73 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_74 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_75 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_76 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_77 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_78 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_79 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_80 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_81 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_82 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_83 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_84 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_85 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_86 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_87 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_88 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_89 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_90 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_91 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_92 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_93 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_94 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_95 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_96 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_97 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_98 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; +ALTER TABLE wx_pay_order_99 ADD COLUMN `compose_order` TINYINT(1) COMMENT '组合订单类型'; -CREATE TABLE wx_compose_order_0 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_1 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_2 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_3 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_4 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_5 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_6 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_7 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_8 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_9 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_10 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_11 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_12 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_13 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_14 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_15 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_16 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_17 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_18 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_19 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_20 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_21 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_22 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_23 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_24 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_25 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_26 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_27 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_28 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_29 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_30 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_31 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_32 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_33 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_34 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_35 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_36 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_37 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_38 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_39 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_40 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_41 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_42 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_43 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_44 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_45 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_46 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_47 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_48 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_49 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_50 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_51 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_52 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_53 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_54 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_55 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_56 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_57 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_58 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_59 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_60 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_61 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_62 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_63 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_64 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_65 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_66 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_67 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_68 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_69 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_70 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_71 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_72 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_73 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_74 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_75 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_76 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_77 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_78 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_79 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_80 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_81 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_82 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_83 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_84 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_85 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_86 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_87 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_88 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_89 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_90 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_91 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_92 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_93 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_94 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_95 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_96 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_97 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_98 LIKE wx_compose_order; -CREATE TABLE wx_compose_order_99 LIKE wx_compose_order; +CREATE TABLE wx_batch_order_0 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_1 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_2 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_3 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_4 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_5 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_6 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_7 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_8 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_9 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_10 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_11 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_12 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_13 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_14 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_15 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_16 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_17 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_18 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_19 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_20 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_21 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_22 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_23 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_24 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_25 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_26 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_27 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_28 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_29 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_30 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_31 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_32 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_33 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_34 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_35 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_36 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_37 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_38 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_39 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_40 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_41 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_42 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_43 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_44 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_45 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_46 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_47 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_48 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_49 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_50 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_51 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_52 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_53 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_54 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_55 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_56 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_57 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_58 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_59 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_60 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_61 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_62 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_63 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_64 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_65 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_66 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_67 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_68 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_69 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_70 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_71 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_72 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_73 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_74 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_75 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_76 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_77 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_78 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_79 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_80 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_81 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_82 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_83 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_84 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_85 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_86 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_87 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_88 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_89 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_90 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_91 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_92 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_93 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_94 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_95 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_96 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_97 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_98 LIKE wx_batch_order; +CREATE TABLE wx_batch_order_99 LIKE wx_batch_order; -drop table wx_compose_order; \ No newline at end of file +drop table wx_batch_order; + +ALTER TABLE wx_coupon_order_0 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_1 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_2 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_3 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_4 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_5 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_6 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_7 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_8 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_9 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_10 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_11 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_12 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_13 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_14 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_15 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_16 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_17 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_18 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_19 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_20 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_21 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_22 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_23 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_24 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_25 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_26 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_27 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_28 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_29 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_30 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_31 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_32 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_33 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_34 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_35 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_36 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_37 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_38 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_39 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_40 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_41 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_42 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_43 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_44 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_45 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_46 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_47 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_48 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_49 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_50 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_51 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_52 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_53 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_54 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_55 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_56 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_57 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_58 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_59 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_60 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_61 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_62 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_63 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_64 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_65 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_66 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_67 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_68 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_69 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_70 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_71 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_72 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_73 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_74 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_75 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_76 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_77 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_78 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_79 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_80 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_81 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_82 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_83 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_84 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_85 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_86 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_87 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_88 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_89 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_90 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_91 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_92 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_93 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_94 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_95 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_96 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_97 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_98 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_coupon_order_99 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; + +ALTER TABLE wx_order_0 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_1 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_2 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_3 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_4 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_5 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_6 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_7 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_8 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_9 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_10 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_11 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_12 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_13 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_14 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_15 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_16 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_17 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_18 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_19 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_20 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_21 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_22 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_23 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_24 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_25 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_26 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_27 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_28 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_29 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_30 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_31 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_32 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_33 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_34 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_35 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_36 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_37 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_38 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_39 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_40 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_41 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_42 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_43 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_44 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_45 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_46 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_47 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_48 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_49 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_50 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_51 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_52 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_53 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_54 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_55 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_56 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_57 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_58 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_59 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_60 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_61 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_62 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_63 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_64 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_65 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_66 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_67 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_68 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_69 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_70 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_71 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_72 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_73 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_74 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_75 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_76 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_77 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_78 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_79 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_80 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_81 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_82 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_83 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_84 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_85 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_86 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_87 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_88 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_89 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_90 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_91 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_92 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_93 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_94 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_95 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_96 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_97 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_98 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; +ALTER TABLE wx_order_99 ADD COLUMN `compose_order_type` tinyint(1) not null default 0 COMMENT '组合订单类型'; + +ALTER TABLE wx_coupon_order_0 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_1 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_2 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_3 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_4 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_5 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_6 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_7 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_8 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_9 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_10 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_11 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_12 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_13 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_14 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_15 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_16 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_17 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_18 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_19 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_20 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_21 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_22 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_23 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_24 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_25 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_26 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_27 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_28 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_29 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_30 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_31 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_32 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_33 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_34 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_35 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_36 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_37 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_38 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_39 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_40 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_41 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_42 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_43 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_44 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_45 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_46 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_47 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_48 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_49 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_50 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_51 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_52 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_53 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_54 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_55 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_56 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_57 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_58 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_59 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_60 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_61 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_62 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_63 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_64 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_65 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_66 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_67 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_68 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_69 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_70 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_71 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_72 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_73 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_74 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_75 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_76 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_77 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_78 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_79 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_80 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_81 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_82 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_83 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_84 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_85 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_86 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_87 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_88 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_89 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_90 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_91 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_92 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_93 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_94 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_95 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_96 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_97 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_98 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; +ALTER TABLE wx_coupon_order_99 ADD COLUMN `compose_order_id` bigint(20) COMMENT '组合订单编号'; \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 32fef01d9..e20fa4f11 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -60,21 +61,34 @@ public class WxOrderController extends BaseController { @Autowired RedisLock redisLock; + + //券包下单的逻辑和组合下单的逻辑差不错,但是库存走的是券包的库存,子订单的分账需要调用多次分账 + @ApiOperation(value = "券包下单,", notes = "[{\"signleOrder\":{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"},\"count\":8},]") + @PostMapping("couponPackageSave") + public ResultData couponPackageSave(@RequestBody List orderSaveDto) { + Long memberId; + try { + memberId = getMemberId(); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + return wxOrderService.composeSaveOrder(EnumComposeOrder.PACKAGECOUPON,orderSaveDto,memberId,EnumPayWay.PAY_WAY_WECHAT,getTenantInfo()); + } @ApiOperation(value = "多个券多个数量组合下订单(购物车组合)", notes = "[{\"signleOrder\":{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"},\"count\":8},]") @PostMapping("composeSave") - public ResultData saveOrder(@RequestBody List orderSaveDto) { + public ResultData composeSave(@RequestBody List orderSaveDto) { Long memberId; try { memberId = getMemberId(); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } - - return wxOrderService.composeSaveOrder(orderSaveDto,memberId,EnumPayWay.PAY_WAY_WECHAT,getTenantInfo()); + return wxOrderService.composeSaveOrder(EnumComposeOrder.BATCH,orderSaveDto,memberId,EnumPayWay.PAY_WAY_WECHAT,getTenantInfo()); } - @ApiOperation(value = "单个券单个数量下订单,拼团,砍价用", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") + @ApiOperation(value = "单个券单个订单,拼团,砍价用", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") @PostMapping("singleSave") public ResultData saveOrder(@RequestBody OrderSaveDto orderSaveDto) { Long memberId; @@ -83,7 +97,12 @@ public class WxOrderController extends BaseController { } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } - return wxOrderService.singleSaveOrder(orderSaveDto,memberId,EnumPayWay.PAY_WAY_WECHAT,getTenantInfo()); + List list = new ArrayList<>(); + OrderComposeSaveDto dto = new OrderComposeSaveDto(); + dto.setSignleOrder(orderSaveDto); + dto.setCount(1); + list.add(dto); + return wxOrderService.composeSaveOrder(EnumComposeOrder.SINGLE,list,memberId,EnumPayWay.PAY_WAY_WECHAT,getTenantInfo()); } @ApiOperation(value = "取消订单", notes = "{\"orderId\":\"string\"}") diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java index 05abde406..a7f6ee951 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java @@ -24,7 +24,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; @@ -41,6 +41,8 @@ import com.iformall.service.WxCouponService; import com.iformall.service.WxOrderService; import com.iformall.service.WxPayAccountService; import com.iformall.service.WxPayOrderService; +import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.utils.IPUtil; @@ -73,6 +75,9 @@ public class WxPayOrderController extends BaseController { @Autowired private WxAppinfoService wxAppinfoService; + @Autowired + OrderFactory orderFactory; + /** * 微信支付 * @param paramMap @@ -90,17 +95,22 @@ public class WxPayOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); } + String composeOrderType = paramMap.get("composeOrderType"); + if (StringUtils.isBlank(composeOrderType)) { + logger.info("composeOrderType不能为空: " + paramMap.toString()); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "composeOrderType不能为空"); + } + WxCUser user = getWxCUser(); if (!user.basicInfoIs()) { logger.error("暂未成为会员,请授权手机号"); return new ResultData(ErrorCode.USER_IS_NOT_MEMBER.getCode(), "暂未成为会员,请授权手机号"); } - String composeOrderTag = paramMap.get("composeOrderTag"); - return _create(orderIdStr,composeOrderTag,user.getUserId(),EnumPayWay.PAY_WAY_WECHAT,user.getAppId(),new PayExtraParam("openId",user.getOpenId()),request); + return _create(orderIdStr,composeOrderType,user.getUserId(),EnumPayWay.PAY_WAY_WECHAT,user.getAppId(),new PayExtraParam("openId",user.getOpenId()),request); } - private ResultData _create(String orderIdStr,String compseOrderTag,Long userId, EnumPayWay payWay,String appId,PayExtraParam parm,HttpServletRequest request) { + private ResultData _create(String orderIdStr,String composeOrderType,Long userId, EnumPayWay payWay,String appId,PayExtraParam parm,HttpServletRequest request) { WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(userId,getFinalTenantId()); if ( null == wxCUserBasicInfo) { logger.error("会员用户不存在."+userId); @@ -123,9 +133,7 @@ public class WxPayOrderController extends BaseController { record.setOrderId(orderId); try { record.setIp(IPUtil.getIpAddr(request)); - if ((!StringUtils.isBlank(compseOrderTag)) && "1".equals(compseOrderTag)) { - record.setComposeOrder(EnumComposeOrder.YES.getCode()); - } + record.setComposeOrder(Integer.parseInt(composeOrderType)); return wxPayOrderService.createPayOrder(appInfo, wxCUserBasicInfo, record, payWay,parm); } catch (MallinkException e) { logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage()); @@ -192,17 +200,7 @@ public class WxPayOrderController extends BaseController { return new ResultData(ErrorCode.PAY_ORDER_ERROR, "未查询到payOrder."); } - WxComposeOrder composeOrder = null; - WxOrder order = null; - if ((null != payOrder.getComposeOrder()) && (EnumComposeOrder.YES.getCode().intValue() == payOrder.getComposeOrder().intValue())) { - composeOrder = wxOrderService.getComposeOrder(orderId, payOrder); - }else { - order = wxOrderService.getById(orderId,payOrder.getTenantId()); - if (check(orderId, order, payOrder)) { - return new ResultData(Result.SUCCESS, "支付状态更新成功", order); - } - - } + WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId()); //查询微信订单状态并更新 WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor())); @@ -213,13 +211,13 @@ public class WxPayOrderController extends BaseController { } WxPayAccount payAccount = wxPayAccountService.getById(appInfo.getPayId()); try { - WxPayOrder wo = wxPayOrderService.handleWxOrderQuery(payOrder, composeOrder,order, appInfo, payAccount, IdWorker.get(),false); + WxPayOrder wo = wxPayOrderService.handleWxOrderQuery(payOrder, composeOrder,appInfo, payAccount, IdWorker.get(),false); if (null != wo) { - return new ResultData(Result.SUCCESS, "支付状态更新成功", order); + return new ResultData(Result.SUCCESS, "支付状态更新成功", composeOrder); } }catch(MallinkException e) { //已经同步了微信的支付状态,表示已经更新 - return new ResultData(Result.SUCCESS, "支付状态更新成功", order); + return new ResultData(Result.SUCCESS, "支付状态更新成功", composeOrder); } return new ResultData(ErrorCode.PAY_ORDER_ERROR, "查询微信订单支付状态失败,请稍后!"); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 71041b400..2641b46be 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.enums.EnumAppType; +import com.iformall.enums.EnumComposeOrder; import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumOrderType; import com.iformall.enums.EnumPayStatus; @@ -31,6 +32,8 @@ import com.iformall.service.WxOrderService; import com.iformall.service.WxPayOrderService; import com.iformall.service.WxRefundOrderService; import com.iformall.service.helper.WxPayOrderServiceHelper; +import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.PayServiceFactory; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; import com.iformall.utils.DateUtils; @@ -84,6 +87,9 @@ public class OrderExpiringSchedule { @Autowired PayServiceFactory payServiceFactory; + @Autowired + OrderFactory orderFactory; + private List getMalls() { WxMall wxMall =new WxMall(); return wxMallMapper.findList(wxMall); @@ -252,7 +258,7 @@ public class OrderExpiringSchedule { public boolean wxPaySuccess(WxOrder order,boolean autoReHandle,EnumPayWay payWay) throws MallinkException, Exception { WxPayOrder payOrderq = new WxPayOrder(); - payOrderq.setOrderId(order.getId()); + payOrderq.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrderq.setTenantId(order.getTenantId()); List payorderlist = wxPayOrderMapper.findList(payOrderq); if (null == payorderlist || payorderlist.size() <=0 ) { @@ -292,7 +298,10 @@ public class OrderExpiringSchedule { //如果是支付成功,并且需要重试成功流程, if (EnumPayStatus.PAY_STATUS_SUCCESS.getCode().intValue() == payResult.getCode()) { if (autoReHandle) { - wxPayOrderService.handleSuccessOrder(wxpayOrder, null, order, payResult, true,true); + WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(wxpayOrder.getComposeOrder()).getComposeOrder(wxpayOrder.getOrderId(), wxpayOrder.getTenantId()); + //无论是不是批量的,都是执行单个订单 + composeOrder.setSingleOrder(order); + wxPayOrderService.handleSuccessOrder(wxpayOrder, composeOrder, payResult, true,true); } return true; } @@ -310,8 +319,8 @@ public class OrderExpiringSchedule { // 库存退回 wxOrderService.stockBack(order); - // 微信 关单 - wxOrderService.orderClose(order,payWay); + // 微信 关单,批量的订单关单有问题 + //wxOrderService.orderClose(order,payWay); // 订单状态更改 WxOrder updateOrder = new WxOrder(); @@ -370,7 +379,7 @@ public class OrderExpiringSchedule { wxOrderService.stockBack(order); } // 微信 关单 - wxOrderService.orderClose(updateOrder,payWay); + //wxOrderService.orderClose(updateOrder,payWay); logger.info("拼团订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + curDate); } diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index 4b5dcf571..862a16328 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -256,7 +256,7 @@ public class BaseMyBatisConfiguration { ShardingSphere wxComposeOrderSharding = new ShardingSphere(); wxComposeOrderSharding.setColumn("tenant_id"); - wxComposeOrderSharding.setTableName("wx_compose_order"); + wxComposeOrderSharding.setTableName("wx_batch_order"); wxComposeOrderSharding.setCount(100); wxComposeOrderSharding.setRule(EnumShardingRule.HASH.getCode()); shardingList.add(wxComposeOrderSharding); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxComposeOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java similarity index 92% rename from mallinkService/src/main/java/com/iformall/domain/po/WxComposeOrder.java rename to mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java index 475e80e90..40febd9c7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxComposeOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java @@ -9,11 +9,11 @@ import lombok.ToString; import java.util.Date; import java.util.List; -@TableName(value = "wx_compose_order") +@TableName(value = "wx_batch_order") @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) -public class WxComposeOrder extends TenantEntity { +public class WxBatchOrder extends TenantEntity { /** * diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java index 5a80c647f..4e8f401ea 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -54,7 +54,11 @@ public class WxCouponOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="赠券商户编号",name="sendMerchantId") private Long sendMerchantId; @io.swagger.annotations.ApiModelProperty(value="赠券商户员工编号",name="sendMerchantUserId") - private Long sendMerchantUserId; + private Long sendMerchantUserId; + @io.swagger.annotations.ApiModelProperty(value="组合订单类型EnumComposeOrder",name="composeOrderType") + private Integer composeOrderType; + @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") + private Long composeOrderId; @TableField(exist = false) private String couponName; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java index 16127b415..b12710dcb 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java @@ -99,6 +99,9 @@ public class WxOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="couponNumber") private Integer couponNumber; + + @io.swagger.annotations.ApiModelProperty(value="组合订单类型EnumComposeOrder",name="composeOrderType") + private Integer composeOrderType; @TableField(exist = false) protected List statusS; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java b/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java index abc333af7..a4dd91090 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java @@ -1,13 +1,16 @@ package com.iformall.enums; +import com.iformall.domain.po.WxOrder; /** * @author gongbiao */ public enum EnumComposeOrder { - - YES(1, "是多券种组合订单"), - NO(0, "非多券种组合订单,如拼团,砍价"); + + SINGLE(0, "单个订单类型,如拼团,砍价"), + BATCH(1, "多券种组合订单类型"), + PACKAGECOUPON(2,"券包组合订单类型") + ; public static EnumComposeOrder getEnum(Integer code) { for (EnumComposeOrder value : values()) { @@ -33,4 +36,20 @@ public enum EnumComposeOrder { public String getMessage() { return message; } + + public static Long getPayOrderId(WxOrder order) { + if (order.getComposeOrderType().intValue() == SINGLE.getCode().intValue()) { + return order.getId(); + }else { + return order.getComposeOrderId(); + } + } + + public static boolean isSingle(Integer type) { + if (type.intValue() == SINGLE.getCode().intValue()) { + return true; + }else { + return false; + } + } } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java new file mode 100644 index 000000000..cfd518734 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBatchOrderMapper.java @@ -0,0 +1,20 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxBatchOrder; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +public interface WxBatchOrderMapper extends CommonMapper { + + List findList(WxBatchOrder order); + + Integer countList(WxBatchOrder order); + + WxBatchOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + void updateCUserId(WxBatchOrder order); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxComposeOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxComposeOrderMapper.java deleted file mode 100644 index 04354c440..000000000 --- a/mallinkService/src/main/java/com/iformall/mapper/WxComposeOrderMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.iformall.mapper; - -import com.iformall.common.CommonMapper; -import com.iformall.domain.po.WxComposeOrder; - -import java.util.List; - -import org.apache.ibatis.annotations.Param; - -public interface WxComposeOrderMapper extends CommonMapper { - - List findList(WxComposeOrder order); - - Integer countList(WxComposeOrder order); - - WxComposeOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); - - void updateCUserId(WxComposeOrder order); - -} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 9522aa58a..6f7416041 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -88,7 +88,7 @@ public interface WxCouponOrderService { * 核销分账 * @param couponOrder */ - void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId,Integer payWay); + void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId,Integer payWay,boolean mulityShare); /** * 核销后补贴 diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index 5937efb83..58cf67c6c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -11,7 +11,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.dto.OrderComposeSaveDto; import com.iformall.domain.dto.OrderSaveDto; import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.WxMerchant; @@ -22,8 +22,10 @@ import com.iformall.domain.vo.WxCouponSendVo; import com.iformall.domain.vo.WxOrderCouponPressVo; import com.iformall.domain.vo.WxOrderCouponVo; import com.iformall.domain.vo.WxOrderQueryVo; +import com.iformall.enums.EnumComposeOrder; import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumPayWay; +import com.iformall.service.order.entity.WxComposeOrder; public interface WxOrderService { @@ -114,7 +116,7 @@ public interface WxOrderService { /** * 订单关单 */ - ResultData orderClose(WxOrder order,EnumPayWay payWay); + //ResultData orderClose(WxOrder order,EnumPayWay payWay); /** * 根据Id获得实体 @@ -194,7 +196,7 @@ public interface WxOrderService { * @param coupon * @return */ - WxComposeOrder saveOrderForCoupon(WxCUserBasicInfo user, List orderSave,EnumPayWay payWay); + WxComposeOrder saveOrderForCoupon(EnumComposeOrder composeOrderType,WxCUserBasicInfo user, List orderSave,EnumPayWay payWay); void sendOrderSuccessActionMsg(WxOrder updateOrder); /** @@ -243,10 +245,5 @@ public interface WxOrderService { //ResultData saveOrder(OrderSaveDto orderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity); - ResultData composeSaveOrder(List composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity); - - ResultData singleSaveOrder(OrderSaveDto orderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity); - - WxComposeOrder getComposeOrder(Long orderId,TenantEntity tenantEntity); - + ResultData composeSaveOrder(EnumComposeOrder composeOrderType,List composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java index f1c5ec875..e3ea96ed4 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java @@ -7,23 +7,25 @@ import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; import com.iformall.domain.po.WxPayOrder; +import com.iformall.enums.EnumComposeOrder; import com.iformall.enums.EnumPayShare; import com.iformall.enums.EnumPayWay; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; public interface WxPayOrderService { - public void handleSuccessOrder(WxPayOrder oldRecord,WxComposeOrder composeOrder,WxOrder order,PayQueryAdapterResult queryResult,boolean isScheduleTask,boolean composeSingleOrder); + public void handleSuccessOrder(WxPayOrder oldRecord,WxComposeOrder composeOrder,PayQueryAdapterResult queryResult,boolean isScheduleTask,boolean isOneChildOrder); - public WxPayOrder handleWxOrderQuery(WxPayOrder oldRecord,WxComposeOrder composeOrder,WxOrder order,WxAppinfo appInfo,WxPayAccount payAccount,IdWorker idworker,boolean repeatPay); + public WxPayOrder handleWxOrderQuery(WxPayOrder oldRecord,WxComposeOrder composeOrder,WxAppinfo appInfo,WxPayAccount payAccount,IdWorker idworker,boolean repeatPay); /** * 创建支付订单 diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxPayOrderServiceHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxPayOrderServiceHelper.java index 8d4228e8b..6faa9555a 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxPayOrderServiceHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxPayOrderServiceHelper.java @@ -11,7 +11,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index fa387c45c..bb5c2a48c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -558,12 +558,23 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("核销记账失败"+e.getMessage(),e); } } else { - try { - // 核销分账 - shareAfterVerify(couponOrder, bUser.getMerchantId(),couponOrder.getPayVendor()); - } catch (Exception e) { - logger.error("核销记账失败"+e.getMessage(),e); - } + //如果是组合的,则为多次 + if ((couponOrder.getComposeOrderType().intValue() == EnumComposeOrder.BATCH.getCode().intValue()) + || (couponOrder.getComposeOrderType().intValue() == EnumComposeOrder.PACKAGECOUPON.getCode().intValue())) { + try { + // 核销分账 + shareAfterVerify(couponOrder, bUser.getMerchantId(),couponOrder.getPayVendor(),true); + } catch (Exception e) { + logger.error("核销记账失败"+e.getMessage(),e); + } + }else { + try { + // 核销分账 + shareAfterVerify(couponOrder, bUser.getMerchantId(),couponOrder.getPayVendor(),false); + } catch (Exception e) { + logger.error("核销记账失败"+e.getMessage(),e); + } + } } try { @@ -635,19 +646,29 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId,Integer payWay) { + public void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId,Integer payWay,boolean mulityShare) { // 微信分账 try { WxPayOrder wxPayOrder = new WxPayOrder(); + Long orderId = couponOrder.getOrderId(); + + if (!EnumComposeOrder.isSingle(couponOrder.getComposeOrderType())) { + orderId = couponOrder.getComposeOrderId(); + } + wxPayOrder.updateTenantInfo(couponOrder); - wxPayOrder.setOrderId(couponOrder.getOrderId()); + wxPayOrder.setOrderId(orderId); wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); wxPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper(wxPayOrder)); if (wxPayOrder != null && wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) { WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); wxSharingOrderDto.setMerchantId(merchantId); - wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()); + if (mulityShare) { + wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); + }else { + wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()); + } wxSharingOrderDto.setPayAmount(wxPayOrder.getPayAmount()); wxSharingOrderDto.setRateAmount(wxPayOrder.getRateAmount()); wxSharingOrderDto.setOrderId(wxPayOrder.getId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index b994c4c2e..1c11d0284 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -459,7 +459,7 @@ public class WxGameServiceImpl implements WxGameService { ocsd.setSignleOrder(orderSaveDto); ocsd.setCount(1); orderSave.add(ocsd); - ResultData resultData1 = wxOrderService.composeSaveOrder(orderSave, userId, EnumPayWay.PAY_WAY_WECHAT, wxGame); + ResultData resultData1 = wxOrderService.composeSaveOrder(EnumComposeOrder.SINGLE,orderSave, userId, EnumPayWay.PAY_WAY_WECHAT, wxGame); if(resultData1.code == Result.SUCCESS && resultData1.data != null && resultData1.data instanceof WxOrder){ WxOrder order = (WxOrder)resultData1.data; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 474a7bc1e..171c9ed23 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -19,6 +19,10 @@ import javax.servlet.http.HttpServletResponse; import com.iformall.domain.vo.*; import com.iformall.enums.*; import com.iformall.service.*; +import com.iformall.service.order.OrderAdapterService; +import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeOrder; + import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,9 +48,9 @@ import com.iformall.domain.dto.OrderComposeSaveDto; import com.iformall.domain.dto.OrderSaveDto; import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.po.WxAppinfo; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.po.WxCardInfo; -import com.iformall.domain.po.WxComposeOrder; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxCouponMerchant; @@ -65,10 +69,10 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.msg.FmInsideOrderSuccessMsg; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxAppinfoMapper; +import com.iformall.mapper.WxBatchOrderMapper; import com.iformall.mapper.WxCUserBasicInfoMapper; import com.iformall.mapper.WxCUserMapper; import com.iformall.mapper.WxCardInfoMapper; -import com.iformall.mapper.WxComposeOrderMapper; import com.iformall.mapper.WxCouponChannelMapper; import com.iformall.mapper.WxCouponMapper; import com.iformall.mapper.WxCouponMerchantMapper; @@ -197,12 +201,15 @@ public class WxOrderServiceImpl implements WxOrderService { WxCouponChannelService wxCouponChannelService; @Autowired - WxComposeOrderMapper wxComposeOrderMapper; + WxBatchOrderMapper wxBatchOrderMapper; @Autowired @Qualifier("couponDetailRedisTemplate") RedisTemplate cdRedisTemplate; + @Autowired + OrderFactory orderFactory; + @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); @@ -993,7 +1000,7 @@ public class WxOrderServiceImpl implements WxOrderService { try { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(order); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); payOrder = wxPayOrderMapper.selectOne(new QueryWrapper(payOrderQ)); } catch (Exception e) { @@ -1062,6 +1069,8 @@ public class WxOrderServiceImpl implements WxOrderService { if (null != bUserId) { couponOrder.setSendMerchantUserId(bUserId); } + couponOrder.setComposeOrderType(order.getComposeOrderType()); + couponOrder.setComposeOrderId(order.getComposeOrderId()); //有支付信息,从支付信息中取渠道 if (null != payOrder) { couponOrder.setPayVendor(payOrder.getPayVendor()); @@ -1308,6 +1317,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setDetail(bodyStr); record.setCreateDate(curr); record.setUpdateDate(curr); + record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); // 保存订单 try { @@ -1648,29 +1658,29 @@ public class WxOrderServiceImpl implements WxOrderService { /** * 微信关闭订单 */ - @Override - public ResultData orderClose(WxOrder order,EnumPayWay payWay) { - // 1. get c appid - WxAppinfo appInfo = wxAppinfoService.getCAppInfo(order,payWay); - // 2. get pay order - WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.updateTenantInfo(order); - payOrderQ.setOrderId(order.getId()); - payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); - List payOrders = wxPayOrderMapper.selectList(new QueryWrapper(payOrderQ)); - - // 3. wx pay order close - for (WxPayOrder payOrder : payOrders) { - try { - wxPayOrderService.payOrderClose(appInfo, payOrder); - } catch (Exception e) { - logger.error("微信关单失败:" + e.getMessage()); - throw new MallinkException(ErrorCode.PAY_ORDER_ERROR); - } - } - - return new ResultData(); - } +// @Override +// public ResultData orderClose(WxOrder order,EnumPayWay payWay) { +// // 1. get c appid +// WxAppinfo appInfo = wxAppinfoService.getCAppInfo(order,payWay); +// // 2. get pay order +// WxPayOrder payOrderQ = new WxPayOrder(); +// payOrderQ.updateTenantInfo(order); +// payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); +// payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); +// List payOrders = wxPayOrderMapper.selectList(new QueryWrapper(payOrderQ)); +// +// // 3. wx pay order close +// for (WxPayOrder payOrder : payOrders) { +// try { +// wxPayOrderService.payOrderClose(appInfo, payOrder); +// } catch (Exception e) { +// logger.error("微信关单失败:" + e.getMessage()); +// throw new MallinkException(ErrorCode.PAY_ORDER_ERROR); +// } +// } +// +// return new ResultData(); +// } @Override public WxOrder getById(Long id,String tenantId) { @@ -1969,7 +1979,7 @@ public class WxOrderServiceImpl implements WxOrderService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public WxComposeOrder saveOrderForCoupon(WxCUserBasicInfo user,List orderSave,EnumPayWay payWay) { + public WxComposeOrder saveOrderForCoupon(EnumComposeOrder composeOrderType,WxCUserBasicInfo user,List orderSave,EnumPayWay payWay) { WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); // 防止同一用户重复下单,1秒内 String key = new StringBuilder().append("saveComposeOrder:").append(user.getId()).toString(); @@ -1980,14 +1990,15 @@ public class WxOrderServiceImpl implements WxOrderService { } cUserBasicInfoRedisTemplate.opsForValue().set(key, user, 1000, TimeUnit.MILLISECONDS); - WxComposeOrder composeOrder = createWxComposeOrder(user, orderSave, payWay); + OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrderType.getCode()); + WxComposeOrder composeOrder = orderAdapterService.createDBMainOrder(user, orderSave, payWay); for (int i = 0 ; i < orderSave.size(); i ++) { OrderComposeSaveDto orderdto = orderSave.get(i); //券是一个数量一个订单, 实物是一个产品一个订单 int totalOrderCount = 1; - if (orderdto.getWxCoupon().oneNumberOneOrder()) { + if (orderAdapterService.isOneNumberOneOrder(orderdto.getWxCoupon())) { totalOrderCount = orderdto.getCount(); } int perCouponNumber = 1; @@ -2033,87 +2044,6 @@ public class WxOrderServiceImpl implements WxOrderService { return composeOrder; } - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxOrder saveSingleOrderForCoupon(WxCUserBasicInfo user,OrderSaveDto orderSaveDto,WxCoupon coupon,EnumPayWay payWay,int couponNumber) { - WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); - // 防止同一用户重复下单,1秒内 - String key = new StringBuilder().append("saveSingleOrder:").append(user.getId()).toString(); - boolean hasKey = cUserBasicInfoRedisTemplate.hasKey(key); - if (hasKey) { - logger.error("用户正在下单,请求异常返回,user: {} " + JSON.toJSONString(user)); - throw new MallinkException(ErrorCode.SYS_REPEAT_SUBMIT_EXCEPTION); - } - cUserBasicInfoRedisTemplate.opsForValue().set(key, user, 1000, TimeUnit.MILLISECONDS); - // 是否砍价 - boolean isPress = orderSaveDto.getPress() != null ? orderSaveDto.getPress() : false; - WxOrder order = null; - if (checkCouponIsFree(coupon)) { - // 免费券 - order = proxy.saveFreeOrderForCoupon(null,user, coupon,couponNumber, orderSaveDto.getCouponChannelId(), orderSaveDto.getFormId(), null,payWay); - if (order != null) { - // 6. 下订单完成,发送内部消息 - // 下订单完成,发送内部消息 - try { - proxy.sendOrderSuccessActionMsg(order); - } catch (Exception e) { - logger.error("内部消息发送失败: " + e.getMessage(),e); - throw new MallinkException(ErrorCode.MSG_INSIDE_ERROR); - } - } - } else { - // 有价券 - order = proxy.saveNoFreeOrderForCoupon(null,user, coupon,couponNumber, orderSaveDto.getCouponChannelId(), isPress, orderSaveDto.getOrderGroupId(), orderSaveDto.getFormId()); - } - // couponActionLog -// try { -// wxCouponActionLogService.addOne(order, order.getProductId(), order.getOrderNumber(), EnumCouponSendSendType.ACTIVE.getCode(), orderdto.getSignleOrder().getCouponChannelId(),0L); -// } catch (Exception e) { -// // 库存恢复 -// stockBack(order); -// logger.error("保存订单:" + e.getMessage()); -// throw new MallinkException(ErrorCode.ORDER_SAVE_ERR); -// } - return order; - } - - - - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxComposeOrder createWxComposeOrder(WxCUserBasicInfo user,List orderSave,EnumPayWay payWay) { - WxComposeOrder order =new WxComposeOrder(); - final IdWorker idWorker = IdWorker.get(); - order.setId(idWorker.nextId()); - order.setCUserId(user.getId()); - int payment = 0; - for (OrderComposeSaveDto ocsd : orderSave) { - boolean isPress = ocsd.getSignleOrder().getPress() != null ? ocsd.getSignleOrder().getPress() : false; - payment = payment+getCouponPayment(ocsd.getWxCoupon(), isPress, ocsd.getSignleOrder().getOrderGroupId(),ocsd.getCount()); - } - order.setPayment(payment); - order.setCreateDate(new Date()); - wxComposeOrderMapper.insert(order); - return order; - } - - private int getCouponPayment(WxCoupon coupon,boolean isPress,Long orderGroupId,int couponNumber) { - // 4.1 券价格 - int payment = coupon.getSalePrice()*couponNumber; - //Integer orderStatus = EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode(); - if (isPress || coupon.getType().equals(EnumCouponType.COUPON_PRESS.getCode())) { - // 砍价券 初始是全价即面额 - payment = coupon.getPrice()*couponNumber; - } - if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { - if (orderGroupId == null) { - // 拼团券 初始是全价即面额 - payment = coupon.getPrice()*couponNumber; - } else { - //orderStatus = EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode(); - } - } - return payment; - } - @Override public boolean checkCouponIsFree(WxCoupon coupon) { return coupon.getSalePrice() == 0; @@ -2145,9 +2075,8 @@ public class WxOrderServiceImpl implements WxOrderService { record.setPayment(0); record.setFormId(formId); record.setOrderGroupId(0L); - if (null != composeOrder) { - record.setComposeOrderId(composeOrder.getId()); - } + record.setComposeOrderId(composeOrder.getMainOrderId()); + record.setComposeOrderType(composeOrder.getComposeOrderType()); record.setCouponNumber(couponNumber); try { proxy.saveFreeOrder(record, user, coupon); @@ -2209,9 +2138,8 @@ public class WxOrderServiceImpl implements WxOrderService { record.setFormId(formId); record.setPayment(payment); record.setOrderStatus(orderStatus); - if (null != composeOrder) { - record.setComposeOrderId(composeOrder.getId()); - } + record.setComposeOrderId(composeOrder.getMainOrderId()); + record.setComposeOrderType(composeOrder.getComposeOrderType()); record.setCouponNumber(couponNumber); try { orderNumber = proxy.saveNoFreeOrder(record, user, coupon, isPress); @@ -2501,9 +2429,8 @@ public class WxOrderServiceImpl implements WxOrderService { @Override - public ResultData composeSaveOrder(List composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity) { - logger.info("composeOrderSave: " + composeOrderSaveDto); - //TODO 事务,所有券都购买成功才行 + public ResultData composeSaveOrder(EnumComposeOrder composeOrderType,List composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity) { + logger.info("composeSaveOrder: " + composeOrderSaveDto); try { if (null == composeOrderSaveDto || composeOrderSaveDto.size() <= 0 ) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"无商品信息"); @@ -2522,11 +2449,12 @@ public class WxOrderServiceImpl implements WxOrderService { for ( int i =0 ; i< composeOrderSaveDto.size(); i++ ) { OrderComposeSaveDto ocsd = composeOrderSaveDto.get(i); - singleOrderCheck(ocsd,ocsd.getSignleOrder(),ocsd.getCount(),wxCUserBasicInfo,payWay,tenantEntity,i+1,singleProduct); + WxCoupon coupon = singleOrderCheck(ocsd.getSignleOrder(),ocsd.getCount(),wxCUserBasicInfo,payWay,tenantEntity,i+1,singleProduct); + ocsd.setWxCoupon(coupon); } WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); try { - WxComposeOrder order = proxy.saveOrderForCoupon(wxCUserBasicInfo, composeOrderSaveDto, payWay); + WxComposeOrder order = proxy.saveOrderForCoupon(composeOrderType,wxCUserBasicInfo, composeOrderSaveDto, payWay); return new ResultData(order); } catch (MallinkException e) { logger.error("saveOrderForCoupon error.",e); @@ -2546,43 +2474,7 @@ public class WxOrderServiceImpl implements WxOrderService { } - @Override - public ResultData singleSaveOrder(OrderSaveDto orderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity) { - logger.info("singleOrderSave: " + orderSaveDto); - try { - WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(cUserId,tenantEntity.getFinalTenantId()); - if (wxCUserBasicInfo != null && wxCUserBasicInfo.getStatus().equals(EnumCUserBasicInfoStatus.LOCKED.getCode())) { - logger.info("会员权益被锁定:cUserId:" + cUserId); - return new ResultData(ErrorCode.MEMBER_IS_LOCKED); - } - - int couponNumber = 1; - boolean singleNumber = true; - WxCoupon coupon = singleOrderCheck(null,orderSaveDto,couponNumber,wxCUserBasicInfo,payWay,tenantEntity,1,singleNumber); - WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); - try { - WxOrder order = proxy.saveSingleOrderForCoupon(wxCUserBasicInfo, orderSaveDto,coupon, payWay,couponNumber); - return new ResultData(order); - } catch (MallinkException e) { - logger.error("saveOrderForCoupon error.",e); - throw new MallinkException(e.getErrorCode(), e.getMessage()); - } catch (Exception e) { - logger.error("saveOrderForCoupon error.",e); - throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(), e.getMessage()); - } - - }catch(MallinkException me) { - return new ResultData(me.getErrorCode(),me.getMessage()); - }catch(Exception e) { - logger.error("composeSaveOrder error.",e); - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); - } - - - } - - - private WxCoupon singleOrderCheck(OrderComposeSaveDto ocsd,OrderSaveDto orderSaveDto,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) { + private WxCoupon singleOrderCheck(OrderSaveDto orderSaveDto,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) { logger.info("OrderSave: " + orderSaveDto); String premsg = ""; if (singleProduct) { @@ -2608,10 +2500,6 @@ public class WxOrderServiceImpl implements WxOrderService { throw new MallinkException(ErrorCode.COUPON_IS_TAKE_OFF.getCode(),premsg+"【"+coupon.getTitle()+"】已作废"); } - if (null != ocsd) { - ocsd.setWxCoupon(coupon); - } - //判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制 if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { int ordercount = this.countUserCouponGroupOrder(wxCUserBasicInfo,coupon.getId(),coupon.getTenantId()); @@ -2739,9 +2627,4 @@ public class WxOrderServiceImpl implements WxOrderService { } } - @Override - public WxComposeOrder getComposeOrder(Long orderId, TenantEntity tenantEntity) { - return wxComposeOrderMapper.selectById(orderId, tenantEntity.getTenantId()); - } - } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 4fcd3da3f..f59d03a4c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -18,6 +18,9 @@ import com.iformall.mapper.*; import com.iformall.pay.*; import com.iformall.service.*; import com.iformall.service.helper.WxPayOrderServiceHelper; +import com.iformall.service.order.OrderAdapterService; +import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.PayServiceFactory; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.CDrivingPayService; @@ -105,7 +108,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { WxCashOutService cashOutService; @Autowired - WxComposeOrderMapper wxComposeOrderMapper; + WxBatchOrderMapper wxBatchOrderMapper; + + @Autowired + OrderFactory orderFactory; JSONObject errorMapQuery = JSON.parseObject("{" + "\"ORDERNOTEXIST\":{\"detail\":\"此交易订单号不存在\",\"reason\":\"查询系统中不存在此交易订单号\",\"resolution\":\"该API只能查提交支付交易返回成功的订单,请商户检查需要查询的订单号是否正确\"},\n" + @@ -114,7 +120,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { //方法必须为public AopContext.currentProxy() @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public void handleSuccessOrder(WxPayOrder oldRecord,WxComposeOrder composeOrder,WxOrder order,PayQueryAdapterResult queryResult,boolean isScheduleTask,boolean composeSingleOrder) { + public void handleSuccessOrder(WxPayOrder oldRecord,WxComposeOrder composeOrder,PayQueryAdapterResult queryResult,boolean isScheduleTask,boolean isOneChildOrder) { Date curDate = new Date(); if (oldRecord.getPayOrderStatus() != EnumPayStatus.PAY_STATUS_SUCCESS.getCode()) { WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy(); @@ -136,12 +142,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { oldRecord.setUpdateTime(curDate); wxPayOrderMapper.updateById(oldRecord); - if (isComposeOrder(oldRecord)) { + if (EnumComposeOrder.isSingle(composeOrder.getComposeOrderType())) { //如果是组合订单的单独处理。如定时处理的单个订单 - if (composeSingleOrder) { + if (isOneChildOrder) { //处理其他信息 try { - proxy.handleOrderPaySingleOrderSuccess(oldRecord, order, transactionId,isScheduleTask); + proxy.handleOrderPaySingleOrderSuccess(composeOrder.getSingleOrder(),oldRecord, transactionId,isScheduleTask); }catch(Exception e) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); } @@ -149,10 +155,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if ( null == composeOrder) { throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(),"composeOrder is null."); } - List orderList = getComposeChildOrders(composeOrder.getId(),oldRecord); + List orderList = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()).getChildOrders(composeOrder, oldRecord.getTenantId()); for (WxOrder o : orderList) { try { - proxy.handleOrderPaySingleOrderSuccess(oldRecord, o, transactionId, isScheduleTask); + proxy.handleOrderPaySingleOrderSuccess(o,oldRecord, transactionId, isScheduleTask); }catch(Exception e) { logger.error("handleSuccessOrder error.",e); } @@ -161,7 +167,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { }else { //处理其他信息 try { - proxy.handleOrderPaySingleOrderSuccess(oldRecord, order, transactionId,isScheduleTask); + proxy.handleOrderPaySingleOrderSuccess(composeOrder.getSingleOrder(),oldRecord, transactionId,isScheduleTask); }catch(Exception e) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); } @@ -169,23 +175,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - private boolean isComposeOrder(WxPayOrder record) { - if ((null != record.getComposeOrder()) && (EnumComposeOrder.YES.getCode().intValue() == record.getComposeOrder().intValue())) { - return true; - } - return false; - } - - private List getComposeChildOrders(Long composeOrderId,TenantEntity tenantEntity) { - WxOrder orderq = new WxOrder(); - orderq.setComposeOrderId(composeOrderId); - orderq.updateTenantInfo(tenantEntity); - List orderList = wxOrderService.findList(orderq); - return orderList; - } + @Override - public WxPayOrder handleWxOrderQuery(WxPayOrder oldRecord,WxComposeOrder composeOrder,WxOrder order,WxAppinfo appInfo,WxPayAccount payAccount,IdWorker idworker,boolean repeatPay) { + public WxPayOrder handleWxOrderQuery(WxPayOrder oldRecord,WxComposeOrder composeOrder,WxAppinfo appInfo,WxPayAccount payAccount,IdWorker idworker,boolean repeatPay) { PayQueryAdapterResult queryResult = null; int wxpaystatus = 0; try { @@ -199,7 +192,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (EnumPayStatus.PAY_STATUS_SUCCESS.getCode()==wxpaystatus) { //直接调用不会触发事务,spring事务基于AOP代理 WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy(); - proxy.handleSuccessOrder(oldRecord,composeOrder,order,queryResult,false,false); + proxy.handleSuccessOrder(oldRecord,composeOrder,queryResult,false,false); throw new MallinkException(ErrorCode.PAY_ORDER_EXIST.getCode(),"该订单已经支付,请勿重复支付!"); }else if (EnumPayStatus.PAY_STATUS_REFUND.getCode()==wxpaystatus) { throw new MallinkException(ErrorCode.PAY_ORDER_REFUND.getCode(),"该订单已经退款,无法支付!"); @@ -233,29 +226,19 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { * //如果是组合订单,则wxPayOrder对应的是WxcomposeOrder.为了兼容之前的,需要把支付相关信息也保存到子订单里面去 * //如果是非组合订单,则wxPayOrder对应的是wxOrder */ - WxComposeOrder composeOrder = null; - WxOrder order = null; - if (isComposeOrder(record)) { - composeOrder = wxComposeOrderMapper.selectById(record.getOrderId(), appInfo.getTenantId()); - if (null == composeOrder) { - logger.error("pay order, order not allow, repaymentReq: " + record.toString() + ", payWay: " + payWay.toString()); - throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); - } - List orderList = getComposeChildOrders(composeOrder.getId(),appInfo.getTenantInfo()); - for (WxOrder o : orderList) { - checkSinglePayOrder(o, user, payWay); - } - - }else { - // 1. check 订单 - order = wxOrderMapper.selectById(record.getOrderId(),appInfo.getTenantId()); - if (order == null) { - logger.error("pay order, order not allow, repaymentReq: " + record.toString() + ", payWay: " + payWay.toString()); - throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); - } - checkSinglePayOrder(order, user, payWay); - } - PayAdapterResult payResult = createPayOrder(appInfo, user, record,composeOrder,order, payWay, params); + OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder()); + WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(record.getOrderId(),appInfo.getTenantId()); + if (null == composeOrder) { + logger.error("pay order, order not allow, repaymentReq: " + record.toString() + ", payWay: " + payWay.toString()); + throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); + } + + List orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); + for (WxOrder o : orderList) { + checkSinglePayOrder(o, user, payWay); + } + + PayAdapterResult payResult = createPayOrder(appInfo, user, record,composeOrder, payWay, params); if (payResult.isSuccess()) { return new ResultData(Result.SUCCESS,"创建支付单成功",payResult.getData()); }else { @@ -328,17 +311,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - private PayAdapterResult createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user,WxPayOrder record,WxComposeOrder composeOrder,WxOrder order, EnumPayWay payWay,PayExtraParam params) { - /** - * 如果composeOrder存在,支付关联composeOrder - * 如果composeOrder不存在,支付关联WxOrder - */ - boolean isComposeOrder = isComposeOrder(record); - Long orderId = order.getId(); - if (isComposeOrder) { - orderId = composeOrder.getId(); - } - + private PayAdapterResult createPayOrder(WxAppinfo appInfo, WxCUserBasicInfo user,WxPayOrder record,WxComposeOrder composeOrder, EnumPayWay payWay,PayExtraParam params) { IdWorker idworker = IdWorker.get(); EnumPayShare isShare = EnumPayShare.NO; @@ -351,7 +324,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { Date currentDate = new Date(); //一个订单只有一条支付记录。 WxPayOrder orderq = new WxPayOrder(); - orderq.setOrderId(orderId); + orderq.setOrderId(composeOrder.getMainOrderId()); List list = wxPayOrderMapper.findList(orderq); WxPayOrder oldRecord = null; if (null != list && list.size() > 0) { @@ -361,11 +334,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (null != oldRecord) { //如果是已经支付成功,则不能再次支付。如果是支付中的,也不能再次支付,等待微信同步结果 if (oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_SUCCESS.getCode()) { - logger.error("已支付>>>" + order); + logger.error("已支付>>>" + record); throw new MallinkException(ErrorCode.PAY_ORDER_EXIST); //如果是支付中的,则调用微信接口查询支付状态 }else if (oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_WAIT.getCode()) { - record = handleWxOrderQuery(oldRecord,composeOrder,order,appInfo,payAccount,idworker,true); + record = handleWxOrderQuery(oldRecord,composeOrder,appInfo,payAccount,idworker,true); if (null == record) { throw new MallinkException(ErrorCode.PAY_ORDER_PAYING.getCode(),"订单微信查询支付状态失败!"); } @@ -391,7 +364,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } record.setId(id); - record.updateTenantInfo(order); + record.updateTenantInfo(appInfo.getTenantInfo()); record.setCUserId(user.getId()); record.setCreateTime(currentDate); record.setUpdateTime(currentDate); @@ -399,14 +372,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { record.setPayTimeEnd(currentDate); // 支付单号 record.setPayOrderNo(String.valueOf(id)); - record.setPayAmount(order.getPayment()); + record.setPayAmount(composeOrder.getPayment()); record.setPayFrom(payWay.getCode()); record.setPayVendor(payWay.getCode()); record.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); record.setShare(isShare.getCode()); - if (isComposeOrder) { - record.setComposeOrder(EnumComposeOrder.YES.getCode()); - } + record.setComposeOrder(composeOrder.getComposeOrderType()); if (isShare == EnumPayShare.YES) { // 分账金额 int iChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRate(), false); @@ -430,7 +401,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.debug("wxPayRecord md5 before:"+record.toString()); String beforemd5 = HashUtil.md5(record.toString()); - PayAdapterResult payResult = payServiceFactory.getPayAdapterService(payWay.getCode()).pay(payAccount, composeOrder,order, record,isShare,appInfo, currentDate, params); + PayAdapterResult payResult = payServiceFactory.getPayAdapterService(payWay.getCode()).pay(payAccount, record,composeOrder,isShare,appInfo, currentDate, params); String aftermd5 = HashUtil.md5(record.toString()); if (beforemd5.equals(aftermd5)) { logger.error("支付方式["+payWay.getCode()+"]支付接口【pay】过程中 WxPayOrder 未做更新.record:"+record.toString()); @@ -466,7 +437,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { try { // 1. check 订单 - WxOrder order = wxOrderMapper.selectById(record.getOrderId(),appInfo.getTenantId()); + WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(EnumComposeOrder.SINGLE.getCode()).getComposeOrder(record.getOrderId(), appInfo.getTenantId()); + if (composeOrder == null) { + logger.error("pay order, order not allow, repaymentReq: " + record.toString() + ", payWay: " + payWay.toString()); + throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); + } + WxOrder order = composeOrder.getSingleOrder(); if (order == null) { logger.error("pay order, order not allow, repaymentReq: " + record.toString() + ", payWay: " + payWay.toString()); throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); @@ -486,7 +462,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { // 2. check 是否有支付订单 Date currentDate = new Date(); WxPayOrder pq = new WxPayOrder(); - pq.setOrderId(record.getOrderId()); + pq.setOrderId(EnumComposeOrder.getPayOrderId(order)); List list = wxPayOrderMapper.findList(pq); String payOrderNo = ""; if (list.size() <= 0) { @@ -534,7 +510,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.debug("wxPayRecord md5 before:"+record.toString()); String beforemd5 = HashUtil.md5(record.toString()); - PayAdapterResult payResult = payServiceFactory.getPayAdapterService(payWay.getCode()).pay(payAccount, null,order, record,isShare,appInfo, currentDate, params); + PayAdapterResult payResult = payServiceFactory.getPayAdapterService(payWay.getCode()).pay(payAccount, record,composeOrder,isShare,appInfo, currentDate, params); String aftermd5 = HashUtil.md5(record.toString()); if (beforemd5.equals(aftermd5)) { logger.error("支付方式["+payWay.getCode()+"]支付接口【pay】过程中 WxPayOrder 未做更新.record:"+record.toString()); @@ -810,8 +786,22 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } + @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void handler(WxPayOrder record,WxComposeOrder composeOrder,List composeChildOrders,WxOrder order, String transactionId,Long cUserId) { + public void handleOrderPaySuccess(WxPayOrder record, String transactionId) { + WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy(); + OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder()); + WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(record.getOrderId(), record.getTenantId()); + List orderList = orderAdapterService.getChildOrders(composeOrder, record.getTenantId()); + proxy.handler(record,composeOrder,orderList,transactionId,null); + //组合支付的订单,循环所有子订单 + for (WxOrder o : orderList) { + proxy.handleOrderPaySingleOrderSuccess(o,record, transactionId, false); + } + } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public void handler(WxPayOrder record,WxComposeOrder composeOrder,List composeChildOrders, String transactionId,Long cUserId) { Date currentDate = new Date(); EnumPayStatus payStatus = EnumPayStatus.getEnum(record.getPayOrderStatus()); // 判断支付状态 @@ -836,39 +826,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { "is paid success , orderId : " + record.getOrderId()); return; } - - if ((null != record.getComposeOrder()) && (EnumComposeOrder.YES.getCode().intValue() == record.getComposeOrder().intValue()) ) { - if (composeOrder == null) { - logger.error("pay success handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo()); - throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); - } - if (null != cUserId) { - composeOrder.setCUserId(cUserId); - wxComposeOrderMapper.updateCUserId(composeOrder); - - if (null != composeChildOrders) { - List ids = new ArrayList(); - for (WxOrder o : composeChildOrders) { - ids.add(o.getId()); - } - if (ids.size() > 0 ) { - WxOrder updateOrders = new WxOrder(); - updateOrders.setIds(ids); - updateOrders.setCUserId(cUserId); - updateOrders.updateTenantInfo(order); - wxOrderMapper.updateCUserId(updateOrders); - } - } - } - }else { - if (order == null) { - logger.error("pay success handle, order " + record.getOrderId() + " not found , payOrderid : " + record.getPayOrderNo()); - throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); - } - if (null != cUserId) { - order.setCUserId(cUserId); - wxOrderMapper.updateCUserId(order); - } + if (null != cUserId) { + orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()).updateChildOrdersCUserId(composeOrder, composeChildOrders, cUserId); } // 修改支付订单状态 @@ -890,27 +849,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void handleOrderPaySuccess(WxPayOrder record, String transactionId) { - WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy(); - if (isComposeOrder(record)) { - WxComposeOrder composeOrder = wxComposeOrderMapper.selectById(record.getOrderId(), record.getTenantId()); - List orderList = getComposeChildOrders(composeOrder.getId(),record); - proxy.handler(record,composeOrder,orderList,null,transactionId,null); - //组合支付的订单,循环所有子订单 - for (WxOrder o : orderList) { - proxy.handleOrderPaySingleOrderSuccess(record, o, transactionId, false); - } - }else { - WxOrder order = wxOrderMapper.selectById(record.getOrderId(),record.getTenantId()); - proxy.handler(record,null,null,order,transactionId,null); - proxy.handleOrderPaySingleOrderSuccess(record, order, transactionId,false); - } - } - - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void handleOrderPaySingleOrderSuccess(WxPayOrder record,WxOrder order, String transactionId,boolean isScheduleTask) { + public void handleOrderPaySingleOrderSuccess(WxOrder order,WxPayOrder record, String transactionId,boolean isScheduleTask) { Long productId = order.getProductId(); WxCoupon wxCoupon = wxCouponMapper.selectById(productId,order.getTenantId()); if(wxCoupon != null) { @@ -985,11 +925,13 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy(); - WxOrder order = wxOrderMapper.selectById(record.getOrderId(),record.getTenantId()); - proxy.handler(record, null, null, order, transcationId, basicUserId); + OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder()); + WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(record.getOrderId(), record.getTenantId()); + List orderList = orderAdapterService.getChildOrders(composeOrder, record.getTenantId()); + proxy.handler(record, composeOrder,orderList, transcationId, basicUserId); // B端收银台核销券处理, 收银台支付和券支付可能不是同一个人 WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(composeOrder.getMainOrderId()); //payOrderQ.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); try { @@ -997,7 +939,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (unPayOrder != null) { // 更新券支付状态 try { - unPayOrder.setOrderId(order.getId()); + unPayOrder.setOrderId(composeOrder.getMainOrderId()); unPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); unPayOrder.setPayVendor(payWay.getCode()); wxPayOrderMapper.updateById(unPayOrder); @@ -1020,9 +962,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } // 修改订单状态 - order.setCUserId(basicUserId); + //order.setCUserId(basicUserId); handler方法已经处理了 + try { - int _count = wxOrderService.microPayOrderSuccess(order); + int _count = wxOrderService.microPayOrderSuccess(composeOrder.getSingleOrder()); if (_count > 1) { logger.error("order micro pay count > 1"); throw new MallinkException(ErrorCode.ORDER_IS_FAIL); @@ -1045,7 +988,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (record.getShare().equals(EnumPayShare.NO.getCode())) { //结算记录 try { - proxy.createMerchantSubsidy(record, order, new Date(),true); + proxy.createMerchantSubsidy(record, composeOrder.getSingleOrder(), new Date(),true); } catch (Exception e) { logger.error("收银台结算记录失败,{}", e.getMessage()); } @@ -1110,7 +1053,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { private void doCouponPayOrder(WxMerchantBUser user, WxPayOrder record, WxOrder order,EnumPayWay payWay) { // B端收银台核销券处理 WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrderQ.setCUserId(record.getCUserId()); payOrderQ.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); @@ -1121,7 +1064,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { try { WxPayOrder payOrderCoupon = new WxPayOrder(); payOrderCoupon.setId(unPayOrder.getId()); - payOrderCoupon.setOrderId(order.getId()); + payOrderCoupon.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrderCoupon.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); wxPayOrderMapper.updateById(payOrderCoupon); } catch (Exception e) { @@ -1212,29 +1155,17 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { return; } - WxComposeOrder composeOrder = null; - WxOrder order = null; - boolean isComposeOrder = isComposeOrder(record); - List orderList = null; - if (isComposeOrder) { - composeOrder = wxComposeOrderMapper.selectById(record.getOrderId(), record.getTenantId()); - if (composeOrder == null) { - throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); - } - orderList = getComposeChildOrders(composeOrder.getId(),record); - for (WxOrder o : orderList) { - checkSingleOrder(o, record); - } - }else { - order = wxOrderMapper.selectById(record.getOrderId(),record.getTenantId()); - checkSingleOrder(order, record); - } - + OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder()); + WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(record.getOrderId(), record.getTenantId()); + List orderList = orderAdapterService.getChildOrders(composeOrder, record.getTenantId()); + for (WxOrder o : orderList) { + checkSingleOrder(o, record); + } if (record.getId() > 0) { // 有价券 if (EnumPayStatus.PAY_STATUS_FAIL.getCode() == status) { // 1. get appinfo - WxAppinfo appInfo = wxAppinfoService.getCAppInfo(order,EnumPayWay.getEnum(record.getPayVendor())); + WxAppinfo appInfo = wxAppinfoService.getCAppInfo(record,EnumPayWay.getEnum(record.getPayVendor())); // 前端支付取消, // 回调未返回,主动检查支付订单状态 try { @@ -1276,16 +1207,9 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { */ } else if (record.getPayOrderStatus() == EnumPayStatus.PAY_STATUS_CANCEL.getCode()) { try { - if (isComposeOrder && null != orderList) { - for (WxOrder o : orderList) { - wxOrderService.updateOrderStatus(o, EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL); - } - }else { - int _count = wxOrderService.updateOrderStatus(order, EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL); - if (_count > 1) { - throw new MallinkException(ErrorCode.ORDER_IS_FAIL); - } - } + for (WxOrder o : orderList) { + wxOrderService.updateOrderStatus(o, EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL); + } } catch (Exception e) { logger.error(e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL); diff --git a/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java new file mode 100644 index 000000000..16c908df9 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java @@ -0,0 +1,47 @@ +package com.iformall.service.order; + +import java.util.List; + +import com.iformall.domain.dto.OrderComposeSaveDto; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxOrder; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumPayWay; +import com.iformall.service.order.entity.WxComposeOrder; + +public interface OrderAdapterService { + + /** + * 数据库创建组合主订单,不是wxOrder.单个的模式不用创建 + * @return + */ + WxComposeOrder createDBMainOrder(WxCUserBasicInfo user,List orderSave,EnumPayWay payWay); + + /** + * 是否是一个数量一个订单。一个产品肯定是一个订单 + * @return + */ + boolean isOneNumberOneOrder(WxCoupon coupon); + + /** + * 查询订单信息,单个模式查询WxOrder + * @param mainOrderId + * @param tenantEntity + * @return + */ + WxComposeOrder getComposeOrder(Long mainOrderId,String tenantId); + + /** + * 查询子订单 + * @return + */ + List getChildOrders(WxComposeOrder composeOrder, String tenantId); + + /** + * 更新子订单cUserId + * @param orderList + * @param cUserId + */ + void updateChildOrdersCUserId(WxComposeOrder composeOrder,List orderList,Long cUserId); +} diff --git a/mallinkService/src/main/java/com/iformall/service/order/OrderFactory.java b/mallinkService/src/main/java/com/iformall/service/order/OrderFactory.java new file mode 100644 index 000000000..2e028df13 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/order/OrderFactory.java @@ -0,0 +1,20 @@ +package com.iformall.service.order; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.iformall.enums.EnumComposeOrder; +import com.iformall.service.order.impl.BatchOrderAdapterService; + +@Service +public class OrderFactory { + + @Autowired + BatchOrderAdapterService batchOrderAdapterService; + + public OrderAdapterService getOrderAdapterService(Integer composeOrderType) { + return null; + } + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeOrder.java b/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeOrder.java new file mode 100644 index 000000000..f99a99d20 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeOrder.java @@ -0,0 +1,25 @@ +package com.iformall.service.order.entity; + +import com.iformall.domain.po.WxOrder; + +import lombok.Data; + +@Data +public class WxComposeOrder { + + public WxComposeOrder(Long mainOrderId,Integer composeOrderType) { + this.mainOrderId = mainOrderId; + this.composeOrderType = composeOrderType; + } + + private Long mainOrderId; + + private Integer composeOrderType; + + private Integer payment; + + private WxOrder singleOrder;//单个模式时不用重复查询 + + private Object mainOrder;//真正的主订单对象 + +} diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/BatchOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/BatchOrderAdapterService.java new file mode 100644 index 000000000..3a8e70f56 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/BatchOrderAdapterService.java @@ -0,0 +1,108 @@ +package com.iformall.service.order.impl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import com.iformall.common.IdWorker; +import com.iformall.domain.dto.OrderComposeSaveDto; +import com.iformall.domain.po.WxBatchOrder; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxOrder; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumComposeOrder; +import com.iformall.enums.EnumPayWay; +import com.iformall.mapper.WxBatchOrderMapper; +import com.iformall.mapper.WxOrderMapper; +import com.iformall.service.WxOrderService; +import com.iformall.service.order.OrderAdapterService; +import com.iformall.service.order.entity.WxComposeOrder; +import com.iformall.service.order.util.OrderHelper; + +/** + * 购物车批量下单 + * @author alascor + * + */ +@Service +public class BatchOrderAdapterService implements OrderAdapterService { + + @Autowired + WxBatchOrderMapper wxBatchOrderMapper; + @Autowired + WxOrderMapper wxOrderMapper; + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public WxComposeOrder createDBMainOrder(WxCUserBasicInfo user,List orderSave,EnumPayWay payWay) { + WxBatchOrder order =new WxBatchOrder(); + final IdWorker idWorker = IdWorker.get(); + order.setId(idWorker.nextId()); + order.setCUserId(user.getId()); + int payment = 0; + for (OrderComposeSaveDto ocsd : orderSave) { + boolean isPress = ocsd.getSignleOrder().getPress() != null ? ocsd.getSignleOrder().getPress() : false; + payment = payment+OrderHelper.getCouponPayment(ocsd.getWxCoupon(), isPress, ocsd.getSignleOrder().getOrderGroupId(),ocsd.getCount()); + } + order.setPayment(payment); + order.setCreateDate(new Date()); + wxBatchOrderMapper.insert(order); + return new WxComposeOrder(order.getId(),EnumComposeOrder.BATCH.getCode()); + } + + @Override + public boolean isOneNumberOneOrder(WxCoupon coupon) { + return coupon.oneNumberOneOrder(); + } + + @Override + public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { + WxBatchOrder order = wxBatchOrderMapper.selectById(mainOrderId, tenantId); + WxComposeOrder corder = new WxComposeOrder(order.getId(),EnumComposeOrder.BATCH.getCode()); + corder.setPayment(order.getPayment()); + corder.setMainOrder(order); + return corder; + } + + @Override + public List getChildOrders(WxComposeOrder composeOrder, String tenantId) { + WxOrder orderq = new WxOrder(); + orderq.setComposeOrderId(composeOrder.getMainOrderId()); + orderq.setComposeOrderType(EnumComposeOrder.BATCH.getCode()); + orderq.setTenantId(tenantId); + List orderList = wxOrderMapper.findList(orderq); + return orderList; + } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public void updateChildOrdersCUserId(WxComposeOrder composeOrder,List orderList, Long cUserId) { + if (null != cUserId) { + WxBatchOrder order = (WxBatchOrder) composeOrder.getMainOrder(); + order.setCUserId(cUserId); + wxBatchOrderMapper.updateCUserId(order); + + if (null != orderList) { + List ids = new ArrayList(); + for (WxOrder o : orderList) { + ids.add(o.getId()); + } + if (ids.size() > 0 ) { + WxOrder updateOrders = new WxOrder(); + updateOrders.setIds(ids); + updateOrders.setCUserId(cUserId); + updateOrders.updateTenantInfo(order); + wxOrderMapper.updateCUserId(updateOrders); + } + } + } + + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java new file mode 100644 index 000000000..da706118b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java @@ -0,0 +1,78 @@ +package com.iformall.service.order.impl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import com.iformall.common.IdWorker; +import com.iformall.domain.dto.OrderComposeSaveDto; +import com.iformall.domain.po.WxBatchOrder; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxOrder; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumComposeOrder; +import com.iformall.enums.EnumPayWay; +import com.iformall.mapper.WxBatchOrderMapper; +import com.iformall.mapper.WxOrderMapper; +import com.iformall.service.order.OrderAdapterService; +import com.iformall.service.order.entity.WxComposeOrder; +import com.iformall.service.order.util.OrderHelper; + +/** + * 购物车批量下单 + * @author alascor + * + */ +@Service +public class SingleOrderAdapterService implements OrderAdapterService { + + @Autowired + WxOrderMapper wxOrderMapper; + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public WxComposeOrder createDBMainOrder(WxCUserBasicInfo user,List orderSave,EnumPayWay payWay) { + //do nothing, + return new WxComposeOrder(0L, EnumComposeOrder.SINGLE.getCode()); + } + + @Override + public boolean isOneNumberOneOrder(WxCoupon coupon) { + return true; + } + + @Override + public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { + WxOrder wxOrder = wxOrderMapper.selectById(mainOrderId, tenantId); + WxComposeOrder corder = new WxComposeOrder(wxOrder.getId(),EnumComposeOrder.SINGLE.getCode()); + corder.setPayment(wxOrder.getPayment()); + corder.setSingleOrder(wxOrder); + return corder; + } + + @Override + public List getChildOrders(WxComposeOrder composeOrder, String tenantId) { + List list = new ArrayList(); + list.add(composeOrder.getSingleOrder()); + return list; + } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public void updateChildOrdersCUserId(WxComposeOrder composeOrder,List orderList, Long cUserId) { + WxOrder order = composeOrder.getSingleOrder(); + order.setCUserId(cUserId); + wxOrderMapper.updateCUserId(order); + } + + + + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/order/util/OrderHelper.java b/mallinkService/src/main/java/com/iformall/service/order/util/OrderHelper.java new file mode 100644 index 000000000..77aa3c291 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/order/util/OrderHelper.java @@ -0,0 +1,26 @@ +package com.iformall.service.order.util; + +import com.iformall.domain.po.WxCoupon; +import com.iformall.enums.EnumCouponType; + +public class OrderHelper { + + public static int getCouponPayment(WxCoupon coupon,boolean isPress,Long orderGroupId,int couponNumber) { + // 4.1 券价格 + int payment = coupon.getSalePrice()*couponNumber; + //Integer orderStatus = EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode(); + if (isPress || coupon.getType().equals(EnumCouponType.COUPON_PRESS.getCode())) { + // 砍价券 初始是全价即面额 + payment = coupon.getPrice()*couponNumber; + } + if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { + if (orderGroupId == null) { + // 拼团券 初始是全价即面额 + payment = coupon.getPrice()*couponNumber; + } else { + //orderStatus = EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode(); + } + } + return payment; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java index 97013e95c..fa7ecdae6 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java @@ -5,11 +5,12 @@ import java.util.Date; import java.util.Map; import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; import com.iformall.domain.po.WxPayOrder; import com.iformall.enums.EnumPayShare; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; @@ -28,7 +29,7 @@ public interface PayAdapterService { * @return * @throws Exception */ - public PayAdapterResult pay(WxPayAccount payAccount,WxComposeOrder composeOrder,WxOrder order,WxPayOrder record ,EnumPayShare isShare,WxAppinfo appInfo,Date currentDate, PayExtraParam params) throws Exception; + public PayAdapterResult pay(WxPayAccount payAccount,WxPayOrder record ,WxComposeOrder composeOrder,EnumPayShare isShare,WxAppinfo appInfo,Date currentDate, PayExtraParam params) throws Exception; /** * 查询支付结果,调用对应端的API查询支付结果 diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java index 9e9661072..f11e1f44a 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java @@ -16,7 +16,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.PosCouponOrderVerify; import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java index c6290e5cc..ea62f5f82 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java @@ -7,11 +7,12 @@ import java.util.Map; import org.springframework.stereotype.Service; import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; import com.iformall.domain.po.WxPayOrder; import com.iformall.enums.EnumPayShare; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.CDrivingPayService; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; @@ -22,7 +23,7 @@ import com.iformall.service.pay.service.pay.wx.BaseWxPayAdapterService; public class WxH5PayService extends BaseWxPayAdapterService implements CDrivingPayService{ @Override - public PayAdapterResult pay(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order, WxPayOrder record, EnumPayShare isShare, + public PayAdapterResult pay(WxPayAccount payAccount, WxPayOrder record,WxComposeOrder composeOrder, EnumPayShare isShare, WxAppinfo appInfo, Date currentDate, PayExtraParam params) throws Exception { // TODO Auto-generated method stub return null; diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java index 9c7514669..d83eacabd 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java @@ -13,7 +13,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; import com.iformall.domain.po.WxPayOrder; @@ -26,6 +26,7 @@ import com.iformall.pay.WxPay; import com.iformall.pay.WxPayOrderP; import com.iformall.pay.WxPayOrderSP; import com.iformall.pay.WxPayment; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.CDrivingPayService; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; @@ -60,7 +61,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen "\"NOT_UTF8\":{\"detail\":\"编码格式错误\",\"reason\":\"未使用指定编码格式\",\"resolution\":\"请使用UTF-8编码格式\"}}"); - private WxPayOrderP generateWxPayOrderP(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order, WxPayOrder record,String openId,String appId,Date currentDate) throws Exception { + private WxPayOrderP generateWxPayOrderP(WxPayAccount payAccount,WxComposeOrder composeOrder, WxPayOrder record,String openId,String appId,Date currentDate) throws Exception { // 统一下单 普通商户模式 String noncestr = Utility.generate32UUID(); WxPayOrderP wxPayOrderP = new WxPayOrderP(); @@ -68,30 +69,14 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen wxPayOrderP.setAppid(appId); wxPayOrderP.setMch_id(payAccount.getMchId()); wxPayOrderP.setNonce_str(noncestr); - if (null != composeOrder) { - wxPayOrderP.setBody("组合商品"); - }else { - wxPayOrderP.setBody(order.getDetail()); - } + wxPayOrderP.setBody("在线商品"); wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); - if (null != composeOrder) { - wxPayOrderP.setTotal_fee(composeOrder.getPayment()); - }else { - wxPayOrderP.setTotal_fee(order.getPayment()); - } + wxPayOrderP.setTotal_fee(composeOrder.getPayment()); wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP - if (null != composeOrder) { - wxPayOrderP.setGoods_tag("组合商品"); - }else { - wxPayOrderP.setGoods_tag(String.valueOf(order.getProductId())); - } + wxPayOrderP.setGoods_tag("在线商品"); wxPayOrderP.setNotify_url(payAccount.getPayNotifyUrl()); wxPayOrderP.setTrade_type(WxPay.TradeType.JSAPI.name()); // 终端类型 - if (null != composeOrder) { - wxPayOrderP.setProduct_id(String.valueOf(composeOrder.getId())); // 订单ID - }else { - wxPayOrderP.setProduct_id(String.valueOf(order.getId())); - } + wxPayOrderP.setProduct_id(String.valueOf(composeOrder.getMainOrderId())); // 订单ID wxPayOrderP.setTime_start(Utility.getDataFormatStringYYYYMMDDHHmmss(currentDate)); Date futureDate = new Date(); futureDate.setTime(currentDate.getTime() + 15 * 60 * 1000); @@ -150,7 +135,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen - private WxPayOrderSP generateWxPayOrderSP(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order, WxPayOrder record,WxAppinfo appInfo,String openId,String appId,Date currentDate,EnumPayShare isShare) throws Exception { + private WxPayOrderSP generateWxPayOrderSP(WxPayAccount payAccount, WxComposeOrder composeOrder,WxPayOrder record,WxAppinfo appInfo,String openId,String appId,Date currentDate,EnumPayShare isShare) throws Exception { String noncestr = Utility.generate32UUID(); WxPayOrderSP wxPayOrderSP = new WxPayOrderSP(); wxPayOrderSP.setSub_openid(openId); @@ -159,27 +144,14 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen wxPayOrderSP.setSub_appid(appId); wxPayOrderSP.setSub_mch_id(payAccount.getSubMchId()); wxPayOrderSP.setNonce_str(noncestr); - if (null != composeOrder) { - wxPayOrderSP.setBody("组合商品"); - }else { - wxPayOrderSP.setBody(order.getDetail()); - } - + wxPayOrderSP.setBody("在线商品"); wxPayOrderSP.setOut_trade_no(record.getPayOrderNo()); - if (null != composeOrder) { - wxPayOrderSP.setTotal_fee(composeOrder.getPayment().toString()); - }else { - wxPayOrderSP.setTotal_fee(order.getPayment().toString()); - } + wxPayOrderSP.setTotal_fee(composeOrder.getPayment().toString()); wxPayOrderSP.setSpbill_create_ip(record.getIp()); // 终端IP - wxPayOrderSP.setGoods_tag(String.valueOf(order.getProductId())); // 券ID + wxPayOrderSP.setGoods_tag("在线商品"); // 券ID wxPayOrderSP.setNotify_url(payAccount.getPayNotifyUrl()); wxPayOrderSP.setTrade_type(WxPay.TradeType.JSAPI.name()); // 终端类型 - if (null != composeOrder) { - wxPayOrderSP.setProduct_id("组合商品"); // 券ID - }else { - wxPayOrderSP.setProduct_id(String.valueOf(order.getProductId())); - } + wxPayOrderSP.setProduct_id(String.valueOf(composeOrder.getMainOrderId())); // wxPayOrderSP.setTime_start(Utility.getDataFormatStringYYYYMMDDHHmmss(currentDate)); Date futureDate = new Date(); futureDate.setTime(currentDate.getTime() + 15 * 60 * 1000); @@ -242,7 +214,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen @Override - public PayAdapterResult pay(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order, WxPayOrder record,EnumPayShare isShare,WxAppinfo appInfo,Date currentDate, PayExtraParam params) throws Exception { + public PayAdapterResult pay(WxPayAccount payAccount, WxPayOrder record,WxComposeOrder composeOrder,EnumPayShare isShare,WxAppinfo appInfo,Date currentDate, PayExtraParam params) throws Exception { if (null == params ) { throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空"); } @@ -252,7 +224,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen } //普通商户模式 if (payAccount.getType() == EnumPayMode.MCH.getCode()) { - WxPayOrderP wxPayOrderP = generateWxPayOrderP(payAccount,composeOrder,order,record,openId,appInfo.getAppId(),currentDate); + WxPayOrderP wxPayOrderP = generateWxPayOrderP(payAccount,composeOrder,record,openId,appInfo.getAppId(),currentDate); String response = WxPay.pushOrder(BeanUtils.toStringMap(wxPayOrderP)); log.info("pay order, wechat pushOrder, " + wxPayOrderP.toString() + ", response: " + response.toString()); Map returnMap = WxPayment.xmlToMap(response); @@ -260,7 +232,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen } else { // 统一下单 // 服务商模式 - WxPayOrderSP wxPayOrderSP = generateWxPayOrderSP(payAccount,composeOrder,order,record,appInfo,openId,appInfo.getAppId(),currentDate,isShare); + WxPayOrderSP wxPayOrderSP = generateWxPayOrderSP(payAccount,composeOrder,record,appInfo,openId,appInfo.getAppId(),currentDate,isShare); String response = WxPay.pushOrder(BeanUtils.toStringMap(wxPayOrderSP)); log.info("pay order, wechat pushOrder, " + wxPayOrderSP.toString() + ", response: " + response.toString()); Map returnMap = WxPayment.xmlToMap(response); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java index 7bf07dca4..6750533a9 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java @@ -12,7 +12,7 @@ import com.iformall.common.IdWorker; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxComposeOrder; +import com.iformall.domain.po.WxBatchOrder; import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayAccount; @@ -30,6 +30,7 @@ import com.iformall.pay.WxMicroPayOrderSP; import com.iformall.pay.WxPay; import com.iformall.pay.WxPayment; import com.iformall.service.WxCUserService; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.CPassivePayService; import com.iformall.service.pay.service.pay.entity.CreateUser; @@ -46,7 +47,7 @@ import me.chanjar.weixin.common.error.WxErrorException; @Service public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implements CPassivePayService{ - private WxMicroPayOrderP generateWxMicroPayOrderP(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order, WxPayOrder record, EnumPayShare isShare, + private WxMicroPayOrderP generateWxMicroPayOrderP(WxPayAccount payAccount, WxComposeOrder composeOrder, WxPayOrder record, EnumPayShare isShare, WxAppinfo appInfo, Date currentDate,String bAppId,String bUserPhone) throws Exception { String noncestr = Utility.generate32UUID(); WxMicroPayOrderP wxPayOrderP = new WxMicroPayOrderP(); @@ -54,11 +55,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement wxPayOrderP.setMch_id(payAccount.getMchId()); wxPayOrderP.setDevice_info(bUserPhone); wxPayOrderP.setNonce_str(noncestr); - if (null != composeOrder) { - wxPayOrderP.setBody("组合商品"); - }else { - wxPayOrderP.setBody(order.getDetail()); - } + wxPayOrderP.setBody("在线商品"); wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); wxPayOrderP.setTotal_fee(record.getPayAmount()); wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP @@ -104,7 +101,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement } - private WxMicroPayOrderSP generateWxMicroPayOrderSP(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order,WxPayOrder record, EnumPayShare isShare, + private WxMicroPayOrderSP generateWxMicroPayOrderSP(WxPayAccount payAccount, WxComposeOrder composeOrder,WxPayOrder record, EnumPayShare isShare, WxAppinfo appInfo, Date currentDate,String bUserPhone) throws Exception { String noncestr = Utility.generate32UUID(); WxMicroPayOrderSP wxPayOrderSP = new WxMicroPayOrderSP(); @@ -114,11 +111,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement wxPayOrderSP.setSub_mch_id(payAccount.getSubMchId()); wxPayOrderSP.setDevice_info(bUserPhone); wxPayOrderSP.setNonce_str(noncestr); - if (null != composeOrder) { - wxPayOrderSP.setBody("组合商品"); - }else { - wxPayOrderSP.setBody(order.getDetail()); - } + wxPayOrderSP.setBody("在线商品"); wxPayOrderSP.setOut_trade_no(record.getPayOrderNo()); wxPayOrderSP.setTotal_fee(record.getPayAmount()); wxPayOrderSP.setSpbill_create_ip(record.getIp()); @@ -170,7 +163,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement @Override - public PayAdapterResult pay(WxPayAccount payAccount, WxComposeOrder composeOrder,WxOrder order, WxPayOrder record, EnumPayShare isShare, + public PayAdapterResult pay(WxPayAccount payAccount, WxPayOrder record, WxComposeOrder composeOrder, EnumPayShare isShare, WxAppinfo appInfo, Date currentDate, PayExtraParam params) throws Exception { if (payAccount.getType() == EnumPayMode.MCH.getCode()) { // 扫码支付 普通商户模式 @@ -183,12 +176,12 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"bUserPhone 不能为空"); } - WxMicroPayOrderP wxPayOrderP = generateWxMicroPayOrderP(payAccount, composeOrder,order, record, isShare, appInfo, currentDate, bAppId, bUserPhone); + WxMicroPayOrderP wxPayOrderP = generateWxMicroPayOrderP(payAccount, composeOrder,record, isShare, appInfo, currentDate, bAppId, bUserPhone); String response = WxPay.micropay(BeanUtils.toStringMap(wxPayOrderP)); log.info("pay order, wechat micropay, " + wxPayOrderP.toString() + ", response: " + response.toString()); Map returnMap = WxPayment.xmlToMap(response); returnMap.put("payOrderId", record.getPayOrderNo()); - returnMap.put("orderId", String.valueOf(order.getId())); + returnMap.put("orderId", String.valueOf(composeOrder.getMainOrderId())); return getWxMicroPayOrderPResult(returnMap, record, payAccount); } else { // 统一下单 // 服务商模式 @@ -196,12 +189,12 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement if (StringUtils.isBlank(bUserPhone)) { throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"bUserPhone 不能为空"); } - WxMicroPayOrderSP wxPayOrderSP = generateWxMicroPayOrderSP(payAccount, composeOrder,order, record, isShare, appInfo, currentDate, bUserPhone); + WxMicroPayOrderSP wxPayOrderSP = generateWxMicroPayOrderSP(payAccount, composeOrder,record, isShare, appInfo, currentDate, bUserPhone); String response = WxPay.micropay(BeanUtils.toStringMap(wxPayOrderSP)); log.info("pay order, wechat micropay, " + wxPayOrderSP.toString() + ", response: " + response.toString()); Map returnMap = WxPayment.xmlToMap(response); returnMap.put("payOrderId", record.getPayOrderNo()); - returnMap.put("orderId", String.valueOf(order.getId())); + returnMap.put("orderId", String.valueOf(composeOrder.getMainOrderId())); return getWxMicroPayOrderSPResutl(returnMap, record, payAccount); } } diff --git a/mallinkService/src/main/resources/mapper/WxComposeOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml similarity index 82% rename from mallinkService/src/main/resources/mapper/WxComposeOrderMapper.xml rename to mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml index ac455f688..ce3973f82 100644 --- a/mallinkService/src/main/resources/mapper/WxComposeOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml @@ -1,7 +1,7 @@ - - + + @@ -47,23 +47,23 @@ - select - from wx_compose_order + from wx_batch_order - + select count(1) from wx_batch_order - - update wx_compose_order set `c_user_id` = #{cUserId} where id =#{id} and tenant_id=#{tenantId} + + update wx_batch_order set `c_user_id` = #{cUserId} where id =#{id} and tenant_id=#{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index a5cc0da3b..6e9623073 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -22,10 +22,13 @@ + + - `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, `verify_type`,`verify_remark`,`pay_vendor`,`send_merchant_id`,`send_merchant_user_id` + `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, + `verify_type`,`verify_remark`,`pay_vendor`,`send_merchant_id`,`send_merchant_user_id`,`compose_order_type`,`compose_order_id` @@ -101,6 +104,14 @@ and `send_merchant_user_id` = #{sendMerchantUserId} + + + and `compose_order_type` = #{composeOrderType} + + + + and `compose_order_id` = #{composeOrderId} + and id in diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index b86d7817e..2c5a5acb6 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -25,11 +25,12 @@ + `id`,`order_number`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`coupon_channel_id`,`product_id`,`type`,`payment_type`,`payment`,`payment_time`,`order_status`,`create_date`,`update_date`,`detail`, - `press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`,`total_payment`,`compose_order_id`,`coupon_number` + `press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`,`total_payment`,`compose_order_id`,`coupon_number`,`compose_order_type` @@ -117,6 +118,10 @@ and `compose_order_id` = #{composeOrderId} + + + and `compose_order_type` = #{composeOrderType} + and `order_status` in