huliguo
4 天以前 6acf6357094588946b5528f1ef1ed84a0f1037fd
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
@@ -26,6 +26,7 @@
import com.ruoyi.other.util.payment.model.SinglePay;
import com.ruoyi.other.util.payment.model.SinglePayCallbackResult;
import com.ruoyi.other.util.payment.model.SinglePayResult;
import com.ruoyi.other.util.payment.wx.WechatPayService;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
@@ -37,11 +38,13 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -75,6 +78,9 @@
    private SysUserClient sysUserClient;
    @Autowired
    private ShopWithdrawMapper shopWithdrawMapper;
    @Autowired
    private WechatPayService wechatPayService;
    @GetMapping("/getShopById")
@@ -269,33 +275,30 @@
        Shop shop = shopService.getById(shopWithdraw1.getShopId());
        BigDecimal money = shopWithdraw1.getMoney();
        if(1 == shopWithdraw.getAuditStatus()){
            //通过
            // 先检查账户余额是否充足  todo 商户编号
            AccountBalanceQueryResult accountBalanceQueryResult = TransferUtil.accountBalanceQuery();
            if(null == accountBalanceQueryResult){
                return R.fail("查询账户余额出错");
            }
            Double useAbleSettAmount = accountBalanceQueryResult.getUseAbleSettAmount();
            if(useAbleSettAmount < (shopWithdraw1.getMoney().doubleValue() + 1)){
                return R.fail("账户可用余额不足,请先补充账户余额");
            }
            //银行卡转账
            SinglePay singlePay = new SinglePay();
            singlePay.setTradeMerchantNo(TransferUtil.sysTradeMerchantNo);
            singlePay.setMerchantOrderNo(shopWithdraw1.getId().toString());
            singlePay.setReceiverAccountNoEnc(shop.getReceiverAccountNoEnc());
            singlePay.setReceiverNameEnc(shop.getReceiverNameEnc());
            singlePay.setReceiverAccountType(shop.getReceiverAccountType());
            singlePay.setReceiverBankChannelNo(shop.getReceiverBankChannelNo());
            singlePay.setPaidAmount(shopWithdraw1.getMoney().doubleValue());
            singlePay.setPaidDesc("账户余额提现");
            singlePay.setPaidUse("208");
            singlePay.setCallbackUrl("/other/shop-withdraw/withdrawalCallback");
            SinglePayResult singlePayResult = TransferUtil.singlePay(singlePay);
            if(null == singlePayResult){
                return R.fail("转账失败");
            }
            shopWithdraw1.setStatus(1);
            //取消商户转账,线下转账
           /*
           try {
                Map<String, String> map = wechatPayService.payToBankCard(shopWithdraw1.getId().toString(),
                        shopWithdraw1.getReceiverAccountNoEnc(),shopWithdraw1.getReceiverNameEnc(),shopWithdraw1.getReceiverBankChannelNo(),shopWithdraw1.getMoney(),shopWithdraw.getRemark());
                if (map.get("return_code").equals("SUCCESS")) {
                    System.out.println("转账申请成功");
                    shopWithdraw1.setStatus(1);
                }else {
                    return R.fail("转账申请失败");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }*/
            //到账
            shopWithdraw1.setStatus(2);
            shopWithdraw1.setArrivalTime(LocalDateTime.now());
            shopWithdrawService.updateById(shopWithdraw);
            //更新店铺审核中的金额,和提现金额
            shop.setWithdrawAuditMoney(shop.getWithdrawAuditMoney().subtract(shopWithdraw1.getMoney()));//审核中金额
            shop.setWithdrawMoney(shop.getWithdrawMoney().add(shopWithdraw1.getMoney()));//提现金额
            shopService.updateById(shop);
        }
        if(2 == shopWithdraw.getAuditStatus()){
            //审核不通过
@@ -330,8 +333,7 @@
        return R.ok();
    }
    /**
     * 提现审核通过后转账回调通知
     * @param singlePayCallbackResult