diff --git a/huike-admin/pom.xml b/huike-admin/pom.xml index d4c25a723bbb4dca1fccb8a4d4a036681473eb8d..01eee9f6a1d660dfc923078fc60689b83b23ed7d 100644 --- a/huike-admin/pom.xml +++ b/huike-admin/pom.xml @@ -91,6 +91,11 @@ 3.4.0 compile + + com.fhs-opensource + mybatis-plus-boot-starter + 4.0.5 + com.huike diff --git a/huike-admin/src/main/java/com/huike/web/controller/report/IndexController.java b/huike-admin/src/main/java/com/huike/web/controller/report/IndexController.java index bba680c1ffc29732e9d4cad6b346846ce061c5f8..438a28d7fbaf4573a2a8da41555ef7739f35a4e0 100644 --- a/huike-admin/src/main/java/com/huike/web/controller/report/IndexController.java +++ b/huike-admin/src/main/java/com/huike/web/controller/report/IndexController.java @@ -1,11 +1,45 @@ package com.huike.web.controller.report; +import com.huike.clues.service.impl.TbActivityServiceImpl; +import com.huike.common.core.domain.AjaxResult; +import com.huike.report.domain.vo.IndexSalesStatistic; +import com.huike.report.service.IReportService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + @RestController @RequestMapping("/index") +@Slf4j public class IndexController { + @Autowired + private IReportService iReportService; + + @GetMapping("/salesStatistic") + private AjaxResult salesStatistic(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate beginCreateTime , + @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate endCreateTime){ + log.info("线索转化龙虎榜接口:{},{}",beginCreateTime,endCreateTime); + List list = iReportService.salesStatistic(beginCreateTime,endCreateTime); + + return AjaxResult.success(list); + } + + @GetMapping("/businessChangeStatistics") + private AjaxResult businessChangeStatistics(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate beginCreateTime , + @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate endCreateTime){ + log.info("线索转化龙虎榜接口:{},{}",beginCreateTime,endCreateTime); + List list = iReportService.businessChangeStatistics(beginCreateTime,endCreateTime); + + return AjaxResult.success(list); + } } \ No newline at end of file diff --git a/huike-admin/src/main/resources/application.yml b/huike-admin/src/main/resources/application.yml index a0cd5ff19d0121943f696249f02543024f30c6a6..982870ab7d81eb063689f354f5a71a6c4ea78c41 100644 --- a/huike-admin/src/main/resources/application.yml +++ b/huike-admin/src/main/resources/application.yml @@ -62,7 +62,7 @@ spring: # 数据库索引 database: 0 # 密码 - password: 123456 + password: 1234 #e # 连接超时时间 timeout: 10s @@ -104,7 +104,7 @@ pagehelper: supportMethodsArguments: true params: count=countSql -# Miniio配置 +# Minio配置 minio: endpoint: 127.0.0.1 port: 9000 diff --git a/huike-business/src/main/java/com/huike/business/mapper/TbBusinessMapper.java b/huike-business/src/main/java/com/huike/business/mapper/TbBusinessMapper.java index c6965df3619a3804b9d9f8f427c51582a548f48d..6384dcfd048545c266b31ea44e60c5fb95c1adcc 100644 --- a/huike-business/src/main/java/com/huike/business/mapper/TbBusinessMapper.java +++ b/huike-business/src/main/java/com/huike/business/mapper/TbBusinessMapper.java @@ -6,12 +6,14 @@ import java.util.Map; import com.huike.business.domain.TbBusiness; import com.huike.clues.domain.vo.IndexStatisticsVo; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 商机Mapper接口 * @date 2021-04-25 */ +@Mapper public interface TbBusinessMapper { /** * 查询商机 diff --git a/huike-clues/pom.xml b/huike-clues/pom.xml index 3897ad37142913268a96209508ad939900514af5..81536a98f1b5d682d96b5f9a97002f58cd644387 100644 --- a/huike-clues/pom.xml +++ b/huike-clues/pom.xml @@ -35,7 +35,12 @@ com.huike huike-system - + diff --git a/huike-clues/src/main/java/com/huike/clues/mapper/TbActivityMapper.java b/huike-clues/src/main/java/com/huike/clues/mapper/TbActivityMapper.java index 388f45e7e6bc69871573e6917abe17998aa79554..6a4b4704e9c1df46e1355808296ee62b576067c2 100644 --- a/huike-clues/src/main/java/com/huike/clues/mapper/TbActivityMapper.java +++ b/huike-clues/src/main/java/com/huike/clues/mapper/TbActivityMapper.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.huike.clues.domain.TbActivity; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** @@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Param; * @author wgl * @date 2021-04-01 */ +@Mapper public interface TbActivityMapper { /** * 查询活动管理 diff --git a/huike-clues/src/main/java/com/huike/clues/mapper/TbAssignRecordMapper.java b/huike-clues/src/main/java/com/huike/clues/mapper/TbAssignRecordMapper.java index 352642b64af5bd7da62e132f63c3d258ec410cbd..7cfadbfbf4a05131712ff97669d45a370ec3f933 100644 --- a/huike-clues/src/main/java/com/huike/clues/mapper/TbAssignRecordMapper.java +++ b/huike-clues/src/main/java/com/huike/clues/mapper/TbAssignRecordMapper.java @@ -2,12 +2,14 @@ package com.huike.clues.mapper; import java.util.List; import com.huike.clues.domain.TbAssignRecord; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 线索分配记录Mapper接口 * @date 2021-04-19 */ +@Mapper public interface TbAssignRecordMapper { /** diff --git a/huike-clues/src/main/java/com/huike/clues/mapper/TbClueMapper.java b/huike-clues/src/main/java/com/huike/clues/mapper/TbClueMapper.java index 0be8696d19724dd4ca5ad7da411789b64c9bd150..f32b5b0d26f6e1f60a0bb98f712248346147c853 100644 --- a/huike-clues/src/main/java/com/huike/clues/mapper/TbClueMapper.java +++ b/huike-clues/src/main/java/com/huike/clues/mapper/TbClueMapper.java @@ -1,11 +1,13 @@ package com.huike.clues.mapper; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.Map; import com.huike.clues.domain.TbClue; import com.huike.clues.domain.vo.IndexStatisticsVo; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** @@ -13,6 +15,7 @@ import org.apache.ibatis.annotations.Param; * @date 2021-04-02 */ +@Mapper public interface TbClueMapper { /** * 查询线索管理 diff --git a/huike-clues/src/main/java/com/huike/clues/service/impl/TbActivityServiceImpl.java b/huike-clues/src/main/java/com/huike/clues/service/impl/TbActivityServiceImpl.java index 6e793d75d23f0acdde303c1471a7fe2821ae684a..71810ff42e8fa3d78212e70d4b27102dfac7d521 100644 --- a/huike-clues/src/main/java/com/huike/clues/service/impl/TbActivityServiceImpl.java +++ b/huike-clues/src/main/java/com/huike/clues/service/impl/TbActivityServiceImpl.java @@ -1,9 +1,6 @@ package com.huike.clues.service.impl; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import com.huike.common.utils.uuid.UUIDUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -59,6 +56,12 @@ public class TbActivityServiceImpl implements ITbActivityService { */ @Override public List selectTbActivityList(TbActivity tbActivity) { + if(tbActivity.getEndTime() == null && tbActivity.getBeginTime()== null){ + Date now = new Date(); + // tbActivity.setBeginTime(now); + tbActivity.setEndTime(now); + tbActivity.setBeginTime(now); + } return tbActivityMapper.selectTbActivityList(tbActivity); } diff --git a/huike-clues/src/main/java/com/huike/clues/strategy/Rule.java b/huike-clues/src/main/java/com/huike/clues/strategy/Rule.java index f99ebabbd33289ac2f4916c0721df4fb1cdb310b..e62783b63e2148a6bad5e3fc0e9289d1d24bd3ff 100644 --- a/huike-clues/src/main/java/com/huike/clues/strategy/Rule.java +++ b/huike-clues/src/main/java/com/huike/clues/strategy/Rule.java @@ -2,6 +2,7 @@ package com.huike.clues.strategy; import com.huike.clues.domain.TbClue; import com.huike.clues.domain.TbRuleAssign; +import org.springframework.stereotype.Component; import java.util.List; @@ -12,6 +13,7 @@ import java.util.List; * admin 选择adminStrategy作为策略的实现类 * rule 选择RuleStrategy作为策略的实现类 */ +@Component public interface Rule { /** diff --git a/huike-clues/src/main/resources/mapper/clues/TbActivityMapper.xml b/huike-clues/src/main/resources/mapper/clues/TbActivityMapper.xml index 5be9b3edf644d5781a9d0ea5bdfa3c5048b6206e..abc6018a8345fcdaa8ae1bbfc9cc84afa98b8bc1 100644 --- a/huike-clues/src/main/resources/mapper/clues/TbActivityMapper.xml +++ b/huike-clues/src/main/resources/mapper/clues/TbActivityMapper.xml @@ -26,7 +26,7 @@ + \ No newline at end of file diff --git a/huike-report/pom.xml b/huike-report/pom.xml index 57c775e62ddb0b351719f760475ca2494c839d41..dd4142c698adfe5dd1bf0ce88ff5d377383c2973 100644 --- a/huike-report/pom.xml +++ b/huike-report/pom.xml @@ -24,6 +24,12 @@ 3.4.0 compile + + com.fhs-opensource + mybatis-plus-annotation + 4.0.5 + compile + \ No newline at end of file diff --git a/huike-report/src/main/java/com/huike/report/domain/vo/IndexSalesStatistic.java b/huike-report/src/main/java/com/huike/report/domain/vo/IndexSalesStatistic.java new file mode 100644 index 0000000000000000000000000000000000000000..4e113e6faceb77f0a7c50f1d54d6b6284f8ce82e --- /dev/null +++ b/huike-report/src/main/java/com/huike/report/domain/vo/IndexSalesStatistic.java @@ -0,0 +1,19 @@ +package com.huike.report.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author 卢鹏程 + * @version 1.0 + */ +@Data +public class IndexSalesStatistic { + private String create_by; + private String deptName; + private Integer num; + private Long dep_id; + private BigDecimal radio; +} diff --git a/huike-report/src/main/java/com/huike/report/domain/vo/IndexSalesStatisticCp.java b/huike-report/src/main/java/com/huike/report/domain/vo/IndexSalesStatisticCp.java new file mode 100644 index 0000000000000000000000000000000000000000..1c1b5aabe260b823b71e1008ebb468eacbe45614 --- /dev/null +++ b/huike-report/src/main/java/com/huike/report/domain/vo/IndexSalesStatisticCp.java @@ -0,0 +1,18 @@ +package com.huike.report.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author 卢鹏程 + * @version 1.0 + */ +@Data +public class IndexSalesStatisticCp { + private String createBy; + private String deptName; + private Integer num; + private Long depId; + private BigDecimal radio; +} diff --git a/huike-report/src/main/java/com/huike/report/mapper/ReportMapper.java b/huike-report/src/main/java/com/huike/report/mapper/ReportMapper.java index 7554cd09aa2e52aca0b6396c7db75aa402068dc4..e7d3d3799d8a687b09da5b4aeca0c6179717b853 100644 --- a/huike-report/src/main/java/com/huike/report/mapper/ReportMapper.java +++ b/huike-report/src/main/java/com/huike/report/mapper/ReportMapper.java @@ -1,7 +1,12 @@ package com.huike.report.mapper; +import java.time.LocalDateTime; +import java.util.List; import java.util.Map; +import com.huike.report.domain.vo.IndexSalesStatistic; +import com.huike.report.domain.vo.IndexSalesStatisticCp; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.huike.clues.domain.vo.IndexStatisticsVo; @@ -11,6 +16,7 @@ import com.huike.clues.domain.vo.IndexStatisticsVo; * @author Administrator * */ +@Mapper public interface ReportMapper { /**=========================================基本数据========================================*/ @@ -21,5 +27,11 @@ public interface ReportMapper { /**=========================================待办========================================*/ + Integer getCountClues(@Param("begin")LocalDateTime begin,@Param("end")LocalDateTime end); + List getStatistic(@Param("begin") LocalDateTime begin, @Param("end") LocalDateTime end); + + List getBusinessChangeStatistics(@Param("begin")LocalDateTime begin,@Param("end") LocalDateTime end); + + Integer getCountBusiness(@Param("begin")LocalDateTime begin, @Param("end")LocalDateTime end); } diff --git a/huike-report/src/main/java/com/huike/report/service/IReportService.java b/huike-report/src/main/java/com/huike/report/service/IReportService.java index 92d920c6c456d26ad757f6ed55115a7f714fc4b8..0f103d25a2d9bc5321ae8907cd84706a7c82d71c 100644 --- a/huike-report/src/main/java/com/huike/report/service/IReportService.java +++ b/huike-report/src/main/java/com/huike/report/service/IReportService.java @@ -1,5 +1,7 @@ package com.huike.report.service; +import java.time.LocalDate; +import java.util.Date; import java.util.List; import java.util.Map; @@ -13,4 +15,7 @@ import com.huike.contract.domain.TbContract; public interface IReportService { + List salesStatistic(LocalDate beginCreateTime, LocalDate endCreateTime); + + List businessChangeStatistics(LocalDate beginCreateTime, LocalDate endCreateTime); } diff --git a/huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java b/huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java index 9f837473543f59865dddfa9a29633fa7376a05b3..2ad69ecd55d712cf1969e55fc05592aa3efeedb3 100644 --- a/huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java +++ b/huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java @@ -3,15 +3,13 @@ package com.huike.report.service.impl; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.*; +import java.util.stream.Collectors; +import com.huike.clues.mapper.*; import com.huike.report.domain.vo.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,11 +20,6 @@ import com.huike.clues.domain.TbActivity; import com.huike.clues.domain.TbAssignRecord; import com.huike.clues.domain.TbClue; import com.huike.clues.domain.vo.IndexStatisticsVo; -import com.huike.clues.mapper.SysDeptMapper; -import com.huike.clues.mapper.SysDictDataMapper; -import com.huike.clues.mapper.TbActivityMapper; -import com.huike.clues.mapper.TbAssignRecordMapper; -import com.huike.clues.mapper.TbClueMapper; import com.huike.common.core.domain.entity.SysDept; import com.huike.common.utils.SecurityUtils; import com.huike.contract.domain.TbContract; @@ -37,6 +30,20 @@ import com.huike.report.service.IReportService; @Service public class ReportServiceImpl implements IReportService { + @Autowired + private ReportMapper reportMapper; + @Autowired + private TbClueMapper tbClueMapper; + @Autowired + private TbAssignRecordMapper tbAssignRecordMapper; + @Autowired + private TbBusinessMapper tbBusinessMapper; + @Autowired + private SysUserMapper sysUserMapper; + @Autowired + private SysDeptMapper sysDeptMapper; + + /** * *************看我看我************** @@ -80,7 +87,7 @@ public class ReportServiceImpl implements IReportService { * @param num * @return */ - private BigDecimal getRadio(Integer all,Long num) { + private BigDecimal getRadio(Integer all,Integer num) { if(all.intValue()==0){ return new BigDecimal(0); } @@ -91,4 +98,43 @@ public class ReportServiceImpl implements IReportService { } + @Override + public List salesStatistic(LocalDate beginCreateTime, LocalDate endCreateTime) { + LocalDateTime begin = LocalDateTime.of(beginCreateTime, LocalTime.MIN); + LocalDateTime end = LocalDateTime.of(endCreateTime, LocalTime.MAX); + Integer count = reportMapper.getCountClues(begin,end); + List list = reportMapper.getStatistic(begin,end); + List list2 = new ArrayList<>(); + list.stream().forEach(s -> { + IndexSalesStatistic indexSalesStatistic = new IndexSalesStatistic(); + BeanUtils.copyProperties(s,indexSalesStatistic); + indexSalesStatistic.setCreate_by(s.getCreateBy()); + indexSalesStatistic.setDep_id(s.getDepId()); + BigDecimal radio = new ReportServiceImpl().getRadio(count, s.getNum()); + indexSalesStatistic.setRadio(radio); + list2.add(indexSalesStatistic); + }); + List listq = list2.stream().sorted(Comparator.comparing(IndexSalesStatistic::getRadio).reversed()).collect(Collectors.toList()); + return listq; + } + + @Override + public List businessChangeStatistics(LocalDate beginCreateTime, LocalDate endCreateTime) { + LocalDateTime begin = LocalDateTime.of(beginCreateTime, LocalTime.MIN); + LocalDateTime end = LocalDateTime.of(endCreateTime, LocalTime.MAX); + Integer count = reportMapper.getCountBusiness(begin,end); + List list = reportMapper.getBusinessChangeStatistics(begin,end); + List list2 = new ArrayList<>(); + list.stream().forEach(s -> { + IndexSalesStatistic indexSalesStatistic = new IndexSalesStatistic(); + BeanUtils.copyProperties(s,indexSalesStatistic); + indexSalesStatistic.setCreate_by(s.getCreateBy()); + indexSalesStatistic.setDep_id(s.getDepId()); + BigDecimal radio = new ReportServiceImpl().getRadio(count, s.getNum()); + indexSalesStatistic.setRadio(radio); + list2.add(indexSalesStatistic); + }); + List list1 = list2.stream().sorted(Comparator.comparing(IndexSalesStatistic::getRadio).reversed()).collect(Collectors.toList()); + return list1; + } } \ No newline at end of file diff --git a/huike-report/src/main/resources/mapper/report/ReportMapper.xml b/huike-report/src/main/resources/mapper/report/ReportMapper.xml index 73a50b4298b62d8138acccdf2bcb0c78edf917f4..3ff9f1cdd08ab3a1958b36a5a14364af027ead58 100644 --- a/huike-report/src/main/resources/mapper/report/ReportMapper.xml +++ b/huike-report/src/main/resources/mapper/report/ReportMapper.xml @@ -3,7 +3,59 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + \ No newline at end of file diff --git a/huike-system/src/main/java/com/huike/clues/mapper/SysDeptMapper.java b/huike-system/src/main/java/com/huike/clues/mapper/SysDeptMapper.java index 39fae8821047e7fa6235856bc9a8daa082e848d7..13dd577dd56610626fa907e3a36b71c7563a0f92 100644 --- a/huike-system/src/main/java/com/huike/clues/mapper/SysDeptMapper.java +++ b/huike-system/src/main/java/com/huike/clues/mapper/SysDeptMapper.java @@ -1,6 +1,8 @@ package com.huike.clues.mapper; import java.util.List; + +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.huike.common.core.domain.entity.SysDept; @@ -9,6 +11,7 @@ import com.huike.common.core.domain.entity.SysDept; * * */ +@Mapper public interface SysDeptMapper { /** * 查询部门管理数据 diff --git a/huike-system/src/main/java/com/huike/clues/mapper/SysDictDataMapper.java b/huike-system/src/main/java/com/huike/clues/mapper/SysDictDataMapper.java index a9cfd23fd430bb86ba50819696ed155d4502008a..bbbf8ad203cd0eb4fcb51889891ae543c78f1875 100644 --- a/huike-system/src/main/java/com/huike/clues/mapper/SysDictDataMapper.java +++ b/huike-system/src/main/java/com/huike/clues/mapper/SysDictDataMapper.java @@ -1,6 +1,8 @@ package com.huike.clues.mapper; import java.util.List; + +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.huike.common.core.domain.entity.SysDictData; @@ -9,6 +11,7 @@ import com.huike.common.core.domain.entity.SysDictData; * * */ +@Mapper public interface SysDictDataMapper{ /** * 根据条件分页查询字典数据 diff --git a/huike-system/src/main/java/com/huike/clues/mapper/SysUserMapper.java b/huike-system/src/main/java/com/huike/clues/mapper/SysUserMapper.java index 79c31326c063831c4a8eecc45248d375401ca072..cd82bf9dd05e217237e4a76dd0edf7744baf2e61 100644 --- a/huike-system/src/main/java/com/huike/clues/mapper/SysUserMapper.java +++ b/huike-system/src/main/java/com/huike/clues/mapper/SysUserMapper.java @@ -1,6 +1,8 @@ package com.huike.clues.mapper; import java.util.List; + +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.huike.common.core.domain.entity.SysUser; @@ -9,6 +11,7 @@ import com.huike.common.core.domain.entity.SysUser; * * */ +@Mapper public interface SysUserMapper{ /** * 根据条件分页查询用户列表 diff --git a/pom.xml b/pom.xml index 1d71d9813c5c03a3e76a945f7320716c38fac7e1..99765f7cc5662b495c30c1ebdafb3b7c12b7926f 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,11 @@ - + + com.fhs-opensource + mybatis-plus-boot-starter + 4.0.5 + org.springframework.boot