package com.ruoyi.web.controller.api; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.dto.*; import com.ruoyi.system.model.TBill; import com.ruoyi.system.model.TBillConfirm; import com.ruoyi.system.model.TBillDetail; import com.ruoyi.system.query.TBillQuery; import com.ruoyi.system.service.TBillConfirmService; import com.ruoyi.system.service.TBillDetailService; import com.ruoyi.system.service.TBillService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotEmpty; import java.util.List; /** *

* 租金账单 前端控制器 *

* * @author xiaochen * @since 2025-01-17 */ @Api(tags = "账单管理") @RestController @RequestMapping("/t-bill") public class TBillController { @Autowired TBillService tBillService; @Autowired TBillDetailService tBillDetailService; @Autowired TBillConfirmService tBillConfirmService; @PreAuthorize("@ss.hasPermi('bill:list')") @PostMapping("list") @ApiOperation("分页查询账单列表") public R> list(@RequestBody TBillQuery query){ PageInfo pageInfo = tBillService.queryPage(query); return R.ok(pageInfo); } @PreAuthorize("@ss.hasPermi('bill:list:addRent')") @PostMapping("add") @ApiOperation("新增账单") public R> add(@Validated @RequestBody TbillSaveDto bill){ tBillService.saveBill(bill); return R.ok(); } @ApiOperation("通过ID查找详情") @GetMapping("getDetailById") public R getDetailById(@RequestParam String id){ if (StringUtils.isEmpty(id)){ return R.fail(); } TBillDto dto = tBillService.getDetailByBillId(id); if (dto.getBillType().equals("3")){ List details = tBillDetailService.getByBillId(id); for (TBillDetail detail : details) { if (detail.getLiveType()==1)dto.setWater(detail); //水费 else dto.setElect(detail); //电费 } } if (StringUtils.isNotEmpty(dto.getConfirmId())){ TBillConfirm confirm = tBillConfirmService.getById(dto.getConfirmId()); dto.setConfirm(confirm); } return R.ok(dto); } @PreAuthorize("@ss.hasPermi('bill:list:paid')") @ApiOperation("确认线下缴费") @PostMapping("checkOfflinePay") public R checkOfflinePay(@Validated @RequestBody OfflinePayCheckDto dto){ tBillService.checkOfflinePay(dto); return R.ok(); } @PreAuthorize("@ss.hasPermi('bill:list:sendMsg')") @ApiOperation("账单批量发送短信通知") @PostMapping("sendSmsByBillIds") public R sendSmsByBillIds(@Validated @RequestBody SmsByBillDto dto){ Integer failNum = tBillService.sendSmsByBillIds(dto); return R.ok(failNum); } @PreAuthorize("@ss.hasPermi('bill:list:sendMail')") @ApiOperation("账单批量发送邮箱通知") @PostMapping("sendMailBatchByBillIds") public R sendMailBatchByBillIds(@Validated @RequestBody SmsByBillDto dto){ Integer failNum = tBillService.sendMailBatchByBillIds(dto); return R.ok(failNum); } @PreAuthorize("@ss.hasPermi('bill:list:receipt')") @ApiOperation("收款") @PostMapping("cashPay") public R cashPay(@RequestBody CachPayDto cachPayDto){ tBillService.cashPay(cachPayDto); return R.ok(); } @ApiOperation("统计") @GetMapping("statistics") public R statistics(){ BillStatisticsDto dto = tBillService.statistics(); return R.ok(dto); } }