From 79370c882f80e064c7e408ef67f7abf10583e56e Mon Sep 17 00:00:00 2001 From: gongbiao Date: Thu, 28 Mar 2019 14:49:24 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=8B=BC=E5=9B=A2][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BE=85=E6=94=AF=E4=BB=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/enums/EnumOrderStatus.java | 4 +++- .../service/impl/WxOrderGroupServiceImpl.java | 2 +- .../iformall/service/impl/WxOrderServiceImpl.java | 14 ++++++++++---- .../service/impl/WxPayOrderServiceImpl.java | 4 ++-- .../main/resources/mapper/WxOrderGroupMapper.xml | 7 +++---- .../src/main/resources/mapper/WxOrderMapper.xml | 2 +- 6 files changed, 20 insertions(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java index cf74d9613..401e56a9a 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java @@ -21,7 +21,9 @@ public enum EnumOrderStatus { ORDER_STATUS_COOPERATING_COMPLETE(11, "拼团完成"), ORDER_STATUS_COOPERATING_OVERTIME(12, "拼团已过期"), ORDER_STATUS_COOPERATING_CANCEL(13, "拼团失败"), - ORDER_STATUS_COOPERATING_FAILD(14, "参团失败") + ORDER_STATUS_COOPERATING_FAILD(14, "参团失败"), + ORDER_STATUS_COOPERATING_UNPAID(15, "拼团待付款") + ; public static EnumOrderStatus getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java index 0ace5279c..d8581a99a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java @@ -272,7 +272,7 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { public void updateGroupStatus(WxOrderGroup wxOrderGroup) { Long id = wxOrderGroup.getId(); WxOrderGroup group = wxOrderGroupMapper.selectByPrimaryKey(id); - if (group.getStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode())) { + if (group != null && group.getStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode())) { WxCoupon wxCoupon = wxCouponMapper.selectByPrimaryKey(wxOrderGroup.getCouponId()); Integer status = wxCoupon.getStatus(); if (status.equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode())) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 913e3b6c4..577e0fe53 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -188,6 +188,7 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); + statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); orderQ.setStatusS(statusS); return wxOrderMapper.countList(orderQ); } catch (Exception e) { @@ -374,14 +375,19 @@ public class WxOrderServiceImpl implements WxOrderService { Date curr = new Date(); int payment = coupon.getSalePrice(); + Integer orderStatus = EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode(); if (isPress || coupon.getType().equals(EnumCouponType.COUPON_PRESS.getCode())) { // 砍价券 初始是全价即面额 payment = coupon.getPrice(); } - if (orderGroupId == null && coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { - // 拼团券 初始是全价即面额 - payment = coupon.getPrice(); + if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { + if (orderGroupId == null) { + // 拼团券 初始是全价即面额 + payment = coupon.getPrice(); + } else { + orderStatus = EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode(); + } } final IdWorker idWorker = IdWorker.get(); @@ -408,7 +414,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setcUserId(user.getId()); record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); record.setPayment(payment); - record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); + record.setOrderStatus(orderStatus); record.setDetail(bodyStr); record.setCreateDate(curr); record.setUpdateDate(curr); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 8de8d9715..dfe347646 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -134,8 +134,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.COUPON_CHANNEL_IS_TAKE_OFF); } - if (order.getPressEndDate() == null) { - // 非砍价券 + if (!wxCoupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode()) && order.getPressEndDate() == null) { + // 非砍价券且非拼团券 if (order.getOrderStatus() == EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()) { logger.error("订单已支付: " + order.toString() + " , payWay: " + payWay.toString()); throw new MallinkException(ErrorCode.ORDER_HAD_PAY); diff --git a/mallinkService/src/main/resources/mapper/WxOrderGroupMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderGroupMapper.xml index dfd130302..80fb261ef 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderGroupMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderGroupMapper.xml @@ -70,15 +70,14 @@ select o.id orderId,o.order_status orderStatus,o.order_group_id orderGroupId,c.title,c.sub_title subTitle, c.sale_price salePrice,c.cover_img coverImg,g.remain_people remainPeople,c.id couponId,g.expired_date expiredDate,g.status,g.user_id firstUser,u.nick_name nickName,u.avatar_url avatarUrl,o.tenant_id tenantId, - cc.id couponChannelId,c.press_limit_num pressLimitNum,c.status couponStatus + o.coupon_channel_id couponChannelId,c.press_limit_num pressLimitNum,c.status couponStatus from wx_order o left join wx_coupon c on o.product_id=c.id left join wx_order_group g on o.order_group_id=g.id left join wx_c_user u on o.c_user_id=u.id - left join wx_coupon_channel cc on c.id=cc.coupon_id where o.tenant_id=#{tenantId} - and o.c_user_id=#{cUserId} and o.order_status not in(0,1,2,3,14) + and o.c_user_id=#{cUserId} and o.id=#{id} @@ -86,7 +85,7 @@ and o.order_group_id=#{orderGroupId} - and o.order_group_id!=0 and g.status in(10,11,12,13) + and o.order_status in(10,11,12,13,15) order by o.id desc,o.order_status diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index d6d3a9204..bdc0d8d61 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -258,7 +258,7 @@ from wx_coupon c,wx_order o left join wx_coupon_order co on co.order_id = o.id left join wx_coupon_action_log cal on cal.coupon_order_id = co.id - where o.product_id = c.id and c.type!=9 + where o.product_id = c.id and o.c_user_id = #{cUserId}