From 69dfb824a15e1273e9034eea7ab0a189a5ebefe4 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 02 Sep 2022 14:21:36 +0800 Subject: [PATCH] 20220822 --- src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java | 2 + src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java | 4 ++ src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java | 5 ++ src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java | 28 ++++++++------ src/main/java/cc/mrbird/febs/pay/service/UnipayService.java | 12 ++++-- src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java | 9 ++++ src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 6 ++- src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java | 25 ------------ 8 files changed, 48 insertions(+), 43 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java b/src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java index f9aa0b6..e4af5b3 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java @@ -31,4 +31,8 @@ @ApiModelProperty(value = "姓名") private String name; + + @NotNull(message = "银行卡不能为空") + @ApiModelProperty(value = "用户银行卡ID") + private Long bankId; } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java index 70a2624..0e664a4 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java @@ -14,6 +14,8 @@ @TableName("mall_member_withdraw") public class MallMemberWithdraw extends BaseEntity { + private Long wtihdrawTypeId; + private Long memberId; private BigDecimal amount; diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index 53c42b4..71684cc 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -175,6 +175,8 @@ if(1 != mallMemberWithdraw.getStatus()){ return new FebsResponse().fail().message("当前状态不是提现中"); } + + mallMemberWithdraw.setStatus(3); mallMemberWithdrawMapper.updateById(mallMemberWithdraw); @@ -185,8 +187,8 @@ mallMoneyFlow.setStatus(3); mallMoneyFlowMapper.updateById(mallMoneyFlow); - //用户钱包增加对应的余额 - iApiMallMemberWalletService.addBalance(mallMoneyFlow.getAmount().negate(),mallMoneyFlow.getMemberId()); + //用户佣金增加对应的余额 + iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount().negate(),mallMemberWithdraw.getMemberId(),"commission"); return new FebsResponse().success(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java index 9d16081..02e5fbb 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java @@ -14,6 +14,7 @@ import cc.mrbird.febs.mall.service.IMallMemberWithdrawService; import cc.mrbird.febs.mall.service.MallMemberService; import cc.mrbird.febs.mall.vo.CashOutSettingVo; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.alibaba.fastjson.JSONObject; @@ -21,6 +22,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; @@ -39,8 +41,10 @@ private final IApiMallMemberWalletService walletService; private final MallMemberPaymentMapper mallMemberPaymentMapper; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final MallMemberBankMapper mallMemberBankMapper; @Override + @Transactional(rollbackFor = Exception.class) public void withdrawal(WithdrawalDto withdrawalDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = mallMemberService.getById(memberId); @@ -52,13 +56,19 @@ throw new FebsException("支付密码错误"); } - if (withdrawalDto.getAmount().compareTo(BigDecimal.valueOf(100)) < 0) { - throw new FebsException("最小提现金额为100"); + CashOutSettingVo cashOutSettingVo = new CashOutSettingVo(); + DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode()); + if (dic != null) { + cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class); } - MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(memberId); - if (payment == null) { - throw new FebsException("未设置收款方式"); + if (withdrawalDto.getAmount().compareTo(cashOutSettingVo.getMinCashOut()) < 0) { + throw new FebsException("最小提现金额为"+cashOutSettingVo.getMinCashOut().setScale(2,BigDecimal.ROUND_DOWN)); + } + + MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(withdrawalDto.getBankId()); + if(ObjectUtil.isEmpty(mallMemberBank)){ + throw new FebsException("未找到银行卡信息"); } BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); @@ -72,14 +82,7 @@ } } - CashOutSettingVo cashOutSettingVo = new CashOutSettingVo(); - DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode()); - if (dic != null) { - cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class); - } - BigDecimal serviceFee = cashOutSettingVo.getServiceFee().multiply(BigDecimal.valueOf(0.01)); - walletService.reduce(withdrawalDto.getAmount(), memberId, "commission"); String orderNo = MallUtils.getOrderNum("W"); @@ -89,6 +92,7 @@ withdraw.setAmount(withdrawalDto.getAmount()); withdraw.setStatus(1); withdraw.setAmountFee(serviceFee.multiply(withdrawalDto.getAmount())); + withdraw.setWtihdrawTypeId(mallMemberBank.getId()); this.baseMapper.insert(withdraw); mallMemberService.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), orderNo, null, null, null, 1, FlowTypeEnum.COMMISSION.getValue()); diff --git a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java index 50a4882..d7779f7 100644 --- a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java +++ b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java @@ -141,23 +141,6 @@ return "success"; } -// public static void main(String[] args) { -// String output = "https://www.baidu.com?r1_MerchantNo=888000000000000&r2_OrderNo=2020100000000000000&r3_Amount=10.00&r4_Cur=1&r5_Mp=goods&r6_Status=100&r7_TrxNo=100220100000000000&r8_BankOrderNo=100220100000000000&r9_BankTrxNo=4200000000202000000000000000&ra_PayTime=2022-08-11%2B16%253A14%253A39&rb_DealTime=2022-08-11%2B16%253A14%253A39&rc_BankCode=WEIXI_GZH&hmac=14c3819b5cc7bb80635901934f76c7a4"; -// String params = StrUtil.subAfter(output, "?", true); -// System.out.println(params); -// List<String> paramStrList = StrUtil.splitTrim(params, "&"); -// String orderNo = ""; -// if(CollUtil.isNotEmpty(paramStrList)){ -// for(String paramStr :paramStrList){ -// boolean r2_orderNo = paramStr.startsWith("r2_OrderNo"); -// if(r2_orderNo){ -// orderNo = StrUtil.subAfter(paramStr, "=", true); -// } -// } -// } -// System.out.println(orderNo); -// } - @ApiOperation(value = "获取协议支付签约短信", notes = "获取协议支付签约短信") @PostMapping(value = "getAgreeMentPaySms") public FebsResponse getAgreeMentPaySms(@RequestBody AgreeMentPaySmsDto agreeMentPaySmsDto) { @@ -202,14 +185,6 @@ } } } - -// public static void main(String[] args) { -// String data = "{\\\"bank_trx_no\\\":\\\"0825144603229910\\\",\\\"jp_order_no\\\":\\\"100120220825446322447537651712\\\",\\\"mch_order_no\\\":\\\"2022082514435329133\\\",\\\"order_amount\\\":0.10,\\\"order_desc\\\":\\\"测试\\\",\\\"order_status\\\":\\\"P1000\\\",\\\"pay_success_time\\\":\\\"2022-08-25 14:46:04\\\"}"; -// JSONObject jsonObject = JSONUtil.parseObj(data); -// String orderNo = jsonObject.get("mch_order_no").toString(); -// String pay_success_time = jsonObject.get("pay_success_time").toString(); -// System.out.println(orderNo +"222"+pay_success_time); -// } @PostMapping(value = "/agreeMentPayCallBack") public String agreeMentPayCallBack(@RequestBody AgreeMentPayCallBackDto agreeMentPayCallBackDto){ diff --git a/src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java b/src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java new file mode 100644 index 0000000..e3de02f --- /dev/null +++ b/src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java @@ -0,0 +1,9 @@ +package cc.mrbird.febs.pay.model; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "SinglePayDto", description = "汇聚支付代付接收参数类") +public class SinglePayDto { +} diff --git a/src/main/java/cc/mrbird/febs/pay/service/UnipayService.java b/src/main/java/cc/mrbird/febs/pay/service/UnipayService.java index b61ed57..e0e134b 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/UnipayService.java +++ b/src/main/java/cc/mrbird/febs/pay/service/UnipayService.java @@ -1,9 +1,6 @@ package cc.mrbird.febs.pay.service; -import cc.mrbird.febs.pay.model.AgreeMentPaySmsDto; -import cc.mrbird.febs.pay.model.AgreementPayDto; -import cc.mrbird.febs.pay.model.AgreementSignDto; -import cc.mrbird.febs.pay.model.UnipayDto; +import cc.mrbird.febs.pay.model.*; public interface UnipayService { /** @@ -40,4 +37,11 @@ */ String agreementPay(AgreementPayDto agreementPayDto); + /** + * 代付 + * @param singlePayDto + * @return + */ + String singlePay(SinglePayDto singlePayDto); + } diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java index 8687d41..1112631 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java @@ -232,6 +232,11 @@ } } + @Override + public String singlePay(SinglePayDto singlePayDto) { + return null; + } + public static void main(String[] args) { // BigDecimal value = new BigDecimal("0.10858").setScale(2,BigDecimal.ROUND_HALF_UP); BigDecimal value = new BigDecimal("1231.1").setScale(2, BigDecimal.ROUND_DOWN); -- Gitblit v1.9.1