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