Просмотр исходного кода

Merge branch 'release_toaliyun_real_20230323' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real_20230323

release_toaliyun_real
lin 3 лет назад
Родитель
Сommit
743616329b
32 измененных файлов: 721 добавлений и 106 удалений
  1. +0
    -17
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardInfoController.java
  2. +50
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java
  3. +30
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java
  4. +331
    -1
      mallinkAdmin/src/main/resources/db/migration/V2023031600001_cardspend.sql
  5. +5
    -5
      mallinkBApi/src/main/java/com/iformall/controller/WxCardInfoController.java
  6. +14
    -5
      mallinkBApi/src/main/java/com/iformall/controller/WxCardPayController.java
  7. +14
    -7
      mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java
  8. +31
    -0
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  9. +15
    -4
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java
  10. +1
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  11. +0
    -1
      mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java
  12. +7
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java
  13. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java
  14. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCouponPassword.java
  15. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxCardCVo.java
  16. +2
    -2
      mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendMerchantVo.java
  17. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java
  18. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxCouponPasswordVo.java
  19. +4
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCardSpendFrom.java
  20. +3
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumPayType.java
  21. +5
    -0
      mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java
  22. +5
    -2
      mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java
  23. +109
    -22
      mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java
  24. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java
  25. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  26. +41
    -19
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java
  27. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  28. +19
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  29. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java
  30. +3
    -1
      mallinkService/src/main/resources/mapper/WxCardInfoMapper.xml
  31. +4
    -2
      mallinkService/src/main/resources/mapper/WxCouponMapper.xml
  32. +5
    -3
      mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml

+ 0
- 17
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 = "卡订单-导出数据")


+ 50
- 3
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<WxCardVo> 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);
}

}

+ 30
- 3
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<WxCouponPasswordVo> 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")


+ 331
- 1
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);

+ 5
- 5
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);


+ 14
- 5
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(),"请输入支付密码");
}


+ 14
- 7
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(),"卡已被禁用.");
}


+ 31
- 0
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")


+ 15
- 4
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 = "查询卡详情")


+ 1
- 0
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, "该卡不支持充值"),

/**
* 卡消费


+ 0
- 1
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";

}

+ 7
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java Просмотреть файл

@@ -30,6 +30,12 @@ public class WxCardInfo extends TenantEntity {
protected List<Long> 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<Long> couponIdList;

}

+ 6
- 0
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;



+ 4
- 0
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")


+ 3
- 0
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<WxCardSpendVo> cardSpendList;



+ 2
- 2
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")


+ 3
- 0
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();
}


+ 2
- 0
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;


+ 4
- 0
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) {


+ 3
- 1
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()) {


+ 5
- 0
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);
}

+ 5
- 2
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);
}

+ 109
- 22
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<WxCardTransferVo> toTransferVoList(List<WxCardTransferInfo> transferList,TenantEntity tenantEntity) {
List<WxCardTransferVo> retList = new ArrayList<WxCardTransferVo>();
if (null != transferList && transferList.size() > 0 ) {


+ 2
- 2
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());


+ 1
- 0
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;


+ 41
- 19
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<WxCouponPassword> 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<WxCouponPassword> 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<pwList.size();i++) {
WxCouponPassword newOne = new WxCouponPassword();
newOne.setId(idWorker.nextId());
newOne.updateTenantInfo(tenantEntity);
newOne.setCouponId(couponId);
newOne.updateTenantInfo(coupon);
newOne.setCouponId(coupon.getId());
newOne.setCouponShort(couponShortStr);
newOne.setPassword(pwList.get(i));
newOne.setPayPassword(AppUtils.getSortPwd());
if(StringUtils.isNotBlank(coupon.getUsedPassword())){
newOne.setPayCheck(EnumYesOrNo.YES.getCode());
newOne.setPayPassword(coupon.getUsedPassword());
}else{
newOne.setPayCheck(EnumYesOrNo.NO.getCode());
newOne.setPayPassword("");
}
newOne.setPaySettingRemark("来源卡默认配置");
newOne.setStatus(EnumCouponPasswordStatus.INIT.getCode());
newOne.setCreateDate(curDate);
newOne.setUpdateDate(curDate);
@@ -388,16 +395,31 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService {
}

@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;
}
public ResultData updatePayPassword(WxCouponPassword couponPassword, EnumCUserFrom userFrom) {
WxCouponPassword wxCouponPassword = wxCouponPasswordMapper.selectById(couponPassword.getId());
if(wxCouponPassword == null){
return new ResultData(ErrorCode.COUPON_PASSWORD_NOT_FOUND);
}
WxCouponPassword updCP = new WxCouponPassword();
updCP.setId(couponPassword.getId());
updCP.setPayCheck(couponPassword.getPayCheck());
if(EnumCouponPasswordPayCheck.PASSWORD.getCode().equals(couponPassword.getPayCheck())){
updCP.setPayPassword(couponPassword.getPayPassword());
}else{
updCP.setPayPassword("");
}
updCP.setPaySettingRemark(userFrom.getMessage());
wxCouponPasswordMapper.updateById(updCP);

if(wxCouponPassword.getCardId() != null){
WxCardInfo updateCI = new WxCardInfo();
updateCI.setId(wxCouponPassword.getCardId());
updateCI.setPayCheck(updCP.getPayCheck());
updateCI.setPayPassword(updCP.getPayPassword());
updateCI.setPaySettingRemark(updCP.getPaySettingRemark());
wxCardInfoMapper.updateById(updateCI);
}
return isPassword;
return new ResultData();
}




+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java Просмотреть файл

@@ -618,7 +618,7 @@ public class WxCouponServiceImpl implements WxCouponService {

if (record.getPasswordSupport() != null && record.getPasswordSupport().equals(EnumCouponPasswordSupport.SUPPORTED.getCode())) {
// todo 生成卡密无法修改, 调整
couponPasswordService.mkPasswords(record, record.getId(), record.getInventory());
couponPasswordService.mkPasswords(record);
}

record.setCreateDate(new Date());


+ 19
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -1042,7 +1042,9 @@ public class WxOrderServiceImpl implements WxOrderService {
boolean isChannelStockReduce = false;
boolean isChannelPrice = false;
Integer currentPrice = coupon.getSalePrice();
Long couponChannelId = null;
if (null != couponChannel ) {
couponChannelId = couponChannel.getId();
if (null != couponChannel.getChannelStock()) {
isChannelStockReduce = true;
}
@@ -1051,9 +1053,9 @@ public class WxOrderServiceImpl implements WxOrderService {
isChannelPrice = true;
}
}
if (isChannelStockReduce) {
setCouponChanenlStockCache(couponChannel.getId(), coupon.getTitle(),coupon.getTenantId());
setCouponChanenlStockCache(couponChannelId, coupon.getTitle(),coupon.getTenantId());
}else {
setCouponStockCache(coupon.getId(),coupon.getTitle(),coupon.getTenantId());
// 检查 优惠券 库存
@@ -1108,7 +1110,7 @@ public class WxOrderServiceImpl implements WxOrderService {
isReduceStock = false;
}
if (isReduceStock) {
wxOrderServiceHelper.reduceStock(isChannelStockReduce,coupon,couponChannel.getId(), number);
wxOrderServiceHelper.reduceStock(isChannelStockReduce,coupon,couponChannelId, number);
}
reduceResult.setChannelStockReduce(isChannelStockReduce);
reduceResult.setCurrentPrice(currentPrice);
@@ -1499,6 +1501,9 @@ public class WxOrderServiceImpl implements WxOrderService {
cardInfo.setOwnerUserId(user.getId());
cardInfo.setCUserId(user.getId());
cardInfo.setSupportTransfer(coupon.getSupportTransfer());
cardInfo.setPayCheck(couponPassWord.getPayCheck());
cardInfo.setPayPassword(couponPassWord.getPayPassword());
cardInfo.setPaySettingRemark(couponPassWord.getPaySettingRemark());
wxCardInfoMapper.updateById(cardInfo);
}else {
cardInfo = new WxCardInfo();
@@ -1514,7 +1519,17 @@ public class WxOrderServiceImpl implements WxOrderService {
//后置卡券可能没有面额
cardInfo.setAmount(couponPassWord.getPrice());
cardInfo.setRemainingAmount(couponPassWord.getPrice());
}

cardInfo.setPayCheck(couponPassWord.getPayCheck());
cardInfo.setPayPassword(couponPassWord.getPayPassword());
cardInfo.setPaySettingRemark(couponPassWord.getPaySettingRemark());
}else{
if(StringUtils.isNotBlank(coupon.getUsedPassword())){
cardInfo.setPayCheck(EnumYesOrNo.YES.getCode());
cardInfo.setPayPassword(coupon.getUsedPassword());
}
cardInfo.setPaySettingRemark("来源于卡默认配置");
}
cardInfo.setCUserId(user.getId());
cardInfo.setOwnerUserId(user.getId());
if (!coupon.checkIsFree()) {


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java Просмотреть файл

@@ -1282,7 +1282,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
record.setId(idWorker.nextId());
record.setOwnerId(cardSend.getOwnerId());
record.setMerchantId(cardSend.getMerchantId());
record.setPayFrom(EnumCardSpendFrom.C.getCode());
record.setPayFrom(EnumCardSpendFrom.refund.getCode());
record.setDeductionAmount(refundFee);
record.setRemark("退款");



+ 3
- 1
mallinkService/src/main/resources/mapper/WxCardInfoMapper.xml Просмотреть файл

@@ -11,6 +11,8 @@
<result column="type" jdbcType="INTEGER" property="type" />
<result column="coupon_password_id" jdbcType="BIGINT" property="couponPasswordId" />
<result column="coupon_password" jdbcType="VARCHAR" property="couponPassword" />
<result column="pay_check" jdbcType="INTEGER" property="payCheck" />
<result column="pay_password" jdbcType="VARCHAR" property="payPassword" />
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId" />
<result column="amount" jdbcType="INTEGER" property="amount" />
<result column="sale_amount" jdbcType="INTEGER" property="saleAmount" />
@@ -26,7 +28,7 @@
</resultMap>
<sql id="allColumns">
`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`
</sql>


+ 4
- 2
mallinkService/src/main/resources/mapper/WxCouponMapper.xml Просмотреть файл

@@ -55,6 +55,8 @@
<result column="conditions" jdbcType="VARCHAR" property="conditions"/>
<result column="approval_type" property="approvalType"/>
<result column="password_support" property="passwordSupport"/>
<result column="is_recharge" jdbcType="INTEGER" property="isRecharge"/>
<result column="used_password" jdbcType="VARCHAR" property="usedPassword"/>
<result column="content_type" property="contentType"/>
<result column="html" property="html"/>
<result column="source_type" jdbcType="INTEGER" property="sourceType"/>
@@ -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
</sql>

<sql id="statusColumns">
@@ -483,7 +485,7 @@
select
<include refid="allColumns"/>
from wx_coupon c
<include refid="dynamicWhereConditions"/>
<include refid="dynamicWhereConditions"/>
</select>

<update id="updateStockAndValidDate" parameterType="com.iformall.domain.po.WxCoupon">


+ 5
- 3
mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml Просмотреть файл

@@ -9,6 +9,7 @@
<result column="coupon_id" jdbcType="BIGINT" property="couponId" />
<result column="coupon_short" jdbcType="VARCHAR" property="couponShort" />
<result column="password" jdbcType="VARCHAR" property="password" />
<result column="pay_check" jdbcType="INTEGER" property="payCheck" />
<result column="pay_password" jdbcType="VARCHAR" property="payPassword" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="sended_phone" jdbcType="VARCHAR" property="sendedPhone" />
@@ -21,7 +22,8 @@
</resultMap>
<sql id="allColumns">
`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`
</sql>

<sql id="dynamicWhereConditions">
@@ -117,11 +119,11 @@
</select>

<insert id="insertCouponPasswds" parameterType="java.util.List">
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
<foreach collection="list" item="item" index="index" separator=",">
(
#{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}
)
</foreach>


Загрузка…
Отмена
Сохранить