Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
项目练习
黑马程序员-CRM
汇课CRM管理系统-后端
提交
39050090
汇
汇课CRM管理系统-后端
项目概览
项目练习
/
黑马程序员-CRM
/
汇课CRM管理系统-后端
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
汇
汇课CRM管理系统-后端
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
39050090
编写于
8月 29, 2022
作者:
Hello 码上秃
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
功能开发__统计分析__线索统计__新增线索数量折线图
上级
03b019df
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
86 addition
and
4 deletion
+86
-4
HELP.txt
HELP.txt
+10
-1
huike-admin/src/main/java/com/huike/web/controller/report/ReportController.java
...ava/com/huike/web/controller/report/ReportController.java
+11
-0
huike-contract/src/main/java/com/huike/contract/mapper/TbContractMapper.java
...main/java/com/huike/contract/mapper/TbContractMapper.java
+2
-0
huike-contract/src/main/resources/mapper/contract/TbContractMapper.xml
...t/src/main/resources/mapper/contract/TbContractMapper.xml
+14
-1
huike-report/src/main/java/com/huike/report/service/IReportService.java
...rc/main/java/com/huike/report/service/IReportService.java
+7
-2
huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java
...java/com/huike/report/service/impl/ReportServiceImpl.java
+42
-0
未找到文件。
HELP.txt
浏览文件 @
39050090
...
...
@@ -29,4 +29,13 @@ huike-framework/src/main/java/com/huike/framework/interceptor/RepeatSubmitInterc
huike-common/src/main/java/com/huike/common/annotation/RepeatSubmit.java
ID工具包:
huike-common/src/main/java/com/huike/common/utils/uuid
\ No newline at end of file
huike-common/src/main/java/com/huike/common/utils/uuid
妙用Optional(134行)
huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java
传入两个时间范围,返回这两个时间范围内的所有时间,并保存在一个集合中(334行)
huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java
关于时间和数字的SQL写法(116行)
huike-report/src/main/resources/mapper/report/ReportMapper.xml
\ No newline at end of file
huike-admin/src/main/java/com/huike/web/controller/report/ReportController.java
浏览文件 @
39050090
...
...
@@ -49,6 +49,17 @@ public class ReportController extends BaseController {
return
AjaxResult
.
success
(
reportService
.
subjectStatistics
(
beginCreateTime
,
endCreateTime
));
}
/**
* 新增线索数量折线图
* @param beginCreateTime
* @param endCreateTime
* @return
*/
@GetMapping
(
"/cluesStatistics/{beginCreateTime}/{endCreateTime}"
)
public
LineChartVO
cluesStatistics
(
@PathVariable
String
beginCreateTime
,
@PathVariable
String
endCreateTime
)
{
return
reportService
.
cluesStatistics
(
beginCreateTime
,
endCreateTime
);
}
/**
* 销售统计
* @param beginCreateTime
...
...
huike-contract/src/main/java/com/huike/contract/mapper/TbContractMapper.java
浏览文件 @
39050090
...
...
@@ -102,4 +102,6 @@ public interface TbContractMapper {
public
List
<
Map
<
String
,
Object
>>
contractStatisticsByUser
(
IndexStatisticsVo
query
);
List
<
Map
<
String
,
Object
>>
subjectStatistics
(
@Param
(
"beginCreateTime"
)
String
beginCreateTime
,
@Param
(
"endCreateTime"
)
String
endCreateTime
);
List
<
Map
<
String
,
Object
>>
clueStatistics
(
@Param
(
"beginCreateTime"
)
String
beginCreateTime
,
@Param
(
"endCreateTime"
)
String
endCreateTime
);
}
huike-contract/src/main/resources/mapper/contract/TbContractMapper.xml
浏览文件 @
39050090
...
...
@@ -276,9 +276,22 @@
tb_contract tc
LEFT join tb_course tb on tc.course_id = tb.id
WHERE
DATE_FORMAT( tc.create_time, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{beginCreateTime}, '%Y-%m-%d' ) AND DATE_FORMAT( #{endCreateTime}, '%Y-%m-%d' )
<if
test=
"beginCreateTime != null and beginCreateTime != ''
and endCreateTime != null and endCreateTime != ''"
>
DATE_FORMAT( tc.create_time, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{beginCreateTime}, '%Y-%m-%d' ) AND DATE_FORMAT( #{endCreateTime}, '%Y-%m-%d' )
</if>
GROUP BY
tb.name
</select>
<select
id=
"clueStatistics"
resultType=
"java.util.Map"
>
SELECT
count( 1 ) AS num, DATE_FORMAT( create_time, '%Y-%m-%d' ) dd
FROM
tb_clue
where
date_format( create_time, '%y-%m-%d' ) BETWEEN date_format(#{beginCreateTime},'%y-%m-%d') AND date_format(#{endCreateTime},'%y-%m-%d')
GROUP BY dd
</select>
</mapper>
\ No newline at end of file
huike-report/src/main/java/com/huike/report/service/IReportService.java
浏览文件 @
39050090
...
...
@@ -3,9 +3,7 @@ package com.huike.report.service;
import
java.util.List
;
import
java.util.Map
;
import
com.huike.common.core.page.TableDataInfo
;
import
com.huike.report.domain.vo.*
;
import
org.apache.ibatis.annotations.Param
;
import
com.huike.clues.domain.TbActivity
;
import
com.huike.clues.domain.TbClue
;
...
...
@@ -30,6 +28,13 @@ public interface IReportService {
*/
List
<
Map
<
String
,
Object
>>
subjectStatistics
(
String
beginCreateTime
,
String
endCreateTime
);
/**
* 新增线索数量折线图
* @param beginCreateTime
* @param endCreateTime
* @return
*/
LineChartVO
cluesStatistics
(
String
beginCreateTime
,
String
endCreateTime
);
/**
* 客户统计报表
...
...
huike-report/src/main/java/com/huike/report/service/impl/ReportServiceImpl.java
浏览文件 @
39050090
...
...
@@ -108,6 +108,48 @@ public class ReportServiceImpl implements IReportService {
return
contractMapper
.
subjectStatistics
(
beginCreateTime
,
endCreateTime
);
}
/**
* 新增线索数量折线图
* @param beginCreateTime
* @param endCreateTime
* @return
*/
@Override
public
LineChartVO
cluesStatistics
(
String
beginCreateTime
,
String
endCreateTime
)
{
LineChartVO
lineChartVo
=
new
LineChartVO
();
try
{
LineSeriesVO
lineSeriesDTONewClue
=
new
LineSeriesVO
();
lineSeriesDTONewClue
.
setName
(
"新增线索数量"
);
LineSeriesVO
lineSeriesDTOTotalClue
=
new
LineSeriesVO
();
lineSeriesDTOTotalClue
.
setName
(
"线索总数量"
);
List
<
String
>
timeList
=
findDates
(
beginCreateTime
,
endCreateTime
);
// 传入两个时间范围,返回这两个时间范围内的所有时间
lineChartVo
.
setxAxis
(
timeList
);
List
<
LineSeriesVO
>
series
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
statistics
=
contractMapper
.
clueStatistics
(
beginCreateTime
,
endCreateTime
);
int
sum
=
0
;
for
(
String
dayByDay
:
timeList
)
{
Optional
optional
=
statistics
.
stream
().
filter
(
item
->
item
.
get
(
"dd"
).
equals
(
dayByDay
)).
findFirst
();
if
(
optional
.
isPresent
())
{
Map
<
String
,
Object
>
cuurentData
=
(
Map
<
String
,
Object
>)
optional
.
get
();
lineSeriesDTONewClue
.
getData
().
add
(
cuurentData
.
get
(
"num"
));
sum
+=
Integer
.
parseInt
(
cuurentData
.
get
(
"num"
).
toString
());
}
else
{
lineSeriesDTONewClue
.
getData
().
add
(
0
);
}
lineSeriesDTOTotalClue
.
getData
().
add
(
sum
);
}
series
.
add
(
lineSeriesDTONewClue
);
series
.
add
(
lineSeriesDTOTotalClue
);
lineChartVo
.
setSeries
(
series
);
}
catch
(
ParseException
e
)
{
}
return
lineChartVo
;
}
@Override
public
LineChartVO
salesStatistics
(
String
beginCreateTime
,
String
endCreateTime
)
{
LineChartVO
lineChartVo
=
new
LineChartVO
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录