package com.gkhy.exam.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.common.api.CommonPage; import com.gkhy.exam.common.api.CommonResult; import com.gkhy.exam.common.exception.ApiException; import com.gkhy.exam.common.utils.PageUtils; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.system.domain.ExpectContent; import com.gkhy.exam.system.domain.ExpectContentMess; import com.gkhy.exam.system.domain.ExpectDiscren; import com.gkhy.exam.system.mapper.ExpectContentMapper; import com.gkhy.exam.system.mapper.ExpectDiscrenMapper; import com.gkhy.exam.system.service.ExpectDiscrenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Service public class ExpectDiscrenServiceImpl extends ServiceImpl implements ExpectDiscrenService { @Autowired private ExpectDiscrenMapper expectDiscrenMapper; @Autowired private ExpectContentMapper expectContentMapper; @Override public CommonPage selectExpectDiscrenList(ExpectDiscren expectDiscren) { if (!SecurityUtils.adminUser()){ if (expectDiscren.getCompanyId()==null){ throw new ApiException("非管理员操作,企业id不可为空"); } } PageUtils.startPage(); List expectDiscrens = expectDiscrenMapper.selectDiscrenList(expectDiscren); for (ExpectDiscren discren : expectDiscrens) { List expectContents = expectContentMapper.selectByDiscrenId(discren.getId()); for (ExpectContent expectContent : expectContents) { List expectContentMesses = expectContentMapper.selectByContentId(expectContent.getId()); expectContent.setExpectContentMesses(expectContentMesses); } discren.setExpectContents(expectContents); } return CommonPage.restPage(expectDiscrens); } @Override @Transactional public CommonResult insertExpectDiscren(ExpectDiscren expectDiscren) { List expectDiscrens = expectDiscrenMapper.selectCompanyIdAndDeptId(expectDiscren); if (expectDiscrens.size()>0){ throw new ApiException("当前企业已有数据,请删除后重试"); } expectDiscren.setCreateBy(SecurityUtils.getUsername()); expectDiscren.setCreateTime(LocalDateTime.now()); expectDiscrenMapper.insert(expectDiscren); List expectContents = expectDiscren.getExpectContents(); //循环新增相关方需求 List expectContentMesseslist = new ArrayList<>(); for (ExpectContent expectContent : expectContents) { expectContent.setExpectDiscrenId(expectDiscren.getId()); expectContentMapper.insert(expectContent); //循环新增相关方需求详细内容 List expectContentMesses = expectContent.getExpectContentMesses(); for (ExpectContentMess expectContentMess : expectContentMesses) { expectContentMess.setExpectContentId(expectContent.getId()); } expectContentMesseslist.addAll(expectContentMesses); } expectContentMapper.insertContentMess(expectContentMesseslist); return CommonResult.success(); } @Override public CommonResult updateExpectDiscren(ExpectDiscren expectDiscren) { expectDiscren.setUpdateBy(SecurityUtils.getUsername()); expectDiscren.setUpdateTime(LocalDateTime.now()); expectDiscrenMapper.updateById(expectDiscren); List expectContents = expectDiscren.getExpectContents(); expectContentMapper.deletedByDiscrenId(expectDiscren.getId()); List expectContentMesses = new ArrayList<>(); for (ExpectContent expectContent : expectContents) { expectContent.setId(null); expectContentMapper.insert(expectContent); List expectContentMesses1 = expectContent.getExpectContentMesses(); for (ExpectContentMess expectContentMess : expectContentMesses1) { expectContentMess.setExpectContentId(expectContent.getId()); } expectContentMesses.addAll(expectContentMesses1); } expectContentMapper.insertContentMess(expectContentMesses); return CommonResult.success(); } @Override public CommonResult deletedExpectDiscren(Integer expectDiscrenId) { ExpectDiscren expectDiscren = new ExpectDiscren(); expectDiscren.setId(expectDiscrenId); expectDiscren.setUpdateBy(SecurityUtils.getUsername()); expectDiscren.setUpdateTime(LocalDateTime.now()); expectDiscren.setDelFlag(2); expectDiscrenMapper.updateById(expectDiscren); return CommonResult.success(); } @Override public CommonResult selectExpectDiscrenListAll(ExpectDiscren expectDiscren) { List expectDiscrens = expectDiscrenMapper.selectDiscrenList(expectDiscren); for (ExpectDiscren discren : expectDiscrens) { List expectContents = expectContentMapper.selectByDiscrenId(discren.getId()); for (ExpectContent expectContent : expectContents) { List expectContentMesses = expectContentMapper.selectByContentId(expectContent.getId()); expectContent.setExpectContentMesses(expectContentMesses); } discren.setExpectContents(expectContents); } return CommonResult.success(expectDiscrens); } }