From eb1c502de981f5164bd2c5bb40d76903bd19b603 Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 15 Oct 2019 13:50:42 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E6=94=B9][=E6=89=8B=E7=BB=AD?= =?UTF-8?q?=E8=B4=B9][=E5=BC=80=E5=8F=91]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxBillDailyServiceImpl.java | 7 +++++- .../impl/WxBillDepositServiceImpl.java | 7 +++++- .../impl/WxBillOtherDepositServiceImpl.java | 7 +++++- .../service/impl/WxBillOtherServiceImpl.java | 7 +++++- .../WxBillPropertyDepositServiceImpl.java | 7 +++++- .../impl/WxBillPropertyServiceImpl.java | 21 ++++++------------ .../service/impl/WxBillRentServiceImpl.java | 22 ++++++------------- .../service/impl/WxFlowServiceImpl.java | 3 +-- .../service/impl/WxOrderServiceImpl.java | 19 +++++++++++++++- 9 files changed, 63 insertions(+), 37 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 13dfe4f80..81e011b0a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -199,6 +199,7 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { wxBillDaily.setUpdatetime(date); wxBillDaily.setPayWay(record.getPayWay()); wxBillDaily.setPriceDetail(record.getPriceDetail()); + wxBillDaily.setServiceChargePay(record.getServiceChargePay()); try { wxBillDailyMapper.updateById(wxBillDaily); } catch (Exception e) { @@ -211,7 +212,11 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java index 98a37c45c..4828a712b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java @@ -164,6 +164,7 @@ public class WxBillDepositServiceImpl implements WxBillDepositService { wxBillDeposit.setPayDate(date); wxBillDeposit.setUpdatetime(date); wxBillDeposit.setPayWay(record.getPayWay()); + wxBillDeposit.setServiceChargePay(record.getServiceChargePay()); try { wxBillDepositMapper.updateById(wxBillDeposit); } catch (Exception e) { @@ -176,7 +177,11 @@ public class WxBillDepositServiceImpl implements WxBillDepositService { String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java index 92d24695d..bcd82a94b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java @@ -195,6 +195,7 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService wxBillOtherDeposit.setUpdatetime(date); wxBillOtherDeposit.setPayWay(record.getPayWay()); wxBillOtherDeposit.setComments(record.getComments()); + wxBillOtherDeposit.setServiceChargePay(record.getServiceChargePay()); try { wxBillOtherDepositMapper.updateById(wxBillOtherDeposit); } catch (Exception e) { @@ -207,7 +208,11 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java index 9064cf270..97d6abcb4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java @@ -196,6 +196,7 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { wxBillOther.setPayWay(record.getPayWay()); wxBillOther.setComments(record.getComments()); wxBillOther.setName(record.getName()); + wxBillOther.setServiceChargePay(record.getServiceChargePay()); try { wxBillOtherMapper.updateById(wxBillOther); } catch (Exception e) { @@ -208,7 +209,11 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java index 578423b0d..ee4866fb2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java @@ -163,6 +163,7 @@ public class WxBillPropertyDepositServiceImpl implements WxBillPropertyDepositSe wxBillDeposit.setPayDate(date); wxBillDeposit.setUpdatetime(date); wxBillDeposit.setPayWay(record.getPayWay()); + wxBillDeposit.setServiceChargePay(record.getServiceChargePay()); try { wxBillPropertyDepositMapper.updateById(wxBillDeposit); } catch (Exception e) { @@ -175,7 +176,11 @@ public class WxBillPropertyDepositServiceImpl implements WxBillPropertyDepositSe String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java index acdf21e82..12b5c1eaa 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -179,6 +179,7 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { property.setPayDate(record.getPayDate()); property.setUpdatetime(date); property.setPayWay(record.getPayWay()); + property.setServiceChargePay(record.getServiceChargePay()); try { wxBillPropertyMapper.updateById(property); } catch (Exception e) { @@ -191,7 +192,12 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setDetails(record.getServiceChargePayBefore()+"元变更为" +record.getServiceChargePayUpdate()+"元"); + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); @@ -358,19 +364,6 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { billAction.setUpdatetime(new Date()); wxBillActionMapper.insert(billAction); } - if(record.getServiceChargePayUpdate() != null) { - record.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100); - - billAction = new WxBillAction(); - billAction.setId(idWorker.nextId()); - billAction.setCreatetime(new Date()); - billAction.setUserName("系统端"); - billAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); - billAction.setBillId(record.getId()); - billAction.setDetails(record.getServiceChargePayBefore()+"元变更为" +record.getServiceChargePayUpdate()+"元"); - billAction.setUpdatetime(new Date()); - wxBillActionMapper.insert(billAction); - } wxBillPropertyMapper.updateById(record); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java index e72e87900..5efba1555 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -182,6 +182,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { wxBillRent.setPayDate(record.getPayDate()); wxBillRent.setUpdatetime(date); wxBillRent.setPayWay(record.getPayWay()); + wxBillRent.setServiceChargePay(record.getServiceChargePay()); try { wxBillRentMapper.updateById(wxBillRent); } catch (Exception e) { @@ -194,7 +195,12 @@ public class WxBillRentServiceImpl implements WxBillRentService { String message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); String price = new BigDecimal(record.getPay() - addpay).divide(new BigDecimal(100)).toPlainString(); wxBillAction.setDetails(message + price + "元"); - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + if(record.getServiceChargePay() != null){ + wxBillAction.setDetails(record.getServiceChargePayBefore()+"元变更为" +record.getServiceChargePayUpdate()+"元"); + wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); + }else{ + wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); + } wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); @@ -471,20 +477,6 @@ public class WxBillRentServiceImpl implements WxBillRentService { billAction.setUpdatetime(new Date()); wxBillActionMapper.insert(billAction); } - if(record.getServiceChargePayUpdate() != null) { - record.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100); - - billAction = new WxBillAction(); - billAction.setId(idWorker.nextId()); - billAction.setCreatetime(new Date()); - billAction.setUserName("系统端"); - billAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); - billAction.setBillId(record.getId()); - billAction.setDetails(record.getServiceChargePayBefore()+"元变更为" +record.getServiceChargePayUpdate()+"元"); - billAction.setUpdatetime(new Date()); - wxBillActionMapper.insert(billAction); - } - wxBillRentMapper.updateById(record); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index b8bbf0041..d0114473c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -18,7 +18,6 @@ import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import com.iformall.utils.Constant; -import com.iformall.utils.EventUtil; import com.iformall.utils.JsonUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.map.HashedMap; @@ -147,7 +146,7 @@ public class WxFlowServiceImpl implements WxFlowService { //如果审批完成,而且是补录直接改为已签约状态(普通需要绑定商户才是已签约) WxRentContract record = wxRentContractMapper.selectById(businessId); - if(record.getMerchantId()!=null && EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { + if(record != null && record.getMerchantId()!=null && EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { wxRentContractService.updateRentContractStatus(businessId); } }else if(EnumFlowContractType.PROPERTY.getCode().equals(contractType) || EnumFlowContractType.PROPERTY_POINT.getCode().equals(contractType)){ 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 9e8d07d93..799144758 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1586,6 +1586,13 @@ public class WxOrderServiceImpl implements WxOrderService { public WxOrder saveNoFreeOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, boolean isPress, Long orderGroupId, String formId) { // 1. check user info and coupon info userCouponMerchantCheck(user, coupon); + if (coupon.checkIsCreditCoupon()) { + //若用户剩余积分比积分售价低则不能支付 + if (user.getCredit() == null || user.getCredit() < coupon.getCreditPrice()) { + throw new MallinkException(ErrorCode.CREDIT_NOT_ENOUGH); + } + } + // 2. 拼团检查 if (isOrderGroup(orderGroupId)) { checkOrderGroup(user, orderGroupId); @@ -1594,6 +1601,15 @@ public class WxOrderServiceImpl implements WxOrderService { // 3. 减库存操作 stockReduce(user, coupon, couponIdStr); + // 3. 当积分券或者积分停车券时 则进行积分支付 + Integer orderType; + if (coupon.checkIsCreditCoupon()) { + creditPay(user, coupon); + orderType = EnumOrderType.CREDIT.getCode(); + } else { + orderType = EnumOrderType.COUPON.getCode(); + } + // 4. 保存订单 Long orderNumber; // 4.1 券价格 @@ -1614,6 +1630,7 @@ public class WxOrderServiceImpl implements WxOrderService { // 4.2 保存订单 WxOrder record = new WxOrder(); + record.setType(orderType); record.setCouponChannelId(couponChannelId); record.setOrderGroupId(orderGroupId); record.setFormId(formId); @@ -1689,7 +1706,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setTenantId(user.getTenantId()); record.setOrderNumber(orderNumber); record.setProductId(coupon.getId()); - record.setType(EnumOrderType.COUPON.getCode()); + //record.setType(EnumOrderType.COUPON.getCode()); record.setCUserId(user.getId()); record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); record.setDetail(bodyStr);