CRM-首页--待办数据统计(接口实现)
接口定义
按照开始时间和结束时间查询一段时间范围内(开始时间和结束时间)的基本数据(线索数量,商机数量,合同数量,成交的金额)
需求:查询当前用户在选定范围内的待跟进的线索,商机,和待分配的线索和商机
对于销售主管来说,主要的工作是分配线索和商机,对于销售人员来说主要是跟进线索和商机
在首页提供一个入口用来展示还有多少任务是没有完成的
接口名 /index/getTodoInfo
请求方式 get请求
参数列表
传入参数:
/index/getBaseInfo?beginCreateTime=2021-05-05&endCreateTime=2023-05-05
beginCreateTime 开始时间
endCreateTime 结束时间
返回值:
{"msg":"操作成功","code":200,"data":{"tofollowedCluesNum":0, //待跟进线索数目"tofollowedBusinessNum":0,//待跟进商机数目"toallocatedCluesNum":1,//待分配线索数目"toallocatedBusinessNum":0 //待分配商机数目}
}
步骤:
1.阅读产品文档(接口名,请求方式,参数列表)
2.根据产品的返回值和接收参数构建VO类
3.编写mapper层操作数据库
4.编写service层操作数据
5.编写controller层接收参数和返回数据
思路:
1.阅读上述产品文档
接口路径: /index/getTodoInfo
请求方式:get请求
传入参数:
/index/getBaseInfo?beginCreateTime=2021-05-05&endCreateTime=2023-05-05
beginCreateTime 开始时间
endCreateTime 结束时间
返回值:
{"msg":"操作成功","code":200,"data":{"tofollowedCluesNum":0, //待跟进线索数目"tofollowedBusinessNum":0,//待跟进商机数目"toallocatedCluesNum":1,//待分配线索数目"toallocatedBusinessNum":0 //待分配商机数目}
}
2.根据返回值数据类型构建返回对象
package com.huike.report.domain.vo;import lombok.Data;/*** 首页--今日待办--返回前端VO类*/
@Data
public class IndexTodoInfoVO {private Integer tofollowedCluesNum=0; //待跟进线索数目private Integer tofollowedBusinessNum=0; //待跟进商机数目private Integer toallocatedCluesNum=0; //待分配线索数目private Integer toallocatedBusinessNum=0; //待分配商机数目}
3.基于需求编写sql
按照开始时间和结束时间查询一段时间范围内(开始时间和结束时间)的基本数据(线索数量,商机数量,合同数量,成交的金额)
需求:查询当前用户在选定范围内的待跟进的线索,商机,和待分配的线索和商机
对于销售主管来说,主要的工作是分配线索和商机,对于销售人员来说主要是跟进线索和商机
这是我们的需求,我们要查询出对应的待跟进,待分配的线索和商机
线索的状态可以看到对应的待跟进,定义了待跟进状态码对应的是1
UNFOLLOWED("待跟进","1"),
FOLLOWING("跟进中","2"),
RECOVERY("回收","3"),
FALSE("伪线索/踢回公海","4"),
DELETED("删除","5"),
TOBUSINESS("转换商机","6"),
TOCUSTOMER("转换客户","7");
4.编写xml代码
ReportMapper.xml
<select id="getToallocatedCluesNum" resultType="Integer">SELECT COUNT(DISTINCT(id)) AS toallocatedCluesNumFROM `tb_clue`WHERE id NOT IN (SELECT assign_id FROM `tb_assign_record`WHEREAND latest = 1AND `type` = 0)andAND create_time BETWEEN #{startTime}AND #{endTime}</select><select id="getToallocatedBusinessNum" resultType="Integer">SELECT COUNT(DISTINCT(id)) AS toallocatedBusinessNumFROM `tb_business`WHERE id NOT IN (SELECT assign_id FROM `tb_assign_record`WHERE create_time BETWEEN #{startTime}AND #{endTime}AND latest = 1AND `type` = 1)AND create_time BETWEEN #{startTime}AND #{endTime}</select><select id="getTofollowedCluesNum" resultType="Integer">SELECT COUNT(DISTINCT (id)) AS tofollowedCluesNumFROM `tb_clue`WHERE id IN(SELECT assign_id FROM `tb_assign_record`WHERE user_name = #{username}AND create_time BETWEEN #{startTime}AND #{endTime}AND latest = 1AND `type` = 0)AND `status` = 1</select><select id="getTofollowedBusinessNum" resultType="Integer">SELECT COUNT(DISTINCT(id)) AS tofollowedBusinessNumFROM `tb_business`WHERE id IN (SELECT assign_id FROM `tb_assign_record`WHERE user_name = #{username}AND create_time BETWEEN #{startTime}AND #{endTime}AND latest = 1AND `type` = 1)AND `status` = 1</select>
4.编写Mapper层接口
ReportMapper
/**=========================================待办========================================*//*** 首页--今日待办--待分配线索数量* @param beginCreateTime 开始时间* @param endCreateTime 结束时间* @param username 用户名* @return*/Integer getToallocatedCluesNum(@Param("startTime")String beginCreateTime,@Param("endTime")String endCreateTime,@Param("username")String username);/*** 首页--今日待办--待分配商机数量* @param beginCreateTime 开始时间* @param endCreateTime 结束时间* @param username 用户名* @return*/Integer getToallocatedBusinessNum(@Param("startTime")String beginCreateTime,@Param("endTime")String endCreateTime,@Param("username")String username);/*** 首页--今日待办--待跟进线索数量* @param beginCreateTime* @param endCreateTime* @param username* @return*/Integer getTofollowedCluesNum(@Param("startTime")String beginCreateTime,@Param("endTime")String endCreateTime,@Param("username")String username);/*** 首页--今日待办--待跟进商机数量* @param beginCreateTime 开始时间* @param endCreateTime 结束时间* @param username 用户名* @return*/Integer getTofollowedBusinessNum(@Param("startTime")String beginCreateTime,@Param("endTime")String endCreateTime,@Param("username")String username);
5.编写service层接口
编写service层实现类
ReportServiceImpl
/*** 获取待办* @param beginCreateTime 开始时间* @param endCreateTime 结束时间* @return*/@Overridepublic IndexTodoInfoVO getTodoInfo(String beginCreateTime, String endCreateTime) {IndexTodoInfoVO result = new IndexTodoInfoVO();//2 封装结果集属性// 2.1 由于查询需要用到用户名 调用工具类获取用户名String username = SecurityUtils.getUsername();// 2.2 封装第一个属性 待分配线索数量result.setToallocatedCluesNum(reportMpper.getToallocatedCluesNum(beginCreateTime,endCreateTime,username));// 2.3 封装第二个属性 待分配商机数量result.setToallocatedBusinessNum(reportMpper.getToallocatedBusinessNum(beginCreateTime,endCreateTime,username));// 2.4 封装第三个属性 待跟进线索数量result.setTofollowedCluesNum(reportMpper.getTofollowedCluesNum(beginCreateTime,endCreateTime,username));// 2.5 封装第四个属性 待跟进商机result.setTofollowedBusinessNum(reportMpper.getTofollowedBusinessNum(beginCreateTime,endCreateTime,username));//3属性封装完成后,返回结果集return result;
编写service层接口
IReportService
/*** 获取待办数据* @param beginCreateTime* @param endCreateTime* @return*/IndexTodoInfoVO getTodoInfo(String beginCreateTime, String endCreateTime);
6.编写controller层代码
IndexController
/*** 首页--获取待办数据* @return*/@GetMapping("/getTodoInfo")public AjaxResult getTodoInfo(@RequestParam("beginCreateTime") String beginCreateTime,@RequestParam("endCreateTime") String endCreateTime){return AjaxResult.success(reportService.getTodoInfo(beginCreateTime,endCreateTime));}
CRM-首页--待办数据统计(接口实现)相关推荐
- 自媒体平台数据统计分析爬虫之【趣头条】模拟登陆分析详解及数据统计接口详解
声明:本文仅用于学习研究,实现对自己账号的数据统计和分析 目录 1.登录流程 1.1 登录字段DES加密算法 1.2 模拟登陆,获取token 2.视频内容数据 2.1 全部 2.2 待审核 2.3 ...
- 电商后台、手机端、小程序、H5、电商原型、需求池、产品结构图、接口流程、高保真交互、PRD、布局说明、数据统计、店铺管理、商品管理、财务管理、售后、订单、会员、客服、标签、Axure原型、产品原型
电商后台.手机端.小程序.H5.电商原型.需求池.产品结构图.接口流程.高保真交互.PRD.布局说明.数据统计.店铺管理.商品管理.财务管理.售后.订单.会员.客服.标签.Axure原型.产品原型.h ...
- 首页DIY数据 crmeb开发api接口文档
首页DIY数据 基本信息 Path: /api/v2/diy/get_diy/:name Method: GET 接口描述: 请求参数 路径参数 参数名称 示例 备注 name moren 模版名称 ...
- 国内无代码平台数据统计功能对比
数据统计是为了可以分析你的店铺,上个月与本月的对比,去年与今年的对比,从数据可以看出昨天的生意怎么样,做活动有没有效果,效果怎么样,这些都是用数据说话的.根据数据分析并做出调整是一个企业必不可少的环节 ...
- 健康管理项目第九天(套餐预约之占比饼形图、运营数据统计、报表导出 )
一.运营数据统计报表导出 1.需求分析 会员可以通过移动端自助进行体检预约,在预约时需要选择预约的体检套餐.本章节我们需要通过饼形图直观的展示出会员预约的各个套餐占比情况.展示效果如下图: 2.完善页 ...
- 探花交友_第11章_数据统计与内容审核(新版)
探花交友_第11章_数据统计与内容审核(新版) 文章目录 探花交友_第11章_数据统计与内容审核(新版) 1.用户冻结解冻 1.1 用户冻结 ManageController ManageServic ...
- Galaxy数据统计平台(三)
4月19号 到了现在说下开发进度吧~~ 系统设计 简单说一说 由于与需要接受的数据原比较多,再加上服务是部署在阿里云上的,所有的数据均是通过http接收 目前数据接收后直接存储到elasticsear ...
- 百度云api android,帮助文档首页/百度移动统计API/百度移动统计 Android版SDK - 百度开放云平台...
百度移动统计SDK 一.简介 百度移动统计SDK(Android)是百度官方推出的移动统计SDK在Android平台上的版本(以下简称SDK).SDK的发行版本(完整下载包为android.zip)中 ...
- 个推数据统计产品(个数)iOS集成实践
2019独角兽企业重金招聘Python工程师标准>>> 最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新 ...
最新文章
- 晒一波程序员的工位,你中意哪一款?
- OpenWrt-DreamBox 20120201下设置二级路由
- 编程之美2.3 寻找发帖水王
- C语言实用算法系列之学生管理系统_单向链表外排序_堆内数组存储链表节点指针
- 计算机操作系统生产者和消费者模型的简单介绍
- oracle if 使用函数,Oracle 常见函数用法
- js创建对象时,属性加引号与不加引号的区别(转)
- Spring框架整合多数据源 Mysql+oracle
- App常用图标使用规范
- UJAM Finisher FLUXX for Mac(综合效果器插件)
- 稳定币usda是哪个发行的_usdt稳定币是谁发行的?
- tcflush()用法 以及 Termios 介绍
- xp系统搭建iscsi服务器,配置Microsoft Windows XP对MDS/IPS-8的iSCSI主机
- curl实现自动重启飞鱼星VW1900路由器
- LaTeX打出罗马数字、希腊字母和大写空心粗体字母
- jupyter notebook 上传压缩包解压方式
- 数据结构入门6-2(图 - 图的应用)
- https网络编程——DNS域名解析获取IP地址
- 【数据库】imp-00015
- 【selenium 】chrome的浏览器,headless模式下不能下载文件
热门文章
- centos7 安装netdata及使用
- python语言特点设计_python语言有什么特点
- 关于Y7000电量显示0充不进电的解决方案
- 为知笔记,Ulysses和Effie哪个更适合公众号主?
- 打印资料网上打印哪家比较便宜?
- MAC charles破解安装与使用
- css+js简单实现table固定首行首列
- 基于springboot整合了mybatis plus,lombok,log4j2并实现了全局异常处理及统一数据返回格式(code,msg,data)
- QGIS最受欢迎的20个插件
- GitHub上最受欢迎的 5 大 Java 项目