package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TDeptUpAndDownDTO; import com.ruoyi.system.model.TDept; import com.ruoyi.system.model.TDeptToUser; import com.ruoyi.system.query.TDeptQuery; import com.ruoyi.system.service.TDeptService; import com.ruoyi.system.service.TDeptToUserService; import com.ruoyi.system.vo.DeptVO; 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 java.time.LocalDateTime; import java.util.List; /** *

* 部门管理 前端控制器 *

* * @author xiaochen * @since 2025-02-06 */ @Api(tags = "部门管理") @RestController @RequestMapping("/t-dept") public class TDeptController { private final TDeptService deptService; private final TDeptToUserService deptToUserService; private final TokenService tokenService; @Autowired public TDeptController(TDeptService deptService, TDeptToUserService deptToUserService, TokenService tokenService) { this.deptService = deptService; this.deptToUserService = deptToUserService; this.tokenService = tokenService; } /** * 获取部门管理管理列表 */ @PreAuthorize("@ss.hasPermi('system:department:list')") @ApiOperation(value = "获取部门管理分页列表") @PostMapping(value = "/pageList") public R> pageList(@RequestBody TDeptQuery query) { return R.ok(deptService.pageList(query)); } /** * 获取部门管理管理列表 */ @ApiOperation(value = "获取部门管理列表-启用状态") @PostMapping(value = "/list") public R> list() { return R.ok(deptService.list(Wrappers.lambdaQuery(TDept.class) .eq(TDept::getStatus, 1))); } /** * 获取部门管理管理列表 */ @ApiOperation(value = "获取部门管理列表-所有状态") @PostMapping(value = "/listAll") public R> listAll() { return R.ok(deptService.list(Wrappers.lambdaQuery(TDept.class))); } /** * 添加部门管理管理 */ @PreAuthorize("@ss.hasPermi('system:department:add')") @Log(title = "部门管理信息-新增部门管理", businessType = BusinessType.INSERT) @ApiOperation(value = "添加部门管理") @PostMapping(value = "/add") public R add(@Validated @RequestBody TDept dto) { // 判断部门id是否存在 boolean flag = deptService.isExit(dto); if (flag){ return R.fail("部门ID已存在"); } return R.ok(deptService.save(dto)); } /** * 修改部门管理 */ @PreAuthorize("@ss.hasPermi('system:department:edit')") @Log(title = "部门管理信息-修改部门管理", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改部门管理") @PostMapping(value = "/update") public R update(@Validated @RequestBody TDept dto) { // 判断部门id是否存在 boolean flag = deptService.isExit(dto); if (flag){ return R.fail("部门ID已存在"); } return R.ok(deptService.updateById(dto)); } /** * 查看部门管理详情 */ @PreAuthorize("@ss.hasPermi('system:department:edit')") @ApiOperation(value = "查看部门管理详情") @GetMapping(value = "/getDetailById") public R getDetailById(@RequestParam String id) { return R.ok(deptService.getById(id)); } /** * 删除部门管理 */ @PreAuthorize("@ss.hasPermi('system:department:delete')") @Log(title = "部门管理信息-删除部门管理", businessType = BusinessType.DELETE) @ApiOperation(value = "删除部门管理") @DeleteMapping(value = "/deleteById") public R deleteById(@RequestParam String id) { // 删除部门用户关联信息 deptToUserService.remove(Wrappers.lambdaQuery(TDeptToUser.class) .eq(TDeptToUser::getDeptId, id)); return R.ok(deptService.removeById(id)); } /** * 批量删除部门管理 */ @PreAuthorize("@ss.hasPermi('system:department:delete')") @Log(title = "部门管理信息-删除部门管理", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除部门管理") @DeleteMapping(value = "/deleteByIds") public R deleteByIds(@RequestBody List ids) { // 删除部门用户关联信息 deptToUserService.remove(Wrappers.lambdaQuery(TDeptToUser.class) .in(TDeptToUser::getDeptId, ids)); return R.ok(deptService.removeByIds(ids)); } /** * 轮播图上下架 */ @PreAuthorize("@ss.hasPermi('system:department:open')") @ApiOperation(value = "部门管理上下架",notes = "true:上架,false:下架") @PostMapping(value = "/upAndDown") public R upAndDown(@RequestBody TDeptUpAndDownDTO dto) { SysUser user = tokenService.getLoginUser().getUser(); TDept dept = deptService.getById(dto.getId()); dept.setStatus(dto.getStatus()); dept.setDisableRemark(dto.getDisableRemark()); dept.setOperatingTime(LocalDateTime.now()); dept.setOperatingPerson(user.getNickName()+"("+user.getUserName()+")"); return R.ok(deptService.updateById(dept)); } }