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; } 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 {