package com.ruoyi.other.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.Shop;
import com.ruoyi.other.api.domain.ShopWithdraw;
import com.ruoyi.other.dto.ShopBalanceDto;
import com.ruoyi.other.service.ShopService;
import com.ruoyi.other.service.ShopWithdrawService;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
*
* 前端控制器
*
*
* @author luodangjia
* @since 2024-11-20
*/
@RestController
@RequestMapping("/shop-withdraw")
@Api(tags = {"管理后台-门店管理-提现管理"})
public class ShopWithdrawController {
@Resource
private ShopWithdrawService shopWithdrawService;
@Resource
private ShopService shopService;
@Resource
private TokenService tokenService;
/**
* 提现申请列表
*/
@GetMapping("/list")
@ApiOperation("提现申请列表")
public R> list(@ApiParam("页码") @RequestParam Integer pageNum,
@ApiParam("每一页数据大小") Integer pageSize,
ShopWithdraw shopWithdraw) {
Page page = shopWithdrawService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper()
.like(StringUtils.isNotEmpty(shopWithdraw.getShopName()), ShopWithdraw::getShopName, shopWithdraw.getShopName()));
page.getRecords().forEach(item-> item.setShopName(shopService.getById(item.getShopId()).getName()));
return R.ok(page);
}
@GetMapping("/shop/list")
@ApiOperation(value = "提现申请列表", notes = "提现申请列表", tags = {"门店后台"})
public R> shoplist(@ApiParam("页码") @RequestParam Integer pageNum,
@ApiParam("每一页数据大小") Integer pageSize,
ShopWithdraw shopWithdraw) {
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
Page page = shopWithdrawService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper()
.eq(ShopWithdraw::getShopId,objectId)
.eq(shopWithdraw.getAuditStatus()!=null,ShopWithdraw::getAuditStatus,shopWithdraw.getAuditStatus())
.orderByDesc(ShopWithdraw::getCreateTime)
);
return R.ok(page);
}
@GetMapping("/shop/info")
@ApiOperation(value = "提现申请列表上方数据", notes = "提现申请列表", tags = {"门店后台"})
public R shopCommissionStatisticsinfo(){
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
Shop byId = shopService.getById(objectId);
return R.ok(byId);
}
@GetMapping("/shop/with")
@ApiOperation(value = "提现申请", notes = "提现申请列表", tags = {"门店后台"})
public R shopwith(@RequestParam BigDecimal money){
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
Shop byId = shopService.getById(objectId);
if (money.compareTo(byId.getCanWithdrawMoney())>0){
return R.fail("提现金额不能大于可提现金额");
}
ShopWithdraw shopWithdraw = new ShopWithdraw();
shopWithdraw.setShopId(objectId);
shopWithdraw.setMoney(money);
shopWithdraw.setAuditStatus(0);
shopWithdraw.setStatus(1);
shopWithdrawService.save(shopWithdraw);
return R.ok(byId);
}
/**
* 审核
*/
@PostMapping("/audit")
@ApiOperation("审核")
public R audit(@RequestBody ShopWithdraw shopWithdraw) {
LoginUser loginUser = tokenService.getLoginUser();
ShopWithdraw shopWithdraw1 = shopWithdrawService.getById(shopWithdraw.getId());
shopWithdraw1.setAuditStatus(shopWithdraw.getAuditStatus());
shopWithdraw1.setAuditUserId(loginUser.getUserid());
shopWithdraw1.setAuditTime(LocalDateTime.now());
shopWithdraw1.setAuditMsg(shopWithdraw.getAuditMsg());
shopWithdrawService.updateById(shopWithdraw1);
return R.ok();
}
}