package com.ruoyi.web.controller; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.utils.SecurityUtils; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.web.domain.UserZd; import com.ruoyi.web.service.IUserZdService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * 用户信息-账单Controller * * @author shenzx * @date 2025-09-01 */ @RestController @RequestMapping("/user/zd") public class UserZdController extends BaseController { private IUserZdService userZdService; @Autowired public void setUserZdService(IUserZdService userZdService) { this.userZdService = userZdService; } @GetMapping("balance") @ApiOperation("余额") public AjaxResult balance(){ QueryWrapper qw = new QueryWrapper<>(); qw.lambda().eq(UserZd::getUserId, SecurityUtils.getUserId()); List list = userZdService.list(qw); if (list.isEmpty()) return success(BigDecimal.ZERO); BigDecimal reduce = list.stream().filter(v -> "1".equals(v.getStatus())).map(UserZd::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); return success(reduce); } /** * 查询用户信息-账单列表 */ @GetMapping("/list") public TableDataInfo list(UserZd userZd) { startPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.setEntity(userZd); List userZdList = userZdService.list(queryWrapper); return getDataTable(userZdList); } /** * 导出用户信息-账单列表 */ @Log(title = "用户信息-账单", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, UserZd userZd) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.setEntity(userZd); List list = userZdService.list(queryWrapper); ExcelUtil util = new ExcelUtil<>(UserZd.class); util.exportExcel(response, list, "用户信息-账单数据"); } /** * 获取用户信息-账单详细信息 */ @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(userZdService.getById(id)); } /** * 新增用户信息-账单 */ @Log(title = "用户信息-账单", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody UserZd userZd) { userZdService.save(userZd); return success(userZd); } /** * 修改用户信息-账单 */ @Log(title = "用户信息-账单", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody UserZd userZd) { userZdService.updateById(userZd); return success(userZd); } /** * 删除用户信息-账单 */ @Log(title = "用户信息-账单", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(userZdService.removeByIds(Arrays.asList(ids))); } }