| @@ -121,6 +121,13 @@ public class WxCouponController extends BaseController { | |||||
| EnumCouponType.COUPON_PREORDER.getCode()}; | EnumCouponType.COUPON_PREORDER.getCode()}; | ||||
| wxCoupon.setTypes(Arrays.asList(typeArray)); | wxCoupon.setTypes(Arrays.asList(typeArray)); | ||||
| Integer[] sendTypeArray = { | |||||
| EnumCouponSendType.ACTIVE.getCode(), | |||||
| EnumCouponSendType.PASSIVE.getCode(),}; | |||||
| wxCoupon.setSendTypes(Arrays.asList(sendTypeArray)); | |||||
| if(StringUtils.isNotBlank(wxCoupon.getSortColumn())){ | if(StringUtils.isNotBlank(wxCoupon.getSortColumn())){ | ||||
| String coryColumn = "c."+wxCoupon.getSortColumns(); | String coryColumn = "c."+wxCoupon.getSortColumns(); | ||||
| wxCoupon.setSortColumns(coryColumn); | wxCoupon.setSortColumns(coryColumn); | ||||
| @@ -0,0 +1,201 @@ | |||||
| ALTER TABLE wx_order_0 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_1 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_2 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_3 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_4 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_5 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_6 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_7 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_8 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_9 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_10 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_11 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_12 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_13 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_14 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_15 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_16 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_17 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_18 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_19 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_20 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_21 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_22 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_23 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_24 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_25 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_26 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_27 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_28 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_29 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_30 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_31 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_32 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_33 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_34 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_35 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_36 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_37 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_38 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_39 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_40 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_41 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_42 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_43 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_44 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_45 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_46 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_47 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_48 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_49 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_50 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_51 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_52 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_53 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_54 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_55 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_56 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_57 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_58 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_59 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_60 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_61 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_62 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_63 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_64 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_65 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_66 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_67 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_68 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_69 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_70 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_71 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_72 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_73 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_74 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_75 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_76 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_77 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_78 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_79 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_80 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_81 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_82 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_83 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_84 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_85 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_86 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_87 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_88 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_89 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_90 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_91 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_92 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_93 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_94 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_95 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_96 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_97 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_98 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_order_99 ADD COLUMN `parent_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_0 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_1 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_2 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_3 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_4 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_5 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_6 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_7 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_8 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_9 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_10 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_11 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_12 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_13 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_14 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_15 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_16 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_17 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_18 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_19 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_20 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_21 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_22 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_23 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_24 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_25 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_26 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_27 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_28 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_29 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_30 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_31 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_32 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_33 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_34 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_35 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_36 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_37 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_38 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_39 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_40 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_41 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_42 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_43 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_44 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_45 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_46 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_47 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_48 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_49 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_50 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_51 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_52 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_53 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_54 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_55 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_56 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_57 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_58 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_59 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_60 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_61 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_62 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_63 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_64 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_65 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_66 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_67 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_68 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_69 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_70 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_71 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_72 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_73 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_74 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_75 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_76 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_77 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_78 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_79 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_80 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_81 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_82 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_83 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_84 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_85 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_86 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_87 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_88 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_89 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_90 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_91 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_92 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_93 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_94 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_95 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_96 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_97 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_98 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| ALTER TABLE wx_coupon_order_99 ADD COLUMN `parent_coupon_order_id` bigint(20) not null default 0 COMMENT '父订单编号'; | |||||
| @@ -338,7 +338,7 @@ public class WxCouponOrderController extends BaseController { | |||||
| WxCouponOrder couponOrder = null; | WxCouponOrder couponOrder = null; | ||||
| try { | try { | ||||
| wxCouponOrder.setVerifyRemark(verifyRemark); | wxCouponOrder.setVerifyRemark(verifyRemark); | ||||
| couponOrder = wxCouponOrderService.verify(wxCouponOrder, wxMerchantBUser); | |||||
| couponOrder = wxCouponOrderService.verify(wxCouponOrder, wxMerchantBUser, EnumCouponVerifyType.VERIFY_B); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("核销异常: " + e.getMessage()); | logger.error("核销异常: " + e.getMessage()); | ||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | return new ResultData(e.getErrorCode(), e.getMessage()); | ||||
| @@ -80,7 +80,14 @@ public class WxCouponController extends BaseController { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId转换失败" + couponChannelId); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId转换失败" + couponChannelId); | ||||
| } | } | ||||
| String key = "cc:" + couponChannelId; | |||||
| String key = "cc:"; | |||||
| if(couponChannelIdL > 0){ | |||||
| key = key + couponChannelIdL; | |||||
| }else if(couponIdL > 0){ | |||||
| key = key + couponIdL; | |||||
| }else{ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId/couponId为空"); | |||||
| } | |||||
| ValueOperations<String, WxCouponCVo> operations = cdRedisTemplate.opsForValue(); | ValueOperations<String, WxCouponCVo> operations = cdRedisTemplate.opsForValue(); | ||||
| // 缓存 | // 缓存 | ||||
| @@ -160,7 +167,14 @@ public class WxCouponController extends BaseController { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId转换失败" + couponChannelId); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId转换失败" + couponChannelId); | ||||
| } | } | ||||
| String key = "ch:" + couponChannelId; | |||||
| String key = "ch:"; | |||||
| if(couponChannelIdL > 0){ | |||||
| key = key + couponChannelIdL; | |||||
| }else if(couponIdL > 0){ | |||||
| key = key + couponIdL; | |||||
| }else{ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId/couponId为空"); | |||||
| } | |||||
| ValueOperations<String, WxCouponCVo> operations = cdRedisTemplate.opsForValue(); | ValueOperations<String, WxCouponCVo> operations = cdRedisTemplate.opsForValue(); | ||||
| // 缓存 | // 缓存 | ||||
| @@ -475,7 +475,7 @@ public class WxCouponOrderController extends BaseController { | |||||
| } | } | ||||
| WxCouponOrder couponOrder = null; | WxCouponOrder couponOrder = null; | ||||
| try { | try { | ||||
| couponOrder = wxCouponOrderService.verify(wxCouponOrder); | |||||
| couponOrder = wxCouponOrderService.verify(wxCouponOrder,null,EnumCouponVerifyType.VERIFY_C); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("核销异常: " + e.getMessage()); | logger.error("核销异常: " + e.getMessage()); | ||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | return new ResultData(e.getErrorCode(), e.getMessage()); | ||||
| @@ -484,6 +484,10 @@ public class WxCouponOrderController extends BaseController { | |||||
| return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); | return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); | ||||
| } | } | ||||
| if (couponOrder != null) { | |||||
| wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); | |||||
| } | |||||
| return new ResultData(couponOrder); | return new ResultData(couponOrder); | ||||
| } | } | ||||
| @@ -112,6 +112,10 @@ public class CouponOrderExpiringSchedule { | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public void couponOrderExpire(WxCouponOrder co, boolean bStockBack) { | public void couponOrderExpire(WxCouponOrder co, boolean bStockBack) { | ||||
| //商品订单不过期 | |||||
| if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(co.getCouponType())){ | |||||
| return; | |||||
| } | |||||
| // 标记 couponOrder过期 | // 标记 couponOrder过期 | ||||
| WxCouponOrder updateRecord = new WxCouponOrder(); | WxCouponOrder updateRecord = new WxCouponOrder(); | ||||
| updateRecord.setId(co.getId()); | updateRecord.setId(co.getId()); | ||||
| @@ -127,7 +131,8 @@ public class CouponOrderExpiringSchedule { | |||||
| // 库存退回 | // 库存退回 | ||||
| if(bStockBack) { | if(bStockBack) { | ||||
| WxOrder order = wxOrderMapper.selectById(co.getOrderId(),co.getTenantId()); | WxOrder order = wxOrderMapper.selectById(co.getOrderId(),co.getTenantId()); | ||||
| if(order != null) { | |||||
| //券包子券没有库存 | |||||
| if(order != null && order.getParentOrderId() == 0l) { | |||||
| wxOrderService.stockBack(order); | wxOrderService.stockBack(order); | ||||
| } | } | ||||
| } | } | ||||
| @@ -61,7 +61,10 @@ public class WxCouponOrder extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="组合订单类型EnumComposeOrder",name="composeOrderType") | @io.swagger.annotations.ApiModelProperty(value="组合订单类型EnumComposeOrder",name="composeOrderType") | ||||
| private Integer composeOrderType; | private Integer composeOrderType; | ||||
| @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") | @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") | ||||
| private Long composeOrderId; | |||||
| private Long composeOrderId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="父订单编号",name="parentCouponOrderId") | |||||
| private Long parentCouponOrderId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") | @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") | ||||
| private Integer couponNumber; | private Integer couponNumber; | ||||
| @@ -104,6 +104,10 @@ public class WxOrder extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="组合订单类型EnumComposeOrder",name="composeOrderType") | @io.swagger.annotations.ApiModelProperty(value="组合订单类型EnumComposeOrder",name="composeOrderType") | ||||
| private Integer composeOrderType; | private Integer composeOrderType; | ||||
| @io.swagger.annotations.ApiModelProperty(value="父订单编号",name="parentOrderId") | |||||
| private Long parentOrderId; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| @@ -21,7 +21,7 @@ public class WxCouponOrderBVo extends WxCouponOrder { | |||||
| private static final long serialVersionUID = 6687954932922444531L; | private static final long serialVersionUID = 6687954932922444531L; | ||||
| @Excel(name = "券码", width = 20, orderNum = "1", prefix = "`") | |||||
| @Excel(name = "兑换码", width = 20, orderNum = "1", prefix = "`") | |||||
| protected Long id; | protected Long id; | ||||
| /** 基础购买到的券信息 */ | /** 基础购买到的券信息 */ | ||||
| @@ -32,7 +32,7 @@ public class WxCouponOrderBVo extends WxCouponOrder { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime") | @io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime") | ||||
| private Date expiredTime; | private Date expiredTime; | ||||
| @Excel(name = "券名称", width = 50, orderNum = "2") | |||||
| @Excel(name = "券/商品名称", width = 50, orderNum = "2") | |||||
| @io.swagger.annotations.ApiModelProperty(value="券名称",name="title") | @io.swagger.annotations.ApiModelProperty(value="券名称",name="title") | ||||
| private String title; | private String title; | ||||
| @@ -93,7 +93,7 @@ public class WxCouponOrderBVo extends WxCouponOrder { | |||||
| @io.swagger.annotations.ApiModelProperty(value="面额",name="price") | @io.swagger.annotations.ApiModelProperty(value="面额",name="price") | ||||
| private Integer price; | private Integer price; | ||||
| @Excel(name = "所属业态", width = 50, orderNum = "11", replace = {"餐饮_1", "娱乐_2", "服饰_3", "亲子_4", "超市_5", "其它_6", "美妆_7", "珠宝_8", "服务_9", "家居_10", "其它_"}) | |||||
| @Excel(name = "所属业态", width = 50, orderNum = "11", replace = {"餐饮_1", "娱乐_2", "服饰_3", "亲子_4", "超市_5", "其它_6", "美妆_7", "珠宝_8", "服务_9", "家居_10", "_null"}) | |||||
| @io.swagger.annotations.ApiModelProperty(value = "业态", name = "business") | @io.swagger.annotations.ApiModelProperty(value = "业态", name = "business") | ||||
| private Integer business; | private Integer business; | ||||
| @@ -134,7 +134,7 @@ public class WxCouponOrderBVo extends WxCouponOrder { | |||||
| private String bUserName; | private String bUserName; | ||||
| @io.swagger.annotations.ApiModelProperty(value="b端用户手机号",name="bUserPhone") | @io.swagger.annotations.ApiModelProperty(value="b端用户手机号",name="bUserPhone") | ||||
| private String bUserPhone; | private String bUserPhone; | ||||
| @Excel(name = "券所属商户", width = 50, orderNum = "3") | |||||
| @Excel(name = "所属商户", width = 50, orderNum = "3") | |||||
| @io.swagger.annotations.ApiModelProperty(value="使用券商户名",name="merchantName") | @io.swagger.annotations.ApiModelProperty(value="使用券商户名",name="merchantName") | ||||
| private String merchantName; | private String merchantName; | ||||
| @@ -189,7 +189,7 @@ public class WxCouponOrderBVo extends WxCouponOrder { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Long couponId; | private Long couponId; | ||||
| @Excel(name = "券类型", width = 50, orderNum = "15", replace = {"满减券_1", "代金券_2", "团购券_3", "礼品券_4", "停车券_5", "通用券_6", "砍价券_8", "团购券_9", "预购商品_10", "可配送商品_11", "券礼包_12", "积分券_50", "积分停车券_51", "消费卡_100"}) | |||||
| @Excel(name = "类型", width = 50, orderNum = "15", replace = {"满减券_1", "代金券_2", "团购券_3", "礼品券_4", "停车券_5", "通用券_6", "砍价券_8", "团购券_9", "预购商品_10", "可配送商品_11", "券礼包_12", "积分券_50", "积分停车券_51", "消费卡_100"}) | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer couponType; | private Integer couponType; | ||||
| @@ -117,6 +117,9 @@ public class WxOrderCouponVo extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") | @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") | ||||
| private Long composeOrderId; | private Long composeOrderId; | ||||
| @io.swagger.annotations.ApiModelProperty(value="父订单编号",name="parentOrderId") | |||||
| private Long parentOrderId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") | @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") | ||||
| private Integer couponNumber; | private Integer couponNumber; | ||||
| @@ -16,6 +16,8 @@ public enum EnumCouponVerifyType { | |||||
| VERIFY_POS_PAY(2, "POS交易核销"), | VERIFY_POS_PAY(2, "POS交易核销"), | ||||
| VERIFY_C(3,"用户自主核销"), | VERIFY_C(3,"用户自主核销"), | ||||
| VERIFY_AUTO(4,"系统自动核销"), | |||||
| ; | ; | ||||
| public static EnumCouponVerifyType getEnum(Integer code) { | public static EnumCouponVerifyType getEnum(Integer code) { | ||||
| @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.*; | import com.iformall.domain.vo.*; | ||||
| import com.iformall.enums.EnumCouponVerifyType; | |||||
| import com.iformall.enums.EnumPayWay; | import com.iformall.enums.EnumPayWay; | ||||
| import com.iformall.service.order.entity.WxComposeOrder; | import com.iformall.service.order.entity.WxComposeOrder; | ||||
| @@ -55,15 +56,7 @@ public interface WxCouponOrderService { | |||||
| * @param couponOrder | * @param couponOrder | ||||
| * @param bUser 核销人(登录用户) | * @param bUser 核销人(登录用户) | ||||
| */ | */ | ||||
| WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser); | |||||
| /** | |||||
| * 根据主键couponOrderId(券码)核销 | |||||
| * C端自主核销 | |||||
| * | |||||
| * @param couponOrder | |||||
| */ | |||||
| WxCouponOrder verify(WxCouponOrder couponOrder); | |||||
| WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType); | |||||
| /** | /** | ||||
| * 核销后发送消息 | * 核销后发送消息 | ||||
| @@ -86,6 +86,13 @@ public interface WxOrderService { | |||||
| */ | */ | ||||
| WxCouponOrder sendFreeCouponToUser(Long userId,TenantEntity tenantinfo,Long couponId, WxCouponSendVo wxCouponSendVo,EnumPayWay payWay,Long merchantId,Long bUserId); | WxCouponOrder sendFreeCouponToUser(Long userId,TenantEntity tenantinfo,Long couponId, WxCouponSendVo wxCouponSendVo,EnumPayWay payWay,Long merchantId,Long bUserId); | ||||
| /** | |||||
| * 发券包子券 | |||||
| * @param couponOrder | |||||
| * @param couponIds | |||||
| */ | |||||
| void sendSubCouponToUser(WxCouponOrder couponOrder, List<Long> couponIds); | |||||
| /** | /** | ||||
| * orderSuccess 订单已支付 | * orderSuccess 订单已支付 | ||||
| * @param updateOrder | * @param updateOrder | ||||
| @@ -245,4 +252,5 @@ public interface WxOrderService { | |||||
| ResultData composeSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,List<OrderComposeSaveDto> composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity); | ResultData composeSaveOrder(boolean allowUnPayOrder,EnumComposeOrder composeOrderType,List<OrderComposeSaveDto> composeOrderSaveDto,Long cUserId,EnumPayWay payWay,TenantEntity tenantEntity); | ||||
| PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); | PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); | ||||
| } | } | ||||
| @@ -1,8 +1,8 @@ | |||||
| package com.iformall.service.impl; | package com.iformall.service.impl; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.aliyun.openservices.shade.com.alibaba.fastjson.JSON; | |||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| @@ -342,6 +342,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| public void exportData(WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) { | public void exportData(WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) { | ||||
| String filename = "券订单"; | String filename = "券订单"; | ||||
| if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCouponOrder.getCouponType())){ | |||||
| filename = "商品订单"; | |||||
| } | |||||
| WxMerchant merchantQ = new WxMerchant(); | WxMerchant merchantQ = new WxMerchant(); | ||||
| merchantQ.updateTenantInfo(wxCouponOrder); | merchantQ.updateTenantInfo(wxCouponOrder); | ||||
| List<WxMerchant> merchantList = wxMerchantMapper.findIdNameList(merchantQ); | List<WxMerchant> merchantList = wxMerchantMapper.findIdNameList(merchantQ); | ||||
| @@ -389,7 +392,11 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser) { | |||||
| public WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType) { | |||||
| if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) && bUser == null){ | |||||
| logger.error("B端核销未传入门店"); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR); | |||||
| } | |||||
| // 1. 获取券信息 | // 1. 获取券信息 | ||||
| WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId()); | WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId()); | ||||
| @@ -397,17 +404,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| logger.error("券: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId()); | logger.error("券: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | ||||
| } | } | ||||
| // 2. 检查适用门店 | |||||
| WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); | |||||
| wxCouponMerchant.setProductId(wxCoupon.getId()); | |||||
| wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); | |||||
| List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant); | |||||
| if (!couponMerchantList.stream().anyMatch(cm -> cm.getMerchantId().equals(bUser.getMerchantId()))) { | |||||
| logger.error("券: coupon-" + wxCoupon.getId() + "核销: couponMerchantId-" + bUser.getMerchantId()); | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| // 3. 券包状态检查 | // 3. 券包状态检查 | ||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) { | if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) { | ||||
| logger.error("已过期: couponOrder-" + couponOrder.getId()); | logger.error("已过期: couponOrder-" + couponOrder.getId()); | ||||
| @@ -425,37 +421,88 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| logger.error("券已被预核销: couponOrder-" + couponOrder.getId()); | logger.error("券已被预核销: couponOrder-" + couponOrder.getId()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); | ||||
| } | } | ||||
| //如果开启了分账,就必须要配置分账账号 | |||||
| WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor()); | |||||
| WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); | |||||
| WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver(); | |||||
| psReceiverQ.updateTenantInfo(payAccount); | |||||
| psReceiverQ.setMerchantId(bUser.getMerchantId()); | |||||
| psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType()); | |||||
| psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode()); | |||||
| List<WxProfitSharingReceiver> psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ); | |||||
| if (null == payAccount.getShare()) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该租户payAccount未设置分账."); | |||||
| } | |||||
| if (EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue()) { | |||||
| if (null == psReceiverList || psReceiverList.size() == 0) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户未设置分账账号."); | |||||
| }else { | |||||
| for (WxProfitSharingReceiver receiver:psReceiverList) { | |||||
| if (EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID.getCode().intValue() | |||||
| == receiver.getReceiverType().intValue()) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户收款账号存在个人微信号方式,微信已停止支持,请重新设置."); | |||||
| } | |||||
| } | |||||
| } | |||||
| if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){ | |||||
| logger.error("券为礼包卷: couponOrder-" + couponOrder.getId() ); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); | |||||
| } | |||||
| // 2. 检查适用门店 | |||||
| Long merchantId = null; | |||||
| if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCoupon.getType())){ | |||||
| //可配送商品 | |||||
| WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); | |||||
| wxCouponMerchant.setProductId(wxCoupon.getId()); | |||||
| wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); | |||||
| WxCouponMerchant cm = null; | |||||
| try{ | |||||
| cm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(wxCouponMerchant)); | |||||
| }catch (Exception e){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| if(cm == null){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) && !cm.getId().equals(bUser.getMerchantId())){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| merchantId = cm.getId(); | |||||
| }else if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){ | |||||
| if (StringUtils.isBlank(wxCoupon.getGiftList())){ | |||||
| logger.error("券包: coupon-" + wxCoupon.getId() + "数据异常" + "couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_DATE_ERROR); | |||||
| } | |||||
| if(!EnumCouponVerifyType.VERIFY_AUTO.equals(couponVerifyType)){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT); | |||||
| } | |||||
| }else{ | |||||
| if(!EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT); | |||||
| } | |||||
| WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); | |||||
| wxCouponMerchant.setProductId(wxCoupon.getId()); | |||||
| wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); | |||||
| List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant); | |||||
| if (!couponMerchantList.stream().anyMatch(cm -> cm.getMerchantId().equals(bUser.getMerchantId()))) { | |||||
| logger.error("券: coupon-" + wxCoupon.getId() + "核销: couponMerchantId-" + bUser.getMerchantId()); | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| merchantId = bUser.getId(); | |||||
| } | |||||
| if(merchantId != null){ | |||||
| //如果开启了分账,就必须要配置分账账号 | |||||
| WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor()); | |||||
| WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); | |||||
| WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver(); | |||||
| psReceiverQ.updateTenantInfo(payAccount); | |||||
| psReceiverQ.setMerchantId(merchantId); | |||||
| psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType()); | |||||
| psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode()); | |||||
| List<WxProfitSharingReceiver> psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ); | |||||
| if (null == payAccount.getShare()) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该租户payAccount未设置分账."); | |||||
| } | |||||
| if (EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue()) { | |||||
| if (null == psReceiverList || psReceiverList.size() == 0) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户未设置分账账号."); | |||||
| }else { | |||||
| for (WxProfitSharingReceiver receiver:psReceiverList) { | |||||
| if (EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID.getCode().intValue() | |||||
| == receiver.getReceiverType().intValue()) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户收款账号存在个人微信号方式,微信已停止支持,请重新设置."); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | } | ||||
| int num = 0; | int num = 0; | ||||
| try { | try { | ||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 | couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 | ||||
| couponOrder.setBUserId(bUser.getId()); | |||||
| couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); | |||||
| if(StringUtils.isNotBlank(couponOrder.getVerifyRemark())){ | |||||
| couponOrder.setBUserId(bUser==null?0l:bUser.getId()); | |||||
| couponOrder.setVerifyType(couponVerifyType.getCode()); | |||||
| if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) | |||||
| && StringUtils.isNotBlank(couponOrder.getVerifyRemark())){ | |||||
| if(couponOrder.getVerifyRemark().equals(EnumCouponVerifyType.VERIFY_B_11.getCode().toString())){ | if(couponOrder.getVerifyRemark().equals(EnumCouponVerifyType.VERIFY_B_11.getCode().toString())){ | ||||
| couponOrder.setVerifyRemark(EnumCouponVerifyType.VERIFY_B_11.getMessage()); | couponOrder.setVerifyRemark(EnumCouponVerifyType.VERIFY_B_11.getMessage()); | ||||
| }else if(couponOrder.getVerifyRemark().equals(EnumCouponVerifyType.VERIFY_B_12.getCode().toString())){ | }else if(couponOrder.getVerifyRemark().equals(EnumCouponVerifyType.VERIFY_B_12.getCode().toString())){ | ||||
| @@ -477,97 +524,24 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| logger.error("核销异常:updatete num " + num); | logger.error("核销异常:updatete num " + num); | ||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | ||||
| } | } | ||||
| doAfterVerify(couponOrder, bUser, wxCoupon); | |||||
| return couponOrder; | |||||
| } | |||||
| @Override | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| public WxCouponOrder verify(WxCouponOrder couponOrder) { | |||||
| // 1. 获取券信息 | |||||
| WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId()); | |||||
| if (wxCoupon == null) { | |||||
| logger.error("券: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| // 2. 检查适用门店(自主核销有且只有一个门店) | |||||
| WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); | |||||
| wxCouponMerchant.setProductId(wxCoupon.getId()); | |||||
| wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); | |||||
| WxCouponMerchant cm = null; | |||||
| try{ | |||||
| cm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(wxCouponMerchant)); | |||||
| }catch (Exception e){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| if(cm == null){ | |||||
| throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); | |||||
| } | |||||
| // 3. 券包状态检查 | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) { | |||||
| logger.error("已过期: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()) { | |||||
| logger.error("已退款: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) { | |||||
| logger.error("已经核销过的券: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) { | |||||
| logger.error("券已被预核销: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); | |||||
| } | |||||
| //如果开启了分账,就必须要配置分账账号 | |||||
| WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor()); | |||||
| WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); | |||||
| WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver(); | |||||
| psReceiverQ.updateTenantInfo(payAccount); | |||||
| psReceiverQ.setMerchantId(cm.getMerchantId()); | |||||
| psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType()); | |||||
| psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode()); | |||||
| List<WxProfitSharingReceiver> psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ); | |||||
| if (null == payAccount.getShare()) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该租户payAccount未设置分账."); | |||||
| } | |||||
| if (EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue()) { | |||||
| if (null == psReceiverList || psReceiverList.size() == 0) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户未设置分账账号."); | |||||
| }else { | |||||
| for (WxProfitSharingReceiver receiver:psReceiverList) { | |||||
| if (EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID.getCode().intValue() | |||||
| == receiver.getReceiverType().intValue()) { | |||||
| throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户收款账号存在个人微信号方式,微信已停止支持,请重新设置."); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| int num = 0; | |||||
| try { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 | |||||
| couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_C.getCode()); | |||||
| if(EnumOrderShopingType.SELF_MENTION.getCode().equals(couponOrder.getShippingType())){ | |||||
| couponOrder.setShippingStatus(EnumOrderShopingStatus.ALREADY_SELF_MENTION.getCode()); | |||||
| }else if(EnumOrderShopingType.DISTRIBUTION.getCode().equals(couponOrder.getShippingType())){ | |||||
| couponOrder.setShippingStatus(EnumOrderShopingStatus.ALREADY_DISTRIBUTION.getCode()); | |||||
| if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){ | |||||
| try { | |||||
| List<Long> longs = JSON.parseArray(wxCoupon.getGiftList(), Long.class); | |||||
| //发券包子券 | |||||
| wxOrderService.sendSubCouponToUser(couponOrder,longs); | |||||
| } catch (MallinkException e) { | |||||
| throw e; | |||||
| } catch (Exception e){ | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SEND_ERROR.getCode(), couponOrder.getCouponName() + ErrorCode.COUPON_ORDER_SEND_ERROR.getMessage() ); | |||||
| } | } | ||||
| couponOrder.setUpdateDate(new Date()); | |||||
| num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | } | ||||
| if (num != 1) { | |||||
| logger.error("核销异常:updatete num " + num); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)){ | |||||
| doAfterVerify(couponOrder, bUser, wxCoupon); | |||||
| }else{ | |||||
| doAfterVerify(couponOrder, wxCoupon, merchantId); | |||||
| } | } | ||||
| doAfterVerify(couponOrder, wxCoupon, cm.getMerchantId()); | |||||
| this.sendInsideCouponVerifyMsg(couponOrder, couponOrder.getId(), cm.getMerchantId()); | |||||
| couponOrder.setMerchantId(merchantId); | |||||
| return couponOrder; | return couponOrder; | ||||
| } | } | ||||
| @@ -680,7 +654,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| creditHistory.setSpend(couponOrder.getCouponPrice()); | creditHistory.setSpend(couponOrder.getCouponPrice()); | ||||
| //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 | ||||
| creditHistory.setMerchantId(merchantId); | creditHistory.setMerchantId(merchantId); | ||||
| creditHistory.setChangePurpose("用户自主核销增加积分:券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] "); | |||||
| creditHistory.setChangePurpose("增加积分:券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] "); | |||||
| wxCreditHistoryService.saveOrUpdate(creditHistory,couponOrder.getTenantId()); | wxCreditHistoryService.saveOrUpdate(creditHistory,couponOrder.getTenantId()); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("积分值:" + e.getMessage()); | logger.error("积分值:" + e.getMessage()); | ||||
| @@ -915,6 +889,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| // 补贴已入库 | // 补贴已入库 | ||||
| return; | return; | ||||
| } | } | ||||
| subsidyNum = subsidyNum * couponOrder.getCouponNumber(); | |||||
| // 新补贴入库 | // 新补贴入库 | ||||
| int iSubChargeFee = OrderHelper.getMallCharge(subsidyNum, payAccount); | int iSubChargeFee = OrderHelper.getMallCharge(subsidyNum, payAccount); | ||||
| Integer realSubsidyFee = subsidyNum - iSubChargeFee; | Integer realSubsidyFee = subsidyNum - iSubChargeFee; | ||||
| @@ -114,6 +114,9 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| @Autowired | @Autowired | ||||
| WxCouponOrderMapper wxCouponOrderMapper; | WxCouponOrderMapper wxCouponOrderMapper; | ||||
| @Autowired | |||||
| WxCouponOrderService wxCouponOrderService; | |||||
| @Autowired | @Autowired | ||||
| WxCUserService wxCUserService; | WxCUserService wxCUserService; | ||||
| @@ -986,7 +989,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| * @param coupon | * @param coupon | ||||
| */ | */ | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public WxCouponOrder createCouponOrder(WxOrder order, WxCUserBasicInfo user, WxCoupon coupon, Long couponPasswordId,EnumPayWay payWay,Long merchantId,Long bUserId) { | |||||
| public WxCouponOrder createCouponOrder(WxOrder order, WxCUserBasicInfo user, WxCoupon coupon, Long couponPasswordId,EnumPayWay payWay,Long merchantId,Long bUserId,Long parentCouponOrderId) { | |||||
| Date curr = new Date(); | Date curr = new Date(); | ||||
| Date valid_date = null; | Date valid_date = null; | ||||
| int limit_days = Constant.WX_LIMIT_DAYS; | int limit_days = Constant.WX_LIMIT_DAYS; | ||||
| @@ -1065,7 +1068,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| couponOrder.setCUserId(user.getId()); | couponOrder.setCUserId(user.getId()); | ||||
| couponOrder.setOwnerId(user.getId()); | couponOrder.setOwnerId(user.getId()); | ||||
| couponOrder.setAutoRefund(coupon.getAutoRefund()); | couponOrder.setAutoRefund(coupon.getAutoRefund()); | ||||
| couponOrder.setOrderId(order.getOrderNumber()); | |||||
| couponOrder.setOrderId(order.getId()); | |||||
| couponOrder.setExpiredTime(valid_date); | couponOrder.setExpiredTime(valid_date); | ||||
| if (null != merchantId) { | if (null != merchantId) { | ||||
| couponOrder.setSendMerchantId(merchantId); | couponOrder.setSendMerchantId(merchantId); | ||||
| @@ -1077,6 +1080,8 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| couponOrder.setComposeOrderId(order.getComposeOrderId()); | couponOrder.setComposeOrderId(order.getComposeOrderId()); | ||||
| couponOrder.setCouponNumber(order.getCouponNumber()); | couponOrder.setCouponNumber(order.getCouponNumber()); | ||||
| couponOrder.setParentCouponOrderId(parentCouponOrderId); | |||||
| couponOrder.setFreightPrice(order.getFreightPrice()); | couponOrder.setFreightPrice(order.getFreightPrice()); | ||||
| couponOrder.setShippingType(order.getShippingType()); | couponOrder.setShippingType(order.getShippingType()); | ||||
| couponOrder.setShippingAddress(order.getShippingAddress()); | couponOrder.setShippingAddress(order.getShippingAddress()); | ||||
| @@ -1205,7 +1210,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| couponOrder.setCUserId(user.getId()); | couponOrder.setCUserId(user.getId()); | ||||
| couponOrder.setOwnerId(user.getId()); | couponOrder.setOwnerId(user.getId()); | ||||
| couponOrder.setAutoRefund(coupon.getAutoRefund()); | couponOrder.setAutoRefund(coupon.getAutoRefund()); | ||||
| couponOrder.setOrderId(order.getOrderNumber()); | |||||
| couponOrder.setOrderId(order.getId()); | |||||
| couponOrder.setExpiredTime(valid_date); | couponOrder.setExpiredTime(valid_date); | ||||
| if (!isCard) { | if (!isCard) { | ||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | ||||
| @@ -1298,25 +1303,19 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| throw new MallinkException(ErrorCode.COUPON_IS_NOT_FREE.getCode(), coupon.getTitle() + ErrorCode.COUPON_IS_NOT_FREE.getMessage()); | throw new MallinkException(ErrorCode.COUPON_IS_NOT_FREE.getCode(), coupon.getTitle() + ErrorCode.COUPON_IS_NOT_FREE.getMessage()); | ||||
| } | } | ||||
| Integer composeOrderType = EnumComposeOrder.SINGLE.getCode(); | |||||
| if(EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST.equals(payWay)){ | |||||
| composeOrderType = EnumComposeOrder.PACKAGECOUPON.getCode(); | |||||
| }else{ | |||||
| composeOrderType = EnumComposeOrder.SINGLE.getCode(); | |||||
| if (Objects.nonNull(wxCouponSendVo) && Objects.equals(EnumCouponSendSendType.MERCHANT.getCode(), wxCouponSendVo.getSendType())) { | |||||
| // 商户注券减库存操作 | |||||
| try { | |||||
| stockMerchantReduce(user, coupon, couponIdStr, wxCouponSendVo); | |||||
| }catch(Exception e) { | |||||
| throw new MallinkException(ErrorCode.COUPON_STOCK_ERR.getCode(), e.getMessage()); | |||||
| } | |||||
| } else { | |||||
| // 减库存操作 | |||||
| try { | |||||
| stockReduce(false,user, coupon, couponIdStr,1); | |||||
| }catch(Exception e) { | |||||
| throw new MallinkException(ErrorCode.COUPON_STOCK_ERR.getCode(), e.getMessage()); | |||||
| } | |||||
| if (Objects.nonNull(wxCouponSendVo) && Objects.equals(EnumCouponSendSendType.MERCHANT.getCode(), wxCouponSendVo.getSendType())) { | |||||
| // 商户注券减库存操作 | |||||
| try { | |||||
| stockMerchantReduce(user, coupon, couponIdStr, wxCouponSendVo); | |||||
| }catch(Exception e) { | |||||
| throw new MallinkException(ErrorCode.COUPON_STOCK_ERR.getCode(), e.getMessage()); | |||||
| } | |||||
| } else { | |||||
| // 减库存操作 | |||||
| try { | |||||
| stockReduce(false,user, coupon, couponIdStr,1); | |||||
| }catch(Exception e) { | |||||
| throw new MallinkException(ErrorCode.COUPON_STOCK_ERR.getCode(), e.getMessage()); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1345,7 +1344,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| record.setCreateDate(curr); | record.setCreateDate(curr); | ||||
| record.setUpdateDate(curr); | record.setUpdateDate(curr); | ||||
| record.setComposeOrderId(0L); | record.setComposeOrderId(0L); | ||||
| record.setComposeOrderType(composeOrderType); | |||||
| record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); | |||||
| record.setCouponNumber(1); | record.setCouponNumber(1); | ||||
| // 保存订单 | // 保存订单 | ||||
| try { | try { | ||||
| @@ -1358,7 +1357,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // 创建couponOrder | // 创建couponOrder | ||||
| WxCouponOrder couponOrder = null; | WxCouponOrder couponOrder = null; | ||||
| try { | try { | ||||
| couponOrder = createCouponOrder(record, user, coupon, null,payWay,merchantId,bUserId); | |||||
| couponOrder = createCouponOrder(record, user, coupon, null,payWay,merchantId,bUserId,null); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("保存订单:" + e.getMessage()); | logger.error("保存订单:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.getMessage()); | throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.getMessage()); | ||||
| @@ -1367,6 +1366,80 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| return couponOrder; | return couponOrder; | ||||
| } | } | ||||
| @Override | |||||
| @Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| public void sendSubCouponToUser(WxCouponOrder couponOrder, List<Long> couponIds) { | |||||
| // check 用户状态 | |||||
| WxCUserBasicInfo user = null; | |||||
| try { | |||||
| user = wxCUserBasicInfoMapper.selectById(couponOrder.getcUserId(),couponOrder.getFinalTenantId()); | |||||
| } catch (Exception e) { | |||||
| logger.error("userId : " + couponOrder.getcUserId() + ", e: " + e.getMessage(),e); | |||||
| } | |||||
| if (user == null) { | |||||
| logger.error("用户不存在, userId: " + couponOrder.getcUserId()); | |||||
| throw new MallinkException(ErrorCode.USER_IS_EMPTY); | |||||
| } | |||||
| for (Long couponId:couponIds) { | |||||
| WxCoupon coupon = wxCouponMapper.selectById(couponId,couponOrder.getTenantId()); | |||||
| if (coupon == null) { | |||||
| logger.error("券不存在, couponId: " + couponId); | |||||
| throw new MallinkException(ErrorCode.COUPON_IS_EMPTY); | |||||
| } | |||||
| if (coupon.getStatus() == EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode()) { | |||||
| logger.error("券已下架, couponId: " + couponId); | |||||
| throw new MallinkException(ErrorCode.COUPON_IS_TAKE_OFF.getCode(), coupon.getTitle() + ErrorCode.COUPON_IS_TAKE_OFF.getMessage()); | |||||
| } | |||||
| if (coupon.getSendType() != 3 || coupon.getSalePrice() != 0) { | |||||
| logger.error("券 sendType 错误, couponId: " + couponId); | |||||
| throw new MallinkException(ErrorCode.COUPON_VALID_NOT_SUPPORTED.getCode(), coupon.getTitle() + ErrorCode.COUPON_IS_NOT_FREE.getMessage()); | |||||
| } | |||||
| Date curr = new Date(); | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| Long orderNumber = idWorker.nextId(); | |||||
| // body | |||||
| // tenant_id + merchant_id + title + subtitle | |||||
| String bodyStr = coupon.getTitle() + "/" + coupon.getSubTitle(); | |||||
| WxOrder record = new WxOrder(); | |||||
| record.setId(orderNumber); | |||||
| record.updateTenantInfo(coupon); | |||||
| record.setOrderNumber(orderNumber); | |||||
| record.setProductId(couponId); | |||||
| record.setType(EnumOrderType.COUPON.getCode()); | |||||
| record.setCUserId(user.getId()); | |||||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | |||||
| record.setPayment(coupon.getSalePrice()); | |||||
| record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); | |||||
| record.setDetail(bodyStr); | |||||
| record.setCreateDate(curr); | |||||
| record.setUpdateDate(curr); | |||||
| record.setComposeOrderId(0L); | |||||
| record.setComposeOrderType(EnumComposeOrder.PACKAGECOUPON.getCode()); | |||||
| record.setParentOrderId(couponOrder.getOrderId()); | |||||
| record.setCouponNumber(1); | |||||
| // 保存订单 | |||||
| try { | |||||
| wxOrderMapper.insert(record); | |||||
| } catch (Exception e) { | |||||
| logger.error("保存订单:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.ORDER_SAVE_ERR.getMessage()); | |||||
| } | |||||
| // 创建couponOrder | |||||
| try { | |||||
| createCouponOrder(record, user, coupon, null,EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST,null,null,couponOrder.getId()); | |||||
| } catch (Exception e) { | |||||
| logger.error("保存订单:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.getMessage()); | |||||
| } | |||||
| } | |||||
| } | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public WxCouponOrder couponOrderSuccess(WxOrder updateOrder) { | public WxCouponOrder couponOrderSuccess(WxOrder updateOrder) { | ||||
| @@ -1406,7 +1479,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // 创建couponOrder | // 创建couponOrder | ||||
| try { | try { | ||||
| return createCouponOrder(updateOrder, user, coupon, null,null,null,null); | |||||
| return createCouponOrder(updateOrder, user, coupon, null,null,null,null,null); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("创建券包:" + e.getMessage()); | logger.error("创建券包:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR); | throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR); | ||||
| @@ -1468,17 +1541,33 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| /** | /** | ||||
| * 下订单后操作 | * 下订单后操作 | ||||
| * | * | ||||
| * @param updateOrder | |||||
| * @param order | |||||
| * @param coupon | * @param coupon | ||||
| * @param user | * @param user | ||||
| */ | */ | ||||
| public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) { | |||||
| public void actionAfterCouponOrderSuccess(WxOrder order, WxCoupon coupon, WxCUserBasicInfo user) { | |||||
| if(EnumCouponType.COUPON_GIFT.getCode().equals(coupon.getType())){ | |||||
| WxCouponOrder couponOrderQ = new WxCouponOrder(); | |||||
| couponOrderQ.setOrderId(order.getId()); | |||||
| couponOrderQ.setCouponId(coupon.getId()); | |||||
| couponOrderQ.updateTenantInfo(order); | |||||
| List<WxCouponOrder> couponorderlist = wxCouponOrderMapper.findList(couponOrderQ); | |||||
| if (null != couponorderlist && couponorderlist.size() > 0 ) { | |||||
| WxCouponOrder couponOrder = couponorderlist.get(0); | |||||
| try { | |||||
| wxCouponOrderService.verify(couponOrder,null,EnumCouponVerifyType.VERIFY_AUTO); | |||||
| } catch (Exception e) { | |||||
| logger.error("系统券包核销异常:" + e.getMessage()); | |||||
| } | |||||
| } | |||||
| } | |||||
| /// TODO 晚上会定时打一下tag | /// TODO 晚上会定时打一下tag | ||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,updateOrder,null); | |||||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,order,null); | |||||
| // 交易发券 | // 交易发券 | ||||
| try { | try { | ||||
| wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.C_ORDER, updateOrder,EnumPayWay.PAY_WAY_NOT_UNPAY_TRADE); | |||||
| wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.C_ORDER, order,EnumPayWay.PAY_WAY_NOT_UNPAY_TRADE); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("订单发券:" + e.getMessage()); | logger.error("订单发券:" + e.getMessage()); | ||||
| } | } | ||||
| @@ -2166,7 +2255,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| // 5. 创建couponOrder | // 5. 创建couponOrder | ||||
| try { | try { | ||||
| proxy.createCouponOrder(record, user, coupon, couponPasswordId,payWay,null,null); | |||||
| proxy.createCouponOrder(record, user, coupon, couponPasswordId,payWay,null,null,null); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("couponOrder失败:" + e.getMessage(),e); | logger.error("couponOrder失败:" + e.getMessage(),e); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(),"["+coupon.getTitle()+"]保存券订单错误."+e.getMessage()); | throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(),"["+coupon.getTitle()+"]保存券订单错误."+e.getMessage()); | ||||
| @@ -897,8 +897,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| // 普通券, 修改订单状态 | // 普通券, 修改订单状态 | ||||
| try { | try { | ||||
| WxCouponOrder couponOrder = wxOrderService.couponOrderSuccess(order); | WxCouponOrder couponOrder = wxOrderService.couponOrderSuccess(order); | ||||
| orderFactory.getOrderAdapterService(record.getComposeOrder()).doOthersAfterPaySuccess(order, record,couponOrder); | |||||
| try{ | |||||
| orderFactory.getOrderAdapterService(record.getComposeOrder()).doOthersAfterPaySuccess(order, record,couponOrder); | |||||
| }catch (Exception e) { | |||||
| logger.error("doOthersAfterPaySuccess----error"+e.getMessage()); | |||||
| } | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| @@ -55,53 +55,8 @@ public class CouponPackageOrderAdapterService extends BaseBatchOrderAdapterServi | |||||
| @Override | @Override | ||||
| @Async | @Async | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||||
| @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false, rollbackFor = {Exception.class}) | |||||
| public void doOthersAfterPaySuccess(WxOrder order, WxPayOrder record, WxCouponOrder couponOrder) { | public void doOthersAfterPaySuccess(WxOrder order, WxPayOrder record, WxCouponOrder couponOrder) { | ||||
| WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(), couponOrder.getTenantId()); | |||||
| if (wxCoupon == null || !EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())) { | |||||
| logger.error("券包: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | |||||
| } | |||||
| if (StringUtils.isBlank(wxCoupon.getGiftList())){ | |||||
| logger.error("券包: coupon-" + wxCoupon.getId() + "数据异常" + "couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_DATE_ERROR); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) { | |||||
| logger.error("已过期: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()) { | |||||
| logger.error("已退款: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) { | |||||
| logger.error("已经核销过的券: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) { | |||||
| logger.error("券已被预核销: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); | |||||
| } | |||||
| //核销券包 | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 | |||||
| couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_C.getCode()); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| int num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder); | |||||
| if (num != 1) { | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| } | |||||
| try { | |||||
| List<Long> longs = JSON.parseArray(wxCoupon.getGiftList(), Long.class); | |||||
| //发券包子券 | |||||
| for (Long couponId:longs) { | |||||
| wxOrderService.sendFreeCouponToUser(couponOrder.getCUserId(),couponOrder,couponId,null,EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST,null,null); | |||||
| } | |||||
| } catch (MallinkException e) { | |||||
| throw e; | |||||
| } catch (Exception e){ | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SEND_ERROR.getCode(), couponOrder.getCouponName() + ErrorCode.COUPON_ORDER_SEND_ERROR.getMessage() ); | |||||
| } | |||||
| } | } | ||||
| @@ -109,5 +64,5 @@ public class CouponPackageOrderAdapterService extends BaseBatchOrderAdapterServi | |||||
| public String getPayProductName(WxCoupon lastCoupon) { | public String getPayProductName(WxCoupon lastCoupon) { | ||||
| return "[券包]"+lastCoupon.getTitle(); | return "[券包]"+lastCoupon.getTitle(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -730,7 +730,9 @@ | |||||
| <update id="offExpiriedCouponByMerchantStatus" parameterType="HashMap"> | <update id="offExpiriedCouponByMerchantStatus" parameterType="HashMap"> | ||||
| update wx_coupon c | update wx_coupon c | ||||
| SET c.status = 1, c.update_date = now() | SET c.status = 1, c.update_date = now() | ||||
| where c.status = 0 and c.tenant_id =#{tenantId} | |||||
| where c.status = 0 and c.tenant_id =#{tenantId} | |||||
| <!-- type=12 礼包卷没有门店 --> | |||||
| and c.type != 12 | |||||
| <if test=" null != validIds "> | <if test=" null != validIds "> | ||||
| and c.id not in | and c.id not in | ||||
| <foreach collection="validIds" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="validIds" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -24,6 +24,7 @@ | |||||
| <result column="send_merchant_user_id" jdbcType="INTEGER" property="sendMerchantUserId" /> | <result column="send_merchant_user_id" jdbcType="INTEGER" property="sendMerchantUserId" /> | ||||
| <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType" /> | <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType" /> | ||||
| <result column="compose_order_id" jdbcType="BIGINT" property="composeOrderId" /> | <result column="compose_order_id" jdbcType="BIGINT" property="composeOrderId" /> | ||||
| <result column="parent_coupon_order_id" jdbcType="BIGINT" property="parentCouponOrderId" /> | |||||
| <result column="coupon_number" jdbcType="BIGINT" property="couponNumber" /> | <result column="coupon_number" jdbcType="BIGINT" property="couponNumber" /> | ||||
| <result column="freight_price" jdbcType="INTEGER" property="freightPrice"/> | <result column="freight_price" jdbcType="INTEGER" property="freightPrice"/> | ||||
| @@ -35,7 +36,7 @@ | |||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, | `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, | ||||
| `verify_type`,`verify_remark`,`pay_vendor`,`send_merchant_id`,`send_merchant_user_id`,`compose_order_type`,`compose_order_id`,`coupon_number`, | |||||
| `verify_type`,`verify_remark`,`pay_vendor`,`send_merchant_id`,`send_merchant_user_id`,`compose_order_type`,`compose_order_id`,`parent_coupon_order_id`,`coupon_number`, | |||||
| `freight_price`,`shipping_type`,`shipping_address`,`shipping_status`,`delivery_info` | `freight_price`,`shipping_type`,`shipping_address`,`shipping_status`,`delivery_info` | ||||
| </sql> | </sql> | ||||
| @@ -121,6 +122,10 @@ | |||||
| and `compose_order_id` = #{composeOrderId} | and `compose_order_id` = #{composeOrderId} | ||||
| </if> | </if> | ||||
| <if test=" null != parentCouponOrderId "> | |||||
| and `parent_coupon_order_id` = #{parentCouponOrderId} | |||||
| </if> | |||||
| <if test=" null != shippingType "> | <if test=" null != shippingType "> | ||||
| and `shipping_type` = #{shippingType} | and `shipping_type` = #{shippingType} | ||||
| </if> | </if> | ||||
| @@ -29,11 +29,12 @@ | |||||
| <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType"/> | <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType"/> | ||||
| <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | ||||
| <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | ||||
| <result column="parent_order_id" jdbcType="BIGINT" property="parentOrderId"/> | |||||
| </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`,`payment_type`,`payment`,`payment_time`,`freight_price`,`order_status`,`create_date`,`update_date`,`detail`, | `id`,`order_number`,`tenant_id`,`parent_tenant_id`,`c_user_id`,`coupon_channel_id`,`product_id`,`type`,`payment_type`,`payment`,`payment_time`,`freight_price`,`order_status`,`create_date`,`update_date`,`detail`, | ||||
| `press_end_date`,`press_current_num`,`press_current_value`,`order_group_id`,`form_id`,`total_payment`,`compose_order_id`,`coupon_number`,`compose_order_type`,`shipping_type`,`shipping_address` | |||||
| `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` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -129,6 +130,10 @@ | |||||
| <if test=" null != shippingType "> | <if test=" null != shippingType "> | ||||
| and `shipping_type` = #{shippingType} | and `shipping_type` = #{shippingType} | ||||
| </if> | </if> | ||||
| <if test=" null != parentOrderId "> | |||||
| and `parent_order_id` = #{parentOrderId} | |||||
| </if> | |||||
| <if test=" null != statusS "> | <if test=" null != statusS "> | ||||
| and `order_status` in | and `order_status` in | ||||
| @@ -265,7 +270,7 @@ | |||||
| <sql id="allCUserOrderDetailColumns"> | <sql id="allCUserOrderDetailColumns"> | ||||
| 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.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date, | ||||
| c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.detail,c.remark,c.valid_start_date,c.valid_end_date,c.pick_start_date,c.pick_end_date,c.gift_list, | c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.detail,c.remark,c.valid_start_date,c.valid_end_date,c.pick_start_date,c.pick_end_date,c.gift_list, | ||||
| co.id as coupon_order_id,co.coupon_order_status,c.support_transfer,c.subsidy_num,o.compose_order_type,o.compose_order_id, | |||||
| co.id as coupon_order_id,co.coupon_order_status,c.support_transfer,c.subsidy_num,o.compose_order_type,o.compose_order_id,o.parent_order_id, | |||||
| o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,co.`shipping_status`,co.`delivery_info` | o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,co.`shipping_status`,co.`delivery_info` | ||||
| </sql> | </sql> | ||||
| @@ -351,6 +356,7 @@ | |||||
| <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType" /> | <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType" /> | ||||
| <result column="compose_order_id" jdbcType="BIGINT" property="composeOrderId" /> | <result column="compose_order_id" jdbcType="BIGINT" property="composeOrderId" /> | ||||
| <result column="coupon_number" jdbcType="INTEGER" property="couponNumber"/> | <result column="coupon_number" jdbcType="INTEGER" property="couponNumber"/> | ||||
| <result column="parent_order_id" jdbcType="BIGINT" property="parentOrderId" /> | |||||
| <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | ||||
| <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | ||||
| @@ -404,6 +410,7 @@ | |||||
| <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType" /> | <result column="compose_order_type" jdbcType="INTEGER" property="composeOrderType" /> | ||||
| <result column="compose_order_id" jdbcType="BIGINT" property="composeOrderId" /> | <result column="compose_order_id" jdbcType="BIGINT" property="composeOrderId" /> | ||||
| <result column="coupon_number" jdbcType="INTEGER" property="couponNumber"/> | <result column="coupon_number" jdbcType="INTEGER" property="couponNumber"/> | ||||
| <result column="parent_order_id" jdbcType="BIGINT" property="parentOrderId" /> | |||||
| <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | <result column="shipping_type" jdbcType="INTEGER" property="shippingType"/> | ||||
| <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | <result column="shipping_address" jdbcType="VARCHAR" property="shippingAddress"/> | ||||
| @@ -428,7 +435,7 @@ | |||||
| 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.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date, | ||||
| c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.valid_start_date,c.valid_end_date,c.pick_start_date,c.pick_end_date, | c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.tail_price,c.orig_price,c.unit,c.valid_start_date,c.valid_end_date,c.pick_start_date,c.pick_end_date, | ||||
| o.compose_order_type,o.compose_order_id, | o.compose_order_type,o.compose_order_id, | ||||
| o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address` | |||||
| o.`coupon_number`,o.`freight_price`,o.`shipping_type`,o.`shipping_address`,o.parent_order_id | |||||
| </sql> | </sql> | ||||
| <select id="findListOfCUser" parameterType="com.iformall.domain.po.WxOrder" resultMap="CVoResultMap"> | <select id="findListOfCUser" parameterType="com.iformall.domain.po.WxOrder" resultMap="CVoResultMap"> | ||||
| @@ -450,6 +457,9 @@ | |||||
| <if test=" null != composeOrderId "> | <if test=" null != composeOrderId "> | ||||
| and o.`compose_order_id` = #{composeOrderId} | and o.`compose_order_id` = #{composeOrderId} | ||||
| </if> | </if> | ||||
| <if test=" null != parentOrderId "> | |||||
| and o.`parent_order_id` = #{parentOrderId} | |||||
| </if> | |||||
| <if test="orderStatus != null"> | <if test="orderStatus != null"> | ||||
| AND o.order_status = #{orderStatus} | AND o.order_status = #{orderStatus} | ||||
| </if> | </if> | ||||
| @@ -467,6 +477,7 @@ | |||||
| where o.product_id = c.id and o.order_status in (0,2) | where o.product_id = c.id and o.order_status in (0,2) | ||||
| and o.compose_order_type = 0 | and o.compose_order_type = 0 | ||||
| and o.compose_order_id = 0 | and o.compose_order_id = 0 | ||||
| and o.parent_order_id = 0 | |||||
| <if test="cUserId != null"> | <if test="cUserId != null"> | ||||
| and o.c_user_id = #{cUserId} | and o.c_user_id = #{cUserId} | ||||
| </if> | </if> | ||||
| @@ -489,6 +500,7 @@ | |||||
| from wx_coupon c,wx_order o | from wx_coupon c,wx_order o | ||||
| where o.product_id = c.id and o.order_status in (1,3,4,5) | where o.product_id = c.id and o.order_status in (1,3,4,5) | ||||
| and o.compose_order_type in (0,1,2,3) | and o.compose_order_type in (0,1,2,3) | ||||
| and o.parent_order_id = 0 | |||||
| <if test="cUserId != null"> | <if test="cUserId != null"> | ||||
| and o.c_user_id = #{cUserId} | and o.c_user_id = #{cUserId} | ||||
| </if> | </if> | ||||
| @@ -512,6 +524,7 @@ | |||||
| where o.order_status in (0,2) | where o.order_status in (0,2) | ||||
| and o.compose_order_type in (1,2,3) | and o.compose_order_type in (1,2,3) | ||||
| and o.compose_order_id > 0 | and o.compose_order_id > 0 | ||||
| and o.parent_order_id = 0 | |||||
| <if test="cUserId != null"> | <if test="cUserId != null"> | ||||
| and o.c_user_id = #{cUserId} | and o.c_user_id = #{cUserId} | ||||
| </if> | </if> | ||||
| @@ -550,6 +563,10 @@ | |||||
| <if test=" null != composeOrderId "> | <if test=" null != composeOrderId "> | ||||
| and o.`compose_order_id` = #{composeOrderId} | and o.`compose_order_id` = #{composeOrderId} | ||||
| </if> | </if> | ||||
| <if test=" null != parentOrderId "> | |||||
| and o.`parent_order_id` = #{parentOrderId} | |||||
| </if> | |||||
| <if test="id != null"> | <if test="id != null"> | ||||
| and o.id = #{id} | and o.id = #{id} | ||||
| </if> | </if> | ||||