SysController.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. package com.qmth.distributed.print.api;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.qmth.boot.api.annotation.Aac;
  4. import com.qmth.boot.api.annotation.BOOL;
  5. import com.qmth.boot.api.constant.ApiConstant;
  6. import com.qmth.boot.api.exception.ApiException;
  7. import com.qmth.distributed.print.business.bean.params.LoginParam;
  8. import com.qmth.distributed.print.business.bean.result.DictionaryResult;
  9. import com.qmth.distributed.print.business.bean.result.EditResult;
  10. import com.qmth.distributed.print.business.entity.ExamPrintPlan;
  11. import com.qmth.distributed.print.business.entity.TBSyncTask;
  12. import com.qmth.distributed.print.business.enums.DictionaryEnum;
  13. import com.qmth.distributed.print.business.service.BasicVerifyCodeService;
  14. import com.qmth.distributed.print.business.service.ExamPrintPlanService;
  15. import com.qmth.distributed.print.business.service.PrintCommonService;
  16. import com.qmth.distributed.print.business.service.TBSyncTaskService;
  17. import com.qmth.teachcloud.common.bean.auth.AuthBean;
  18. import com.qmth.teachcloud.common.bean.result.LoginResult;
  19. import com.qmth.teachcloud.common.bean.result.UserLoginCheckResult;
  20. import com.qmth.teachcloud.common.config.DictionaryConfig;
  21. import com.qmth.teachcloud.common.contant.SystemConstant;
  22. import com.qmth.teachcloud.common.entity.*;
  23. import com.qmth.teachcloud.common.enums.*;
  24. import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
  25. import com.qmth.teachcloud.common.service.*;
  26. import com.qmth.teachcloud.common.util.Result;
  27. import com.qmth.teachcloud.common.util.ResultUtil;
  28. import com.qmth.teachcloud.common.util.ServletUtil;
  29. import io.swagger.annotations.*;
  30. import org.apache.commons.lang3.StringUtils;
  31. import org.slf4j.Logger;
  32. import org.slf4j.LoggerFactory;
  33. import org.springframework.transaction.annotation.Transactional;
  34. import org.springframework.validation.BindingResult;
  35. import org.springframework.web.bind.annotation.*;
  36. import org.springframework.web.multipart.MultipartFile;
  37. import javax.annotation.Resource;
  38. import javax.validation.Valid;
  39. import java.security.NoSuchAlgorithmException;
  40. import java.util.*;
  41. import java.util.stream.Collectors;
  42. /**
  43. * @Date: 2021/3/30.
  44. */
  45. @Api(tags = "系统Controller")
  46. @RestController
  47. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}")
  48. public class SysController {
  49. private final static Logger log = LoggerFactory.getLogger(SysController.class);
  50. @Resource
  51. SysUserService sysUserService;
  52. @Resource
  53. BasicVerifyCodeService basicVerifyCodeService;
  54. @Resource
  55. DictionaryConfig dictionaryConfig;
  56. @Resource
  57. CommonCacheService commonCacheService;
  58. @Resource
  59. PrintCommonService printCommonService;
  60. @Resource
  61. TBTaskService tbTaskService;
  62. @Resource
  63. BasicAttachmentService basicAttachmentService;
  64. @Resource
  65. SysUserRoleService sysUserRoleService;
  66. @Resource
  67. TeachcloudCommonService teachcloudCommonService;
  68. @Resource
  69. SysOrgService sysOrgService;
  70. @Resource
  71. BasicMajorService basicMajorService;
  72. @Resource
  73. BasicClazzService basicClazzService;
  74. @Resource
  75. BasicStudentService basicStudentService;
  76. @Resource
  77. BasicSemesterService basicSemesterService;
  78. @Resource
  79. ExamPrintPlanService examPrintPlanService;
  80. @Resource
  81. TBSyncTaskService tbSyncTaskService;
  82. @Resource
  83. BasicCampusService basicCampusService;
  84. /**
  85. * 登录
  86. *
  87. * @param login
  88. * @return
  89. */
  90. @ApiOperation(value = "登录")
  91. @RequestMapping(value = "/login", method = RequestMethod.POST)
  92. @ApiResponses({@ApiResponse(code = 200, message = "用户信息", response = LoginResult.class)})
  93. @Aac(auth = BOOL.FALSE)
  94. public Result login(@ApiParam(value = "用户信息", required = true) @Valid @RequestBody LoginParam login, BindingResult bindingResult) throws NoSuchAlgorithmException {
  95. if (bindingResult.hasErrors()) {
  96. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  97. }
  98. BasicSchool basicSchool = null;
  99. if (!login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
  100. basicSchool = commonCacheService.schoolCache(login.getSchoolCode());
  101. if (Objects.isNull(basicSchool)) {
  102. throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();
  103. }
  104. if (Objects.nonNull(basicSchool.getEnable()) && !basicSchool.getEnable()) {
  105. throw ExceptionResultEnum.SCHOOL_ENABLE.exception();
  106. }
  107. }
  108. QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
  109. wrapper.lambda().eq(SysUser::getLoginName, login.getLoginName());
  110. if (!login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
  111. wrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId());
  112. }
  113. List<SysUser> userList = sysUserService.list(wrapper);
  114. //用户不存在
  115. if (Objects.isNull(userList) || userList.size() == 0) {
  116. throw ExceptionResultEnum.USER_NO_DATA.exception();
  117. }
  118. if (login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
  119. userList.forEach(o -> {
  120. AuthBean authBean = teachcloudCommonService.getUserAuth(o.getId());
  121. if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
  122. if (Objects.nonNull(authBean.getSchool())) {
  123. throw ExceptionResultEnum.ERROR.exception("用户无法通过当前页面登录");
  124. }
  125. }
  126. });
  127. }
  128. if (userList.size() > 1) {
  129. throw ExceptionResultEnum.ERROR.exception("查询的用户有多条");
  130. }
  131. SysUser sysUser = userList.get(0);
  132. if (Objects.nonNull(sysUser.getSchoolId()) && sysUser.getSchoolId().longValue() != basicSchool.getId().longValue()) {
  133. throw ExceptionResultEnum.ERROR.exception("用户学校不匹配");
  134. }
  135. // 校验验证码
  136. sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), login.getCode());
  137. LoginResult loginResult = teachcloudCommonService.login(login.getPassword(), sysUser, AppSourceEnum.SYSTEM);
  138. // 如果不是共用验证码再过期
  139. if (!dictionaryConfig.smsDomain().getSmsNormalCode().equals(login.getCode())) {
  140. sysUserService.expiredVerifyCode(sysUser.getId(), sysUser.getMobileNumber());
  141. }
  142. return ResultUtil.ok(loginResult);
  143. }
  144. /**
  145. * 登出
  146. *
  147. * @return
  148. */
  149. @ApiOperation(value = "登出")
  150. @RequestMapping(value = "/logout", method = RequestMethod.POST)
  151. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  152. public Result logout() throws NoSuchAlgorithmException {
  153. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  154. teachcloudCommonService.removeUserInfo(sysUser.getId(), false);
  155. return ResultUtil.ok();
  156. }
  157. /**
  158. * 发送验证码
  159. *
  160. * @param loginParam
  161. * @return
  162. */
  163. @ApiOperation(value = "发送验证码")
  164. @RequestMapping(value = "/get_verify_code", method = RequestMethod.POST)
  165. @Aac(auth = BOOL.FALSE)
  166. public Result getVerifyCode(@RequestBody LoginParam loginParam) {
  167. String loginName = loginParam.getLoginName();
  168. String password = loginParam.getPassword();
  169. QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
  170. if (StringUtils.isNotBlank(loginParam.getSchoolCode())) {
  171. BasicSchool basicSchool = commonCacheService.schoolCache(loginParam.getSchoolCode());
  172. if (Objects.nonNull(basicSchool)) {
  173. wrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId());
  174. }
  175. }
  176. wrapper.lambda().eq(SysUser::getLoginName, loginName);
  177. SysUser user = sysUserService.getOne(wrapper);
  178. //用户不存在
  179. if (Objects.isNull(user)) {
  180. throw ExceptionResultEnum.ERROR.exception("用户不存在");
  181. }
  182. if (!password.equals(user.getPassword())) {
  183. throw ExceptionResultEnum.ERROR.exception("密码错误");
  184. }
  185. String mobileNumber = loginParam.getMobileNumber();
  186. if (!SystemConstant.strNotNull(mobileNumber)) {
  187. mobileNumber = user.getMobileNumber();
  188. }
  189. if (SystemConstant.strNotNull(mobileNumber)) {
  190. basicVerifyCodeService.sendVeirfyCode(mobileNumber, user.getId());
  191. }
  192. int pwdCount = user.getPwdCount();
  193. List<SysRole> sysRoleList = sysUserRoleService.listRoleByUserId(user.getId());
  194. if (sysRoleList.stream().map(SysRole::getType).collect(Collectors.toSet()).contains(RoleTypeEnum.ADMIN)) {
  195. mobileNumber = user.getLoginName() + "(特权用户)";
  196. pwdCount = 1;
  197. }
  198. UserLoginCheckResult userLoginCheckResult = new UserLoginCheckResult(user.getId(), mobileNumber, pwdCount);
  199. return ResultUtil.ok(userLoginCheckResult, "");
  200. }
  201. @ApiOperation(value = "根据机构代码查询机构信息接口")
  202. @RequestMapping(value = "/school/query_by_school_code", method = RequestMethod.POST)
  203. @ApiResponses({@ApiResponse(code = 200, message = "学校信息", response = EditResult.class)})
  204. @Aac(auth = BOOL.FALSE)
  205. public Result queryBySchoolCode(@ApiParam(value = "机构code", required = true) @RequestParam String code) {
  206. if (!code.equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
  207. BasicSchool basicSchool = commonCacheService.schoolCache(code);
  208. if (Objects.isNull(basicSchool)) {
  209. throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();
  210. }
  211. Map<String, String> map = new HashMap<>();
  212. map.put(SystemConstant.LOGO, basicSchool.getLogo());
  213. map.put("name", basicSchool.getName());
  214. return ResultUtil.ok(map);
  215. } else {
  216. Map<String, String> map = new HashMap<>();
  217. map.put(SystemConstant.LOGO, dictionaryConfig.sysDomain().getAdminLogoUrl());
  218. map.put("name", null);
  219. return ResultUtil.ok(map);
  220. }
  221. }
  222. @ApiOperation(value = "文件上传接口")
  223. @RequestMapping(value = "/file/upload", method = RequestMethod.POST)
  224. @Transactional
  225. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  226. public Result fileUpload(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
  227. @ApiParam(value = "上传文件类型", required = true) @RequestParam UploadFileEnum type) {
  228. BasicAttachment basicAttachment = null;
  229. try {
  230. basicAttachment = printCommonService.saveAttachment(file, ServletUtil.getRequestMd5(), type);
  231. if (Objects.isNull(basicAttachment)) {
  232. throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
  233. }
  234. } catch (Exception e) {
  235. log.error("请求出错", e);
  236. if (Objects.nonNull(basicAttachment)) {
  237. basicAttachmentService.deleteAttachment(basicAttachment);
  238. }
  239. if (e instanceof ApiException) {
  240. ResultUtil.error((ApiException) e, e.getMessage());
  241. } else {
  242. ResultUtil.error(e.getMessage());
  243. }
  244. }
  245. return ResultUtil.ok(new EditResult(basicAttachment.getId(), teachcloudCommonService.filePreview(basicAttachment.getPath()), basicAttachment.getPages()));
  246. }
  247. @ApiOperation(value = "文件下载接口")
  248. @RequestMapping(value = "/file/download", method = RequestMethod.POST)
  249. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  250. public Result fileDownload(@ApiParam(value = "任务id", required = true) @RequestParam String id,
  251. @ApiParam(value = "下载文件类型", required = true) @RequestParam DownloadFileEnum type) {
  252. String path = null;
  253. if (DownloadFileEnum.SYNC_REPORT.equals(type)) {
  254. TBSyncTask tbSyncTask = tbSyncTaskService.getById(SystemConstant.convertIdToLong(id));
  255. if (Objects.isNull(tbSyncTask)) {
  256. throw ExceptionResultEnum.SYNC_TASK_NO_DATA.exception();
  257. }
  258. path = tbSyncTask.getReportFilePath();
  259. } else {
  260. TBTask tbTask = tbTaskService.getById(Long.parseLong(id));
  261. if (Objects.isNull(tbTask)) {
  262. throw ExceptionResultEnum.TASK_NO_DATA.exception();
  263. }
  264. switch (type) {
  265. case IMPORT_FILE:
  266. path = tbTask.getImportFilePath();
  267. break;
  268. case TASK_REPORT:
  269. path = tbTask.getReportFilePath();
  270. break;
  271. case RESULT:
  272. path = tbTask.getResultFilePath();
  273. break;
  274. }
  275. }
  276. if (Objects.isNull(path)) {
  277. throw ExceptionResultEnum.PATH_NO_DATA.exception();
  278. }
  279. return ResultUtil.ok(new EditResult(teachcloudCommonService.filePreview(path)));
  280. }
  281. @ApiOperation(value = "文件预览接口")
  282. @RequestMapping(value = "/file/preview", method = RequestMethod.POST)
  283. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  284. public Result filePreview(@ApiParam(value = "附件id", required = false, defaultValue = "") @RequestParam(value = "id", required = false, defaultValue = "") String id) {
  285. if (StringUtils.isBlank(id)) {
  286. throw ExceptionResultEnum.ERROR.exception("没有附件");
  287. } else {
  288. BasicAttachment basicAttachment = basicAttachmentService.getById(Long.parseLong(id));
  289. return ResultUtil.ok(new EditResult(teachcloudCommonService.filePreview(basicAttachment.getPath())));
  290. }
  291. }
  292. @ApiOperation(value = "查询用户权限")
  293. @RequestMapping(value = "/get_menu", method = RequestMethod.POST)
  294. public Result getMenu() {
  295. return ResultUtil.ok(sysUserRoleService.listByUserId());
  296. }
  297. @ApiOperation(value = "获取服务器时间")
  298. @RequestMapping(value = "/get_system_time", method = RequestMethod.POST)
  299. @Aac(auth = BOOL.FALSE)
  300. public Result getSystemTime() {
  301. return ResultUtil.ok(System.currentTimeMillis());
  302. }
  303. @ApiOperation(value = "获取系统编码")
  304. @RequestMapping(value = "/get_code", method = RequestMethod.POST)
  305. // @Aac(auth = BOOL.FALSE)
  306. public Result getCode(@ApiParam(value = "编码类型", required = true) @RequestParam SystemCodeEnum type) {
  307. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  308. String number = teachcloudCommonService.getSysIncrCode(type, sysUser);
  309. return ResultUtil.ok((Object) number);
  310. }
  311. @ApiOperation(value = "共用接口-查询字典")
  312. @RequestMapping(value = "/get_dictionary", method = RequestMethod.POST)
  313. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  314. public Result findDictionaryList(@ApiParam(value = "校区id") @RequestParam(required = false) String campusId,
  315. @ApiParam(value = "学期id") @RequestParam(required = false) String semesterId,
  316. @ApiParam(value = "学院id") @RequestParam(required = false) String collegeId,
  317. @ApiParam(value = "专业id") @RequestParam(required = false) String majorId,
  318. @ApiParam(value = "班级id") @RequestParam(required = false) String clazzId,
  319. @ApiParam(value = "学生id") @RequestParam(required = false) String studentId,
  320. @ApiParam(value = "查询字典对象") @RequestParam(required = true) DictionaryEnum dictionaryEnum) {
  321. Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
  322. List<DictionaryResult> dictionaryResultList = new ArrayList<>();
  323. switch (dictionaryEnum) {
  324. case CAMPUS:
  325. List<BasicCampus> basicCampusList = basicCampusService.list(new QueryWrapper<BasicCampus>().lambda().eq(BasicCampus::getSchoolId, schoolId));
  326. dictionaryResultList = basicCampusList.stream().map(e -> {
  327. DictionaryResult dictionaryResult = new DictionaryResult();
  328. dictionaryResult.setName(e.getCampusName());
  329. dictionaryResult.setCode(e.getCampusCode());
  330. dictionaryResult.setId(e.getId());
  331. return dictionaryResult;
  332. }).collect(Collectors.toList());
  333. break;
  334. case SEMESTER:
  335. List<BasicSemester> basicSemesterList = basicSemesterService.list(new QueryWrapper<BasicSemester>().lambda().eq(BasicSemester::getSchoolId, schoolId).eq(BasicSemester::getEnable, true));
  336. dictionaryResultList = basicSemesterList.stream().map(e -> {
  337. DictionaryResult dictionaryResult = new DictionaryResult();
  338. dictionaryResult.setId(e.getId());
  339. dictionaryResult.setCode(e.getCode());
  340. dictionaryResult.setName(e.getName());
  341. return dictionaryResult;
  342. }).collect(Collectors.toList());
  343. break;
  344. case COLLEGE:
  345. if (Objects.nonNull(semesterId)) {
  346. QueryWrapper<ExamPrintPlan> examPrintPlanQueryWrapper = new QueryWrapper<>();
  347. examPrintPlanQueryWrapper.select(" DISTINCT org_id as orgId ")
  348. .eq("semester_id", SystemConstant.convertIdToLong(semesterId));
  349. List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(examPrintPlanQueryWrapper);
  350. if (Objects.nonNull(examPrintPlanList) && examPrintPlanList.size() > 0) {
  351. Set<Long> orgIdSet = examPrintPlanList.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
  352. QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
  353. sysOrgQueryWrapper.lambda().in(SysOrg::getId, orgIdSet);
  354. List<SysOrg> sysOrgList = sysOrgService.list(sysOrgQueryWrapper);
  355. dictionaryResultList = sysOrgList.stream().map(e -> {
  356. DictionaryResult dictionaryResult = new DictionaryResult();
  357. dictionaryResult.setId(e.getId());
  358. dictionaryResult.setCode(e.getCode());
  359. dictionaryResult.setName(e.getName());
  360. return dictionaryResult;
  361. }).collect(Collectors.toList());
  362. }
  363. } else {
  364. List<SysOrg> sysOrgList = sysOrgService.list(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getEnable, true));
  365. dictionaryResultList = sysOrgList.stream().map(e -> {
  366. DictionaryResult dictionaryResult = new DictionaryResult();
  367. dictionaryResult.setId(e.getId());
  368. dictionaryResult.setCode(e.getCode());
  369. dictionaryResult.setName(e.getName());
  370. return dictionaryResult;
  371. }).collect(Collectors.toList());
  372. }
  373. break;
  374. case MAJOR:
  375. QueryWrapper<BasicMajor> majorQueryWrapper = new QueryWrapper<>();
  376. majorQueryWrapper.lambda()
  377. .eq(BasicMajor::getSchoolId, schoolId)
  378. .eq(BasicMajor::getEnable, true);
  379. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(collegeId))) {
  380. majorQueryWrapper.lambda().eq(BasicMajor::getBelongOrgId, collegeId);
  381. }
  382. List<BasicMajor> basicMajorList = basicMajorService.list(majorQueryWrapper);
  383. dictionaryResultList = basicMajorList.stream().map(e -> {
  384. DictionaryResult dictionaryResult = new DictionaryResult();
  385. dictionaryResult.setId(e.getId());
  386. dictionaryResult.setCode(e.getCode());
  387. dictionaryResult.setName(e.getName());
  388. return dictionaryResult;
  389. }).collect(Collectors.toList());
  390. break;
  391. case CLAZZ:
  392. QueryWrapper<BasicClazz> clazzQueryWrapper = new QueryWrapper<>();
  393. clazzQueryWrapper.lambda().eq(BasicClazz::getSchoolId, schoolId).eq(BasicClazz::getEnable, true);
  394. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(campusId))) {
  395. clazzQueryWrapper.lambda().eq(BasicClazz::getCampusId, campusId);
  396. }
  397. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(majorId))) {
  398. clazzQueryWrapper.lambda().eq(BasicClazz::getMajorId, majorId);
  399. }
  400. List<BasicClazz> basicClazzList = basicClazzService.list(clazzQueryWrapper);
  401. dictionaryResultList = basicClazzList.stream().map(e -> {
  402. DictionaryResult dictionaryResult = new DictionaryResult();
  403. dictionaryResult.setId(e.getId());
  404. dictionaryResult.setCode(e.getClazzCode());
  405. dictionaryResult.setName(e.getClazzName());
  406. return dictionaryResult;
  407. }).collect(Collectors.toList());
  408. break;
  409. case STUDENT:
  410. QueryWrapper<BasicStudent> studentQueryWrapper = new QueryWrapper<>();
  411. studentQueryWrapper.lambda().eq(BasicStudent::getSchoolId, schoolId).eq(BasicStudent::getEnable, true);
  412. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(campusId))) {
  413. studentQueryWrapper.lambda().eq(BasicStudent::getCampusId, campusId);
  414. }
  415. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(collegeId))) {
  416. studentQueryWrapper.lambda().eq(BasicStudent::getBelongOrgId, collegeId);
  417. }
  418. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(majorId))) {
  419. studentQueryWrapper.lambda().eq(BasicStudent::getMajorId, majorId);
  420. }
  421. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(clazzId))) {
  422. studentQueryWrapper.lambda().eq(BasicStudent::getClazzId, clazzId);
  423. }
  424. if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(studentId))) {
  425. studentQueryWrapper.lambda().eq(BasicStudent::getId, studentId);
  426. }
  427. List<BasicStudent> basicStudentList = basicStudentService.list(studentQueryWrapper);
  428. dictionaryResultList = basicStudentList.stream().map(e -> {
  429. DictionaryResult dictionaryResult = new DictionaryResult();
  430. dictionaryResult.setId(e.getId());
  431. dictionaryResult.setCode(e.getStudentCode());
  432. dictionaryResult.setName(e.getStudentName());
  433. return dictionaryResult;
  434. }).collect(Collectors.toList());
  435. break;
  436. }
  437. return ResultUtil.ok(dictionaryResultList);
  438. }
  439. /**
  440. * 获取用户阅卷角色
  441. *
  442. * @return
  443. */
  444. @ApiOperation(value = "获取用户阅卷角色")
  445. @RequestMapping(value = "/get_open_role", method = RequestMethod.POST)
  446. public Result getOpenRole() {
  447. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  448. SpecialPrivilegeEnum userSpecialPrivilege = sysUserService.findUserSpecialPrivilegeByUserId(sysUser.getId());
  449. List<SpecialPrivilegeEnum> list = new ArrayList<>();
  450. if (!SpecialPrivilegeEnum.UNIDENTIFIED.equals(userSpecialPrivilege)) {
  451. if (SpecialPrivilegeEnum.COMPOSITE.equals(userSpecialPrivilege)) {
  452. list.add(SpecialPrivilegeEnum.MARKER);
  453. list.add(SpecialPrivilegeEnum.SUBJECT_HEADER);
  454. } else {
  455. list.add(userSpecialPrivilege);
  456. }
  457. }
  458. return ResultUtil.ok(list);
  459. }
  460. }