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

fix card

release_toaliyun_real
lin 3 лет назад
Родитель
Сommit
da9b7c5f6d
2 измененных файлов: 41 добавлений и 16 удалений
  1. +41
    -14
      mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java
  2. +0
    -2
      mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java

+ 41
- 14
mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java Просмотреть файл

@@ -3,15 +3,18 @@ package com.iformall.controller;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCardInfo;
import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponPassword;
import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.vo.WxCardSpendVo;
import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.enums.EnumCardInfoType;
import com.iformall.exception.MallinkException;
import com.iformall.pay.WxPayConstant;
import com.iformall.service.PosBrunService;
import com.iformall.service.WxCardInfoService;
import com.iformall.service.WxCouponPasswordService;
import com.iformall.service.WxCouponService;
import com.iformall.utils.Constant;
import com.iformall.utils.DateUtils;

@@ -38,6 +41,12 @@ public class WxCardInfoController extends BaseController {
@Autowired
private WxCardInfoService wxCardInfoService;
@Autowired
private WxCouponPasswordService couponPasswordService;
@Autowired
private WxCouponService wxCouponService;
@ApiOperation(value = "查询卡信息")
@GetMapping("detail")
@ApiImplicitParams({
@@ -49,30 +58,48 @@ public class WxCardInfoController extends BaseController {
String cardIdStr = dynamicId;
boolean isECard = false;
WxCardInfo cardInfo = null;
Map map = new HashMap();
String _decodeCouponOrderId = WxCouponOrderCVo.getDecodeExpiredCouponOrderId(dynamicId);
if (_decodeCouponOrderId.contains(WxCouponOrderCVo.arg)) {
String[] decodeids = _decodeCouponOrderId.split(WxCouponOrderCVo.arg);
cardIdStr = decodeids[0];
isECard = true;
cardInfo = wxCardInfoService.getById(Long.parseLong(cardIdStr));
if (null == cardInfo) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr);
}
map.put("cardId", cardInfo.getId());
map.put("amount", cardInfo.getAmount());
map.put("remainAmount", cardInfo.getRemainingAmount());
map.put("cardType", cardInfo.getType());
}else {
Long couponPasswordId = Long.parseLong(cardIdStr);
//实体卡
cardInfo = wxCardInfoService.getByCouponPasswordId(couponPasswordId, getTenantInfo());
}
if (null == cardInfo) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr);
}
Map map = new HashMap();
if (isECard) {
map.put("cardId", cardInfo.getId());
}else {
map.put("cardId", cardInfo.getCouponPasswordId());
WxCouponPassword password = couponPasswordService.getById(couponPasswordId);
if (null == password) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr);
}
cardInfo = wxCardInfoService.getByCouponPasswordId(couponPasswordId, password);
if (null != cardInfo) {
map.put("cardId", cardInfo.getId());
map.put("amount", cardInfo.getAmount());
map.put("remainAmount", cardInfo.getRemainingAmount());
map.put("cardType", cardInfo.getType());
}else {
//第一次刷卡的时候没有cardInfo
WxCoupon cq = new WxCoupon();
cq.updateTenantInfo(password);
cq.setId(password.getCouponId());
WxCoupon coupon = wxCouponService.findById(cq);
if (null == coupon) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "卡未查询到券:"+cardIdStr);
}
map.put("cardId", couponPasswordId);
map.put("amount", coupon.getPrice());
map.put("remainAmount", coupon.getPrice());
map.put("cardType", EnumCardInfoType.CARD.getCode());
}
}
map.put("amount", cardInfo.getAmount());
map.put("remainAmount", cardInfo.getRemainingAmount());
map.put("cardType", cardInfo.getType());
return new ResultData(map);
}
}

+ 0
- 2
mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java Просмотреть файл

@@ -218,14 +218,12 @@ public class WxCardPayController extends BaseController {
}
}
if (StringUtils.isBlank(totalFeeStr) || totalFeeStr.equalsIgnoreCase(Constant.UNDEFINED)) {
logger.error("totalFee不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "totalFee不能为空");
}

BigDecimal totalFee = new BigDecimal(totalFeeStr);
totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
Integer payment = totalFee.multiply(new BigDecimal(100)).intValue();

Long merchantId = merchantBUser.getMerchantId();
if(payment > cardInfo.getRemainingAmount()) {


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