|
@@ -1,15 +1,30 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
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.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.distributed.print.business.bean.params.BasicMajorParams;
|
|
import com.qmth.distributed.print.business.bean.params.BasicMajorParams;
|
|
import com.qmth.distributed.print.business.bean.result.BasicMajorResult;
|
|
import com.qmth.distributed.print.business.bean.result.BasicMajorResult;
|
|
import com.qmth.distributed.print.business.entity.BasicMajor;
|
|
import com.qmth.distributed.print.business.entity.BasicMajor;
|
|
import com.qmth.distributed.print.business.mapper.BasicMajorMapper;
|
|
import com.qmth.distributed.print.business.mapper.BasicMajorMapper;
|
|
import com.qmth.distributed.print.business.service.BasicMajorService;
|
|
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.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
* 专业字典表 服务实现类
|
|
* 专业字典表 服务实现类
|
|
@@ -20,21 +35,73 @@ import org.springframework.transaction.annotation.Transactional;
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
public class BasicMajorServiceImpl extends ServiceImpl<BasicMajorMapper, BasicMajor> implements BasicMajorService {
|
|
public class BasicMajorServiceImpl extends ServiceImpl<BasicMajorMapper, BasicMajor> implements BasicMajorService {
|
|
|
|
+ @Resource
|
|
|
|
+ private BasicClazzService basicClazzService;
|
|
|
|
+ @Resource
|
|
|
|
+ private BasicStudentService basicStudentService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public IPage<BasicMajorResult> basicMajorPage(Long schoolId, String majorName, int pageNumber, int pageSize) {
|
|
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
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public Long saveBasicMajor(BasicMajorParams basicMajorParams) throws IllegalAccessException {
|
|
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
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public boolean deleteBasicMajorById(Long id) {
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|