From bfb77d9d5b058e6b69c07d557c2665bdccc07a37 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 11 Mar 2023 09:06:47 +0800 Subject: [PATCH] fix card --- .../WxCouponPasswordController.java | 40 ++++++++++++++++--- .../enums/EnumCouponPasswordPayCheck.java | 36 +++++++++++++++++ 2 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumCouponPasswordPayCheck.java diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java index 5fc0877ad..6fb625f51 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java @@ -42,30 +42,60 @@ public class WxCouponPasswordController extends BaseController { @Autowired OrderFactory orderFactory; - @ApiOperation(value = "根据卡密领卡", notes = "{\"password\":\"String\",\"formId\":\"String\"}") + @ApiOperation(value = "根据卡密领卡", notes = "{\"password\":\"String\",\"formId\":\"String\",\"payCheck\":\"String\"}") @PostMapping("getCouponOrderByPassword") public ResultData getCouponOrderByPassword(@RequestBody Map params) { logger.info("getCouponOrderByPassword: " + getIpAddr() + params.toString()); String password = params.get("password"); String formId = params.get("formId"); + String payCheck = params.get("payCheck"); Long memberId; try { memberId = getMemberId(); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } - return getCouponOrderByPassword(password, formId, memberId,EnumPayWay.PAY_WAY_NOT_UNPAY_PASSWD,EnumPayVersion.NO_VERSION); + return getCouponOrderByPassword(password, formId,payCheck, memberId,EnumPayWay.PAY_WAY_NOT_UNPAY_PASSWD,EnumPayVersion.NO_VERSION); } - private ResultData getCouponOrderByPassword(String password,String formId,Long memberId,EnumPayWay payWay,EnumPayVersion payVersion) { - + private ResultData getCouponOrderByPassword(String password,String formId,String payCheck,Long memberId,EnumPayWay payWay,EnumPayVersion payVersion) { + password = StringUtils.trimToNull(password); if (StringUtils.isBlank(password) || password.equalsIgnoreCase(Constant.UNDEFINED)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "password不能为空"); } + + if (StringUtils.isBlank(payCheck) || payCheck.equalsIgnoreCase(Constant.UNDEFINED)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "payCheck不能为空"); + } + + EnumCouponPasswordPayCheck payCheckEnum = null; + try { + payCheckEnum = EnumCouponPasswordPayCheck.getEnum(Integer.parseInt(payCheck)); + }catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "payCheck非法"); + } + if (null == payCheckEnum) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "payCheck非法"); + } + + boolean isCardId = false; + if (password.length() > 10) { + isCardId = true; + } + // 1. 根据password获取领取的couponId WxCouponPassword couponPasswordQ = new WxCouponPassword(); couponPasswordQ.updateTenantInfo(getTenantInfo()); - couponPasswordQ.setPassword(password); + if (isCardId) { + try { + Long cardId = Long.parseLong(password); + couponPasswordQ.setId(cardId); + }catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "password参数非法"); + } + }else { + couponPasswordQ.setPassword(password); + } couponPasswordQ.setExpireDate(new Date()); WxCouponPassword couponPassword = null; try { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponPasswordPayCheck.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponPasswordPayCheck.java new file mode 100644 index 000000000..aff7b5200 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponPasswordPayCheck.java @@ -0,0 +1,36 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumCouponPasswordPayCheck { + + NO_CHECK(0, "无验证"), + PASSWORD(1, "密码"), + ZHIWEN(2, "指纹识别"); + + public static EnumCouponPasswordPayCheck getEnum(Integer code) { + for (EnumCouponPasswordPayCheck value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumCouponPasswordPayCheck(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +}