xiaoyong931011
2022-09-02 69dfb824a15e1273e9034eea7ab0a189a5ebefe4
20220822
1 files added
7 files modified
91 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/dto/WithdrawalDto.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/MallMemberWithdraw.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/model/SinglePayDto.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/service/UnipayService.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/service/impl/UnipayServiceImpl.java 5 ●●●●● 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);