| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | private SysUserClient sysUserClient; |
| | | @Autowired |
| | | private ShopWithdrawMapper shopWithdrawMapper; |
| | | |
| | | @Autowired |
| | | private WechatPayService wechatPayService; |
| | | |
| | | |
| | | @GetMapping("/getShopById") |
| | |
| | | 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()){ |
| | | //审核不通过 |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 提现审核通过后转账回调通知 |
| | | * @param singlePayCallbackResult |