新增账号列表查询接口,新增权限新增编辑接口

This commit is contained in:
dzl 2025-05-12 16:37:58 +08:00
parent ab0d67f477
commit 2fa824bcec
10 changed files with 264 additions and 56 deletions

View File

@ -2,13 +2,21 @@ package com.cdzy.user.controller;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.user.model.dto.RolePermissionsDto;
import com.cdzy.user.model.dto.RolesDto;
import com.cdzy.user.model.entity.Permissions;
import com.cdzy.user.model.entity.RolePermissions;
import com.cdzy.user.model.entity.Roles;
import com.cdzy.user.service.PermissionsService;
import com.cdzy.user.service.RolePermissionsService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import static com.cdzy.user.model.entity.table.PermissionsTableDef.PERMISSIONS;
@ -107,7 +115,7 @@ public class PermissionsController {
* @return 分页对象
*/
@GetMapping("permCodeList")
public JsonResult<?> listByStaffId(@RequestParam("staffId")String staffId) {
public JsonResult<?> listByStaffId(@RequestParam("staffId") String staffId) {
QueryWrapper queryWrapper = QueryWrapper.create()
.select(PERMISSIONS.PERM_CODE)
.leftJoin(ROLE_PERMISSIONS).on(ROLE_PERMISSIONS.PERM_ID.eq(PERMISSIONS.PERM_ID))
@ -116,5 +124,4 @@ public class PermissionsController {
List<String> list = permissionsService.listAs(queryWrapper, String.class);
return JsonResult.success(list);
}
}

View File

@ -2,6 +2,7 @@ package com.cdzy.user.controller;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.user.model.dto.ResRolePermissionsDto;
import com.cdzy.user.model.entity.RolePermissions;
import com.cdzy.user.service.RolePermissionsService;
import com.mybatisflex.core.paginate.Page;
@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import static com.cdzy.user.model.entity.table.PermissionsTableDef.PERMISSIONS;
import static com.cdzy.user.model.entity.table.RolePermissionsTableDef.ROLE_PERMISSIONS;
/**
@ -107,8 +109,10 @@ public class RolePermissionsController {
@GetMapping("getRolePermissionsByRoleId/{roleId}")
public JsonResult<?> getRolePermissionsByRoleId(@PathVariable("roleId") Long roleId) {
QueryWrapper queryWrapper = QueryWrapper.create()
.eq(ROLE_PERMISSIONS.ROLE_ID.getName(), roleId);
List<RolePermissions> list = rolePermissionsService.list(queryWrapper);
.select(ROLE_PERMISSIONS.ALL_COLUMNS, PERMISSIONS.PERM_TYPE)
.innerJoin(PERMISSIONS).on(ROLE_PERMISSIONS.PERM_ID.eq(PERMISSIONS.PERM_ID))
.where(ROLE_PERMISSIONS.ROLE_ID.eq(roleId));
List<ResRolePermissionsDto> list = rolePermissionsService.listAs(queryWrapper, ResRolePermissionsDto.class);
return JsonResult.success(list);
}

View File

@ -4,21 +4,30 @@ import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.common.model.StaffDto;
import com.cdzy.user.model.dto.PageParamDto;
import com.cdzy.user.model.dto.RoleListQueryDto;
import com.cdzy.user.model.dto.ResRolesDto;
import com.cdzy.user.model.dto.RolePermissionsDto;
import com.cdzy.user.model.dto.RolesDto;
import com.cdzy.user.model.entity.RolePermissions;
import com.cdzy.user.model.entity.Roles;
import com.cdzy.user.model.entity.Staff;
import com.cdzy.user.service.PermissionsService;
import com.cdzy.user.service.RolePermissionsService;
import com.cdzy.user.service.RolesService;
import com.cdzy.user.service.StaffService;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import static com.cdzy.user.model.entity.table.OrganizationsTableDef.ORGANIZATIONS;
@ -46,6 +55,9 @@ public class RolesController {
@Resource
private StaffService staffService;
@Autowired
private RolePermissionsService rolePermissionsService;
/**
* 添加
*
@ -124,10 +136,7 @@ public class RolesController {
*/
@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));
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<String> list = rolesService.listAs(queryWrapper, String.class);
return JsonResult.success(list);
}
@ -135,49 +144,39 @@ public class RolesController {
/**
* 分页查询角色列表
*
* @param pageParam
* @param roleListQueryDto
* @return
*/
@PostMapping("pageQueryRoles")
public JsonResult<?> pageQueryRoles(@RequestBody @Validated PageParamDto pageParam) {
public JsonResult<?> pageQueryRoles(@RequestBody @Validated RoleListQueryDto roleListQueryDto) {
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
QueryWrapper queryStaff = QueryWrapper.create()
.where(STAFF.STAFF_ID.eq(loginId));
QueryWrapper queryStaff = QueryWrapper.create().where(STAFF.STAFF_ID.eq(loginId));
StaffDto staff = staffService.getOneAs(queryStaff, StaffDto.class);
QueryWrapper queryWrapper = QueryWrapper.create()
.from(STAFF)
.select(STAFF.STAFF_ID, ROLES.ALL_COLUMNS, ORGANIZATIONS.ORG_NAME)
.innerJoin(STAFF_ROLES).on(STAFF_ROLES.STAFF_ID.eq(STAFF.STAFF_ID))
.innerJoin(ORGANIZATIONS).on(STAFF.ORG_ID.eq(ORGANIZATIONS.ORG_ID))
.innerJoin(ROLES).on(STAFF_ROLES.ROLE_ID.eq(ROLES.ROLE_ID))
.where(STAFF.ORG_ID.eq(staff.getOrgId()));
.from(ROLES).select(STAFF.STAFF_ID, ROLES.ALL_COLUMNS, ORGANIZATIONS.ORG_NAME)
.leftJoin(STAFF_ROLES).on(ROLES.ROLE_ID.eq(STAFF_ROLES.ROLE_ID))
.leftJoin(STAFF).on(STAFF.STAFF_ID.eq(STAFF_ROLES.STAFF_ID))
.leftJoin(ORGANIZATIONS).on(STAFF.ORG_ID.eq(ORGANIZATIONS.ORG_ID))
.where(ROLES.ORG_ID.eq(staff.getOrgId())).and(ROLES.ROLE_NAME.eq(roleListQueryDto.getRoleName(),
StringUtils.hasText(roleListQueryDto.getRoleName())));
QueryWrapper countQuery = QueryWrapper.create()
.select(QueryMethods.count(STAFF.STAFF_ID.getName()).as("staff_count"))
.select(ROLES.ROLE_NAME.getName(), ROLES.ROLE_ID.getName(),
ROLES.ROLE_DESCRIPTION.getName(), ROLES.ROLE_CODE.getName(),
ORGANIZATIONS.ORG_NAME.getName())
ORGANIZATIONS.ORG_NAME.getName(), ORGANIZATIONS.ORG_ID.getName())
.groupBy(ORGANIZATIONS.ORG_NAME, ROLES.ROLE_NAME)
.from(queryWrapper).as("a");
Page<ResRolesDto> page = Page.of(pageParam.getPage().getPageNumber(), pageParam.getPageSize());
Page<ResRolesDto> page = Page.of(roleListQueryDto.getPageNum(), roleListQueryDto.getPageSize());
Page<ResRolesDto> resRolesDtoPage = rolesService.pageAs(page, countQuery, ResRolesDto.class);
List<ResRolesDto> records = resRolesDtoPage.getRecords();
//统计pc权限数量和小程序权限数量
for (ResRolesDto record : records) {
QueryWrapper caseQuery = QueryWrapper.create()
.select(QueryMethods.sum(QueryMethods.case_()
.when(PERMISSIONS.PERM_TYPE.eq(1)).then(1)
.else_(0).end()).as("web_count"),
QueryMethods.sum(QueryMethods.case_()
.when(PERMISSIONS.PERM_TYPE.eq(2)).then(1)
.else_(0).end()).as("applet_count"))
.innerJoin(ROLE_PERMISSIONS).on(PERMISSIONS.PERM_ID.eq(ROLE_PERMISSIONS.PERM_ID))
.where(ROLE_PERMISSIONS.ROLE_ID.eq(record.getRoleId()))
.where(PERMISSIONS.PERM_TYPE.ne("0"));
QueryWrapper caseQuery = QueryWrapper.create().select(QueryMethods.sum(QueryMethods.case_().when(PERMISSIONS.PERM_TYPE.eq(1)).then(1).else_(0).end()).as("web_count"), QueryMethods.sum(QueryMethods.case_().when(PERMISSIONS.PERM_TYPE.eq(2)).then(1).else_(0).end()).as("applet_count")).innerJoin(ROLE_PERMISSIONS).on(PERMISSIONS.PERM_ID.eq(ROLE_PERMISSIONS.PERM_ID)).where(ROLE_PERMISSIONS.ROLE_ID.eq(record.getRoleId())).where(PERMISSIONS.PERM_TYPE.ne("0"));
ResRolesDto oneAs = permissionsService.getOneAs(caseQuery, ResRolesDto.class);
if (oneAs == null) continue;
record.setWebCount(oneAs.getWebCount());
@ -186,4 +185,99 @@ public class RolesController {
return JsonResult.success(resRolesDtoPage);
}
/**
* 角色信息新增
*
* @param rolesDto
* @return
*/
@Transactional
@PostMapping("rolePermissionsAdd")
public JsonResult<?> rolePermissionsAdd(@RequestBody RolesDto rolesDto) {
try {
Roles roles = new Roles();
String tokenValue = StpUtil.getTokenValue();
Object loginId = StpUtil.getLoginIdByToken(tokenValue);
Staff staff = staffService.getById((Serializable) loginId);
BeanUtils.copyProperties(rolesDto, roles);
roles.setOrgId(staff.getOrgId());
roles.setCreatedStaff(Long.parseLong(loginId.toString()));
rolesService.save(roles);
List<RolePermissionsDto> rolePermissionsDtos = rolesDto.getRolePermissions();
List<RolePermissions> rolePermissions = new ArrayList<>();
for (RolePermissionsDto rolePermissionsDto : rolePermissionsDtos) {
RolePermissions roleperm = new RolePermissions();
BeanUtils.copyProperties(rolePermissionsDto, roleperm);
roleperm.setRoleId(roles.getRoleId());
rolePermissions.add(roleperm);
}
if (!rolePermissions.isEmpty()) {
rolePermissionsService.saveBatch(rolePermissions);
}
return JsonResult.success("保存成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("保存失败!");
}
}
/**
* 角色信息更新
*
* @param rolesDto
* @return
*/
@Transactional
@PostMapping("rolePermissionsUpdate")
public JsonResult<?> rolePermissionsUpdate(@RequestBody RolesDto rolesDto) {
try {
Roles roles = new Roles();
BeanUtils.copyProperties(rolesDto, roles);
rolesService.updateById(roles);
QueryWrapper queryWrapper = QueryWrapper.create()
.eq(ROLE_PERMISSIONS.ROLE_ID.getName(), roles.getRoleId());
rolePermissionsService.remove(queryWrapper);
List<RolePermissionsDto> rolePermissionsDtos = rolesDto.getRolePermissions();
List<RolePermissions> rolePermissions = new ArrayList<>();
for (RolePermissionsDto rolePermissionsDto : rolePermissionsDtos) {
RolePermissions roleperm = new RolePermissions();
BeanUtils.copyProperties(rolePermissionsDto, roleperm);
roleperm.setRoleId(roles.getRoleId());
rolePermissions.add(roleperm);
}
if (!rolePermissions.isEmpty()) {
rolePermissionsService.saveBatch(rolePermissions);
}
return JsonResult.success("保存成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("保存失败!");
}
}
/**
* 角色信息更新
*
* @param roleId
* @return
*/
@Transactional
@GetMapping("rolePermissionsDel/{roleId}")
public JsonResult<?> rolePermissionsDel(@PathVariable("roleId") Long roleId) {
try {
QueryWrapper queryWrapper = QueryWrapper.create()
.eq(ROLE_PERMISSIONS.ROLE_ID.getName(), roleId);
rolePermissionsService.remove(queryWrapper);
rolesService.removeById(roleId);
return JsonResult.success("删除成功!");
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failed("删除失败!");
}
}
}

View File

@ -5,6 +5,8 @@ import com.cdzy.common.enums.Message;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.common.model.StaffDto;
import com.cdzy.user.model.dto.AccountListQueryDto;
import com.cdzy.user.model.dto.RoleListQueryDto;
import com.cdzy.user.model.entity.Staff;
import com.cdzy.user.model.vo.StaffIds;
import com.cdzy.user.service.StaffService;
@ -19,7 +21,7 @@ import java.util.List;
import static com.cdzy.user.model.entity.table.StaffTableDef.STAFF;
/**
* 员工控制层
* 员工控制层
*
* @author attiya
* @since 2025-03-14
@ -40,7 +42,7 @@ public class StaffController {
@PostMapping("save")
public JsonResult<?> save(@RequestBody Staff staff) {
QueryWrapper queryWrapper = QueryWrapper.create()
.where(STAFF.PHONE.eq(staff.getPhone()));
.where(STAFF.PHONE.eq(staff.getPhone()));
Staff one = staffService.getOne(queryWrapper);
if (one != null) {
return JsonResult.success(Message.REPEAT_PHONE);
@ -69,7 +71,7 @@ public class StaffController {
*/
@PostMapping("update")
public JsonResult<?> update(@RequestBody Staff staff) {
staffService.updateById(staff);
staffService.updateById(staff);
return JsonResult.success();
}
@ -79,7 +81,7 @@ public class StaffController {
* @return 所有数据
*/
@GetMapping("list")
public JsonResult<?> list() {
public JsonResult<?> list() {
List<Staff> list = staffService.list();
return JsonResult.success(list);
}
@ -91,7 +93,7 @@ public class StaffController {
* @return 详情
*/
@GetMapping("getInfo/{id}")
public JsonResult<?> getInfo(@PathVariable("id") Long id) {
public JsonResult<?> getInfo(@PathVariable("id") Long id) {
Staff staff = staffService.getById(id);
return JsonResult.success(staff);
}
@ -103,7 +105,7 @@ public class StaffController {
* @return 分页对象
*/
@GetMapping("page")
public JsonResult<?> page(@Validated PageParam pageParam) {
public JsonResult<?> page(@Validated PageParam pageParam) {
Page<Staff> paged = staffService.page(pageParam.getPage());
return JsonResult.success(paged);
}
@ -145,13 +147,24 @@ public class StaffController {
*/
@PostMapping("getStaffsByLoginOrg")
public JsonResult<?> getStaffsByIds(@Validated PageParam pageParam, @RequestParam("token") String token) {
String id = (String)StpUtil.getLoginIdByToken(token);
StaffDto staffDto = (StaffDto)StpUtil.getSessionByLoginId(id).get(id);
String id = (String) StpUtil.getLoginIdByToken(token);
StaffDto staffDto = (StaffDto) StpUtil.getSessionByLoginId(id).get(id);
QueryWrapper queryWrapper = QueryWrapper.create()
.where(STAFF.ORG_ID.eq(staffDto.getOrgId()))
.where(STAFF.STAFF_ID.ne(staffDto.getStaffId()));
Page<StaffDto> staffDtos = staffService.pageAs(pageParam.getPage(),queryWrapper, StaffDto.class);
Page<StaffDto> staffDtos = staffService.pageAs(pageParam.getPage(), queryWrapper, StaffDto.class);
return JsonResult.success(staffDtos);
}
/**
* 分页查询账号列表
*
* @param accountListQueryDto
* @return
*/
@PostMapping("pageQueryStaffs")
public JsonResult<?> pageQueryStaffs(@RequestBody @Validated AccountListQueryDto accountListQueryDto) {
return JsonResult.success("");
}
}

View File

@ -0,0 +1,23 @@
package com.cdzy.user.model.dto;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.Data;
/**
* @author attiya
* @since 2025-03-14
*/
@Data
public class AccountListQueryDto {
@Min(value = 1, message = "页码必须大于0")
private Integer pageNum; // 默认第1页
@Min(value = 1, message = "每页数量必须大于0")
@Max(value = 100, message = "每页数量不能超过100")
private Integer pageSize;
private String account;
private String accountName;
}

View File

@ -0,0 +1,21 @@
package com.cdzy.user.model.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 实体类
*
* @author attiya
* @since 2025-03-14
*/
@Data
public class ResRolePermissionsDto implements Serializable {
private Long roleId;
private Long permId;
private Integer permType;
}

View File

@ -17,10 +17,6 @@ import java.io.Serializable;
* @since 2025-03-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("ebike_roles")
public class ResRolesDto implements Serializable {
private Long roleId;
@ -31,6 +27,8 @@ public class ResRolesDto implements Serializable {
private String orgName;
private String orgId;
private Integer staffCount;
private Integer webCount;

View File

@ -1,6 +1,5 @@
package com.cdzy.user.model.dto;
import com.mybatisflex.core.paginate.Page;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.Data;
@ -10,7 +9,7 @@ import lombok.Data;
* @since 2025-03-14
*/
@Data
public class PageParamDto {
public class RoleListQueryDto {
@Min(value = 1, message = "页码必须大于0")
private Integer pageNum; // 默认第1页
@ -19,13 +18,4 @@ public class PageParamDto {
private Integer pageSize;
private String roleName;
public <T> Page<T> getPage() {
if (pageNum == null || pageSize == null) {
pageNum = 1;
pageSize = 10;
}
return new Page<>(pageNum, pageSize);
}
}

View File

@ -0,0 +1,26 @@
package com.cdzy.user.model.dto;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
* 实体类
*
* @author attiya
* @since 2025-03-14
*/
@Data
public class RolePermissionsDto implements Serializable {
private Long roleId;
private Long permId;
}

View File

@ -0,0 +1,32 @@
package com.cdzy.user.model.dto;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 实体类
*
* @author attiya
* @since 2025-03-14
*/
@Data
public class RolesDto implements Serializable {
private Long roleId;
private String roleName;
private Long orgId;
private String roleDescription;
private List<RolePermissionsDto> rolePermissions;
}