mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 10:57:10 +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