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:
Charles7c 2023-07-19 23:17:39 +08:00
commit 668124591e
4 changed files with 30 additions and 18 deletions

View File

@ -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()));
} }
} }

View File

@ -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;

View File

@ -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);
} }

View File

@ -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);
} }
/** /**