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.Arrays;
import static com.ycwl.basic.constant.JwtRoleConstant.MERCHANT;
@RestController
@RequestMapping("/api/permission/v1")
@Api(tags = "权限管理接口")
@ -32,9 +34,9 @@ public class PermissionController {
String userId = BaseContextHandler.getUserId();
PermissionEntity permission = permissionService.getPermissionByUserId(Long.parseLong(userId));
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查询权限信息")
@ -42,15 +44,15 @@ public class PermissionController {
public ApiResponse<PermissionResp> getPermissionByUser(@PathVariable Long userId) {
PermissionEntity permission = permissionService.getPermissionByUserId(userId);
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("保存或更新权限信息")
@PostMapping("/save/{userId}")
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);
}
}

View File

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

View File

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

View File

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

View File

@ -6,5 +6,5 @@ public interface PermissionService {
// 新增权限查询接口
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
public boolean saveOrUpdate(Long userId, String permStr) {
public boolean saveOrUpdate(Long userId, String permStr, String menuStr) {
PermissionEntity entity = new PermissionEntity();
entity.setUserId(userId);
entity.setPermString(permStr);
entity.setMenuString(menuStr);
if (permissionMapper.selectByUserId(userId) == null) {
permissionMapper.insertPermission(entity);
} else {

View File

@ -3,18 +3,18 @@
<mapper namespace="com.ycwl.basic.mapper.PermissionMapper">
<!-- 新增插入语句 -->
<insert id="insertPermission">
INSERT INTO account_permission (user_id, perm_str, create_time, update_time)
VALUES (#{userId}, #{permString}, NOW(), NOW())
INSERT INTO account_permission (user_id, perm_str, menu_str, create_time, update_time)
VALUES (#{userId}, #{permString}, #{menuString}, NOW(), NOW())
</insert>
<!-- 新增更新语句 -->
<update id="updatePermission">
UPDATE account_permission
SET perm_str = #{permString}, update_time = NOW()
SET perm_str = #{permString}, menu_str = #{menuString}, update_time = NOW()
WHERE user_id = #{userId}
</update>
<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
WHERE user_id = #{userId}
limit 1