From d9cc8e9f18ae3ddffdff0129499a977f2487e3f5 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Fri, 24 Feb 2023 10:55:45 +0800 Subject: [PATCH] fix card --- .../controller/WxCardPayController.java | 16 +++++++++++++ .../controller/WxCouponOrderController.java | 24 +++++++++++++++++++ .../java/com/iformall/common/ErrorCode.java | 1 + .../iformall/common/SysConfigConstant.java | 1 + 4 files changed, 42 insertions(+) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java index 8655a295a..1be0ade73 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -6,6 +6,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxCardSpendVo; +import com.iformall.domain.vo.WxCouponOrderCVo; import com.iformall.enums.EnumCardInfoStatus; import com.iformall.enums.EnumCouponStatus; import com.iformall.enums.EnumCreditLockedStatus; @@ -23,6 +24,8 @@ import com.iformall.service.WxCouponService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxOrderService; import com.iformall.utils.Constant; +import com.iformall.utils.DateUtils; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -34,6 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -122,6 +126,18 @@ public class WxCardPayController extends BaseController { logger.error("cardId不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "cardId不能为空"); } + + String _decodeCouponOrderId = WxCouponOrderCVo.getDecodeExpiredCouponOrderId(cardIdStr); + if (_decodeCouponOrderId.contains(WxCouponOrderCVo.arg)) { + String[] decodeids = _decodeCouponOrderId.split(WxCouponOrderCVo.arg); + cardIdStr = decodeids[0]; + String expiredtimeStr = decodeids[1]; + Date expiredtime = DateUtils.string2Date(expiredtimeStr).getTime(); + if (expiredtime.before(new Date())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"码已失效,请更新二维码后重试"); + } + } + Long cUserId = null; try { cUserId = Long.valueOf(cUserIdStr); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 4b531f32d..ac28d4753 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -358,6 +358,30 @@ public class WxCouponOrderController extends BaseController { } return wxCouponOrderService.cardDetailCUserVo(memberId,getTenantInfo(), couponOrderId); } + + @ApiOperation(value = "手动核销方式,电子卡获取动态id") + @GetMapping("cardDynamicId") + @ApiImplicitParams({ + @ApiImplicitParam(name = "cardId", value = "卡ID", dataType = "string", paramType = "query", required = true), + @ApiImplicitParam(name = "cardTenantId", value = "券tenantID", dataType = "string", paramType = "query", required = false) + }) + public ResultData cardDynamicId(String cardId,String cardTenantId) { + + if (StringUtils.isBlank(cardId) || cardId.equalsIgnoreCase(Constant.UNDEFINED)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + + SysConfig sysConfig = sysConfigService.getByKey(SysConfigConstant.card_vierfy_seconds_key, getTenantInfo()); + if (null == sysConfig || StringUtils.isBlank(sysConfig.getConfigItemValue())) { + return new ResultData(ErrorCode.SYS_CONFIG_CARD_VIERFY_SECODES_UNSET); + } + + Map retmap = new HashMap(); + retmap.put("dynamicId", WxCouponOrderCVo.calcuteExpiredCouponOrderId(cardId,Integer.parseInt(sysConfig.getConfigItemValue()))); + retmap.put("expiredSeconds", Integer.parseInt(sysConfig.getConfigItemValue())); + retmap.put("cardTenantId", cardTenantId); + return new ResultData(retmap); + } @ApiOperation(value = "卡转赠领取") @PostMapping("cardAccept") diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index e1c740c4a..c9e904ac5 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -35,6 +35,7 @@ public enum ErrorCode{ * 系统配置 */ SYS_CONFIG_VIERFY_SECODES_UNSET(1030,"系统设置【券码刷新时间】未配置"), + SYS_CONFIG_CARD_VIERFY_SECODES_UNSET(1030,"系统设置【电子卡码刷新时间】未配置"), SYS_CONFIG_DEFAULT_MERCHANT_B_USER_UNSET(1031,"系统配置【外部设备核销默认商户员工编号】未配置"), /** diff --git a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java index f02d3de56..be46607cf 100644 --- a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java +++ b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java @@ -3,6 +3,7 @@ package com.iformall.common; public class SysConfigConstant { public static final String vierfy_seconds_key="vierfySeconds"; + public static final String card_vierfy_seconds_key="cardVierfySeconds"; public static final String default_merchant_b_user = "defaultMerchantBUserId"; public static final String coupon_detail_show_selled = "couponDetailShowSelled"; }