diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java index 28eb93ad3..224e2549c 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java @@ -3,6 +3,7 @@ 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.WxCouponPassword; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.domain.vo.WxCouponOrderCVo; @@ -10,6 +11,7 @@ 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.utils.Constant; import com.iformall.utils.DateUtils; @@ -35,7 +37,7 @@ public class WxCardInfoController extends BaseController { @Autowired private WxCardInfoService wxCardInfoService; - + @ApiOperation(value = "查询卡信息") @GetMapping("detail") @ApiImplicitParams({ @@ -46,13 +48,22 @@ public class WxCardInfoController extends BaseController { } String cardIdStr = dynamicId; boolean isECard = false; + WxCardInfo cardInfo = null; 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)); + }else { + Long couponPasswordId = Long.parseLong(cardIdStr); + //实体卡 + WxCardInfo cardQ = new WxCardInfo(); + cardQ.updateTenantInfo(getTenantInfo()); + cardQ.setCouponPasswordId(couponPasswordId); + cardInfo = wxCardInfoService.getByCouponPasswordId(couponPasswordId, getTenantInfo()); } - WxCardInfo cardInfo = wxCardInfoService.getById(Long.parseLong(cardIdStr)); + if (null == cardInfo) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java index fa6bd68ed..1ca0285a8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCardInfo; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponPassword; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCardVo; import javax.servlet.http.HttpServletRequest; @@ -29,6 +30,8 @@ public interface WxCardInfoService { */ WxCardInfo getById(Long id); + WxCardInfo getByCouponPasswordId(Long couponPasswordId,TenantEntity tenantEntity); + /** * 保存或更新实体 * diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java index 60c5cd3c0..db31b06a1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java @@ -284,7 +284,7 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { @Override public WxCardInfo cardCreateByOffline(WxCouponPassword couponPassword,WxCoupon coupon) { //如果没有卡,则直接创建一个 - WxCardInfo cardInfo = this.getById(couponPassword.getId()); + WxCardInfo cardInfo = this.getByCouponPasswordId(couponPassword.getId(),couponPassword); if (null == cardInfo) { long time = System.currentTimeMillis() + RedisLock.TIMEOUT; String timeStr = String.valueOf(time); @@ -309,6 +309,8 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { updateCPwd.setStatus(EnumCouponPasswordStatus.USED.getCode()); couponPasswordMapper.updateById(updateCPwd); } + cardInfo.setCouponPasswordId(couponPassword.getId()); + cardInfo.setCouponPassword(couponPassword.getPassword()); cardInfo.setCUserId(Constant.defaultCUserId); cardInfo.setOwnerUserId(Constant.defaultCUserId); cardInfo.setServiceFeeAmount(0); @@ -327,4 +329,16 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { wxCardInfoMapper.updateStatus(cardInfo); } + @Override + public WxCardInfo getByCouponPasswordId(Long couponPasswordId, TenantEntity tenantEntity) { + WxCardInfo cardQ = new WxCardInfo(); + cardQ.updateTenantInfo(cardQ); + cardQ.setCouponPasswordId(couponPasswordId); + List infoList = wxCardInfoMapper.findList(cardQ); + if (null != infoList && infoList.size() > 0 ) { + return infoList.get(0); + } + return null; + } + }