feat(新增): 角色相关内容CURD和部分代码生成器修改
This commit is contained in:
parent
8c0d72c3ba
commit
5dec36899d
|
@ -1,76 +0,0 @@
|
|||
package cn.bunny.common.generator;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
|
||||
import com.baomidou.mybatisplus.generator.config.OutputFile;
|
||||
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
public class NewCodeGet {
|
||||
// 数据连接
|
||||
public static final String sqlHost = "jdbc:mysql://192.168.3.98:3304/auth_admin?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true";
|
||||
// 作者名称
|
||||
public static final String author = "Bunny";
|
||||
// 公共路径
|
||||
public static final String outputDir = "D:\\MyFolder\\auth-admin\\auth-server-java\\service";
|
||||
// public static final String outputDir = "D:\\Project\\web\\PC\\auth\\auth-server-java\\service";
|
||||
// 实体类名称
|
||||
public static final String entity = "Bunny";
|
||||
|
||||
public static void main(String[] args) {
|
||||
Generation("sys_router");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据表名生成相应结构代码
|
||||
*
|
||||
* @param tableName 表名
|
||||
*/
|
||||
public static void Generation(String... tableName) {
|
||||
// TODO 修改数据库路径、账户、密码
|
||||
FastAutoGenerator.create(sqlHost, "root", "02120212")
|
||||
.globalConfig(builder -> {
|
||||
// 添加作者名称
|
||||
builder.author(author)
|
||||
// 启用swagger
|
||||
.enableSwagger()
|
||||
// 指定输出目录
|
||||
.outputDir(outputDir + "/src/main/java");
|
||||
})
|
||||
.packageConfig(builder -> builder.entity(entity)// 实体类包名
|
||||
// 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
|
||||
.parent("cn.bunny.services")
|
||||
.controller("controller")// 控制层包名
|
||||
.mapper("mapper")// mapper层包名
|
||||
.service("service")// service层包名
|
||||
.serviceImpl("service.impl")// service实现类包名
|
||||
// 自定义mapper.xml文件输出目录
|
||||
.pathInfo(Collections.singletonMap(OutputFile.xml, outputDir + "/src/main/resources/mapper")))
|
||||
.strategyConfig(builder -> {
|
||||
// 设置要生成的表名
|
||||
builder.addInclude(tableName)
|
||||
.addTablePrefix("sys_")
|
||||
.entityBuilder()
|
||||
.enableLombok()
|
||||
.enableChainModel()
|
||||
.naming(NamingStrategy.underline_to_camel)// 数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
|
||||
.columnNaming(NamingStrategy.underline_to_camel)// 表字段映射实体属性命名规则:默认null,不指定按照naming执行
|
||||
.idType(IdType.ASSIGN_ID)// 添加全局主键类型
|
||||
.formatFileName("%s")// 格式化实体名称,%s取消首字母I,
|
||||
.mapperBuilder()
|
||||
.mapperAnnotation(Mapper.class)// 开启mapper注解
|
||||
.enableBaseResultMap()// 启用xml文件中的BaseResultMap 生成
|
||||
.enableBaseColumnList()// 启用xml文件中的BaseColumnList
|
||||
.formatMapperFileName("%sMapper")// 格式化Dao类名称
|
||||
.formatXmlFileName("%sMapper")// 格式化xml文件名称
|
||||
.serviceBuilder()
|
||||
.formatServiceFileName("%sService")// 格式化 service 接口文件名称
|
||||
.formatServiceImplFileName("%sServiceImpl")// 格式化 service 接口文件名称
|
||||
.controllerBuilder()
|
||||
.enableRestStyle();
|
||||
})
|
||||
.execute();
|
||||
}
|
||||
}
|
|
@ -71,12 +71,6 @@ public class AdminCodeGenerator {
|
|||
.controllerBuilder()
|
||||
.enableRestStyle();
|
||||
})
|
||||
// .injectionConfig(consumer -> {
|
||||
// Map<String, String> customFile = new HashMap<>();
|
||||
// // 配置DTO(需要的话)但是需要有能配置Dto的模板引擎,比如freemarker,但是这里我们用的VelocityEngine,因此不多作介绍
|
||||
// customFile.put(outputDir, "/src/main/resources/templates/entityDTO.java.ftl");
|
||||
// consumer.customFile(customFile);
|
||||
// })
|
||||
.execute();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,11 @@ package cn.bunny.common.generator.generator;
|
|||
import cn.bunny.common.generator.entity.BaseField;
|
||||
import cn.bunny.common.generator.entity.BaseResultMap;
|
||||
import cn.bunny.common.generator.utils.GeneratorCodeUtils;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.entity.system.MenuIcon;
|
||||
import cn.bunny.dao.dto.system.role.RoleAddDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Role;
|
||||
import cn.bunny.dao.vo.system.rolePower.RoleVo;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.google.common.base.CaseFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
@ -40,7 +42,7 @@ public class WebGeneratorCode {
|
|||
// 生成vue路径
|
||||
public static String vuePath = commonPath + "\\views\\system\\";
|
||||
// 生成仓库路径
|
||||
public static String storePath = commonPath + "\\store\\modules";
|
||||
public static String storePath = commonPath + "\\store\\system\\";
|
||||
// 后端controller
|
||||
public static String controllerPath = "D:\\Project\\web\\PC\\auth\\auth-server-java\\service\\src\\main\\java\\cn\\bunny\\services\\controller\\";
|
||||
public static String servicePath = "D:\\Project\\web\\PC\\auth\\auth-server-java\\service\\src\\main\\java\\cn\\bunny\\services\\service\\";
|
||||
|
@ -49,11 +51,11 @@ public class WebGeneratorCode {
|
|||
public static String resourceMapperPath = "D:\\Project\\web\\PC\\auth\\auth-server-java\\service\\src\\main\\resources\\mapper\\";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Class<MenuIcon> originalClass = MenuIcon.class;
|
||||
Class<MenuIconDto> dtoClass = MenuIconDto.class;
|
||||
Class<MenuIconAddDto> addDtoClass = MenuIconAddDto.class;
|
||||
// Class<MenuIconUpdateDto> updateDtoClass = MenuIconUpdateDto.class;
|
||||
// Class<MenuIconVo> voClass = MenuIconVo.class;
|
||||
Class<?> originalClass = Role.class;
|
||||
Class<?> dtoClass = RoleDto.class;
|
||||
Class<?> addDtoClass = RoleAddDto.class;
|
||||
Class<?> updateDtoClass = RoleUpdateDto.class;
|
||||
Class<?> voClass = RoleVo.class;
|
||||
|
||||
// 设置velocity资源加载器
|
||||
Properties prop = new Properties();
|
||||
|
@ -136,7 +138,7 @@ public class WebGeneratorCode {
|
|||
/**
|
||||
* 生成后端内容
|
||||
*/
|
||||
public static void generatorServerCode(Class<MenuIcon> originalClass, Class<MenuIconDto> dtoClass, VelocityContext context) {
|
||||
public static void generatorServerCode(Class<?> originalClass, Class<?> dtoClass, VelocityContext context) {
|
||||
Field[] superFields = originalClass.getSuperclass().getDeclaredFields();
|
||||
Field[] declaredFields = originalClass.getDeclaredFields();
|
||||
Field[] mergedArray = new Field[superFields.length + declaredFields.length];
|
||||
|
@ -186,6 +188,7 @@ public class WebGeneratorCode {
|
|||
*/
|
||||
public static void writeFiles(String lowercaseName, String lowerHyphen, String originalName, VelocityContext context) throws IOException {
|
||||
context.put("apiPath", GeneratorCodeUtils.ReplacePathHandle(apiPath) + lowercaseName);
|
||||
context.put("storePath", GeneratorCodeUtils.ReplacePathHandle(storePath) + lowercaseName + ".ts");
|
||||
context.put("typesPath", GeneratorCodeUtils.ReplacePathHandle(vuePath) + lowercaseName + "/utils/types");
|
||||
context.put("hookPath", GeneratorCodeUtils.ReplacePathHandle(vuePath) + lowercaseName + "/utils/hooks");
|
||||
context.put("columnsPath", GeneratorCodeUtils.ReplacePathHandle(vuePath) + lowercaseName + "/utils/columns");
|
||||
|
|
|
@ -2,28 +2,28 @@ import { http } from '@/api/service/request';
|
|||
import type { BaseResult, ResultTable } from '@/api/service/types';
|
||||
|
||||
/**
|
||||
* ${classDescription}---获取多语言列表
|
||||
* ${classDescription}---获取${classDescription}列表
|
||||
*/
|
||||
export const fetchGet${originalName}List = (data: any) => {
|
||||
return http.request<BaseResult<ResultTable>>('get', `${lowercaseName}/get${originalName}List/${data.currentPage}/${data.pageSize}`, { params: data });
|
||||
};
|
||||
|
||||
/**
|
||||
* ${classDescription}---添加多语言
|
||||
* ${classDescription}---添加${classDescription}
|
||||
*/
|
||||
export const fetchAdd${originalName} = (data: any) => {
|
||||
return http.request<BaseResult<object>>('post', '${lowercaseName}/add${originalName}', { data });
|
||||
};
|
||||
|
||||
/**
|
||||
* ${classDescription}---更新多语言
|
||||
* ${classDescription}---更新${classDescription}
|
||||
*/
|
||||
export const fetchUpdate${originalName} = (data: any) => {
|
||||
return http.request<BaseResult<object>>('put', '${lowercaseName}/update${originalName}', { data });
|
||||
};
|
||||
|
||||
/**
|
||||
* ${classDescription}---删除多语言
|
||||
* ${classDescription}---删除${classDescription}
|
||||
*/
|
||||
export const fetchDelete${originalName} = (data: any) => {
|
||||
return http.request<BaseResult<object>>('delete', '${lowercaseName}/delete${originalName}', { data });
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import { FormInstance } from 'element-plus';
|
||||
import { rules } from '${hookPath}';
|
||||
import { rules } from '${columnsPath}';
|
||||
import { FormProps } from '${typesPath}';
|
||||
import { frameSureOptions } from '@/enums';
|
||||
import Segmented from '@/components/ReSegmented';
|
||||
import { $t } from '@/plugins/i18n';
|
||||
|
||||
const props = withDefaults(defineProps<FormProps>(), {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { deviceDetection } from '@pureadmin/utils';
|
||||
import { addDialog } from '@/components/BaseDialog/index';
|
||||
import ${originalName}Dialog from '${dialogPath}';
|
||||
import { use${originalName}Store } from '@/store/modules/${lowercaseName}';
|
||||
import { use${originalName}Store } from '${storePath}';
|
||||
import { h, ref } from 'vue';
|
||||
import { messageBox } from '@/utils/message';
|
||||
import type { FormItemProps } from '${typesPath}';
|
||||
|
@ -20,11 +20,11 @@ export async function onSearch() {
|
|||
}
|
||||
|
||||
/**
|
||||
* * 添加${${classTitle}}
|
||||
* * 添加${classTitle}
|
||||
*/
|
||||
export function onAdd() {
|
||||
addDialog({
|
||||
title: `$leftBrace $t("add")} $leftBrace$t("${lowercaseName}")}`,
|
||||
title: `$leftBrace $t("add_new")}$leftBrace$t("${lowercaseName}")}`,
|
||||
width: '30%',
|
||||
props: {
|
||||
formInline: {
|
||||
|
@ -58,7 +58,7 @@ export function onAdd() {
|
|||
*/
|
||||
export function onUpdate(row: any) {
|
||||
addDialog({
|
||||
title: `$leftBrace$t("modify")} $leftBrace$t("${lowercaseName}")}`,
|
||||
title: `$leftBrace$t("modify")}$leftBrace$t("${lowercaseName}")}`,
|
||||
width: '30%',
|
||||
props: {
|
||||
formInline: {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
import { onMounted, ref } from 'vue';
|
||||
import { columns } from '${columnsPath}';
|
||||
import PureTableBar from '@/components/TableBar/src/bar';
|
||||
import { useRenderIcon } from '@/components/ReIcon/src/hooks';
|
||||
import AddFill from '@iconify-icons/ri/add-circle-line';
|
||||
import PureTable from '@pureadmin/table';
|
||||
import { onAdd, onDelete, onSearch, onUpdate } from '${hookPath}';
|
||||
|
@ -11,7 +10,8 @@
|
|||
import Refresh from '@iconify-icons/ep/refresh';
|
||||
import { selectUserinfo } from '@/components/Table/Userinfo/columns';
|
||||
import { $t } from '@/plugins/i18n';
|
||||
import { use${originalName}Store } from '@/store/modules/${lowercaseName}';
|
||||
import { use${originalName}Store } from '${storePath}';
|
||||
import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
|
||||
|
||||
const tableRef = ref();
|
||||
const formRef = ref();
|
||||
|
@ -33,7 +33,7 @@
|
|||
<el-form ref="formRef" :inline="true" :model="${lowercaseName}Store.form" class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto">
|
||||
#foreach($item in $formList)
|
||||
<el-form-item :label="$t('${lowercaseName}_${item.name}')" prop="${item.name}">
|
||||
<el-input v-model="${lowercaseName}Store.form.${item.name}" :placeholder="`$leftBrace$t('input')} $leftBrace$t('${item.name}')}`" class="!w-[180px]" clearable />
|
||||
<el-input v-model="${lowercaseName}Store.form.${item.name}" :placeholder="`$leftBrace$t('input')}$leftBrace$t('${lowercaseName}_${item.name}')}`" class="!w-[180px]" clearable />
|
||||
</el-form-item>
|
||||
#end
|
||||
<el-form-item>
|
||||
|
|
|
@ -2,6 +2,7 @@ import { defineStore } from 'pinia';
|
|||
import { fetchAdd${originalName}, fetchDelete${originalName}, fetchGet${originalName}List, fetchUpdate${originalName} } from '${apiPath}';
|
||||
import { pageSizes } from '@/enums/baseConstant';
|
||||
import { storeMessage } from '@/utils/message';
|
||||
import { storePagination } from '@/store/useStorePagination';
|
||||
|
||||
/**
|
||||
* ${classTitle} Store
|
||||
|
@ -35,21 +36,18 @@ export const use${originalName}Store = defineStore('${lowercaseName}Store', {
|
|||
* * 获取${classTitle}
|
||||
*/
|
||||
async get${originalName}List() {
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
delete data.pageSizes;
|
||||
delete data.total;
|
||||
delete data.background;
|
||||
|
||||
// 获取${classTitle}列表
|
||||
const result = await fetchGet${originalName}List(data);
|
||||
|
||||
if (result.code === 200) {
|
||||
this.datalist = result.data.list;
|
||||
this.pagination.currentPage = result.data.pageNo;
|
||||
this.pagination.pageSize = result.data.pageSize;
|
||||
this.pagination.total = result.data.total;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
// 公共页面函数hook
|
||||
const pagination = storePagination.bind(this);
|
||||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package cn.bunny.common.service.context;
|
||||
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
|
||||
public class BaseContext {
|
||||
private static final ThreadLocal<Long> userId = new ThreadLocal<>();
|
||||
private static final ThreadLocal<String> username = new ThreadLocal<String>();
|
||||
private static final ThreadLocal<String> username = new ThreadLocal<>();
|
||||
private static final ThreadLocal<LoginVo> loginVo = new ThreadLocal<>();
|
||||
|
||||
// 用户id相关
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.email;
|
||||
package cn.bunny.dao.dto.system.email;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.email;
|
||||
package cn.bunny.dao.dto.system.email;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.menuIcon;
|
||||
package cn.bunny.dao.dto.system.menuIcon;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.menuIcon;
|
||||
package cn.bunny.dao.dto.system.menuIcon;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.menuIcon;
|
||||
package cn.bunny.dao.dto.system.menuIcon;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
|
@ -0,0 +1,27 @@
|
|||
package cn.bunny.dao.dto.system.role;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "RoleAddDto对象", title = "角色", description = "角色管理")
|
||||
public class RoleAddDto {
|
||||
|
||||
@Schema(name = "roleCode", title = "角色代码")
|
||||
@NotBlank(message = "roleCode 不能为空")
|
||||
private String roleCode;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
@NotBlank(message = "description 不能为空")
|
||||
private String description;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package cn.bunny.dao.dto.system.role;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "RoleDto对象", title = "角色", description = "角色管理")
|
||||
public class RoleDto {
|
||||
|
||||
@Schema(name = "roleCode", title = "角色代码")
|
||||
private String roleCode;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package cn.bunny.dao.dto.system.role;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "RoleUpdateDto对象", title = "角色", description = "角色管理")
|
||||
public class RoleUpdateDto {
|
||||
|
||||
@Schema(name = "id", title = "主键")
|
||||
@NotNull(message = "id不能为空")
|
||||
private Long id;
|
||||
|
||||
@Schema(name = "roleCode", title = "角色代码")
|
||||
@NotBlank(message = "roleCode 不能为空")
|
||||
private String roleCode;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
@NotBlank(message = "description 不能为空")
|
||||
private String description;
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.router;
|
||||
package cn.bunny.dao.dto.system.router;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.router;
|
||||
package cn.bunny.dao.dto.system.router;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.router;
|
||||
package cn.bunny.dao.dto.system.router;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.user;
|
||||
package cn.bunny.dao.dto.system.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.dto.user;
|
||||
package cn.bunny.dao.dto.system.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
|
@ -20,4 +20,5 @@ public class Role extends BaseEntity {
|
|||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.email;
|
||||
package cn.bunny.dao.vo.system.email;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.menuIcon;
|
||||
package cn.bunny.dao.vo.system.menuIcon;
|
||||
|
||||
import cn.bunny.dao.vo.BaseVo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
@ -0,0 +1,21 @@
|
|||
package cn.bunny.dao.vo.system.rolePower;
|
||||
|
||||
import cn.bunny.dao.vo.BaseVo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "RoleVo对象", title = "角色", description = "角色管理")
|
||||
public class RoleVo extends BaseVo {
|
||||
|
||||
@Schema(name = "roleCode", title = "角色代码")
|
||||
private String roleCode;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.router;
|
||||
package cn.bunny.dao.vo.system.router;
|
||||
|
||||
import cn.bunny.dao.vo.BaseVo;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.router;
|
||||
package cn.bunny.dao.vo.system.router;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.router;
|
||||
package cn.bunny.dao.vo.system.router;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.user;
|
||||
package cn.bunny.dao.vo.system.user;
|
||||
|
||||
import cn.bunny.dao.vo.BaseVo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.user;
|
||||
package cn.bunny.dao.vo.system.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.user;
|
||||
package cn.bunny.dao.vo.system.user;
|
||||
|
||||
import cn.bunny.dao.vo.BaseVo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.dao.vo.user;
|
||||
package cn.bunny.dao.vo.system.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,13 +1,13 @@
|
|||
package cn.bunny.services.controller;
|
||||
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconUpdateDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconUpdateDto;
|
||||
import cn.bunny.dao.entity.system.MenuIcon;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.pojo.result.Result;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.menuIcon.MenuIconVo;
|
||||
import cn.bunny.dao.vo.system.menuIcon.MenuIconVo;
|
||||
import cn.bunny.services.service.MenuIconService;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
|
|
@ -1,18 +1,72 @@
|
|||
package cn.bunny.services.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import cn.bunny.dao.dto.system.role.RoleAddDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Role;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.pojo.result.Result;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.system.rolePower.RoleVo;
|
||||
import cn.bunny.services.service.RoleService;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* 角色表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author Bunny
|
||||
* @since 2024-09-26
|
||||
* @since 2024-10-03 14:26:24
|
||||
*/
|
||||
@Tag(name = "角色", description = "角色相关接口")
|
||||
@RestController
|
||||
@RequestMapping("/role")
|
||||
@RequestMapping("admin/role")
|
||||
public class RoleController {
|
||||
|
||||
@Autowired
|
||||
private RoleService roleService;
|
||||
|
||||
@Operation(summary = "分页查询角色", description = "分页查询角色")
|
||||
@GetMapping("getRoleList/{page}/{limit}")
|
||||
public Mono<Result<PageResult<RoleVo>>> getRoleList(
|
||||
@Parameter(name = "page", description = "当前页", required = true)
|
||||
@PathVariable("page") Integer page,
|
||||
@Parameter(name = "limit", description = "每页记录数", required = true)
|
||||
@PathVariable("limit") Integer limit,
|
||||
RoleDto dto) {
|
||||
Page<Role> pageParams = new Page<>(page, limit);
|
||||
PageResult<RoleVo> pageResult = roleService.getRoleList(pageParams, dto);
|
||||
return Mono.just(Result.success(pageResult));
|
||||
}
|
||||
|
||||
@Operation(summary = "添加角色", description = "添加角色")
|
||||
@PostMapping("addRole")
|
||||
public Mono<Result<String>> addRole(@Valid @RequestBody RoleAddDto dto) {
|
||||
roleService.addRole(dto);
|
||||
return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "更新角色", description = "更新角色")
|
||||
@PutMapping("updateRole")
|
||||
public Mono<Result<String>> updateRole(@Valid @RequestBody RoleUpdateDto dto) {
|
||||
roleService.updateRole(dto);
|
||||
return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "删除角色", description = "删除角色")
|
||||
@DeleteMapping("deleteRole")
|
||||
public Mono<Result<String>> deleteRole(@RequestBody List<Long> ids) {
|
||||
roleService.deleteRole(ids);
|
||||
return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package cn.bunny.services.controller;
|
||||
|
||||
import cn.bunny.dao.dto.router.RouterAddDto;
|
||||
import cn.bunny.dao.dto.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.router.RouterUpdateDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterAddDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Router;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.pojo.result.Result;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.router.UserRouterVo;
|
||||
import cn.bunny.dao.vo.system.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.system.router.UserRouterVo;
|
||||
import cn.bunny.services.service.RouterService;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package cn.bunny.services.controller;
|
||||
|
||||
import cn.bunny.dao.dto.user.RefreshTokenDto;
|
||||
import cn.bunny.dao.dto.system.user.RefreshTokenDto;
|
||||
import cn.bunny.dao.pojo.result.Result;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.user.RefreshTokenVo;
|
||||
import cn.bunny.dao.vo.user.UserVo;
|
||||
import cn.bunny.dao.vo.system.user.RefreshTokenVo;
|
||||
import cn.bunny.dao.vo.system.user.UserVo;
|
||||
import cn.bunny.services.service.UserService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package cn.bunny.services.factory;
|
||||
|
||||
import cn.bunny.dao.vo.common.TreeSelectVo;
|
||||
import cn.bunny.dao.vo.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.router.UserRouterVo;
|
||||
import cn.bunny.dao.vo.system.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.system.router.UserRouterVo;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import cn.bunny.dao.entity.system.Role;
|
|||
import cn.bunny.dao.pojo.constant.LocalDateTimeConstant;
|
||||
import cn.bunny.dao.pojo.constant.RedisUserConstant;
|
||||
import cn.bunny.dao.pojo.constant.UserConstant;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import cn.bunny.services.mapper.PowerMapper;
|
||||
import cn.bunny.services.mapper.RoleMapper;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package cn.bunny.services.mapper;
|
||||
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.entity.system.MenuIcon;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
|
|
|
@ -1,23 +1,43 @@
|
|||
package cn.bunny.services.mapper;
|
||||
|
||||
import cn.bunny.dao.dto.system.role.RoleDto;
|
||||
import cn.bunny.dao.entity.system.Role;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* 角色 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author Bunny
|
||||
* @since 2024-09-26
|
||||
* @since 2024-10-03 14:26:24
|
||||
*/
|
||||
@Mapper
|
||||
public interface RoleMapper extends BaseMapper<Role> {
|
||||
|
||||
/**
|
||||
* * 分页查询角色内容
|
||||
*
|
||||
* @param pageParams 角色分页参数
|
||||
* @param dto 角色查询表单
|
||||
* @return 角色分页结果
|
||||
*/
|
||||
IPage<Role> selectListByPage(@Param("page") Page<Role> pageParams, @Param("dto") RoleDto dto);
|
||||
|
||||
/**
|
||||
* 物理删除角色
|
||||
*
|
||||
* @param ids 删除 id 列表
|
||||
*/
|
||||
void deleteBatchIdsWithPhysics(List<Long> ids);
|
||||
|
||||
/**
|
||||
* * 根据用户id查询当前用户所有角色
|
||||
*
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.bunny.services.mapper;
|
||||
|
||||
|
||||
import cn.bunny.dao.dto.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterManageDto;
|
||||
import cn.bunny.dao.entity.system.Router;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
|
|
|
@ -95,7 +95,8 @@ public class WebSecurityConfig {
|
|||
"/", "/ws/**",
|
||||
"/*/*/noAuth/**", "/*/noAuth/**", "/noAuth/**",
|
||||
"/media.ico", "/favicon.ico", "*.html", "/webjars/**",
|
||||
"/swagger-resources/**", "/v3/**", "/swagger-ui/**"
|
||||
"/swagger-resources/**", "/v3/**", "/swagger-ui/**",
|
||||
"/*/i18n/getI18n"
|
||||
};
|
||||
return web -> web.ignoring().requestMatchers(annotations);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import cn.bunny.common.service.utils.ResponseUtil;
|
|||
import cn.bunny.dao.pojo.constant.RedisUserConstant;
|
||||
import cn.bunny.dao.pojo.result.Result;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.bunny.services.security.filter;
|
||||
|
||||
import cn.bunny.common.service.context.BaseContext;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package cn.bunny.services.security.filter;
|
||||
|
||||
|
||||
import cn.bunny.dao.dto.user.LoginDto;
|
||||
import cn.bunny.dao.dto.system.user.LoginDto;
|
||||
import cn.bunny.dao.pojo.constant.RedisUserConstant;
|
||||
import cn.bunny.dao.pojo.result.Result;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import cn.bunny.services.security.handelr.SecurityAuthenticationFailureHandler;
|
||||
import cn.bunny.services.security.handelr.SecurityAuthenticationSuccessHandler;
|
||||
import cn.bunny.services.security.service.CustomUserDetailsService;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.bunny.services.security.service;
|
||||
|
||||
import cn.bunny.dao.dto.user.LoginDto;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.dto.system.user.LoginDto;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package cn.bunny.services.security.service.iml;
|
||||
|
||||
import cn.bunny.common.service.exception.BunnyException;
|
||||
import cn.bunny.dao.dto.user.LoginDto;
|
||||
import cn.bunny.dao.dto.system.user.LoginDto;
|
||||
import cn.bunny.dao.entity.system.AdminUser;
|
||||
import cn.bunny.dao.entity.system.Role;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import cn.bunny.services.factory.UserFactory;
|
||||
import cn.bunny.services.mapper.RoleMapper;
|
||||
import cn.bunny.services.mapper.UserMapper;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package cn.bunny.services.service;
|
||||
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconUpdateDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconUpdateDto;
|
||||
import cn.bunny.dao.entity.system.MenuIcon;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.vo.menuIcon.MenuIconVo;
|
||||
import cn.bunny.dao.vo.system.menuIcon.MenuIconVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import jakarta.validation.Valid;
|
||||
|
|
|
@ -1,16 +1,52 @@
|
|||
package cn.bunny.services.service;
|
||||
|
||||
import cn.bunny.dao.dto.system.role.RoleAddDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Role;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.vo.system.rolePower.RoleVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* 角色 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author Bunny
|
||||
* @since 2024-09-26
|
||||
* @since 2024-10-03 14:26:24
|
||||
*/
|
||||
public interface RoleService extends IService<Role> {
|
||||
|
||||
/**
|
||||
* * 获取角色列表
|
||||
*
|
||||
* @return 角色返回列表
|
||||
*/
|
||||
PageResult<RoleVo> getRoleList(Page<Role> pageParams, RoleDto dto);
|
||||
|
||||
/**
|
||||
* * 添加角色
|
||||
*
|
||||
* @param dto 添加表单
|
||||
*/
|
||||
void addRole(@Valid RoleAddDto dto);
|
||||
|
||||
/**
|
||||
* * 更新角色
|
||||
*
|
||||
* @param dto 更新表单
|
||||
*/
|
||||
void updateRole(@Valid RoleUpdateDto dto);
|
||||
|
||||
/**
|
||||
* * 删除|批量删除角色类型
|
||||
*
|
||||
* @param ids 删除id列表
|
||||
*/
|
||||
void deleteRole(List<Long> ids);
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package cn.bunny.services.service;
|
||||
|
||||
import cn.bunny.dao.dto.router.RouterAddDto;
|
||||
import cn.bunny.dao.dto.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.router.RouterUpdateDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterAddDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Router;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.vo.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.router.UserRouterVo;
|
||||
import cn.bunny.dao.vo.system.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.system.router.UserRouterVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import jakarta.validation.Valid;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package cn.bunny.services.service;
|
||||
|
||||
import cn.bunny.dao.dto.user.RefreshTokenDto;
|
||||
import cn.bunny.dao.dto.system.user.RefreshTokenDto;
|
||||
import cn.bunny.dao.entity.system.AdminUser;
|
||||
import cn.bunny.dao.vo.user.RefreshTokenVo;
|
||||
import cn.bunny.dao.vo.user.UserVo;
|
||||
import cn.bunny.dao.vo.system.user.RefreshTokenVo;
|
||||
import cn.bunny.dao.vo.system.user.UserVo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package cn.bunny.services.service.impl;
|
||||
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.menuIcon.MenuIconUpdateDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconAddDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconDto;
|
||||
import cn.bunny.dao.dto.system.menuIcon.MenuIconUpdateDto;
|
||||
import cn.bunny.dao.entity.system.MenuIcon;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.vo.menuIcon.MenuIconVo;
|
||||
import cn.bunny.dao.vo.system.menuIcon.MenuIconVo;
|
||||
import cn.bunny.services.mapper.MenuIconMapper;
|
||||
import cn.bunny.services.service.MenuIconService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
|
|
|
@ -1,20 +1,92 @@
|
|||
package cn.bunny.services.service.impl;
|
||||
|
||||
import cn.bunny.dao.dto.system.role.RoleAddDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleDto;
|
||||
import cn.bunny.dao.dto.system.role.RoleUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Role;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.vo.system.rolePower.RoleVo;
|
||||
import cn.bunny.services.mapper.RoleMapper;
|
||||
import cn.bunny.services.service.RoleService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* 角色 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author Bunny
|
||||
* @since 2024-09-26
|
||||
* @since 2024-10-03 14:26:24
|
||||
*/
|
||||
@Service
|
||||
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
|
||||
|
||||
/**
|
||||
* * 角色 服务实现类
|
||||
*
|
||||
* @param pageParams 角色分页查询page对象
|
||||
* @param dto 角色分页查询对象
|
||||
* @return 查询分页角色返回对象
|
||||
*/
|
||||
@Override
|
||||
public PageResult<RoleVo> getRoleList(Page<Role> pageParams, RoleDto dto) {
|
||||
// 分页查询菜单图标
|
||||
IPage<Role> page = baseMapper.selectListByPage(pageParams, dto);
|
||||
|
||||
List<RoleVo> voList = page.getRecords().stream().map(Role -> {
|
||||
RoleVo RoleVo = new RoleVo();
|
||||
BeanUtils.copyProperties(Role, RoleVo);
|
||||
return RoleVo;
|
||||
}).toList();
|
||||
|
||||
return PageResult.<RoleVo>builder()
|
||||
.list(voList)
|
||||
.pageNo(page.getCurrent())
|
||||
.pageSize(page.getSize())
|
||||
.total(page.getTotal())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加角色
|
||||
*
|
||||
* @param dto 角色添加
|
||||
*/
|
||||
@Override
|
||||
public void addRole(@Valid RoleAddDto dto) {
|
||||
// 保存数据
|
||||
Role role = new Role();
|
||||
BeanUtils.copyProperties(dto, role);
|
||||
save(role);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新角色
|
||||
*
|
||||
* @param dto 角色更新
|
||||
*/
|
||||
@Override
|
||||
public void updateRole(@Valid RoleUpdateDto dto) {
|
||||
// 更新内容
|
||||
Role role = new Role();
|
||||
BeanUtils.copyProperties(dto, role);
|
||||
updateById(role);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除|批量删除角色
|
||||
*
|
||||
* @param ids 删除id列表
|
||||
*/
|
||||
@Override
|
||||
public void deleteRole(List<Long> ids) {
|
||||
baseMapper.deleteBatchIdsWithPhysics(ids);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,17 +2,17 @@ package cn.bunny.services.service.impl;
|
|||
|
||||
import cn.bunny.common.service.context.BaseContext;
|
||||
import cn.bunny.common.service.exception.BunnyException;
|
||||
import cn.bunny.dao.dto.router.RouterAddDto;
|
||||
import cn.bunny.dao.dto.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.router.RouterUpdateDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterAddDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterManageDto;
|
||||
import cn.bunny.dao.dto.system.router.RouterUpdateDto;
|
||||
import cn.bunny.dao.entity.system.Router;
|
||||
import cn.bunny.dao.pojo.constant.RedisUserConstant;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.router.RouterMeta;
|
||||
import cn.bunny.dao.vo.router.UserRouterVo;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.router.RouterManageVo;
|
||||
import cn.bunny.dao.vo.system.router.RouterMeta;
|
||||
import cn.bunny.dao.vo.system.router.UserRouterVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import cn.bunny.services.factory.RouterServiceFactory;
|
||||
import cn.bunny.services.mapper.RouterMapper;
|
||||
import cn.bunny.services.service.RouterService;
|
||||
|
|
|
@ -4,15 +4,15 @@ import cn.bunny.common.service.context.BaseContext;
|
|||
import cn.bunny.common.service.exception.BunnyException;
|
||||
import cn.bunny.common.service.utils.JwtHelper;
|
||||
import cn.bunny.common.service.utils.minio.MinioUtil;
|
||||
import cn.bunny.dao.dto.user.RefreshTokenDto;
|
||||
import cn.bunny.dao.dto.system.user.RefreshTokenDto;
|
||||
import cn.bunny.dao.entity.system.AdminUser;
|
||||
import cn.bunny.dao.entity.system.EmailUsers;
|
||||
import cn.bunny.dao.pojo.common.EmailSendInit;
|
||||
import cn.bunny.dao.pojo.constant.RedisUserConstant;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.user.LoginVo;
|
||||
import cn.bunny.dao.vo.user.RefreshTokenVo;
|
||||
import cn.bunny.dao.vo.user.UserVo;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
import cn.bunny.dao.vo.system.user.RefreshTokenVo;
|
||||
import cn.bunny.dao.vo.system.user.UserVo;
|
||||
import cn.bunny.services.factory.EmailFactory;
|
||||
import cn.bunny.services.factory.UserFactory;
|
||||
import cn.bunny.services.mapper.EmailUsersMapper;
|
||||
|
@ -80,7 +80,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public RefreshTokenVo refreshToken(RefreshTokenDto dto) {
|
||||
public RefreshTokenVo refreshToken(@NotNull RefreshTokenDto dto) {
|
||||
Long userId = JwtHelper.getUserId(dto.getRefreshToken());
|
||||
AdminUser adminUser = getOne(Wrappers.<AdminUser>lambdaQuery().eq(AdminUser::getId, userId));
|
||||
|
||||
|
@ -113,6 +113,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
public UserVo getUserinfoById(Long id) {
|
||||
if (id == null) throw new BunnyException(ResultCodeEnum.REQUEST_IS_EMPTY);
|
||||
AdminUser user = getById(id);
|
||||
|
||||
if (user == null) throw new BunnyException(ResultCodeEnum.DATA_NOT_EXIST);
|
||||
|
||||
String avatar = user.getAvatar();
|
||||
|
||||
UserVo userVo = new UserVo();
|
||||
|
|
|
@ -5,20 +5,46 @@
|
|||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.system.Role">
|
||||
<id column="id" property="id"/>
|
||||
<result column="role_code" property="roleCode"/>
|
||||
<result column="description" property="description"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
<result column="create_user" property="createUser"/>
|
||||
<result column="update_user" property="updateUser"/>
|
||||
<result column="is_deleted" property="isDeleted"/>
|
||||
<id column="create_time" property="createTime"/>
|
||||
<id column="update_time" property="updateTime"/>
|
||||
<id column="create_user" property="createUser"/>
|
||||
<id column="update_user" property="updateUser"/>
|
||||
<id column="is_deleted" property="isDeleted"/>
|
||||
<id column="role_code" property="roleCode"/>
|
||||
<id column="description" property="description"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
id, role_code, description, create_time, update_time, create_user, update_user, is_deleted
|
||||
id, create_time, update_time, create_user, update_user, is_deleted, role_code, description
|
||||
</sql>
|
||||
|
||||
<!-- 分页查询角色内容 -->
|
||||
<select id="selectListByPage" resultType="cn.bunny.dao.entity.system.Role">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from sys_role
|
||||
<where>
|
||||
<if test="dto.roleCode != null and dto.roleCode != ''">
|
||||
role_code like CONCAT('%',#{dto.roleCode},'%')
|
||||
</if>
|
||||
<if test="dto.description != null and dto.description != ''">
|
||||
description like CONCAT('%',#{dto.description},'%')
|
||||
</if>
|
||||
</where>
|
||||
order by update_time
|
||||
</select>
|
||||
|
||||
<!-- 物理删除角色 -->
|
||||
<delete id="deleteBatchIdsWithPhysics">
|
||||
delete
|
||||
from sys_role
|
||||
where id in
|
||||
<foreach collection="ids" item="id" open="(" close=")" separator=",">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<!-- 根据用户id查询当前用户所有角色 -->
|
||||
<select id="selectListByUserId" resultType="cn.bunny.dao.entity.system.Role">
|
||||
SELECT r.*
|
||||
|
|
Loading…
Reference in New Issue