From 75623fbac011ebba947c323dadf2321476193341 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 11 Jan 2020 16:51:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[token][=E6=9B=B4=E6=96=B0]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysUserTokenServiceImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/SysUserTokenServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/SysUserTokenServiceImpl.java index b23d97f86..fd46426a0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/SysUserTokenServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/SysUserTokenServiceImpl.java @@ -50,12 +50,13 @@ public class SysUserTokenServiceImpl implements SysUserTokenService { //保存token sysUserTokenMapper.insert(tokenEntity); }else{ - tokenEntity.setToken(token); - tokenEntity.setUpdateTime(now); - tokenEntity.setExpireTime(expireTime); - - //更新token - sysUserTokenMapper.updateById(tokenEntity); + if (tokenEntity.getExpireTime().before(now)) { + tokenEntity.setToken(token); + tokenEntity.setUpdateTime(now); + tokenEntity.setExpireTime(expireTime); + //更新token + sysUserTokenMapper.updateById(tokenEntity); + } } return tokenEntity; } From 835db27b51a6491b2d8ed3f07f9016f665626c80 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 11 Jan 2020 16:52:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=88=B8=E8=BF=87=E6=9C=9F=E6=97=B6?= =?UTF-8?q?=E9=97=B4][=E4=BF=AE=E6=94=B9]:=E6=9C=AA=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E5=88=86=E8=B4=A6=E6=97=B6=E6=9C=89=E4=BB=B7=E5=88=B8=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=97=B6=E9=97=B4bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxOrderServiceImpl.java | 75 ++++++++++--------- 1 file changed, 41 insertions(+), 34 deletions(-) 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 0dbee96e3..3ec347313 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -724,21 +724,47 @@ public class WxOrderServiceImpl implements WxOrderService { Date curr = new Date(); Date valid_date = null; int limit_days = Constant.WX_LIMIT_DAYS; + WxPayAccount payAccount = null; + WxPayAccount payAccountQ = new WxPayAccount(); + payAccountQ.updateTenantInfo(order); + try { + payAccount = wxPayAccountMapper.selectOne(new QueryWrapper<>(payAccountQ)); + } catch (Exception e) { + logger.error("获取payAccount error: " + order.getTenantId()); + } + WxPayOrder payOrder = null; + if (coupon.getSalePrice() > 0) { + // 有价券获取payOrder,以备后续使用 + try { + WxPayOrder payOrderQ = new WxPayOrder(); + payOrderQ.updateTenantInfo(order); + payOrderQ.setOrderId(order.getId()); + payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); + payOrder = wxPayOrderMapper.selectOne(new QueryWrapper(payOrderQ)); + } catch (Exception e) { + logger.error("payOrder not found:" + e.getMessage()); + } + } + if (coupon.getValidType().equals(EnumValidStatus.VALID_RANGE.getCode()) || coupon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) { valid_date = coupon.getValidEndDate(); if (coupon.getSalePrice() > 0 && !coupon.checkIsCard()) { - // 有价券核销有效期不能大于分账过期时间 - Date limit_date = DateUtils.getTimeAfterDays(limit_days, curr); - if (valid_date.after(limit_date)) { - valid_date = limit_date; + if (payOrder != null && payOrder.getShareAmount() != null) { + // 分账有价券核销有效期不能大于分账过期时间 + Date limit_date = DateUtils.getTimeAfterDays(limit_days, curr); + if (valid_date.after(limit_date)) { + valid_date = limit_date; + } } } } else { if (coupon.getSalePrice() > 0 && !coupon.checkIsCard()) { - // 有价券核销有效期不能大于分账过期时间 - if (coupon.getValidDays() < Constant.WX_LIMIT_DAYS) { - limit_days = coupon.getValidDays(); + if (payOrder != null && payOrder.getShareAmount() != null) { + // 分账有价券核销有效期不能大于分账过期时间 + if (coupon.getValidDays() < Constant.WX_LIMIT_DAYS) { + limit_days = coupon.getValidDays(); + } } } else { limit_days = coupon.getValidDays(); @@ -775,7 +801,6 @@ public class WxOrderServiceImpl implements WxOrderService { /// 储值卡信息添加 if (isCard) { - WxPayOrder payOrder = null; Integer fee = 0; WxCardInfo cardInfo = new WxCardInfo(); cardInfo.setId(couponOrder.getId()); @@ -784,18 +809,8 @@ public class WxOrderServiceImpl implements WxOrderService { cardInfo.setAmount(coupon.getPrice()); cardInfo.setSaleAmount(coupon.getSalePrice()); cardInfo.setRemainingAmount(coupon.getPrice()); - if (!coupon.checkIsFree()) { // 有价卡 - try { - WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.updateTenantInfo(order); - payOrderQ.setOrderId(order.getId()); - payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); - payOrder = wxPayOrderMapper.selectOne(new QueryWrapper(payOrderQ)); - } catch (Exception e) { - logger.error("payOrder not found:" + e.getMessage()); - } cardInfo.setTransactionId(payOrder.getTransactionId()); if (payOrder.getShareAmount() != null) { // 开启分账 @@ -805,23 +820,15 @@ public class WxOrderServiceImpl implements WxOrderService { cardInfo.setRateAmount(payOrder.getRateAmount()); } else { // 未开启分账 - WxPayAccount payAccount = null; - WxPayAccount payAccountQ = new WxPayAccount(); - payAccountQ.updateTenantInfo(order); - try { - payAccount = wxPayAccountMapper.selectOne(new QueryWrapper<>(payAccountQ)); - fee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRate(), false); - Integer shareAmount = payOrder.getPayAmount() - fee; - cardInfo.setShareFeeAmount(shareAmount); - cardInfo.setRemainingShareFeeAmount(shareAmount); - if (payAccount.getRealRate() != null) { - int iRealChargeFee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRealRate(), true); - if (fee > iRealChargeFee) { - cardInfo.setRateAmount(fee - iRealChargeFee); - } + fee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRate(), false); + Integer shareAmount = payOrder.getPayAmount() - fee; + cardInfo.setShareFeeAmount(shareAmount); + cardInfo.setRemainingShareFeeAmount(shareAmount); + if (payAccount.getRealRate() != null) { + int iRealChargeFee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRealRate(), true); + if (fee > iRealChargeFee) { + cardInfo.setRateAmount(fee - iRealChargeFee); } - } catch (Exception e) { - logger.error("获取payAccount error: " + cardInfo.getTenantId()); } } } else {