| @@ -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); | |||
| @@ -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) { | |||
| @@ -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) { | |||
| @@ -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"; | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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<WxCouponPassword> 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; | |||
| } | |||
| } | |||