From 21d1bd0f1f0adf61a009591e897f6401b5091c66 Mon Sep 17 00:00:00 2001 From: xuquan <1099815072@qq.com> Date: Thu, 4 Aug 2022 15:47:21 +0800 Subject: [PATCH] 招生咨询会 --- src/main/java/com/sincere/student/controller/SysYxController.java | 35 +++++++++++++++++++++++------------ src/main/java/com/sincere/student/dto/yx/AddYxSchoolConsultVo.java | 16 +++------------- src/main/java/com/sincere/student/dto/yx/AddYxSchoolVo.java | 27 +++++++++++++++++++++++++++ src/main/java/com/sincere/student/dto/yx/CountYxSchoolConsult.java | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/sincere/student/dto/yx/QueryCountYxSchoolConsult.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/sincere/student/mapper/SysYxSchoolConsultMapper.java | 5 +++++ src/main/java/com/sincere/student/model/yx/SysYxSchool.java | 12 ++++++++++++ src/main/java/com/sincere/student/model/yx/SysYxSchoolConsult.java | 41 +++++++++++++++++++++++++++++++++++++++++ src/main/java/com/sincere/student/service/SysYxColumnService.java | 4 ++++ src/main/java/com/sincere/student/service/impl/SysYxColumnServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- src/main/resources/application.yaml | 4 ++-- src/main/resources/mapper/SysYxSchoolConsultMapper.xml | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/main/resources/mapper/SysYxSchoolMapper.xml | 35 ++++++++++++++++++++++++++++++++--- 13 files changed, 373 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/sincere/student/dto/yx/CountYxSchoolConsult.java create mode 100644 src/main/java/com/sincere/student/dto/yx/QueryCountYxSchoolConsult.java diff --git a/src/main/java/com/sincere/student/controller/SysYxController.java b/src/main/java/com/sincere/student/controller/SysYxController.java index cff8a92..a7ba048 100644 --- a/src/main/java/com/sincere/student/controller/SysYxController.java +++ b/src/main/java/com/sincere/student/controller/SysYxController.java @@ -1,8 +1,11 @@ package com.sincere.student.controller; import com.sincere.student.dto.BaseDto; +import com.sincere.student.dto.IdDto; import com.sincere.student.dto.yx.AddYxSchoolConsultVo; import com.sincere.student.dto.yx.AddYxSchoolVo; +import com.sincere.student.dto.yx.CountYxSchoolConsult; +import com.sincere.student.dto.yx.QueryCountYxSchoolConsult; import com.sincere.student.model.yx.SysYxSchool; import com.sincere.student.model.yx.SysYxSchoolConsult; import com.sincere.student.service.SysYxColumnService; @@ -34,9 +37,9 @@ public class SysYxController { } @ApiOperation("删除学校") - @GetMapping(value = "delSchool") - public BaseDto delSchool(@RequestParam Integer id) { - sysYxColumnService.delSchool(id); + @PostMapping(value = "delSchool") + public BaseDto delSchool(@RequestBody IdDto idDto) { + sysYxColumnService.delSchool(idDto.getId()); return new BaseDto(); } @@ -107,27 +110,35 @@ public class SysYxController { } @ApiOperation("删除咨询会(传主键)") - @GetMapping(value = "/delConsult") - public BaseDto deleteConsult(@RequestParam Integer id) { + @PostMapping(value = "/delConsult") + public BaseDto deleteConsult(@RequestBody IdDto idDto) { BaseDto result = new BaseDto(); - sysYxColumnService.delConsult(id); + sysYxColumnService.delConsult(idDto.getId()); return result; } @ApiOperation("获取详情") - @GetMapping(value = "/getConsultDetail") - public BaseDto getConsultDetail(@RequestParam Integer id) { + @PostMapping(value = "/getConsultDetail") + public BaseDto getConsultDetail(@RequestBody IdDto idDto) { BaseDto result = new BaseDto(); - SysYxSchoolConsult consult = sysYxColumnService.getConsultDetail(id); + SysYxSchoolConsult consult = sysYxColumnService.getConsultDetail(idDto.getId()); result.setData(consult); return result; } @ApiOperation("累加阅读量接口") - @GetMapping(value = "/updateRead") - public BaseDto updateRead(@RequestParam Integer id) { + @PostMapping(value = "/updateRead") + public BaseDto updateRead(@RequestBody IdDto idDto) { BaseDto result = new BaseDto(); - sysYxColumnService.updateRead(id); + sysYxColumnService.updateRead(idDto.getId()); + return result; + } + + @ApiOperation("统计接口") + @PostMapping(value = "/countNum") + public BaseDto> updateRead(@RequestBody QueryCountYxSchoolConsult consult) { + BaseDto> result = new BaseDto<>(); + result.setData(sysYxColumnService.countConsultList(consult)); return result; } } diff --git a/src/main/java/com/sincere/student/dto/yx/AddYxSchoolConsultVo.java b/src/main/java/com/sincere/student/dto/yx/AddYxSchoolConsultVo.java index fa4f993..61c5d66 100644 --- a/src/main/java/com/sincere/student/dto/yx/AddYxSchoolConsultVo.java +++ b/src/main/java/com/sincere/student/dto/yx/AddYxSchoolConsultVo.java @@ -12,7 +12,7 @@ public class AddYxSchoolConsultVo extends PageDto { @ApiModelProperty(value = "学校id") private Integer schoolId; @ApiModelProperty(value = "标题描述") - private Integer titleDesc; + private String titleDesc; @ApiModelProperty(value = "视频地址") private String videoUrl; @ApiModelProperty(value = "内容") @@ -21,8 +21,6 @@ public class AddYxSchoolConsultVo extends PageDto { private String background; @ApiModelProperty(value = "图片地址") private String imgUrl; - @ApiModelProperty(value = "时间") - private Date createTime; @ApiModelProperty(value = "排序") private Integer sort; @ApiModelProperty(value = "状态 0预览1发布") @@ -48,11 +46,11 @@ public class AddYxSchoolConsultVo extends PageDto { this.schoolId = schoolId; } - public Integer getTitleDesc() { + public String getTitleDesc() { return titleDesc; } - public void setTitleDesc(Integer titleDesc) { + public void setTitleDesc(String titleDesc) { this.titleDesc = titleDesc; } @@ -88,14 +86,6 @@ public class AddYxSchoolConsultVo extends PageDto { this.imgUrl = imgUrl; } - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - public Integer getSort() { return sort; } diff --git a/src/main/java/com/sincere/student/dto/yx/AddYxSchoolVo.java b/src/main/java/com/sincere/student/dto/yx/AddYxSchoolVo.java index a1418ce..d7cbcd7 100644 --- a/src/main/java/com/sincere/student/dto/yx/AddYxSchoolVo.java +++ b/src/main/java/com/sincere/student/dto/yx/AddYxSchoolVo.java @@ -9,6 +9,9 @@ public class AddYxSchoolVo extends PageDto { private String schoolName; private Integer schoolType; + private String province; + private String city; + private String area; public Integer getId() { return id; @@ -33,4 +36,28 @@ public class AddYxSchoolVo extends PageDto { public void setSchoolType(Integer schoolType) { this.schoolType = schoolType; } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } } diff --git a/src/main/java/com/sincere/student/dto/yx/CountYxSchoolConsult.java b/src/main/java/com/sincere/student/dto/yx/CountYxSchoolConsult.java new file mode 100644 index 0000000..993e62a --- /dev/null +++ b/src/main/java/com/sincere/student/dto/yx/CountYxSchoolConsult.java @@ -0,0 +1,64 @@ +package com.sincere.student.dto.yx; + +public class CountYxSchoolConsult { + + private String province; + + private String city; + + private String area; + + private Integer addVideoNum; + + private Integer totalVideoNum; + + private Integer totalReadNum; + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public Integer getAddVideoNum() { + return addVideoNum; + } + + public void setAddVideoNum(Integer addVideoNum) { + this.addVideoNum = addVideoNum; + } + + public Integer getTotalVideoNum() { + return totalVideoNum; + } + + public void setTotalVideoNum(Integer totalVideoNum) { + this.totalVideoNum = totalVideoNum; + } + + public Integer getTotalReadNum() { + return totalReadNum; + } + + public void setTotalReadNum(Integer totalReadNum) { + this.totalReadNum = totalReadNum; + } +} \ No newline at end of file diff --git a/src/main/java/com/sincere/student/dto/yx/QueryCountYxSchoolConsult.java b/src/main/java/com/sincere/student/dto/yx/QueryCountYxSchoolConsult.java new file mode 100644 index 0000000..eebe060 --- /dev/null +++ b/src/main/java/com/sincere/student/dto/yx/QueryCountYxSchoolConsult.java @@ -0,0 +1,56 @@ +package com.sincere.student.dto.yx; + +import com.sincere.student.dto.PageDto; + +public class QueryCountYxSchoolConsult extends PageDto { + + private String province; + + private String city; + + private String area; + + private String startTime; + + private String endTime; + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } +} \ No newline at end of file diff --git a/src/main/java/com/sincere/student/mapper/SysYxSchoolConsultMapper.java b/src/main/java/com/sincere/student/mapper/SysYxSchoolConsultMapper.java index 7014689..9e67e60 100644 --- a/src/main/java/com/sincere/student/mapper/SysYxSchoolConsultMapper.java +++ b/src/main/java/com/sincere/student/mapper/SysYxSchoolConsultMapper.java @@ -1,6 +1,7 @@ package com.sincere.student.mapper; import com.sincere.student.dto.yx.AddYxSchoolConsultVo; +import com.sincere.student.dto.yx.QueryCountYxSchoolConsult; import com.sincere.student.model.yx.SysYxSchoolConsult; import org.apache.ibatis.annotations.Param; @@ -22,4 +23,8 @@ public interface SysYxSchoolConsultMapper { List countSort(@Param(value = "sort") int sort, @Param(value = "flag") int flag, @Param(value = "id") Integer id); int updateSort(SysYxSchoolConsult record); + + List countConsultList(QueryCountYxSchoolConsult consult); + +// int getCountConsult(QueryCountYxSchoolConsult record); } \ No newline at end of file diff --git a/src/main/java/com/sincere/student/model/yx/SysYxSchool.java b/src/main/java/com/sincere/student/model/yx/SysYxSchool.java index c344786..b694b92 100644 --- a/src/main/java/com/sincere/student/model/yx/SysYxSchool.java +++ b/src/main/java/com/sincere/student/model/yx/SysYxSchool.java @@ -11,6 +11,10 @@ public class SysYxSchool { private Date createTime; + private String province; + private String city; + private String area; + public Integer getId() { return id; } @@ -42,4 +46,12 @@ public class SysYxSchool { public void setCreateTime(Date createTime) { this.createTime = createTime; } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } } \ No newline at end of file diff --git a/src/main/java/com/sincere/student/model/yx/SysYxSchoolConsult.java b/src/main/java/com/sincere/student/model/yx/SysYxSchoolConsult.java index 81fcc48..ca1c669 100644 --- a/src/main/java/com/sincere/student/model/yx/SysYxSchoolConsult.java +++ b/src/main/java/com/sincere/student/model/yx/SysYxSchoolConsult.java @@ -9,6 +9,8 @@ public class SysYxSchoolConsult { private Integer columnType; + private String titleDesc; + private String videoUrl; private String context; @@ -122,4 +124,43 @@ public class SysYxSchoolConsult { public void setModelList(String modelList) { this.modelList = modelList == null ? null : modelList.trim(); } + + public String getTitleDesc() { + return titleDesc; + } + + public void setTitleDesc(String titleDesc) { + this.titleDesc = titleDesc; + } + + private String province; + + private String city; + + private String area; + + public String getProvince() { + + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } } \ No newline at end of file diff --git a/src/main/java/com/sincere/student/service/SysYxColumnService.java b/src/main/java/com/sincere/student/service/SysYxColumnService.java index 942a71c..28ea08d 100644 --- a/src/main/java/com/sincere/student/service/SysYxColumnService.java +++ b/src/main/java/com/sincere/student/service/SysYxColumnService.java @@ -2,6 +2,8 @@ package com.sincere.student.service; import com.sincere.student.dto.yx.AddYxSchoolConsultVo; import com.sincere.student.dto.yx.AddYxSchoolVo; +import com.sincere.student.dto.yx.CountYxSchoolConsult; +import com.sincere.student.dto.yx.QueryCountYxSchoolConsult; import com.sincere.student.model.ColumnType; import com.sincere.student.model.yx.SysYxSchool; import com.sincere.student.model.yx.SysYxSchoolConsult; @@ -30,4 +32,6 @@ public interface SysYxColumnService { SysYxSchoolConsult getConsultDetail(Integer id); void updateRead(Integer id); + + Page countConsultList(QueryCountYxSchoolConsult consult); } diff --git a/src/main/java/com/sincere/student/service/impl/SysYxColumnServiceImpl.java b/src/main/java/com/sincere/student/service/impl/SysYxColumnServiceImpl.java index 28348d5..7c34d0e 100644 --- a/src/main/java/com/sincere/student/service/impl/SysYxColumnServiceImpl.java +++ b/src/main/java/com/sincere/student/service/impl/SysYxColumnServiceImpl.java @@ -3,22 +3,26 @@ package com.sincere.student.service.impl; import com.github.pagehelper.PageHelper; import com.sincere.student.dto.yx.AddYxSchoolConsultVo; import com.sincere.student.dto.yx.AddYxSchoolVo; +import com.sincere.student.dto.yx.CountYxSchoolConsult; +import com.sincere.student.dto.yx.QueryCountYxSchoolConsult; import com.sincere.student.mapper.SysYxColumnTypeMapper; import com.sincere.student.mapper.SysYxSchoolConsultMapper; import com.sincere.student.mapper.SysYxSchoolMapper; import com.sincere.student.model.ColumnType; -import com.sincere.student.model.yx.SysYxColumnType; -import com.sincere.student.model.yx.SysYxSchool; -import com.sincere.student.model.yx.SysYxSchoolConsult; +import com.sincere.student.model.yx.*; import com.sincere.student.service.SysYxColumnService; import com.sincere.student.utils.Page; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class SysYxColumnServiceImpl implements SysYxColumnService { @@ -149,6 +153,7 @@ public class SysYxColumnServiceImpl implements SysYxColumnService { i++; } } + consult.setCreateTime(new Date()); if(schoolConsultVo.getId() != null){ sysYxSchoolConsultMapper.updateByPrimaryKeySelective(consult); }else { @@ -188,4 +193,46 @@ public class SysYxColumnServiceImpl implements SysYxColumnService { result.setCount(sysYxSchoolConsultMapper.getListCount(vo)); return result; } + + + @Override + public Page countConsultList(QueryCountYxSchoolConsult consult) { + Page result = new Page<>(consult.getPage(), consult.getPageSize()); + PageHelper.startPage(consult.getPage(), consult.getPageSize()); + List list = sysYxSchoolConsultMapper.countConsultList(consult); + List resultConsult = new ArrayList<>(); + if(list.size()>0){ + Map> map = list.parallelStream() + .filter(s->StringUtils.isNotEmpty(s.getArea())) + .collect(Collectors.groupingBy(SysYxSchoolConsult::getArea)); + if(!map.isEmpty()){ + for (Map.Entry> entry : map.entrySet()) { + CountYxSchoolConsult countYxSchoolConsult = new CountYxSchoolConsult(); + + List keyList = entry.getValue(); + SysYxSchoolConsult sysYxSchoolConsult = keyList.get(0); + String area = entry.getKey(); + + QueryCountYxSchoolConsult query = new QueryCountYxSchoolConsult(); + query.setArea(area); + List total = sysYxSchoolConsultMapper.countConsultList(query); + int totalReadNum = total.stream().mapToInt(SysYxSchoolConsult::getReadNumber).sum(); + countYxSchoolConsult.setProvince(sysYxSchoolConsult.getProvince()); + countYxSchoolConsult.setCity(sysYxSchoolConsult.getCity()); + countYxSchoolConsult.setArea(sysYxSchoolConsult.getArea()); + countYxSchoolConsult.setTotalReadNum(totalReadNum); + countYxSchoolConsult.setTotalVideoNum(total.size()); + if(StringUtils.isNotBlank(consult.getStartTime()) && StringUtils.isNotBlank(consult.getEndTime())){ + countYxSchoolConsult.setAddVideoNum(keyList.size()); + }else{ + countYxSchoolConsult.setAddVideoNum(total.size()); + } + resultConsult.add(countYxSchoolConsult); + } + } + } + result.setList(resultConsult); + result.setCount(resultConsult.size()); + return result; + } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 0d5e36f..46532a1 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -31,5 +31,5 @@ mybatis: logging: level: -# com.sincere.student.mapper: info - com.sincere.student.mapper: DEBUG \ No newline at end of file + com.sincere.student.mapper: info +# com.sincere.student.mapper: DEBUG \ No newline at end of file diff --git a/src/main/resources/mapper/SysYxSchoolConsultMapper.xml b/src/main/resources/mapper/SysYxSchoolConsultMapper.xml index 29b8578..4b6d844 100644 --- a/src/main/resources/mapper/SysYxSchoolConsultMapper.xml +++ b/src/main/resources/mapper/SysYxSchoolConsultMapper.xml @@ -14,6 +14,9 @@ + + + id, school_id, title_desc, video_url, context, img_url, sort, status, read_number, @@ -47,7 +50,7 @@ - select count(1) from sys_yx_school_consult @@ -55,7 +58,7 @@ and school_id = #{schoolId} - + and title_desc like #{titleDesc} @@ -196,4 +199,53 @@ update university_consult set sort = #{sort} where id=#{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/SysYxSchoolMapper.xml b/src/main/resources/mapper/SysYxSchoolMapper.xml index 2006089..2327b76 100644 --- a/src/main/resources/mapper/SysYxSchoolMapper.xml +++ b/src/main/resources/mapper/SysYxSchoolMapper.xml @@ -5,10 +5,12 @@ - + + + - id, school_name, school_type, create_time + id, school_name, school_type, create_time,province,city,area