feat: 创建 pangu-business 业务模块并完成迁移
主要变更: 1. 创建 pangu-business 模块,适配 RuoYi-Vue-Plus 5.5.3 架构 2. 迁移业务实体类:PgGrade, PgClass, PgSubject, PgRegion, PgSchool, PgMember, PgStudent, PgApplication 等 3. 创建对应的 Mapper 接口(继承 BaseMapperPlus) 4. 创建 Service 层(接口 + 实现) 5. 创建 Controller(使用 R<T> 响应格式、Sa-Token 权限控制) 6. 添加业务表 SQL 脚本(适配租户字段) 7. 添加业务菜单数据 技术适配: - Entity 继承 BaseEntity,添加 tenantId 字段 - Mapper 继承 BaseMapperPlus<T, V> - Controller 使用 @SaCheckPermission 权限注解 - API 路径:/business/grade, /business/class, /business/school 等
This commit is contained in:
parent
91a62b00d4
commit
aa5d5b125e
|
|
@ -52,6 +52,11 @@
|
|||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-workflow</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>pangu-business</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>de.codecentric</groupId>
|
||||
<artifactId>spring-boot-admin-starter-client</artifactId>
|
||||
|
|
|
|||
|
|
@ -93,6 +93,13 @@
|
|||
<artifactId>ruoyi-workflow</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- 盘古业务模块 -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>pangu-business</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>de.codecentric</groupId>
|
||||
<artifactId>spring-boot-admin-starter-client</artifactId>
|
||||
|
|
|
|||
|
|
@ -18,5 +18,6 @@
|
|||
<module>ruoyi-job</module>
|
||||
<module>ruoyi-system</module>
|
||||
<module>ruoyi-workflow</module>
|
||||
<module>pangu-business</module>
|
||||
</modules>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>5.5.3</version>
|
||||
</parent>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>pangu-business</artifactId>
|
||||
<version>5.5.3</version>
|
||||
<description>盘古业务模块 - 包含学校、会员、学生、应用管理等业务功能</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-security</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-log</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-excel</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-translation</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-system</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>pangu-business</artifactId>
|
||||
|
||||
<description>
|
||||
盘古业务模块 - 包含学校、会员、学生、应用管理等业务功能
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<!-- RuoYi Common Security -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Common Web -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Common Log -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Common Excel -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-excel</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Common Translation -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-translation</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi System (用于关联系统用户等) -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-system</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
-- ============================================================
|
||||
-- 盘古用户平台 - 业务菜单数据(适配 RuoYi-Vue-Plus 5.x)
|
||||
-- 作者:湖北新华业务中台研发团队
|
||||
-- 创建时间:2026-02-02
|
||||
-- ============================================================
|
||||
|
||||
USE `pguser-db`;
|
||||
|
||||
-- 业务管理一级菜单
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2000, '业务管理', 0, 5, 'business', NULL, '', 1, 0, 'M', '0', '0', '', 'guide', 103, 1, NOW(), NULL, NULL, '业务管理目录');
|
||||
|
||||
-- ===================== 基础数据管理 =====================
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2100, '基础数据', 2000, 1, 'base', NULL, '', 1, 0, 'M', '0', '0', '', 'dict', 103, 1, NOW(), NULL, NULL, '基础数据管理');
|
||||
|
||||
-- 年级管理
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2101, '年级管理', 2100, 1, 'grade', 'business/base/grade/index', '', 1, 0, 'C', '0', '0', 'business:grade:list', 'education', 103, 1, NOW(), NULL, NULL, '年级管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2102, '年级查询', 2101, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:grade:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2103, '年级新增', 2101, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:grade:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2104, '年级修改', 2101, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:grade:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2105, '年级删除', 2101, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:grade:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2106, '年级导出', 2101, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:grade:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- 班级管理
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2111, '班级管理', 2100, 2, 'class', 'business/base/class/index', '', 1, 0, 'C', '0', '0', 'business:class:list', 'peoples', 103, 1, NOW(), NULL, NULL, '班级管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2112, '班级查询', 2111, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:class:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2113, '班级新增', 2111, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:class:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2114, '班级修改', 2111, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:class:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2115, '班级删除', 2111, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:class:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2116, '班级导出', 2111, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:class:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- 学科管理
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2121, '学科管理', 2100, 3, 'subject', 'business/base/subject/index', '', 1, 0, 'C', '0', '0', 'business:subject:list', 'skill', 103, 1, NOW(), NULL, NULL, '学科管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2122, '学科查询', 2121, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:subject:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2123, '学科新增', 2121, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:subject:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2124, '学科修改', 2121, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:subject:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2125, '学科删除', 2121, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:subject:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2126, '学科导出', 2121, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:subject:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- 区域管理
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2131, '区域管理', 2100, 4, 'region', 'business/base/region/index', '', 1, 0, 'C', '0', '0', 'business:region:list', 'tree', 103, 1, NOW(), NULL, NULL, '区域管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2132, '区域查询', 2131, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:region:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2133, '区域新增', 2131, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:region:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2134, '区域修改', 2131, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:region:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2135, '区域删除', 2131, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:region:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2136, '区域导出', 2131, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:region:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- ===================== 学校管理 =====================
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2200, '学校管理', 2000, 2, 'school', 'business/school/index', '', 1, 0, 'C', '0', '0', 'business:school:list', 'education', 103, 1, NOW(), NULL, NULL, '学校管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2201, '学校查询', 2200, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:school:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2202, '学校新增', 2200, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:school:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2203, '学校修改', 2200, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:school:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2204, '学校删除', 2200, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:school:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2205, '学校导出', 2200, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:school:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- ===================== 会员管理 =====================
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2300, '会员管理', 2000, 3, 'member', 'business/member/index', '', 1, 0, 'C', '0', '0', 'business:member:list', 'user', 103, 1, NOW(), NULL, NULL, '会员管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2301, '会员查询', 2300, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:member:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2302, '会员新增', 2300, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:member:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2303, '会员修改', 2300, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:member:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2304, '会员删除', 2300, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:member:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2305, '会员导出', 2300, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:member:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2306, '会员导入', 2300, 6, '', '', '', 1, 0, 'F', '0', '0', 'business:member:import', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- ===================== 学生管理 =====================
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2400, '学生管理', 2000, 4, 'student', 'business/student/index', '', 1, 0, 'C', '0', '0', 'business:student:list', 'peoples', 103, 1, NOW(), NULL, NULL, '学生管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2401, '学生查询', 2400, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:student:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2402, '学生新增', 2400, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:student:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2403, '学生修改', 2400, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:student:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2404, '学生删除', 2400, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:student:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2405, '学生导出', 2400, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:student:export', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2406, '学生导入', 2400, 6, '', '', '', 1, 0, 'F', '0', '0', 'business:student:import', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
||||
-- ===================== 应用管理 =====================
|
||||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
|
||||
VALUES (2500, '应用管理', 2000, 5, 'application', 'business/application/index', '', 1, 0, 'C', '0', '0', 'business:application:list', 'component', 103, 1, NOW(), NULL, NULL, '应用管理菜单');
|
||||
INSERT INTO `sys_menu` VALUES (2501, '应用查询', 2500, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:application:query', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2502, '应用新增', 2500, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:application:add', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2503, '应用修改', 2500, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:application:edit', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2504, '应用删除', 2500, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:application:remove', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
INSERT INTO `sys_menu` VALUES (2505, 'API授权', 2500, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:application:api', '#', 103, 1, NOW(), NULL, NULL, '');
|
||||
|
|
@ -0,0 +1,328 @@
|
|||
-- ============================================================
|
||||
-- 盘古用户平台 - 业务模块建表脚本(适配 RuoYi-Vue-Plus 5.x)
|
||||
-- 作者:湖北新华业务中台研发团队
|
||||
-- 创建时间:2026-02-02
|
||||
-- ============================================================
|
||||
|
||||
USE `pguser-db`;
|
||||
|
||||
-- ============================================================
|
||||
-- 1. 年级字典表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_grade`;
|
||||
CREATE TABLE `pg_grade` (
|
||||
`grade_id` bigint NOT NULL COMMENT '年级ID',
|
||||
`grade_code` varchar(32) NOT NULL COMMENT '年级编码',
|
||||
`grade_name` varchar(50) NOT NULL COMMENT '年级名称',
|
||||
`order_num` int DEFAULT 0 COMMENT '显示顺序',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`grade_id`),
|
||||
UNIQUE KEY `uk_grade_code` (`grade_code`)
|
||||
) ENGINE=InnoDB COMMENT='年级字典表';
|
||||
|
||||
-- 年级初始化数据
|
||||
INSERT INTO `pg_grade` VALUES
|
||||
(1, 'GRD001', '一年级', 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(2, 'GRD002', '二年级', 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(3, 'GRD003', '三年级', 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(4, 'GRD004', '四年级', 4, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(5, 'GRD005', '五年级', 5, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(6, 'GRD006', '六年级', 6, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(7, 'GRD007', '七年级', 7, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(8, 'GRD008', '八年级', 8, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(9, 'GRD009', '九年级', 9, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(10, 'GRD010', '高一', 10, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(11, 'GRD011', '高二', 11, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(12, 'GRD012', '高三', 12, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL);
|
||||
|
||||
-- ============================================================
|
||||
-- 2. 班级字典表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_class`;
|
||||
CREATE TABLE `pg_class` (
|
||||
`class_id` bigint NOT NULL COMMENT '班级ID',
|
||||
`class_code` varchar(32) NOT NULL COMMENT '班级编码',
|
||||
`class_name` varchar(50) NOT NULL COMMENT '班级名称',
|
||||
`order_num` int DEFAULT 0 COMMENT '显示顺序',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`class_id`),
|
||||
UNIQUE KEY `uk_class_code` (`class_code`)
|
||||
) ENGINE=InnoDB COMMENT='班级字典表';
|
||||
|
||||
-- 班级初始化数据
|
||||
INSERT INTO `pg_class` VALUES
|
||||
(1, 'CLS001', '1班', 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(2, 'CLS002', '2班', 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(3, 'CLS003', '3班', 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(4, 'CLS004', '4班', 4, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(5, 'CLS005', '5班', 5, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(6, 'CLS006', '6班', 6, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(7, 'CLS007', '7班', 7, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(8, 'CLS008', '8班', 8, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(9, 'CLS009', '9班', 9, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(10, 'CLS010', '10班', 10, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL);
|
||||
|
||||
-- ============================================================
|
||||
-- 3. 学科表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_subject`;
|
||||
CREATE TABLE `pg_subject` (
|
||||
`subject_id` bigint NOT NULL COMMENT '学科ID',
|
||||
`subject_code` varchar(32) NOT NULL COMMENT '学科编码',
|
||||
`subject_name` varchar(50) NOT NULL COMMENT '学科名称',
|
||||
`order_num` int DEFAULT 0 COMMENT '显示顺序',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`subject_id`),
|
||||
UNIQUE KEY `uk_subject_code` (`subject_code`)
|
||||
) ENGINE=InnoDB COMMENT='学科表';
|
||||
|
||||
-- 学科初始化数据
|
||||
INSERT INTO `pg_subject` VALUES
|
||||
(1, 'SUB001', '语文', 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(2, 'SUB002', '数学', 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(3, 'SUB003', '英语', 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(4, 'SUB004', '物理', 4, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(5, 'SUB005', '化学', 5, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(6, 'SUB006', '生物', 6, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(7, 'SUB007', '历史', 7, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(8, 'SUB008', '地理', 8, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
|
||||
(9, 'SUB009', '政治', 9, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL);
|
||||
|
||||
-- ============================================================
|
||||
-- 4. 区域表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_region`;
|
||||
CREATE TABLE `pg_region` (
|
||||
`region_id` bigint NOT NULL COMMENT '区域ID',
|
||||
`parent_id` bigint DEFAULT 0 COMMENT '父区域ID',
|
||||
`ancestors` varchar(500) DEFAULT '' COMMENT '祖级列表',
|
||||
`region_name` varchar(100) NOT NULL COMMENT '区域名称',
|
||||
`region_code` varchar(32) DEFAULT NULL COMMENT '区域编码',
|
||||
`level` int DEFAULT 1 COMMENT '层级(1省 2市 3区县)',
|
||||
`order_num` int DEFAULT 0 COMMENT '显示顺序',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
PRIMARY KEY (`region_id`)
|
||||
) ENGINE=InnoDB COMMENT='区域表';
|
||||
|
||||
-- 区域初始化数据(湖北省示例)
|
||||
INSERT INTO `pg_region` VALUES
|
||||
(420000, 0, '0', '湖北省', '420000', 1, 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
|
||||
(420100, 420000, '0,420000', '武汉市', '420100', 2, 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
|
||||
(420102, 420100, '0,420000,420100', '江岸区', '420102', 3, 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
|
||||
(420103, 420100, '0,420000,420100', '江汉区', '420103', 3, 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
|
||||
(420104, 420100, '0,420000,420100', '硚口区', '420104', 3, 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0');
|
||||
|
||||
-- ============================================================
|
||||
-- 5. 学校表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_school`;
|
||||
CREATE TABLE `pg_school` (
|
||||
`school_id` bigint NOT NULL COMMENT '学校ID',
|
||||
`school_code` varchar(32) NOT NULL COMMENT '学校编码',
|
||||
`school_name` varchar(100) NOT NULL COMMENT '学校名称',
|
||||
`school_type` char(1) DEFAULT '1' COMMENT '学校类型(1小学 2初中 3高中 4完全中学)',
|
||||
`region_id` bigint DEFAULT NULL COMMENT '所属区域ID',
|
||||
`region_path` varchar(500) DEFAULT NULL COMMENT '区域路径',
|
||||
`address` varchar(500) DEFAULT NULL COMMENT '详细地址',
|
||||
`contact_person` varchar(50) DEFAULT NULL COMMENT '联系人',
|
||||
`contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`school_id`),
|
||||
UNIQUE KEY `uk_school_code` (`school_code`)
|
||||
) ENGINE=InnoDB COMMENT='学校表';
|
||||
|
||||
-- ============================================================
|
||||
-- 6. 学校年级关联表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_school_grade`;
|
||||
CREATE TABLE `pg_school_grade` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`school_id` bigint NOT NULL COMMENT '学校ID',
|
||||
`grade_id` bigint NOT NULL COMMENT '年级ID',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_school_grade` (`school_id`, `grade_id`)
|
||||
) ENGINE=InnoDB COMMENT='学校年级关联表';
|
||||
|
||||
-- ============================================================
|
||||
-- 7. 学校班级表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_school_class`;
|
||||
CREATE TABLE `pg_school_class` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`school_id` bigint NOT NULL COMMENT '学校ID',
|
||||
`school_grade_id` bigint NOT NULL COMMENT '学校年级ID',
|
||||
`class_id` bigint NOT NULL COMMENT '班级ID',
|
||||
`class_alias` varchar(50) DEFAULT NULL COMMENT '班级别名',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_school_grade` (`school_id`, `school_grade_id`)
|
||||
) ENGINE=InnoDB COMMENT='学校班级表';
|
||||
|
||||
-- ============================================================
|
||||
-- 8. 会员表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_member`;
|
||||
CREATE TABLE `pg_member` (
|
||||
`member_id` bigint NOT NULL COMMENT '会员ID',
|
||||
`member_code` varchar(32) NOT NULL COMMENT '会员编码',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`password` varchar(100) DEFAULT NULL COMMENT '密码',
|
||||
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
|
||||
`avatar` varchar(500) DEFAULT NULL COMMENT '头像',
|
||||
`gender` char(1) DEFAULT '0' COMMENT '性别(0未知 1男 2女)',
|
||||
`birthday` date DEFAULT NULL COMMENT '生日',
|
||||
`identity_type` char(1) DEFAULT '1' COMMENT '身份类型(1家长 2教师)',
|
||||
`open_id` varchar(100) DEFAULT NULL COMMENT '微信OpenID',
|
||||
`union_id` varchar(100) DEFAULT NULL COMMENT '微信UnionID',
|
||||
`region_id` bigint DEFAULT NULL COMMENT '区域ID',
|
||||
`school_id` bigint DEFAULT NULL COMMENT '学校ID(教师用)',
|
||||
`school_grade_id` bigint DEFAULT NULL COMMENT '年级ID(教师用)',
|
||||
`school_class_id` bigint DEFAULT NULL COMMENT '班级ID(教师用)',
|
||||
`register_source` char(1) DEFAULT '1' COMMENT '注册来源(1小程序 2H5 3后台 4导入)',
|
||||
`register_time` datetime DEFAULT NULL COMMENT '注册时间',
|
||||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_ip` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
|
||||
`login_count` int DEFAULT 0 COMMENT '登录次数',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`member_id`),
|
||||
UNIQUE KEY `uk_member_code` (`member_code`),
|
||||
KEY `idx_phone` (`phone`),
|
||||
KEY `idx_open_id` (`open_id`)
|
||||
) ENGINE=InnoDB COMMENT='会员表';
|
||||
|
||||
-- ============================================================
|
||||
-- 9. 学生表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_student`;
|
||||
CREATE TABLE `pg_student` (
|
||||
`student_id` bigint NOT NULL COMMENT '学生ID',
|
||||
`student_name` varchar(50) NOT NULL COMMENT '学生姓名',
|
||||
`student_no` varchar(32) DEFAULT NULL COMMENT '学号',
|
||||
`gender` char(1) DEFAULT '0' COMMENT '性别(0未知 1男 2女)',
|
||||
`birthday` date DEFAULT NULL COMMENT '生日',
|
||||
`region_id` bigint DEFAULT NULL COMMENT '区域ID',
|
||||
`region_path` varchar(500) DEFAULT NULL COMMENT '区域路径',
|
||||
`school_id` bigint DEFAULT NULL COMMENT '学校ID',
|
||||
`school_grade_id` bigint DEFAULT NULL COMMENT '学校年级ID',
|
||||
`school_class_id` bigint DEFAULT NULL COMMENT '学校班级ID',
|
||||
`subject_id` bigint DEFAULT NULL COMMENT '学科ID',
|
||||
`member_id` bigint DEFAULT NULL COMMENT '绑定的会员ID',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`student_id`),
|
||||
KEY `idx_student_no` (`student_no`),
|
||||
KEY `idx_school` (`school_id`, `school_grade_id`, `school_class_id`)
|
||||
) ENGINE=InnoDB COMMENT='学生表';
|
||||
|
||||
-- ============================================================
|
||||
-- 10. 应用表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_application`;
|
||||
CREATE TABLE `pg_application` (
|
||||
`app_id` bigint NOT NULL COMMENT '应用ID',
|
||||
`app_code` varchar(32) NOT NULL COMMENT '应用编码',
|
||||
`app_name` varchar(100) NOT NULL COMMENT '应用名称',
|
||||
`app_secret` varchar(100) NOT NULL COMMENT '应用密钥',
|
||||
`contact_person` varchar(50) DEFAULT NULL COMMENT '联系人',
|
||||
`contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`app_id`),
|
||||
UNIQUE KEY `uk_app_code` (`app_code`)
|
||||
) ENGINE=InnoDB COMMENT='第三方应用表';
|
||||
|
||||
-- ============================================================
|
||||
-- 11. API接口字典表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_api_dict`;
|
||||
CREATE TABLE `pg_api_dict` (
|
||||
`api_id` bigint NOT NULL COMMENT 'API ID',
|
||||
`api_code` varchar(50) NOT NULL COMMENT 'API编码',
|
||||
`api_name` varchar(100) NOT NULL COMMENT 'API名称',
|
||||
`api_path` varchar(200) NOT NULL COMMENT 'API路径',
|
||||
`api_method` varchar(10) DEFAULT 'GET' COMMENT '请求方法',
|
||||
`api_desc` varchar(500) DEFAULT NULL COMMENT 'API描述',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
`order_num` int DEFAULT 0 COMMENT '排序',
|
||||
PRIMARY KEY (`api_id`),
|
||||
UNIQUE KEY `uk_api_code` (`api_code`)
|
||||
) ENGINE=InnoDB COMMENT='API接口字典表';
|
||||
|
||||
-- ============================================================
|
||||
-- 12. 应用API授权表
|
||||
-- ============================================================
|
||||
DROP TABLE IF EXISTS `pg_app_api`;
|
||||
CREATE TABLE `pg_app_api` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`app_id` bigint NOT NULL COMMENT '应用ID',
|
||||
`api_id` bigint NOT NULL COMMENT 'API ID',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_app_api` (`app_id`, `api_id`)
|
||||
) ENGINE=InnoDB COMMENT='应用API授权表';
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package org.dromara.pangu.application.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.application.domain.PgApplication;
|
||||
import org.dromara.pangu.application.service.IPgApplicationService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 第三方应用管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/application")
|
||||
public class PgApplicationController extends BaseController {
|
||||
|
||||
private final IPgApplicationService applicationService;
|
||||
|
||||
@SaCheckPermission("business:application:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgApplication> list(PgApplication app, PageQuery pageQuery) {
|
||||
return applicationService.selectPageList(app, pageQuery);
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:application:query")
|
||||
@GetMapping("/{appId}")
|
||||
public R<PgApplication> getInfo(@PathVariable Long appId) {
|
||||
return R.ok(applicationService.selectById(appId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:application:add")
|
||||
@Log(title = "应用管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgApplication app) {
|
||||
return toAjax(applicationService.insert(app));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:application:edit")
|
||||
@Log(title = "应用管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgApplication app) {
|
||||
return toAjax(applicationService.update(app));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:application:remove")
|
||||
@Log(title = "应用管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{appIds}")
|
||||
public R<Void> remove(@PathVariable Long[] appIds) {
|
||||
return toAjax(applicationService.deleteByIds(appIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package org.dromara.pangu.application.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* API接口字典表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@TableName("pg_api_dict")
|
||||
public class PgApiDict implements Serializable {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long apiId;
|
||||
|
||||
private String apiCode;
|
||||
|
||||
private String apiName;
|
||||
|
||||
private String apiPath;
|
||||
|
||||
private String apiMethod;
|
||||
|
||||
private String apiDesc;
|
||||
|
||||
private String status;
|
||||
|
||||
private Integer orderNum;
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package org.dromara.pangu.application.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 应用API授权表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@TableName("pg_app_api")
|
||||
public class PgAppApi implements Serializable {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
private Long appId;
|
||||
|
||||
private Long apiId;
|
||||
|
||||
private Date createTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package org.dromara.pangu.application.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 第三方应用表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_application")
|
||||
public class PgApplication extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long appId;
|
||||
|
||||
private String appCode;
|
||||
|
||||
private String appName;
|
||||
|
||||
private String appSecret;
|
||||
|
||||
private String contactPerson;
|
||||
|
||||
private String contactPhone;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.application.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.application.domain.PgApiDict;
|
||||
|
||||
/**
|
||||
* API接口字典 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgApiDictMapper extends BaseMapperPlus<PgApiDict, PgApiDict> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.application.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.application.domain.PgAppApi;
|
||||
|
||||
/**
|
||||
* 应用API授权 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgAppApiMapper extends BaseMapperPlus<PgAppApi, PgAppApi> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.application.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.application.domain.PgApplication;
|
||||
|
||||
/**
|
||||
* 第三方应用 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgApplicationMapper extends BaseMapperPlus<PgApplication, PgApplication> {
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.pangu.application.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.application.domain.PgApplication;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 第三方应用 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgApplicationService {
|
||||
TableDataInfo<PgApplication> selectPageList(PgApplication app, PageQuery pageQuery);
|
||||
List<PgApplication> selectList(PgApplication app);
|
||||
PgApplication selectById(Long appId);
|
||||
int insert(PgApplication app);
|
||||
int update(PgApplication app);
|
||||
int deleteByIds(Long[] appIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package org.dromara.pangu.application.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.application.domain.PgApplication;
|
||||
import org.dromara.pangu.application.mapper.PgApplicationMapper;
|
||||
import org.dromara.pangu.application.service.IPgApplicationService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 第三方应用 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgApplicationServiceImpl implements IPgApplicationService {
|
||||
|
||||
private final PgApplicationMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgApplication> selectPageList(PgApplication app, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgApplication> lqw = buildQueryWrapper(app);
|
||||
Page<PgApplication> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgApplication> selectList(PgApplication app) {
|
||||
return baseMapper.selectList(buildQueryWrapper(app));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgApplication selectById(Long appId) {
|
||||
return baseMapper.selectById(appId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgApplication app) {
|
||||
return baseMapper.insert(app);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgApplication app) {
|
||||
return baseMapper.updateById(app);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] appIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(appIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgApplication> buildQueryWrapper(PgApplication app) {
|
||||
LambdaQueryWrapper<PgApplication> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(app.getAppName()), PgApplication::getAppName, app.getAppName());
|
||||
lqw.eq(StrUtil.isNotBlank(app.getStatus()), PgApplication::getStatus, app.getStatus());
|
||||
lqw.orderByDesc(PgApplication::getCreateTime);
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package org.dromara.pangu.base.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.base.domain.PgClass;
|
||||
import org.dromara.pangu.base.service.IPgClassService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 班级管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/class")
|
||||
public class PgClassController extends BaseController {
|
||||
|
||||
private final IPgClassService classService;
|
||||
|
||||
@SaCheckPermission("business:class:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgClass> list(PgClass pgClass, PageQuery pageQuery) {
|
||||
return classService.selectPageList(pgClass, pageQuery);
|
||||
}
|
||||
|
||||
@GetMapping("/listAll")
|
||||
public R<List<PgClass>> listAll(PgClass pgClass) {
|
||||
return R.ok(classService.selectList(pgClass));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:class:query")
|
||||
@GetMapping("/{classId}")
|
||||
public R<PgClass> getInfo(@PathVariable Long classId) {
|
||||
return R.ok(classService.selectById(classId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:class:add")
|
||||
@Log(title = "班级管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgClass pgClass) {
|
||||
return toAjax(classService.insert(pgClass));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:class:edit")
|
||||
@Log(title = "班级管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgClass pgClass) {
|
||||
return toAjax(classService.update(pgClass));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:class:remove")
|
||||
@Log(title = "班级管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{classIds}")
|
||||
public R<Void> remove(@PathVariable Long[] classIds) {
|
||||
return toAjax(classService.deleteByIds(classIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
package org.dromara.pangu.base.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.base.domain.PgGrade;
|
||||
import org.dromara.pangu.base.service.IPgGradeService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 年级管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/grade")
|
||||
public class PgGradeController extends BaseController {
|
||||
|
||||
private final IPgGradeService gradeService;
|
||||
|
||||
/**
|
||||
* 查询年级列表(分页)
|
||||
*/
|
||||
@SaCheckPermission("business:grade:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgGrade> list(PgGrade grade, PageQuery pageQuery) {
|
||||
return gradeService.selectPageList(grade, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询年级列表(不分页)
|
||||
*/
|
||||
@GetMapping("/listAll")
|
||||
public R<List<PgGrade>> listAll(PgGrade grade) {
|
||||
return R.ok(gradeService.selectList(grade));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取年级详情
|
||||
*/
|
||||
@SaCheckPermission("business:grade:query")
|
||||
@GetMapping("/{gradeId}")
|
||||
public R<PgGrade> getInfo(@PathVariable Long gradeId) {
|
||||
return R.ok(gradeService.selectById(gradeId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增年级
|
||||
*/
|
||||
@SaCheckPermission("business:grade:add")
|
||||
@Log(title = "年级管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgGrade grade) {
|
||||
return toAjax(gradeService.insert(grade));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改年级
|
||||
*/
|
||||
@SaCheckPermission("business:grade:edit")
|
||||
@Log(title = "年级管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgGrade grade) {
|
||||
return toAjax(gradeService.update(grade));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除年级
|
||||
*/
|
||||
@SaCheckPermission("business:grade:remove")
|
||||
@Log(title = "年级管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{gradeIds}")
|
||||
public R<Void> remove(@PathVariable Long[] gradeIds) {
|
||||
return toAjax(gradeService.deleteByIds(gradeIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
package org.dromara.pangu.base.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.base.domain.PgRegion;
|
||||
import org.dromara.pangu.base.service.IPgRegionService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 区域管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/region")
|
||||
public class PgRegionController extends BaseController {
|
||||
|
||||
private final IPgRegionService regionService;
|
||||
|
||||
@SaCheckPermission("business:region:list")
|
||||
@GetMapping("/list")
|
||||
public R<List<PgRegion>> list(PgRegion region) {
|
||||
return R.ok(regionService.selectList(region));
|
||||
}
|
||||
|
||||
@GetMapping("/children/{parentId}")
|
||||
public R<List<PgRegion>> children(@PathVariable Long parentId) {
|
||||
return R.ok(regionService.selectByParentId(parentId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:region:query")
|
||||
@GetMapping("/{regionId}")
|
||||
public R<PgRegion> getInfo(@PathVariable Long regionId) {
|
||||
return R.ok(regionService.selectById(regionId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:region:add")
|
||||
@Log(title = "区域管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgRegion region) {
|
||||
return toAjax(regionService.insert(region));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:region:edit")
|
||||
@Log(title = "区域管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgRegion region) {
|
||||
return toAjax(regionService.update(region));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:region:remove")
|
||||
@Log(title = "区域管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{regionIds}")
|
||||
public R<Void> remove(@PathVariable Long[] regionIds) {
|
||||
return toAjax(regionService.deleteByIds(regionIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package org.dromara.pangu.base.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.base.domain.PgSubject;
|
||||
import org.dromara.pangu.base.service.IPgSubjectService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学科管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/subject")
|
||||
public class PgSubjectController extends BaseController {
|
||||
|
||||
private final IPgSubjectService subjectService;
|
||||
|
||||
@SaCheckPermission("business:subject:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgSubject> list(PgSubject subject, PageQuery pageQuery) {
|
||||
return subjectService.selectPageList(subject, pageQuery);
|
||||
}
|
||||
|
||||
@GetMapping("/listAll")
|
||||
public R<List<PgSubject>> listAll(PgSubject subject) {
|
||||
return R.ok(subjectService.selectList(subject));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:subject:query")
|
||||
@GetMapping("/{subjectId}")
|
||||
public R<PgSubject> getInfo(@PathVariable Long subjectId) {
|
||||
return R.ok(subjectService.selectById(subjectId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:subject:add")
|
||||
@Log(title = "学科管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgSubject subject) {
|
||||
return toAjax(subjectService.insert(subject));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:subject:edit")
|
||||
@Log(title = "学科管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgSubject subject) {
|
||||
return toAjax(subjectService.update(subject));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:subject:remove")
|
||||
@Log(title = "学科管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{subjectIds}")
|
||||
public R<Void> remove(@PathVariable Long[] subjectIds) {
|
||||
return toAjax(subjectService.deleteByIds(subjectIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package org.dromara.pangu.base.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 班级字典表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_class")
|
||||
public class PgClass extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long classId;
|
||||
|
||||
private String classCode;
|
||||
|
||||
private String className;
|
||||
|
||||
private Integer orderNum;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
package org.dromara.pangu.base.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 年级字典表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_grade")
|
||||
public class PgGrade extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 年级ID
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long gradeId;
|
||||
|
||||
/**
|
||||
* 年级编码
|
||||
*/
|
||||
private String gradeCode;
|
||||
|
||||
/**
|
||||
* 年级名称
|
||||
*/
|
||||
private String gradeName;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 删除标志(0存在 1删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package org.dromara.pangu.base.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 区域表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_region")
|
||||
public class PgRegion extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long regionId;
|
||||
|
||||
private Long parentId;
|
||||
|
||||
private String ancestors;
|
||||
|
||||
private String regionName;
|
||||
|
||||
private String regionCode;
|
||||
|
||||
private Integer level;
|
||||
|
||||
private Integer orderNum;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package org.dromara.pangu.base.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 学科表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_subject")
|
||||
public class PgSubject extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long subjectId;
|
||||
|
||||
private String subjectCode;
|
||||
|
||||
private String subjectName;
|
||||
|
||||
private Integer orderNum;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.base.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.base.domain.PgClass;
|
||||
|
||||
/**
|
||||
* 班级 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgClassMapper extends BaseMapperPlus<PgClass, PgClass> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.base.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.base.domain.PgGrade;
|
||||
|
||||
/**
|
||||
* 年级 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgGradeMapper extends BaseMapperPlus<PgGrade, PgGrade> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.base.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.base.domain.PgRegion;
|
||||
|
||||
/**
|
||||
* 区域 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgRegionMapper extends BaseMapperPlus<PgRegion, PgRegion> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.base.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.base.domain.PgSubject;
|
||||
|
||||
/**
|
||||
* 学科 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgSubjectMapper extends BaseMapperPlus<PgSubject, PgSubject> {
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.pangu.base.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.base.domain.PgClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 班级 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgClassService {
|
||||
TableDataInfo<PgClass> selectPageList(PgClass pgClass, PageQuery pageQuery);
|
||||
List<PgClass> selectList(PgClass pgClass);
|
||||
PgClass selectById(Long classId);
|
||||
int insert(PgClass pgClass);
|
||||
int update(PgClass pgClass);
|
||||
int deleteByIds(Long[] classIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package org.dromara.pangu.base.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.base.domain.PgGrade;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 年级 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgGradeService {
|
||||
|
||||
/**
|
||||
* 分页查询年级列表
|
||||
*/
|
||||
TableDataInfo<PgGrade> selectPageList(PgGrade grade, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询年级列表
|
||||
*/
|
||||
List<PgGrade> selectList(PgGrade grade);
|
||||
|
||||
/**
|
||||
* 根据ID查询年级
|
||||
*/
|
||||
PgGrade selectById(Long gradeId);
|
||||
|
||||
/**
|
||||
* 新增年级
|
||||
*/
|
||||
int insert(PgGrade grade);
|
||||
|
||||
/**
|
||||
* 修改年级
|
||||
*/
|
||||
int update(PgGrade grade);
|
||||
|
||||
/**
|
||||
* 批量删除年级
|
||||
*/
|
||||
int deleteByIds(Long[] gradeIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package org.dromara.pangu.base.service;
|
||||
|
||||
import org.dromara.pangu.base.domain.PgRegion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 区域 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgRegionService {
|
||||
List<PgRegion> selectList(PgRegion region);
|
||||
PgRegion selectById(Long regionId);
|
||||
List<PgRegion> selectByParentId(Long parentId);
|
||||
int insert(PgRegion region);
|
||||
int update(PgRegion region);
|
||||
int deleteByIds(Long[] regionIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.pangu.base.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.base.domain.PgSubject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学科 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgSubjectService {
|
||||
TableDataInfo<PgSubject> selectPageList(PgSubject subject, PageQuery pageQuery);
|
||||
List<PgSubject> selectList(PgSubject subject);
|
||||
PgSubject selectById(Long subjectId);
|
||||
int insert(PgSubject subject);
|
||||
int update(PgSubject subject);
|
||||
int deleteByIds(Long[] subjectIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package org.dromara.pangu.base.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.base.domain.PgClass;
|
||||
import org.dromara.pangu.base.mapper.PgClassMapper;
|
||||
import org.dromara.pangu.base.service.IPgClassService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 班级 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgClassServiceImpl implements IPgClassService {
|
||||
|
||||
private final PgClassMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgClass> selectPageList(PgClass pgClass, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgClass> lqw = buildQueryWrapper(pgClass);
|
||||
Page<PgClass> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgClass> selectList(PgClass pgClass) {
|
||||
return baseMapper.selectList(buildQueryWrapper(pgClass));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgClass selectById(Long classId) {
|
||||
return baseMapper.selectById(classId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgClass pgClass) {
|
||||
return baseMapper.insert(pgClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgClass pgClass) {
|
||||
return baseMapper.updateById(pgClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] classIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(classIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgClass> buildQueryWrapper(PgClass pgClass) {
|
||||
LambdaQueryWrapper<PgClass> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(pgClass.getClassName()), PgClass::getClassName, pgClass.getClassName());
|
||||
lqw.eq(StrUtil.isNotBlank(pgClass.getStatus()), PgClass::getStatus, pgClass.getStatus());
|
||||
lqw.orderByAsc(PgClass::getOrderNum);
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package org.dromara.pangu.base.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.base.domain.PgGrade;
|
||||
import org.dromara.pangu.base.mapper.PgGradeMapper;
|
||||
import org.dromara.pangu.base.service.IPgGradeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 年级 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgGradeServiceImpl implements IPgGradeService {
|
||||
|
||||
private final PgGradeMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgGrade> selectPageList(PgGrade grade, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgGrade> lqw = buildQueryWrapper(grade);
|
||||
Page<PgGrade> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgGrade> selectList(PgGrade grade) {
|
||||
return baseMapper.selectList(buildQueryWrapper(grade));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgGrade selectById(Long gradeId) {
|
||||
return baseMapper.selectById(gradeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgGrade grade) {
|
||||
return baseMapper.insert(grade);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgGrade grade) {
|
||||
return baseMapper.updateById(grade);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] gradeIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(gradeIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgGrade> buildQueryWrapper(PgGrade grade) {
|
||||
LambdaQueryWrapper<PgGrade> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(grade.getGradeName()), PgGrade::getGradeName, grade.getGradeName());
|
||||
lqw.eq(StrUtil.isNotBlank(grade.getStatus()), PgGrade::getStatus, grade.getStatus());
|
||||
lqw.orderByAsc(PgGrade::getOrderNum);
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package org.dromara.pangu.base.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.pangu.base.domain.PgRegion;
|
||||
import org.dromara.pangu.base.mapper.PgRegionMapper;
|
||||
import org.dromara.pangu.base.service.IPgRegionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 区域 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgRegionServiceImpl implements IPgRegionService {
|
||||
|
||||
private final PgRegionMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public List<PgRegion> selectList(PgRegion region) {
|
||||
LambdaQueryWrapper<PgRegion> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(region.getRegionName()), PgRegion::getRegionName, region.getRegionName());
|
||||
lqw.eq(StrUtil.isNotBlank(region.getStatus()), PgRegion::getStatus, region.getStatus());
|
||||
lqw.eq(region.getLevel() != null, PgRegion::getLevel, region.getLevel());
|
||||
lqw.orderByAsc(PgRegion::getOrderNum);
|
||||
return baseMapper.selectList(lqw);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgRegion selectById(Long regionId) {
|
||||
return baseMapper.selectById(regionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgRegion> selectByParentId(Long parentId) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<PgRegion>()
|
||||
.eq(PgRegion::getParentId, parentId)
|
||||
.orderByAsc(PgRegion::getOrderNum));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgRegion region) {
|
||||
return baseMapper.insert(region);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgRegion region) {
|
||||
return baseMapper.updateById(region);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] regionIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(regionIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package org.dromara.pangu.base.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.base.domain.PgSubject;
|
||||
import org.dromara.pangu.base.mapper.PgSubjectMapper;
|
||||
import org.dromara.pangu.base.service.IPgSubjectService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学科 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgSubjectServiceImpl implements IPgSubjectService {
|
||||
|
||||
private final PgSubjectMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgSubject> selectPageList(PgSubject subject, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgSubject> lqw = buildQueryWrapper(subject);
|
||||
Page<PgSubject> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgSubject> selectList(PgSubject subject) {
|
||||
return baseMapper.selectList(buildQueryWrapper(subject));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgSubject selectById(Long subjectId) {
|
||||
return baseMapper.selectById(subjectId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgSubject subject) {
|
||||
return baseMapper.insert(subject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgSubject subject) {
|
||||
return baseMapper.updateById(subject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] subjectIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(subjectIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgSubject> buildQueryWrapper(PgSubject subject) {
|
||||
LambdaQueryWrapper<PgSubject> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(subject.getSubjectName()), PgSubject::getSubjectName, subject.getSubjectName());
|
||||
lqw.eq(StrUtil.isNotBlank(subject.getStatus()), PgSubject::getStatus, subject.getStatus());
|
||||
lqw.orderByAsc(PgSubject::getOrderNum);
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package org.dromara.pangu.member.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.member.domain.PgMember;
|
||||
import org.dromara.pangu.member.service.IPgMemberService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/member")
|
||||
public class PgMemberController extends BaseController {
|
||||
|
||||
private final IPgMemberService memberService;
|
||||
|
||||
@SaCheckPermission("business:member:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgMember> list(PgMember member, PageQuery pageQuery) {
|
||||
return memberService.selectPageList(member, pageQuery);
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:member:query")
|
||||
@GetMapping("/{memberId}")
|
||||
public R<PgMember> getInfo(@PathVariable Long memberId) {
|
||||
return R.ok(memberService.selectById(memberId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:member:add")
|
||||
@Log(title = "会员管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgMember member) {
|
||||
return toAjax(memberService.insert(member));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:member:edit")
|
||||
@Log(title = "会员管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgMember member) {
|
||||
return toAjax(memberService.update(member));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:member:remove")
|
||||
@Log(title = "会员管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{memberIds}")
|
||||
public R<Void> remove(@PathVariable Long[] memberIds) {
|
||||
return toAjax(memberService.deleteByIds(memberIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
package org.dromara.pangu.member.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 会员表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_member")
|
||||
public class PgMember extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long memberId;
|
||||
|
||||
private String memberCode;
|
||||
|
||||
private String phone;
|
||||
|
||||
private String password;
|
||||
|
||||
private String nickname;
|
||||
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 性别(0未知 1男 2女)
|
||||
*/
|
||||
private String gender;
|
||||
|
||||
private Date birthday;
|
||||
|
||||
/**
|
||||
* 身份类型(1家长 2教师)
|
||||
*/
|
||||
private String identityType;
|
||||
|
||||
private String openId;
|
||||
|
||||
private String unionId;
|
||||
|
||||
private Long regionId;
|
||||
|
||||
private Long schoolId;
|
||||
|
||||
private Long schoolGradeId;
|
||||
|
||||
private Long schoolClassId;
|
||||
|
||||
/**
|
||||
* 注册来源(1小程序 2H5 3后台 4导入)
|
||||
*/
|
||||
private String registerSource;
|
||||
|
||||
private Date registerTime;
|
||||
|
||||
private Date lastLoginTime;
|
||||
|
||||
private String lastLoginIp;
|
||||
|
||||
private Integer loginCount;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.member.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.member.domain.PgMember;
|
||||
|
||||
/**
|
||||
* 会员 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgMemberMapper extends BaseMapperPlus<PgMember, PgMember> {
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.pangu.member.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.member.domain.PgMember;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgMemberService {
|
||||
TableDataInfo<PgMember> selectPageList(PgMember member, PageQuery pageQuery);
|
||||
List<PgMember> selectList(PgMember member);
|
||||
PgMember selectById(Long memberId);
|
||||
int insert(PgMember member);
|
||||
int update(PgMember member);
|
||||
int deleteByIds(Long[] memberIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
package org.dromara.pangu.member.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.member.domain.PgMember;
|
||||
import org.dromara.pangu.member.mapper.PgMemberMapper;
|
||||
import org.dromara.pangu.member.service.IPgMemberService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgMemberServiceImpl implements IPgMemberService {
|
||||
|
||||
private final PgMemberMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgMember> selectPageList(PgMember member, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgMember> lqw = buildQueryWrapper(member);
|
||||
Page<PgMember> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgMember> selectList(PgMember member) {
|
||||
return baseMapper.selectList(buildQueryWrapper(member));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgMember selectById(Long memberId) {
|
||||
return baseMapper.selectById(memberId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgMember member) {
|
||||
return baseMapper.insert(member);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgMember member) {
|
||||
return baseMapper.updateById(member);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] memberIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(memberIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgMember> buildQueryWrapper(PgMember member) {
|
||||
LambdaQueryWrapper<PgMember> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(member.getNickname()), PgMember::getNickname, member.getNickname());
|
||||
lqw.like(StrUtil.isNotBlank(member.getPhone()), PgMember::getPhone, member.getPhone());
|
||||
lqw.eq(StrUtil.isNotBlank(member.getIdentityType()), PgMember::getIdentityType, member.getIdentityType());
|
||||
lqw.eq(StrUtil.isNotBlank(member.getStatus()), PgMember::getStatus, member.getStatus());
|
||||
lqw.orderByDesc(PgMember::getCreateTime);
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package org.dromara.pangu.school.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.school.domain.PgSchool;
|
||||
import org.dromara.pangu.school.service.IPgSchoolService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学校管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/school")
|
||||
public class PgSchoolController extends BaseController {
|
||||
|
||||
private final IPgSchoolService schoolService;
|
||||
|
||||
@SaCheckPermission("business:school:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgSchool> list(PgSchool school, PageQuery pageQuery) {
|
||||
return schoolService.selectPageList(school, pageQuery);
|
||||
}
|
||||
|
||||
@GetMapping("/listAll")
|
||||
public R<List<PgSchool>> listAll(PgSchool school) {
|
||||
return R.ok(schoolService.selectList(school));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:school:query")
|
||||
@GetMapping("/{schoolId}")
|
||||
public R<PgSchool> getInfo(@PathVariable Long schoolId) {
|
||||
return R.ok(schoolService.selectById(schoolId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:school:add")
|
||||
@Log(title = "学校管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgSchool school) {
|
||||
return toAjax(schoolService.insert(school));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:school:edit")
|
||||
@Log(title = "学校管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgSchool school) {
|
||||
return toAjax(schoolService.update(school));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:school:remove")
|
||||
@Log(title = "学校管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{schoolIds}")
|
||||
public R<Void> remove(@PathVariable Long[] schoolIds) {
|
||||
return toAjax(schoolService.deleteByIds(schoolIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package org.dromara.pangu.school.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 学校表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_school")
|
||||
public class PgSchool extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long schoolId;
|
||||
|
||||
private String schoolCode;
|
||||
|
||||
private String schoolName;
|
||||
|
||||
/**
|
||||
* 学校类型(1小学 2初中 3高中 4完全中学)
|
||||
*/
|
||||
private String schoolType;
|
||||
|
||||
private Long regionId;
|
||||
|
||||
private String regionPath;
|
||||
|
||||
private String address;
|
||||
|
||||
private String contactPerson;
|
||||
|
||||
private String contactPhone;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
package org.dromara.pangu.school.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 学校班级表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@TableName("pg_school_class")
|
||||
public class PgSchoolClass implements Serializable {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
private Long schoolId;
|
||||
|
||||
private Long schoolGradeId;
|
||||
|
||||
private Long classId;
|
||||
|
||||
private String classAlias;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
private Long createBy;
|
||||
|
||||
private Date createTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package org.dromara.pangu.school.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 学校年级关联表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@TableName("pg_school_grade")
|
||||
public class PgSchoolGrade implements Serializable {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
private Long schoolId;
|
||||
|
||||
private Long gradeId;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
private Long createBy;
|
||||
|
||||
private Date createTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.school.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.school.domain.PgSchoolClass;
|
||||
|
||||
/**
|
||||
* 学校班级 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgSchoolClassMapper extends BaseMapperPlus<PgSchoolClass, PgSchoolClass> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.school.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.school.domain.PgSchoolGrade;
|
||||
|
||||
/**
|
||||
* 学校年级关联 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgSchoolGradeMapper extends BaseMapperPlus<PgSchoolGrade, PgSchoolGrade> {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.school.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.school.domain.PgSchool;
|
||||
|
||||
/**
|
||||
* 学校 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgSchoolMapper extends BaseMapperPlus<PgSchool, PgSchool> {
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.pangu.school.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.school.domain.PgSchool;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学校 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgSchoolService {
|
||||
TableDataInfo<PgSchool> selectPageList(PgSchool school, PageQuery pageQuery);
|
||||
List<PgSchool> selectList(PgSchool school);
|
||||
PgSchool selectById(Long schoolId);
|
||||
int insert(PgSchool school);
|
||||
int update(PgSchool school);
|
||||
int deleteByIds(Long[] schoolIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package org.dromara.pangu.school.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.school.domain.PgSchool;
|
||||
import org.dromara.pangu.school.mapper.PgSchoolMapper;
|
||||
import org.dromara.pangu.school.service.IPgSchoolService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学校 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgSchoolServiceImpl implements IPgSchoolService {
|
||||
|
||||
private final PgSchoolMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgSchool> selectPageList(PgSchool school, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgSchool> lqw = buildQueryWrapper(school);
|
||||
Page<PgSchool> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgSchool> selectList(PgSchool school) {
|
||||
return baseMapper.selectList(buildQueryWrapper(school));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgSchool selectById(Long schoolId) {
|
||||
return baseMapper.selectById(schoolId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgSchool school) {
|
||||
return baseMapper.insert(school);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgSchool school) {
|
||||
return baseMapper.updateById(school);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] schoolIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(schoolIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgSchool> buildQueryWrapper(PgSchool school) {
|
||||
LambdaQueryWrapper<PgSchool> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(school.getSchoolName()), PgSchool::getSchoolName, school.getSchoolName());
|
||||
lqw.eq(StrUtil.isNotBlank(school.getSchoolType()), PgSchool::getSchoolType, school.getSchoolType());
|
||||
lqw.eq(school.getRegionId() != null, PgSchool::getRegionId, school.getRegionId());
|
||||
lqw.eq(StrUtil.isNotBlank(school.getStatus()), PgSchool::getStatus, school.getStatus());
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package org.dromara.pangu.student.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.pangu.student.domain.PgStudent;
|
||||
import org.dromara.pangu.student.service.IPgStudentService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 学生管理
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/student")
|
||||
public class PgStudentController extends BaseController {
|
||||
|
||||
private final IPgStudentService studentService;
|
||||
|
||||
@SaCheckPermission("business:student:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PgStudent> list(PgStudent student, PageQuery pageQuery) {
|
||||
return studentService.selectPageList(student, pageQuery);
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:student:query")
|
||||
@GetMapping("/{studentId}")
|
||||
public R<PgStudent> getInfo(@PathVariable Long studentId) {
|
||||
return R.ok(studentService.selectById(studentId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:student:add")
|
||||
@Log(title = "学生管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody PgStudent student) {
|
||||
return toAjax(studentService.insert(student));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:student:edit")
|
||||
@Log(title = "学生管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R<Void> edit(@Validated @RequestBody PgStudent student) {
|
||||
return toAjax(studentService.update(student));
|
||||
}
|
||||
|
||||
@SaCheckPermission("business:student:remove")
|
||||
@Log(title = "学生管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{studentIds}")
|
||||
public R<Void> remove(@PathVariable Long[] studentIds) {
|
||||
return toAjax(studentService.deleteByIds(studentIds));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package org.dromara.pangu.student.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 学生表
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pg_student")
|
||||
public class PgStudent extends BaseEntity {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long studentId;
|
||||
|
||||
private String studentName;
|
||||
|
||||
private String studentNo;
|
||||
|
||||
/**
|
||||
* 性别(0未知 1男 2女)
|
||||
*/
|
||||
private String gender;
|
||||
|
||||
private Date birthday;
|
||||
|
||||
private Long regionId;
|
||||
|
||||
private String regionPath;
|
||||
|
||||
private Long schoolId;
|
||||
|
||||
private Long schoolGradeId;
|
||||
|
||||
private Long schoolClassId;
|
||||
|
||||
private Long subjectId;
|
||||
|
||||
private Long memberId;
|
||||
|
||||
private String status;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.dromara.pangu.student.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.pangu.student.domain.PgStudent;
|
||||
|
||||
/**
|
||||
* 学生 Mapper 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface PgStudentMapper extends BaseMapperPlus<PgStudent, PgStudent> {
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.pangu.student.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.student.domain.PgStudent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学生 Service 接口
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
public interface IPgStudentService {
|
||||
TableDataInfo<PgStudent> selectPageList(PgStudent student, PageQuery pageQuery);
|
||||
List<PgStudent> selectList(PgStudent student);
|
||||
PgStudent selectById(Long studentId);
|
||||
int insert(PgStudent student);
|
||||
int update(PgStudent student);
|
||||
int deleteByIds(Long[] studentIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package org.dromara.pangu.student.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.pangu.student.domain.PgStudent;
|
||||
import org.dromara.pangu.student.mapper.PgStudentMapper;
|
||||
import org.dromara.pangu.student.service.IPgStudentService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 学生 Service 实现
|
||||
*
|
||||
* @author 湖北新华业务中台研发团队
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PgStudentServiceImpl implements IPgStudentService {
|
||||
|
||||
private final PgStudentMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public TableDataInfo<PgStudent> selectPageList(PgStudent student, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PgStudent> lqw = buildQueryWrapper(student);
|
||||
Page<PgStudent> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PgStudent> selectList(PgStudent student) {
|
||||
return baseMapper.selectList(buildQueryWrapper(student));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PgStudent selectById(Long studentId) {
|
||||
return baseMapper.selectById(studentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(PgStudent student) {
|
||||
return baseMapper.insert(student);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(PgStudent student) {
|
||||
return baseMapper.updateById(student);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByIds(Long[] studentIds) {
|
||||
return baseMapper.deleteByIds(Arrays.asList(studentIds));
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PgStudent> buildQueryWrapper(PgStudent student) {
|
||||
LambdaQueryWrapper<PgStudent> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.like(StrUtil.isNotBlank(student.getStudentName()), PgStudent::getStudentName, student.getStudentName());
|
||||
lqw.like(StrUtil.isNotBlank(student.getStudentNo()), PgStudent::getStudentNo, student.getStudentNo());
|
||||
lqw.eq(student.getSchoolId() != null, PgStudent::getSchoolId, student.getSchoolId());
|
||||
lqw.eq(student.getSchoolGradeId() != null, PgStudent::getSchoolGradeId, student.getSchoolGradeId());
|
||||
lqw.eq(student.getSchoolClassId() != null, PgStudent::getSchoolClassId, student.getSchoolClassId());
|
||||
lqw.eq(StrUtil.isNotBlank(student.getStatus()), PgStudent::getStatus, student.getStatus());
|
||||
lqw.orderByDesc(PgStudent::getCreateTime);
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@
|
|||
<module>ruoyi-job</module>
|
||||
<module>ruoyi-system</module>
|
||||
<module>ruoyi-workflow</module>
|
||||
<module>pangu-business</module>
|
||||
</modules>
|
||||
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
|
|
|
|||
Loading…
Reference in New Issue