This commit is contained in:
2025-06-28 14:41:13 +08:00
parent 66334b8963
commit f40837cd05
7 changed files with 19 additions and 12 deletions

View File

@ -20,6 +20,8 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import static com.ycwl.basic.constant.JwtRoleConstant.MERCHANT;
@RestController @RestController
@RequestMapping("/api/permission/v1") @RequestMapping("/api/permission/v1")
@Api(tags = "权限管理接口") @Api(tags = "权限管理接口")
@ -32,9 +34,9 @@ public class PermissionController {
String userId = BaseContextHandler.getUserId(); String userId = BaseContextHandler.getUserId();
PermissionEntity permission = permissionService.getPermissionByUserId(Long.parseLong(userId)); PermissionEntity permission = permissionService.getPermissionByUserId(Long.parseLong(userId));
if (permission == null || StringUtils.isEmpty(permission.getPermString())) { if (permission == null || StringUtils.isEmpty(permission.getPermString())) {
return ApiResponse.success(new PermissionResp(new ArrayList<>())); return ApiResponse.success(new PermissionResp(new ArrayList<>(), new ArrayList<>()));
} }
return ApiResponse.success(new PermissionResp(Arrays.asList(StringUtils.split(permission.getPermString(), ",")))); return ApiResponse.success(new PermissionResp(Arrays.asList(StringUtils.split(permission.getPermString(), ",")), Arrays.asList(StringUtils.split(permission.getMenuString(), ","))));
} }
@ApiOperation("根据用户ID查询权限信息") @ApiOperation("根据用户ID查询权限信息")
@ -42,15 +44,15 @@ public class PermissionController {
public ApiResponse<PermissionResp> getPermissionByUser(@PathVariable Long userId) { public ApiResponse<PermissionResp> getPermissionByUser(@PathVariable Long userId) {
PermissionEntity permission = permissionService.getPermissionByUserId(userId); PermissionEntity permission = permissionService.getPermissionByUserId(userId);
if (permission == null || StringUtils.isEmpty(permission.getPermString())) { if (permission == null || StringUtils.isEmpty(permission.getPermString())) {
return ApiResponse.success(new PermissionResp(new ArrayList<>())); return ApiResponse.success(new PermissionResp(new ArrayList<>(), new ArrayList<>()));
} }
return ApiResponse.success(new PermissionResp(Arrays.asList(StringUtils.split(permission.getPermString(), ",")))); return ApiResponse.success(new PermissionResp(Arrays.asList(StringUtils.split(permission.getPermString(), ",")), Arrays.asList(StringUtils.split(permission.getMenuString(), ","))));
} }
@ApiOperation("保存或更新权限信息") @ApiOperation("保存或更新权限信息")
@PostMapping("/save/{userId}") @PostMapping("/save/{userId}")
public ApiResponse saveOrUpdate(@PathVariable Long userId, @RequestBody PermissionSaveReq req) { public ApiResponse saveOrUpdate(@PathVariable Long userId, @RequestBody PermissionSaveReq req) {
permissionService.saveOrUpdate(userId, StringUtils.join(req.getPermissions(), ",")); permissionService.saveOrUpdate(userId, StringUtils.join(req.getPermissions(), ","), StringUtils.join(req.getMenus(), ","));
return ApiResponse.success(true); return ApiResponse.success(true);
} }
} }

View File

@ -20,10 +20,12 @@ public class PermissionEntity implements Serializable {
private Integer id; private Integer id;
@TableField("user_id") @TableField("user_id")
private Long userId; // 确保字段映射 private Long userId;
@TableField("perm_str") @TableField("perm_str")
private String permString; private String permString;
@TableField("menu_str")
private String menuString;
@TableField("create_time") @TableField("create_time")
private Date createTime; private Date createTime;

View File

@ -7,4 +7,5 @@ import java.util.List;
@Data @Data
public class PermissionSaveReq { public class PermissionSaveReq {
private List<String> permissions; private List<String> permissions;
private List<String> menus;
} }

View File

@ -9,4 +9,5 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class PermissionResp { public class PermissionResp {
private List<String> permissions; private List<String> permissions;
private List<String> menus;
} }

View File

@ -6,5 +6,5 @@ public interface PermissionService {
// 新增权限查询接口 // 新增权限查询接口
PermissionEntity getPermissionByUserId(Long userId); PermissionEntity getPermissionByUserId(Long userId);
boolean saveOrUpdate(Long userId, String permStr); boolean saveOrUpdate(Long userId, String permStr, String menuStr);
} }

View File

@ -17,10 +17,11 @@ public class PermissionServiceImpl implements PermissionService {
} }
@Override @Override
public boolean saveOrUpdate(Long userId, String permStr) { public boolean saveOrUpdate(Long userId, String permStr, String menuStr) {
PermissionEntity entity = new PermissionEntity(); PermissionEntity entity = new PermissionEntity();
entity.setUserId(userId); entity.setUserId(userId);
entity.setPermString(permStr); entity.setPermString(permStr);
entity.setMenuString(menuStr);
if (permissionMapper.selectByUserId(userId) == null) { if (permissionMapper.selectByUserId(userId) == null) {
permissionMapper.insertPermission(entity); permissionMapper.insertPermission(entity);
} else { } else {

View File

@ -3,18 +3,18 @@
<mapper namespace="com.ycwl.basic.mapper.PermissionMapper"> <mapper namespace="com.ycwl.basic.mapper.PermissionMapper">
<!-- 新增插入语句 --> <!-- 新增插入语句 -->
<insert id="insertPermission"> <insert id="insertPermission">
INSERT INTO account_permission (user_id, perm_str, create_time, update_time) INSERT INTO account_permission (user_id, perm_str, menu_str, create_time, update_time)
VALUES (#{userId}, #{permString}, NOW(), NOW()) VALUES (#{userId}, #{permString}, #{menuString}, NOW(), NOW())
</insert> </insert>
<!-- 新增更新语句 --> <!-- 新增更新语句 -->
<update id="updatePermission"> <update id="updatePermission">
UPDATE account_permission UPDATE account_permission
SET perm_str = #{permString}, update_time = NOW() SET perm_str = #{permString}, menu_str = #{menuString}, update_time = NOW()
WHERE user_id = #{userId} WHERE user_id = #{userId}
</update> </update>
<select id="selectByUserId" resultType="com.ycwl.basic.model.pc.permission.entity.PermissionEntity"> <select id="selectByUserId" resultType="com.ycwl.basic.model.pc.permission.entity.PermissionEntity">
SELECT id, user_id, perm_str as permString, create_time, update_time SELECT id, user_id, perm_str as permString, menu_str as menuString, create_time, update_time
FROM account_permission FROM account_permission
WHERE user_id = #{userId} WHERE user_id = #{userId}
limit 1 limit 1