mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 18:46:36 +08:00
同步到1.7版本
This commit is contained in:
@@ -4,8 +4,10 @@ import cn.jimmyshi.beanquery.BeanQuery;
|
||||
import com.orange.demo.webadmin.app.model.AreaCode;
|
||||
import com.orange.demo.webadmin.app.service.AreaCodeService;
|
||||
import com.orange.demo.common.core.object.ResponseResult;
|
||||
import com.orange.demo.common.core.annotation.MyRequestBody;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@@ -53,4 +55,18 @@ public class AreaCodeController {
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"parentId as parentId", "areaId as id", "areaName as name").executeFrom(resultList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典Id集合,获取查询后的字典数据。
|
||||
*
|
||||
* @param dictIds 字典Id集合。
|
||||
* @return 字典形式的行政区划列表。
|
||||
*/
|
||||
@PostMapping("/listDictByIds")
|
||||
public ResponseResult<List<Map<String, Object>>> listDictByIds(
|
||||
@MyRequestBody(elementType = Long.class) List<Long> dictIds) {
|
||||
List<AreaCode> resultList = areaCodeService.getInList(new HashSet<>(dictIds));
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"parentId as parentId", "areaId as id", "areaName as name").executeFrom(resultList));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public class CourseController {
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("course") CourseDto courseDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody CourseDto courseDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(courseDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -77,7 +77,7 @@ public class CourseController {
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("course") CourseDto courseDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody CourseDto courseDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(courseDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -137,7 +137,7 @@ public class CourseController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<CourseVo>> list(
|
||||
@MyRequestBody("courseFilter") CourseDto courseDtoFilter,
|
||||
@MyRequestBody CourseDto courseDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -274,4 +274,18 @@ public class CourseController {
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"courseId as id", "courseName as name").executeFrom(resultList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典Id集合,获取查询后的字典数据。
|
||||
*
|
||||
* @param dictIds 字典Id集合。
|
||||
* @return 应答结果对象,包含字典形式的数据集合。
|
||||
*/
|
||||
@PostMapping("/listDictByIds")
|
||||
public ResponseResult<List<Map<String, Object>>> listDictByIds(
|
||||
@MyRequestBody(elementType = Long.class) List<Long> dictIds) {
|
||||
List<Course> resultList = courseService.getInList(new HashSet<>(dictIds));
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"courseId as id", "courseName as name").executeFrom(resultList));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class CourseTransStatsController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<CourseTransStatsVo>> list(
|
||||
@MyRequestBody("courseTransStatsFilter") CourseTransStatsDto courseTransStatsDtoFilter,
|
||||
@MyRequestBody CourseTransStatsDto courseTransStatsDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -62,7 +62,7 @@ public class CourseTransStatsController {
|
||||
*/
|
||||
@PostMapping("/listWithGroup")
|
||||
public ResponseResult<MyPageData<CourseTransStatsVo>> listWithGroup(
|
||||
@MyRequestBody("courseTransStatsFilter") CourseTransStatsDto courseTransStatsDtoFilter,
|
||||
@MyRequestBody CourseTransStatsDto courseTransStatsDtoFilter,
|
||||
@MyRequestBody(required = true) MyGroupParam groupParam,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
|
||||
@@ -40,7 +40,7 @@ public class GradeController {
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Integer> add(@MyRequestBody("grade") GradeDto gradeDto) {
|
||||
public ResponseResult<Integer> add(@MyRequestBody GradeDto gradeDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(gradeDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -57,7 +57,7 @@ public class GradeController {
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("grade") GradeDto gradeDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody GradeDto gradeDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(gradeDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -99,7 +99,7 @@ public class GradeController {
|
||||
@GetMapping("/listDict")
|
||||
public ResponseResult<List<Map<String, Object>>> listDict() {
|
||||
List<Grade> resultList = gradeService.getAllListFromCache();
|
||||
if (CollectionUtils.isNotEmpty(resultList)) {
|
||||
if (CollectionUtils.isEmpty(resultList)) {
|
||||
gradeService.reloadCachedData(true);
|
||||
resultList = gradeService.getAllList();
|
||||
}
|
||||
@@ -123,6 +123,20 @@ public class GradeController {
|
||||
return ResponseResult.success(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典Id集合,获取查询后的字典数据。
|
||||
*
|
||||
* @param dictIds 字典Id集合。
|
||||
* @return 应答结果对象,包含字典形式的数据集合。
|
||||
*/
|
||||
@PostMapping("/listDictByIds")
|
||||
public ResponseResult<List<Map<String, Object>>> listDictByIds(
|
||||
@MyRequestBody(elementType = Integer.class) List<Integer> dictIds) {
|
||||
List<Grade> resultList = gradeService.getInList(new HashSet<>(dictIds));
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"gradeId as id", "gradeName as name").executeFrom(resultList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 将当前字典表的数据重新加载到缓存中。
|
||||
* 由于缓存的数据更新,在add/update/delete等接口均有同步处理。因此该接口仅当同步过程中出现问题时,
|
||||
|
||||
@@ -39,7 +39,7 @@ public class SchoolInfoController {
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("schoolInfo") SchoolInfoDto schoolInfoDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody SchoolInfoDto schoolInfoDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(schoolInfoDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -62,7 +62,7 @@ public class SchoolInfoController {
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("schoolInfo") SchoolInfoDto schoolInfoDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody SchoolInfoDto schoolInfoDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(schoolInfoDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -122,7 +122,7 @@ public class SchoolInfoController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<SchoolInfoVo>> list(
|
||||
@MyRequestBody("schoolInfoFilter") SchoolInfoDto schoolInfoDtoFilter,
|
||||
@MyRequestBody SchoolInfoDto schoolInfoDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -166,4 +166,18 @@ public class SchoolInfoController {
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"schoolId as id", "schoolName as name").executeFrom(resultList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典Id集合,获取查询后的字典数据。
|
||||
*
|
||||
* @param dictIds 字典Id集合。
|
||||
* @return 应答结果对象,包含字典形式的数据集合。
|
||||
*/
|
||||
@PostMapping("/listDictByIds")
|
||||
public ResponseResult<List<Map<String, Object>>> listDictByIds(
|
||||
@MyRequestBody(elementType = Long.class) List<Long> dictIds) {
|
||||
List<SchoolInfo> resultList = schoolInfoService.getInList(new HashSet<>(dictIds));
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"schoolId as id", "schoolName as name").executeFrom(resultList));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class StudentActionStatsController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<StudentActionStatsVo>> list(
|
||||
@MyRequestBody("studentActionStatsFilter") StudentActionStatsDto studentActionStatsDtoFilter,
|
||||
@MyRequestBody StudentActionStatsDto studentActionStatsDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -62,7 +62,7 @@ public class StudentActionStatsController {
|
||||
*/
|
||||
@PostMapping("/listWithGroup")
|
||||
public ResponseResult<MyPageData<StudentActionStatsVo>> listWithGroup(
|
||||
@MyRequestBody("studentActionStatsFilter") StudentActionStatsDto studentActionStatsDtoFilter,
|
||||
@MyRequestBody StudentActionStatsDto studentActionStatsDtoFilter,
|
||||
@MyRequestBody(required = true) MyGroupParam groupParam,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
|
||||
@@ -38,7 +38,7 @@ public class StudentActionTransController {
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("studentActionTrans") StudentActionTransDto studentActionTransDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody StudentActionTransDto studentActionTransDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(studentActionTransDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -61,7 +61,7 @@ public class StudentActionTransController {
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("studentActionTrans") StudentActionTransDto studentActionTransDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody StudentActionTransDto studentActionTransDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(studentActionTransDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -121,7 +121,7 @@ public class StudentActionTransController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<StudentActionTransVo>> list(
|
||||
@MyRequestBody("studentActionTransFilter") StudentActionTransDto studentActionTransDtoFilter,
|
||||
@MyRequestBody StudentActionTransDto studentActionTransDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
|
||||
@@ -43,7 +43,7 @@ public class StudentClassController {
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("studentClass") StudentClassDto studentClassDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody StudentClassDto studentClassDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(studentClassDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -66,7 +66,7 @@ public class StudentClassController {
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("studentClass") StudentClassDto studentClassDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody StudentClassDto studentClassDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(studentClassDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -126,7 +126,7 @@ public class StudentClassController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<StudentClassVo>> list(
|
||||
@MyRequestBody("studentClassFilter") StudentClassDto studentClassDtoFilter,
|
||||
@MyRequestBody StudentClassDto studentClassDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -169,7 +169,7 @@ public class StudentClassController {
|
||||
@PostMapping("/listNotInClassCourse")
|
||||
public ResponseResult<MyPageData<CourseVo>> listNotInClassCourse(
|
||||
@MyRequestBody Long classId,
|
||||
@MyRequestBody("courseFilter") CourseDto courseDtoFilter,
|
||||
@MyRequestBody CourseDto courseDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doClassCourseVerify(classId);
|
||||
@@ -198,7 +198,7 @@ public class StudentClassController {
|
||||
@PostMapping("/listClassCourse")
|
||||
public ResponseResult<MyPageData<CourseVo>> listClassCourse(
|
||||
@MyRequestBody Long classId,
|
||||
@MyRequestBody("courseFilter") CourseDto courseDtoFilter,
|
||||
@MyRequestBody CourseDto courseDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doClassCourseVerify(classId);
|
||||
@@ -235,7 +235,7 @@ public class StudentClassController {
|
||||
@PostMapping("/addClassCourse")
|
||||
public ResponseResult<Void> addClassCourse(
|
||||
@MyRequestBody Long classId,
|
||||
@MyRequestBody(value = "classCourseList", elementType = ClassCourseDto.class) List<ClassCourseDto> classCourseDtoList) {
|
||||
@MyRequestBody(elementType = ClassCourseDto.class) List<ClassCourseDto> classCourseDtoList) {
|
||||
if (MyCommonUtil.existBlankArgument(classId, classCourseDtoList)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
@@ -265,7 +265,7 @@ public class StudentClassController {
|
||||
*/
|
||||
@PostMapping("/updateClassCourse")
|
||||
public ResponseResult<Void> updateClassCourse(
|
||||
@MyRequestBody("classCourse") ClassCourseDto classCourseDto) {
|
||||
@MyRequestBody ClassCourseDto classCourseDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(classCourseDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -329,7 +329,7 @@ public class StudentClassController {
|
||||
@PostMapping("/listNotInClassStudent")
|
||||
public ResponseResult<MyPageData<StudentVo>> listNotInClassStudent(
|
||||
@MyRequestBody Long classId,
|
||||
@MyRequestBody("studentFilter") StudentDto studentDtoFilter,
|
||||
@MyRequestBody StudentDto studentDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doClassStudentVerify(classId);
|
||||
@@ -358,7 +358,7 @@ public class StudentClassController {
|
||||
@PostMapping("/listClassStudent")
|
||||
public ResponseResult<MyPageData<StudentVo>> listClassStudent(
|
||||
@MyRequestBody Long classId,
|
||||
@MyRequestBody("studentFilter") StudentDto studentDtoFilter,
|
||||
@MyRequestBody StudentDto studentDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doClassStudentVerify(classId);
|
||||
@@ -395,7 +395,7 @@ public class StudentClassController {
|
||||
@PostMapping("/addClassStudent")
|
||||
public ResponseResult<Void> addClassStudent(
|
||||
@MyRequestBody Long classId,
|
||||
@MyRequestBody(value = "classStudentList", elementType = ClassStudentDto.class) List<ClassStudentDto> classStudentDtoList) {
|
||||
@MyRequestBody(elementType = ClassStudentDto.class) List<ClassStudentDto> classStudentDtoList) {
|
||||
if (MyCommonUtil.existBlankArgument(classId, classStudentDtoList)) {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class StudentController {
|
||||
* @return 应答结果对象,包含新增对象主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("student") StudentDto studentDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody StudentDto studentDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(studentDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -62,7 +62,7 @@ public class StudentController {
|
||||
* @return 应答结果对象。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("student") StudentDto studentDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody StudentDto studentDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(studentDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -122,7 +122,7 @@ public class StudentController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<StudentVo>> list(
|
||||
@MyRequestBody("studentFilter") StudentDto studentDtoFilter,
|
||||
@MyRequestBody StudentDto studentDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -166,4 +166,18 @@ public class StudentController {
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"studentId as id", "studentName as name").executeFrom(resultList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典Id集合,获取查询后的字典数据。
|
||||
*
|
||||
* @param dictIds 字典Id集合。
|
||||
* @return 应答结果对象,包含字典形式的数据集合。
|
||||
*/
|
||||
@PostMapping("/listDictByIds")
|
||||
public ResponseResult<List<Map<String, Object>>> listDictByIds(
|
||||
@MyRequestBody(elementType = Long.class) List<Long> dictIds) {
|
||||
List<Student> resultList = studentService.getInList(new HashSet<>(dictIds));
|
||||
return ResponseResult.success(BeanQuery.select(
|
||||
"studentId as id", "studentName as name").executeFrom(resultList));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,8 +68,7 @@ public interface CourseService extends IBaseService<Course, Long> {
|
||||
* @param orderBy 排序参数。
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
List<Course> getNotInCourseListByClassId(
|
||||
Long classId, Course filter, String orderBy);
|
||||
List<Course> getNotInCourseListByClassId(Long classId, Course filter, String orderBy);
|
||||
|
||||
/**
|
||||
* 在多对多关系中,当前Service的数据表为从表,返回与指定主表主键Id存在对多对关系的列表。
|
||||
@@ -79,8 +78,7 @@ public interface CourseService extends IBaseService<Course, Long> {
|
||||
* @param orderBy 排序参数。
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
List<Course> getCourseListByClassId(
|
||||
Long classId, Course filter, String orderBy);
|
||||
List<Course> getCourseListByClassId(Long classId, Course filter, String orderBy);
|
||||
|
||||
/**
|
||||
* 根据最新对象和原有对象的数据对比,判断关联的字典数据和多对一主表数据是否都是合法数据。
|
||||
|
||||
@@ -68,8 +68,7 @@ public interface StudentService extends IBaseService<Student, Long> {
|
||||
* @param orderBy 排序参数。
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
List<Student> getNotInStudentListByClassId(
|
||||
Long classId, Student filter, String orderBy);
|
||||
List<Student> getNotInStudentListByClassId(Long classId, Student filter, String orderBy);
|
||||
|
||||
/**
|
||||
* 在多对多关系中,当前Service的数据表为从表,返回与指定主表主键Id存在对多对关系的列表。
|
||||
@@ -79,8 +78,7 @@ public interface StudentService extends IBaseService<Student, Long> {
|
||||
* @param orderBy 排序参数。
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
List<Student> getStudentListByClassId(
|
||||
Long classId, Student filter, String orderBy);
|
||||
List<Student> getStudentListByClassId(Long classId, Student filter, String orderBy);
|
||||
|
||||
/**
|
||||
* 根据最新对象和原有对象的数据对比,判断关联的字典数据和多对一主表数据是否都是合法数据。
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.orange.demo.common.core.object.CallResult;
|
||||
import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -22,6 +23,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("courseService")
|
||||
public class CourseServiceImpl extends BaseService<Course, Long> implements CourseService {
|
||||
|
||||
@@ -125,6 +127,8 @@ public class CourseServiceImpl extends BaseService<Course, Long> implements Cour
|
||||
@Override
|
||||
public List<Course> getCourseListWithRelation(Course filter, String orderBy) {
|
||||
List<Course> resultList = courseMapper.getCourseList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
@@ -139,8 +143,7 @@ public class CourseServiceImpl extends BaseService<Course, Long> implements Cour
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
@Override
|
||||
public List<Course> getNotInCourseListByClassId(
|
||||
Long classId, Course filter, String orderBy) {
|
||||
public List<Course> getNotInCourseListByClassId(Long classId, Course filter, String orderBy) {
|
||||
List<Course> resultList =
|
||||
courseMapper.getNotInCourseListByClassId(classId, filter, orderBy);
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.dictOnly());
|
||||
@@ -156,8 +159,7 @@ public class CourseServiceImpl extends BaseService<Course, Long> implements Cour
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
@Override
|
||||
public List<Course> getCourseListByClassId(
|
||||
Long classId, Course filter, String orderBy) {
|
||||
public List<Course> getCourseListByClassId(Long classId, Course filter, String orderBy) {
|
||||
List<Course> resultList =
|
||||
courseMapper.getCourseListByClassId(classId, filter, orderBy);
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.dictOnly());
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
||||
import com.orange.demo.common.core.object.MyRelationParam;
|
||||
import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -18,6 +19,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("courseTransStatsService")
|
||||
public class CourseTransStatsServiceImpl extends BaseService<CourseTransStats, Long> implements CourseTransStatsService {
|
||||
|
||||
@@ -61,6 +63,8 @@ public class CourseTransStatsServiceImpl extends BaseService<CourseTransStats, L
|
||||
@Override
|
||||
public List<CourseTransStats> getCourseTransStatsListWithRelation(CourseTransStats filter, String orderBy) {
|
||||
List<CourseTransStats> resultList = courseTransStatsMapper.getCourseTransStatsList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
@@ -80,6 +84,8 @@ public class CourseTransStatsServiceImpl extends BaseService<CourseTransStats, L
|
||||
CourseTransStats filter, String groupSelect, String groupBy, String orderBy) {
|
||||
List<CourseTransStats> resultList =
|
||||
courseTransStatsMapper.getGroupedCourseTransStatsList(filter, groupSelect, groupBy, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
// NOTE: 这里只是包含了关联数据,聚合计算数据没有包含。
|
||||
// 主要原因是,由于聚合字段通常被视为普通字段使用,不会在group by的从句中出现,语义上也不会在此关联。
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.orange.demo.common.redis.cache.RedisDictionaryCache;
|
||||
import com.orange.demo.webadmin.app.service.GradeService;
|
||||
import com.orange.demo.webadmin.app.dao.GradeMapper;
|
||||
import com.orange.demo.webadmin.app.model.Grade;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -17,6 +18,7 @@ import javax.annotation.PostConstruct;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("gradeService")
|
||||
public class GradeServiceImpl extends BaseDictService<Grade, Integer> implements GradeService {
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.orange.demo.common.core.object.CallResult;
|
||||
import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -21,6 +22,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("schoolInfoService")
|
||||
public class SchoolInfoServiceImpl extends BaseService<SchoolInfo, Long> implements SchoolInfoService {
|
||||
|
||||
@@ -107,6 +109,8 @@ public class SchoolInfoServiceImpl extends BaseService<SchoolInfo, Long> impleme
|
||||
@Override
|
||||
public List<SchoolInfo> getSchoolInfoListWithRelation(SchoolInfo filter, String orderBy) {
|
||||
List<SchoolInfo> resultList = schoolInfoMapper.getSchoolInfoList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
|
||||
@@ -6,8 +6,8 @@ import com.orange.demo.webadmin.app.model.*;
|
||||
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
||||
import com.orange.demo.common.core.object.MyRelationParam;
|
||||
import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.core.util.MyModelUtil;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("studentActionStatsService")
|
||||
public class StudentActionStatsServiceImpl extends BaseService<StudentActionStats, Long> implements StudentActionStatsService {
|
||||
|
||||
@@ -64,6 +65,8 @@ public class StudentActionStatsServiceImpl extends BaseService<StudentActionStat
|
||||
@Override
|
||||
public List<StudentActionStats> getStudentActionStatsListWithRelation(StudentActionStats filter, String orderBy) {
|
||||
List<StudentActionStats> resultList = studentActionStatsMapper.getStudentActionStatsList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
@@ -83,6 +86,8 @@ public class StudentActionStatsServiceImpl extends BaseService<StudentActionStat
|
||||
StudentActionStats filter, String groupSelect, String groupBy, String orderBy) {
|
||||
List<StudentActionStats> resultList =
|
||||
studentActionStatsMapper.getGroupedStudentActionStatsList(filter, groupSelect, groupBy, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
// NOTE: 这里只是包含了关联数据,聚合计算数据没有包含。
|
||||
// 主要原因是,由于聚合字段通常被视为普通字段使用,不会在group by的从句中出现,语义上也不会在此关联。
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.orange.demo.common.core.object.CallResult;
|
||||
import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -21,6 +22,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("studentActionTransService")
|
||||
public class StudentActionTransServiceImpl extends BaseService<StudentActionTrans, Long> implements StudentActionTransService {
|
||||
|
||||
@@ -109,6 +111,8 @@ public class StudentActionTransServiceImpl extends BaseService<StudentActionTran
|
||||
@Override
|
||||
public List<StudentActionTrans> getStudentActionTransListWithRelation(StudentActionTrans filter, String orderBy) {
|
||||
List<StudentActionTrans> resultList = studentActionTransMapper.getStudentActionTransList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.core.util.MyModelUtil;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -25,6 +26,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("studentClassService")
|
||||
public class StudentClassServiceImpl extends BaseService<StudentClass, Long> implements StudentClassService {
|
||||
|
||||
@@ -135,6 +137,8 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
||||
@Override
|
||||
public List<StudentClass> getStudentClassListWithRelation(StudentClass filter, String orderBy) {
|
||||
List<StudentClass> resultList = studentClassMapper.getStudentClassList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.core.util.MyModelUtil;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -23,6 +24,7 @@ import java.util.*;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("studentService")
|
||||
public class StudentServiceImpl extends BaseService<Student, Long> implements StudentService {
|
||||
|
||||
@@ -127,6 +129,8 @@ public class StudentServiceImpl extends BaseService<Student, Long> implements St
|
||||
@Override
|
||||
public List<Student> getStudentListWithRelation(Student filter, String orderBy) {
|
||||
List<Student> resultList = studentMapper.getStudentList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
@@ -141,8 +145,7 @@ public class StudentServiceImpl extends BaseService<Student, Long> implements St
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
@Override
|
||||
public List<Student> getNotInStudentListByClassId(
|
||||
Long classId, Student filter, String orderBy) {
|
||||
public List<Student> getNotInStudentListByClassId(Long classId, Student filter, String orderBy) {
|
||||
List<Student> resultList =
|
||||
studentMapper.getNotInStudentListByClassId(classId, filter, orderBy);
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.dictOnly());
|
||||
@@ -158,8 +161,7 @@ public class StudentServiceImpl extends BaseService<Student, Long> implements St
|
||||
* @return 查询结果集。
|
||||
*/
|
||||
@Override
|
||||
public List<Student> getStudentListByClassId(
|
||||
Long classId, Student filter, String orderBy) {
|
||||
public List<Student> getStudentListByClassId(Long classId, Student filter, String orderBy) {
|
||||
List<Student> resultList =
|
||||
studentMapper.getStudentListByClassId(classId, filter, orderBy);
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.dictOnly());
|
||||
|
||||
@@ -82,7 +82,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
|
||||
return false;
|
||||
}
|
||||
String sessionId = (String) c.get("sessionId");
|
||||
String sessionIdKey = RedisKeyUtil.makeSessionIdKeyForRedis(sessionId);
|
||||
String sessionIdKey = RedisKeyUtil.makeSessionIdKey(sessionId);
|
||||
RBucket<String> sessionData = redissonClient.getBucket(sessionIdKey);
|
||||
TokenData tokenData = null;
|
||||
if (sessionData.isExists()) {
|
||||
@@ -97,7 +97,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
|
||||
TokenData.addToRequest(tokenData);
|
||||
// 如果url在权限资源白名单中,则不需要进行鉴权操作
|
||||
if (Boolean.FALSE.equals(tokenData.getIsAdmin()) && !whitelistPermSet.contains(url)) {
|
||||
RSet<String> permSet = redissonClient.getSet(RedisKeyUtil.makeSessionPermIdKeyForRedis(sessionId));
|
||||
RSet<String> permSet = redissonClient.getSet(RedisKeyUtil.makeSessionPermIdKey(sessionId));
|
||||
if (!permSet.contains(url)) {
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
this.outputResponseMessage(response, ResponseResult.error(ErrorCodeEnum.NO_OPERATION_PERMISSION));
|
||||
|
||||
@@ -95,7 +95,7 @@ public class LoginController {
|
||||
@PostMapping("/doLogout")
|
||||
public ResponseResult<Void> doLogout() {
|
||||
TokenData tokenData = TokenData.takeFromRequest();
|
||||
String sessionIdKey = RedisKeyUtil.makeSessionIdKeyForRedis(tokenData.getSessionId());
|
||||
String sessionIdKey = RedisKeyUtil.makeSessionIdKey(tokenData.getSessionId());
|
||||
redissonClient.getBucket(sessionIdKey).delete();
|
||||
sysPermService.removeUserSysPermCache(tokenData.getSessionId());
|
||||
cacheHelper.removeAllSessionCache(tokenData.getSessionId());
|
||||
@@ -180,7 +180,7 @@ public class LoginController {
|
||||
tokenData.setIsAdmin(isAdmin);
|
||||
tokenData.setLoginIp(IpUtil.getRemoteIpAddress(ContextUtil.getHttpRequest()));
|
||||
tokenData.setLoginTime(new Date());
|
||||
String sessionIdKey = RedisKeyUtil.makeSessionIdKeyForRedis(sessionId);
|
||||
String sessionIdKey = RedisKeyUtil.makeSessionIdKey(sessionId);
|
||||
String sessionData = JSON.toJSONString(tokenData, SerializerFeature.WriteNonStringValueAsString);
|
||||
RBucket<String> bucket = redissonClient.getBucket(sessionIdKey);
|
||||
bucket.set(sessionData);
|
||||
|
||||
@@ -72,7 +72,7 @@ public class LoginUserController {
|
||||
public ResponseResult<Void> delete(@MyRequestBody String sessionId) {
|
||||
// 为了保证被剔除用户正在进行的操作不被干扰,这里只是删除sessionIdKey即可,这样可以使强制下线操作更加平滑。
|
||||
// 比如,如果删除操作权限或数据权限的redis session key,那么正在请求数据的操作就会报错。
|
||||
redissonClient.getBucket(RedisKeyUtil.makeSessionIdKeyForRedis(sessionId)).delete();
|
||||
redissonClient.getBucket(RedisKeyUtil.makeSessionIdKey(sessionId)).delete();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.orange.demo.webadmin.upms.controller;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.orange.demo.webadmin.upms.dto.SysMenuDto;
|
||||
import com.orange.demo.webadmin.upms.vo.SysMenuVo;
|
||||
import com.orange.demo.webadmin.upms.model.SysMenu;
|
||||
import com.orange.demo.webadmin.upms.model.constant.SysMenuType;
|
||||
import com.orange.demo.webadmin.upms.service.SysMenuService;
|
||||
import com.orange.demo.common.core.constant.ErrorCodeEnum;
|
||||
import com.orange.demo.common.core.object.*;
|
||||
@@ -40,12 +42,23 @@ public class SysMenuController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(
|
||||
@MyRequestBody("sysMenu") SysMenuDto sysMenuDto, @MyRequestBody String permCodeIdListString) {
|
||||
@MyRequestBody SysMenuDto sysMenuDto, @MyRequestBody String permCodeIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysMenuDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
SysMenu sysMenu = MyModelUtil.copyTo(sysMenuDto, SysMenu.class);
|
||||
if (sysMenu.getParentId() != null) {
|
||||
SysMenu parentSysMenu = sysMenuService.getById(sysMenu.getParentId());
|
||||
if (parentSysMenu == null) {
|
||||
errorMessage = "数据验证失败,关联的父菜单不存在!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
if (parentSysMenu.getOnlineFormId() != null) {
|
||||
errorMessage = "数据验证失败,不能动态表单菜单添加父菜单!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
}
|
||||
CallResult result = sysMenuService.verifyRelatedData(sysMenu, null, permCodeIdListString);
|
||||
if (!result.isSuccess()) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
|
||||
@@ -68,7 +81,7 @@ public class SysMenuController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(
|
||||
@MyRequestBody("sysMenu") SysMenuDto sysMenuDto, @MyRequestBody String permCodeIdListString) {
|
||||
@MyRequestBody SysMenuDto sysMenuDto, @MyRequestBody String permCodeIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysMenuDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -79,6 +92,21 @@ public class SysMenuController {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
SysMenu sysMenu = MyModelUtil.copyTo(sysMenuDto, SysMenu.class);
|
||||
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
|
||||
if (originalSysMenu.getOnlineFormId() == null) {
|
||||
errorMessage = "数据验证失败,不能为当前菜单添加在线表单Id属性!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
if (sysMenu.getOnlineFormId() == null) {
|
||||
errorMessage = "数据验证失败,不能去掉当前菜单的在线表单Id属性!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
}
|
||||
if (originalSysMenu.getOnlineFormId() != null
|
||||
&& originalSysMenu.getMenuType().equals(SysMenuType.TYPE_BUTTON)) {
|
||||
errorMessage = "数据验证失败,在线表单的内置菜单不能编辑!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
CallResult result = sysMenuService.verifyRelatedData(sysMenu, originalSysMenu, permCodeIdListString);
|
||||
if (!result.isSuccess()) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
|
||||
@@ -106,11 +134,20 @@ public class SysMenuController {
|
||||
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
|
||||
}
|
||||
String errorMessage;
|
||||
if (sysMenuService.hasChildren(menuId)) {
|
||||
SysMenu menu = sysMenuService.getById(menuId);
|
||||
if (menu == null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||
}
|
||||
if (menu.getOnlineFormId() != null && menu.getMenuType().equals(SysMenuType.TYPE_BUTTON)) {
|
||||
errorMessage = "数据验证失败,在线表单的内置菜单不能删除!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
}
|
||||
// 对于在线表单,无需进行子菜单的验证,而是在删除的时候,连同子菜单一起删除。
|
||||
if (menu.getOnlineFormId() == null && sysMenuService.hasChildren(menuId)) {
|
||||
errorMessage = "数据验证失败,当前菜单存在下级菜单!";
|
||||
return ResponseResult.error(ErrorCodeEnum.HAS_CHILDREN_DATA, errorMessage);
|
||||
}
|
||||
if (!sysMenuService.remove(menuId)) {
|
||||
if (!sysMenuService.remove(menu)) {
|
||||
errorMessage = "数据操作失败,菜单不存在,请刷新后重试!";
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class SysPermCodeController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(
|
||||
@MyRequestBody("sysPermCode") SysPermCodeDto sysPermCodeDto, @MyRequestBody String permIdListString) {
|
||||
@MyRequestBody SysPermCodeDto sysPermCodeDto, @MyRequestBody String permIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysPermCodeDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED);
|
||||
@@ -69,7 +69,7 @@ public class SysPermCodeController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(
|
||||
@MyRequestBody("sysPermCode") SysPermCodeDto sysPermCodeDto, @MyRequestBody String permIdListString) {
|
||||
@MyRequestBody SysPermCodeDto sysPermCodeDto, @MyRequestBody String permIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysPermCodeDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
|
||||
@@ -40,7 +40,7 @@ public class SysPermController {
|
||||
* @return 应答结果对象,包含新增权限资源的主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("sysPerm") SysPermDto sysPermDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody SysPermDto sysPermDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysPermDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -61,7 +61,7 @@ public class SysPermController {
|
||||
* @return 应答结果对象,包含更新权限资源的主键Id。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("sysPerm") SysPermDto sysPermDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody SysPermDto sysPermDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysPermDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -120,17 +120,17 @@ public class SysPermController {
|
||||
/**
|
||||
* 查看权限资源列表。
|
||||
*
|
||||
* @param sysPermDtoFiltter 过滤对象。
|
||||
* @param sysPermDtoFilter 过滤对象。
|
||||
* @param pageParam 分页参数。
|
||||
* @return 应答结果对象,包含权限资源列表。
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<SysPermVo>> list(
|
||||
@MyRequestBody("sysPermFilter") SysPermDto sysPermDtoFiltter, @MyRequestBody MyPageParam pageParam) {
|
||||
@MyRequestBody SysPermDto sysPermDtoFilter, @MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
|
||||
}
|
||||
SysPerm filter = MyModelUtil.copyTo(sysPermDtoFiltter, SysPerm.class);
|
||||
SysPerm filter = MyModelUtil.copyTo(sysPermDtoFilter, SysPerm.class);
|
||||
List<SysPerm> permList = sysPermService.getPermListWithRelation(filter);
|
||||
List<SysPermVo> permVoList = MyModelUtil.copyCollectionTo(permList, SysPermVo.class);
|
||||
long totalCount = 0L;
|
||||
|
||||
@@ -42,7 +42,7 @@ public class SysPermModuleController {
|
||||
* @return 应答结果对象,包含新增权限资源模块的主键Id。
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(@MyRequestBody("sysPermModule") SysPermModuleDto sysPermModuleDto) {
|
||||
public ResponseResult<Long> add(@MyRequestBody SysPermModuleDto sysPermModuleDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysPermModuleDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -64,7 +64,7 @@ public class SysPermModuleController {
|
||||
* @return 应答结果对象,包含新增权限资源模块的主键Id。
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(@MyRequestBody("sysPermModule") SysPermModuleDto sysPermModuleDto) {
|
||||
public ResponseResult<Void> update(@MyRequestBody SysPermModuleDto sysPermModuleDto) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysPermModuleDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
|
||||
@@ -50,7 +50,7 @@ public class SysRoleController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(
|
||||
@MyRequestBody("sysRole") SysRoleDto sysRoleDto, @MyRequestBody String menuIdListString) {
|
||||
@MyRequestBody SysRoleDto sysRoleDto, @MyRequestBody String menuIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysRoleDto);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -78,7 +78,7 @@ public class SysRoleController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(
|
||||
@MyRequestBody("sysRole") SysRoleDto sysRoleDto, @MyRequestBody String menuIdListString) {
|
||||
@MyRequestBody SysRoleDto sysRoleDto, @MyRequestBody String menuIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysRoleDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -132,7 +132,7 @@ public class SysRoleController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<SysRoleVo>> list(
|
||||
@MyRequestBody("sysRoleFilter") SysRoleDto sysRoleDtoFilter,
|
||||
@MyRequestBody SysRoleDto sysRoleDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
@@ -181,7 +181,7 @@ public class SysRoleController {
|
||||
@PostMapping("/listNotInUserRole")
|
||||
public ResponseResult<MyPageData<SysUserVo>> listNotInUserRole(
|
||||
@MyRequestBody Long roleId,
|
||||
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
|
||||
@MyRequestBody SysUserDto sysUserDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doRoleUserVerify(roleId);
|
||||
@@ -210,7 +210,7 @@ public class SysRoleController {
|
||||
@PostMapping("/listUserRole")
|
||||
public ResponseResult<MyPageData<SysUserVo>> listUserRole(
|
||||
@MyRequestBody Long roleId,
|
||||
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
|
||||
@MyRequestBody SysUserDto sysUserDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
ResponseResult<Void> verifyResult = this.doRoleUserVerify(roleId);
|
||||
|
||||
@@ -48,7 +48,7 @@ public class SysUserController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/add")
|
||||
public ResponseResult<Long> add(
|
||||
@MyRequestBody("sysUser") SysUserDto sysUserDto, @MyRequestBody String roleIdListString) {
|
||||
@MyRequestBody SysUserDto sysUserDto, @MyRequestBody String roleIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysUserDto, Default.class, AddGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -73,7 +73,7 @@ public class SysUserController {
|
||||
@SuppressWarnings("unchecked")
|
||||
@PostMapping("/update")
|
||||
public ResponseResult<Void> update(
|
||||
@MyRequestBody("sysUser") SysUserDto sysUserDto, @MyRequestBody String roleIdListString) {
|
||||
@MyRequestBody SysUserDto sysUserDto, @MyRequestBody String roleIdListString) {
|
||||
String errorMessage = MyCommonUtil.getModelValidationError(sysUserDto, Default.class, UpdateGroup.class);
|
||||
if (errorMessage != null) {
|
||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||
@@ -147,7 +147,7 @@ public class SysUserController {
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<MyPageData<SysUserVo>> list(
|
||||
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
|
||||
@MyRequestBody SysUserDto sysUserDtoFilter,
|
||||
@MyRequestBody MyOrderParam orderParam,
|
||||
@MyRequestBody MyPageParam pageParam) {
|
||||
if (pageParam != null) {
|
||||
|
||||
@@ -22,6 +22,16 @@ public interface SysMenuMapper extends BaseDaoMapper<SysMenu> {
|
||||
*/
|
||||
List<SysMenu> getMenuListByUserId(@Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 获取当前用户有权访问的在线表单菜单,仅返回类型为BUTTON的菜单。
|
||||
*
|
||||
* @param userId 指定的用户。
|
||||
* @param menuType 菜单类型,NULL则返回全部类型。
|
||||
* @return 在线表单关联的菜单列表。
|
||||
*/
|
||||
List<SysMenu> getOnlineMenuListByUserId(
|
||||
@Param("userId") Long userId, @Param("menuType") Integer menuType);
|
||||
|
||||
/**
|
||||
* 查询菜单的权限资源地址列表。同时返回详细的分配路径。
|
||||
*
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
<result column="menu_name" jdbcType="VARCHAR" property="menuName"/>
|
||||
<result column="menu_type" jdbcType="INTEGER" property="menuType"/>
|
||||
<result column="form_router_name" jdbcType="VARCHAR" property="formRouterName"/>
|
||||
<result column="online_form_id" jdbcType="BIGINT" property="onlineFormId"/>
|
||||
<result column="online_menu_perm_type" jdbcType="INTEGER" property="onlineMenuPermType"/>
|
||||
<result column="show_order" jdbcType="INTEGER" property="showOrder"/>
|
||||
<result column="icon" jdbcType="VARCHAR" property="icon"/>
|
||||
<result column="create_user_id" jdbcType="BIGINT" property="createUserId"/>
|
||||
@@ -32,6 +34,25 @@
|
||||
ORDER BY m.show_order
|
||||
</select>
|
||||
|
||||
<select id="getOnlineMenuListByUserId" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
m.*
|
||||
FROM
|
||||
zz_sys_user_role ur,
|
||||
zz_sys_role_menu rm,
|
||||
zz_sys_menu m
|
||||
<where>
|
||||
AND ur.user_id = #{userId}
|
||||
AND ur.role_id = rm.role_id
|
||||
AND rm.menu_id = m.menu_id
|
||||
AND m.online_form_id IS NOT NULL
|
||||
<if test="menuType != null">
|
||||
AND m.menu_type = #{menuType}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY m.show_order
|
||||
</select>
|
||||
|
||||
<!-- 以下查询仅用于权限分配的问题定位,由于关联表较多,可能会给系统运行带来性能影响 -->
|
||||
<select id="getSysPermListWithDetail" resultType="map">
|
||||
SELECT
|
||||
|
||||
@@ -46,6 +46,11 @@ public class SysMenuDto {
|
||||
*/
|
||||
private String formRouterName;
|
||||
|
||||
/**
|
||||
* 在线表单主键Id,仅用于在线表单绑定的菜单。
|
||||
*/
|
||||
private Long onlineFormId;
|
||||
|
||||
/**
|
||||
* 菜单显示顺序 (值越小,排序越靠前)。
|
||||
*/
|
||||
|
||||
@@ -53,6 +53,18 @@ public class SysMenu {
|
||||
@Column(name = "form_router_name")
|
||||
private String formRouterName;
|
||||
|
||||
/**
|
||||
* 在线表单主键Id,仅用于在线表单绑定的菜单。
|
||||
*/
|
||||
@Column(name = "online_form_id")
|
||||
private Long onlineFormId;
|
||||
|
||||
/**
|
||||
* 在线表单菜单的权限控制类型,具体值可参考SysOnlineMenuPermType常量对象。
|
||||
*/
|
||||
@Column(name = "online_menu_perm_type")
|
||||
private Integer onlineMenuPermType;
|
||||
|
||||
/**
|
||||
* 菜单显示顺序 (值越小,排序越靠前)。
|
||||
*/
|
||||
|
||||
@@ -30,10 +30,10 @@ public final class SysMenuType {
|
||||
|
||||
private static final Map<Object, String> DICT_MAP = new HashMap<>(4);
|
||||
static {
|
||||
DICT_MAP.put(0, "目录菜单");
|
||||
DICT_MAP.put(1, "普通菜单");
|
||||
DICT_MAP.put(2, "表单片段类型");
|
||||
DICT_MAP.put(3, "按钮类型");
|
||||
DICT_MAP.put(TYPE_DIRECTORY, "目录菜单");
|
||||
DICT_MAP.put(TYPE_MENU, "普通菜单");
|
||||
DICT_MAP.put(TYPE_UI_FRAGMENT, "表单片段类型");
|
||||
DICT_MAP.put(TYPE_BUTTON, "按钮类型");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.orange.demo.webadmin.upms.model.constant;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 菜单关联在线表单的控制权限类型。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
public final class SysOnlineMenuPermType {
|
||||
|
||||
/**
|
||||
* 查看。
|
||||
*/
|
||||
public static final int TYPE_VIEW = 0;
|
||||
/**
|
||||
* 编辑。
|
||||
*/
|
||||
public static final int TYPE_EDIT = 1;
|
||||
|
||||
private static final Map<Object, String> DICT_MAP = new HashMap<>(4);
|
||||
static {
|
||||
DICT_MAP.put(TYPE_VIEW, "查看");
|
||||
DICT_MAP.put(TYPE_EDIT, "编辑");
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断参数是否为当前常量字典的合法值。
|
||||
*
|
||||
* @param value 待验证的参数值。
|
||||
* @return 合法返回true,否则false。
|
||||
*/
|
||||
public static boolean isValid(Integer value) {
|
||||
return value != null && DICT_MAP.containsKey(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 私有构造函数,明确标识该常量类的作用。
|
||||
*/
|
||||
private SysOnlineMenuPermType() {
|
||||
}
|
||||
}
|
||||
@@ -26,9 +26,9 @@ public final class SysPermCodeType {
|
||||
|
||||
private static final Map<Object, String> DICT_MAP = new HashMap<>(3);
|
||||
static {
|
||||
DICT_MAP.put(0, "表单权限字");
|
||||
DICT_MAP.put(1, "表单片段布局权限字");
|
||||
DICT_MAP.put(2, "操作权限字");
|
||||
DICT_MAP.put(TYPE_FORM, "表单权限字");
|
||||
DICT_MAP.put(TYPE_FRAGMENT, "表单片段布局权限字");
|
||||
DICT_MAP.put(TYPE_OPERATION, "操作权限字");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,8 +22,8 @@ public final class SysPermModuleType {
|
||||
|
||||
private static final Map<Object, String> DICT_MAP = new HashMap<>(2);
|
||||
static {
|
||||
DICT_MAP.put(0, "普通模块");
|
||||
DICT_MAP.put(1, "controller接口模块");
|
||||
DICT_MAP.put(TYPE_NORMAL, "普通模块");
|
||||
DICT_MAP.put(TYPE_CONTROLLER, "controller接口模块");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,10 +36,10 @@ public interface SysMenuService extends IBaseService<SysMenu, Long> {
|
||||
/**
|
||||
* 删除指定的菜单。
|
||||
*
|
||||
* @param menuId 菜单主键Id。
|
||||
* @param menu 菜单对象。
|
||||
* @return 删除成功返回true,否则false。
|
||||
*/
|
||||
boolean remove(Long menuId);
|
||||
boolean remove(SysMenu menu);
|
||||
|
||||
/**
|
||||
* 获取全部菜单列表。
|
||||
@@ -91,4 +91,21 @@ public interface SysMenuService extends IBaseService<SysMenu, Long> {
|
||||
* @return 包含从菜单到用户的完整权限分配路径信息的查询结果列表。
|
||||
*/
|
||||
List<Map<String, Object>> getSysUserListWithDetail(Long menuId, String loginName);
|
||||
|
||||
/**
|
||||
* 获取指定类型的所有在线表单的菜单。
|
||||
*
|
||||
* @param menuType 菜单类型,NULL则返回全部类型。
|
||||
* @return 在线表单关联的菜单列表。
|
||||
*/
|
||||
List<SysMenu> getAllOnlineMenuList(Integer menuType);
|
||||
|
||||
/**
|
||||
* 获取当前用户有权访问的在线表单菜单,仅返回类型为BUTTON的菜单。
|
||||
*
|
||||
* @param userId 指定的用户。
|
||||
* @param menuType 菜单类型,NULL则返回全部类型。
|
||||
* @return 在线表单关联的菜单列表。
|
||||
*/
|
||||
List<SysMenu> getOnlineMenuListByUserId(Long userId, Integer menuType);
|
||||
}
|
||||
|
||||
@@ -56,6 +56,14 @@ public interface SysPermService extends IBaseService<SysPerm, Long> {
|
||||
*/
|
||||
Collection<String> putUserSysPermCache(String sessionId, Long userId);
|
||||
|
||||
/**
|
||||
* 把在线表单的权限URL集合,存放到权限URL的缓存中。
|
||||
*
|
||||
* @param sessionId 会话Id。
|
||||
* @param permUrlSet URL集合。
|
||||
*/
|
||||
void putOnlinePermToCache(String sessionId, Set<String> permUrlSet);
|
||||
|
||||
/**
|
||||
* 将指定会话的权限集合从缓存中移除。
|
||||
*
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.orange.demo.webadmin.upms.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
@@ -14,8 +15,10 @@ import com.orange.demo.webadmin.upms.model.SysMenu;
|
||||
import com.orange.demo.webadmin.upms.model.SysMenuPermCode;
|
||||
import com.orange.demo.webadmin.upms.model.SysRoleMenu;
|
||||
import com.orange.demo.webadmin.upms.model.constant.SysMenuType;
|
||||
import com.orange.demo.webadmin.upms.model.constant.SysOnlineMenuPermType;
|
||||
import com.orange.demo.webadmin.upms.service.SysMenuService;
|
||||
import com.orange.demo.webadmin.upms.service.SysPermCodeService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -31,6 +34,7 @@ import java.util.stream.Collectors;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysMenuService")
|
||||
public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements SysMenuService {
|
||||
|
||||
@@ -79,6 +83,29 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
||||
}
|
||||
sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
|
||||
}
|
||||
// 判断当前菜单是否为指向在线表单的菜单,并将根据约定,动态插入两个子菜单。
|
||||
if (sysMenu.getOnlineFormId() != null) {
|
||||
SysMenu viewSubMenu = new SysMenu();
|
||||
viewSubMenu.setMenuId(idGenerator.nextLongId());
|
||||
viewSubMenu.setParentId(sysMenu.getMenuId());
|
||||
viewSubMenu.setMenuType(SysMenuType.TYPE_BUTTON);
|
||||
viewSubMenu.setMenuName("查看");
|
||||
viewSubMenu.setShowOrder(0);
|
||||
viewSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
|
||||
viewSubMenu.setOnlineMenuPermType(SysOnlineMenuPermType.TYPE_VIEW);
|
||||
MyModelUtil.fillCommonsForInsert(viewSubMenu);
|
||||
sysMenuMapper.insert(viewSubMenu);
|
||||
SysMenu editSubMenu = new SysMenu();
|
||||
editSubMenu.setMenuId(idGenerator.nextLongId());
|
||||
editSubMenu.setParentId(sysMenu.getMenuId());
|
||||
editSubMenu.setMenuType(SysMenuType.TYPE_BUTTON);
|
||||
editSubMenu.setMenuName("编辑");
|
||||
editSubMenu.setShowOrder(1);
|
||||
editSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
|
||||
editSubMenu.setOnlineMenuPermType(SysOnlineMenuPermType.TYPE_EDIT);
|
||||
MyModelUtil.fillCommonsForInsert(editSubMenu);
|
||||
sysMenuMapper.insert(editSubMenu);
|
||||
}
|
||||
return sysMenu;
|
||||
}
|
||||
|
||||
@@ -112,18 +139,27 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
||||
}
|
||||
sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
|
||||
}
|
||||
// 如果当前菜单的在线表单Id变化了,就需要同步更新他的内置子菜单也同步更新。
|
||||
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
|
||||
SysMenu onlineSubMenu = new SysMenu();
|
||||
onlineSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
|
||||
Example e = new Example(SysMenu.class);
|
||||
e.createCriteria().andEqualTo("parentId", sysMenu.getMenuId());
|
||||
sysMenuMapper.updateByExampleSelective(onlineSubMenu, e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除指定的菜单。
|
||||
*
|
||||
* @param menuId 菜单主键Id。
|
||||
* @param menu 菜单对象。
|
||||
* @return 删除成功返回true,否则false。
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public boolean remove(Long menuId) {
|
||||
public boolean remove(SysMenu menu) {
|
||||
Long menuId = menu.getMenuId();
|
||||
if (!this.removeById(menuId)) {
|
||||
return false;
|
||||
}
|
||||
@@ -133,6 +169,12 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
||||
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
||||
menuPermCode.setMenuId(menuId);
|
||||
sysMenuPermCodeMapper.delete(menuPermCode);
|
||||
// 如果为指向在线表单的菜单,则连同删除子菜单
|
||||
if (menu.getOnlineFormId() != null) {
|
||||
Example e = new Example(SysMenu.class);
|
||||
e.createCriteria().andEqualTo("parentId", menuId);
|
||||
sysMenuMapper.deleteByExample(e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -239,6 +281,34 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
||||
return sysMenuMapper.getSysUserListWithDetail(menuId, loginName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定类型的所有在线表单的菜单。
|
||||
*
|
||||
* @param menuType 菜单类型,NULL则返回全部类型。
|
||||
* @return 在线表单关联的菜单列表。
|
||||
*/
|
||||
@Override
|
||||
public List<SysMenu> getAllOnlineMenuList(Integer menuType) {
|
||||
Example e = new Example(SysMenu.class);
|
||||
Example.Criteria c = e.createCriteria().andIsNotNull("onlineFormId");
|
||||
if (menuType != null) {
|
||||
c.andEqualTo("menuType", menuType);
|
||||
}
|
||||
return sysMenuMapper.selectByExample(e);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户有权访问的在线表单菜单,仅返回类型为BUTTON的菜单。
|
||||
*
|
||||
* @param userId 指定的用户。
|
||||
* @param menuType 菜单类型,NULL则返回全部类型。
|
||||
* @return 在线表单关联的菜单列表。
|
||||
*/
|
||||
@Override
|
||||
public List<SysMenu> getOnlineMenuListByUserId(Long userId, Integer menuType) {
|
||||
return sysMenuMapper.getOnlineMenuListByUserId(userId, menuType);
|
||||
}
|
||||
|
||||
private String checkErrorOfNonDirectoryMenu(SysMenu sysMenu) {
|
||||
// 判断父节点是否存在
|
||||
SysMenu parentSysMenu = getById(sysMenu.getParentId());
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.orange.demo.webadmin.upms.model.SysPermCode;
|
||||
import com.orange.demo.webadmin.upms.model.SysPermCodePerm;
|
||||
import com.orange.demo.webadmin.upms.service.SysPermCodeService;
|
||||
import com.orange.demo.webadmin.upms.service.SysPermService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -29,6 +30,7 @@ import java.util.stream.Collectors;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysPermCodeService")
|
||||
public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> implements SysPermCodeService {
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.orange.demo.webadmin.upms.model.SysPerm;
|
||||
import com.orange.demo.webadmin.upms.model.SysPermModule;
|
||||
import com.orange.demo.webadmin.upms.service.SysPermModuleService;
|
||||
import com.orange.demo.webadmin.upms.service.SysPermService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -22,6 +23,7 @@ import java.util.List;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysPermModuleService")
|
||||
public class SysPermModuleServiceImpl extends BaseService<SysPermModule, Long> implements SysPermModuleService {
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.orange.demo.webadmin.upms.dao.SysPermMapper;
|
||||
import com.orange.demo.webadmin.upms.model.SysPerm;
|
||||
import com.orange.demo.webadmin.upms.model.SysPermCodePerm;
|
||||
import com.orange.demo.webadmin.upms.model.SysPermModule;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.redisson.api.RSet;
|
||||
import org.redisson.api.RedissonClient;
|
||||
@@ -34,6 +35,7 @@ import java.util.stream.Collectors;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysPermService")
|
||||
public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements SysPermService {
|
||||
|
||||
@@ -148,13 +150,25 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
|
||||
if (CollectionUtils.isEmpty(permList)) {
|
||||
return permList;
|
||||
}
|
||||
String sessionPermKey = RedisKeyUtil.makeSessionPermIdKeyForRedis(sessionId);
|
||||
String sessionPermKey = RedisKeyUtil.makeSessionPermIdKey(sessionId);
|
||||
RSet<String> redisPermSet = redissonClient.getSet(sessionPermKey);
|
||||
redisPermSet.addAll(permList.stream().map(Object::toString).collect(Collectors.toSet()));
|
||||
redisPermSet.expire(applicationConfig.getSessionExpiredSeconds(), TimeUnit.SECONDS);
|
||||
return permList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 把在线表单的权限URL集合,存放到权限URL的缓存中。
|
||||
*
|
||||
* @param sessionId 会话Id。
|
||||
* @param permUrlSet URL集合。
|
||||
*/
|
||||
@Override
|
||||
public void putOnlinePermToCache(String sessionId, Set<String> permUrlSet) {
|
||||
String sessionPermKey = RedisKeyUtil.makeSessionPermIdKey(sessionId);
|
||||
redissonClient.getSet(sessionPermKey).addAll(permUrlSet);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将指定会话的权限集合从缓存中移除。
|
||||
*
|
||||
@@ -162,7 +176,7 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
|
||||
*/
|
||||
@Override
|
||||
public void removeUserSysPermCache(String sessionId) {
|
||||
String sessionPermKey = RedisKeyUtil.makeSessionPermIdKeyForRedis(sessionId);
|
||||
String sessionPermKey = RedisKeyUtil.makeSessionPermIdKey(sessionId);
|
||||
redissonClient.getSet(sessionPermKey).deleteAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
||||
import com.orange.demo.webadmin.upms.dao.SysPermWhitelistMapper;
|
||||
import com.orange.demo.webadmin.upms.model.SysPermWhitelist;
|
||||
import com.orange.demo.webadmin.upms.service.SysPermWhitelistService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -19,6 +20,7 @@ import java.util.stream.Collectors;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysPermWhitelistService")
|
||||
public class SysPermWhitelistServiceImpl extends BaseService<SysPermWhitelist, String> implements SysPermWhitelistService {
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.orange.demo.webadmin.upms.model.SysRoleMenu;
|
||||
import com.orange.demo.webadmin.upms.model.SysUserRole;
|
||||
import com.orange.demo.webadmin.upms.service.SysMenuService;
|
||||
import com.orange.demo.webadmin.upms.service.SysRoleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -29,6 +30,7 @@ import java.util.stream.Collectors;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysRoleService")
|
||||
public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements SysRoleService {
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.orange.demo.common.core.base.service.BaseService;
|
||||
import com.orange.demo.common.core.util.MyModelUtil;
|
||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -30,6 +31,7 @@ import java.util.stream.Collectors;
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("sysUserService")
|
||||
public class SysUserServiceImpl extends BaseService<SysUser, Long> implements SysUserService {
|
||||
|
||||
@@ -194,6 +196,8 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
||||
@Override
|
||||
public List<SysUser> getSysUserListWithRelation(SysUser filter, String orderBy) {
|
||||
List<SysUser> resultList = sysUserMapper.getSysUserList(filter, orderBy);
|
||||
// 在缺省生成的代码中,如果查询结果resultList不是Page对象,说明没有分页,那么就很可能是数据导出接口调用了当前方法。
|
||||
// 为了避免一次性的大量数据关联,规避因此而造成的系统运行性能冲击,这里手动进行了分批次读取,开发者可按需修改该值。
|
||||
int batchSize = resultList instanceof Page ? 0 : 1000;
|
||||
this.buildRelationForDataList(resultList, MyRelationParam.normal(), batchSize);
|
||||
return resultList;
|
||||
|
||||
@@ -38,6 +38,16 @@ public class SysMenuVo {
|
||||
*/
|
||||
private String formRouterName;
|
||||
|
||||
/**
|
||||
* 在线表单主键Id,仅用于在线表单绑定的菜单。
|
||||
*/
|
||||
private Long onlineFormId;
|
||||
|
||||
/**
|
||||
* 在线表单菜单的权限控制类型,具体值可参考SysOnlineMenuPermType常量对象。
|
||||
*/
|
||||
private Integer onlineMenuPermType;
|
||||
|
||||
/**
|
||||
* 菜单显示顺序 (值越小,排序越靠前)。
|
||||
*/
|
||||
|
||||
@@ -4,11 +4,17 @@ logging:
|
||||
com.orange.demo: info
|
||||
|
||||
server:
|
||||
port: 8082
|
||||
tomcat:
|
||||
uri-encoding: UTF-8
|
||||
max-threads: 100
|
||||
min-spare-threads: 10
|
||||
port: 8082
|
||||
threads:
|
||||
max: 100
|
||||
min-spare: 10
|
||||
servlet:
|
||||
encoding:
|
||||
force: true
|
||||
charset: UTF-8
|
||||
enabled: true
|
||||
|
||||
# spring相关配置
|
||||
spring:
|
||||
@@ -20,13 +26,9 @@ spring:
|
||||
multipart:
|
||||
max-file-size: 50MB
|
||||
max-request-size: 50MB
|
||||
http:
|
||||
mvc:
|
||||
converters:
|
||||
preferred-json-mapper: fastjson
|
||||
encoding:
|
||||
force: true
|
||||
charset: UTF-8
|
||||
enabled: true
|
||||
freemarker:
|
||||
template-loader-path: classpath:/template/
|
||||
cache: false
|
||||
@@ -160,7 +162,7 @@ application:
|
||||
defaultUserPassword: 123456
|
||||
# 缺省的文件上传根目录。
|
||||
uploadFileBaseDir: ./zz-resource/upload-files/app
|
||||
# 跨域的IP白名单列表,多个IP之间逗号分隔(* 表示全部信任,空白表示禁用跨域信任)。
|
||||
# 跨域的IP(http://192.168.10.10:8086)白名单列表,多个IP之间逗号分隔(* 表示全部信任,空白表示禁用跨域信任)。
|
||||
credentialIpList: "*"
|
||||
# Session的用户和数据权限在Redis中的过期时间(秒)。
|
||||
sessionExpiredSeconds: 86400
|
||||
@@ -219,7 +221,7 @@ application:
|
||||
defaultUserPassword: 123456
|
||||
# 缺省的文件上传根目录。
|
||||
uploadFileBaseDir: ./zz-resource/upload-files/app
|
||||
# 跨域的IP白名单列表,多个IP之间逗号分隔(* 表示全部信任,空白表示禁用跨域信任)。
|
||||
# 跨域的IP(http://192.168.10.10:8086)白名单列表,多个IP之间逗号分隔(* 表示全部信任,空白表示禁用跨域信任)。
|
||||
credentialIpList: "*"
|
||||
# Session的用户和数据权限在Redis中的过期时间(秒)。
|
||||
sessionExpiredSeconds: 86400
|
||||
|
||||
@@ -48,7 +48,7 @@ public class DataSourceResolveAspect {
|
||||
resolver = ApplicationContextHolder.getBean(resolverClass);
|
||||
resolverMap.put(resolverClass, resolver);
|
||||
}
|
||||
int type = resolver.resolve(dsr.arg());
|
||||
int type = resolver.resolve(dsr.arg(), point.getArgs());
|
||||
// 通过判断 DataSource 中的值来判断当前方法应用哪个数据源
|
||||
DataSourceContextHolder.setDataSourceType(type);
|
||||
log.debug("set datasource is " + type);
|
||||
|
||||
@@ -560,16 +560,31 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
return mapper().getCountByCondition(this.tableName, whereClause);
|
||||
}
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据列表。包括本地和远程服务的一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
*/
|
||||
@Override
|
||||
public void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam) {
|
||||
this.buildRelationForDataList(resultList, relationParam, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据列表。包括一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
@Override
|
||||
public void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam) {
|
||||
public void buildRelationForDataList(
|
||||
List<M> resultList, MyRelationParam relationParam, Set<String> ignoreFields) {
|
||||
if (relationParam == null || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
@@ -579,24 +594,24 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
boolean buildOneToOne = relationParam.isBuildOneToOne() || relationParam.isBuildOneToOneWithDict();
|
||||
// 这里集成一对一关联。
|
||||
if (buildOneToOne) {
|
||||
this.buildOneToOneForDataList(resultList, relationParam.isBuildOneToOneWithDict());
|
||||
this.buildOneToOneForDataList(resultList, relationParam.isBuildOneToOneWithDict(), ignoreFields);
|
||||
}
|
||||
// 集成一对多关联
|
||||
if (relationParam.isBuildOneToMany()) {
|
||||
this.buildOneToManyForDataList(resultList);
|
||||
this.buildOneToManyForDataList(resultList, ignoreFields);
|
||||
}
|
||||
// 这里集成字典关联
|
||||
if (relationParam.isBuildDict()) {
|
||||
// 构建常量字典关联关系
|
||||
this.buildConstDictForDataList(resultList);
|
||||
this.buildDictForDataList(resultList, buildOneToOne);
|
||||
this.buildConstDictForDataList(resultList, ignoreFields);
|
||||
this.buildDictForDataList(resultList, buildOneToOne, ignoreFields);
|
||||
}
|
||||
// 组装本地聚合计算关联数据
|
||||
if (relationParam.isBuildRelationAggregation()) {
|
||||
// 处理多对多场景下,根据主表的结果,进行从表聚合数据的计算。
|
||||
this.buildManyToManyAggregationForDataList(resultList, buildAggregationAdditionalWhereCriteria());
|
||||
this.buildManyToManyAggregationForDataList(resultList, buildAggregationAdditionalWhereCriteria(), ignoreFields);
|
||||
// 处理多一多场景下,根据主表的结果,进行从表聚合数据的计算。
|
||||
this.buildOneToManyAggregationForDataList(resultList, buildAggregationAdditionalWhereCriteria());
|
||||
this.buildOneToManyAggregationForDataList(resultList, buildAggregationAdditionalWhereCriteria(), ignoreFields);
|
||||
}
|
||||
} finally {
|
||||
GlobalThreadLocal.setDataFilter(dataFilterValue);
|
||||
@@ -621,6 +636,29 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
*/
|
||||
@Override
|
||||
public void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, int batchSize) {
|
||||
this.buildRelationForDataList(resultList, relationParam, batchSize, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 该函数主要用于对查询结果的批量导出。不同于支持分页的列表查询,批量导出没有分页机制,
|
||||
* 因此在导出数据量较大的情况下,很容易给数据库的内存、CPU和IO带来较大的压力。而通过
|
||||
* 我们的分批处理,可以极大的规避该问题的出现几率。调整batchSize的大小,也可以有效的
|
||||
* 改善运行效率。
|
||||
* 我们目前的处理机制是,先从主表取出所有符合条件的主表数据,这样可以避免分批处理时,
|
||||
* 后面几批数据,因为skip过多而带来的效率问题。因为是单表过滤,不会给数据库带来过大的压力。
|
||||
* 之后再在主表结果集数据上进行分批级联处理。
|
||||
* 集成所有与主表实体对象相关的关联数据列表。包括一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
@Override
|
||||
public void buildRelationForDataList(
|
||||
List<M> resultList, MyRelationParam relationParam, int batchSize, Set<String> ignoreFields) {
|
||||
if (CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
@@ -633,23 +671,38 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
int toIndex = Math.min(batchSize, totalCount);
|
||||
while (toIndex > fromIndex) {
|
||||
List<M> subResultList = resultList.subList(fromIndex, toIndex);
|
||||
this.buildRelationForDataList(subResultList, relationParam);
|
||||
this.buildRelationForDataList(subResultList, relationParam, ignoreFields);
|
||||
fromIndex = toIndex;
|
||||
toIndex = Math.min(batchSize + fromIndex, totalCount);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据对象。包括本地和远程服务的一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param dataObject 主表实体对象。数据集成将直接作用于该对象。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param <T> 实体对象类型。
|
||||
*/
|
||||
@Override
|
||||
public <T extends M> void buildRelationForData(T dataObject, MyRelationParam relationParam) {
|
||||
this.buildRelationForData(dataObject, relationParam, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据对象。包括一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param dataObject 主表实体对象。数据集成将直接作用于该对象。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param <T> 实体对象类型。
|
||||
* @param dataObject 主表实体对象。数据集成将直接作用于该对象。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
* @param <T> 实体对象类型。
|
||||
*/
|
||||
@Override
|
||||
public <T extends M> void buildRelationForData(T dataObject, MyRelationParam relationParam) {
|
||||
public <T extends M> void buildRelationForData(T dataObject, MyRelationParam relationParam, Set<String> ignoreFields) {
|
||||
if (dataObject == null || relationParam == null) {
|
||||
return;
|
||||
}
|
||||
@@ -658,27 +711,27 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
// 集成本地一对一和字段级别的数据关联。
|
||||
boolean buildOneToOne = relationParam.isBuildOneToOne() || relationParam.isBuildOneToOneWithDict();
|
||||
if (buildOneToOne) {
|
||||
this.buildOneToOneForData(dataObject, relationParam.isBuildOneToOneWithDict());
|
||||
this.buildOneToOneForData(dataObject, relationParam.isBuildOneToOneWithDict(), ignoreFields);
|
||||
}
|
||||
// 集成一对多关联
|
||||
if (relationParam.isBuildOneToMany()) {
|
||||
this.buildOneToManyForData(dataObject);
|
||||
this.buildOneToManyForData(dataObject, ignoreFields);
|
||||
}
|
||||
if (relationParam.isBuildDict()) {
|
||||
// 构建常量字典关联关系
|
||||
this.buildConstDictForData(dataObject);
|
||||
this.buildConstDictForData(dataObject, ignoreFields);
|
||||
// 构建本地数据字典关联关系。
|
||||
this.buildDictForData(dataObject, buildOneToOne);
|
||||
this.buildDictForData(dataObject, buildOneToOne, ignoreFields);
|
||||
}
|
||||
// 组装本地聚合计算关联数据
|
||||
if (relationParam.isBuildRelationAggregation()) {
|
||||
// 开始处理多对多场景。
|
||||
buildManyToManyAggregationForData(dataObject, buildAggregationAdditionalWhereCriteria());
|
||||
buildManyToManyAggregationForData(dataObject, buildAggregationAdditionalWhereCriteria(), ignoreFields);
|
||||
// 构建一对多场景
|
||||
buildOneToManyAggregationForData(dataObject, buildAggregationAdditionalWhereCriteria());
|
||||
buildOneToManyAggregationForData(dataObject, buildAggregationAdditionalWhereCriteria(), ignoreFields);
|
||||
}
|
||||
if (relationParam.isBuildRelationManyToMany()) {
|
||||
this.buildRelationManyToMany(dataObject);
|
||||
this.buildRelationManyToMany(dataObject, ignoreFields);
|
||||
}
|
||||
} finally {
|
||||
GlobalThreadLocal.setDataFilter(dataFilterValue);
|
||||
@@ -688,13 +741,17 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 集成主表和多对多中间表之间的关联关系。
|
||||
*
|
||||
* @param dataObject 关联后的主表数据对象。
|
||||
* @param dataObject 关联后的主表数据对象。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private <T extends M> void buildRelationManyToMany(T dataObject) {
|
||||
private <T extends M> void buildRelationManyToMany(T dataObject, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationManyToManyStructList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationManyToManyStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
Example e = new Example(relationStruct.relationManyToMany.relationModelClass());
|
||||
e.createCriteria().andEqualTo(relationStruct.masterIdField.getName(), masterIdValue);
|
||||
@@ -706,13 +763,17 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 为实体对象参数列表数据集成本地静态字典关联数据。
|
||||
*
|
||||
* @param resultList 主表数据列表。
|
||||
* @param resultList 主表数据列表。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildConstDictForDataList(List<M> resultList) {
|
||||
private void buildConstDictForDataList(List<M> resultList, Set<String> ignoreFields) {
|
||||
if (CollectionUtils.isEmpty(this.relationConstDictStructList) || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationConstDictStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
for (M dataObject : resultList) {
|
||||
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (id != null) {
|
||||
@@ -731,13 +792,17 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 为参数实体对象数据集成本地静态字典关联数据。
|
||||
*
|
||||
* @param dataObject 实体对象。
|
||||
* @param dataObject 实体对象。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private <T extends M> void buildConstDictForData(T dataObject) {
|
||||
private <T extends M> void buildConstDictForData(T dataObject, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationConstDictStructList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationConstDictStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (id != null) {
|
||||
String name = relationStruct.dictMap.get(id);
|
||||
@@ -757,12 +822,16 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param hasBuiltOneToOne 性能优化参数。如果该值为true,同时注解参数RelationDict.equalOneToOneRelationField
|
||||
* 不为空,则直接从已经完成一对一数据关联的从表对象中获取数据,减少一次数据库交互。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildDictForDataList(List<M> resultList, boolean hasBuiltOneToOne) {
|
||||
private void buildDictForDataList(List<M> resultList, boolean hasBuiltOneToOne, Set<String> ignoreFields) {
|
||||
if (CollectionUtils.isEmpty(this.relationDictStructList) || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationDictStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
List<Object> relationList = null;
|
||||
if (hasBuiltOneToOne && relationStruct.equalOneToOneRelationField != null) {
|
||||
relationList = resultList.stream()
|
||||
@@ -790,12 +859,16 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
* @param dataObject 实体对象。
|
||||
* @param hasBuiltOneToOne 性能优化参数。如果该值为true,同时注解参数RelationDict.equalOneToOneRelationField
|
||||
* 不为空,则直接从已经完成一对一数据关联的从表对象中获取数据,减少一次数据库交互。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private <T extends M> void buildDictForData(T dataObject, boolean hasBuiltOneToOne) {
|
||||
private <T extends M> void buildDictForData(T dataObject, boolean hasBuiltOneToOne, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationDictStructList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationDictStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Object relationObject = null;
|
||||
if (hasBuiltOneToOne && relationStruct.equalOneToOneRelationField != null) {
|
||||
relationObject = ReflectUtil.getFieldValue(dataObject, relationStruct.equalOneToOneRelationField);
|
||||
@@ -813,14 +886,18 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 为实体对象参数列表数据集成本地一对一关联数据。
|
||||
*
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param withDict 关联从表数据后,是否把从表的字典数据也一起关联了。
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param withDict 关联从表数据后,是否把从表的字典数据也一起关联了。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildOneToOneForDataList(List<M> resultList, boolean withDict) {
|
||||
private void buildOneToOneForDataList(List<M> resultList, boolean withDict, Set<String> ignoreFields) {
|
||||
if (CollectionUtils.isEmpty(this.relationOneToOneStructList) || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationOneToOneStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Set<Object> masterIdSet = resultList.stream()
|
||||
.map(obj -> ReflectUtil.getFieldValue(obj, relationStruct.masterIdField))
|
||||
.filter(Objects::nonNull)
|
||||
@@ -839,9 +916,9 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
BaseService<Object, Object> proxyTarget =
|
||||
(BaseService<Object, Object>) AopTargetUtil.getTarget(relationService);
|
||||
// 关联本地字典。
|
||||
proxyTarget.buildDictForDataList(relationList, false);
|
||||
proxyTarget.buildDictForDataList(relationList, false, ignoreFields);
|
||||
// 关联常量字典
|
||||
proxyTarget.buildConstDictForDataList(relationList);
|
||||
proxyTarget.buildConstDictForDataList(relationList, ignoreFields);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -850,14 +927,18 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 为实体对象数据集成本地一对一关联数据。
|
||||
*
|
||||
* @param dataObject 实体对象。
|
||||
* @param withDict 关联从表数据后,是否把从表的字典数据也一起关联了。
|
||||
* @param dataObject 实体对象。
|
||||
* @param withDict 关联从表数据后,是否把从表的字典数据也一起关联了。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildOneToOneForData(M dataObject, boolean withDict) {
|
||||
private void buildOneToOneForData(M dataObject, boolean withDict, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationOneToOneStructList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationOneToOneStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (id != null) {
|
||||
BaseService<Object, Object> relationService = relationStruct.service;
|
||||
@@ -869,9 +950,9 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
BaseService<Object, Object> proxyTarget =
|
||||
(BaseService<Object, Object>) AopTargetUtil.getTarget(relationService);
|
||||
// 关联本地字典
|
||||
proxyTarget.buildDictForData(relationObject, false);
|
||||
proxyTarget.buildDictForData(relationObject, false, ignoreFields);
|
||||
// 关联常量字典
|
||||
proxyTarget.buildConstDictForData(relationObject);
|
||||
proxyTarget.buildConstDictForData(relationObject, ignoreFields);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -880,13 +961,17 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 为实体对象参数列表数据集成本地一对多关联数据。
|
||||
*
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildOneToManyForDataList(List<M> resultList) {
|
||||
private void buildOneToManyForDataList(List<M> resultList, Set<String> ignoreFields) {
|
||||
if (CollectionUtils.isEmpty(this.relationOneToManyStructList) || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationOneToManyStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Set<Object> masterIdSet = resultList.stream()
|
||||
.map(obj -> ReflectUtil.getFieldValue(obj, relationStruct.masterIdField))
|
||||
.filter(Objects::nonNull)
|
||||
@@ -905,13 +990,17 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
/**
|
||||
* 为实体对象数据集成本地一对多关联数据。
|
||||
*
|
||||
* @param dataObject 实体对象。
|
||||
* @param dataObject 实体对象。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildOneToManyForData(M dataObject) {
|
||||
private void buildOneToManyForData(M dataObject, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationOneToManyStructList)) {
|
||||
return;
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationOneToManyStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (id != null) {
|
||||
BaseService<Object, Object> relationService = relationStruct.service;
|
||||
@@ -929,9 +1018,10 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
*
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param criteriaListMap 过滤参数。key为主表字段名称,value是过滤条件列表。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildManyToManyAggregationForDataList(
|
||||
List<M> resultList, Map<String, List<MyWhereCriteria>> criteriaListMap) {
|
||||
List<M> resultList, Map<String, List<MyWhereCriteria>> criteriaListMap, Set<String> ignoreFields) {
|
||||
if (CollectionUtils.isEmpty(this.relationManyToManyAggrStructList) || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
}
|
||||
@@ -939,6 +1029,9 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
criteriaListMap = new HashMap<>(this.relationManyToManyAggrStructList.size());
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationManyToManyAggrStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Set<Object> masterIdSet = resultList.stream()
|
||||
.map(obj -> ReflectUtil.getFieldValue(obj, relationStruct.masterIdField))
|
||||
.filter(Objects::nonNull)
|
||||
@@ -1000,9 +1093,10 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
*
|
||||
* @param dataObject 实体对象。
|
||||
* @param criteriaListMap 过滤参数。key为主表字段名称,value是过滤条件列表。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private <T extends M> void buildManyToManyAggregationForData(
|
||||
T dataObject, Map<String, List<MyWhereCriteria>> criteriaListMap) {
|
||||
T dataObject, Map<String, List<MyWhereCriteria>> criteriaListMap, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationManyToManyAggrStructList)) {
|
||||
return;
|
||||
}
|
||||
@@ -1010,28 +1104,30 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
criteriaListMap = new HashMap<>(relationManyToManyAggrStructList.size());
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationManyToManyAggrStructList) {
|
||||
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (masterIdValue == null) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
BasicAggregationRelationInfo basicRelationInfo =
|
||||
this.parseBasicAggregationRelationInfo(relationStruct, criteriaListMap);
|
||||
// 组装过滤条件
|
||||
String whereClause = this.makeManyToManyWhereClause(
|
||||
relationStruct, masterIdValue, basicRelationInfo, criteriaListMap);
|
||||
StringBuilder tableNames = new StringBuilder(64);
|
||||
tableNames.append(basicRelationInfo.relationTable);
|
||||
if (!basicRelationInfo.onlySelectRelationTable) {
|
||||
tableNames.append(", ").append(basicRelationInfo.slaveTable);
|
||||
}
|
||||
List<Map<String, Object>> aggregationMapList =
|
||||
mapper().getGroupedListByCondition(tableNames.toString(),
|
||||
basicRelationInfo.selectList, whereClause, basicRelationInfo.groupBy);
|
||||
// 将查询后的结果回填到主表数据中。
|
||||
if (CollectionUtils.isNotEmpty(aggregationMapList)) {
|
||||
Object value = aggregationMapList.get(0).get(AGGREGATED_VALUE);
|
||||
if (value != null) {
|
||||
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, value);
|
||||
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (masterIdValue != null) {
|
||||
BasicAggregationRelationInfo basicRelationInfo =
|
||||
this.parseBasicAggregationRelationInfo(relationStruct, criteriaListMap);
|
||||
// 组装过滤条件
|
||||
String whereClause = this.makeManyToManyWhereClause(
|
||||
relationStruct, masterIdValue, basicRelationInfo, criteriaListMap);
|
||||
StringBuilder tableNames = new StringBuilder(64);
|
||||
tableNames.append(basicRelationInfo.relationTable);
|
||||
if (!basicRelationInfo.onlySelectRelationTable) {
|
||||
tableNames.append(", ").append(basicRelationInfo.slaveTable);
|
||||
}
|
||||
List<Map<String, Object>> aggregationMapList =
|
||||
mapper().getGroupedListByCondition(tableNames.toString(),
|
||||
basicRelationInfo.selectList, whereClause, basicRelationInfo.groupBy);
|
||||
// 将查询后的结果回填到主表数据中。
|
||||
if (CollectionUtils.isNotEmpty(aggregationMapList)) {
|
||||
Object value = aggregationMapList.get(0).get(AGGREGATED_VALUE);
|
||||
if (value != null) {
|
||||
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1042,9 +1138,10 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
*
|
||||
* @param resultList 实体对象数据列表。
|
||||
* @param criteriaListMap 过滤参数。key为主表字段名称,value是过滤条件列表。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private void buildOneToManyAggregationForDataList(
|
||||
List<M> resultList, Map<String, List<MyWhereCriteria>> criteriaListMap) {
|
||||
List<M> resultList, Map<String, List<MyWhereCriteria>> criteriaListMap, Set<String> ignoreFields) {
|
||||
// 处理多一多场景下,根据主表的结果,进行从表聚合数据的计算。
|
||||
if (CollectionUtils.isEmpty(this.relationOneToManyAggrStructList) || CollectionUtils.isEmpty(resultList)) {
|
||||
return;
|
||||
@@ -1053,6 +1150,9 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
criteriaListMap = new HashMap<>(relationOneToManyAggrStructList.size());
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationOneToManyAggrStructList) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
Set<Object> masterIdSet = resultList.stream()
|
||||
.map(obj -> ReflectUtil.getFieldValue(obj, relationStruct.masterIdField))
|
||||
.filter(Objects::nonNull)
|
||||
@@ -1098,9 +1198,10 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
*
|
||||
* @param dataObject 实体对象。
|
||||
* @param criteriaListMap 过滤参数。key为主表字段名称,value是过滤条件列表。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
private <T extends M> void buildOneToManyAggregationForData(
|
||||
T dataObject, Map<String, List<MyWhereCriteria>> criteriaListMap) {
|
||||
T dataObject, Map<String, List<MyWhereCriteria>> criteriaListMap, Set<String> ignoreFields) {
|
||||
if (dataObject == null || CollectionUtils.isEmpty(this.relationOneToManyAggrStructList)) {
|
||||
return;
|
||||
}
|
||||
@@ -1108,29 +1209,31 @@ public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||
criteriaListMap = new HashMap<>(relationOneToManyAggrStructList.size());
|
||||
}
|
||||
for (RelationStruct relationStruct : this.relationOneToManyAggrStructList) {
|
||||
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (masterIdValue == null) {
|
||||
if (ignoreFields != null && ignoreFields.contains(relationStruct.relationField.getName())) {
|
||||
continue;
|
||||
}
|
||||
RelationOneToManyAggregation relation = relationStruct.relationOneToManyAggregation;
|
||||
String slaveTable = MyModelUtil.mapToTableName(relation.slaveModelClass());
|
||||
String slaveColumnName =
|
||||
MyModelUtil.mapToColumnName(relation.slaveIdField(), relation.slaveModelClass());
|
||||
Tuple2<String, String> selectAndGroupByTuple = makeSelectListAndGroupByClause(
|
||||
slaveTable, slaveColumnName, relation.slaveModelClass(),
|
||||
slaveTable, relation.aggregationField(), relation.aggregationType());
|
||||
String selectList = selectAndGroupByTuple.getFirst();
|
||||
String groupBy = selectAndGroupByTuple.getSecond();
|
||||
String whereClause = this.makeOneToManyWhereClause(
|
||||
relationStruct, masterIdValue, slaveColumnName, criteriaListMap);
|
||||
// 获取分组聚合计算结果
|
||||
List<Map<String, Object>> aggregationMapList =
|
||||
mapper().getGroupedListByCondition(slaveTable, selectList, whereClause, groupBy);
|
||||
// 将计算结果回填到主表关联字段
|
||||
if (CollectionUtils.isNotEmpty(aggregationMapList)) {
|
||||
Object value = aggregationMapList.get(0).get(AGGREGATED_VALUE);
|
||||
if (value != null) {
|
||||
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, value);
|
||||
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||
if (masterIdValue != null) {
|
||||
RelationOneToManyAggregation relation = relationStruct.relationOneToManyAggregation;
|
||||
String slaveTable = MyModelUtil.mapToTableName(relation.slaveModelClass());
|
||||
String slaveColumnName =
|
||||
MyModelUtil.mapToColumnName(relation.slaveIdField(), relation.slaveModelClass());
|
||||
Tuple2<String, String> selectAndGroupByTuple = makeSelectListAndGroupByClause(
|
||||
slaveTable, slaveColumnName, relation.slaveModelClass(),
|
||||
slaveTable, relation.aggregationField(), relation.aggregationType());
|
||||
String selectList = selectAndGroupByTuple.getFirst();
|
||||
String groupBy = selectAndGroupByTuple.getSecond();
|
||||
String whereClause = this.makeOneToManyWhereClause(
|
||||
relationStruct, masterIdValue, slaveColumnName, criteriaListMap);
|
||||
// 获取分组聚合计算结果
|
||||
List<Map<String, Object>> aggregationMapList =
|
||||
mapper().getGroupedListByCondition(slaveTable, selectList, whereClause, groupBy);
|
||||
// 将计算结果回填到主表关联字段
|
||||
if (CollectionUtils.isNotEmpty(aggregationMapList)) {
|
||||
Object value = aggregationMapList.get(0).get(AGGREGATED_VALUE);
|
||||
if (value != null) {
|
||||
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,6 +199,17 @@ public interface IBaseService<M, K> {
|
||||
*/
|
||||
void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam);
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据列表。包括本地和远程服务的一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, Set<String> ignoreFields);
|
||||
|
||||
/**
|
||||
* 该函数主要用于对查询结果的批量导出。不同于支持分页的列表查询,批量导出没有分页机制,
|
||||
* 因此在导出数据量较大的情况下,很容易给数据库的内存、CPU和IO带来较大的压力。而通过
|
||||
@@ -217,6 +228,26 @@ public interface IBaseService<M, K> {
|
||||
*/
|
||||
void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, int batchSize);
|
||||
|
||||
/**
|
||||
* 该函数主要用于对查询结果的批量导出。不同于支持分页的列表查询,批量导出没有分页机制,
|
||||
* 因此在导出数据量较大的情况下,很容易给数据库的内存、CPU和IO带来较大的压力。而通过
|
||||
* 我们的分批处理,可以极大的规避该问题的出现几率。调整batchSize的大小,也可以有效的
|
||||
* 改善运行效率。
|
||||
* 我们目前的处理机制是,先从主表取出所有符合条件的主表数据,这样可以避免分批处理时,
|
||||
* 后面几批数据,因为skip过多而带来的效率问题。因为是单表过滤,不会给数据库带来过大的压力。
|
||||
* 之后再在主表结果集数据上进行分批级联处理。
|
||||
* 集成所有与主表实体对象相关的关联数据列表。包括一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
*/
|
||||
void buildRelationForDataList(
|
||||
List<M> resultList, MyRelationParam relationParam, int batchSize, Set<String> ignoreFields);
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据对象。包括一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
@@ -228,6 +259,18 @@ public interface IBaseService<M, K> {
|
||||
*/
|
||||
<T extends M> void buildRelationForData(T dataObject, MyRelationParam relationParam);
|
||||
|
||||
/**
|
||||
* 集成所有与主表实体对象相关的关联数据对象。包括本地和远程服务的一对一、字典、一对多和多对多聚合运算等。
|
||||
* 也可以根据实际需求,单独调用该函数所包含的各个数据集成函数。
|
||||
* NOTE: 该方法内执行的SQL将禁用数据权限过滤。
|
||||
*
|
||||
* @param dataObject 主表实体对象。数据集成将直接作用于该对象。
|
||||
* @param relationParam 实体对象数据组装的参数构建器。
|
||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||
* @param <T> 实体对象类型。
|
||||
*/
|
||||
<T extends M> void buildRelationForData(T dataObject, MyRelationParam relationParam, Set<String> ignoreFields);
|
||||
|
||||
/**
|
||||
* 仅仅在spring boot 启动后的监听器事件中调用,缓存所有service的关联关系,加速后续的数据绑定效率。
|
||||
*/
|
||||
|
||||
@@ -71,7 +71,6 @@ public class MyRelationParam {
|
||||
.buildDict(true)
|
||||
.buildOneToOneWithDict(true)
|
||||
.buildRelationAggregation(true)
|
||||
.buildOneToMany(true)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,9 @@ public interface DataSourceResolver {
|
||||
/**
|
||||
* 动态解析方法。实现类可以根据当前的请求,或者上下文环境进行动态解析。
|
||||
*
|
||||
* @param arg 可选的入参。MyDataSourceResolver注解中的arg参数。
|
||||
* @param arg 可选的入参。MyDataSourceResolver注解中的arg参数。
|
||||
* @param methodArgs 被织入方法的所有参数。
|
||||
* @return 返回用于多数据源切换的类型值。DataSourceResolveAspect 切面方法会根据该返回值和配置信息,进行多数据源切换。
|
||||
*/
|
||||
int resolve(String arg);
|
||||
int resolve(String arg, Object[] methodArgs);
|
||||
}
|
||||
|
||||
@@ -1,214 +0,0 @@
|
||||
package com.orange.demo.common.core.util;
|
||||
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.sax.Excel07SaxReader;
|
||||
import com.orange.demo.common.core.constant.ApplicationConstant;
|
||||
import com.orange.demo.common.core.exception.MyRuntimeException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.csv.CSVFormat;
|
||||
import org.apache.commons.csv.CSVParser;
|
||||
import org.apache.commons.csv.CSVRecord;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 导入工具类,目前支持xlsx和csv两种类型。
|
||||
*
|
||||
* @author Jerry
|
||||
* @date 2020-09-24
|
||||
*/
|
||||
@Slf4j
|
||||
public class ImportUtil {
|
||||
|
||||
private static final String IMPORT_EXCEPTION_ERROR = "Failed to call ImportUtil.doImport";
|
||||
private static final String UNSUPPORT_FILE_EXT_ERROR = "不支持的导入文件类型!";
|
||||
/**
|
||||
* 同步导入方式。
|
||||
*
|
||||
* @param filename 导入文件名。
|
||||
* @return 导入数据列表。
|
||||
*/
|
||||
public static List<Map<String, Object>> doImport(String filename) {
|
||||
if (ApplicationConstant.XLSX_EXT.equals(FilenameUtils.getExtension(filename))) {
|
||||
try (ExcelReader reader = ExcelUtil.getReader(filename)) {
|
||||
return reader.readAll();
|
||||
}
|
||||
} else if (ApplicationConstant.CSV_EXT.equals(FilenameUtils.getExtension(filename))) {
|
||||
List<Map<String, Object>> resultList = new LinkedList<>();
|
||||
try (FileReader reader = new FileReader(filename)) {
|
||||
CSVParser parser = CSVFormat.DEFAULT.withFirstRecordAsHeader().parse(reader);
|
||||
Map<String, Integer> headerMap = parser.getHeaderMap();
|
||||
for (CSVRecord record : parser) {
|
||||
Map<String, Object> rowMap = new LinkedHashMap<>();
|
||||
for (final Map.Entry<String, Integer> header : headerMap.entrySet()) {
|
||||
int col = header.getValue();
|
||||
if (col < record.size()) {
|
||||
rowMap.put(header.getKey(), record.get(col));
|
||||
}
|
||||
}
|
||||
resultList.add(rowMap);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(IMPORT_EXCEPTION_ERROR, e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
throw new MyRuntimeException(UNSUPPORT_FILE_EXT_ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导入方式,即SAX导入方式。
|
||||
*
|
||||
* @param filename 导入文件名。
|
||||
* @param importer 异步导入处理接口。
|
||||
* @throws IOException 文件处理异常。
|
||||
*/
|
||||
public static <T> void doImport(String filename, BaseImporter<T> importer) throws IOException {
|
||||
if (ApplicationConstant.XLSX_EXT.equals(FilenameUtils.getExtension(filename))) {
|
||||
Excel07SaxReader reader = new MyExcel07SaxReader<>(importer);
|
||||
try (InputStream in = new FileInputStream(filename)) {
|
||||
reader.read(in, 0);
|
||||
}
|
||||
} else if (ApplicationConstant.CSV_EXT.equals(FilenameUtils.getExtension(filename))) {
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
||||
int rowIndex = 0;
|
||||
do {
|
||||
String rowData = reader.readLine();
|
||||
if (StringUtils.isBlank(rowData)) {
|
||||
importer.doImport(-1, null);
|
||||
break;
|
||||
}
|
||||
String[] dataArray = StringUtils.split(rowData, ",");
|
||||
importer.doImport(rowIndex++, Arrays.asList(dataArray));
|
||||
} while (!importer.doInterrupt());
|
||||
} catch (Exception e) {
|
||||
log.error(IMPORT_EXCEPTION_ERROR, e);
|
||||
}
|
||||
}
|
||||
throw new MyRuntimeException(UNSUPPORT_FILE_EXT_ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导入抽象类。
|
||||
*
|
||||
* @param <T> 导入数据对象类型。
|
||||
*/
|
||||
public abstract static class BaseImporter<T> {
|
||||
private final Class<T> beanType;
|
||||
private final List<T> batchRowList = new LinkedList<>();
|
||||
private final int batchSize;
|
||||
private final Map<String, String> headerColumnMap;
|
||||
private Field[] fieldArray = null;
|
||||
|
||||
public BaseImporter(int batchSize, Class<T> beanType, Map<String, String> headerColumnMap) {
|
||||
if (batchSize <= 0) {
|
||||
batchSize = 100;
|
||||
}
|
||||
this.batchSize = batchSize;
|
||||
this.beanType = beanType;
|
||||
this.headerColumnMap = headerColumnMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入操作执行函数。
|
||||
*
|
||||
* @param rowIndex 当前行号。
|
||||
* @param row 当前行数据列表对象。
|
||||
*/
|
||||
public void doImport(long rowIndex, List<Object> row) {
|
||||
if (row == null) {
|
||||
doProcess(batchRowList);
|
||||
doFinish();
|
||||
batchRowList.clear();
|
||||
return;
|
||||
}
|
||||
if (rowIndex <= 0) {
|
||||
fieldArray = new Field[row.size()];
|
||||
List<String> headerList = row.stream().map(Object::toString).collect(Collectors.toList());
|
||||
List<String> columnList = new ArrayList<>(row.size());
|
||||
for (String headerName : headerList) {
|
||||
String columnName = headerColumnMap.get(headerName);
|
||||
if (columnName != null) {
|
||||
columnList.add(columnName);
|
||||
}
|
||||
}
|
||||
columnList.stream()
|
||||
.map(columnName -> ReflectUtil.getField(beanType, columnName))
|
||||
.collect(Collectors.toList())
|
||||
.toArray(fieldArray);
|
||||
return;
|
||||
}
|
||||
T data;
|
||||
try {
|
||||
data = beanType.newInstance();
|
||||
for (int i = 0; i < row.size(); i++) {
|
||||
Object value = row.get(i);
|
||||
Field field = fieldArray[i];
|
||||
if (field != null) {
|
||||
ReflectUtil.setFieldValue(data, field, value);
|
||||
}
|
||||
}
|
||||
batchRowList.add(data);
|
||||
} catch (Exception e) {
|
||||
log.error(IMPORT_EXCEPTION_ERROR, e);
|
||||
}
|
||||
if (rowIndex % batchSize == 0) {
|
||||
doProcess(batchRowList);
|
||||
batchRowList.clear();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据处理进行中回调模板函数。
|
||||
*
|
||||
* @param batchRowList 一批数据行。
|
||||
*/
|
||||
public abstract void doProcess(List<T> batchRowList);
|
||||
|
||||
/**
|
||||
* 数据处理完毕回调模板函数。
|
||||
*/
|
||||
public abstract void doFinish();
|
||||
|
||||
/**
|
||||
* 数据处理终端标记模板函数。
|
||||
* @return 是否中断。true则中断后面的处理。
|
||||
*/
|
||||
public abstract boolean doInterrupt();
|
||||
}
|
||||
|
||||
static class MyExcel07SaxReader<T> extends Excel07SaxReader {
|
||||
private final BaseImporter<T> importer;
|
||||
|
||||
MyExcel07SaxReader(BaseImporter<T> importer) {
|
||||
super((sheetIndex, rowIndex, rowList) -> importer.doImport(rowIndex, rowList));
|
||||
this.importer = importer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endElement(String uri, String localName, String qName) {
|
||||
super.endElement(uri, localName, qName);
|
||||
if (importer.doInterrupt()) {
|
||||
throw new MyRuntimeException();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endDocument() {
|
||||
importer.doImport(-1, null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 私有构造函数,明确标识该常量类的作用。
|
||||
*/
|
||||
private ImportUtil() {
|
||||
}
|
||||
}
|
||||
@@ -239,7 +239,8 @@ public class MyModelUtil {
|
||||
continue;
|
||||
}
|
||||
Field dictMapField = ReflectUtil.getField(r.constantDictClass(), "DICT_MAP");
|
||||
Map<Object, String> dictMap = (Map<Object, String>) ReflectUtil.getFieldValue(thisClazz, dictMapField);
|
||||
Map<Object, String> dictMap =
|
||||
(Map<Object, String>) ReflectUtil.getFieldValue(r.constantDictClass(), dictMapField);
|
||||
Object id = ReflectUtil.getFieldValue(thisModel, r.masterIdField());
|
||||
if (id != null) {
|
||||
String name = dictMap.get(id);
|
||||
@@ -253,6 +254,48 @@ public class MyModelUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 主Model类型中,遍历所有包含RelationConstDict注解的字段,并将关联的静态字典中的数据,
|
||||
* 填充到thisModelList集合元素对象的被注解字段中。
|
||||
*
|
||||
* @param thisClazz 主对象的Class对象。
|
||||
* @param thisModelList 主对象列表。
|
||||
* @param <T> 主表对象类型。
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> void makeConstDictRelation(Class<T> thisClazz, List<T> thisModelList) {
|
||||
if (CollectionUtils.isEmpty(thisModelList)) {
|
||||
return;
|
||||
}
|
||||
Field[] fields = ReflectUtil.getFields(thisClazz);
|
||||
for (Field field : fields) {
|
||||
// 这里不做任何空值判断,从而让配置错误在调试期间即可抛出
|
||||
Field thisTargetField = ReflectUtil.getField(thisClazz, field.getName());
|
||||
RelationConstDict r = thisTargetField.getAnnotation(RelationConstDict.class);
|
||||
if (r == null) {
|
||||
continue;
|
||||
}
|
||||
Field dictMapField = ReflectUtil.getField(r.constantDictClass(), "DICT_MAP");
|
||||
Map<Object, String> dictMap =
|
||||
(Map<Object, String>) ReflectUtil.getFieldValue(r.constantDictClass(), dictMapField);
|
||||
for (T thisModel : thisModelList) {
|
||||
if (thisModel == null) {
|
||||
continue;
|
||||
}
|
||||
Object id = ReflectUtil.getFieldValue(thisModel, r.masterIdField());
|
||||
if (id != null) {
|
||||
String name = dictMap.get(id);
|
||||
if (name != null) {
|
||||
Map<String, Object> m = new HashMap<>(2);
|
||||
m.put("id", id);
|
||||
m.put("name", name);
|
||||
ReflectUtil.setFieldValue(thisModel, thisTargetField, m);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在主Model类型中,根据thisRelationField字段的RelationDict注解参数,将被关联对象thatModel中的数据,
|
||||
* 关联到thisModel对象的thisRelationField字段中。
|
||||
|
||||
@@ -33,7 +33,7 @@ public class RedisKeyUtil {
|
||||
* @param sessionId 会话Id。
|
||||
* @return 会话存储于Redis中的键值。
|
||||
*/
|
||||
public static String makeSessionIdKeyForRedis(String sessionId) {
|
||||
public static String makeSessionIdKey(String sessionId) {
|
||||
return "SESSIONID__" + sessionId;
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class RedisKeyUtil {
|
||||
* @param sessionId 会话Id。
|
||||
* @return 会话关联的权限数据存储于Redis中的键值。
|
||||
*/
|
||||
public static String makeSessionPermIdKeyForRedis(String sessionId) {
|
||||
public static String makeSessionPermIdKey(String sessionId) {
|
||||
return "PERM__" + sessionId;
|
||||
}
|
||||
|
||||
@@ -53,10 +53,20 @@ public class RedisKeyUtil {
|
||||
* @param sessionId 会话Id。
|
||||
* @return 会话关联的数据权限数据存储于Redis中的键值。
|
||||
*/
|
||||
public static String makeSessionDataPermIdKeyForRedis(String sessionId) {
|
||||
public static String makeSessionDataPermIdKey(String sessionId) {
|
||||
return "DATA_PERM__" + sessionId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算在线表对象缓存在Redis中的键值。
|
||||
*
|
||||
* @param tableId 在线表主键Id。
|
||||
* @return 会话关联的数据权限数据存储于Redis中的键值。
|
||||
*/
|
||||
public static String makeOnlineTableKey(Long tableId) {
|
||||
return "ONLINE_TABLE_" + tableId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 私有构造函数,明确标识该常量类的作用。
|
||||
*/
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<spring-boot.version>2.2.5.RELEASE</spring-boot.version>
|
||||
<spring-boot.version>2.3.10.RELEASE</spring-boot.version>
|
||||
<spring-platform.version>Cairo-SR8</spring-platform.version>
|
||||
<spring-boot-admin.version>2.2.2</spring-boot-admin.version>
|
||||
<spring-boot-admin.version>2.3.1</spring-boot-admin.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
@@ -22,19 +22,21 @@
|
||||
<commons-collections4.version>4.4</commons-collections4.version>
|
||||
<common-csv.version>1.8</common-csv.version>
|
||||
<poi-ooxml.version>4.1.2</poi-ooxml.version>
|
||||
<hutool.version>5.4.5</hutool.version>
|
||||
<hutool.version>5.6.4</hutool.version>
|
||||
<jjwt.version>0.9.1</jjwt.version>
|
||||
<fastjson.version>1.2.74</fastjson.version>
|
||||
<fastjson.version>1.2.76</fastjson.version>
|
||||
<bean.query.version>1.1.5</bean.query.version>
|
||||
<caffeine.version>2.8.1</caffeine.version>
|
||||
<mapstruct.version>1.3.1.Final</mapstruct.version>
|
||||
<disruptor.version>3.4.2</disruptor.version>
|
||||
<caffeine.version>3.0.2</caffeine.version>
|
||||
<mapstruct.version>1.4.2.Final</mapstruct.version>
|
||||
<lombok.version>1.18.20</lombok.version>
|
||||
<disruptor.version>3.4.3</disruptor.version>
|
||||
<hibernate-validator.version>6.2.0.Final</hibernate-validator.version>
|
||||
<!-- 数据库工具版本 -->
|
||||
<druid.version>1.1.22</druid.version>
|
||||
<druid.version>1.2.6</druid.version>
|
||||
<mybatis-mapper.version>2.1.5</mybatis-mapper.version>
|
||||
<mybatis-generator.version>1.3.7</mybatis-generator.version>
|
||||
<pagehelper.version>1.3.0</pagehelper.version>
|
||||
<redisson.version>3.12.3</redisson.version>
|
||||
<redisson.version>3.15.4</redisson.version>
|
||||
<qdox.version>2.0.0</qdox.version>
|
||||
</properties>
|
||||
|
||||
@@ -103,6 +105,12 @@
|
||||
<artifactId>spring-boot-admin-starter-client</artifactId>
|
||||
<version>${spring-boot-admin.version}</version>
|
||||
</dependency>
|
||||
<!-- api参数验证 -->
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>${hibernate-validator.version}</version>
|
||||
</dependency>
|
||||
<!-- mapstruct 对象映射 -->
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
@@ -153,4 +161,35 @@
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<target>${maven.compiler.target}</target>
|
||||
<source>${maven.compiler.source}</source>
|
||||
<encoding>UTF-8</encoding>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>${mapstruct.version}</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,836 @@
|
||||
|
||||
-- ----------------------------
|
||||
-- 请仅在下面的数据库链接中执行该脚本。
|
||||
-- 主数据源 [localhost:3306/zzdemo-single]
|
||||
-- ----------------------------
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- 系统用户表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_user`;
|
||||
CREATE TABLE `zz_sys_user` (
|
||||
`user_id` bigint(20) NOT NULL COMMENT '主键Id',
|
||||
`login_name` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '用户登录名称',
|
||||
`password` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '密码',
|
||||
`show_name` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '用户显示名称',
|
||||
`user_type` int(11) NOT NULL COMMENT '用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)',
|
||||
`head_image_url` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户头像的Url',
|
||||
`user_status` int(11) NOT NULL COMMENT '状态(0: 正常 1: 锁定)',
|
||||
`create_user_id` bigint(20) NOT NULL COMMENT '创建者Id',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user_id` bigint(20) NOT NULL COMMENT '更新者Id',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`deleted_flag` int(11) NOT NULL COMMENT '删除标记(1: 正常 -1: 已删除)',
|
||||
PRIMARY KEY (`user_id`) USING BTREE,
|
||||
UNIQUE KEY `uk_login_name` (`login_name`) USING BTREE,
|
||||
KEY `idx_status` (`user_status`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='系统用户表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 系统角色表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_role`;
|
||||
CREATE TABLE `zz_sys_role` (
|
||||
`role_id` bigint(20) NOT NULL COMMENT '主键Id',
|
||||
`role_name` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '角色名称',
|
||||
`create_user_id` bigint(20) NOT NULL COMMENT '创建者Id',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user_id` bigint(20) NOT NULL COMMENT '更新者Id',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`deleted_flag` int(11) NOT NULL COMMENT '逻辑删除标记(1: 正常 -1: 已删除)',
|
||||
PRIMARY KEY (`role_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='系统角色表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 用户与角色对应关系表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_user_role`;
|
||||
CREATE TABLE `zz_sys_user_role` (
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户Id',
|
||||
`role_id` bigint(20) NOT NULL COMMENT '角色Id',
|
||||
PRIMARY KEY (`user_id`,`role_id`) USING BTREE,
|
||||
KEY `idx_role_id` (`role_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='用户与角色对应关系表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 菜单和操作权限管理表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_menu`;
|
||||
CREATE TABLE `zz_sys_menu` (
|
||||
`menu_id` bigint(20) NOT NULL COMMENT '主键Id',
|
||||
`parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单Id,目录菜单的父菜单为null',
|
||||
`menu_name` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '菜单显示名称',
|
||||
`menu_type` int(11) NOT NULL COMMENT '(0: 目录 1: 菜单 2: 按钮 3: UI片段)',
|
||||
`form_router_name` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '前端表单路由名称,仅用于menu_type为1的菜单类型',
|
||||
`online_form_id` bigint(20) DEFAULT NULL COMMENT '在线表单主键Id',
|
||||
`online_menu_perm_type` int(11) DEFAULT NULL COMMENT '在线表单菜单的权限控制类型',
|
||||
`show_order` int(11) NOT NULL COMMENT '菜单显示顺序 (值越小,排序越靠前)',
|
||||
`icon` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '菜单图标',
|
||||
`create_user_id` bigint(20) NOT NULL COMMENT '创建者Id',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user_id` bigint(20) NOT NULL COMMENT '更新者Id',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`deleted_flag` int(11) NOT NULL COMMENT '逻辑删除标记(1: 正常 -1: 已删除)',
|
||||
PRIMARY KEY (`menu_id`) USING BTREE,
|
||||
KEY `idx_show_order` (`show_order`) USING BTREE,
|
||||
KEY `idx_parent_id` (`parent_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='菜单和操作权限管理表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 角色与菜单对应关系表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_role_menu`;
|
||||
CREATE TABLE `zz_sys_role_menu` (
|
||||
`role_id` bigint(20) NOT NULL COMMENT '角色Id',
|
||||
`menu_id` bigint(20) NOT NULL COMMENT '菜单Id',
|
||||
PRIMARY KEY (`role_id`,`menu_id`) USING BTREE,
|
||||
KEY `idx_menu_id` (`menu_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='角色与菜单对应关系表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 系统权限资源表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_perm_code`;
|
||||
CREATE TABLE `zz_sys_perm_code` (
|
||||
`perm_code_id` bigint(20) NOT NULL COMMENT '主键Id',
|
||||
`parent_id` bigint(20) DEFAULT NULL COMMENT '上级权限字Id',
|
||||
`perm_code` varchar(128) COLLATE utf8_bin NOT NULL COMMENT '权限字标识(一般为有含义的英文字符串)',
|
||||
`perm_code_type` int(11) NOT NULL COMMENT '类型(0: 表单 1: UI片段 2: 操作)',
|
||||
`show_name` varchar(128) COLLATE utf8_bin NOT NULL COMMENT '显示名称',
|
||||
`show_order` int(11) NOT NULL COMMENT '显示顺序(数值越小,越靠前)',
|
||||
`create_user_id` bigint(20) NOT NULL COMMENT '创建者Id',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user_id` bigint(20) NOT NULL COMMENT '更新者Id',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`deleted_flag` int(11) NOT NULL COMMENT '逻辑删除标记(1: 正常 -1: 已删除)',
|
||||
PRIMARY KEY (`perm_code_id`),
|
||||
UNIQUE KEY `idx_perm_code` (`perm_code`) USING BTREE,
|
||||
KEY `idx_parent_id` (`parent_id`) USING BTREE,
|
||||
KEY `idx_show_order` (`show_order`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='系统权限资源表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 菜单和权限关系表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_menu_perm_code`;
|
||||
CREATE TABLE `zz_sys_menu_perm_code` (
|
||||
`menu_id` bigint(20) NOT NULL COMMENT '关联菜单Id',
|
||||
`perm_code_id` bigint(20) NOT NULL COMMENT '关联权限字Id',
|
||||
PRIMARY KEY (`menu_id`,`perm_code_id`) USING BTREE,
|
||||
KEY `idx_perm_code_id` (`perm_code_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='菜单和权限关系表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 系统权限模块表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_perm_module`;
|
||||
CREATE TABLE `zz_sys_perm_module` (
|
||||
`module_id` bigint(20) NOT NULL COMMENT '权限模块id',
|
||||
`parent_id` bigint(20) DEFAULT 0 COMMENT '上级权限模块id',
|
||||
`module_name` varchar(64) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '权限模块名称',
|
||||
`module_type` int(11) NOT NULL COMMENT '模块类型(0: 普通模块 1: Controller模块)',
|
||||
`show_order` int(11) NOT NULL DEFAULT '0' COMMENT '权限模块在当前层级下的顺序,由小到大',
|
||||
`create_user_id` bigint(20) NOT NULL COMMENT '创建者Id',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user_id` bigint(20) NOT NULL COMMENT '更新者Id',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`deleted_flag` int(11) NOT NULL COMMENT '逻辑删除标记(1: 正常 -1: 已删除)',
|
||||
PRIMARY KEY (`module_id`) USING BTREE,
|
||||
KEY `idx_show_order` (`show_order`) USING BTREE,
|
||||
KEY `idx_parent_id` (`parent_id`) USING BTREE,
|
||||
KEY `idx_module_type` (`module_type`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='系统权限模块表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 系统权限表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_perm`;
|
||||
CREATE TABLE `zz_sys_perm` (
|
||||
`perm_id` bigint(20) NOT NULL COMMENT '权限id',
|
||||
`module_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '权限所在的权限模块id',
|
||||
`perm_name` varchar(64) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '权限名称',
|
||||
`url` varchar(128) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '关联的url',
|
||||
`show_order` int(11) NOT NULL DEFAULT '0' COMMENT '权限在当前模块下的顺序,由小到大',
|
||||
`create_user_id` bigint(20) NOT NULL COMMENT '创建者Id',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user_id` bigint(20) NOT NULL COMMENT '更新者Id',
|
||||
`update_time` datetime NOT NULL COMMENT '最后更新时间',
|
||||
`deleted_flag` int(11) NOT NULL COMMENT '逻辑删除标记(1: 正常 -1: 已删除)',
|
||||
PRIMARY KEY (`perm_id`) USING BTREE,
|
||||
KEY `idx_show_order` (`show_order`) USING BTREE,
|
||||
KEY `idx_module_id` (`module_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='系统权限表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 系统权限字和权限资源关联表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_perm_code_perm`;
|
||||
CREATE TABLE `zz_sys_perm_code_perm` (
|
||||
`perm_code_id` bigint(20) NOT NULL COMMENT '权限字Id',
|
||||
`perm_id` bigint(20) NOT NULL COMMENT '权限id',
|
||||
PRIMARY KEY (`perm_code_id`,`perm_id`),
|
||||
KEY `idx_perm_id` (`perm_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='系统权限字和权限资源关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 权限资源白名单表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `zz_sys_perm_whitelist`;
|
||||
CREATE TABLE `zz_sys_perm_whitelist` (
|
||||
`perm_url` varchar(512) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '权限资源的url',
|
||||
`module_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '权限资源所属模块名字(通常是Controller的名字)',
|
||||
`perm_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '权限的名称',
|
||||
PRIMARY KEY (`perm_url`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='权限资源白名单表(认证用户均可访问的url资源)';
|
||||
|
||||
-- ----------------------------
|
||||
-- 管理员账号数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_user` VALUES(1401541697321570305,'admin','$2a$10$m6n/ZGA9yOLJegQK1erXee4oy0UCm.aIa/LIljjy1iXH1z/22ugmi','管理员',0,'CHANGE TO YOUR HEAD IMAGE URL!!!',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部菜单数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501179121664,NULL,'系统管理',0,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501183315968,1309065501179121664,'用户管理',1,'formSysUser',NULL,NULL,100,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181746,1309065501183315968,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181747,1309065501183315968,'新增',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181748,1309065501183315968,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181749,1309065501183315968,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181750,1309065501183315968,'重置密码',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181751,1309065501183315968,'权限详情',3,NULL,NULL,NULL,6,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501183315969,1309065501179121664,'角色管理',1,'formSysRole',NULL,NULL,110,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181760,1309065501183315969,'角色管理',2,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181761,1309065501183315969,'用户授权',2,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181762,1401541697313181760,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181763,1401541697313181760,'新增',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181764,1401541697313181760,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181765,1401541697313181760,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181766,1401541697313181760,'权限详情',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181767,1401541697313181761,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181768,1401541697313181761,'授权用户',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181769,1401541697313181761,'移除用户',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501183315970,1309065501179121664,'菜单管理',1,'formSysMenu',NULL,NULL,120,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181780,1309065501183315970,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181781,1309065501183315970,'新增',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181782,1309065501183315970,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181783,1309065501183315970,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181784,1309065501183315970,'权限详情',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501183315971,1309065501179121664,'权限字管理',1,'formSysPermCode',NULL,NULL,125,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181792,1309065501183315971,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181793,1309065501183315971,'新增',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181794,1309065501183315971,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181795,1309065501183315971,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181796,1309065501183315971,'权限详情',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501183315972,1309065501179121664,'权限管理',1,'formSysPerm',NULL,NULL,130,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181804,1309065501183315972,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181805,1309065501183315972,'新增模块',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181806,1309065501183315972,'编辑模块',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181807,1309065501183315972,'删除模块',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181808,1309065501183315972,'新增权限',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181809,1309065501183315972,'编辑权限',3,NULL,NULL,NULL,6,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181810,1309065501183315972,'删除权限',3,NULL,NULL,NULL,7,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181811,1309065501183315972,'权限详情',3,NULL,NULL,NULL,8,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309065501183315973,1309065501179121664,'字典管理',1,'formSysDict',NULL,NULL,135,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181822,1309065501183315973,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181823,1309065501183315973,'新增',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181824,1309065501183315973,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181825,1309065501183315973,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181826,1309065501183315973,'同步缓存',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149272268083200,NULL,'业务管理',0,NULL,NULL,NULL,10,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149323312762880,NULL,'统计管理',0,NULL,NULL,NULL,20,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149401033216000,1309149272268083200,'校区管理',1,'formSchool',NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181836,1309149401033216000,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181837,1309149401033216000,'新建',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181838,1309149401033216000,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181839,1309149401033216000,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149467043172352,1309149272268083200,'学生管理',1,'formStudent',NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181841,1309149467043172352,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181842,1309149467043172352,'新建',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181843,1309149467043172352,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181844,1309149467043172352,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149536341463040,1309149272268083200,'课程管理',1,'formCourse',NULL,NULL,10,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181846,1309149536341463040,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181847,1309149536341463040,'新建',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181848,1309149536341463040,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181849,1309149536341463040,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149599981637632,1309149272268083200,'班级管理',1,'formClass',NULL,NULL,15,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181851,1309149599981637632,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181852,1309149599981637632,'设置班级课程',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181853,1309149599981637632,'编辑',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181854,1309149599981637632,'删除',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181855,1309149599981637632,'移除',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181856,1309149599981637632,'移除',3,NULL,NULL,NULL,6,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181857,1309149599981637632,'设置班级学生',3,NULL,NULL,NULL,7,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181858,1309149599981637632,'新建',3,NULL,NULL,NULL,8,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149688699555840,1309149323312762880,'课程统计',1,'formCourseStats',NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181860,1309149688699555840,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1309149754092949504,1309149323312762880,'学生行为统计',1,'formStudentActionStats',NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181862,1309149754092949504,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181863,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181864,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,3,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181865,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,4,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181866,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,5,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181867,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,6,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697313181868,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,7,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697317376000,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,8,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697317376001,1309149754092949504,'学生行为详情',3,NULL,NULL,NULL,9,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1381236994243301376,1309065501179121664,'在线用户',1,'formSysLoginUser',NULL,NULL,145,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697317376003,1381236994243301376,'显示',3,NULL,NULL,NULL,1,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_menu` VALUES(1401541697317376004,1381236994243301376,'强制下线',3,NULL,NULL,NULL,2,NULL,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部权限字数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987421,1401541697308987419,'formCreateCourse:formCreateCourse:add',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987415,1401541697308987414,'formEditStudent:formEditStudent',1,'编辑学生',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987406,1401541697308987405,'formStudent:formStudent',1,'学生管理',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181758,1401541697313181753,'formSysUser:fragmentSysUser:listSysUserPermDetail',2,'权限详情',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987394,1401541697308987393,'formSchool:formSchool:formCreateSchool',2,'新建',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181725,NULL,'formSetClassStudent',0,'设置班级学生',140,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181812,NULL,'formSysPerm',0,'权限管理',10800,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181798,1401541697313181797,'formSysPermCode:fragmentSysPermCode',1,'权限字管理',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987396,1401541697308987393,'formSchool:formSchool:delete',2,'删除',20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987412,1401541697308987411,'formCreateStudent:formCreateStudent:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181698,NULL,'formCourse',0,'课程管理',80,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697317376005,NULL,'formSysLoginUser',0,'在线用户',11200,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181829,1401541697313181828,'formSysDict:fragmentSysDict:add',2,'新增',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181743,1401541697313181736,'formClass:formClass:formCreateClass',2,'新建',60,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987402,1401541697308987401,'formEditSchool:formEditSchool',1,'编辑校区',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987401,NULL,'formEditSchool',0,'编辑校区',20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181721,NULL,'formEditClass',0,'编辑班级',130,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987420,1401541697308987419,'formCreateCourse:formCreateCourse:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181736,1401541697313181735,'formClass:formClass',1,'班级管理',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181754,1401541697313181753,'formSysUser:fragmentSysUser:add',2,'新增',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181723,1401541697313181722,'formEditClass:formEditClass:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987422,NULL,'formEditCourse',0,'编辑课程',70,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181726,1401541697313181725,'formSetClassStudent:formSetClassStudent',1,'设置班级学生',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181712,1401541697313181706,'formStudentActionStats:formStudentActionStats:formDoCourseDetail',2,'学生行为详情',50,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181732,1401541697313181731,'formEditClassCourseOrder:formEditClassCourseOrder',1,'编辑课程顺序',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181714,1401541697313181706,'formStudentActionStats:formStudentActionStats:formRfreshDetail',2,'学生行为详情',70,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181752,NULL,'formSysUser',0,'用户管理',10000,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987400,1401541697308987398,'formCreateSchool:formCreateSchool:add',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181800,1401541697313181798,'formSysPermCode:fragmentSysPermCode:update',2,'编辑',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181741,1401541697313181736,'formClass:formClass:deleteClassStudent',2,'移除',40,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987393,1401541697308987392,'formSchool:formSchool',1,'校区管理',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987397,NULL,'formCreateSchool',0,'新建校区',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181735,NULL,'formClass',0,'班级管理',170,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181814,1401541697313181813,'formSysPerm:fragmentSysPerm:addPermModule',2,'新增模块',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987404,1401541697308987402,'formEditSchool:formEditSchool:update',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181740,1401541697313181736,'formClass:formClass:deleteClassCourse',2,'移除',30,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181720,1401541697313181718,'formCreateClass:formCreateClass:add',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181708,1401541697313181706,'formStudentActionStats:formStudentActionStats:formBuyVideoDetail',2,'学生行为详情',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987405,NULL,'formStudent',0,'学生管理',30,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987423,1401541697308987422,'formEditCourse:formEditCourse',1,'编辑课程',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181802,1401541697313181798,'formSysPermCode:fragmentSysPermCode:listSysPermCodePermDetail',2,'权限详情',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987414,NULL,'formEditStudent',0,'编辑学生',50,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181828,1401541697313181827,'formSysDict:fragmentSysDict',1,'字典管理',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181719,1401541697313181718,'formCreateClass:formCreateClass:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181755,1401541697313181753,'formSysUser:fragmentSysUser:update',2,'编辑',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181757,1401541697313181753,'formSysUser:fragmentSysUser:resetPassword',2,'重置密码',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181827,NULL,'formSysDict',0,'字典管理',10900,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181788,1401541697313181786,'formSysMenu:fragmentSysMenu:update',2,'编辑',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987419,1401541697308987418,'formCreateCourse:formCreateCourse',1,'新建课程',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181817,1401541697313181813,'formSysPerm:fragmentSysPerm:addPerm',2,'新增权限',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987399,1401541697308987398,'formCreateSchool:formCreateSchool:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181816,1401541697313181813,'formSysPerm:fragmentSysPerm:deletePermModule',2,'删除模块',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181820,1401541697313181813,'formSysPerm:fragmentSysPerm:listSysPermPermDetail',2,'权限详情',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181733,1401541697313181732,'formEditClassCourseOrder:formEditClassCourseOrder:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181702,1401541697313181699,'formCourse:formCourse:delete',2,'删除',20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181707,1401541697313181706,'formStudentActionStats:formStudentActionStats:formBuyCourseDetail',2,'学生行为详情',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181734,1401541697313181732,'formEditClassCourseOrder:formEditClassCourseOrder:updateClassCourse',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181776,1401541697313181771,'formSysRole:fragmentSysRole:listSysRolePermDetail',2,'权限详情',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181787,1401541697313181786,'formSysMenu:fragmentSysMenu:add',2,'新增',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181801,1401541697313181798,'formSysPermCode:fragmentSysPermCode:delete',2,'删除',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181730,1401541697313181729,'formSetClassCourse:formSetClassCourse:addClassCourse',2,'添加',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181729,1401541697313181728,'formSetClassCourse:formSetClassCourse',1,'设置班级课程',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181717,NULL,'formCreateClass',0,'新建班级',120,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181727,1401541697313181726,'formSetClassStudent:formSetClassStudent:addClassStudent',2,'添加',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987411,1401541697308987410,'formCreateStudent:formCreateStudent',1,'新建学生',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697317376006,1401541697317376005,'formSysLoginUser:fragmentLoginUser',1,'在线用户',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987403,1401541697308987402,'formEditSchool:formEditSchool:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181703,NULL,'formCourseStats',0,'课程统计',90,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181716,1401541697313181715,'formStudentActionDetail:formStudentActionDetail',1,'学生行为详情',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181785,NULL,'formSysMenu',0,'菜单管理',10600,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181704,1401541697313181703,'formCourseStats:formCourseStats',1,'课程统计',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181790,1401541697313181786,'formSysMenu:fragmentSysMenu:listSysMenuPermDetail',2,'权限详情',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987418,NULL,'formCreateCourse',0,'新建课程',60,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181709,1401541697313181706,'formStudentActionStats:formStudentActionStats:formBuyFlowerDetail',2,'学生行为详情',20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181775,1401541697313181771,'formSysRole:fragmentSysRole:delete',2,'删除',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987407,1401541697308987406,'formStudent:formStudent:formCreateStudent',2,'新建',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181797,NULL,'formSysPermCode',0,'权限字管理',10700,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987408,1401541697308987406,'formStudent:formStudent:formEditStudent',2,'编辑',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181777,1401541697313181772,'formSysRole:fragmentSysRoleUser:addUserRole',2,'授权用户',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181815,1401541697313181813,'formSysPerm:fragmentSysPerm:updatePermModule',2,'编辑模块',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987395,1401541697308987393,'formSchool:formSchool:formEditSchool',2,'编辑',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181728,NULL,'formSetClassCourse',0,'设置班级课程',150,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181770,NULL,'formSysRole',0,'角色管理',10200,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181718,1401541697313181717,'formCreateClass:formCreateClass',1,'新建班级',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181697,1401541697308987423,'formEditCourse:formEditCourse:update',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181831,1401541697313181828,'formSysDict:fragmentSysDict:delete',2,'删除',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181715,NULL,'formStudentActionDetail',0,'学生行为详情',110,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181737,1401541697313181736,'formClass:formClass:formSetClassCourse',2,'设置班级课程',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181701,1401541697313181699,'formCourse:formCourse:formEditCourse',2,'编辑',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181739,1401541697313181736,'formClass:formClass:delete',2,'删除',20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181731,NULL,'formEditClassCourseOrder',0,'编辑课程顺序',160,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987410,NULL,'formCreateStudent',0,'新建学生',40,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987398,1401541697308987397,'formCreateSchool:formCreateSchool',1,'新建校区',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987417,1401541697308987415,'formEditStudent:formEditStudent:update',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181832,1401541697313181828,'formSysDict:fragmentSysDict:reloadCache',2,'同步缓存',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181799,1401541697313181798,'formSysPermCode:fragmentSysPermCode:add',2,'新增',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181819,1401541697313181813,'formSysPerm:fragmentSysPerm:deletePerm',2,'删除权限',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181713,1401541697313181706,'formStudentActionStats:formStudentActionStats:formWatchVideoDetail',2,'学生行为详情',60,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181771,1401541697313181770,'formSysRole:fragmentSysRole',1,'角色管理',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181818,1401541697313181813,'formSysPerm:fragmentSysPerm:updatePerm',2,'编辑权限',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697317376007,1401541697317376006,'formSysLoginUser:fragmentLoginUser:delete',2,'强制下线',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181753,1401541697313181752,'formSysUser:fragmentSysUser',1,'用户管理',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181724,1401541697313181722,'formEditClass:formEditClass:update',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181700,1401541697313181699,'formCourse:formCourse:formCreateCourse',2,'新建',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181789,1401541697313181786,'formSysMenu:fragmentSysMenu:delete',2,'删除',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181778,1401541697313181772,'formSysRole:fragmentSysRoleUser:deleteUserRole',2,'移除用户',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987416,1401541697308987415,'formEditStudent:formEditStudent:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181696,1401541697308987423,'formEditCourse:formEditCourse:cancel',2,'取消',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987392,NULL,'formSchool',0,'校区管理',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181699,1401541697313181698,'formCourse:formCourse',1,'课程管理',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181710,1401541697313181706,'formStudentActionStats:formStudentActionStats:formBuyPaperDetail',2,'学生行为详情',30,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181706,1401541697313181705,'formStudentActionStats:formStudentActionStats',1,'学生行为统计',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181722,1401541697313181721,'formEditClass:formEditClass',1,'编辑班级',0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181711,1401541697313181706,'formStudentActionStats:formStudentActionStats:formBuyCoinDetail',2,'学生行为详情',40,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181756,1401541697313181753,'formSysUser:fragmentSysUser:delete',2,'删除',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181786,1401541697313181785,'formSysMenu:fragmentSysMenu',1,'菜单管理',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181830,1401541697313181828,'formSysDict:fragmentSysDict:update',2,'编辑',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987409,1401541697308987406,'formStudent:formStudent:delete',2,'删除',20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181813,1401541697313181812,'formSysPerm:fragmentSysPerm',1,'权限管理',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181772,1401541697313181770,'formSysRole:fragmentSysRoleUser',1,'用户授权',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181773,1401541697313181771,'formSysRole:fragmentSysRole:add',2,'新增',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181774,1401541697313181771,'formSysRole:fragmentSysRole:update',2,'编辑',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697308987413,1401541697308987411,'formCreateStudent:formCreateStudent:add',2,'保存',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181738,1401541697313181736,'formClass:formClass:formEditClass',2,'编辑',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181742,1401541697313181736,'formClass:formClass:formSetClassStudent',2,'设置班级学生',50,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_code` VALUES(1401541697313181705,NULL,'formStudentActionStats',0,'学生行为统计',100,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部菜单和权限字关系数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181746,1401541697313181753);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181747,1401541697313181754);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181748,1401541697313181755);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181749,1401541697313181756);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181750,1401541697313181757);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181751,1401541697313181758);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181762,1401541697313181771);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181767,1401541697313181772);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181763,1401541697313181773);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181764,1401541697313181774);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181765,1401541697313181775);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181768,1401541697313181777);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181769,1401541697313181778);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181766,1401541697313181776);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181780,1401541697313181786);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181782,1401541697313181788);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181781,1401541697313181787);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181783,1401541697313181789);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181784,1401541697313181790);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181792,1401541697313181798);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181793,1401541697313181799);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181794,1401541697313181800);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181795,1401541697313181801);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181796,1401541697313181802);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181804,1401541697313181813);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181805,1401541697313181814);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181806,1401541697313181815);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181807,1401541697313181816);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181808,1401541697313181817);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181809,1401541697313181818);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181810,1401541697313181819);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181811,1401541697313181820);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1309065501183315973,1401541697313181828);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1309065501183315973,1401541697313181829);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1309065501183315973,1401541697313181830);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1309065501183315973,1401541697313181831);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1309065501183315973,1401541697313181832);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181822,1401541697313181828);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181823,1401541697313181829);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181824,1401541697313181830);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181825,1401541697313181831);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181826,1401541697313181832);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181836,1401541697308987393);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181837,1401541697308987394);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181837,1401541697308987397);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181837,1401541697308987398);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181837,1401541697308987399);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181837,1401541697308987400);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181838,1401541697308987395);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181838,1401541697308987401);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181838,1401541697308987402);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181838,1401541697308987403);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181838,1401541697308987404);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181839,1401541697308987396);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181841,1401541697308987406);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181842,1401541697308987407);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181842,1401541697308987410);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181842,1401541697308987411);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181842,1401541697308987412);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181842,1401541697308987413);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181843,1401541697308987408);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181843,1401541697308987414);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181843,1401541697308987415);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181843,1401541697308987416);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181843,1401541697308987417);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181844,1401541697308987409);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181846,1401541697313181699);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181847,1401541697313181700);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181847,1401541697308987418);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181847,1401541697308987419);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181847,1401541697308987420);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181847,1401541697308987421);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181848,1401541697313181701);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181848,1401541697308987422);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181848,1401541697308987423);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181848,1401541697313181696);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181848,1401541697313181697);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181849,1401541697313181702);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181851,1401541697313181736);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181852,1401541697313181737);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181852,1401541697313181728);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181852,1401541697313181729);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181852,1401541697313181730);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181853,1401541697313181738);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181853,1401541697313181721);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181853,1401541697313181722);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181853,1401541697313181723);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181853,1401541697313181724);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181854,1401541697313181739);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181855,1401541697313181740);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181856,1401541697313181741);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181857,1401541697313181742);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181857,1401541697313181725);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181857,1401541697313181726);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181857,1401541697313181727);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181858,1401541697313181743);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181858,1401541697313181717);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181858,1401541697313181718);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181858,1401541697313181719);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181858,1401541697313181720);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181860,1401541697313181704);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181862,1401541697313181706);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181863,1401541697313181707);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181863,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181863,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181864,1401541697313181708);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181864,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181864,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181865,1401541697313181709);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181865,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181865,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181866,1401541697313181710);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181866,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181866,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181867,1401541697313181711);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181867,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181867,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181868,1401541697313181712);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181868,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697313181868,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376000,1401541697313181713);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376000,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376000,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376001,1401541697313181714);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376001,1401541697313181715);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376001,1401541697313181716);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376003,1401541697317376006);
|
||||
INSERT INTO `zz_sys_menu_perm_code` VALUES(1401541697317376004,1401541697317376007);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部权限资源模块数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1309065501191704577,NULL,'缺省分组',0,3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1309065501191704576,NULL,'系统配置',0,2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1309065501174927363,NULL,'用户权限',0,1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015991,1309065501191704576,'字典管理',0,0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015872,1309065501191704577,'课程数据',1,0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015882,1309065501191704577,'校区数据',1,5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015890,1309065501191704577,'学生数据',1,10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015898,1309065501174927363,'用户管理',1,0,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015910,1309065501191704577,'班级数据',1,15,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015928,1309065501191704577,'课程统计',1,20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015934,1309065501191704577,'学生行为统计',1,25,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015940,1309065501191704577,'学生行为流水',1,30,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015948,1309065501174927363,'角色管理',1,10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015960,1309065501174927363,'菜单管理',1,15,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015968,1309065501174927363,'权限字管理',1,20,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015976,1309065501174927363,'权限模块管理',1,25,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015982,1309065501174927363,'权限资源管理',1,30,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015992,1401541697288015991,'行政区划',1,1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288015997,1401541697288015991,'年级',1,2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm_module` VALUES(1401541697288016002,1309065501191704576,'在线用户',1,5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部权限资源数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015873,1401541697288015872,'新增','/admin/app/course/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015874,1401541697288015872,'编辑','/admin/app/course/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015875,1401541697288015872,'删除','/admin/app/course/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015876,1401541697288015872,'显示列表','/admin/app/course/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015877,1401541697288015872,'导出','/admin/app/course/export',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015878,1401541697288015872,'详情','/admin/app/course/view',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015879,1401541697288015872,'打印','/admin/app/course/print',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015880,1401541697288015872,'课程数据文件上传','/admin/app/course/upload',8,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015881,1401541697288015872,'课程数据文件下载','/admin/app/course/download',9,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015883,1401541697288015882,'新增','/admin/app/schoolInfo/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015884,1401541697288015882,'编辑','/admin/app/schoolInfo/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015885,1401541697288015882,'删除','/admin/app/schoolInfo/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015886,1401541697288015882,'显示列表','/admin/app/schoolInfo/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015887,1401541697288015882,'导出','/admin/app/schoolInfo/export',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015888,1401541697288015882,'详情','/admin/app/schoolInfo/view',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015889,1401541697288015882,'打印','/admin/app/schoolInfo/print',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015891,1401541697288015890,'新增','/admin/app/student/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015892,1401541697288015890,'编辑','/admin/app/student/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015893,1401541697288015890,'删除','/admin/app/student/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015894,1401541697288015890,'显示列表','/admin/app/student/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015895,1401541697288015890,'导出','/admin/app/student/export',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015896,1401541697288015890,'详情','/admin/app/student/view',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015897,1401541697288015890,'打印','/admin/app/student/print',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015899,1401541697288015898,'新增','/admin/upms/sysUser/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015900,1401541697288015898,'编辑','/admin/upms/sysUser/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015901,1401541697288015898,'删除','/admin/upms/sysUser/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015902,1401541697288015898,'显示列表','/admin/upms/sysUser/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015903,1401541697288015898,'导出','/admin/upms/sysUser/export',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015904,1401541697288015898,'详情','/admin/upms/sysUser/view',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015905,1401541697288015898,'打印','/admin/upms/sysUser/print',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015906,1401541697288015898,'重置密码','/admin/upms/sysUser/resetPassword',8,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015907,1401541697288015898,'用户权限资源分配详情','/admin/upms/sysUser/listSysPermWithDetail',9,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015908,1401541697288015898,'用户权限字分配详情','/admin/upms/sysUser/listSysPermCodeWithDetail',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015909,1401541697288015898,'用户菜单分配详情','/admin/upms/sysUser/listSysMenuWithDetail',11,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015911,1401541697288015910,'新增','/admin/app/studentClass/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015912,1401541697288015910,'编辑','/admin/app/studentClass/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015913,1401541697288015910,'删除','/admin/app/studentClass/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015914,1401541697288015910,'显示列表','/admin/app/studentClass/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015915,1401541697288015910,'导出','/admin/app/studentClass/export',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015916,1401541697288015910,'详情','/admin/app/studentClass/view',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015917,1401541697288015910,'打印','/admin/app/studentClass/print',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015918,1401541697288015910,'新增班级课程','/admin/app/studentClass/addClassCourse',8,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015919,1401541697288015910,'详情班级课程','/admin/app/studentClass/viewClassCourse',9,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015920,1401541697288015910,'编辑班级课程','/admin/app/studentClass/updateClassCourse',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015921,1401541697288015910,'移除班级课程','/admin/app/studentClass/deleteClassCourse',11,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015922,1401541697288015910,'班级课程列表','/admin/app/studentClass/listClassCourse',12,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015923,1401541697288015910,'班级课程未关联列表','/admin/app/studentClass/listNotInClassCourse',13,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015924,1401541697288015910,'新增班级学生','/admin/app/studentClass/addClassStudent',14,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015925,1401541697288015910,'移除班级学生','/admin/app/studentClass/deleteClassStudent',15,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015926,1401541697288015910,'班级学生列表','/admin/app/studentClass/listClassStudent',16,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015927,1401541697288015910,'班级学生未关联列表','/admin/app/studentClass/listNotInClassStudent',17,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015929,1401541697288015928,'分组列表','/admin/app/courseTransStats/listWithGroup',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015930,1401541697288015928,'显示列表','/admin/app/courseTransStats/list',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015931,1401541697288015928,'导出','/admin/app/courseTransStats/export',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015932,1401541697288015928,'详情','/admin/app/courseTransStats/view',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015933,1401541697288015928,'打印','/admin/app/courseTransStats/print',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015935,1401541697288015934,'分组列表','/admin/app/studentActionStats/listWithGroup',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015936,1401541697288015934,'显示列表','/admin/app/studentActionStats/list',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015937,1401541697288015934,'导出','/admin/app/studentActionStats/export',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015938,1401541697288015934,'详情','/admin/app/studentActionStats/view',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015939,1401541697288015934,'打印','/admin/app/studentActionStats/print',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015941,1401541697288015940,'新增','/admin/app/studentActionTrans/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015942,1401541697288015940,'编辑','/admin/app/studentActionTrans/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015943,1401541697288015940,'删除','/admin/app/studentActionTrans/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015944,1401541697288015940,'显示列表','/admin/app/studentActionTrans/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015945,1401541697288015940,'导出','/admin/app/studentActionTrans/export',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015946,1401541697288015940,'详情','/admin/app/studentActionTrans/view',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015947,1401541697288015940,'打印','/admin/app/studentActionTrans/print',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015949,1401541697288015948,'新增','/admin/upms/sysRole/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015950,1401541697288015948,'编辑','/admin/upms/sysRole/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015951,1401541697288015948,'删除','/admin/upms/sysRole/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015952,1401541697288015948,'显示列表','/admin/upms/sysRole/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015953,1401541697288015948,'详情','/admin/upms/sysRole/view',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015954,1401541697288015948,'授权用户','/admin/upms/sysRole/addUserRole',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015955,1401541697288015948,'移除用户','/admin/upms/sysRole/deleteUserRole',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015956,1401541697288015948,'角色用户列表','/admin/upms/sysRole/listUserRole',8,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015957,1401541697288015948,'角色未添加用户列表','/admin/upms/sysRole/listNotInUserRole',9,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015958,1401541697288015948,'角色权限资源分配详情','/admin/upms/sysRole/listSysPermWithDetail',10,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015959,1401541697288015948,'角色权限字分配详情','/admin/upms/sysRole/listSysPermCodeWithDetail',11,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015961,1401541697288015960,'新增','/admin/upms/sysMenu/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015962,1401541697288015960,'删除','/admin/upms/sysMenu/delete',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015963,1401541697288015960,'编辑','/admin/upms/sysMenu/update',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015964,1401541697288015960,'显示列表','/admin/upms/sysMenu/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015965,1401541697288015960,'详情','/admin/upms/sysMenu/view',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015966,1401541697288015960,'菜单权限资源分配详情','/admin/upms/sysMenu/listSysPermWithDetail',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015967,1401541697288015960,'菜单用户分配详情','/admin/upms/sysMenu/listSysUserWithDetail',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015969,1401541697288015968,'新增','/admin/upms/sysPermCode/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015970,1401541697288015968,'编辑','/admin/upms/sysPermCode/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015971,1401541697288015968,'删除','/admin/upms/sysPermCode/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015972,1401541697288015968,'显示列表','/admin/upms/sysPermCode/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015973,1401541697288015968,'详情','/admin/upms/sysPermCode/view',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015974,1401541697288015968,'权限字用户分配详情','/admin/upms/sysPermCode/listSysUserWithDetail',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015975,1401541697288015968,'权限字角色分配详情','/admin/upms/sysPermCode/listSysRoleWithDetail',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015977,1401541697288015976,'新增','/admin/upms/sysPermModule/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015978,1401541697288015976,'编辑','/admin/upms/sysPermModule/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015979,1401541697288015976,'删除','/admin/upms/sysPermModule/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015980,1401541697288015976,'显示列表','/admin/upms/sysPermModule/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015981,1401541697288015976,'显示全部','/admin/upms/sysPermModule/listAll',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015983,1401541697288015982,'新增','/admin/upms/sysPerm/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015984,1401541697288015982,'编辑','/admin/upms/sysPerm/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015985,1401541697288015982,'删除','/admin/upms/sysPerm/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015986,1401541697288015982,'显示列表','/admin/upms/sysPerm/list',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015987,1401541697288015982,'详情','/admin/upms/sysPerm/view',5,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015988,1401541697288015982,'权限资源用户分配详情','/admin/upms/sysPerm/listSysUserWithDetail',6,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015989,1401541697288015982,'权限资源角色分配详情','/admin/upms/sysPerm/listSysRoleWithDetail',7,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015990,1401541697288015982,'权限资源菜单分配详情','/admin/upms/sysPerm/listSysMenuWithDetail',8,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015993,1401541697288015992,'新增','/admin/app/areaCode/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015994,1401541697288015992,'编辑','/admin/app/areaCode/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015995,1401541697288015992,'删除','/admin/app/areaCode/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015996,1401541697288015992,'同步缓存','/admin/app/areaCode/reloadCachedData',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015998,1401541697288015997,'新增','/admin/app/grade/add',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288015999,1401541697288015997,'编辑','/admin/app/grade/update',2,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288016000,1401541697288015997,'删除','/admin/app/grade/delete',3,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288016001,1401541697288015997,'同步缓存','/admin/app/grade/reloadCachedData',4,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288016003,1401541697288016002,'显示列表','/admin/upms/loginUser/list',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
INSERT INTO `zz_sys_perm` VALUES(1401541697288016004,1401541697288016002,'删除','/admin/upms/loginUser/delete',1,1401541697321570305,CURDATE(),1401541697321570305,CURDATE(),1);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部权限字和权限资源关系数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987393,1401541697288015886);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987396,1401541697288015885);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987400,1401541697288015883);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987402,1401541697288015888);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987404,1401541697288015884);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987406,1401541697288015894);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987409,1401541697288015893);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987413,1401541697288015891);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987415,1401541697288015896);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987417,1401541697288015892);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987421,1401541697288015880);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987421,1401541697288015873);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987423,1401541697288015881);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697308987423,1401541697288015878);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181697,1401541697288015880);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181697,1401541697288015874);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181699,1401541697288015881);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181699,1401541697288015876);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181702,1401541697288015875);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181704,1401541697288015929);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181704,1401541697288015930);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181706,1401541697288015935);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181706,1401541697288015936);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181716,1401541697288015944);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181720,1401541697288015911);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181722,1401541697288015916);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181724,1401541697288015912);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181726,1401541697288015927);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181727,1401541697288015924);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181729,1401541697288015923);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181730,1401541697288015918);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181732,1401541697288015919);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181734,1401541697288015920);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181736,1401541697288015914);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181736,1401541697288015922);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181736,1401541697288015926);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181739,1401541697288015913);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181740,1401541697288015921);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181741,1401541697288015925);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181753,1401541697288015902);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181753,1401541697288015903);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181754,1401541697288015899);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181754,1401541697288015952);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181755,1401541697288015904);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181755,1401541697288015900);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181755,1401541697288015905);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181755,1401541697288015952);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181756,1401541697288015901);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181757,1401541697288015906);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181758,1401541697288015909);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181758,1401541697288015908);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181758,1401541697288015907);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181771,1401541697288015952);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181773,1401541697288015949);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181773,1401541697288015964);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181774,1401541697288015953);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181774,1401541697288015950);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181774,1401541697288015964);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181776,1401541697288015959);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181776,1401541697288015958);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181775,1401541697288015951);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181772,1401541697288015956);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181777,1401541697288015954);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181777,1401541697288015957);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181778,1401541697288015955);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181786,1401541697288015964);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181787,1401541697288015961);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181787,1401541697288015972);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181788,1401541697288015965);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181788,1401541697288015963);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181788,1401541697288015972);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181789,1401541697288015962);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181790,1401541697288015966);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181790,1401541697288015967);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181798,1401541697288015972);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181799,1401541697288015969);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181799,1401541697288015981);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181800,1401541697288015973);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181800,1401541697288015970);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181800,1401541697288015981);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181801,1401541697288015971);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181802,1401541697288015974);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181802,1401541697288015975);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181813,1401541697288015980);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181813,1401541697288015981);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181813,1401541697288015986);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181814,1401541697288015977);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181815,1401541697288015978);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181816,1401541697288015979);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181817,1401541697288015983);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181818,1401541697288015987);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181818,1401541697288015984);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181819,1401541697288015985);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181820,1401541697288015988);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181820,1401541697288015989);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181820,1401541697288015990);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288015993);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288015994);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288015995);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288015996);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288015998);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288015999);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288016000);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697313181828,1401541697288016001);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697317376006,1401541697288016003);
|
||||
INSERT INTO `zz_sys_perm_code_perm` VALUES(1401541697317376007,1401541697288016004);
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 全部白名单权限资源数据
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/upms/login/getLoginInfo','登录模块','获取登录信息');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/areaCode/listDict','行政区划','行政区划列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/areaCode/listAll','行政区划','字典全部列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/areaCode/listDictByIds','行政区划','行政区划批量Id列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/areaCode/listDictByParentId','行政区划','行政区划过滤列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/course/listDict','课程数据','课程字典列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/course/listDictByIds','课程数据','课程字典批量Id列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/grade/listDict','年级','字典列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/grade/listAll','年级','字典全部列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/grade/listDictByIds','年级','字典批量Id列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/schoolInfo/listDict','校区数据','校区字典列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/schoolInfo/listDictByIds','校区数据','校区字典批量Id列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/student/listDict','学生数据','学生字典列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/app/student/listDictByIds','学生数据','学生字典批量Id列表');
|
||||
INSERT INTO `zz_sys_perm_whitelist` VALUES ('/admin/upms/login/doLogout','登录模块','退出登陆');
|
||||
COMMIT;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
Reference in New Issue
Block a user