소스 검색

add: 字典管理 - 专业管理

caozixuan 3 년 전
부모
커밋
398dabe210
14개의 변경된 파일341개의 추가작업 그리고 26개의 파일을 삭제
  1. 18 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicMajorMapper.java
  2. 70 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMajorServiceImpl.java
  3. 31 0
      distributed-print-business/src/main/resources/mapper/BasicMajorMapper.xml
  4. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicClazzController.java
  5. 46 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java
  6. 48 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java
  7. 20 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicClazzParams.java
  8. 40 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicStudentParams.java
  9. 44 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/BasicStudentResult.java
  10. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicClazzService.java
  11. 9 3
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicClazzServiceImpl.java
  12. 0 4
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java
  13. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/OrgCenterDataDisposeServiceImpl.java
  14. 10 3
      teachcloud-common/src/main/resources/mapper/BasicStudentMapper.xml

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicMajorMapper.java

@@ -1,7 +1,13 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.result.BasicMajorResult;
 import com.qmth.distributed.print.business.entity.BasicMajor;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Set;
 
 /**
  * <p>
@@ -13,4 +19,16 @@ import com.qmth.distributed.print.business.entity.BasicMajor;
  */
 public interface BasicMajorMapper extends BaseMapper<BasicMajor> {
 
+    /**
+     * 分页查询基础专业信息
+     * @param iPage 分页参数
+     * @param schoolId 学校id
+     * @param majorName 专业名称
+     * @param orgIds 数据权限集合
+     * @return 基础专业分页参数
+     */
+    IPage<BasicMajorResult> findBasicMajorPage(@Param("iPage") Page<BasicMajorResult> iPage,
+                                               @Param("schoolId") Long schoolId,
+                                               @Param("majorName") String majorName,
+                                               @Param("orgIds") Set<Long> orgIds);
 }

+ 70 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMajorServiceImpl.java

@@ -1,15 +1,30 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.BasicMajorParams;
 import com.qmth.distributed.print.business.bean.result.BasicMajorResult;
 import com.qmth.distributed.print.business.entity.BasicMajor;
 import com.qmth.distributed.print.business.mapper.BasicMajorMapper;
 import com.qmth.distributed.print.business.service.BasicMajorService;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicClazz;
+import com.qmth.teachcloud.common.entity.BasicStudent;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicClazzService;
+import com.qmth.teachcloud.common.service.BasicStudentService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+
 /**
  * <p>
  * 专业字典表 服务实现类
@@ -20,21 +35,73 @@ import org.springframework.transaction.annotation.Transactional;
  */
 @Service
 public class BasicMajorServiceImpl extends ServiceImpl<BasicMajorMapper, BasicMajor> implements BasicMajorService {
+    @Resource
+    private BasicClazzService basicClazzService;
+    @Resource
+    private BasicStudentService basicStudentService;
 
     @Override
     public IPage<BasicMajorResult> basicMajorPage(Long schoolId, String majorName, int pageNumber, int pageSize) {
-        return null;
+        majorName = SystemConstant.translateSpecificSign(majorName);
+        return this.baseMapper.findBasicMajorPage(new Page<>(pageNumber, pageSize),schoolId,majorName,null);
     }
 
     @Transactional
     @Override
     public Long saveBasicMajor(BasicMajorParams basicMajorParams) throws IllegalAccessException {
-        return null;
+        SystemConstant.verifyDBFields(basicMajorParams,basicMajorParams.getClass());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Long id = basicMajorParams.getId();
+        Long schoolId = sysUser.getSchoolId();
+        String majorName = basicMajorParams.getMajorName();
+        Long collegeId = basicMajorParams.getCollegeId();
+
+        // 校验专业唯一性(名称在学院下)
+        BasicMajor checkName = this.getOne(new QueryWrapper<BasicMajor>().lambda()
+                .eq(BasicMajor::getEnable,true)
+                .eq(BasicMajor::getSchoolId,schoolId)
+                .eq(BasicMajor::getBelongOrgId,collegeId)
+                .eq(BasicMajor::getName,majorName));
+        if (Objects.nonNull(checkName) && !checkName.getId().equals(id)){
+            throw ExceptionResultEnum.ERROR.exception("专业名称【" + majorName + "】重复");
+        }
+        if (SystemConstant.longNotNull(id)){
+            // 编辑
+            BasicMajor old = this.getById(id);
+            if (Objects.isNull(old) || old.getEnable().equals(false)){
+                throw ExceptionResultEnum.ERROR.exception("所选专业不存在或被禁用");
+            }
+            this.update(new UpdateWrapper<BasicMajor>().lambda()
+                    .eq(BasicMajor::getId,id)
+                    .set(BasicMajor::getName,majorName)
+                    .set(BasicMajor::getBelongOrgId,collegeId));
+        }else {
+            // 新增
+            id = SystemConstant.getDbUuid();
+            BasicMajor basicMajor = new BasicMajor();
+            basicMajor.setId(id);
+            basicMajor.setEnable(true);
+            basicMajor.setName(majorName);
+            basicMajor.setSchoolId(schoolId);
+            basicMajor.setCode(null);
+            basicMajor.setBelongOrgId(collegeId);
+            basicMajor.setOrgId(sysUser.getOrgId());
+            this.save(basicMajor);
+        }
+        return id;
     }
 
     @Transactional
     @Override
     public boolean deleteBasicMajorById(Long id) {
-        return false;
+        List<BasicClazz> basicClazzList = basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().eq(BasicClazz::getMajorId,id));
+        if (basicClazzList.size() > 0){
+            throw ExceptionResultEnum.ERROR.exception("该专业被班级绑定,无法优先删除");
+        }
+        List<BasicStudent> basicStudentList = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().eq(BasicStudent::getMajorId,id));
+        if (basicStudentList.size() > 0){
+            throw ExceptionResultEnum.ERROR.exception("该专业被学生绑定,无法优先删除");
+        }
+        return this.removeById(id);
     }
 }

+ 31 - 0
distributed-print-business/src/main/resources/mapper/BasicMajorMapper.xml

@@ -2,4 +2,35 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.distributed.print.business.mapper.BasicMajorMapper">
 
+    <select id="findBasicMajorPage"
+            resultType="com.qmth.distributed.print.business.bean.result.BasicMajorResult">
+        SELECT
+            bm.id,
+            bm.name AS majorName,
+            bm.code AS majorCode,
+            bm.create_id AS createId,
+            bm.create_time AS createTime,
+            so.id AS collegeId,
+            so.name AS collegeName
+        FROM
+            basic_major bm
+                LEFT JOIN
+            sys_org so ON bm.belong_org_id = so.id
+        <where>
+            AND bm.enable = true
+            <if test="schoolId != null and schoolId != ''">
+                AND bm.school_id = #{schoolId}
+            </if>
+            <if test="majorName != null and majorName != ''">
+                AND bm.name LIKE CONCAT('%',#{majorName},'%')
+            </if>
+            <if test="orgIds != null">
+                AND bm.org_id IN
+                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY bm.create_time DESC;
+    </select>
 </mapper>

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicClazzController.java

@@ -57,7 +57,7 @@ public class BasicClazzController {
     @ApiOperation(value = "班级基本信息管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
-    public Result saveBasicClazz(@Valid @RequestBody BasicClazzParams basicClazzParams, BindingResult bindingResult) {
+    public Result saveBasicClazz(@Valid @RequestBody BasicClazzParams basicClazzParams, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }

+ 46 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java

@@ -1,8 +1,22 @@
 package com.qmth.distributed.print.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.params.BasicMajorParams;
+import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.service.BasicMajorService;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import io.swagger.annotations.*;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 
 /**
  * <p>
@@ -12,8 +26,37 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wangliang
  * @since 2021-10-28
  */
+@Api(tags = "专业管理controller")
 @RestController
-@RequestMapping("/basic-major")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/major")
 public class BasicMajorController {
+    @Resource
+    private BasicMajorService basicMajorService;
+
+    @ApiOperation(value = "专业管理-查询")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    public Result findBasicMajorList(@ApiParam(value = "专业名称") @RequestParam(required = false) String majorName,
+                                     @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                                     @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
+        return ResultUtil.ok(basicMajorService.basicMajorPage(schoolId, majorName, pageNumber, pageSize));
+    }
+
+    @ApiOperation(value = "专业管理-新增/编辑")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    public Result saveBasicMajor(@Valid @RequestBody BasicMajorParams basicMajorParams, BindingResult bindingResult) throws IllegalAccessException {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        return ResultUtil.ok(basicMajorService.saveBasicMajor(basicMajorParams));
+    }
 
+    @ApiOperation(value = "专业管理-删除(逻辑)")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    public Result deleteBasicMajor(@ApiParam(value = "专业id", required = true) @RequestParam String id) {
+        return ResultUtil.ok(basicMajorService.deleteBasicMajorById(SystemConstant.convertIdToLong(id)));
+    }
 }

+ 48 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java

@@ -1,8 +1,25 @@
 package com.qmth.distributed.print.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.entity.BasicSemester;
+import com.qmth.distributed.print.business.service.BasicSemesterService;
+import com.qmth.teachcloud.common.bean.params.BasicCampusParams;
+import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.service.BasicCampusService;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import io.swagger.annotations.*;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 
 /**
  * <p>
@@ -12,8 +29,36 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wangliang
  * @since 2021-10-28
  */
+@Api(tags = "学期管理controller")
 @RestController
-@RequestMapping("/basic-semester")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/semester")
 public class BasicSemesterController {
+    @Resource
+    private BasicSemesterService basicSemesterService;
+
+    @ApiOperation(value = "学期管理-查询")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    public Result findBasicSemesterList(@ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                                        @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
+        return ResultUtil.ok(basicSemesterService.basicSemesterPage(schoolId,pageNumber,pageSize));
+    }
+
+    @ApiOperation(value = "学期管理-新增/编辑")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    public Result saveBasicSemester(@Valid @RequestBody BasicSemesterParams basicSemesterParams, BindingResult bindingResult) throws IllegalAccessException {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        return ResultUtil.ok(basicSemesterService.saveBasicSemester(basicSemesterParams));
+    }
 
+    @ApiOperation(value = "学期管理-删除(逻辑)")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    public Result deleteBasicSemester(@ApiParam(value = "学期id", required = true) @RequestParam String id) {
+        return ResultUtil.ok(basicSemesterService.deleteBasicSemesterById(SystemConstant.convertIdToLong(id)));
+    }
 }

+ 20 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicClazzParams.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.bean.params;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.annotation.DBVerify;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
@@ -17,20 +18,31 @@ public class BasicClazzParams {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "班级id(修改时必填)")
+    @DBVerify(value = "班级id")
     private Long id;
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "校区主键")
     @NotNull(message = "请选择校区")
     @Range(min = 1L, message = "请选择校区")
+    @DBVerify(value = "校区",required = true)
     private Long campusId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "专业id")
+    @NotNull(message = "请选择专业")
+    @Range(min = 1L, message = "请选择专业")
+    @DBVerify(value = "专业",required = true)
+    private Long majorId;
+
     @ApiModelProperty(value = "班级编号")
+    @DBVerify(value = "班级编号",required = true)
     private String clazzCode;
 
     @ApiModelProperty(value = "班级名称")
     @NotNull(message = "请输入班级名称")
     @Length(min = 1,message = "请输入班级名称")
+    @DBVerify(value = "班级名称",required = true)
     private String clazzName;
 
     public Long getId() {
@@ -64,4 +76,12 @@ public class BasicClazzParams {
     public void setClazzName(String clazzName) {
         this.clazzName = clazzName;
     }
+
+    public Long getMajorId() {
+        return majorId;
+    }
+
+    public void setMajorId(Long majorId) {
+        this.majorId = majorId;
+    }
 }

+ 40 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicStudentParams.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.bean.params;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.annotation.DBVerify;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
@@ -17,25 +18,38 @@ public class BasicStudentParams {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "学生id(修改时必填)")
+    @DBVerify(value = "学生id(修改时必填)")
     private Long id;
 
     @ApiModelProperty(value = "学生名称")
     @NotNull(message = "请输入学生名称")
     @Length(min = 1,message = "请输入学生名称")
+    @DBVerify(value = "学生名称",required = true)
     private String studentName;
 
     @ApiModelProperty(value = "学生学号")
     @NotNull(message = "请输入学生学号")
     @Length(min = 1,message = "请输入学生学号")
+    @DBVerify(value = "学生学号",required = true)
     private String studentCode;
 
     @ApiModelProperty(value = "手机号码")
     private String phoneNumber;
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "校区主键")
+    private Long campusId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "学院主键")
+    private Long collegeId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "专业主键")
+    private Long majorId;
+
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "班级信息")
-    @NotNull(message = "请选择班级")
-    @Range(min = 1L, message = "请选择班级")
     private Long clazzId;
 
     public Long getId() {
@@ -70,6 +84,30 @@ public class BasicStudentParams {
         this.phoneNumber = phoneNumber;
     }
 
+    public Long getCampusId() {
+        return campusId;
+    }
+
+    public void setCampusId(Long campusId) {
+        this.campusId = campusId;
+    }
+
+    public Long getCollegeId() {
+        return collegeId;
+    }
+
+    public void setCollegeId(Long collegeId) {
+        this.collegeId = collegeId;
+    }
+
+    public Long getMajorId() {
+        return majorId;
+    }
+
+    public void setMajorId(Long majorId) {
+        this.majorId = majorId;
+    }
+
     public Long getClazzId() {
         return clazzId;
     }

+ 44 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/BasicStudentResult.java

@@ -31,6 +31,18 @@ public class BasicStudentResult {
     @ApiModelProperty(value = "校区名称")
     private String campusName;
 
+    @ApiModelProperty(value = "学院id")
+    private Long collegeId;
+
+    @ApiModelProperty(value = "学院名称")
+    private String collegeName;
+
+    @ApiModelProperty(value = "专业id")
+    private Long majorId;
+
+    @ApiModelProperty(value = "专业名称")
+    private String majorName;
+
     @ApiModelProperty(value = "班级信息")
     private String clazz;
 
@@ -95,6 +107,38 @@ public class BasicStudentResult {
         this.campusName = campusName;
     }
 
+    public Long getCollegeId() {
+        return collegeId;
+    }
+
+    public void setCollegeId(Long collegeId) {
+        this.collegeId = collegeId;
+    }
+
+    public String getCollegeName() {
+        return collegeName;
+    }
+
+    public void setCollegeName(String collegeName) {
+        this.collegeName = collegeName;
+    }
+
+    public Long getMajorId() {
+        return majorId;
+    }
+
+    public void setMajorId(Long majorId) {
+        this.majorId = majorId;
+    }
+
+    public String getMajorName() {
+        return majorName;
+    }
+
+    public void setMajorName(String majorName) {
+        this.majorName = majorName;
+    }
+
     public String getClazz() {
         return clazz;
     }

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicClazzService.java

@@ -33,7 +33,7 @@ public interface BasicClazzService extends IService<BasicClazz> {
      * @param sysUser 创建人信息
      * @return 新增或编辑的班级id
      */
-    Long saveBasicClazz(BasicClazzParams basicClazzParams, SysUser sysUser);
+    Long saveBasicClazz(BasicClazzParams basicClazzParams, SysUser sysUser) throws IllegalAccessException;
 
     /**
      * 批量删除班级基本信息(逻辑)
@@ -49,7 +49,7 @@ public interface BasicClazzService extends IService<BasicClazz> {
      * @param map       参数
      * @return 结果
      */
-    Map<String, Object> executeBasicClazzImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map);
+    Map<String, Object> executeBasicClazzImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws IllegalAccessException;
 
     /**
      * 查询班级下拉数据源

+ 9 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicClazzServiceImpl.java

@@ -55,7 +55,7 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Long saveBasicClazz(BasicClazzParams basicClazzParams, SysUser sysUser) {
+    public Long saveBasicClazz(BasicClazzParams basicClazzParams, SysUser sysUser) throws IllegalAccessException {
         List<BasicClazzParams> basicClazzParamsList = new ArrayList<>();
         basicClazzParamsList.add(basicClazzParams);
         BasicClazz basicClazz = this.editEntityHelp(basicClazzParamsList, sysUser).get(0);
@@ -119,7 +119,8 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Map<String, Object> executeBasicClazzImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) {
+    @Deprecated
+    public Map<String, Object> executeBasicClazzImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws IllegalAccessException {
         SysUser sysUser = (SysUser) map.get(SystemConstant.SYS_USER);
         Long schoolId = sysUser.getSchoolId();
 
@@ -247,23 +248,27 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
      * @param sysUser              操作人
      * @return 结果
      */
-    private List<BasicClazz> editEntityHelp(List<BasicClazzParams> basicClazzParamsList, SysUser sysUser) {
+    private List<BasicClazz> editEntityHelp(List<BasicClazzParams> basicClazzParamsList, SysUser sysUser) throws IllegalAccessException {
         Long schoolId = sysUser.getSchoolId();
         List<BasicClazz> editEntityList = new ArrayList<>();
         for (BasicClazzParams basicClazzParams : basicClazzParamsList) {
+            SystemConstant.verifyDBFields(basicClazzParams,basicClazzParams.getClass());
             // 普通参数
             Long id = basicClazzParams.getId();
             Long campusId = basicClazzParams.getCampusId();
             String clazzCode = basicClazzParams.getClazzCode();
             String clazzName = basicClazzParams.getClazzName();
+            Long majorId = basicClazzParams.getMajorId();
 
             // 校验校区不存在
             if (Objects.isNull(basicCampusService.getById(campusId))) {
                 throw ExceptionResultEnum.ERROR.exception("所选校区不存在");
             }
+            // TODO: 2021/11/2 校验专业不存在
             // 检验班级名称在学校的唯一性
             BasicClazz checkName = this.getOne(new QueryWrapper<BasicClazz>().lambda()
                     .eq(BasicClazz::getSchoolId, schoolId)
+                    .eq(BasicClazz::getMajorId,majorId)
                     .eq(BasicClazz::getEnable, true)
                     .eq(BasicClazz::getClazzName, clazzName));
             if (Objects.nonNull(checkName)) {
@@ -277,6 +282,7 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
             BasicClazz basicClazz = new BasicClazz();
             basicClazz.setCampusId(campusId);
             basicClazz.setSchoolId(schoolId);
+            basicClazz.setMajorId(majorId);
             if (SystemConstant.strNotNull(clazzCode)) {
                 basicClazz.setClazzCode(clazzCode);
             }

+ 0 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java

@@ -43,10 +43,6 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
     @Resource
     private BasicStudentMapper basicStudentMapper;
     @Resource
-    private TeachcloudCommonService teachcloudCommonService;
-    @Resource
-    private BasicCampusService basicCampusService;
-    @Resource
     private BasicClazzService basicClazzService;
 
     @Override

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/OrgCenterDataDisposeServiceImpl.java

@@ -129,7 +129,7 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
         sysOrgService.saveOrUpdateBatch(updateSysOrgList);
 
         // 权限表未匹配到的学校权限新增
-        Set<Long> schoolIdSet = basicSchoolService.list().stream().map(BaseEntity::getId).collect(Collectors.toSet());
-        teachcloudCommonService.addSchoolPrivilege(schoolIdSet);
+//        Set<Long> schoolIdSet = basicSchoolService.list().stream().map(BaseEntity::getId).collect(Collectors.toSet());
+//        teachcloudCommonService.addSchoolPrivilege(schoolIdSet);
     }
 }

+ 10 - 3
teachcloud-common/src/main/resources/mapper/BasicStudentMapper.xml

@@ -37,6 +37,10 @@
             phone_number AS phoneNumber,
             stu.campus_id AS campusId,
             cam.campus_name AS campusName,
+            so.id AS collegeId,
+            so.name AS collegeName,
+            bm.id AS majorId,
+            bm.name AS majorName,
             clazz_id AS clazzId,
             clz.clazz_name AS clazz,
             stu.enable,
@@ -45,10 +49,13 @@
         FROM
             basic_student stu
                 LEFT JOIN
-            basic_campus cam ON stu.campus_id = cam.id
-                AND cam.enable = TRUE
+            basic_campus cam ON stu.campus_id = cam.id AND cam.enable = TRUE
                 LEFT JOIN
-            basic_clazz clz ON stu.clazz_id = clz.id AND clz.enable = true
+            basic_clazz clz ON stu.clazz_id = clz.id AND clz.enable = TRUE
+                LEFT JOIN
+            basic_major bm ON stu.major_id = bm.id AND bm.enable = TRUE
+                LEFT JOIN
+            sys_org so ON stu.belong_org_id = so.id AND so.enable = TRUE
         <where>
             and stu.enable = true
             <if test="queryParams != null and queryParams != ''">