|
|
|
|
@ -106,20 +106,20 @@ public class PlatformAdminController {
|
|
|
|
|
return writeResult(count, "删除成功", "删除失败");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@GetMapping("/school-admins")
|
|
|
|
|
@ApiOperation("平台超管-学校管理员列表")
|
|
|
|
|
public ResultEntity<PageInfo<Userinfo>> listSchoolAdmins(@RequestParam Integer index,
|
|
|
|
|
@RequestParam Integer size,
|
|
|
|
|
@RequestParam(required = false) String schoolId,
|
|
|
|
|
@RequestParam(required = false) String name,
|
|
|
|
|
@RequestParam(required = false) String username,
|
|
|
|
|
@RequestParam(required = false) String phone,
|
|
|
|
|
HttpServletRequest request) {
|
|
|
|
|
@GetMapping({"/teachers", "/school-admins"})
|
|
|
|
|
@ApiOperation("平台超管-教师列表")
|
|
|
|
|
public ResultEntity<PageInfo<Userinfo>> listTeachers(@RequestParam Integer index,
|
|
|
|
|
@RequestParam Integer size,
|
|
|
|
|
@RequestParam(required = false) String schoolId,
|
|
|
|
|
@RequestParam(required = false) String name,
|
|
|
|
|
@RequestParam(required = false) String username,
|
|
|
|
|
@RequestParam(required = false) String phone,
|
|
|
|
|
HttpServletRequest request) {
|
|
|
|
|
requirePlatformAdmin(request);
|
|
|
|
|
PageHelper.startPage(index, size);
|
|
|
|
|
UserinfoExample example = new UserinfoExample();
|
|
|
|
|
UserinfoExample.Criteria criteria = example.createCriteria();
|
|
|
|
|
criteria.andRoleEqualTo(2);
|
|
|
|
|
criteria.andRoleEqualTo(3);
|
|
|
|
|
if (StringUtils.isNotBlank(schoolId)) {
|
|
|
|
|
criteria.andSchoolIdEqualTo(schoolId);
|
|
|
|
|
}
|
|
|
|
|
@ -136,55 +136,56 @@ public class PlatformAdminController {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, "查询成功", new PageInfo<>(userinfoMapper.selectByExample(example)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@GetMapping("/school-admins/{id}")
|
|
|
|
|
@ApiOperation("平台超管-学校管理员详情")
|
|
|
|
|
public ResultEntity<Userinfo> getSchoolAdmin(@PathVariable String id, HttpServletRequest request) {
|
|
|
|
|
@GetMapping({"/teachers/{id}", "/school-admins/{id}"})
|
|
|
|
|
@ApiOperation("平台超管-教师详情")
|
|
|
|
|
public ResultEntity<Userinfo> getTeacher(@PathVariable String id, HttpServletRequest request) {
|
|
|
|
|
requirePlatformAdmin(request);
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, "查询成功", requireSchoolAdminUser(id));
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, "查询成功", requireTeacherUser(id));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/school-admins")
|
|
|
|
|
@ApiOperation("平台超管-新增学校管理员")
|
|
|
|
|
public ResultEntity addSchoolAdmin(@RequestBody Userinfo schoolAdmin, HttpServletRequest request) {
|
|
|
|
|
@PostMapping({"/teachers", "/school-admins"})
|
|
|
|
|
@ApiOperation("平台超管-新增教师")
|
|
|
|
|
public ResultEntity addTeacher(@RequestBody Userinfo teacher, HttpServletRequest request) {
|
|
|
|
|
requirePlatformAdmin(request);
|
|
|
|
|
if (StringUtils.isBlank(schoolAdmin.getUsername()) || StringUtils.isBlank(schoolAdmin.getName())) {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "学校管理员姓名和账号不能为空");
|
|
|
|
|
if (StringUtils.isBlank(teacher.getUsername()) || StringUtils.isBlank(teacher.getName())) {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "教师姓名和账号不能为空");
|
|
|
|
|
}
|
|
|
|
|
String schoolId = platformAdminService.requireSchoolId(schoolAdmin.getSchoolId());
|
|
|
|
|
String schoolId = platformAdminService.requireSchoolId(teacher.getSchoolId());
|
|
|
|
|
requireSchool(schoolId);
|
|
|
|
|
if (userInfoService.existsByUserName(schoolAdmin.getUsername())) {
|
|
|
|
|
if (userInfoService.existsByUserName(teacher.getUsername())) {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "账号已存在");
|
|
|
|
|
}
|
|
|
|
|
schoolAdmin.setUserId(UUID.randomUUID().toString());
|
|
|
|
|
if (StringUtils.isBlank(schoolAdmin.getPassword())) {
|
|
|
|
|
schoolAdmin.setPassword("123qwe");
|
|
|
|
|
teacher.setUserId(UUID.randomUUID().toString());
|
|
|
|
|
if (StringUtils.isBlank(teacher.getPassword())) {
|
|
|
|
|
teacher.setPassword("123qwe");
|
|
|
|
|
}
|
|
|
|
|
schoolAdmin.setCreateTime(new Date());
|
|
|
|
|
platformAdminService.prepareSchoolAdminForSave(schoolAdmin, schoolId);
|
|
|
|
|
int count = userinfoMapper.insertSelective(schoolAdmin);
|
|
|
|
|
teacher.setCreateTime(new Date());
|
|
|
|
|
platformAdminService.prepareTeacherForSave(teacher, schoolId);
|
|
|
|
|
int count = userinfoMapper.insertSelective(teacher);
|
|
|
|
|
return writeResult(count, "新增成功", "新增失败");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PutMapping("/school-admins/{id}")
|
|
|
|
|
@ApiOperation("平台超管-编辑学校管理员")
|
|
|
|
|
public ResultEntity updateSchoolAdmin(@PathVariable String id,
|
|
|
|
|
@RequestBody Userinfo schoolAdmin,
|
|
|
|
|
HttpServletRequest request) {
|
|
|
|
|
@PutMapping({"/teachers/{id}", "/school-admins/{id}"})
|
|
|
|
|
@ApiOperation("平台超管-编辑教师")
|
|
|
|
|
public ResultEntity updateTeacher(@PathVariable String id,
|
|
|
|
|
@RequestBody Userinfo teacher,
|
|
|
|
|
HttpServletRequest request) {
|
|
|
|
|
requirePlatformAdmin(request);
|
|
|
|
|
requireSchoolAdminUser(id);
|
|
|
|
|
String schoolId = platformAdminService.requireSchoolId(schoolAdmin.getSchoolId());
|
|
|
|
|
requireTeacherUser(id);
|
|
|
|
|
String schoolId = platformAdminService.requireSchoolId(teacher.getSchoolId());
|
|
|
|
|
requireSchool(schoolId);
|
|
|
|
|
schoolAdmin.setUserId(id);
|
|
|
|
|
platformAdminService.prepareSchoolAdminForSave(schoolAdmin, schoolId);
|
|
|
|
|
int count = userinfoMapper.updateByPrimaryKeySelective(schoolAdmin);
|
|
|
|
|
teacher.setUserId(id);
|
|
|
|
|
platformAdminService.prepareTeacherForSave(teacher, schoolId);
|
|
|
|
|
int count = userinfoMapper.updateByPrimaryKeySelective(teacher);
|
|
|
|
|
return writeResult(count, "编辑成功", "编辑失败");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@DeleteMapping("/school-admins/{id}")
|
|
|
|
|
@ApiOperation("平台超管-删除学校管理员")
|
|
|
|
|
public ResultEntity deleteSchoolAdmin(@PathVariable String id, HttpServletRequest request) {
|
|
|
|
|
@DeleteMapping({"/teachers/{id}", "/school-admins/{id}"})
|
|
|
|
|
@ApiOperation("平台超管-删除教师")
|
|
|
|
|
public ResultEntity deleteTeacher(@PathVariable String id, HttpServletRequest request) {
|
|
|
|
|
requirePlatformAdmin(request);
|
|
|
|
|
requireSchoolAdminUser(id);
|
|
|
|
|
requireTeacherUser(id);
|
|
|
|
|
platformAdminService.assertTeacherCanBeDeleted(countClassesCreatedBy(id));
|
|
|
|
|
int count = userinfoMapper.deleteByPrimaryKey(id);
|
|
|
|
|
return writeResult(count, "删除成功", "删除失败");
|
|
|
|
|
}
|
|
|
|
|
@ -205,17 +206,23 @@ public class PlatformAdminController {
|
|
|
|
|
return school;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Userinfo requireSchoolAdminUser(String userId) {
|
|
|
|
|
private Userinfo requireTeacherUser(String userId) {
|
|
|
|
|
if (StringUtils.isBlank(userId)) {
|
|
|
|
|
throw new IllegalArgumentException("用户ID不能为空");
|
|
|
|
|
}
|
|
|
|
|
Userinfo userinfo = userinfoMapper.selectByPrimaryKey(userId);
|
|
|
|
|
if (userinfo == null || !Integer.valueOf(2).equals(userinfo.getRole())) {
|
|
|
|
|
throw new IllegalArgumentException("学校管理员不存在");
|
|
|
|
|
if (userinfo == null || !Integer.valueOf(3).equals(userinfo.getRole())) {
|
|
|
|
|
throw new IllegalArgumentException("教师不存在");
|
|
|
|
|
}
|
|
|
|
|
return userinfo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private long countClassesCreatedBy(String teacherId) {
|
|
|
|
|
SchoolClassExample example = new SchoolClassExample();
|
|
|
|
|
example.createCriteria().andCreatedByEqualTo(teacherId);
|
|
|
|
|
return schoolClassMapper.countByExample(example);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ResultEntity writeResult(int count, String success, String fail) {
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, success);
|
|
|
|
|
|