权限
This commit is contained in:
parent
da72e7e0a9
commit
fcddc4fc8c
@ -0,0 +1,56 @@
|
|||||||
|
package com.ycwl.basic.controller.pc;
|
||||||
|
|
||||||
|
import com.ycwl.basic.constant.BaseContextHandler;
|
||||||
|
import com.ycwl.basic.model.pc.permission.entity.PermissionEntity;
|
||||||
|
import com.ycwl.basic.model.pc.permission.req.PermissionSaveReq;
|
||||||
|
import com.ycwl.basic.model.pc.permission.resp.PermissionResp;
|
||||||
|
import com.ycwl.basic.service.pc.PermissionService;
|
||||||
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
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.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/permission/v1")
|
||||||
|
@Api(tags = "权限管理接口")
|
||||||
|
public class PermissionController {
|
||||||
|
@Autowired
|
||||||
|
private PermissionService permissionService;
|
||||||
|
|
||||||
|
@GetMapping("/get/")
|
||||||
|
public ApiResponse<PermissionResp> getPermissionByUser() {
|
||||||
|
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(Arrays.asList(StringUtils.split(permission.getPermString(), ","))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("根据用户ID查询权限信息")
|
||||||
|
@GetMapping("/get/{userId}")
|
||||||
|
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(Arrays.asList(StringUtils.split(permission.getPermString(), ","))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("保存或更新权限信息")
|
||||||
|
@PostMapping("/save/{userId}")
|
||||||
|
public ApiResponse saveOrUpdate(@PathVariable Long userId, @RequestBody PermissionSaveReq req) {
|
||||||
|
permissionService.saveOrUpdate(userId, StringUtils.join(req.getPermissions(), ","));
|
||||||
|
return ApiResponse.success(true);
|
||||||
|
}
|
||||||
|
}
|
15
src/main/java/com/ycwl/basic/mapper/PermissionMapper.java
Normal file
15
src/main/java/com/ycwl/basic/mapper/PermissionMapper.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package com.ycwl.basic.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.ycwl.basic.model.pc.permission.entity.PermissionEntity;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface PermissionMapper extends BaseMapper<PermissionEntity> {
|
||||||
|
// 新增用户ID查询方法
|
||||||
|
PermissionEntity selectByUserId(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
void insertPermission(PermissionEntity entity);
|
||||||
|
void updatePermission(PermissionEntity entity);
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.ycwl.basic.model.pc.permission.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@TableName("permission")
|
||||||
|
public class PermissionEntity implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
@TableField("user_id")
|
||||||
|
private Long userId; // 确保字段映射
|
||||||
|
|
||||||
|
@TableField("perm_str")
|
||||||
|
private String permString;
|
||||||
|
|
||||||
|
@TableField("create_time")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@TableField("update_time")
|
||||||
|
private Date updateTime;
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.ycwl.basic.model.pc.permission.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PermissionSaveReq {
|
||||||
|
private List<String> permissions;
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.ycwl.basic.model.pc.permission.resp;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class PermissionResp {
|
||||||
|
private List<String> permissions;
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.ycwl.basic.service.pc;
|
||||||
|
|
||||||
|
import com.ycwl.basic.model.pc.permission.entity.PermissionEntity;
|
||||||
|
|
||||||
|
public interface PermissionService {
|
||||||
|
// 新增权限查询接口
|
||||||
|
PermissionEntity getPermissionByUserId(Long userId);
|
||||||
|
|
||||||
|
boolean saveOrUpdate(Long userId, String permStr);
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.ycwl.basic.service.pc.impl;
|
||||||
|
|
||||||
|
import com.ycwl.basic.mapper.PermissionMapper;
|
||||||
|
import com.ycwl.basic.model.pc.permission.entity.PermissionEntity;
|
||||||
|
import com.ycwl.basic.service.pc.PermissionService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class PermissionServiceImpl implements PermissionService {
|
||||||
|
@Autowired
|
||||||
|
private PermissionMapper permissionMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PermissionEntity getPermissionByUserId(Long userId) {
|
||||||
|
return permissionMapper.selectByUserId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean saveOrUpdate(Long userId, String permStr) {
|
||||||
|
PermissionEntity entity = new PermissionEntity();
|
||||||
|
entity.setUserId(userId);
|
||||||
|
entity.setPermString(permStr);
|
||||||
|
if (permissionMapper.selectByUserId(userId) == null) {
|
||||||
|
permissionMapper.insertPermission(entity);
|
||||||
|
} else {
|
||||||
|
permissionMapper.updatePermission(entity);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
22
src/main/resources/mapper/PermissionMapper.xml
Normal file
22
src/main/resources/mapper/PermissionMapper.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.ycwl.basic.mapper.PermissionMapper">
|
||||||
|
<!-- 新增插入语句 -->
|
||||||
|
<insert id="insertPermission">
|
||||||
|
INSERT INTO permission (user_id, perm_str, create_time, update_time)
|
||||||
|
VALUES (#{userId}, #{permString}, NOW(), NOW())
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<!-- 新增更新语句 -->
|
||||||
|
<update id="updatePermission">
|
||||||
|
UPDATE permission
|
||||||
|
SET perm_str = #{permString}, 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
|
||||||
|
FROM permission
|
||||||
|
WHERE user_id = #{userId}
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
x
Reference in New Issue
Block a user