ConsultServiceImpl.java
5.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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<Consult> selectByUniversityIdAndColumnType(int universityId, int columnType) {
UniversityConsult consult = new UniversityConsult();
consult.setColumnType(columnType);
consult.setUniversityId(universityId);
return universityConsultMapper.selectByUniversityIdAndColumnType(consult);
}
@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) {
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<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);
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<Consult> 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<Consult> 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;
}
}