| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package com.qxgmat.service.inline;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.AbstractService;
- import com.nuliji.tools.exception.ParameterException;
- import com.nuliji.tools.exception.SystemException;
- import com.nuliji.tools.mybatis.Example;
- import com.qxgmat.data.dao.ExaminationStructMapper;
- import com.qxgmat.data.dao.entity.ExaminationPaper;
- import com.qxgmat.data.dao.entity.ExaminationStruct;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.cache.annotation.CacheEvict;
- import org.springframework.cache.annotation.Cacheable;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service
- public class ExaminationStructService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(ExaminationStructService.class);
- @Resource
- private ExaminationStructMapper examinationStructMapper;
- @Cacheable(value = "examination_struct/main")
- public List<ExaminationStruct> main(){
- List<ExaminationStruct> list = all();
- return list.stream()
- .filter((ExaminationStruct b) -> b.getLevel()<=2)
- .collect(Collectors.toList());
- }
- @Cacheable(value = "examination_struct", key="children/#id/#children")
- public List<ExaminationStruct> children(Integer id, boolean children){
- List<ExaminationStruct> list = all();
- List<Integer> ids = new ArrayList<>();
- return list.stream()
- .filter((ExaminationStruct b) -> {
- if (b.getParentId().equals(id)){
- if (children) ids.add(b.getId());
- return true;
- }else if(ids.contains(b.getParentId())){
- if (children) ids.add(b.getId());
- return true;
- }
- return false;
- } )
- .collect(Collectors.toList());
- }
- @Cacheable(value = "examination_struct/all")
- public List<ExaminationStruct> all(){
- Example example = new Example(ExaminationStruct.class);
- example.setOrderByClause("level asc, id asc");
- return select(examinationStructMapper);
- }
- @CacheEvict(value={"examination_struct", "examination_struct/main", "examination_struct/all"}, allEntries = true)
- public ExaminationStruct add(ExaminationStruct struct){
- if(struct.getParentId() > 0){
- ExaminationStruct parent = get(struct.getParentId());
- struct.setLevel(parent.getLevel()+1);
- }else{
- struct.setLevel(1);
- }
- int result = insert(examinationStructMapper, struct);
- struct = one(examinationStructMapper, struct.getId());
- if(struct == null){
- throw new SystemException("添加失败");
- }
- return struct;
- }
- @CacheEvict(value={"examination_struct", "examination_struct/main", "examination_struct/all"}, allEntries = true)
- public ExaminationStruct edit(ExaminationStruct struct){
- ExaminationStruct in = one(examinationStructMapper, struct.getId());
- if(in == null){
- throw new ParameterException("层级不存在");
- }
- int result = update(examinationStructMapper, struct);
- return struct;
- }
- @CacheEvict(value={"examination_struct", "examination_struct/main", "examination_struct/all"}, allEntries = true)
- public boolean delete(Number id){
- ExaminationStruct in = one(examinationStructMapper, id);
- if(in == null){
- throw new ParameterException("层级不存在");
- }
- int result = delete(examinationStructMapper, id);
- return result > 0;
- }
- public ExaminationStruct get(Number id){
- ExaminationStruct in = one(examinationStructMapper, id);
- if(in == null){
- throw new ParameterException("层级不存在");
- }
- return in;
- }
- public Page<ExaminationStruct> select(int page, int pageSize){
- return select(examinationStructMapper, page, pageSize);
- }
- public List<ExaminationStruct> select(Collection ids){
- return select(examinationStructMapper, ids);
- }
- }
|