From 2873f1cd6ea6caac062740e05994a1f0a880ffde Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 12 三月 2024 11:27:20 +0800
Subject: [PATCH] 一个用户只能是一个部门的管理员、创建随机试卷的时候人员只能选当前部门的人,试卷增加部门id

---
 src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
index 8cf0316..627c892 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
@@ -1,43 +1,63 @@
 package com.mindskip.xzs.controller.admin;
 
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.base.BaseApiController;
 import com.mindskip.xzs.base.RestResponse;
+import com.mindskip.xzs.context.WebContext;
 import com.mindskip.xzs.domain.ExamPaper;
 import com.mindskip.xzs.domain.ExamTemplates;
 import com.mindskip.xzs.domain.ExamTemplatesSubject;
 import com.mindskip.xzs.domain.User;
 import com.mindskip.xzs.domain.vo.ExamTemplatesVO;
+import com.mindskip.xzs.repository.DepartmentMapper;
 import com.mindskip.xzs.repository.ExamTemplatesSubjectMapper;
+import com.mindskip.xzs.repository.UserDepartmentMapper;
 import com.mindskip.xzs.service.ExamTemplatesService;
 import com.mindskip.xzs.utility.PageInfoHelper;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Objects;
 
 @RestController("AdminExamTemplatesController")
 @RequestMapping(value = "/api/admin/exam/templates")
+@RequiredArgsConstructor
 public class ExamTemplatesController extends BaseApiController {
 
     private final ExamTemplatesService examTemplatesService;
     private final ExamTemplatesSubjectMapper examTemplatesSubjectMapper;
-
-    public ExamTemplatesController(ExamTemplatesService examTemplatesService, ExamTemplatesSubjectMapper examTemplatesSubjectMapper) {
-        this.examTemplatesService = examTemplatesService;
-        this.examTemplatesSubjectMapper = examTemplatesSubjectMapper;
-    }
+    private final WebContext webContext;
+    private final DepartmentMapper departmentMapper;
 
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
     public RestResponse edit(@RequestBody @Valid ExamPaperEditRequestVM model) {
+        User currentUser = webContext.getCurrentUser();
+        if (Objects.nonNull(currentUser)) {
+            // 濡傛灉鏄儴闂ㄧ鐞嗗憳锛岄渶瑕佸仛鏁版嵁鏉冮檺
+            if ("1".equals(currentUser.getDeptAdmin())) {
+                Integer deptId = departmentMapper.selectByAdminId(currentUser.getId());
+                model.setDeptId(deptId);
+            }
+        }
         examTemplatesService.add(model);
         return RestResponse.ok();
     }
 
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public RestResponse<PageInfo<ExamTemplatesVO>> list(ExamTemplatesVO examTemplatesVO) throws Exception {
+        User currentUser = webContext.getCurrentUser();
+        if (Objects.nonNull(currentUser)) {
+            // 濡傛灉鏄儴闂ㄧ鐞嗗憳锛岄渶瑕佸仛鏁版嵁鏉冮檺
+            if ("1".equals(currentUser.getDeptAdmin())) {
+                Integer deptId = departmentMapper.selectByAdminId(currentUser.getId());
+                examTemplatesVO.setDeptId(deptId);
+            }
+        }
         PageInfo<ExamTemplates> pageInfo = examTemplatesService.getByadmins(examTemplatesVO);
         PageInfo<ExamTemplatesVO> info = PageInfoHelper.copyMap(pageInfo, e -> {
             ExamTemplatesVO vo = new ExamTemplatesVO();

--
Gitblit v1.8.0