Просмотр исходного кода

[卡][修改]:支持免费卡及卡支付bug修复

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
7aeac8c024
3 измененных файлов: 52 добавлений и 19 удалений
  1. +22
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java
  2. +5
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java
  3. +25
    -18
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java

+ 22
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java Просмотреть файл

@@ -265,4 +265,26 @@ public class WxCoupon extends BaseEntity {
return false;
}

public boolean checkIsCard() {
if(type == null) {
return false;
}

if(type == EnumCouponType.CARD_MULTIMCH.getCode()) {
return true;
}
return false;
}

public boolean checkIsFree() {
if(salePrice!= null) {
if (salePrice.equals(0)) {
return true;
} else {
return false;
}
}
return false;
}

}

+ 5
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java Просмотреть файл

@@ -176,12 +176,16 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
updateCardInfo.setRemainingAmount(remaingAmount);
updateCardInfo.setRemainingShareFeeAmount(remain_real_pament);
updateCardInfo.setUpdateDate(curDate);
cardInfo.setRemainingAmount(remaingAmount);
cardInfo.setRemainingShareFeeAmount(remain_real_pament);
cardInfo.setUpdateDate(curDate);
// 7.1、消费后修改卡转赠状态
if (cardInfo.getSupportTransfer().equals(EnumCouponTransfer.YES.getCode())) {
updateCardInfo.setSupportTransfer(EnumCouponTransfer.NO.getCode());
cardInfo.setSupportTransfer(EnumCouponTransfer.NO.getCode());
}
try {
wxCardInfoMapper.updateByPrimaryKeySelective(cardInfo);
wxCardInfoMapper.updateByPrimaryKeySelective(updateCardInfo);
} catch (Exception e) {
logger.error("card info update error");
return new ResultData(ErrorCode.DB_FAIL.getCode(), "card info 更新出错!");


+ 25
- 18
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -643,7 +643,7 @@ public class WxOrderServiceImpl implements WxOrderService {
if (coupon.getValidType().equals(EnumValidStatus.VALID_RANGE.getCode()) ||
coupon.getType().equals(EnumCouponType.COUPON_TINGCHE.getCode())) {
valid_date = coupon.getValidEndDate();
if (coupon.getSalePrice() > 0) {
if (coupon.getSalePrice() > 0 && !coupon.checkIsCard()) {
// 有价券核销有效期不能大于分账过期时间
Date limit_date = DateUtils.getTimeAfterDays(limit_days, curr);
if (valid_date.after(limit_date)) {
@@ -651,7 +651,7 @@ public class WxOrderServiceImpl implements WxOrderService {
}
}
} else {
if (coupon.getSalePrice() > 0) {
if (coupon.getSalePrice() > 0 && !coupon.checkIsCard()) {
// 有价券核销有效期不能大于分账过期时间
if (coupon.getValidDays() < Constant.WX_LIMIT_DAYS) {
limit_days = coupon.getValidDays();
@@ -692,30 +692,37 @@ public class WxOrderServiceImpl implements WxOrderService {
/// 储值卡信息添加
if (isCard) {
WxPayOrder payOrder = null;
try {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.setTenantId(user.getTenantId());
payOrderQ.setOrderId(order.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
payOrder = wxPayOrderMapper.selectOne(payOrderQ);
} catch (Exception e) {
logger.error("payOrder not found:" + e.getMessage());
}

Integer fee = payOrder.getPayAmount() - payOrder.getShareAmount();

Integer fee = 0;
WxCardInfo cardInfo = new WxCardInfo();
cardInfo.setId(couponOrder.getId());
cardInfo.setTenantId(user.getTenantId());
cardInfo.setCouponId(order.getProductId());
cardInfo.setTransactionId(payOrder.getTransactionId());
cardInfo.setAmount(coupon.getPrice());
cardInfo.setSaleAmount(coupon.getSalePrice());
cardInfo.setRemainingAmount(coupon.getPrice());

if (!coupon.checkIsFree()) {
try {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.setTenantId(user.getTenantId());
payOrderQ.setOrderId(order.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
payOrder = wxPayOrderMapper.selectOne(payOrderQ);
} catch (Exception e) {
logger.error("payOrder not found:" + e.getMessage());
}
fee = payOrder.getPayAmount() - payOrder.getShareAmount();
cardInfo.setTransactionId(payOrder.getTransactionId());
cardInfo.setShareFeeAmount(payOrder.getShareAmount());
cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount());
cardInfo.setRateAmount(payOrder.getRateAmount());
} else {
cardInfo.setShareFeeAmount(0);
cardInfo.setRemainingShareFeeAmount(0);
cardInfo.setRateAmount(0);
}

cardInfo.setServiceFeeAmount(fee);
cardInfo.setShareFeeAmount(payOrder.getShareAmount());
cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount());
cardInfo.setRateAmount(payOrder.getRateAmount());
cardInfo.setCreateDate(curr);
cardInfo.setUpdateDate(curr);
cardInfo.setSupportTransfer(coupon.getSupportTransfer());


Загрузка…
Отмена
Сохранить