| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.AppUser; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.other.api.domain.Shop; |
| | | import com.ruoyi.other.api.domain.ShopBalanceStatement; |
| | |
| | | * 提现申请列表 |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperation("提现申请列表") |
| | | @ApiOperation(value = "提现申请列表" ) |
| | | public R<IPage<ShopWithdraw>> list(@ApiParam("页码") @RequestParam Integer pageNum, |
| | | @ApiParam("每一页数据大小") Integer pageSize, |
| | | ShopWithdraw shopWithdraw) { |
| | |
| | | } |
| | | |
| | | @GetMapping("/shop/list") |
| | | @ApiOperation(value = "提现申请列表", notes = "提现申请列表", tags = {"门店后台"}) |
| | | @ApiOperation(value = "提现申请列表", notes = "提现申请列表", tags = {"门店后台","后台"}) |
| | | public R<IPage<ShopWithdraw>> shoplist(@ApiParam("页码") @RequestParam Integer pageNum, |
| | | @ApiParam("每一页数据大小") Integer pageSize, |
| | | @ApiParam("门店id")Integer shopId, |
| | | @ApiParam("手机号") String phone, |
| | | @ApiParam("审核状态(0=待审核,1=审核通过,2=审核失败)")Integer auditStatus) { |
| | | //模糊查询手机号 |
| | | List<Long> collect=null; |
| | | if (StringUtils.isNotEmpty(phone)) { |
| | | List<AppUser> data = appUserClient.getAppUserByPhoneNoFilter(phone).getData(); |
| | | collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); |
| | | if (CollectionUtils.isEmpty(collect)) { |
| | | return R.ok(new PageInfo<>()); |
| | | } |
| | | } |
| | | |
| | | Page<ShopWithdraw> page = shopWithdrawService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<ShopWithdraw>() |
| | | .eq(ShopWithdraw::getShopId,shopId) |
| | | .eq(shopId!=null,ShopWithdraw::getShopId,shopId) |
| | | .eq(auditStatus!=null,ShopWithdraw::getAuditStatus,auditStatus) |
| | | .in(collect!=null,ShopWithdraw::getCreateUserId,collect) |
| | | .orderByDesc(ShopWithdraw::getCreateTime) |
| | | |
| | | ); |
| | | page.getRecords().forEach(s->s.setIdStr(s.getId().toString())); |
| | | return R.ok(page); |
| | | } |
| | | |
| | | /* |
| | | @GetMapping("/shop/info") |
| | | @ApiOperation(value = "提现申请列表上方数据", notes = "提现申请列表", tags = {"门店后台"}) |
| | | public R<Shop> shopCommissionStatisticsinfo(){ |
| | |
| | | } |
| | | return R.ok(byId); |
| | | } |
| | | */ |
| | | |
| | | @GetMapping("/shop/with") |
| | | @ApiOperation(value = "提现申请", notes = "提现申请列表", tags = {"门店后台"}) |
| | | @ApiOperation(value = "提现申请", notes = "提现申请", tags = {"门店后台"}) |
| | | public R shopwith(@RequestParam BigDecimal money){ |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | SysUser sysUser = sysUserClient.getSysUser(loginUser.getUserid()).getData(); |
| | |
| | | } |
| | | ShopWithdraw shopWithdraw = new ShopWithdraw(); |
| | | shopWithdraw.setShopId(shopId); |
| | | shopWithdraw.setShopName(shop.getName()); |
| | | shopWithdraw.setCreateUserId(userId); |
| | | shopWithdraw.setMoney(money); |
| | | shopWithdraw.setAuditStatus(0);//待审核 |
| | | shopWithdraw.setStatus(1);//申请中 |
| | | shopWithdraw.setCreateTime(LocalDateTime.now()); |
| | | |
| | | shopWithdraw.setTradeMerchantNo(shop.getTradeMerchantNo()); |
| | | shopWithdraw.setReceiverAccountNoEnc(shop.getReceiverAccountNoEnc()); |
| | | shopWithdraw.setReceiverNameEnc(shop.getReceiverNameEnc()); |
| | | shopWithdraw.setReceiverBankChannelNo(shop.getReceiverBankChannelNo()); |
| | | shopWithdraw.setReceiverAccountType(shop.getReceiverAccountType()); |
| | | |
| | | shopWithdrawService.save(shopWithdraw); |
| | | //扣除账户余额及添加变动明细 |
| | | BigDecimal balance = shop.getBalance();//余额 |
| | | BigDecimal canWithdrawMoney = shop.getCanWithdrawMoney();//可提现金额 |
| | | BigDecimal withdrawMoney = shop.getWithdrawMoney();//审核中金额 |
| | | BigDecimal withdrawAuditMoney = shop.getWithdrawAuditMoney();//审核中金额 |
| | | shop.setBalance(balance.subtract(money).setScale(2, RoundingMode.HALF_EVEN));//余额减少 |
| | | shop.setCanWithdrawMoney(canWithdrawMoney.subtract(money).setScale(2, RoundingMode.HALF_EVEN));//可提现金额减少 |
| | | shop.setWithdrawAuditMoney(withdrawMoney.add(money).setScale(2, RoundingMode.HALF_EVEN));//审核中金额增加 |
| | | shop.setWithdrawAuditMoney(withdrawAuditMoney.add(money).setScale(2, RoundingMode.HALF_EVEN));//审核中金额增加 |
| | | shopService.updateById(shop); |
| | | //添加余额变动明细 |
| | | ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement(); |
| | |
| | | * 审核 |
| | | */ |
| | | @PostMapping("/audit") |
| | | @ApiOperation("审核") |
| | | @ApiOperation("提现审核") |
| | | public R<Void> audit(@RequestBody ShopWithdraw shopWithdraw) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | |
| | |
| | | Shop shop = shopService.getById(shopWithdraw1.getShopId()); |
| | | BigDecimal money = shopWithdraw1.getMoney(); |
| | | if(1 == shopWithdraw.getAuditStatus()){ |
| | | //通过 |
| | | //先检查账户余额是否充足 |
| | | AccountBalanceQueryResult accountBalanceQueryResult = TransferUtil.accountBalanceQuery(); |
| | | if(null == accountBalanceQueryResult){ |
| | |
| | | shopWithdraw1.setStatus(1); |
| | | } |
| | | if(2 == shopWithdraw.getAuditStatus()){ |
| | | //审核不通过 |
| | | //回退金额和添加变动明细 |
| | | BigDecimal balance = shop.getBalance(); |
| | | BigDecimal canWithdrawMoney = shop.getCanWithdrawMoney(); |
| | | BigDecimal withdrawMoney = shop.getWithdrawMoney(); |
| | | BigDecimal withdrawAuditMoney = shop.getWithdrawAuditMoney(); |
| | | shop.setBalance(balance.add(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shop.setCanWithdrawMoney(canWithdrawMoney.add(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shop.setWithdrawMoney(withdrawMoney.subtract(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | //审核中的金额减少 |
| | | shop.setWithdrawAuditMoney(withdrawAuditMoney.subtract(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shopService.updateById(shop); |
| | | //添加门店变动明细 |
| | | ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement(); |
| | | shopBalanceStatement.setShopId(shop.getId()); |
| | | shopBalanceStatement.setType(4); |
| | | shopBalanceStatement.setType(7); |
| | | shopBalanceStatement.setHistoricalBalance(balance); |
| | | shopBalanceStatement.setVariableAmount(money); |
| | | shopBalanceStatement.setBalance(shop.getBalance()); |
| | |
| | | shopBalanceStatement.setObjectId(shopWithdraw.getId()); |
| | | shopBalanceStatementService.save(shopBalanceStatement); |
| | | } |
| | | |
| | | |
| | | shopWithdraw1.setAuditStatus(shopWithdraw.getAuditStatus()); |
| | | shopWithdraw1.setAuditUserId(loginUser.getUserid()); |
| | | shopWithdraw1.setAuditTime(LocalDateTime.now()); |
| | |
| | | shopWithdrawService.updateById(shopWithdraw1); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo(); |
| | | ShopWithdraw shopWithdraw = shopWithdrawService.getById(merchantOrderNo); |
| | | if(203 == status || 205 == status){ |
| | | //到账 |
| | | if(1 == shopWithdraw.getStatus()){ |
| | | shopWithdraw.setStatus(2); |
| | | shopWithdraw.setArrivalTime(LocalDateTime.now()); |
| | | shopWithdrawService.updateById(shopWithdraw); |
| | | } |
| | | //更新店铺审核中的金额,和提现金额 |
| | | Shop shop = shopService.getById(shopWithdraw.getShopId()); |
| | | shop.setWithdrawAuditMoney(shop.getWithdrawAuditMoney().subtract(shopWithdraw.getMoney()));//审核中金额 |
| | | shop.setWithdrawMoney(shop.getWithdrawMoney().add(shopWithdraw.getMoney()));//提现金额 |
| | | shopService.updateById(shop); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("statusCode", 2001); |
| | | return jsonObject; |
| | | }else{ |
| | | //回退金额和添加变动明细 |
| | | BigDecimal money = shopWithdraw.getMoney().setScale(2, RoundingMode.HALF_EVEN); |
| | | Shop shop = shopService.getById(shopWithdraw.getShopId()); |
| | | BigDecimal balance = shop.getBalance(); |
| | | BigDecimal canWithdrawMoney = shop.getCanWithdrawMoney(); |
| | | BigDecimal withdrawMoney = shop.getWithdrawMoney(); |
| | | shop.setBalance(balance.add(shopWithdraw.getMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shop.setCanWithdrawMoney(canWithdrawMoney.add(shopWithdraw.getMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shop.setWithdrawMoney(withdrawMoney.subtract(shopWithdraw.getMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | BigDecimal withdrawAuditMoney = shop.getWithdrawAuditMoney(); |
| | | shop.setBalance(balance.add(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shop.setCanWithdrawMoney(canWithdrawMoney.add(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | //审核中的金额减少 |
| | | shop.setWithdrawAuditMoney(withdrawAuditMoney.subtract(money).setScale(2, RoundingMode.HALF_EVEN)); |
| | | shopService.updateById(shop); |
| | | //添加门店变动明细 |
| | | ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement(); |
| | | shopBalanceStatement.setShopId(shop.getId()); |
| | | shopBalanceStatement.setType(4); |
| | | shopBalanceStatement.setType(7); |
| | | shopBalanceStatement.setHistoricalBalance(balance); |
| | | shopBalanceStatement.setVariableAmount(shopWithdraw.getMoney()); |
| | | shopBalanceStatement.setVariableAmount(money); |
| | | shopBalanceStatement.setBalance(shop.getBalance()); |
| | | shopBalanceStatement.setCreateUserId(shopWithdraw.getAuditUserId()); |
| | | shopBalanceStatement.setCreateTime(LocalDateTime.now()); |
| | | shopBalanceStatement.setObjectId(shopWithdraw.getId()); |
| | | shopBalanceStatementService.save(shopBalanceStatement); |
| | | |
| | | |
| | | shopWithdraw.setStatus(3); |
| | | shopWithdraw.setRemark(singlePayCallbackResult.getErrorCodeDesc()); |
| | | shopWithdrawService.updateById(shopWithdraw); |