From 08bdd88b8e76bcb42c3f0ee99db945b01b42cd6f Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 8 Mar 2023 15:09:54 +0800 Subject: [PATCH] //password --- .../V2023030800001__coupon_press.sql | 3 ++ .../controller/WxCardInfoController.java | 21 +++++------- .../controller/WxCardPayController.java | 21 +++++++++--- .../iformall/common/SysConfigConstant.java | 1 + .../service/WxCouponPasswordService.java | 2 ++ .../impl/WxCouponPasswordServiceImpl.java | 33 ++++++++++++------- 6 files changed, 53 insertions(+), 28 deletions(-) diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023030800001__coupon_press.sql b/mallinkAdmin/src/main/resources/db/migration/V2023030800001__coupon_press.sql index 564a8752d..8aa35064d 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2023030800001__coupon_press.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2023030800001__coupon_press.sql @@ -1,2 +1,5 @@ ALTER TABLE `mallink`.`wx_coupon_password` ADD COLUMN `pay_password` varchar(50) COMMENT '支付密码' AFTER `password`; + + +INSERT INTO `mallink`.`sys_config`(`id`, `config_item_key`, `config_item_remark`, `create_date`, `update_date`, `status`) VALUES (7, 'cardIsNeedPassword', '实体购物卡是否需要密码', '2023-03-08 10:49:15', '2023-03-08 10:49:15', 0); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java index e9431bda4..1efb77fb4 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java @@ -2,19 +2,15 @@ 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.common.SysConfigConstant; +import com.iformall.domain.po.*; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.domain.vo.WxCouponOrderCVo; import com.iformall.enums.EnumCardInfoType; +import com.iformall.enums.EnumYesOrNo; 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.service.*; import com.iformall.utils.Constant; import com.iformall.utils.DateUtils; @@ -43,6 +39,9 @@ public class WxCardInfoController extends BaseController { @Autowired private WxCouponPasswordService couponPasswordService; + + @Autowired + private SysConfigService sysConfigService; @Autowired private WxCouponService wxCouponService; @@ -79,10 +78,8 @@ public class WxCardInfoController extends BaseController { if (null == password) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr); } - boolean isPassword = false; - if(StringUtils.isNotBlank(password.getPayPassword())){ - isPassword = true; - } + + boolean isPassword = couponPasswordService.isNeedPassword(password); cardInfo = wxCardInfoService.getByCouponPasswordId(couponPasswordId, password); if (null != cardInfo) { diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java index 8df42349b..0c98bd39d 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.common.SysConfigConstant; import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.WxCardSpendVo; @@ -73,7 +74,7 @@ public class WxCardPayController extends BaseController { WxCouponOrderService wxCouponOrderService; @Autowired - WxCouponPasswordService wxCouponPassword; + WxCouponPasswordService wxCouponPasswordService; @Autowired WxCouponService wxCouponService; @@ -115,6 +116,7 @@ public class WxCardPayController extends BaseController { String cardIdStr = paramMap.get("dynamicId"); String totalFeeStr = paramMap.get("totalFee"); + String password = paramMap.get("password"); if (StringUtils.isBlank(cardIdStr) || cardIdStr.equalsIgnoreCase(Constant.UNDEFINED)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "dynamicId不能为空"); @@ -139,7 +141,7 @@ public class WxCardPayController extends BaseController { } return saveECardCardPayOrder(cardIdStr,cUserIdStr,totalFeeStr); }else { - return savePasswordCardPayOrder(cardIdStr,totalFeeStr); + return savePasswordCardPayOrder(cardIdStr,totalFeeStr,password); } } @@ -168,7 +170,7 @@ public class WxCardPayController extends BaseController { return saveCardPayOrder(cUserId,cardInfo,merchantBUser,totalFeeStr,true); } - public ResultData savePasswordCardPayOrder(String cardIdStr,String totalFeeStr) { + public ResultData savePasswordCardPayOrder(String cardIdStr,String totalFeeStr,String password) { Long cardId = null; try { cardId = Long.valueOf(cardIdStr); @@ -179,16 +181,27 @@ public class WxCardPayController extends BaseController { WxMerchantBUser merchantBUser = getLoginBUser(); - WxCouponPassword couponPassword = wxCouponPassword.getById(cardId); + WxCouponPassword couponPassword = wxCouponPasswordService.getById(cardId); if (null == couponPassword) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "卡未查询到"); } + boolean isPassword = wxCouponPasswordService.isNeedPassword(couponPassword); + if(isPassword){ + if(StringUtils.isBlank(password)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"请输入支付密码"); + } + if(!password.equals(couponPassword.getPayPassword())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"密码输入错误"); + } + } if (EnumYesOrNo.YES.getCode().intValue() == couponPassword.getIsStop().intValue()) { return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡已被禁用."); } if (couponPassword.getPrice().intValue() <= 0 ) { return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡密面额未设置."); } + + WxCoupon coupon = wxCouponService.getById(couponPassword.getCouponId(),couponPassword.getTenantId()); if (coupon == null) { diff --git a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java index be46607cf..0be4f4577 100644 --- a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java +++ b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java @@ -6,4 +6,5 @@ public class SysConfigConstant { 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"; + public static final String card_is_need_password = "cardIsNeedPassword"; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java index d6bc9541a..b6a44ecaa 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java @@ -84,4 +84,6 @@ public interface WxCouponPasswordService { void exportTemplate(HttpServletRequest request, HttpServletResponse response); void importPrice(MallUserInfo user,String importKey, WxCardPriceTemplate template); + + boolean isNeedPassword(WxCouponPassword password); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java index 14d53d01b..bff6f072a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java @@ -3,15 +3,8 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; -import com.iformall.domain.po.MallUserInfo; -import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxCardInfo; -import com.iformall.domain.po.WxCoupon; -import com.iformall.domain.po.WxCouponOrder; -import com.iformall.domain.po.WxCouponPassword; -import com.iformall.domain.po.WxMall; -import com.iformall.domain.po.WxMerchant; -import com.iformall.domain.po.WxMerchantBUser; +import com.iformall.common.SysConfigConstant; +import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCouponOrderStatus; import com.iformall.enums.EnumCouponPasswordStatus; @@ -28,6 +21,7 @@ import com.iformall.mapper.WxCardInfoMapper; import com.iformall.mapper.WxCouponMapper; import com.iformall.mapper.WxCouponPasswordMapper; import com.iformall.service.ExcelService; +import com.iformall.service.SysConfigService; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCouponPasswordService; @@ -76,6 +70,9 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { @Autowired StringRedisTemplate stringRedisTemplate; + @Autowired + SysConfigService sysConfigService; + @Override public PageInfo listAsPage(WxCouponPassword record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponPasswordMapper.findList(record)); @@ -400,7 +397,19 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { stringRedisTemplate.opsForHash().increment(importKey,"processCount",1); stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); } - - - + + @Override + public boolean isNeedPassword(WxCouponPassword password) { + boolean isPassword = false; + //如果配置是否需要输入密码 + SysConfig config = sysConfigService.getByKey(SysConfigConstant.card_is_need_password, password); + if(config != null && "1".equals(config.getConfigItemValue())){ + if(StringUtils.isNotBlank(password.getPayPassword())){ + isPassword = true; + } + } + return isPassword; + } + + }