src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/pay/service/UnipayService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java | ●●●●● patch | view | raw | blame | history |
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; } 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; 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(); } 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()); 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){ src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java
New file @@ -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 { } 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); } 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);