From da9b7c5f6dfa05a41a96e5ed97c50b84d6d4a8c2 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Tue, 28 Feb 2023 11:52:52 +0800 Subject: [PATCH] fix card --- .../controller/WxCardInfoController.java | 55 ++++++++++++++----- .../controller/WxCardPayController.java | 2 - 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java index 5c05affa3..2d3232693 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java +++ b/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); } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java index 593d4cf93..ba1ed8435 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/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()) {