| @@ -1,2 +1,5 @@ | |||||
| ALTER TABLE `mallink`.`wx_coupon_password` | ALTER TABLE `mallink`.`wx_coupon_password` | ||||
| ADD COLUMN `pay_password` varchar(50) COMMENT '支付密码' AFTER `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.ErrorCode; | ||||
| import com.iformall.common.ResultData; | 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.WxCardSpendVo; | ||||
| import com.iformall.domain.vo.WxCouponOrderCVo; | import com.iformall.domain.vo.WxCouponOrderCVo; | ||||
| import com.iformall.enums.EnumCardInfoType; | import com.iformall.enums.EnumCardInfoType; | ||||
| import com.iformall.enums.EnumYesOrNo; | |||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.pay.WxPayConstant; | 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.Constant; | ||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| @@ -43,6 +39,9 @@ public class WxCardInfoController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxCouponPasswordService couponPasswordService; | private WxCouponPasswordService couponPasswordService; | ||||
| @Autowired | |||||
| private SysConfigService sysConfigService; | |||||
| @Autowired | @Autowired | ||||
| private WxCouponService wxCouponService; | private WxCouponService wxCouponService; | ||||
| @@ -79,10 +78,8 @@ public class WxCardInfoController extends BaseController { | |||||
| if (null == password) { | if (null == password) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr); | 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); | cardInfo = wxCardInfoService.getByCouponPasswordId(couponPasswordId, password); | ||||
| if (null != cardInfo) { | if (null != cardInfo) { | ||||
| @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.common.SysConfigConstant; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.BaseEntity; | import com.iformall.domain.po.base.BaseEntity; | ||||
| import com.iformall.domain.vo.WxCardSpendVo; | import com.iformall.domain.vo.WxCardSpendVo; | ||||
| @@ -73,7 +74,7 @@ public class WxCardPayController extends BaseController { | |||||
| WxCouponOrderService wxCouponOrderService; | WxCouponOrderService wxCouponOrderService; | ||||
| @Autowired | @Autowired | ||||
| WxCouponPasswordService wxCouponPassword; | |||||
| WxCouponPasswordService wxCouponPasswordService; | |||||
| @Autowired | @Autowired | ||||
| WxCouponService wxCouponService; | WxCouponService wxCouponService; | ||||
| @@ -115,6 +116,7 @@ public class WxCardPayController extends BaseController { | |||||
| String cardIdStr = paramMap.get("dynamicId"); | String cardIdStr = paramMap.get("dynamicId"); | ||||
| String totalFeeStr = paramMap.get("totalFee"); | String totalFeeStr = paramMap.get("totalFee"); | ||||
| String password = paramMap.get("password"); | |||||
| if (StringUtils.isBlank(cardIdStr) || cardIdStr.equalsIgnoreCase(Constant.UNDEFINED)) { | if (StringUtils.isBlank(cardIdStr) || cardIdStr.equalsIgnoreCase(Constant.UNDEFINED)) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "dynamicId不能为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "dynamicId不能为空"); | ||||
| @@ -139,7 +141,7 @@ public class WxCardPayController extends BaseController { | |||||
| } | } | ||||
| return saveECardCardPayOrder(cardIdStr,cUserIdStr,totalFeeStr); | return saveECardCardPayOrder(cardIdStr,cUserIdStr,totalFeeStr); | ||||
| }else { | }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); | 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; | Long cardId = null; | ||||
| try { | try { | ||||
| cardId = Long.valueOf(cardIdStr); | cardId = Long.valueOf(cardIdStr); | ||||
| @@ -179,16 +181,27 @@ public class WxCardPayController extends BaseController { | |||||
| WxMerchantBUser merchantBUser = getLoginBUser(); | WxMerchantBUser merchantBUser = getLoginBUser(); | ||||
| WxCouponPassword couponPassword = wxCouponPassword.getById(cardId); | |||||
| WxCouponPassword couponPassword = wxCouponPasswordService.getById(cardId); | |||||
| if (null == couponPassword) { | if (null == couponPassword) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "卡未查询到"); | 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()) { | if (EnumYesOrNo.YES.getCode().intValue() == couponPassword.getIsStop().intValue()) { | ||||
| return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡已被禁用."); | return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡已被禁用."); | ||||
| } | } | ||||
| if (couponPassword.getPrice().intValue() <= 0 ) { | if (couponPassword.getPrice().intValue() <= 0 ) { | ||||
| return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡密面额未设置."); | return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡密面额未设置."); | ||||
| } | } | ||||
| WxCoupon coupon = wxCouponService.getById(couponPassword.getCouponId(),couponPassword.getTenantId()); | WxCoupon coupon = wxCouponService.getById(couponPassword.getCouponId(),couponPassword.getTenantId()); | ||||
| if (coupon == null) { | if (coupon == null) { | ||||
| @@ -6,4 +6,5 @@ public class SysConfigConstant { | |||||
| public static final String card_vierfy_seconds_key="cardVierfySeconds"; | public static final String card_vierfy_seconds_key="cardVierfySeconds"; | ||||
| public static final String default_merchant_b_user = "defaultMerchantBUserId"; | public static final String default_merchant_b_user = "defaultMerchantBUserId"; | ||||
| public static final String coupon_detail_show_selled = "couponDetailShowSelled"; | 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 exportTemplate(HttpServletRequest request, HttpServletResponse response); | ||||
| void importPrice(MallUserInfo user,String importKey, WxCardPriceTemplate template); | 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.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.IdWorker; | 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.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumCouponOrderStatus; | import com.iformall.enums.EnumCouponOrderStatus; | ||||
| import com.iformall.enums.EnumCouponPasswordStatus; | import com.iformall.enums.EnumCouponPasswordStatus; | ||||
| @@ -28,6 +21,7 @@ import com.iformall.mapper.WxCardInfoMapper; | |||||
| import com.iformall.mapper.WxCouponMapper; | import com.iformall.mapper.WxCouponMapper; | ||||
| import com.iformall.mapper.WxCouponPasswordMapper; | import com.iformall.mapper.WxCouponPasswordMapper; | ||||
| import com.iformall.service.ExcelService; | import com.iformall.service.ExcelService; | ||||
| import com.iformall.service.SysConfigService; | |||||
| import com.iformall.service.WxCUserBasicInfoService; | import com.iformall.service.WxCUserBasicInfoService; | ||||
| import com.iformall.service.WxCouponPasswordService; | import com.iformall.service.WxCouponPasswordService; | ||||
| @@ -76,6 +70,9 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { | |||||
| @Autowired | @Autowired | ||||
| StringRedisTemplate stringRedisTemplate; | StringRedisTemplate stringRedisTemplate; | ||||
| @Autowired | |||||
| SysConfigService sysConfigService; | |||||
| @Override | @Override | ||||
| public PageInfo<WxCouponPassword> listAsPage(WxCouponPassword record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxCouponPassword> listAsPage(WxCouponPassword record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponPasswordMapper.findList(record)); | 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.opsForHash().increment(importKey,"processCount",1); | ||||
| stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); | 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; | |||||
| } | |||||
| } | } | ||||