diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardInfoController.java index d34dfa7d0..1607dc64c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardInfoController.java @@ -117,23 +117,6 @@ public class WxCardInfoController extends BaseController { return new ResultData(); } - @ApiOperation("卡完结") - @PostMapping("/finishCard") - @SystemControllerLog(description = "储值卡支付-卡完结") - public ResultData finishCard(@RequestBody WxCardInfo wxCardInfo) { - String ipStr = getIpAddr(); - logger.info("cardPay/finishCard: " + ipStr + " :" + wxCardInfo.toString()); - if (wxCardInfo == null) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空"); - } - if (wxCardInfo.getId() == null) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件ID为空"); - } - wxCardInfo.updateTenantInfo(getTenantInfo()); - int remainShareAmount = wxCardSpendService.finishCard(wxCardInfo); - return new ResultData(remainShareAmount); - } - @ApiOperation("卡订单-导出数据") @GetMapping("/exportCardOrder") @SystemControllerLog(description = "卡订单-导出数据") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java index 81a9b9094..9e38c917d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java @@ -12,14 +12,13 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCardSpendMerchantVo; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.domain.vo.WxCardVo; -import com.iformall.enums.EnumMerchantSubsidySource; -import com.iformall.enums.EnumMerchantSubsidyType; -import com.iformall.enums.EnumPayType; +import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.service.WxCardInfoService; import com.iformall.service.WxCardSpendService; 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; @@ -91,6 +90,34 @@ public class WxCardPayController extends BaseController { final PageInfo page = wxCardInfoService.listAsPage(wxCardVo, pageNum, pageSize); return new ResultData(page); } + + @ApiOperation(value = "修改支付安全设置") + @PostMapping("updatePayPassword") + public ResultData updatePayPassword(@RequestBody WxCardInfo cardInfo) { + logger.info("updatePayPassword: " + getIpAddr() + cardInfo.toString()); + if(cardInfo.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id为空"); + } + if(cardInfo.getPayCheck() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付设置为空"); + } + EnumCouponPasswordPayCheck payCheckEnum = null; + try { + payCheckEnum = EnumCouponPasswordPayCheck.getEnum(cardInfo.getPayCheck()); + }catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付校验方式非法"); + } + if (null == payCheckEnum) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付校验方式非法"); + } + if (EnumCouponPasswordPayCheck.PASSWORD.equals(payCheckEnum)) { + if (StringUtils.isBlank(cardInfo.getPayPassword()) || cardInfo.getPayPassword().equalsIgnoreCase(Constant.UNDEFINED)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付密码不能为空"); + } + } + + return wxCardInfoService.updatePayPassword(cardInfo, EnumCUserFrom.FROM_MALL_USER_INFO); + } @ApiOperation("C端扫B端储值卡交易流水(消费记录 + 补贴)列表接口") @GetMapping("cardSpendlist") @@ -246,4 +273,24 @@ public class WxCardPayController extends BaseController { } + + @ApiOperation(value = "卡充值") + @PostMapping("rechargeAmount") + public ResultData rechargeAmount(@RequestBody WxCardInfo cardInfo) { + logger.info("rechargeAmount: " + getIpAddr() + cardInfo.toString()); + if(cardInfo.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id为空"); + } + if(cardInfo.getAmount() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "充值金额为空"); + } + if(cardInfo.getAmount() <= 0){ + return new ResultData(ErrorCode.CARD_IS_NOT_RECHARGE.getCode(), "充值金额需大于0"); + } + if(Constant.UNDEFINED.equals(cardInfo.getTransactionId())){ + cardInfo.setTransactionId(null); + } + return wxCardInfoService.rechargeAmount(cardInfo); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java index 589d6bb5e..cfd6cc61f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java @@ -9,6 +9,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.controller.mem.AsyncTask; +import com.iformall.domain.po.WxCardInfo; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.MallUserInfo; @@ -17,9 +18,7 @@ import com.iformall.domain.po.WxCouponPassword; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.domain.vo.WxCouponPasswordCountInfoVO; import com.iformall.domain.vo.WxCouponPasswordVo; -import com.iformall.enums.EnumCouponPasswordStatus; -import com.iformall.enums.EnumCouponSubsidyType; -import com.iformall.enums.EnumYesOrNo; +import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.service.WxCouponPasswordService; import com.iformall.utils.Constant; @@ -134,6 +133,34 @@ public class WxCouponPasswordController extends BaseController { final PageInfo page = wxCouponPasswordService.listVoAsPage(wxCouponPassword, pageNum, pageSize); return new ResultData(page); } + + @ApiOperation(value = "修改支付安全设置") + @PostMapping("updatePayPassword") + public ResultData updatePayPassword(@RequestBody WxCouponPassword couponPassword) { + logger.info("updatePayPassword: " + getIpAddr() + couponPassword.toString()); + if(couponPassword.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id为空"); + } + if(couponPassword.getPayCheck() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付设置为空"); + } + EnumCouponPasswordPayCheck payCheckEnum = null; + try { + payCheckEnum = EnumCouponPasswordPayCheck.getEnum(couponPassword.getPayCheck()); + }catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付校验方式非法"); + } + if (null == payCheckEnum) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付校验方式非法"); + } + if (EnumCouponPasswordPayCheck.PASSWORD.equals(payCheckEnum)) { + if (StringUtils.isBlank(couponPassword.getPayPassword()) || couponPassword.getPayPassword().equalsIgnoreCase(Constant.UNDEFINED)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付密码不能为空"); + } + } + + return wxCouponPasswordService.updatePayPassword(couponPassword, EnumCUserFrom.FROM_MALL_USER_INFO); + } @ApiOperation("卡密记录导出") @GetMapping("/exportData") diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023031600001_cardspend.sql b/mallinkAdmin/src/main/resources/db/migration/V2023031600001_cardspend.sql index f8270bdc8..da23a77cf 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2023031600001_cardspend.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2023031600001_cardspend.sql @@ -4,5 +4,335 @@ ADD COLUMN `settlement_status` smallint(2) NOT NULL DEFAULT 0 COMMENT '结算状 update wx_card_spend set settlement_status = pay_status where pay_status in (1,2); +update wx_card_spend set pay_status = 0 where pay_status in (1,2); + +update wx_card_spend set pay_from=5 where pay_type=1; + + + +delete from sys_config where id = 7; +delete from sys_config_value where config_item_id = 7; + + + +ALTER TABLE `mallink`.`wx_card_info` +ADD COLUMN `pay_check` smallint(2) NOT NULL DEFAULT 0 AFTER `coupon_password`, +ADD COLUMN `pay_password` varchar(50) AFTER `pay_check`; + +ALTER TABLE `mallink`.`wx_coupon_password` +ADD COLUMN `pay_check` smallint(2) NOT NULL DEFAULT 0 AFTER `password`; + + +ALTER TABLE `mallink`.`wx_card_info` +ADD COLUMN `pay_setting_remark` varchar(255) AFTER `pay_password`; + +ALTER TABLE `mallink`.`wx_coupon_password` +ADD COLUMN `pay_setting_remark` varchar(255) AFTER `pay_password`; + + +ALTER TABLE `mallink`.`wx_coupon_0` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_1` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_2` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_3` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_4` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_5` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_6` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_7` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_8` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_9` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_10` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_11` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_12` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_13` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_14` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_15` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_16` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_17` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_18` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_19` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_20` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_21` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_22` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_23` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_24` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_25` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_26` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_27` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_28` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_29` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_30` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_31` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_32` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_33` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_34` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_35` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_36` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_37` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_38` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_39` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_40` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_41` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_42` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_43` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_44` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_45` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_46` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_47` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_48` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_49` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_50` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_51` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_52` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_53` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_54` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_55` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_56` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_57` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_58` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_59` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_60` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_61` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_62` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_63` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_64` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_65` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_66` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_67` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_68` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_69` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_70` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_71` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_72` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_73` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_74` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_75` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_76` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_77` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_78` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_79` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_80` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_81` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_82` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_83` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_84` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_85` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_86` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_87` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_88` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_89` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_90` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_91` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_92` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_93` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_94` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_95` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_96` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_97` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_98` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; +ALTER TABLE `mallink`.`wx_coupon_99` +ADD COLUMN `is_recharge` smallint(2) DEFAULT 0 COMMENT '是否可充值' AFTER `password_support`, +ADD COLUMN `used_password` varchar(50) COMMENT '使用密码' AFTER `is_recharge`; + + + + + -update wx_card_spend set pay_status = 0 where pay_status in (1,2); \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java index 2353b195e..87b7e3d16 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java @@ -110,7 +110,8 @@ public class WxCardInfoController extends BaseController { map.put("cardId", cardInfo.getId()); map.put("amount", cardInfo.getAmount()); map.put("remainAmount", cardInfo.getRemainingAmount()); - map.put("cardType", cardInfo.getType()); + map.put("cardType", cardInfo.getType()); + map.put("payCheck",cardInfo.getPayCheck()); }else if(type != null && type.intValue() == 0){ isECard = true; cardInfo = wxCardInfoService.getById(Long.parseLong(cardIdStr)); @@ -121,6 +122,7 @@ public class WxCardInfoController extends BaseController { map.put("amount", cardInfo.getAmount()); map.put("remainAmount", cardInfo.getRemainingAmount()); map.put("cardType", cardInfo.getType()); + map.put("payCheck",cardInfo.getPayCheck()); }else{ Long couponPasswordId = Long.parseLong(cardIdStr); //实体卡 @@ -129,21 +131,19 @@ public class WxCardInfoController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未查询到卡:"+cardIdStr); } - boolean isPassword = couponPasswordService.isNeedPassword(password); - cardInfo = wxCardInfoService.getByCouponPasswordId(couponPasswordId, password); map.put("cardId", couponPasswordId); if (null != cardInfo) { map.put("amount", cardInfo.getAmount()); map.put("remainAmount", cardInfo.getRemainingAmount()); map.put("cardType", cardInfo.getType()); - map.put("isPassword",isPassword); + map.put("payCheck",cardInfo.getPayCheck()); }else { //第一次刷卡的时候没有cardInfo map.put("amount", password.getPrice()); map.put("remainAmount", password.getPrice()); map.put("cardType", EnumCardInfoType.CARD.getCode()); - map.put("isPassword",isPassword); + map.put("payCheck",password.getPayCheck()); } } return new ResultData(map); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java index 8b7d29d06..00dff1bb5 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -176,9 +176,9 @@ public class WxCardPayController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "cUserId不能为空"); } - return saveECardCardPayOrder(cardIdStr,cUserIdStr,totalFeeStr,cardPayType); + return saveECardCardPayOrder(cardIdStr,cUserIdStr,totalFeeStr,password,cardPayType); }else if(EnumCardSpendFrom.phone.equals(cardPayType)){ - return saveECardCardPayOrder(cardIdStr,null,totalFeeStr,cardPayType); + return saveECardCardPayOrder(cardIdStr,null,totalFeeStr,password,cardPayType); }else{ if(cardPayType == null){ cardPayType = EnumCardSpendFrom.card; @@ -187,7 +187,7 @@ public class WxCardPayController extends BaseController { } } - private ResultData saveECardCardPayOrder(String cardIdStr,String cUserIdStr,String totalFeeStr,EnumCardSpendFrom cardPayType) { + private ResultData saveECardCardPayOrder(String cardIdStr,String cUserIdStr,String totalFeeStr,String password,EnumCardSpendFrom cardPayType) { Long cUserId = null; if(StringUtils.isNotBlank(cUserIdStr)){ try { @@ -216,6 +216,15 @@ public class WxCardPayController extends BaseController { return new ResultData(ErrorCode.CARD_TRANSFERED); } cUserId = cardInfo.getOwnerUserId(); + + if(EnumYesOrNo.YES.getCode().equals(cardInfo.getPayCheck())){ + if(StringUtils.isBlank(password)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"请输入支付密码"); + } + if(!password.equals(cardInfo.getPayPassword())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"密码输入错误"); + } + } return saveCardPayOrder(cUserId,cardInfo,merchantBUser,totalFeeStr,cardPayType); } @@ -234,8 +243,8 @@ public class WxCardPayController extends BaseController { if (null == couponPassword) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "卡未查询到"); } - boolean isPassword = wxCouponPasswordService.isNeedPassword(couponPassword); - if(isPassword){ + + if(EnumYesOrNo.YES.getCode().equals(couponPassword.getPayCheck())){ if(StringUtils.isBlank(password)){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"请输入支付密码"); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java index 05af7dee2..6dd5081a0 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -8,6 +8,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; +import com.iformall.enums.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,11 +34,6 @@ import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.vo.WxCardSpendVo; -import com.iformall.enums.EnumCardInfoStatus; -import com.iformall.enums.EnumCreditLockedStatus; -import com.iformall.enums.EnumMerchantStatus; -import com.iformall.enums.EnumMerchantSubsidySource; -import com.iformall.enums.EnumPayWay; import com.iformall.exception.MallinkException; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCardInfoService; @@ -85,16 +81,17 @@ public class WxCardPayController extends BaseController { String cardIdStr = paramMap.get("cardId"); String merchantStr = paramMap.get("merchantId"); String totalFeeStr = paramMap.get("totalFee"); + String password = paramMap.get("password"); Long memberId; try { memberId = getMemberId(); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } - return saveCardPayOrder(memberId,cardIdStr,merchantStr,totalFeeStr); + return saveCardPayOrder(memberId,cardIdStr,merchantStr,password,totalFeeStr); } - private ResultData saveCardPayOrder(Long cUserId,String cardIdStr,String merchantStr,String totalFeeStr) { + private ResultData saveCardPayOrder(Long cUserId,String cardIdStr,String merchantStr,String password,String totalFeeStr) { String ipStr = getIpAddr(); logger.info("saveCardPayOrder: " + ipStr + " : cUserId:{} , cardIdStr:{},merchantStr:{},totalFeeStr:{}",cUserId,cardIdStr,cardIdStr,cardIdStr); WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(cUserId,getFinalTenantId()); @@ -139,6 +136,16 @@ public class WxCardPayController extends BaseController { logger.error("卡不存在: " + cardIdStr); return new ResultData(ErrorCode.CARD_IS_NOT_FOUND); } + + if(EnumYesOrNo.YES.getCode().equals(cardInfo.getPayCheck())){ + if(StringUtils.isBlank(password)){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"请输入支付密码"); + } + if(!password.equals(cardInfo.getPayPassword())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"密码输入错误"); + } + } + if (EnumCardInfoStatus.STOP.getCode().intValue() == cardInfo.getStatus().intValue()) { return new ResultData(ErrorCode.CARD_IS_NOT_FOUND.getCode(),"卡已被禁用."); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 7acdbf0f9..c335ff6e7 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -62,6 +62,9 @@ public class WxCouponOrderController extends BaseController { @Autowired private WxPayOrderService wxPayOrderService; + @Autowired + private WxCardInfoService wxCardInfoService; + //@RedisCache(expireTime = 100) @ApiOperation("券包分页列表接口") @GetMapping("list") @@ -359,6 +362,34 @@ public class WxCouponOrderController extends BaseController { } return wxCouponOrderService.cardDetailCUserVo(memberId,getTenantInfo(), couponOrderId); } + + @ApiOperation(value = "修改支付安全设置") + @PostMapping("updatePayPassword") + public ResultData updatePayPassword(@RequestBody WxCardInfo cardInfo) { + logger.info("updatePayPassword: " + getIpAddr() + cardInfo.toString()); + if(cardInfo.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id为空"); + } + if(cardInfo.getPayCheck() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付设置为空"); + } + EnumCouponPasswordPayCheck payCheckEnum = null; + try { + payCheckEnum = EnumCouponPasswordPayCheck.getEnum(cardInfo.getPayCheck()); + }catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付校验方式非法"); + } + if (null == payCheckEnum) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付校验方式非法"); + } + if (EnumCouponPasswordPayCheck.PASSWORD.equals(payCheckEnum)) { + if (StringUtils.isBlank(cardInfo.getPayPassword()) || cardInfo.getPayPassword().equalsIgnoreCase(Constant.UNDEFINED)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "支付密码不能为空"); + } + } + + return wxCardInfoService.updatePayPassword(cardInfo,EnumCUserFrom.FROM_C_USER_BASIC_INFO); + } @ApiOperation(value = "手动核销方式,电子卡获取动态id") @GetMapping("cardDynamicId") diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java index 319855a01..543948f79 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java @@ -181,7 +181,6 @@ public class WxCouponPasswordController extends BaseController { // 卡密领取卡券 Integer pwdStatus = couponPassword.getStatus(); setCouponPasswordStatus(couponPassword, EnumCouponPasswordStatus.USED,payCheckEnum,payPassword); - couponPassword.setStatus(EnumCouponPasswordStatus.USED.getCode()); // 3. 领取free coupon if (null == cardInfo || couponPassword.isDefaultUser()) { @@ -207,10 +206,22 @@ public class WxCouponPasswordController extends BaseController { WxCouponPassword updateCouponPwd = new WxCouponPassword(); updateCouponPwd.setId(couponPassword.getId()); updateCouponPwd.setStatus(pwdStatus.getCode()); - if (null != payCheckEnum && payCheckEnum.getCode().intValue() == EnumCouponPasswordPayCheck.PASSWORD.getCode().intValue()) { - updateCouponPwd.setPayPassword(payPassword); - } + if(null != payCheckEnum){ + if(EnumCouponPasswordPayCheck.NO_CHECK.equals(payCheckEnum)){ + updateCouponPwd.setPayCheck(EnumCouponPasswordPayCheck.NO_CHECK.getCode()); + updateCouponPwd.setPayPassword(""); + }else if(EnumCouponPasswordPayCheck.PASSWORD.equals(payCheckEnum)){ + updateCouponPwd.setPayCheck(EnumCouponPasswordPayCheck.PASSWORD.getCode()); + updateCouponPwd.setPayPassword(payPassword); + } + updateCouponPwd.setPaySettingRemark("通过卡密领卡设置"); + } couponPasswordService.saveOrUpdate(updateCouponPwd); + + couponPassword.setStatus(updateCouponPwd.getStatus()); + couponPassword.setPayCheck(updateCouponPwd.getPayCheck()); + couponPassword.setPayPassword(updateCouponPwd.getPayPassword()); + couponPassword.setPaySettingRemark(updateCouponPwd.getPaySettingRemark()); } @ApiOperation(value = "查询卡详情") diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 8248bac80..dc5e6c994 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -264,6 +264,7 @@ public enum ErrorCode{ CARD_TRANSFERED(9004, "卡已被领取"), CARD_TRANSFER_INVALID(9005, "卡转赠已失效"), CARD_SUBSIDY_NOT_SET(9006, "卡补贴未设置"), + CARD_IS_NOT_RECHARGE(9007, "该卡不支持充值"), /** * 卡消费 diff --git a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java index 9a43875ae..a79c45bd5 100644 --- a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java +++ b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java @@ -7,6 +7,5 @@ public class SysConfigConstant { public static final String default_merchant_b_user = "defaultMerchantBUserId"; public static final String coupon_detail_show_selled = "couponDetailShowSelled"; public static final String coupon_list_show_selled = "couponListShowSelled"; - public static final String card_is_need_password = "cardIsNeedPassword"; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java index 7d1bef413..6de9c5858 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java @@ -30,6 +30,12 @@ public class WxCardInfo extends TenantEntity { protected List couponPasswordIdList; @io.swagger.annotations.ApiModelProperty(value="卡密",name="couponPassword") protected String couponPassword; + @io.swagger.annotations.ApiModelProperty(value="卡安全设置 EnumCouponPasswordPayCheck",name="payCheck") + protected Integer payCheck; + @io.swagger.annotations.ApiModelProperty(value="密码",name="payPassword") + private String payPassword; + @io.swagger.annotations.ApiModelProperty(value="",name="paySettingRemark") + private String paySettingRemark; @io.swagger.annotations.ApiModelProperty(value="卡类型EnumCardInfoType",name="type") protected Integer type; @io.swagger.annotations.ApiModelProperty(value = "券ID", name = "couponId") @@ -83,4 +89,5 @@ public class WxCardInfo extends TenantEntity { protected Date enddate; @TableField(exist = false) private List couponIdList; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index bbfdef3c7..8c58e357b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -197,6 +197,12 @@ public class WxCoupon extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="卡密是否支持(0:不支持,1支持)",name="passwordSupport") private Integer passwordSupport; + @io.swagger.annotations.ApiModelProperty(value="是否可以充值",name="isRecharge") + private Integer isRecharge; + + @io.swagger.annotations.ApiModelProperty(value="使用密码",name="usedPassword") + private String usedPassword; + @io.swagger.annotations.ApiModelProperty(value="1:A端发卷,2:B端发卷",name="sourceType") private Integer sourceType; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponPassword.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponPassword.java index ab90e940f..4c5fdf72d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponPassword.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponPassword.java @@ -29,9 +29,13 @@ public class WxCouponPassword extends TenantEntity { @Excel(name = "兑换码", width = 20, orderNum = "2") @io.swagger.annotations.ApiModelProperty(value="卡密",name="password") private String password; + @io.swagger.annotations.ApiModelProperty(value="卡安全设置 EnumCouponPasswordPayCheck",name="payCheck") + protected Integer payCheck; @Excel(name = "密码", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="密码",name="payPassword") private String payPassword; + @io.swagger.annotations.ApiModelProperty(value="",name="paySettingRemark") + private String paySettingRemark; @TableField(exist = false) private String passwordLike; @Excel(name = "状态", width = 20, replace = {"初始_0", "发送中_1", "已发出_2", "已使用_3", "不可用_4"}, orderNum = "5") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardCVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardCVo.java index 4853a6cca..11ecdf5cc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardCVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardCVo.java @@ -45,6 +45,9 @@ public class WxCardCVo extends WxCouponOrder { @io.swagger.annotations.ApiModelProperty(value = "卡面额余额", name = "remainingAmount") private Integer remainingAmount; + @io.swagger.annotations.ApiModelProperty(value="卡安全设置 EnumCouponPasswordPayCheck",name="payCheck") + protected Integer payCheck; + @io.swagger.annotations.ApiModelProperty(value="卡消费列表",name="cardSpendList") private List cardSpendList; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendMerchantVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendMerchantVo.java index e440a19cc..6114d9128 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendMerchantVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendMerchantVo.java @@ -13,10 +13,10 @@ public class WxCardSpendMerchantVo { private Long merchantId; @Excel(name = "商户名称", width = 20, orderNum = "2") private String merchantName; - @Excel(name = "类型", width = 20, orderNum = "3", replace = {"付款_0", "退款_1"}) + @Excel(name = "结算类型", width = 20, orderNum = "3", replace = {"付款_0", "退款_1"}) private Integer payType; private BigDecimal total; - @Excel(name = "交易总金额(元)", width = 20, orderNum = "4") + @Excel(name = "总金额(元)", width = 20, orderNum = "4") private String totalStr; private BigDecimal fee; @Excel(name = "总手续费(元)", width = 20, orderNum = "5") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java index f6d57c660..b01dd022a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java @@ -37,6 +37,9 @@ public class WxCardVo extends WxCardInfo { @io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark") private String remark; + @io.swagger.annotations.ApiModelProperty(value="是否可以充值",name="isRecharge") + private Integer isRecharge; + public String getPriceStr() { return new BigDecimal(price == null ? 0 : price).divide(new BigDecimal(100)).toPlainString(); } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponPasswordVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponPasswordVo.java index c9a45a477..b768578ab 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponPasswordVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponPasswordVo.java @@ -27,6 +27,8 @@ public class WxCouponPasswordVo extends TenantEntity { protected Long id; @Excel(name = "卡名称", width = 20, orderNum = "2", prefix = "") protected String couponTitile; + @io.swagger.annotations.ApiModelProperty(value="是否可以充值",name="isRecharge") + private Integer isRecharge; @Excel(name = "卡密", width = 20, orderNum = "3", prefix = "") @io.swagger.annotations.ApiModelProperty(value = "卡密", name = "couponPassword") private String couponPassword; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCardSpendFrom.java b/mallinkService/src/main/java/com/iformall/enums/EnumCardSpendFrom.java index ab6c694b3..4a843d93e 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCardSpendFrom.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCardSpendFrom.java @@ -12,6 +12,10 @@ public enum EnumCardSpendFrom { card(2,"B扫实体卡收款"), phone(3,"B手机号查询收款"), pay(4,"C扫B付款"), + + refund(5,"B退款"), + + recharge(10,"A充值"), ; public static EnumCardSpendFrom getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumPayType.java b/mallinkService/src/main/java/com/iformall/enums/EnumPayType.java index 7bfd85f18..055934689 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumPayType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumPayType.java @@ -10,7 +10,9 @@ public enum EnumPayType { PAY_AUTO_REFUND(2, "自动退款"), PAY_ADMIN_REFUND(3, "A端退款"), PAY_POS_REFUND(4, "POS发起退款"), - PAY_C_REFUND(5, "用户自己发起退款"); + PAY_C_REFUND(5, "用户自己发起退款"), + + PAY_CARD_RECHARGE(10, "卡充值"); public static EnumPayType getEnum(Integer code) { for (EnumPayType value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java index d28a98e0c..63ea63f2d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java @@ -1,6 +1,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxCardInfo; import com.iformall.domain.po.WxCardTransferInfo; import com.iformall.domain.po.WxCoupon; @@ -8,6 +9,7 @@ import com.iformall.domain.po.WxCouponPassword; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCardTransferVo; import com.iformall.domain.vo.WxCardVo; +import com.iformall.enums.EnumCUserFrom; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -66,4 +68,7 @@ public interface WxCardInfoService { */ void updAmount(WxCardInfo cardInfo,Integer amount,Integer remainingAmount,Integer remainingShareFeeAmount); + ResultData updatePayPassword(WxCardInfo cardInfo, EnumCUserFrom userFrom); + + ResultData rechargeAmount(WxCardInfo cardInfo); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java index 2573e966e..dc24613c5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java @@ -1,13 +1,16 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponPassword; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCardPriceTemplate; import com.iformall.domain.vo.WxCardSpendVo; import com.iformall.domain.vo.WxCouponPasswordCountInfoVO; import com.iformall.domain.vo.WxCouponPasswordVo; +import com.iformall.enums.EnumCUserFrom; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -65,7 +68,7 @@ public interface WxCouponPasswordService { * @param couponId * @param inventory */ - void mkPasswords(TenantEntity tenantEntity, Long couponId, Integer inventory); + void mkPasswords(WxCoupon coupon); /** * 导出兑换码 @@ -88,5 +91,5 @@ public interface WxCouponPasswordService { void exportTemplate(HttpServletRequest request, HttpServletResponse response); void importPrice(MallUserInfo user,String importKey, WxCardPriceTemplate template); - boolean isNeedPassword(WxCouponPassword password); + ResultData updatePayPassword(WxCouponPassword couponPassword, EnumCUserFrom userFrom); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java index a18c82f36..c37fac2e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java @@ -1,43 +1,27 @@ package com.iformall.service.impl; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxCardInfo; -import com.iformall.domain.po.WxCardTransferInfo; -import com.iformall.domain.po.WxCoupon; -import com.iformall.domain.po.WxCouponChannel; -import com.iformall.domain.po.WxCouponOrder; -import com.iformall.domain.po.WxCouponPassword; +import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCardTransferVo; import com.iformall.domain.vo.WxCardVo; import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.domain.vo.WxCouponPasswordVo; -import com.iformall.enums.EnumCacheKey; -import com.iformall.enums.EnumCardInfoStatus; -import com.iformall.enums.EnumCardInfoType; -import com.iformall.enums.EnumCouponOrderStatus; -import com.iformall.enums.EnumCouponPasswordStatus; -import com.iformall.enums.EnumCouponPasswordSupport; -import com.iformall.enums.EnumCouponType; -import com.iformall.enums.EnumYesOrNo; +import com.iformall.enums.*; import com.iformall.exception.MallinkException; -import com.iformall.mapper.WxCardInfoMapper; -import com.iformall.mapper.WxCardTransferInfoMapper; -import com.iformall.mapper.WxCouponChannelMapper; -import com.iformall.mapper.WxCouponMapper; -import com.iformall.mapper.WxCouponOrderMapper; -import com.iformall.mapper.WxCouponPasswordMapper; +import com.iformall.mapper.*; import com.iformall.service.ExcelService; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCardInfoService; import com.iformall.service.WxCouponService; import com.iformall.utils.Constant; +import com.iformall.utils.DateUtils; import com.iformall.utils.RedisLock; import org.apache.commons.beanutils.BeanUtils; @@ -96,6 +80,9 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { @Autowired WxCardTransferInfoMapper wxCardTransferInfoMapper; + + @Autowired + WxCardSpendMapper wxCardSpendMapper; @@ -201,7 +188,8 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { co.setSalePrice(coupon.getSalePrice()); co.setPrice(coupon.getPrice()); co.setSubsidyType(coupon.getSubsidyType()); - co.setSubsidyNum(coupon.getSubsidyNum()); + co.setSubsidyNum(coupon.getSubsidyNum()); + co.setIsRecharge(coupon.getIsRecharge()); } //couponOrder WxCouponOrder couponOrder = couponOrderMap.get(coo.getId()); @@ -344,6 +332,9 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { } cardInfo.setCouponPasswordId(couponPassword.getId()); cardInfo.setCouponPassword(couponPassword.getPassword()); + cardInfo.setPayCheck(couponPassword.getPayCheck()); + cardInfo.setPayPassword(couponPassword.getPayPassword()); + cardInfo.setPaySettingRemark(couponPassword.getPaySettingRemark()); cardInfo.setCUserId(Constant.defaultCUserId); cardInfo.setOwnerUserId(Constant.defaultCUserId); cardInfo.setServiceFeeAmount(0); @@ -424,6 +415,102 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { } } + @Override + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public ResultData updatePayPassword(WxCardInfo cardInfo, EnumCUserFrom userFrom) { + WxCardInfo wxCardInfo = wxCardInfoMapper.selectById(cardInfo.getId()); + if(wxCardInfo == null){ + return new ResultData(ErrorCode.CARD_IS_NOT_FOUND); + } + WxCardInfo updateCIF = new WxCardInfo(); + updateCIF.setId(cardInfo.getId()); + updateCIF.setPayCheck(cardInfo.getPayCheck()); + if(EnumCouponPasswordPayCheck.PASSWORD.getCode().equals(cardInfo.getPayCheck())){ + updateCIF.setPayPassword(cardInfo.getPayPassword()); + }else{ + updateCIF.setPayPassword(""); + } + updateCIF.setPaySettingRemark(userFrom.getMessage()); + wxCardInfoMapper.updateById(updateCIF); + if(wxCardInfo.getCouponPasswordId() != null){ + WxCouponPassword updateCPwd = new WxCouponPassword(); + updateCPwd.setId(wxCardInfo.getCouponPasswordId()); + updateCPwd.setPayCheck(updateCIF.getPayCheck()); + updateCPwd.setPayPassword(updateCIF.getPayPassword()); + updateCPwd.setPaySettingRemark(updateCIF.getPaySettingRemark()); + couponPasswordMapper.updateById(updateCPwd); + } + + return new ResultData(); + } + + @Override + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public ResultData rechargeAmount(WxCardInfo cardInfo) { + WxCardInfo wxCardInfo = wxCardInfoMapper.selectById(cardInfo.getId()); + if(wxCardInfo == null){ + return new ResultData(ErrorCode.CARD_IS_NOT_FOUND); + } + WxCoupon wxCoupon = wxCouponMapper.selectById(wxCardInfo.getCouponId(), wxCardInfo.getTenantId()); + if(wxCoupon == null){ + return new ResultData(ErrorCode.CARD_IS_NOT_FOUND); + } + if(EnumYesOrNo.NO.getCode().equals(wxCoupon.getIsRecharge())){ + return new ResultData(ErrorCode.CARD_IS_NOT_RECHARGE); + } + if(!wxCoupon.checkIsFree()){ + return new ResultData(ErrorCode.CARD_IS_NOT_RECHARGE.getCode(),"有价券不支持充值"); + } + if(wxCoupon.getSubsidyNum() != null && wxCoupon.getSubsidyNum() > 0){ + return new ResultData(ErrorCode.CARD_IS_NOT_RECHARGE.getCode(),"有补贴不支持充值"); + } + + Date currentDate = new Date(); + + WxCardSpend record = new WxCardSpend(); + record.updateTenantInfo(cardInfo); + record.setPayType(EnumPayType.PAY_CARD_RECHARGE.getCode()); + record.setCardId(cardInfo.getId()); + if(StringUtils.isBlank(cardInfo.getTransactionId())){ + Long yyyyMMddHHmmss = Long.valueOf(DateUtils.date2String(currentDate, "yyyyMMddHHmmss")); + record.setOrderId(yyyyMMddHHmmss);//默认当前日期为订单号 + } + WxCardSpend wxCardSpend = wxCardSpendMapper.selectOne(new QueryWrapper<>(record)); + if(wxCardSpend != null){ + logger.error("当前已存在充值订单, "); + throw new MallinkException(ErrorCode.CARD_IS_NOT_RECHARGE.getCode(),"当前已存在充值订单,请确认是否重复充值"); + } + + this.updAmount(wxCardInfo,cardInfo.getAmount(),cardInfo.getAmount(),null); + + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setOwnerId(wxCardInfo.getOwnerUserId()); + record.setMerchantId(0l);//充值订单无商户 + record.setPayFrom(EnumCardSpendFrom.recharge.getCode()); + record.setDeductionAmount(cardInfo.getAmount()); + record.setRemark("充值"); + + record.setPayment(0); + record.setRealPayment(0); + record.setCardBeforeAmount(wxCardInfo.getRemainingAmount()); + record.setCardRemainAmount(wxCardInfo.getRemainingAmount()+cardInfo.getAmount()); + record.setCardBeforeRealAmount(0); + record.setCardRemainRealAmount(0); + record.setPayStatus(EnumCardSpendStatus.NOT_PAY.getCode());// + + record.setCreateDate(currentDate); + record.setUpdateDate(currentDate); + try { + wxCardSpendMapper.insert(record); + } catch (Exception e) { + logger.error("card spend insert error"); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "card spend 插入出错!"); + } + return new ResultData(); + + } + private List toTransferVoList(List transferList,TenantEntity tenantEntity) { List retList = new ArrayList(); if (null != transferList && transferList.size() > 0 ) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 3ce80fca1..4f27ca4a4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -310,7 +310,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { if (null != orderUpdate.getCUserId() && (!Constant.defaultCUserId.equals(orderUpdate.getCUserId()))) { // 成长值 try { - orderUpdate.setPayment(real_payment); + orderUpdate.setPayment(payment); wxScoreRulesService.addScore2(coupon,EnumScoreType.CONSUMPTION, orderUpdate, coupon.getBusiness()); } catch (Exception e) { logger.error("成长值:" + e.getMessage()); @@ -329,7 +329,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { creditHistory.setFinalTenantId(record.getFinalTenantId()); creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); creditHistory.setBusinessId(coupon.getBusiness()); - creditHistory.setSpend(real_payment); + creditHistory.setSpend(payment); //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户 creditHistory.setMerchantId(record.getMerchantId()); WxMerchant wxMerchant = wxMerchantMapper.selectById(record.getMerchantId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index b8c1a94ed..5f3546c67 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -2415,6 +2415,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { cvo.setAmount(cardInfo.getAmount()); cvo.setRemainingAmount(cardInfo.getRemainingAmount()); cvo.setSupportTransfer(cardInfo.getSupportTransfer()); + cvo.setPayCheck(cardInfo.getPayCheck()); } cvo.setWxCardInfo(cardInfo); return cvo; 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 04cdacdc2..990cad516 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java @@ -3,12 +3,11 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; +import com.iformall.common.ResultData; 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; -import com.iformall.enums.EnumYesOrNo; +import com.iformall.enums.*; import com.iformall.domain.vo.WxCUserBasicInfoVo; import com.iformall.domain.vo.WxCardPriceTemplate; import com.iformall.domain.vo.WxCardSpendVo; @@ -162,6 +161,7 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { WxCoupon coupon = couponMap.get(coo.getCouponId()); if (null != coupon) { co.setCouponTitile(coupon.getTitle()); + co.setIsRecharge(coupon.getIsRecharge()); } } co.setCouponPassword(coo.getPassword()); @@ -231,13 +231,13 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { } @Override - public void mkPasswords(TenantEntity tenantEntity, Long couponId, Integer inventory) { + public void mkPasswords(WxCoupon coupon) { String strAll = "0123456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ"; // 1.获取 coupon short 1 int couponShort = 0; String couponShortStr = "0"; WxCouponPassword pwQ = new WxCouponPassword(); - pwQ.updateTenantInfo(tenantEntity); + pwQ.updateTenantInfo(coupon); List pwgList = wxCouponPasswordMapper.findCouponGroupList(pwQ); couponShort = pwgList.size(); int dospt = strAll.length(); @@ -258,7 +258,7 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { if (!pwList.stream().anyMatch(oPwd->oPwd.equals(pwd))) { //判断是否已经在数据库里面是否存在了 WxCouponPassword pwQ1 = new WxCouponPassword(); - pwQ1.updateTenantInfo(tenantEntity); + pwQ1.updateTenantInfo(coupon); pwQ1.setPassword(pwd); List palist = wxCouponPasswordMapper.findList(pwQ1); if (null != palist && palist.size() > 0 ) { @@ -270,7 +270,7 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { continue; } - if (pwList.size() >= inventory) { + if (pwList.size() >= coupon.getInventory()) { break; } } @@ -281,11 +281,18 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { for (int i=0;i + + @@ -26,7 +28,7 @@ - `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`c_user_id`,`owner_user_id`,`coupon_password_id`,`coupon_password`,`type`, + `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`c_user_id`,`owner_user_id`,`coupon_password_id`,`coupon_password`,`pay_check`,`type`, `transaction_id`,`amount`,`sale_amount`,`remaining_amount`,`service_fee_amount`,`share_fee_amount`,`remaining_share_fee_amount`, `rate_amount`,`create_date`,`update_date`,`support_transfer`,`status` diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index c770d0017..8ea2bbcc2 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -55,6 +55,8 @@ + + @@ -131,7 +133,7 @@ c.`valid_type`,c.`valid_start_date`,c.`valid_end_date`,c.pick_start_date,c.pick_end_date,c.`valid_days`,c.`detail`,c.`price`,c.tail_price,c.orig_price,c.`unit`,c.`remain_inventory`,c.`inventory`, c.`remark`,c.`status`,c.`create_date`,c.`update_date`,c.`business`,c.`sub_business`,c.`support_transfer`,c.`subsidy_num`,c.`subsidy_type`,c.`is_after_set_price`, c.`press_limit_num`, c.`press_limit_hours`,c.`press_pay_reduce_stock`, c.`auto_refund`,c.`credit_price`,c.`credit_refund`,c.`put_apply_status`,c.`stock_apply_status`,c.`cancle_apply_status`, - c.`conditions`,c.approval_type,c.content_type,c.source_type,c.merchant_type,c.password_support,c.gift_list,c.product_type,c.category_id,c.goods_id + c.`conditions`,c.approval_type,c.content_type,c.source_type,c.merchant_type,c.password_support,c.is_recharge,c.used_password,c.gift_list,c.product_type,c.category_id,c.goods_id @@ -483,7 +485,7 @@ select from wx_coupon c - + diff --git a/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml index 665866898..74d39de68 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml @@ -9,6 +9,7 @@ + @@ -21,7 +22,8 @@ - `id`,`tenant_id`,`parent_tenant_id`,`price`,`coupon_id`,`coupon_short`,`password`,`pay_password`,`status`,`sended_phone`,`card_id`,`create_date`,`update_date`,`expire_date`,`present_id`,`is_stop` + `id`,`tenant_id`,`parent_tenant_id`,`price`,`coupon_id`,`coupon_short`,`password`,`pay_password`,`status`, + `sended_phone`,`card_id`,`create_date`,`update_date`,`expire_date`,`present_id`,`is_stop` @@ -117,11 +119,11 @@ - INSERT INTO wx_coupon_password (`id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_short`,`password`,`pay_password`,`status`,`create_date`,`update_date`) + INSERT INTO wx_coupon_password (`id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_short`,`password`,`pay_check`,`pay_password`,`pay_setting_remark`,`status`,`create_date`,`update_date`) VALUES ( - #{item.id},#{item.tenantId},#{item.parentTenantId},#{item.couponId},#{item.couponShort},#{item.password},#{item.payPassword},#{item.status}, + #{item.id},#{item.tenantId},#{item.parentTenantId},#{item.couponId},#{item.couponShort},#{item.password},#{item.payCheck},#{item.payPassword},#{item.paySettingRemark},#{item.status}, #{item.createDate},#{item.updateDate} )