mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 00:57:13 +08:00 
			
		
		
		
	Merge branch '1.0.x' into dev
# Conflicts: # continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java
This commit is contained in:
		| @@ -16,6 +16,8 @@ | ||||
|  | ||||
| package top.charles7c.cnadmin.common.base; | ||||
|  | ||||
| import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| @@ -76,7 +78,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @GetMapping | ||||
|     public R<PageDataVO<V>> page(Q query, @Validated PageQuery pageQuery) { | ||||
|         this.checkPermission("list"); | ||||
|         this.checkPermission(Api.LIST); | ||||
|         PageDataVO<V> pageDataVO = baseService.page(query, pageQuery); | ||||
|         return R.ok(pageDataVO); | ||||
|     } | ||||
| @@ -94,7 +96,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @GetMapping("/tree") | ||||
|     public R<List<Tree<Long>>> tree(Q query, SortQuery sortQuery) { | ||||
|         this.checkPermission("list"); | ||||
|         this.checkPermission(Api.LIST); | ||||
|         List<Tree<Long>> list = baseService.tree(query, sortQuery, false); | ||||
|         return R.ok(list); | ||||
|     } | ||||
| @@ -112,7 +114,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @GetMapping("/list") | ||||
|     public R<List<V>> list(Q query, SortQuery sortQuery) { | ||||
|         this.checkPermission("list"); | ||||
|         this.checkPermission(Api.LIST); | ||||
|         List<V> list = baseService.list(query, sortQuery); | ||||
|         return R.ok(list); | ||||
|     } | ||||
| @@ -129,7 +131,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @GetMapping("/{id}") | ||||
|     public R<D> get(@PathVariable Long id) { | ||||
|         this.checkPermission("list"); | ||||
|         this.checkPermission(Api.LIST); | ||||
|         D detail = baseService.get(id); | ||||
|         return R.ok(detail); | ||||
|     } | ||||
| @@ -145,7 +147,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @PostMapping | ||||
|     public R<Long> add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody C request) { | ||||
|         this.checkPermission("add"); | ||||
|         this.checkPermission(Api.ADD); | ||||
|         Long id = baseService.add(request); | ||||
|         return R.ok("新增成功", id); | ||||
|     } | ||||
| @@ -163,7 +165,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @PutMapping("/{id}") | ||||
|     public R update(@Validated(ValidateGroup.Crud.Update.class) @RequestBody C request, @PathVariable Long id) { | ||||
|         this.checkPermission("update"); | ||||
|         this.checkPermission(Api.UPDATE); | ||||
|         baseService.update(request, id); | ||||
|         return R.ok("修改成功"); | ||||
|     } | ||||
| @@ -180,7 +182,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @ResponseBody | ||||
|     @DeleteMapping("/{ids}") | ||||
|     public R delete(@PathVariable List<Long> ids) { | ||||
|         this.checkPermission("delete"); | ||||
|         this.checkPermission(Api.DELETE); | ||||
|         baseService.delete(ids); | ||||
|         return R.ok("删除成功"); | ||||
|     } | ||||
| @@ -198,20 +200,20 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q, | ||||
|     @Operation(summary = "导出数据") | ||||
|     @GetMapping("/export") | ||||
|     public void export(Q query, SortQuery sortQuery, HttpServletResponse response) { | ||||
|         this.checkPermission("export"); | ||||
|         this.checkPermission(Api.EXPORT); | ||||
|         baseService.export(query, sortQuery, response); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 权限认证 | ||||
|      * 根据 API 类型进行权限验证 | ||||
|      * | ||||
|      * @param subPermission | ||||
|      *            部分权限码 | ||||
|      * @param api | ||||
|      *            API 类型 | ||||
|      */ | ||||
|     private void checkPermission(String subPermission) { | ||||
|     private void checkPermission(Api api) { | ||||
|         CrudRequestMapping crudRequestMapping = this.getClass().getDeclaredAnnotation(CrudRequestMapping.class); | ||||
|         String path = crudRequestMapping.value(); | ||||
|         String permissionPrefix = String.join(StringConsts.COLON, StrUtil.splitTrim(path, StringConsts.SLASH)); | ||||
|         StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, subPermission)); | ||||
|         StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, api.name().toLowerCase())); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -55,7 +55,7 @@ public class PageDataVO<V> implements Serializable { | ||||
|      * 总记录数 | ||||
|      */ | ||||
|     @Schema(description = "总记录数") | ||||
|     private Long total; | ||||
|     private int total; | ||||
|  | ||||
|     /** | ||||
|      * 基于 MyBatis Plus 分页数据构建分页信息,并将源数据转换为指定类型数据 | ||||
| @@ -76,7 +76,7 @@ public class PageDataVO<V> implements Serializable { | ||||
|         } | ||||
|         PageDataVO<V> pageDataVO = new PageDataVO<>(); | ||||
|         pageDataVO.setList(BeanUtil.copyToList(page.getRecords(), targetClass)); | ||||
|         pageDataVO.setTotal(page.getTotal()); | ||||
|         pageDataVO.setTotal((int) page.getTotal()); | ||||
|         return pageDataVO; | ||||
|     } | ||||
|  | ||||
| @@ -95,7 +95,7 @@ public class PageDataVO<V> implements Serializable { | ||||
|         } | ||||
|         PageDataVO<V> pageDataVO = new PageDataVO<>(); | ||||
|         pageDataVO.setList(page.getRecords()); | ||||
|         pageDataVO.setTotal(page.getTotal()); | ||||
|         pageDataVO.setTotal((int) page.getTotal()); | ||||
|         return pageDataVO; | ||||
|     } | ||||
|  | ||||
| @@ -118,7 +118,7 @@ public class PageDataVO<V> implements Serializable { | ||||
|             return pageDataVO; | ||||
|         } | ||||
|  | ||||
|         pageDataVO.setTotal((long)list.size()); | ||||
|         pageDataVO.setTotal(list.size()); | ||||
|         // 对列表数据进行分页 | ||||
|         int fromIndex = (page - 1) * size; | ||||
|         int toIndex = page * size + size; | ||||
|   | ||||
| @@ -54,4 +54,14 @@ public interface UserMapper extends BaseMapper<UserDO> { | ||||
|      */ | ||||
|     @Select("SELECT * FROM `sys_user` WHERE `username` = #{username}") | ||||
|     UserDO selectByUsername(@Param("username") String username); | ||||
|  | ||||
|     /** | ||||
|      * 根据 ID 查询昵称 | ||||
|      * | ||||
|      * @param id | ||||
|      *            ID | ||||
|      * @return 昵称 | ||||
|      */ | ||||
|     @Select("SELECT `nickname` FROM `sys_user` WHERE `id` = #{id}") | ||||
|     String selectNicknameById(@Param("id") Long id); | ||||
| } | ||||
|   | ||||
| @@ -248,7 +248,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | ||||
|  | ||||
|     @Override | ||||
|     public String getNicknameById(Long id) { | ||||
|         return super.getById(id).getNickname(); | ||||
|         return baseMapper.selectNicknameById(id); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
		Reference in New Issue
	
	Block a user