“djh”
2024-12-27 3aae8ddd5b9624626921abdcc33122dccdcd5c61
exam-system/src/main/java/com/gkhy/exam/noncoalmine/service/impl/ExamSiteServiceImpl.java
@@ -1,10 +1,27 @@
package com.gkhy.exam.noncoalmine.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.noncoalmine.entity.ExamSite;
import com.gkhy.exam.noncoalmine.entity.TrainingInstitution;
import com.gkhy.exam.noncoalmine.mapper.ExamSiteMapper;
import com.gkhy.exam.noncoalmine.mapper.TrainingInstitutionMapper;
import com.gkhy.exam.noncoalmine.model.addForm.ExamSiteAddForm;
import com.gkhy.exam.noncoalmine.model.modForm.ExamSiteModForm;
import com.gkhy.exam.noncoalmine.model.query.ExamSiteQuery;
import com.gkhy.exam.noncoalmine.model.vo.ExamSiteVO;
import com.gkhy.exam.noncoalmine.service.ExamSiteService;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysDistrict;
import com.ruoyi.system.service.SysDistrictService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
 * (ExamSite)表服务实现类
@@ -14,6 +31,75 @@
 */
@Service("examSiteService")
public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteMapper, ExamSite> implements ExamSiteService {
   @Autowired
   private SysDistrictService districtService;
   @Autowired
   private ExamSiteMapper examSiteMapper;
   @Autowired
   private TrainingInstitutionMapper institutionMapper;
   @Override
   public List<ExamSiteVO> listByPage(ExamSiteQuery query) {
      SysUser user = SecurityUtils.getLoginUser().getUser();
      if(StringUtils.isEmpty(query.getDistrictCode())){
         //传入区划为空
         if(!user.isAdmin(user.getUserId())){
            //非超管
            List<SysDistrict> districtList = districtService
                  .selectAll()
                  .stream()
                  .filter(sysDistrict -> sysDistrict.getId().equals(user.getDistrictId()))
                  .collect(Collectors.toList());
            if(districtList.size() > 0){
               SysDistrict sysDistrict = districtList.get(0);
               query.setDistrictCode(sysDistrict.getCode());
            }
         }
      }
      List<ExamSiteVO> trainingInstitutionVOS = examSiteMapper.listByPage(query);
      trainingInstitutionVOS.forEach(item->{
         TrainingInstitution trainingInstitution = institutionMapper.selectById(item.getInstitutionId());
         item.setInstitutionName(trainingInstitution != null ? trainingInstitution.getInstitutionName() : "");
      });
      return trainingInstitutionVOS;
   }
   /**
    * 新增
    * @param addForm
    * @return
    */
   @Override
   public int add(ExamSiteAddForm addForm) {
      ExamSite examSite = new ExamSite();
      BeanUtils.copyProperties(addForm,examSite);
      examSite.setDelFlag((byte)0);
      return baseMapper.insert(examSite);
   }
   /**
    * 修改
    * @param modForm
    * @return
    */
   @Override
   public int mod(ExamSiteModForm modForm) {
      ExamSite examSite = new ExamSite();
      BeanUtils.copyProperties(modForm,examSite);
      return baseMapper.updateById(examSite);
   }
   @Override
   public void delBatch(List<Long> siteIds) {
      UpdateWrapper<ExamSite> updateWrapper = new UpdateWrapper<>();
      updateWrapper.in("site_id",siteIds)
            .set("del_flag",(byte)2);
      this.update(updateWrapper);
   }
   @Override
   public List<ExamSite> getSiteByInstitutionId(Long institutionId) {
      List<ExamSite> examSites = baseMapper.selectList(new LambdaQueryWrapper<ExamSite>().eq(ExamSite::getDelFlag, (byte) 0).eq(ExamSite::getInstitutionId, institutionId));
      return examSites;
   }
}