ConsultServiceImpl.java 3.87 KB
package com.sincere.student.service.impl;

import com.github.pagehelper.PageHelper;
import com.sincere.student.dto.ColumnDto;
import com.sincere.student.dto.ConsultSearchDto;
import com.sincere.student.enums.ColumnEnums;
import com.sincere.student.mapper.ColumnMapper;
import com.sincere.student.mapper.UniversityConsultDetailMapper;
import com.sincere.student.mapper.UniversityConsultMapper;
import com.sincere.student.model.ColumnType;
import com.sincere.student.model.Consult;
import com.sincere.student.model.UniversityConsult;
import com.sincere.student.model.UniversityConsultDetail;
import com.sincere.student.service.ConsultService;
import com.sincere.student.utils.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ConsultServiceImpl implements ConsultService {

    @Autowired
    UniversityConsultMapper universityConsultMapper ;

    @Autowired
    UniversityConsultDetailMapper universityConsultDetailMapper ;

    @Autowired
    ColumnMapper columnMapper ;

    @Override
    public Page<Consult> getList(ConsultSearchDto consultSearchDto) {
        Page<Consult> page = new Page<>(consultSearchDto.getPage(),consultSearchDto.getPageSize());
        if(StringUtils.isNotBlank(consultSearchDto.getUniversityName())){
            consultSearchDto.setUniversityName("%"+consultSearchDto.getUniversityName()+"%");
        }
        if(StringUtils.isNotBlank(consultSearchDto.getMajorName())){
            consultSearchDto.setMajorName("%"+consultSearchDto.getMajorName()+"%");
        }
        PageHelper.startPage(consultSearchDto.getPage(),consultSearchDto.getPageSize());
        List<Consult> list =universityConsultMapper.getList(consultSearchDto) ;
        ColumnDto columnDto = new ColumnDto();
        columnDto.setType(ColumnEnums.university.getType());
        List<ColumnType> columnTypes = columnMapper.getList(columnDto);
        for(Consult consult : list){
            for(ColumnType columnType :columnTypes){
                if(consult.getColumnType() == columnType.getId()){
                    consult.setColumnTypeName(columnType.getName());
                }
            }
        }
        page.setList(list);
        page.setCount(universityConsultMapper.getListCount(consultSearchDto));
        return page;
    }

    @Override
    public Page<Consult> getColumnList(int columnType , int page ,int pageSize) {
        Page<Consult> result = new Page<>(page,pageSize);
        PageHelper.startPage(page,pageSize);
        result.setList(universityConsultMapper.getColumnList(columnType));
        result.setCount(universityConsultMapper.getColumnListCount(columnType));
        return result;
    }

    @Override
    public Consult getDetail(int id) {
        Consult consult = universityConsultMapper.selectByPrimaryKey(id);
        consult.setList(universityConsultDetailMapper.selectByConsult(id));
        return consult ;
    }

    @Override
    public int create(UniversityConsult consult) {
        universityConsultMapper.insert(consult);
        for(UniversityConsultDetail detail : consult.getList()){
            detail.setConsultId(consult.getId());
            universityConsultDetailMapper.insert(detail);
        }
        return 1 ;
    }

    @Override
    public int update(UniversityConsult consult) {
        universityConsultMapper.updateByPrimaryKeySelective(consult);
        universityConsultDetailMapper.deleteByPrimaryKey(consult.getId());
        for(UniversityConsultDetail detail : consult.getList()){
            detail.setConsultId(consult.getId());
            universityConsultDetailMapper.insert(detail);
        }
        return  1 ;
    }

    @Override
    public int delete(int id) {
        universityConsultMapper.deleteByPrimaryKey(id);
        universityConsultDetailMapper.deleteByPrimaryKey(id);
        return 1 ;

    }
}