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.*; 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 org.springframework.util.CollectionUtils; import java.util.Arrays; import java.util.List; @Service public class ConsultServiceImpl implements ConsultService { @Autowired UniversityConsultMapper universityConsultMapper; @Autowired UniversityConsultDetailMapper universityConsultDetailMapper; @Autowired ColumnMapper columnMapper; @Override public List selectByUniversityIdAndColumnType(int universityId, int columnType) { UniversityConsult consult = new UniversityConsult(); consult.setColumnType(columnType); consult.setUniversityId(universityId); return universityConsultMapper.selectByUniversityIdAndColumnType(consult); } @Override public Page getList(ConsultSearchDto consultSearchDto) { Page 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 list = universityConsultMapper.getList(consultSearchDto); ColumnDto columnDto = new ColumnDto(); columnDto.setType(ColumnEnums.university.getType()); List columnTypes = columnMapper.getList(columnDto); for (Consult consult : list) { Consult newConsut = universityConsultMapper.selectByPrimaryKey(consult.getId()); consult.setModelList(newConsut.getModelList()); 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 getColumnList(int columnType, int page, int pageSize) { Page 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); universityConsultMapper.updateRead(id); try { consult.setVideoUrlList(Arrays.asList(consult.getVideoUrl().split(","))); } catch (Exception e) { } consult.setList(universityConsultDetailMapper.selectByConsult(id)); return consult; } @Override public int create(UniversityConsult consult) { //排序 Integer sort = consult.getSort(); List consultList = universityConsultMapper.countSort(sort.intValue(), 1, null); if (!CollectionUtils.isEmpty(consultList)) { int i = 1; for (Consult oldConsult : consultList) { int addSort = i + sort; if (addSort > oldConsult.getSort()) { //若已存在自增1 oldConsult.setSort(oldConsult.getSort() + 1); universityConsultMapper.updateSort(oldConsult); } i++; } } universityConsultMapper.insert(consult); for (UniversityConsultDetail detail : consult.getList()) { detail.setConsultId(consult.getId()); universityConsultDetailMapper.insert(detail); } return consult.getId(); } @Override public int update(UniversityConsult consult) { //排序 Integer sort = consult.getSort(); List consultList = universityConsultMapper.countSort(sort.intValue(), 2, consult.getId()); if (!CollectionUtils.isEmpty(consultList)) { int i = 1; for (Consult oldConsult : consultList) { int addSort = i + sort; if (addSort > oldConsult.getSort()) { //若已存在自增1 oldConsult.setSort(oldConsult.getSort() + 1); universityConsultMapper.updateSort(oldConsult); } i++; } } 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; } }