| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.qqflow.engine.domain.system.controller;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.qqflow.engine.common.PageResult;
- import com.qqflow.engine.common.Result;
- import com.qqflow.engine.domain.system.assembler.UserAssembler;
- import com.qqflow.engine.domain.system.dto.BindWeComDTO;
- import com.qqflow.engine.domain.system.dto.UserDTO;
- import com.qqflow.engine.domain.system.entity.SysUser;
- import com.qqflow.engine.domain.system.service.SysUserService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.annotation.Resource;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- @Tag(name = "用户管理")
- @RestController
- @RequestMapping("/system/user")
- @PreAuthorize("hasAnyRole('super_admin','flow_manager')")
- public class SysUserController {
- @Resource
- private SysUserService sysUserService;
- @Operation(summary = "分页查询用户")
- @GetMapping("/list")
- public Result<PageResult<UserDTO>> list(
- @RequestParam(defaultValue = "1") Integer pageNum,
- @RequestParam(defaultValue = "10") Integer pageSize,
- @RequestParam(required = false) Long deptId,
- @RequestParam(required = false) String username,
- @RequestParam(required = false) Integer status) {
- Page<UserDTO> page = sysUserService.pageUsers(new Page<>(pageNum, pageSize), deptId, username, status);
- return Result.ok(PageResult.of(page.getTotal(), page.getRecords()));
- }
- @Operation(summary = "根据ID查询用户")
- @GetMapping("/{id}")
- public Result<UserDTO> getById(@PathVariable Long id) {
- SysUser user = sysUserService.getUserById(id);
- return Result.ok(UserAssembler.toDTO(user));
- }
- @Operation(summary = "根据用户名查询")
- @GetMapping("/username/{username}")
- public Result<UserDTO> getByUsername(@PathVariable String username) {
- SysUser user = sysUserService.getByUsername(username);
- return Result.ok(UserAssembler.toDTO(user));
- }
- @Operation(summary = "新增用户")
- @PostMapping
- @PreAuthorize("hasRole('super_admin')")
- public Result<Void> add(@RequestBody SysUser user) {
- sysUserService.addUser(user);
- return Result.ok();
- }
- @Operation(summary = "修改用户")
- @PutMapping
- @PreAuthorize("hasRole('super_admin')")
- public Result<Void> update(@RequestBody SysUser user) {
- sysUserService.updateUser(user);
- return Result.ok();
- }
- @Operation(summary = "删除用户")
- @DeleteMapping("/{id}")
- @PreAuthorize("hasRole('super_admin')")
- public Result<Void> delete(@PathVariable Long id) {
- sysUserService.removeUser(id);
- return Result.ok();
- }
- /**
- * 绑定/解绑员工企业微信账号
- * <p>
- * TODO: 实际企微消息推送由外部对接系统完成,本接口仅保存用户与企微账号的映射关系。
- * </p>
- */
- @Operation(summary = "绑定/解绑企业微信账号")
- @PutMapping("/{id}/wecom")
- @PreAuthorize("hasRole('super_admin')")
- public Result<Void> bindWeCom(@PathVariable Long id, @RequestBody BindWeComDTO dto) {
- sysUserService.bindWeCom(id, dto.getWecomUserId(), dto.getWecomRemindEnabled());
- return Result.ok();
- }
- }
|