| @@ -0,0 +1,300 @@ | |||||
| ALTER TABLE `mallink`.`wx_order_0` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_1` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_2` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_3` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_4` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_5` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_6` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_7` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_8` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_9` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_10` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_11` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_12` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_13` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_14` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_15` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_16` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_17` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_18` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_19` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_20` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_21` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_22` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_23` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_24` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_25` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_26` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_27` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_28` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_29` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_30` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_31` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_32` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_33` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_34` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_35` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_36` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_37` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_38` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_39` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_40` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_41` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_42` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_43` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_44` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_45` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_46` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_47` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_48` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_49` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_50` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_51` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_52` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_53` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_54` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_55` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_56` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_57` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_58` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_59` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_60` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_61` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_62` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_63` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_64` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_65` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_66` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_67` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_68` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_69` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_70` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_71` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_72` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_73` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_74` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_75` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_76` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_77` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_78` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_79` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_80` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_81` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_82` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_83` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_84` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_85` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_86` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_87` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_88` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_89` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_90` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_91` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_92` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_93` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_94` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_95` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_96` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_97` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_98` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| ALTER TABLE `mallink`.`wx_order_99` | |||||
| ADD COLUMN `product_name` varchar(255) AFTER `product_id`, | |||||
| ADD COLUMN `make_merchant_id` bigint(20) DEFAULT 0 AFTER `pay_version`; | |||||
| @@ -245,7 +245,7 @@ public class BaseController { | |||||
| } | } | ||||
| public WxAppinfo getAppInfo(String appId) { | public WxAppinfo getAppInfo(String appId) { | ||||
| return wxAppinfoService.getByAppId(appId); | |||||
| return wxAppinfoService.getByAppIdFromRedis(appId); | |||||
| } | } | ||||
| public WxMaService getWeappService(String appId) { | public WxMaService getWeappService(String appId) { | ||||
| @@ -206,14 +206,14 @@ public class WxOrderController extends BaseController { | |||||
| } | } | ||||
| //验证app | //验证app | ||||
| WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id); | |||||
| WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id); | |||||
| if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) | if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) | ||||
| || !EnumAppType.C.getCode().equals(appinfo.getType())){ | || !EnumAppType.C.getCode().equals(appinfo.getType())){ | ||||
| map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); | map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); | ||||
| map.put("err_tips",ErrorCode.APP_ID_NOT_FOUND.getMessage()); | map.put("err_tips",ErrorCode.APP_ID_NOT_FOUND.getMessage()); | ||||
| return map; | return map; | ||||
| } | } | ||||
| WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); | |||||
| WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId()); | |||||
| if(payAccount == null){ | if(payAccount == null){ | ||||
| map.put("err_no",ErrorCode.API_KEY_NOT_FOUND.getCode()); | map.put("err_no",ErrorCode.API_KEY_NOT_FOUND.getCode()); | ||||
| map.put("err_tips","未找到支付配置"); | map.put("err_tips","未找到支付配置"); | ||||
| @@ -255,23 +255,6 @@ public class WxOrderController extends BaseController { | |||||
| data.put("order_goods_info",order.getExtParam()); | data.put("order_goods_info",order.getExtParam()); | ||||
| } | } | ||||
| // List<Map<String,Object>> goodsValid = new ArrayList<>(); | |||||
| // for (Long couponChannelId:order.getCouponChannelMap().keySet()) { | |||||
| // Map<String,Object> goodsValidMap = new HashMap<>(); | |||||
| // WxCouponChannel couponChannel = order.getCouponChannelMap().get(couponChannelId); | |||||
| // goodsValidMap.put("goods_id",couponChannel.getTtSpuId()); | |||||
| // WxCoupon wxCoupon = order.getCouponMap().get(couponChannel.getCouponId()); | |||||
| // if(EnumCouponValidType.BETWEEN_TWO_TIME.getCode().equals(wxCoupon.getValidType())){ | |||||
| // goodsValidMap.put("valid_start_time",wxCoupon.getValidStartDate().getTime()); | |||||
| // goodsValidMap.put("valid_end_time",wxCoupon.getValidEndDate().getTime()); | |||||
| // }else{ | |||||
| // goodsValidMap.put("valid_duration",(long)wxCoupon.getValidDays()*24*3600*1000); | |||||
| // } | |||||
| // goodsValid.add(goodsValidMap); | |||||
| // } | |||||
| // data.put("order_valid_time",goodsValid); | |||||
| map.put("data",data); | map.put("data",data); | ||||
| map.put("err_no",0); | map.put("err_no",0); | ||||
| map.put("err_tips",resultData.message); | map.put("err_tips",resultData.message); | ||||
| @@ -296,209 +279,6 @@ public class WxOrderController extends BaseController { | |||||
| } | } | ||||
| } | } | ||||
| // @AuthIgnore | |||||
| // @ApiOperation(value = "抖音支付2.0与下单回调推送订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") | |||||
| // @PostMapping("douyinPushOrder") | |||||
| // public Map<String,Object> douyinPushOrder(HttpServletRequest request) { | |||||
| // | |||||
| // Map<String, Object> map = new HashMap(); | |||||
| // | |||||
| // SignatureHeader header = new SignatureHeader(); | |||||
| // header.setTimeStamp(request.getHeader("Byte-Timestamp")); | |||||
| // header.setNonce(request.getHeader("Byte-Nonce-Str")); | |||||
| // header.setSigned(request.getHeader("Byte-Signature")); | |||||
| // | |||||
| // logger.info("支付2.0预下单回调---header{}"+header.toString()); | |||||
| // | |||||
| // String body = ((BodyReaderHttpServletRequestWrapper) request).getBody(); | |||||
| // logger.info("支付2.0预下单回调---body{}"+body); | |||||
| // try { | |||||
| // JSONObject jsonObject = JSONObject.parseObject(body); | |||||
| // String msg = jsonObject.getString("msg"); | |||||
| // | |||||
| // JSONObject msgObject = JSONObject.parseObject(msg); | |||||
| // String app_id = msgObject.getString("app_id"); | |||||
| // String open_id = msgObject.getString("open_id"); | |||||
| // //透传字段 | |||||
| // Map<String,String> couponMap = new HashMap<>(); | |||||
| // try{ | |||||
| // String cp_extra = msgObject.getString("cp_extra"); | |||||
| // if(StringUtils.isBlank(cp_extra)){ | |||||
| // map.put("err_no",ErrorCode.SYS_PARAMETER_NOT_NULL.getCode()); | |||||
| // map.put("err_tips","缺少透传字段"); | |||||
| // return map; | |||||
| // } | |||||
| // couponMap = JSONObject.parseObject(cp_extra, Map.class); | |||||
| // }catch(Exception e){ | |||||
| // } | |||||
| // if(couponMap.isEmpty()){ | |||||
| // map.put("err_no",ErrorCode.SYS_PARAMETER_NOT_NULL.getCode()); | |||||
| // map.put("err_tips","透传字段格式不正确"); | |||||
| // return map; | |||||
| // } | |||||
| // | |||||
| // //验证app | |||||
| // WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id); | |||||
| // if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) | |||||
| // || !EnumAppType.C.getCode().equals(appinfo.getType())){ | |||||
| // map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); | |||||
| // map.put("err_tips",ErrorCode.APP_ID_NOT_FOUND.getMessage()); | |||||
| // return map; | |||||
| // } | |||||
| // WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); | |||||
| // if(payAccount == null){ | |||||
| // map.put("err_no",ErrorCode.API_KEY_NOT_FOUND.getCode()); | |||||
| // map.put("err_tips","未找到支付配置"); | |||||
| // return map; | |||||
| // } | |||||
| // TenantEntity tenantEntity = new TenantEntity(); | |||||
| // tenantEntity.updateTenantInfo(appinfo); | |||||
| // //验证用户 | |||||
| // Long memberId = null; | |||||
| // TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, tenantEntity.getTenantId()); | |||||
| // if(cuser != null && cuser.getUserId() != null){ | |||||
| // memberId = cuser.getUserId(); | |||||
| // } | |||||
| // if(memberId == null){ | |||||
| // map.put("err_no",ErrorCode.USER_NOT_MEMBER.getCode()); | |||||
| // map.put("err_tips",ErrorCode.USER_NOT_MEMBER.getMessage()); | |||||
| // return map; | |||||
| // } | |||||
| // | |||||
| // | |||||
| // TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount); | |||||
| // CreateOrderCallback createOrderCallback = ttPayService.parseOrderNotifyV2Result(body, header); | |||||
| // JSONObject allExtParam = new JSONObject(); | |||||
| // allExtParam.put("order_id",createOrderCallback.getOrderId()); | |||||
| // allExtParam.put("total_amount",createOrderCallback.getTotalAmount()); | |||||
| // allExtParam.put("discount",createOrderCallback.getDiscount()); | |||||
| // allExtParam.put("open_id",createOrderCallback.getOpenId()); | |||||
| // | |||||
| // List<PlatPushOrderSaveDto> list = new ArrayList<>(); | |||||
| // for (CreateOrderCallback.Good good:createOrderCallback.getGoods()) { | |||||
| // PlatPushOrderSaveDto dto = new PlatPushOrderSaveDto(); | |||||
| // dto.setCouponChannelId(Long.parseLong(couponMap.get(good.getGoodsId()))); | |||||
| // dto.setCount(good.getQuantity()); | |||||
| // dto.setExtParam(JSON.toJSONString(good.getItemOrderInfoList())); | |||||
| // list.add(dto); | |||||
| // } | |||||
| // | |||||
| // ResultData resultData = wxOrderService.platPushSaveOrder(true, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH, allExtParam.toJSONString(), list, memberId, EnumPayWay.PAY_WAY_TT, tenantEntity); | |||||
| // logger.info("resultData{}"+JSON.toJSONString(resultData)); | |||||
| // if(resultData.code == 200){ | |||||
| // WxComposeOrder order = (WxComposeOrder) resultData.data; | |||||
| // Map<String, Object> data = new HashMap<>(); | |||||
| // data.put("out_order_no",order.getMainOrderId().toString()); | |||||
| // data.put("pay_expire_seconds",15*60); | |||||
| // data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(order.getMainOrderId())); | |||||
| //// List<Map<String,Object>> goodsValid = new ArrayList<>(); | |||||
| //// for (Long couponChannelId:order.getCouponChannelMap().keySet()) { | |||||
| //// Map<String,Object> goodsValidMap = new HashMap<>(); | |||||
| //// WxCouponChannel couponChannel = order.getCouponChannelMap().get(couponChannelId); | |||||
| //// goodsValidMap.put("goods_id",couponChannel.getTtSpuId()); | |||||
| //// WxCoupon wxCoupon = order.getCouponMap().get(couponChannel.getCouponId()); | |||||
| //// if(EnumCouponValidType.BETWEEN_TWO_TIME.getCode().equals(wxCoupon.getValidType())){ | |||||
| //// goodsValidMap.put("valid_start_time",wxCoupon.getValidStartDate().getTime()); | |||||
| //// goodsValidMap.put("valid_end_time",wxCoupon.getValidEndDate().getTime()); | |||||
| //// }else{ | |||||
| //// goodsValidMap.put("valid_duration",(long)wxCoupon.getValidDays()*24*3600*1000); | |||||
| //// } | |||||
| //// goodsValid.add(goodsValidMap); | |||||
| //// } | |||||
| //// data.put("order_valid_time",goodsValid); | |||||
| // | |||||
| // map.put("data",data); | |||||
| // map.put("err_no",0); | |||||
| // map.put("err_tips",resultData.message); | |||||
| // logger.info("resultData{}"+JSON.toJSONString(map)); | |||||
| // return map; | |||||
| // }else{ | |||||
| // map.put("err_no",resultData.code); | |||||
| // map.put("err_tips",resultData.message); | |||||
| // return map; | |||||
| // } | |||||
| // | |||||
| // } catch (TtPayException e) { | |||||
| // logger.error(e.getMessage()); | |||||
| // map.put("err_no",ErrorCode.SYS_BEAN_EMPTY_PROPERTY_ERROR.getCode()); | |||||
| // map.put("err_tips",e.getMessage()); | |||||
| // return map; | |||||
| // } catch (Exception e){ | |||||
| // logger.error(e.getMessage()); | |||||
| // map.put("err_no",ErrorCode.SYS_SERVER_ERROR.getCode()); | |||||
| // map.put("err_tips",e.getMessage()); | |||||
| // return map; | |||||
| // } | |||||
| // } | |||||
| // @ApiOperation(value = "继续支付", notes = "{\"composeOrderId\":\"string\"}") | |||||
| // @PostMapping("/continueToPay") | |||||
| // public ResultData continueToPay(@RequestBody Map<String, Object> paramMap) { | |||||
| // logger.info("/api/order/continueToPay" + paramMap.toString()); | |||||
| // String orderIdStr = (String) paramMap.get("composeOrderId"); | |||||
| // if (StringUtils.isBlank(orderIdStr)) { | |||||
| // logger.info("orderId不能为空: " + paramMap.toString()); | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); | |||||
| // } | |||||
| // Long orderId = 0L; | |||||
| // try { | |||||
| // orderId = Long.valueOf(orderIdStr); | |||||
| // } catch (NumberFormatException e) { | |||||
| // logger.error("orderId参数不正确: " + paramMap.toString() + ", e:" + e.getMessage()); | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId参数不正确"); | |||||
| // } | |||||
| // | |||||
| // WxBatchOrder batchOrder = wxOrderService.getWxBatchOrder(getTenantInfo(),orderId); | |||||
| // if(batchOrder == null){ | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "未找到订单"); | |||||
| // } | |||||
| // | |||||
| // WxPayOrder payOrder = new WxPayOrder(); | |||||
| // payOrder.setOrderId(orderId); | |||||
| // payOrder.updateTenantInfo(getTenantInfo()); | |||||
| // payOrder.setPayVendor(batchOrder.getPayVendor()); | |||||
| // payOrder.setComposeOrder(batchOrder.getOrderType()); | |||||
| // | |||||
| // try { | |||||
| // WxPayOrder byObj = wxPayOrderService.getByObj(payOrder); | |||||
| // if(byObj == null){ | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "未找到支付订单"); | |||||
| // } | |||||
| // if(EnumPayStatus.PAY_STATUS_WAIT.getCode().equals(byObj.getPayOrderStatus())){ | |||||
| // WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(byObj.getComposeOrder()).getComposeOrder(byObj.getOrderId(), byObj.getTenantId()); | |||||
| // | |||||
| // WxAppinfo appInfo = wxAppinfoService.getCAppInfo(byObj, EnumPayWay.getEnum(byObj.getPayVendor()).getPlat()); | |||||
| // //WxCUser user = getUser(); | |||||
| // //WxAppinfo appInfo = getAppInfo(user.getAppId()); | |||||
| // if (null == appInfo) { | |||||
| // return new ResultData(ErrorCode.PAY_ORDER_ERROR, "当前支付类型["+byObj.getPayVendor()+"]找不到C端appInfo"); | |||||
| // } | |||||
| // WxPayAccount payAccount = wxPayAccountService.getById(appInfo.getPayId()); | |||||
| // try { | |||||
| // WxPayOrder wo = wxPayOrderService.handleWxOrderQuery(byObj, composeOrder,appInfo, payAccount, IdWorker.get(),false); | |||||
| // if (null != wo) { | |||||
| // Map<String,Object> map = new HashMap<>(); | |||||
| // map.put("outOrderNo",orderId); | |||||
| // return new ResultData(map); | |||||
| // } | |||||
| // }catch(MallinkException e) { | |||||
| // //已经同步了微信的支付状态,表示已经更新 | |||||
| // return new ResultData(e.getErrorCode(),e.getMessage()); | |||||
| // } | |||||
| // return new ResultData(ErrorCode.PAY_ORDER_QUERY_ERROR.getCode(), "查询微信订单支付状态失败,请稍后!"); | |||||
| // }else{ | |||||
| // return new ResultData(ErrorCode.PAY_ORDER_QUERY_ERROR.getCode(), "订单"+EnumPayStatus.getEnum(payOrder.getPayOrderStatus()).getMessage()); | |||||
| // } | |||||
| // } catch (MallinkException e) { | |||||
| // logger.error("支付状态更新失败2: " + orderId + ", e:" + e.getMessage(),e); | |||||
| // return new ResultData(e.getErrorCode(), e.getMessage()); | |||||
| // } catch (Exception e) { | |||||
| // logger.error("支付状态更新失败3: " + orderId + ", e:" + e.getMessage(),e); | |||||
| // return new ResultData(ErrorCode.PAY_ORDER_ERROR, "支付状态更新失败3: " + orderId + ", e:" + e.getMessage()); | |||||
| // } | |||||
| // } | |||||
| @ApiOperation(value = "取消订单", notes = "{\"orderId\":\"string\"}") | @ApiOperation(value = "取消订单", notes = "{\"orderId\":\"string\"}") | ||||
| @PostMapping("cancel") | @PostMapping("cancel") | ||||
| @@ -583,104 +363,6 @@ public class WxOrderController extends BaseController { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| // @ApiOperation("分页订单列表接口") | |||||
| // @GetMapping("list") | |||||
| // @ApiImplicitParams({ | |||||
| // @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||||
| // @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), | |||||
| // }) | |||||
| // public ResultData list(@ModelAttribute WxOrder wxOrder, Integer pageNum, Integer pageSize) { | |||||
| // // c端用户应该只能看到自己的订单 | |||||
| // if (wxOrder == null){ | |||||
| // wxOrder = new WxOrder(); | |||||
| // } | |||||
| // Long memberId; | |||||
| // try { | |||||
| // memberId = getMemberId(); | |||||
| // } catch (Exception e) { | |||||
| // return new ResultData(Result.ERROR,e.getMessage()); | |||||
| // } | |||||
| // wxOrder.setCUserId(memberId); | |||||
| // wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); | |||||
| // wxOrder.updateTenantInfo(getTenantInfo()); | |||||
| // final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize,false); | |||||
| // | |||||
| // Date now = new Date(); | |||||
| // page.getList().stream().forEach(oc->{ | |||||
| // if (oc.getValidStartDate() != null && oc.getValidEndDate() != null ) { | |||||
| // if (oc.getValidStartDate().getTime() > now.getTime()) { | |||||
| // oc.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode()); | |||||
| // } else if (oc.getValidEndDate().getTime() < now.getTime()) { | |||||
| // oc.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode()); | |||||
| // } else { | |||||
| // oc.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode()); | |||||
| // } | |||||
| // } | |||||
| // }); | |||||
| // | |||||
| // | |||||
| // return new ResultData(page); | |||||
| // } | |||||
| // @ApiOperation("订单详情接口") | |||||
| // @GetMapping("detail") | |||||
| // @ApiImplicitParams({ | |||||
| // @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "String", paramType = "query", required = true) | |||||
| // }) | |||||
| // public ResultData detail(String orderId) { | |||||
| // if (StringUtils.isBlank(orderId) || orderId.equalsIgnoreCase(Constant.UNDEFINED)) { | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| // } | |||||
| // // c端用户应该只能看到自己的订单细节 | |||||
| // WxOrder wxOrder = new WxOrder(); | |||||
| // Long id = 0L; | |||||
| // try { | |||||
| // id = Long.valueOf(orderId); | |||||
| // } catch (NumberFormatException e) { | |||||
| // logger.error("parse orderId failed"); | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "订单ID转换异常:"+orderId); | |||||
| // } | |||||
| // wxOrder.setId(id); | |||||
| // Long memberId; | |||||
| // try { | |||||
| // memberId = getMemberId(); | |||||
| // } catch (Exception e) { | |||||
| // return new ResultData(Result.ERROR,e.getMessage()); | |||||
| // } | |||||
| // wxOrder.setCUserId(memberId); | |||||
| // wxOrder.updateTenantInfo(getTenantInfo()); | |||||
| // WxOrderCouponVo wxOrderCVo = wxOrderService.detailCUserVo(wxOrder); | |||||
| // if (wxOrderCVo == null) | |||||
| // return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); | |||||
| // | |||||
| // Date now = new Date(); | |||||
| // | |||||
| // if (wxOrderCVo.getValidStartDate() != null && wxOrderCVo.getValidEndDate() != null | |||||
| // && !wxOrderCVo.getType().equals(EnumCouponType.COUPON_PREORDER.getCode())) { | |||||
| // if (wxOrderCVo.getValidStartDate().getTime() > now.getTime()) { | |||||
| // wxOrderCVo.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode()); | |||||
| // } else if (wxOrderCVo.getValidEndDate().getTime() < now.getTime()) { | |||||
| // wxOrderCVo.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode()); | |||||
| // } else { | |||||
| // wxOrderCVo.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode()); | |||||
| // } | |||||
| // } | |||||
| // if(wxOrderCVo.getType().equals(EnumCouponType.COUPON_PREORDER.getCode()) | |||||
| // && wxOrderCVo.getPickStartDate() != null && wxOrderCVo.getPickEndDate() != null){ | |||||
| //// wxOrderCVo.setValidStartDate(wxOrderCVo.getPickStartDate()); | |||||
| //// wxOrderCVo.setValidEndDate(wxOrderCVo.getPickEndDate()); | |||||
| // if (wxOrderCVo.getPickStartDate().getTime() > now.getTime()) { | |||||
| // wxOrderCVo.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode()); | |||||
| // } else if (wxOrderCVo.getPickEndDate().getTime() < now.getTime()) { | |||||
| // wxOrderCVo.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode()); | |||||
| // } else { | |||||
| // wxOrderCVo.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode()); | |||||
| // } | |||||
| // } | |||||
| // | |||||
| // return new ResultData(wxOrderCVo); | |||||
| // } | |||||
| @ApiOperation("订单详情接口") | @ApiOperation("订单详情接口") | ||||
| @GetMapping("detail_v1") | @GetMapping("detail_v1") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @@ -761,35 +443,6 @@ public class WxOrderController extends BaseController { | |||||
| } | } | ||||
| } | } | ||||
| // @ApiOperation(value = "根据orderId查询接口", notes = "{\"orderId\":\"string\"}") | |||||
| // @GetMapping("/findById") | |||||
| // @ApiImplicitParams({ | |||||
| // @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "String", paramType = "query", required = true) | |||||
| // }) | |||||
| // public ResultData findById(String orderId) { | |||||
| // if (orderId == null || orderId.equalsIgnoreCase(Constant.UNDEFINED)) { | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| // } | |||||
| // Long id = 0L; | |||||
| // try { | |||||
| // id = Long.valueOf(orderId); | |||||
| // } catch (NumberFormatException e) { | |||||
| // logger.error("parse orderId failed"); | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "订单ID转换异常:"+orderId); | |||||
| // } | |||||
| // WxOrder order = null; | |||||
| // try { | |||||
| // order = wxOrderService.getById(id,getTenantInfo().getTenantId()); | |||||
| // if (order != null) { | |||||
| // return new ResultData(Result.SUCCESS, "查询成功", order); | |||||
| // } else { | |||||
| // return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); | |||||
| // } | |||||
| // } catch (Exception e) { | |||||
| // logger.error("parse orderId failed"); | |||||
| // return new ResultData(ErrorCode.DB_FAIL.getCode(), "订单查询未成功,e:" + e.getMessage()); | |||||
| // } | |||||
| // } | |||||
| @ApiOperation(value = "获取未支付订单", notes = "{\"couponId\":\"string\"}") | @ApiOperation(value = "获取未支付订单", notes = "{\"couponId\":\"string\"}") | ||||
| @GetMapping("getUnPaidOrder") | @GetMapping("getUnPaidOrder") | ||||
| @@ -2467,6 +2467,7 @@ public class PosServiceImpl implements PosService { | |||||
| order.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); | order.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); | ||||
| order.setPayVersion(EnumPayVersion.NEU_POS_V1.getCode()); | order.setPayVersion(EnumPayVersion.NEU_POS_V1.getCode()); | ||||
| order.setProductId(merchantBUser.getId()); | order.setProductId(merchantBUser.getId()); | ||||
| order.setProductName(EnumOrderType.POSPAY.getMessage()); | |||||
| order.setCUserId(memId); | order.setCUserId(memId); | ||||
| order.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | order.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| order.setPayment(posAmount); | order.setPayment(posAmount); | ||||
| @@ -57,6 +57,8 @@ public class WxOrder extends TenantEntity { | |||||
| private Long couponChannelId; | private Long couponChannelId; | ||||
| @io.swagger.annotations.ApiModelProperty(value="产品ID(type-0:couponId, 1:buserId, 3:merchantId)",name="productId") | @io.swagger.annotations.ApiModelProperty(value="产品ID(type-0:couponId, 1:buserId, 3:merchantId)",name="productId") | ||||
| private Long productId; | private Long productId; | ||||
| @io.swagger.annotations.ApiModelProperty(value="产品基本描述",name="productName") | |||||
| private String productName; | |||||
| @io.swagger.annotations.ApiModelProperty(value="类型(0:券,1:B刷卡支付,2:C扫码支付,3:储值卡, 10:POS支付)",name="type") | @io.swagger.annotations.ApiModelProperty(value="类型(0:券,1:B刷卡支付,2:C扫码支付,3:储值卡, 10:POS支付)",name="type") | ||||
| private Integer type; | private Integer type; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "支付渠道EnumPayWay", name = "payVendor") | @io.swagger.annotations.ApiModelProperty(value = "支付渠道EnumPayWay", name = "payVendor") | ||||
| @@ -66,6 +68,9 @@ public class WxOrder extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType") | @io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType") | ||||
| private Integer paymentType; | private Integer paymentType; | ||||
| @io.swagger.annotations.ApiModelProperty(value="直连收款门店",name="makeMerchantId") | |||||
| private Long makeMerchantId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment") | @io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment") | ||||
| private Integer payment; | private Integer payment; | ||||
| @io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime") | @io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime") | ||||
| @@ -91,10 +91,12 @@ public class WxOrderPayExpVo extends WxOrder { | |||||
| this.setCUserId(o.getCUserId()); | this.setCUserId(o.getCUserId()); | ||||
| this.setCouponChannelId(o.getCouponChannelId()); | this.setCouponChannelId(o.getCouponChannelId()); | ||||
| this.setProductId(o.getProductId()); | this.setProductId(o.getProductId()); | ||||
| this.setProductName(o.getProductName()); | |||||
| this.setType(o.getType()); | this.setType(o.getType()); | ||||
| this.setPayVendor(o.getPayVendor()); | this.setPayVendor(o.getPayVendor()); | ||||
| this.setPayVersion(o.getPayVersion()); | this.setPayVersion(o.getPayVersion()); | ||||
| this.setPaymentType(o.getPaymentType()); | this.setPaymentType(o.getPaymentType()); | ||||
| this.setMakeMerchantId(o.getMakeMerchantId()); | |||||
| this.setPayment(o.getPayment()); | this.setPayment(o.getPayment()); | ||||
| this.setPaymentTime(o.getPaymentTime()); | this.setPaymentTime(o.getPaymentTime()); | ||||
| this.setFreightPrice(o.getFreightPrice()); | this.setFreightPrice(o.getFreightPrice()); | ||||
| @@ -110,10 +110,12 @@ public class WxOrderPayVo extends WxOrder { | |||||
| this.setCUserId(o.getCUserId()); | this.setCUserId(o.getCUserId()); | ||||
| this.setCouponChannelId(o.getCouponChannelId()); | this.setCouponChannelId(o.getCouponChannelId()); | ||||
| this.setProductId(o.getProductId()); | this.setProductId(o.getProductId()); | ||||
| this.setProductName(o.getProductName()); | |||||
| this.setType(o.getType()); | this.setType(o.getType()); | ||||
| this.setPayVendor(o.getPayVendor()); | this.setPayVendor(o.getPayVendor()); | ||||
| this.setPayVersion(o.getPayVersion()); | this.setPayVersion(o.getPayVersion()); | ||||
| this.setPaymentType(o.getPaymentType()); | this.setPaymentType(o.getPaymentType()); | ||||
| this.setMakeMerchantId(o.getMakeMerchantId()); | |||||
| this.setPayment(o.getPayment()); | this.setPayment(o.getPayment()); | ||||
| this.setPaymentTime(o.getPaymentTime()); | this.setPaymentTime(o.getPaymentTime()); | ||||
| this.setFreightPrice(o.getFreightPrice()); | this.setFreightPrice(o.getFreightPrice()); | ||||
| @@ -10,7 +10,7 @@ public enum EnumOrderType { | |||||
| COUPON(0,"券"), | COUPON(0,"券"), | ||||
| MICROPAY(1,"B收款码支付"), | MICROPAY(1,"B收款码支付"), | ||||
| NATIVEPAY(2,"C扫码支付"), | NATIVEPAY(2,"C扫码支付"), | ||||
| PREPAIDCARD(3, "储值卡"), | |||||
| PREPAIDCARD(3, "储值卡支付"), | |||||
| CREDIT(4,"积分支付"), | CREDIT(4,"积分支付"), | ||||
| POSPAY(10, "POS支付") | POSPAY(10, "POS支付") | ||||
| ; | ; | ||||
| @@ -250,10 +250,6 @@ public interface WxOrderService { | |||||
| ResultData composeSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,List<OrderComposeSaveDto> composeOrderSaveDto,Long cUserId,EnumPayWay payWay, | ResultData composeSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,List<OrderComposeSaveDto> composeOrderSaveDto,Long cUserId,EnumPayWay payWay, | ||||
| TenantEntity tenantEntity,EnumPayVersion payVersion); | TenantEntity tenantEntity,EnumPayVersion payVersion); | ||||
| //平台推送订单,如抖音支付2.0 | |||||
| ResultData platPushSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,String allExtParam,List<PlatPushOrderSaveDto> platPushOrderList,Long cUserId, | |||||
| EnumPayWay payWay,EnumPayVersion payVersion,TenantEntity tenantEntity); | |||||
| void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId); | void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId); | ||||
| @@ -2,6 +2,7 @@ package com.iformall.service; | |||||
| import com.github.binarywang.wxpay.service.WxPayService; | import com.github.binarywang.wxpay.service.WxPayService; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.po.WxAppinfo; | |||||
| import com.iformall.domain.po.WxPayAccount; | import com.iformall.domain.po.WxPayAccount; | ||||
| import com.iformall.domain.po.WxProjectConfig; | import com.iformall.domain.po.WxProjectConfig; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| @@ -26,6 +27,7 @@ public interface WxPayAccountService { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| WxPayAccount getById(Long id); | WxPayAccount getById(Long id); | ||||
| WxPayAccount getByIdFromRedis(Long id); | |||||
| /** | /** | ||||
| * 保存或更新实体 | * 保存或更新实体 | ||||
| @@ -1120,8 +1120,12 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| private boolean isCouponMerchantValid(Long couponId,TenantEntity tenantEntity) { | private boolean isCouponMerchantValid(Long couponId,TenantEntity tenantEntity) { | ||||
| List<WxMerchantVo> merchantVoList = wxMerchantService.findMerchantListByProduct(tenantEntity,couponId,false); | |||||
| if (merchantVoList.stream().anyMatch((cm -> cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))) { | |||||
| WxCouponMerchant wxCouponMerchantQ = new WxCouponMerchant(); | |||||
| wxCouponMerchantQ.updateTenantInfo(tenantEntity); | |||||
| wxCouponMerchantQ.setProductId(couponId); | |||||
| wxCouponMerchantQ.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); | |||||
| Integer count = wxCouponMerchantMapper.selectCount(new QueryWrapper<>(wxCouponMerchantQ)); | |||||
| if(count > 0){ | |||||
| return true; | return true; | ||||
| } | } | ||||
| return false; | return false; | ||||
| @@ -1183,6 +1187,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.setPayVendor(payWay.getCode()); | record.setPayVendor(payWay.getCode()); | ||||
| record.setPayVersion(payVersion.getCode()); | record.setPayVersion(payVersion.getCode()); | ||||
| record.setProductId(user.getId()); | record.setProductId(user.getId()); | ||||
| record.setProductName(EnumOrderType.MICROPAY.getMessage()); | |||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| record.setPayment(payment); | record.setPayment(payment); | ||||
| record.setTotalPayment(payment); | record.setTotalPayment(payment); | ||||
| @@ -1255,6 +1260,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.setPayVendor(EnumPayWay.PAY_WAY_WECHAT_MA.getCode()); | record.setPayVendor(EnumPayWay.PAY_WAY_WECHAT_MA.getCode()); | ||||
| record.setPayVersion(EnumPayVersion.WX_PAY_V2.getCode()); | record.setPayVersion(EnumPayVersion.WX_PAY_V2.getCode()); | ||||
| record.setProductId(user.getId()); | record.setProductId(user.getId()); | ||||
| record.setProductName(EnumOrderType.MICROPAY.getMessage()); | |||||
| if (cUser != null) { | if (cUser != null) { | ||||
| record.setCUserId(cUser.getId()); | record.setCUserId(cUser.getId()); | ||||
| } | } | ||||
| @@ -1296,11 +1302,8 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| order.setOrderType(EnumComposeOrder.SINGLE.getCode()); | order.setOrderType(EnumComposeOrder.SINGLE.getCode()); | ||||
| order.setCreateDate(new Date()); | order.setCreateDate(new Date()); | ||||
| wxBatchOrderMapper.insert(order); | wxBatchOrderMapper.insert(order); | ||||
| Long orderNumber = idWorker.nextId(); | |||||
| Long orderNumber = idWorker.nextId(); | |||||
| // body | // body | ||||
| // tenant_id + merchant_id + title + subtitle | // tenant_id + merchant_id + title + subtitle | ||||
| String bodyStr = "["+payWay.getMessage()+"("+payWay.getCode()+")]C扫B储值卡支付, 金额:" + totalFeeStr; | String bodyStr = "["+payWay.getMessage()+"("+payWay.getCode()+")]C扫B储值卡支付, 金额:" + totalFeeStr; | ||||
| @@ -1313,6 +1316,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.setPayVendor(EnumPayWay.PAY_WAY_PREPAIDCARD.getCode()); | record.setPayVendor(EnumPayWay.PAY_WAY_PREPAIDCARD.getCode()); | ||||
| record.setPayVersion(EnumPayVersion.NO_VERSION.getCode()); | record.setPayVersion(EnumPayVersion.NO_VERSION.getCode()); | ||||
| record.setProductId(merchant.getId()); | record.setProductId(merchant.getId()); | ||||
| record.setProductName(EnumOrderType.PREPAIDCARD.getMessage()); | |||||
| record.setCUserId(cUserId); | record.setCUserId(cUserId); | ||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| record.setPayment(payment); | record.setPayment(payment); | ||||
| @@ -1883,11 +1887,13 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.updateTenantInfo(coupon); | record.updateTenantInfo(coupon); | ||||
| record.setOrderNumber(orderNumber); | record.setOrderNumber(orderNumber); | ||||
| record.setProductId(couponId); | record.setProductId(couponId); | ||||
| record.setProductName(coupon.getTitle()); | |||||
| record.setType(EnumOrderType.COUPON.getCode()); | record.setType(EnumOrderType.COUPON.getCode()); | ||||
| record.setPayVendor(payWay.getCode()); | record.setPayVendor(payWay.getCode()); | ||||
| record.setPayVersion(payVersion.getCode()); | record.setPayVersion(payVersion.getCode()); | ||||
| record.setCUserId(user.getId()); | record.setCUserId(user.getId()); | ||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| record.setMakeMerchantId(coupon.getMakeMerchantId()); | |||||
| record.setPayment(payment); | record.setPayment(payment); | ||||
| record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); | record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); | ||||
| record.setDetail(bodyStr); | record.setDetail(bodyStr); | ||||
| @@ -1959,9 +1965,11 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.updateTenantInfo(coupon); | record.updateTenantInfo(coupon); | ||||
| record.setOrderNumber(orderNumber); | record.setOrderNumber(orderNumber); | ||||
| record.setProductId(couponId); | record.setProductId(couponId); | ||||
| record.setProductName(coupon.getTitle()); | |||||
| record.setType(EnumOrderType.COUPON.getCode()); | record.setType(EnumOrderType.COUPON.getCode()); | ||||
| record.setPayVendor(EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST.getCode()); | record.setPayVendor(EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST.getCode()); | ||||
| record.setPayVersion(EnumPayVersion.NO_VERSION.getCode()); | record.setPayVersion(EnumPayVersion.NO_VERSION.getCode()); | ||||
| record.setMakeMerchantId(coupon.getMakeMerchantId()); | |||||
| record.setCUserId(user.getId()); | record.setCUserId(user.getId()); | ||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| record.setPayment(coupon.getSalePrice()); | record.setPayment(coupon.getSalePrice()); | ||||
| @@ -2866,83 +2874,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| @Autowired | @Autowired | ||||
| @Qualifier("cUserBasicInfoRedisTemplate") | @Qualifier("cUserBasicInfoRedisTemplate") | ||||
| RedisTemplate<String, WxCUserBasicInfo> cUserBasicInfoRedisTemplate; | RedisTemplate<String, WxCUserBasicInfo> cUserBasicInfoRedisTemplate; | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| public WxComposeOrder savePlatPushOrderForCoupon(TenantEntity tenantEntity,boolean allowUnPayOrder,EnumComposeOrder composeOrderType, | |||||
| WxCUserBasicInfo user,String allExtParam,List<PlatPushOrderSaveDto> platPushOrderList,EnumPayWay payWay,EnumPayVersion payVersion) throws Exception { | |||||
| WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); | |||||
| // 防止同一用户重复下单,1秒内 | |||||
| String key = new StringBuilder().append("savePlatPushOrder:").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); | |||||
| OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrderType.getCode()); | |||||
| //从这里开始,就需要锁住渠道的价格,不能修改 | |||||
| WxComposeOrder composeOrder = orderAdapterService.createDBMainOrderByPushOrder(tenantEntity,user, allExtParam,platPushOrderList, payWay,payVersion); | |||||
| Date orderDate = new Date(); | |||||
| WxOrder lastOrder = null; | |||||
| WxCoupon lastCoupon = null; | |||||
| for (int i = 0 ; i < platPushOrderList.size(); i ++) { | |||||
| PlatPushOrderSaveDto orderdto = platPushOrderList.get(i); | |||||
| lastCoupon = orderdto.getWxCoupon(); | |||||
| Map<Long,WxCouponChannel> couponChannelMap = composeOrder.getCouponChannelMap(); | |||||
| Long couponChannelId = orderdto.getCouponChannelId(); | |||||
| WxCouponChannel couponChannel = couponChannelMap.get(couponChannelId); | |||||
| orderdto.setWxCouponChannel(couponChannel); | |||||
| //券一个数量创建一个订单 | |||||
| boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder(); | |||||
| if (isOneNumberOneOrder) { | |||||
| JSONArray jsonArray = new JSONArray(); | |||||
| if(StringUtils.isNotBlank(orderdto.getExtParam())){ | |||||
| logger.info("orderdto.getExtParam()---------------------------"+orderdto.getExtParam()); | |||||
| try{ | |||||
| jsonArray = JSONArray.parseArray(orderdto.getExtParam()); | |||||
| }catch(Exception e){ | |||||
| logger.error(e.getMessage()); | |||||
| } | |||||
| } | |||||
| for (int j = 0; j < orderdto.getCount(); j++) { | |||||
| String extParam = ""; | |||||
| if(jsonArray != null && !jsonArray.isEmpty()){ | |||||
| extParam = jsonArray.get(j).toString(); | |||||
| } | |||||
| logger.info("extParam---------------------------"+extParam); | |||||
| lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), 1, | |||||
| orderdto.isPress(),orderdto.getOrderGroupId(),orderdto.getFormId(),orderdto.getShippingType(),orderdto.getAddress(),extParam, | |||||
| orderdto.getWxCouponChannel(), payWay,payVersion); | |||||
| } | |||||
| }else { | |||||
| lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), orderdto.getCount(), | |||||
| orderdto.isPress(),orderdto.getOrderGroupId(),orderdto.getFormId(),orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(), | |||||
| orderdto.getWxCouponChannel(), payWay,payVersion); | |||||
| } | |||||
| } | |||||
| //如果没有orderId,则用lastOrder的信息 | |||||
| if (EnumComposeOrder.isSingle(composeOrderType.getCode())) { | |||||
| composeOrder.setSingleOrder(lastOrder); | |||||
| } | |||||
| List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId()); | |||||
| WxPayOrder record = new WxPayOrder(); | |||||
| record.updateTenantInfo(tenantEntity); | |||||
| record.setOrderId(composeOrder.getMainOrderId()); | |||||
| record.setComposeOrder(composeOrder.getComposeOrderType()); | |||||
| record.setOpenId((String) composeOrder.getMainOrder().getExpParamValue("open_id")); | |||||
| String productName = orderAdapterService.getPayProductName(lastCoupon); | |||||
| WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity, payWay.getPlat()); | |||||
| PayAdapterResult payResult = wxPayOrderService.createPayOrder(cAppInfo, user, record,composeOrder,orderList,productName, payWay, new PayExtraParam("openId",record.getOpenId()),false); | |||||
| if(payResult.isSuccess()){ | |||||
| return composeOrder; | |||||
| }else{ | |||||
| throw new Exception(payResult.getMsg()); | |||||
| } | |||||
| } | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public WxComposeOrder saveOrderForCoupon(TenantEntity tenantEntity,boolean allowUnPayOrder,EnumComposeOrder composeOrderType,WxCUserBasicInfo user,List<OrderComposeSaveDto> orderSave, | public WxComposeOrder saveOrderForCoupon(TenantEntity tenantEntity,boolean allowUnPayOrder,EnumComposeOrder composeOrderType,WxCUserBasicInfo user,List<OrderComposeSaveDto> orderSave, | ||||
| @@ -2964,11 +2896,6 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| WxOrder lastOrder = null; | WxOrder lastOrder = null; | ||||
| for (int i = 0 ; i < orderSave.size(); i ++) { | for (int i = 0 ; i < orderSave.size(); i ++) { | ||||
| OrderComposeSaveDto orderdto = orderSave.get(i); | OrderComposeSaveDto orderdto = orderSave.get(i); | ||||
| Map<Long,WxCouponChannel> couponChannelMap = composeOrder.getCouponChannelMap(); | |||||
| Long couponChannelId = orderdto.getSignleOrder().getCouponChannelId(); | |||||
| WxCouponChannel couponChannel = couponChannelMap.get(couponChannelId); | |||||
| orderdto.setWxCouponChannel(couponChannel); | |||||
| //券一个数量创建一个订单 | //券一个数量创建一个订单 | ||||
| boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder(); | boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder(); | ||||
| @@ -3290,8 +3217,10 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.updateTenantInfo(coupon); | record.updateTenantInfo(coupon); | ||||
| record.setOrderNumber(record.getId()); | record.setOrderNumber(record.getId()); | ||||
| record.setProductId(coupon.getId()); | record.setProductId(coupon.getId()); | ||||
| record.setProductName(coupon.getTitle()); | |||||
| record.setCUserId(user.getId()); | record.setCUserId(user.getId()); | ||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| record.setMakeMerchantId(coupon.getMakeMerchantId()); | |||||
| record.setDetail(bodyStr); | record.setDetail(bodyStr); | ||||
| record.setCreateDate(curr); | record.setCreateDate(curr); | ||||
| record.setUpdateDate(curr); | record.setUpdateDate(curr); | ||||
| @@ -3405,6 +3334,8 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.updateTenantInfo(coupon); | record.updateTenantInfo(coupon); | ||||
| record.setOrderNumber(orderNumber); | record.setOrderNumber(orderNumber); | ||||
| record.setProductId(coupon.getId()); | record.setProductId(coupon.getId()); | ||||
| record.setProductName(coupon.getTitle()); | |||||
| record.setMakeMerchantId(coupon.getMakeMerchantId()); | |||||
| //record.setType(EnumOrderType.COUPON.getCode()); | //record.setType(EnumOrderType.COUPON.getCode()); | ||||
| record.setCUserId(user.getId()); | record.setCUserId(user.getId()); | ||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | ||||
| @@ -3509,9 +3440,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| for ( int i =0 ; i< composeOrderSaveDto.size(); i++ ) { | for ( int i =0 ; i< composeOrderSaveDto.size(); i++ ) { | ||||
| OrderComposeSaveDto ocsd = composeOrderSaveDto.get(i); | OrderComposeSaveDto ocsd = composeOrderSaveDto.get(i); | ||||
| WxCoupon coupon = singleOrderCheck(ocsd.getSignleOrder().getCouponChannelId(),ocsd.getSignleOrder().getOrderGroupId(),ocsd.getCount(), | |||||
| wxCUserBasicInfo,payWay,tenantEntity,i+1,singleProduct); | |||||
| ocsd.setWxCoupon(coupon); | |||||
| singleOrderCheck(tenantEntity,wxCUserBasicInfo,ocsd,payWay,i+1,singleProduct); | |||||
| } | } | ||||
| WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); | WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); | ||||
| @@ -3534,51 +3463,6 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| } | } | ||||
| @Override | |||||
| public ResultData platPushSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,String allExtParam,List<PlatPushOrderSaveDto> platPushOrderList,Long cUserId, | |||||
| EnumPayWay payWay,EnumPayVersion payVersion,TenantEntity tenantEntity) { | |||||
| try { | |||||
| if (null == platPushOrderList || platPushOrderList.size() <= 0 ) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"无商品信息"); | |||||
| } | |||||
| 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); | |||||
| } | |||||
| boolean singleProduct = false; | |||||
| if (platPushOrderList.size() == 1) { | |||||
| singleProduct = true; | |||||
| } | |||||
| for ( int i =0 ; i< platPushOrderList.size(); i++ ) { | |||||
| PlatPushOrderSaveDto ocsd = platPushOrderList.get(i); | |||||
| WxCoupon coupon = singleOrderCheck(ocsd.getCouponChannelId(),ocsd.getOrderGroupId(),ocsd.getCount(),wxCUserBasicInfo,payWay,tenantEntity,i+1,singleProduct); | |||||
| ocsd.setWxCoupon(coupon); | |||||
| } | |||||
| WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); | |||||
| try { | |||||
| WxComposeOrder order = proxy.savePlatPushOrderForCoupon(tenantEntity,allowUnPayOrder,composeOrderType,wxCUserBasicInfo, allExtParam,platPushOrderList, payWay,payVersion); | |||||
| 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()); | |||||
| } | |||||
| } | |||||
| @Override | @Override | ||||
| public void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId) { | public void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId) { | ||||
| @@ -3725,11 +3609,11 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| @Override | @Override | ||||
| public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods) { | public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods) { | ||||
| WxBatchOrder wxBatchOrder = this.getWxBatchOrder(tenantEntity, composeOrderId); | WxBatchOrder wxBatchOrder = this.getWxBatchOrder(tenantEntity, composeOrderId); | ||||
| if(wxBatchOrder == null){ | |||||
| if (wxBatchOrder == null) { | |||||
| return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); | return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); | ||||
| } | } | ||||
| WxPayOrder payOrder = wxPayOrderService.getById(composeOrderId, tenantEntity.getTenantId()); | WxPayOrder payOrder = wxPayOrderService.getById(composeOrderId, tenantEntity.getTenantId()); | ||||
| if(payOrder == null){ | |||||
| if (payOrder == null) { | |||||
| return new ResultData(ErrorCode.PAY_ORDER_NOT_FOUND); | return new ResultData(ErrorCode.PAY_ORDER_NOT_FOUND); | ||||
| } | } | ||||
| WxBatchOrder updBatchOrder = new WxBatchOrder(); | WxBatchOrder updBatchOrder = new WxBatchOrder(); | ||||
| @@ -3741,45 +3625,76 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(wxBatchOrder.getOrderType()); | OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(wxBatchOrder.getOrderType()); | ||||
| WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(wxBatchOrder.getId(), tenantEntity.getTenantId()); | WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(wxBatchOrder.getId(), tenantEntity.getTenantId()); | ||||
| List<WxOrder> childOrders = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId()); | |||||
| Map<Long, List<WxOrder>> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId)); | |||||
| Map<String, CreateOrderCallback.Good> maps = goods.stream().collect(Collectors.toMap(CreateOrderCallback.Good::getGoodsId, Function.identity())); | |||||
| if(collect.keySet().size() == goods.size()){ | |||||
| List<Map<String,String>> order_goods_info = new ArrayList<>(); | |||||
| for (Long key: collect.keySet()) { | |||||
| List<WxOrder> wxOrders = collect.get(key); | |||||
| TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectByChannelId(tenantEntity.getTenantId(),key); | |||||
| CreateOrderCallback.Good good = maps.get(ttCouponChannelPoi.getSpuId()); | |||||
| if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())){ | |||||
| Map<String,String> map_info = new HashMap<>(); | |||||
| map_info.put("goods_id",good.getGoodsId()); | |||||
| WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(wxOrders.get(0).getId()); | |||||
| map_info.put("merchant_uid",childOrderShare.getMerchantUid()); | |||||
| order_goods_info.add(map_info); | |||||
| } | |||||
| if(wxOrders.size() == good.getItemOrderInfoList().size()){ | |||||
| for(int i=0;i<wxOrders.size();i++){ | |||||
| WxOrder updOrder = new WxOrder(); | |||||
| updOrder.updateTenantInfo(tenantEntity); | |||||
| updOrder.setId(wxOrders.get(i).getId()); | |||||
| updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList().get(i))); | |||||
| wxOrderMapper.updateById(updOrder); | |||||
| } | |||||
| // }else if(wxOrders.size() == 1){ | |||||
| // WxOrder updOrder = new WxOrder(); | |||||
| // updOrder.updateTenantInfo(tenantEntity); | |||||
| // updOrder.setId(wxOrders.get(0).getId()); | |||||
| // updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList())); | |||||
| // wxOrderMapper.updateById(updOrder); | |||||
| }else{ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(),"数据异常"); | |||||
| } | |||||
| List<Map<String, String>> order_goods_info = new ArrayList<>(); | |||||
| if (goods.size() == 1) { | |||||
| WxOrder singleOrder = composeOrder.getSingleOrder(); | |||||
| CreateOrderCallback.Good good = goods.get(0); | |||||
| WxOrder updOrder = new WxOrder(); | |||||
| updOrder.updateTenantInfo(tenantEntity); | |||||
| updOrder.setId(singleOrder.getId()); | |||||
| if (good.getItemOrderInfoList().size() == 1) { | |||||
| updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList().get(0))); | |||||
| } else { | |||||
| updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList())); | |||||
| } | |||||
| wxOrderMapper.updateById(updOrder); | |||||
| if (EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())) { | |||||
| Map<String, String> map_info = new HashMap<>(); | |||||
| map_info.put("goods_id", good.getGoodsId()); | |||||
| WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(singleOrder.getId()); | |||||
| map_info.put("merchant_uid", childOrderShare.getMerchantUid()); | |||||
| order_goods_info.add(map_info); | |||||
| composeOrder.setExtParam(order_goods_info); | |||||
| } | } | ||||
| composeOrder.setExtParam(order_goods_info); | |||||
| return new ResultData(composeOrder); | return new ResultData(composeOrder); | ||||
| }else{ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(),"数据异常"); | |||||
| } | |||||
| } else { | |||||
| //todo 暂无多订单模式 | |||||
| } | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "数据异常"); | |||||
| // List<WxOrder> childOrders = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId()); | |||||
| // Map<Long, List<WxOrder>> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId)); | |||||
| // Map<String, CreateOrderCallback.Good> maps = goods.stream().collect(Collectors.toMap(CreateOrderCallback.Good::getGoodsId, Function.identity())); | |||||
| // if(collect.keySet().size() == goods.size()){ | |||||
| // List<Map<String,String>> order_goods_info = new ArrayList<>(); | |||||
| // for (Long key: collect.keySet()) { | |||||
| // List<WxOrder> wxOrders = collect.get(key); | |||||
| // TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectByChannelId(tenantEntity.getTenantId(),key); | |||||
| // CreateOrderCallback.Good good = maps.get(ttCouponChannelPoi.getSpuId()); | |||||
| // if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())){ | |||||
| // Map<String,String> map_info = new HashMap<>(); | |||||
| // map_info.put("goods_id",good.getGoodsId()); | |||||
| // WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(wxOrders.get(0).getId()); | |||||
| // map_info.put("merchant_uid",childOrderShare.getMerchantUid()); | |||||
| // order_goods_info.add(map_info); | |||||
| // } | |||||
| // if(wxOrders.size() == good.getItemOrderInfoList().size()){ | |||||
| // for(int i=0;i<wxOrders.size();i++){ | |||||
| // WxOrder updOrder = new WxOrder(); | |||||
| // updOrder.updateTenantInfo(tenantEntity); | |||||
| // updOrder.setId(wxOrders.get(i).getId()); | |||||
| // updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList().get(i))); | |||||
| // wxOrderMapper.updateById(updOrder); | |||||
| // } | |||||
| //// }else if(wxOrders.size() == 1){ | |||||
| //// WxOrder updOrder = new WxOrder(); | |||||
| //// updOrder.updateTenantInfo(tenantEntity); | |||||
| //// updOrder.setId(wxOrders.get(0).getId()); | |||||
| //// updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList())); | |||||
| //// wxOrderMapper.updateById(updOrder); | |||||
| // }else{ | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(),"数据异常"); | |||||
| // } | |||||
| // } | |||||
| // composeOrder.setExtParam(order_goods_info); | |||||
| // return new ResultData(composeOrder); | |||||
| // }else{ | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(),"数据异常"); | |||||
| // } | |||||
| } | } | ||||
| private Map<Long,List<WxOrderCouponVo>> getBatchOrderMap(TenantEntity tenantEntity,List<Long> batchOrderIds){ | private Map<Long,List<WxOrderCouponVo>> getBatchOrderMap(TenantEntity tenantEntity,List<Long> batchOrderIds){ | ||||
| @@ -3803,13 +3718,15 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // } | // } | ||||
| private WxCoupon singleOrderCheck(Long couponChannelId,Long orderGroupId,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) { | |||||
| private WxCoupon singleOrderCheck(TenantEntity tenantEntity,WxCUserBasicInfo wxCUserBasicInfo,OrderComposeSaveDto orderComposeSaveDto,EnumPayWay payWay,int curindex,boolean singleProduct) { | |||||
| String premsg = ""; | String premsg = ""; | ||||
| if (singleProduct) { | if (singleProduct) { | ||||
| premsg = "此券"; | premsg = "此券"; | ||||
| }else { | }else { | ||||
| premsg = "第["+curindex+"]张券"; | premsg = "第["+curindex+"]张券"; | ||||
| } | } | ||||
| Long couponChannelId = orderComposeSaveDto.getSignleOrder().getCouponChannelId(); | |||||
| if (couponChannelId == null) { | if (couponChannelId == null) { | ||||
| throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), premsg+"couponChannelId不能为空"); | throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), premsg+"couponChannelId不能为空"); | ||||
| } | } | ||||
| @@ -3822,6 +3739,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| premsg = premsg+"【"+wxCouponChannel.getTitle()+"】"; | premsg = premsg+"【"+wxCouponChannel.getTitle()+"】"; | ||||
| } | } | ||||
| couponChannelCheck(wxCouponChannel,premsg); | couponChannelCheck(wxCouponChannel,premsg); | ||||
| orderComposeSaveDto.setWxCouponChannel(wxCouponChannel); | |||||
| WxCoupon coupon = wxCouponService.getById(wxCouponChannel.getCouponId(),wxCouponChannel.getTenantId()); | WxCoupon coupon = wxCouponService.getById(wxCouponChannel.getCouponId(),wxCouponChannel.getTenantId()); | ||||
| if (null == coupon) { | if (null == coupon) { | ||||
| @@ -3831,6 +3749,8 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| if (coupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode())) { | if (coupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode())) { | ||||
| throw new MallinkException(ErrorCode.COUPON_IS_TAKE_OFF.getCode(),premsg+"已作废"); | throw new MallinkException(ErrorCode.COUPON_IS_TAKE_OFF.getCode(),premsg+"已作废"); | ||||
| } | } | ||||
| orderComposeSaveDto.getSignleOrder().setCouponId(coupon.getId()); | |||||
| orderComposeSaveDto.setWxCoupon(coupon); | |||||
| //判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制 | //判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制 | ||||
| if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { | if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { | ||||
| @@ -3840,27 +3760,6 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| } | } | ||||
| WxCouponCVo wxCouponCVo = null; | |||||
| String key = "cc:" + couponChannelId; | |||||
| ValueOperations<String, WxCouponCVo> operations = cdRedisTemplate.opsForValue(); | |||||
| // 缓存 | |||||
| boolean hasKey = cdRedisTemplate.hasKey(key); | |||||
| if (hasKey) { | |||||
| // 从缓存获取用户信息 | |||||
| wxCouponCVo = operations.get(key); | |||||
| } else { | |||||
| // 游戏没有入缓存,需要从数据库中读取 | |||||
| wxCouponCVo = wxCouponChannelService.findDetailVo(couponChannelId,wxCouponChannel.getTenantId(),false); | |||||
| if (wxCouponCVo != null) { | |||||
| // 游戏优化,进缓存 | |||||
| cdRedisTemplate.opsForValue().set(key, wxCouponCVo, 3600, TimeUnit.SECONDS); | |||||
| } | |||||
| } | |||||
| if (wxCouponCVo == null) { | |||||
| throw new MallinkException(ErrorCode.COUPON_IS_EMPTY.getCode(),premsg+"未查询到详细信息."); | |||||
| } | |||||
| //如果couponChannel设置了库存锁定,则订单需要走那个库存 | //如果couponChannel设置了库存锁定,则订单需要走那个库存 | ||||
| if (null != wxCouponChannel.getChannelStock()) { | if (null != wxCouponChannel.getChannelStock()) { | ||||
| boolean hascache = redisLock.hasCouponChannelStockCache(wxCouponChannel.getId()); | boolean hascache = redisLock.hasCouponChannelStockCache(wxCouponChannel.getId()); | ||||
| @@ -3885,15 +3784,15 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| }else { | }else { | ||||
| //此处判断是否存在绝对保证库存不超卖的缓存,如果没有,则把当前的库存设置为最大值。如果有,则是后台设置的时候保存的,以那个为准。 | //此处判断是否存在绝对保证库存不超卖的缓存,如果没有,则把当前的库存设置为最大值。如果有,则是后台设置的时候保存的,以那个为准。 | ||||
| boolean hascache = redisLock.hasCouponStockCache(wxCouponCVo.getCouponId()); | |||||
| boolean hascache = redisLock.hasCouponStockCache(coupon.getCouponId()); | |||||
| if (!hascache) { | if (!hascache) { | ||||
| long time = System.currentTimeMillis() + RedisLock.TIMEOUT; | long time = System.currentTimeMillis() + RedisLock.TIMEOUT; | ||||
| String timeStr = String.valueOf(time); | String timeStr = String.valueOf(time); | ||||
| boolean stocksetlock = redisLock.lock("couponLockStockSetByOrder_"+coupon.getId(), timeStr); | boolean stocksetlock = redisLock.lock("couponLockStockSetByOrder_"+coupon.getId(), timeStr); | ||||
| if (stocksetlock) { | if (stocksetlock) { | ||||
| try { | try { | ||||
| if (!redisLock.hasCouponStockCache(wxCouponCVo.getCouponId())) { | |||||
| redisLock.setCouponStock(wxCouponCVo.getCouponId(), coupon.getRemainInventory()); | |||||
| if (!redisLock.hasCouponStockCache(coupon.getCouponId())) { | |||||
| redisLock.setCouponStock(coupon.getCouponId(), coupon.getRemainInventory()); | |||||
| } | } | ||||
| }catch(Exception e) { | }catch(Exception e) { | ||||
| logger.error("save order stock cache error.",e); | logger.error("save order stock cache error.",e); | ||||
| @@ -3905,14 +3804,8 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| couponUserCheck(wxCUserBasicInfo, wxCouponCVo,premsg); | |||||
| Long couponId = wxCouponChannel.getCouponId(); | |||||
| if (couponId == null) { | |||||
| logger.error("couponChannelId或者couponId不能为空"); | |||||
| throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), premsg+"couponChannelId或者couponId不能为空"); | |||||
| } | |||||
| couponUserCheck(wxCUserBasicInfo, coupon,premsg); | |||||
| userCouponMerchantCheck(wxCUserBasicInfo, coupon,wxCouponChannel,premsg); | userCouponMerchantCheck(wxCUserBasicInfo, coupon,wxCouponChannel,premsg); | ||||
| if (coupon.checkIsCreditCoupon()) { | if (coupon.checkIsCreditCoupon()) { | ||||
| @@ -3921,7 +3814,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| throw new MallinkException(ErrorCode.CREDIT_NOT_ENOUGH.getCode(), premsg+"积分不够扣减值"); | throw new MallinkException(ErrorCode.CREDIT_NOT_ENOUGH.getCode(), premsg+"积分不够扣减值"); | ||||
| } | } | ||||
| } | } | ||||
| Long orderGroupId = orderComposeSaveDto.getSignleOrder().getOrderGroupId(); | |||||
| if (!checkCouponIsFree(coupon,wxCouponChannel,null)) { | if (!checkCouponIsFree(coupon,wxCouponChannel,null)) { | ||||
| // 有价,拼团检查 | // 有价,拼团检查 | ||||
| if (isOrderGroup(orderGroupId)) { | if (isOrderGroup(orderGroupId)) { | ||||
| @@ -3951,7 +3844,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| } | } | ||||
| private void couponUserCheck(WxCUserBasicInfo user, WxCouponCVo coupon,String premsg) { | |||||
| private void couponUserCheck(WxCUserBasicInfo user, WxCoupon coupon,String premsg) { | |||||
| if (coupon.getConditions() == null) return ; | if (coupon.getConditions() == null) return ; | ||||
| JSONObject jo = null; | JSONObject jo = null; | ||||
| try { | try { | ||||
| @@ -12,10 +12,14 @@ import com.iformall.enums.EnumPayWay; | |||||
| import com.iformall.mapper.WxPayAccountMapper; | import com.iformall.mapper.WxPayAccountMapper; | ||||
| import com.iformall.service.WxAppinfoService; | import com.iformall.service.WxAppinfoService; | ||||
| import com.iformall.service.WxPayAccountService; | import com.iformall.service.WxPayAccountService; | ||||
| import com.iformall.utils.Constant; | |||||
| import com.iformall.utils.MaUtil; | import com.iformall.utils.MaUtil; | ||||
| import com.iformall.utils.RedisCacheUtils; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.beans.factory.annotation.Qualifier; | |||||
| import org.springframework.data.redis.core.RedisTemplate; | |||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| @@ -28,6 +32,10 @@ public class WxPayAccountServiceImpl implements WxPayAccountService { | |||||
| @Autowired | @Autowired | ||||
| WxAppinfoService wxAppinfoService; | WxAppinfoService wxAppinfoService; | ||||
| @Autowired | |||||
| @Qualifier("objectCommonRedisTemplate") | |||||
| RedisTemplate<String, Object> wxPayAccountRedisTemplate; | |||||
| @Autowired | @Autowired | ||||
| MaUtil maUtil; | MaUtil maUtil; | ||||
| @@ -42,6 +50,20 @@ public class WxPayAccountServiceImpl implements WxPayAccountService { | |||||
| return wxPayAccountMapper.selectById(id); | return wxPayAccountMapper.selectById(id); | ||||
| } | } | ||||
| @Override | |||||
| public WxPayAccount getByIdFromRedis(Long id) { | |||||
| WxPayAccount record = null; | |||||
| String key = Constant.payaccountPrev + id; | |||||
| record = RedisCacheUtils.getCacheObject(wxPayAccountRedisTemplate, key, WxPayAccount.class); | |||||
| if (null == record) { | |||||
| record = this.getById(id); | |||||
| if(record != null){ | |||||
| RedisCacheUtils.cache(wxPayAccountRedisTemplate, key, record, 3600*24*7); | |||||
| } | |||||
| } | |||||
| return record; | |||||
| } | |||||
| @Override | @Override | ||||
| public void saveOrUpdate(WxPayAccount record) { | public void saveOrUpdate(WxPayAccount record) { | ||||
| if (record.getId() == null) { | if (record.getId() == null) { | ||||
| @@ -52,11 +74,13 @@ public class WxPayAccountServiceImpl implements WxPayAccountService { | |||||
| } else { | } else { | ||||
| wxPayAccountMapper.updateById(record); | wxPayAccountMapper.updateById(record); | ||||
| } | } | ||||
| deleteRedis(record.getId()); | |||||
| } | } | ||||
| @Override | @Override | ||||
| public void deleteById(Long id) { | public void deleteById(Long id) { | ||||
| wxPayAccountMapper.deleteById(id); | wxPayAccountMapper.deleteById(id); | ||||
| deleteRedis(id); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -70,6 +94,11 @@ public class WxPayAccountServiceImpl implements WxPayAccountService { | |||||
| return null; | return null; | ||||
| } | } | ||||
| private void deleteRedis(Long id){ | |||||
| String key1 = Constant.payaccountPrev + id; | |||||
| RedisCacheUtils.removeCache(wxPayAccountRedisTemplate, key1); | |||||
| } | |||||
| @Override | @Override | ||||
| public WxPayService getWxPayService(String tenantId) { | public WxPayService getWxPayService(String tenantId) { | ||||
| TenantEntity tenantEntity = new TenantEntity(); | TenantEntity tenantEntity = new TenantEntity(); | ||||
| @@ -85,4 +114,5 @@ public class WxPayAccountServiceImpl implements WxPayAccountService { | |||||
| } | } | ||||
| } | } | ||||
| @@ -428,14 +428,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| record.setComposeOrder(composeOrder.getComposeOrderType()); | record.setComposeOrder(composeOrder.getComposeOrderType()); | ||||
| //设置子订单分账金额 | //设置子订单分账金额 | ||||
| Map<String,WxComposeChildOrderShare> childShares = new HashMap<String,WxComposeChildOrderShare>(); | Map<String,WxComposeChildOrderShare> childShares = new HashMap<String,WxComposeChildOrderShare>(); | ||||
| OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()); | |||||
| List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); | |||||
| if(orderList == null || orderList.isEmpty()){ | |||||
| logger.error("getChildOrders null" + record.toString()); | |||||
| throw new MallinkException(ErrorCode.PAY_ORDER_ERROR); | |||||
| } | |||||
| for (WxOrder o : orderList) { | |||||
| for (WxOrder o : childOrders) { | |||||
| Long merchant_id = null; | Long merchant_id = null; | ||||
| String merchant_uid = ""; | String merchant_uid = ""; | ||||
| if(EnumPayMchType.DIRECT.equals(payMchType)){//直连模式记录收款商户 | if(EnumPayMchType.DIRECT.equals(payMchType)){//直连模式记录收款商户 | ||||
| @@ -205,6 +205,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { | |||||
| updApp.updateTenantInfo(appinfo); | updApp.updateTenantInfo(appinfo); | ||||
| updApp.setId(appinfo.getId()); | updApp.setId(appinfo.getId()); | ||||
| updApp.setPayId(wxPayAccount.getId()); | updApp.setPayId(wxPayAccount.getId()); | ||||
| wxAppinfoService.saveOrUpdate(updApp); | |||||
| } | } | ||||
| } | } | ||||
| @@ -21,10 +21,7 @@ public interface OrderAdapterService { | |||||
| WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List<OrderComposeSaveDto> orderSave,EnumPayWay payWay,EnumPayVersion payVersion); | WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List<OrderComposeSaveDto> orderSave,EnumPayWay payWay,EnumPayVersion payVersion); | ||||
| WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,int payment,EnumPayWay payWay,EnumPayVersion payVersion); | WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,int payment,EnumPayWay payWay,EnumPayVersion payVersion); | ||||
| //第三方平台推送过来的订单 | |||||
| WxComposeOrder createDBMainOrderByPushOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,String allExtParam,List<PlatPushOrderSaveDto> platPushOrderList,EnumPayWay payWay,EnumPayVersion payVersion); | |||||
| /** | /** | ||||
| * 获取支付时商品名称,供服务商API使用 | * 获取支付时商品名称,供服务商API使用 | ||||
| * @param lastCoupon | * @param lastCoupon | ||||
| @@ -34,10 +34,6 @@ public class WxComposeOrder extends TenantEntity{ | |||||
| private WxOrder singleOrder;//单个模式时不用重复查询 | private WxOrder singleOrder;//单个模式时不用重复查询 | ||||
| private WxBatchOrder mainOrder;//真正的主订单对象,批量下单时才有 | private WxBatchOrder mainOrder;//真正的主订单对象,批量下单时才有 | ||||
| private Map<Long,WxCouponChannel> couponChannelMap; | |||||
| private Map<Long,WxCoupon> couponMap; | |||||
| private List<Map<String,String>> extParam;//处理其他返回参数 | private List<Map<String,String>> extParam;//处理其他返回参数 | ||||
| @@ -50,14 +50,7 @@ public class SingleOrderAdapterService extends BaseBatchOrderAdapterService { | |||||
| @Override | @Override | ||||
| public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | ||||
| EnumPayWay payWay,EnumPayVersion payVersion) { | EnumPayWay payWay,EnumPayVersion payVersion) { | ||||
| return super.createDBMainOrder(tenantEntity,user, payment,null, payWay,payVersion, EnumComposeOrder.SINGLE,null,null); | |||||
| } | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| @Override | |||||
| public WxComposeOrder createDBMainOrderByPushOrder(TenantEntity tenantEntity, WxCUserBasicInfo user,String allExtParam, | |||||
| List<PlatPushOrderSaveDto> platPushOrderList, EnumPayWay payWay,EnumPayVersion payVersion) { | |||||
| return super.createDBMainOrderForPushOrders(tenantEntity, user, allExtParam,platPushOrderList, payWay,payVersion, EnumComposeOrder.SINGLE); | |||||
| return super.createDBMainOrder(tenantEntity,user, payment,null, payWay,payVersion, EnumComposeOrder.SINGLE); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -80,55 +80,28 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| protected WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List<OrderComposeSaveDto> orderSave,EnumPayWay payWay,EnumPayVersion payVersion,EnumComposeOrder composeOrderType) { | protected WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List<OrderComposeSaveDto> orderSave,EnumPayWay payWay,EnumPayVersion payVersion,EnumComposeOrder composeOrderType) { | ||||
| int payment = 0; | int payment = 0; | ||||
| Map<Long,WxCoupon> couponMap = new HashMap<Long,WxCoupon>(); | |||||
| Map<Long,WxCouponChannel> couponChannelMap = new HashMap<Long,WxCouponChannel>(); | |||||
| for (OrderComposeSaveDto ocsd : orderSave) { | for (OrderComposeSaveDto ocsd : orderSave) { | ||||
| WxCouponChannel wxCouponChannel = wxCouponChannelService.getById(ocsd.getSignleOrder().getCouponChannelId(),tenantEntity.getTenantId()); | |||||
| if (null == wxCouponChannel) { | |||||
| throw new MallinkException(ErrorCode.MSG_INSIDE_ERROR.getCode(),"渠道不存在:"+ocsd.getSignleOrder().getCouponChannelId()); | |||||
| } | |||||
| WxCouponChannel wxCouponChannel = ocsd.getWxCouponChannel(); | |||||
| WxCoupon wxCoupon = ocsd.getWxCoupon(); | |||||
| boolean isPress = ocsd.getSignleOrder().isPressOrder(); | boolean isPress = ocsd.getSignleOrder().isPressOrder(); | ||||
| WxComposeChildOrderPrice price = getChildCouponOrderPrice(ocsd,ocsd.getWxCoupon(),wxCouponChannel, isPress, ocsd.getSignleOrder().getOrderGroupId(), ocsd.getCount()); | |||||
| WxComposeChildOrderPrice price = getChildCouponOrderPrice(ocsd,wxCoupon,wxCouponChannel, isPress, ocsd.getSignleOrder().getOrderGroupId(), ocsd.getCount()); | |||||
| payment = payment+price.getRealPayMent(); | payment = payment+price.getRealPayMent(); | ||||
| couponMap.put(ocsd.getWxCoupon().getId(),ocsd.getWxCoupon()); | |||||
| couponChannelMap.put(wxCouponChannel.getId(), wxCouponChannel); | |||||
| } | } | ||||
| return createDBMainOrder(tenantEntity, user, payment, null,payWay,payVersion, composeOrderType,couponChannelMap,couponMap); | |||||
| } | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| protected WxComposeOrder createDBMainOrderForPushOrders(TenantEntity tenantEntity,WxCUserBasicInfo user,String allExtParam,List<PlatPushOrderSaveDto> platPushOrderList,EnumPayWay payWay, | |||||
| EnumPayVersion payVersion,EnumComposeOrder composeOrderType) { | |||||
| int payment = 0; | |||||
| Map<Long,WxCoupon> couponMap = new HashMap<Long,WxCoupon>(); | |||||
| Map<Long,WxCouponChannel> couponChannelMap = new HashMap<Long,WxCouponChannel>(); | |||||
| for (PlatPushOrderSaveDto ocsd : platPushOrderList) { | |||||
| WxCouponChannel wxCouponChannel = wxCouponChannelService.getById(ocsd.getCouponChannelId(),tenantEntity.getTenantId()); | |||||
| if (null == wxCouponChannel) { | |||||
| throw new MallinkException(ErrorCode.MSG_INSIDE_ERROR.getCode(),"渠道不存在:"+ocsd.getCouponChannelId()); | |||||
| } | |||||
| boolean isPress = ocsd.isPress(); | |||||
| WxComposeChildOrderPrice price = getChildCouponOrderPrice(ocsd.getShippingType(),ocsd.getWxCoupon(),wxCouponChannel, isPress, ocsd.getOrderGroupId(), ocsd.getCount()); | |||||
| payment = payment+price.getRealPayMent(); | |||||
| couponMap.put(ocsd.getWxCoupon().getId(),ocsd.getWxCoupon()); | |||||
| couponChannelMap.put(wxCouponChannel.getId(), wxCouponChannel); | |||||
| } | |||||
| return createDBMainOrder(tenantEntity, user, payment, allExtParam,payWay,payVersion, composeOrderType,couponChannelMap,couponMap); | |||||
| return createDBMainOrder(tenantEntity, user, payment, null,payWay,payVersion, composeOrderType); | |||||
| } | } | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| protected WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,int payment,String allExtParam,EnumPayWay payWay,EnumPayVersion payVersion, | protected WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,int payment,String allExtParam,EnumPayWay payWay,EnumPayVersion payVersion, | ||||
| EnumComposeOrder composeOrderType,Map<Long,WxCouponChannel> couponChannelMap,Map<Long,WxCoupon> couponMap) { | |||||
| EnumComposeOrder composeOrderType) { | |||||
| //判断是否poi订单 | //判断是否poi订单 | ||||
| Integer isTtPoiOrder = null; | |||||
| try{ | |||||
| if(EnumPayWay.PAY_WAY_TT.equals(payWay) && isTtPoiOrder(tenantEntity,couponChannelMap)){ | |||||
| isTtPoiOrder = EnumYesOrNo.YES.getCode(); | |||||
| } | |||||
| }catch(Exception e){ | |||||
| } | |||||
| // Integer isTtPoiOrder = null; | |||||
| // try{ | |||||
| // if(EnumPayWay.PAY_WAY_TT.equals(payWay) && isTtPoiOrder(tenantEntity,couponChannelMap)){ | |||||
| // isTtPoiOrder = EnumYesOrNo.YES.getCode(); | |||||
| // } | |||||
| // }catch(Exception e){ | |||||
| // } | |||||
| WxBatchOrder order =new WxBatchOrder(); | WxBatchOrder order =new WxBatchOrder(); | ||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| @@ -139,19 +112,13 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic | |||||
| order.setPayVendor(payWay.getCode()); | order.setPayVendor(payWay.getCode()); | ||||
| order.setPayVersion(payVersion.getCode()); | order.setPayVersion(payVersion.getCode()); | ||||
| order.setOrderType(composeOrderType.getCode()); | order.setOrderType(composeOrderType.getCode()); | ||||
| order.setIsTtPoiOrder(isTtPoiOrder); | |||||
| // order.setIsTtPoiOrder(isTtPoiOrder); | |||||
| order.setCreateDate(new Date()); | order.setCreateDate(new Date()); | ||||
| order.setExtParam(allExtParam); | order.setExtParam(allExtParam); | ||||
| wxBatchOrderMapper.insert(order); | wxBatchOrderMapper.insert(order); | ||||
| WxComposeOrder composeOrder = new WxComposeOrder(order.getId(), composeOrderType.getCode(), payment); | WxComposeOrder composeOrder = new WxComposeOrder(order.getId(), composeOrderType.getCode(), payment); | ||||
| composeOrder.setMainOrder(order); | composeOrder.setMainOrder(order); | ||||
| composeOrder.updateTenantInfo(tenantEntity); | composeOrder.updateTenantInfo(tenantEntity); | ||||
| if (null != couponChannelMap) { | |||||
| composeOrder.setCouponChannelMap(couponChannelMap); | |||||
| } | |||||
| if (null != couponMap){ | |||||
| composeOrder.setCouponMap(couponMap); | |||||
| } | |||||
| return composeOrder; | return composeOrder; | ||||
| } | } | ||||
| @@ -39,14 +39,7 @@ public class CouponPackageOrderAdapterService extends BaseBatchOrderAdapterServi | |||||
| @Override | @Override | ||||
| public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | ||||
| EnumPayWay payWay,EnumPayVersion payVersion) { | EnumPayWay payWay,EnumPayVersion payVersion) { | ||||
| return super.createDBMainOrder(tenantEntity, user, payment,null, payWay,payVersion, EnumComposeOrder.PACKAGECOUPON,null,null); | |||||
| } | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| @Override | |||||
| public WxComposeOrder createDBMainOrderByPushOrder(TenantEntity tenantEntity, WxCUserBasicInfo user,String allExtParam, | |||||
| List<PlatPushOrderSaveDto> platPushOrderList, EnumPayWay payWay,EnumPayVersion payVersion) { | |||||
| return super.createDBMainOrderForPushOrders(tenantEntity, user, allExtParam, platPushOrderList, payWay,payVersion, EnumComposeOrder.PACKAGECOUPON); | |||||
| return super.createDBMainOrder(tenantEntity, user, payment,null, payWay,payVersion, EnumComposeOrder.PACKAGECOUPON); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.iformall.service.order.impl.batch; | package com.iformall.service.order.impl.batch; | ||||
| import java.util.ArrayList; | |||||
| import java.util.List; | import java.util.List; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| @@ -41,21 +42,14 @@ public class MulityNumberOneOrderBatchOrderAdapterService extends BaseBatchOrder | |||||
| @Override | @Override | ||||
| public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | ||||
| EnumPayWay payWay,EnumPayVersion payVersion) { | EnumPayWay payWay,EnumPayVersion payVersion) { | ||||
| return super.createDBMainOrder(tenantEntity,user, payment, null, payWay,payVersion, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH,null,null); | |||||
| return super.createDBMainOrder(tenantEntity,user, payment, null, payWay,payVersion, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | |||||
| } | } | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| @Override | |||||
| public WxComposeOrder createDBMainOrderByPushOrder(TenantEntity tenantEntity, WxCUserBasicInfo user,String allExtParam, | |||||
| List<PlatPushOrderSaveDto> platPushOrderList, EnumPayWay payWay,EnumPayVersion payVersion) { | |||||
| return super.createDBMainOrderForPushOrders(tenantEntity, user, allExtParam, platPushOrderList, payWay,payVersion, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | |||||
| } | |||||
| @Override | @Override | ||||
| public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { | public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { | ||||
| WxComposeOrder composeOrder = super.getComposeOrder(mainOrderId, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | WxComposeOrder composeOrder = super.getComposeOrder(mainOrderId, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | ||||
| List<WxOrder> orders = super.getChildOrders(composeOrder, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | List<WxOrder> orders = super.getChildOrders(composeOrder, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | ||||
| //todo 目前只有单订单 | |||||
| if (null != orders && orders.size() > 0 ) { | if (null != orders && orders.size() > 0 ) { | ||||
| composeOrder.setSingleOrder(orders.get(0)); | composeOrder.setSingleOrder(orders.get(0)); | ||||
| } | } | ||||
| @@ -64,7 +58,11 @@ public class MulityNumberOneOrderBatchOrderAdapterService extends BaseBatchOrder | |||||
| @Override | @Override | ||||
| public List<WxOrder> getChildOrders(WxComposeOrder composeOrder, String tenantId) { | public List<WxOrder> getChildOrders(WxComposeOrder composeOrder, String tenantId) { | ||||
| return super.getChildOrders(composeOrder, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | |||||
| //todo 目前只有单订单 | |||||
| List<WxOrder> childOrders = new ArrayList<WxOrder>(); | |||||
| childOrders.add(composeOrder.getSingleOrder()); | |||||
| return childOrders; | |||||
| // return super.getChildOrders(composeOrder, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -40,14 +40,7 @@ public class OneNumberOneOrderBatchOrderAdapterService extends BaseBatchOrderAda | |||||
| @Override | @Override | ||||
| public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, | ||||
| EnumPayWay payWay,EnumPayVersion payVersion) { | EnumPayWay payWay,EnumPayVersion payVersion) { | ||||
| return super.createDBMainOrder(tenantEntity,user, payment, null,payWay,payVersion, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH,null,null); | |||||
| } | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| @Override | |||||
| public WxComposeOrder createDBMainOrderByPushOrder(TenantEntity tenantEntity, WxCUserBasicInfo user,String allExtParam, | |||||
| List<PlatPushOrderSaveDto> platPushOrderList, EnumPayWay payWay,EnumPayVersion payVersion) { | |||||
| return super.createDBMainOrderForPushOrders(tenantEntity, user, allExtParam,platPushOrderList, payWay,payVersion, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH); | |||||
| return super.createDBMainOrder(tenantEntity,user, payment, null,payWay,payVersion, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -97,6 +97,7 @@ public class Constant { | |||||
| //获取mall信息 | //获取mall信息 | ||||
| public static final String appinfoPrev = "appinfo:"; | public static final String appinfoPrev = "appinfo:"; | ||||
| public static final String payaccountPrev = "payaccount:"; | |||||
| public static final String mallinfoPrev = "mallinfo:"; | public static final String mallinfoPrev = "mallinfo:"; | ||||
| public static final String subMallinfoPrev = "mallinfo:subMallinfo:"; | public static final String subMallinfoPrev = "mallinfo:subMallinfo:"; | ||||
| @@ -9,10 +9,12 @@ | |||||
| <result column="c_user_id" jdbcType="BIGINT" property="cUserId"/> | <result column="c_user_id" jdbcType="BIGINT" property="cUserId"/> | ||||
| <result column="coupon_channel_id" jdbcType="BIGINT" property="couponChannelId"/> | <result column="coupon_channel_id" jdbcType="BIGINT" property="couponChannelId"/> | ||||
| <result column="product_id" jdbcType="BIGINT" property="productId"/> | <result column="product_id" jdbcType="BIGINT" property="productId"/> | ||||
| <result column="product_name" jdbcType="VARCHAR" property="productName"/> | |||||
| <result column="type" jdbcType="TINYINT" property="type"/> | <result column="type" jdbcType="TINYINT" property="type"/> | ||||
| <result column="pay_vendor" jdbcType="TINYINT" property="payVendor" /> | <result column="pay_vendor" jdbcType="TINYINT" property="payVendor" /> | ||||
| <result column="pay_version" jdbcType="INTEGER" property="payVersion" /> | <result column="pay_version" jdbcType="INTEGER" property="payVersion" /> | ||||
| <result column="payment_type" jdbcType="INTEGER" property="paymentType"/> | <result column="payment_type" jdbcType="INTEGER" property="paymentType"/> | ||||
| <result column="make_merchant_id" jdbcType="BIGINT" property="makeMerchantId"/> | |||||
| <result column="payment" jdbcType="INTEGER" property="payment"/> | <result column="payment" jdbcType="INTEGER" property="payment"/> | ||||
| <result column="payment_time" jdbcType="TIMESTAMP" property="paymentTime"/> | <result column="payment_time" jdbcType="TIMESTAMP" property="paymentTime"/> | ||||
| <result column="freight_price" jdbcType="INTEGER" property="freightPrice"/> | <result column="freight_price" jdbcType="INTEGER" property="freightPrice"/> | ||||
| @@ -38,7 +40,7 @@ | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`order_number`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`coupon_channel_id`,`product_id`,`type`,`pay_vendor`,`pay_version`,`payment_type`,`payment`,`payment_time`,`freight_price`,`order_status`,`cps_status`,`create_date`,`update_date`,`detail`,`ref_detail`, | |||||
| `id`,`order_number`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`coupon_channel_id`,`product_id`,`product_name`,`type`,`pay_vendor`,`pay_version`,`make_merchant_id`,`payment_type`,`payment`,`payment_time`,`freight_price`,`order_status`,`cps_status`,`create_date`,`update_date`,`detail`,`ref_detail`, | |||||
| `press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`,`total_payment`,`compose_order_id`,`coupon_number`,`compose_order_type`,`shipping_type`,`shipping_address`,`parent_order_id`,`ext_param` | `press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`,`total_payment`,`compose_order_id`,`coupon_number`,`compose_order_type`,`shipping_type`,`shipping_address`,`parent_order_id`,`ext_param` | ||||
| </sql> | </sql> | ||||
| @@ -333,7 +335,7 @@ | |||||
| <select id="findListOfCUser" parameterType="com.iformall.domain.po.WxOrder" resultMap="BaseResultMap"> | <select id="findListOfCUser" parameterType="com.iformall.domain.po.WxOrder" resultMap="BaseResultMap"> | ||||
| select | select | ||||
| o.id,o.order_number,o.tenant_id,o.parent_tenant_id,o.c_user_id,o.coupon_channel_id,o.product_id,o.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date, | |||||
| o.id,o.order_number,o.tenant_id,o.parent_tenant_id,o.c_user_id,o.coupon_channel_id,o.product_id,o.product_name,o.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date, | |||||
| o.compose_order_type,o.compose_order_id,o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,o.parent_order_id,o.ext_param | o.compose_order_type,o.compose_order_id,o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,o.parent_order_id,o.ext_param | ||||
| from wx_order o | from wx_order o | ||||
| @@ -370,7 +372,7 @@ | |||||
| <select id="selectDetailOfCUser" parameterType="com.iformall.domain.po.WxOrder" resultMap="BaseResultMap"> | <select id="selectDetailOfCUser" parameterType="com.iformall.domain.po.WxOrder" resultMap="BaseResultMap"> | ||||
| select | select | ||||
| o.id,o.order_number,o.tenant_id,o.parent_tenant_id,o.c_user_id,o.coupon_channel_id,o.product_id,o.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date, | |||||
| o.id,o.order_number,o.tenant_id,o.parent_tenant_id,o.c_user_id,o.coupon_channel_id,o.product_id,o.product_name,o.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date, | |||||
| o.compose_order_type,o.compose_order_id,o.parent_order_id,o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,o.ext_param | o.compose_order_type,o.compose_order_id,o.parent_order_id,o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,o.ext_param | ||||
| FROM wx_order o where o.`tenant_id` = #{tenantId} | FROM wx_order o where o.`tenant_id` = #{tenantId} | ||||
| <if test="cUserId != null"> | <if test="cUserId != null"> | ||||