package com.cdzy.user.controller; import com.cdzy.common.model.JsonResult; import com.cdzy.common.model.PageParam; import com.cdzy.user.model.entity.Roles; import com.cdzy.user.service.RolesService; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import static com.cdzy.user.model.entity.table.RolesTableDef.ROLES; import static com.cdzy.user.model.entity.table.StaffRolesTableDef.STAFF_ROLES; /** * 角色控制层。 * * @author attiya * @since 2025-03-14 */ @RestController @RequestMapping("/roles") public class RolesController { @Resource private RolesService rolesService; /** * 添加。 * * @param roles 角色信息 * @return {@code true} 添加成功,{@code false} 添加失败 */ @PostMapping("save") public JsonResult save(@RequestBody Roles roles) { rolesService.save(roles); return JsonResult.success(); } /** * 根据主键删除。 * * @param id 主键 * @return {@code true} 删除成功,{@code false} 删除失败 */ @DeleteMapping("remove/{id}") public JsonResult remove(@PathVariable("id") Long id) { rolesService.removeById(id); return JsonResult.success(); } /** * 根据主键更新。 * * @param roles 角色信息 * @return {@code true} 更新成功,{@code false} 更新失败 */ @PostMapping("update") public JsonResult update(@RequestBody Roles roles) { rolesService.updateById(roles); return JsonResult.success(); } /** * 查询所有。 * * @return 所有数据 */ @GetMapping("list") public JsonResult list() { List list = rolesService.list(); return JsonResult.success(list); } /** * 根据主键获取详细信息。 * * @param id 主键 * @return 详情 */ @GetMapping("getInfo/{id}") public JsonResult getInfo(@PathVariable("id") Long id) { Roles roles = rolesService.getById(id); return JsonResult.success(roles); } /** * 分页查询。 * * @param pageParam 分页对象 * @return 分页对象 */ @GetMapping("page") public JsonResult page(@Validated PageParam pageParam) { Page page = rolesService.page(pageParam.getPage()); return JsonResult.success(page); } /** * 获取当前登陆用户的所有角色码。 * * @return 分页对象 */ @GetMapping("roleCodeList") public JsonResult listByStaffId(@RequestParam("staffId") String staffId) { QueryWrapper queryWrapper = QueryWrapper.create() .select(ROLES.ROLE_CODE) .leftJoin(STAFF_ROLES).on(STAFF_ROLES.ROLE_ID.eq(ROLES.ROLE_CODE)) .where(STAFF_ROLES.STAFF_ID.eq(staffId)); List list = rolesService.listAs(queryWrapper, String.class); return JsonResult.success(list); } }