xiaoyong931011
2022-09-02 b6a76de40ec625b440b28d8ec7977d355eec01c8
20220902
2 files added
3 files modified
87 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java 44 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/model/SinglePayCallBackDto.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/model/SinglePayCallBackVo.java 9 ●●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/ProfitTest.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -178,16 +178,6 @@
            return new FebsResponse().fail().message("提现失败,请联系技术人员");
        }
        mallMemberWithdraw.setStatus(2);
        mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
        QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>();
        objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
        objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
        MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper);
        mallMoneyFlow.setStatus(2);
        mallMoneyFlowMapper.updateById(mallMoneyFlow);
        return new FebsResponse().success();
    }
src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
@@ -14,10 +14,7 @@
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMallAchieveService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.pay.model.AgreeMentPayCallBackDto;
import cc.mrbird.febs.pay.model.AgreeMentPaySmsDto;
import cc.mrbird.febs.pay.model.AgreementSignDto;
import cc.mrbird.febs.pay.model.UniPayCallBackDto;
import cc.mrbird.febs.pay.model.*;
import cc.mrbird.febs.pay.service.UnipayService;
import cc.mrbird.febs.pay.util.JsonUtil;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
@@ -27,6 +24,7 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -75,6 +73,10 @@
    private MallMemberBankMapper mallMemberBankMapper;
    @Autowired
    private MallMemberBankSignMapper mallMemberBankSignMapper;
    @Autowired
    private MallMemberWithdrawMapper mallMemberWithdrawMapper;
    @Autowired
    private MallMoneyFlowMapper mallMoneyFlowMapper;
    @GetMapping(value = "/unipayCallBack")
    public String unipayCallBack(HttpServletRequest request, UniPayCallBackDto uniPayCallBackDto){
@@ -254,4 +256,38 @@
        return "success";
    }
    @PostMapping(value = "/singlePayCallBack")
    public SinglePayCallBackVo singlePayCallBack(@RequestBody SinglePayCallBackDto singlePayCallBackDto){
        log.info("进入汇聚支付代付回调"+ JSONUtil.parseObj(singlePayCallBackDto));
        String status = singlePayCallBackDto.getStatus();
        BigDecimal paidAmount = singlePayCallBackDto.getPaidAmount();
        BigDecimal paidAmountFee = singlePayCallBackDto.getFee();
        String errorCode = singlePayCallBackDto.getErrorCode();
        String merchantOrderNo = singlePayCallBackDto.getMerchantOrderNo();
        log.info("进入汇聚支付代付回调"+status+";"+paidAmount+";"+paidAmountFee+";");
        if("205".equals(status) && "".equals(errorCode)){
            QueryWrapper<MallMemberWithdraw> objectQueryWrapper = new QueryWrapper<>();
            objectQueryWrapper.eq("withdraw_no",merchantOrderNo);
            MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectOne(objectQueryWrapper);
            if(ObjectUtil.isNotEmpty(mallMemberWithdraw)){
                mallMemberWithdraw.setStatus(2);
                mallMemberWithdrawMapper.updateById(mallMemberWithdraw);
                QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>();
                flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo());
                flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue());
                MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper);
                if(ObjectUtil.isNotEmpty(mallMoneyFlow)){
                    mallMoneyFlow.setStatus(2);
                    mallMoneyFlowMapper.updateById(mallMoneyFlow);
                }
            }
        }
        SinglePayCallBackVo singlePayCallBackVo = new SinglePayCallBackVo();
        singlePayCallBackVo.setStatusCode("2001");
        singlePayCallBackVo.setMessage("成功");
        return singlePayCallBackVo;
    }
}
src/main/java/cc/mrbird/febs/pay/model/SinglePayCallBackDto.java
New file
@@ -0,0 +1,22 @@
package cc.mrbird.febs.pay.model;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class SinglePayCallBackDto {
    private String status;//交易状态
    private String errorCode;//错误码
    private String errorCodeDesc;//错误描述
    private String userNo;//商户编号
    private String tradeMerchantNo;//报备商户号
    private String merchantOrderNo;//商户订单号
    private String platformSerialNo;//平台流水号
    private String receiverAccountNoEnc;//收款账户号
    private String receiverNameEnc;//收款人
    private BigDecimal paidAmount;//交易金额
    private BigDecimal fee;//手续费
    private String hmac;//签名数据
}
src/main/java/cc/mrbird/febs/pay/model/SinglePayCallBackVo.java
New file
@@ -0,0 +1,9 @@
package cc.mrbird.febs.pay.model;
import lombok.Data;
@Data
public class SinglePayCallBackVo {
    private String statusCode;
    private String message;
}
src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -188,7 +188,7 @@
        String orderNo = MallUtils.getOrderNum("W");
        SinglePayDto singlePayDto = new SinglePayDto();
        singlePayDto.setMerchantOrderNo(orderNo);
        singlePayDto.setReceiverAccountNoEncBankNo("6222031901002389639");
        singlePayDto.setReceiverAccountNoEncBankNo("6222031903210023839639");
        singlePayDto.setReceiverAccountNoEncName("肖永");
        singlePayDto.setReceiverAccountType("201");
        BigDecimal paidAmount = new BigDecimal(1.00);