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