栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CRM-首页--待办数据统计(接口实现)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;


@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 COUNT(DISTINCT(id)) AS toallocatedBusinessNum
		FROM `tb_business`
		WHERe id NOT IN (
			SELECt assign_id FROM `tb_assign_record`
			WHERe create_time BETWEEN #{startTime}
				AND #{endTime}
			  AND latest = 1
			  AND `type` = 1
		)
		  AND create_time BETWEEN #{startTime}
			AND #{endTime}
	

	
		SELECT COUNT(DISTINCT(id)) AS tofollowedBusinessNum
		FROM `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 = 1
			  AND `type` = 1
		)
		  AND `status` = 1
	

4.编写Mapper层接口

ReportMapper

	
	Integer getToallocatedCluesNum(@Param("startTime")String beginCreateTime,
								   @Param("endTime")String endCreateTime,
								   @Param("username")String username);

	
	Integer getToallocatedBusinessNum(@Param("startTime")String beginCreateTime,
									  @Param("endTime")String endCreateTime,
									  @Param("username")String username);

	
	Integer getTofollowedCluesNum(@Param("startTime")String beginCreateTime,
								  @Param("endTime")String endCreateTime,
								  @Param("username")String username);

	
	Integer getTofollowedBusinessNum(@Param("startTime")String beginCreateTime,
									 @Param("endTime")String endCreateTime,
									 @Param("username")String username);

5.编写service层接口

编写service层实现类

ReportServiceImpl

    @Override
    public 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

  
    IndexTodoInfoVO getTodoInfo(String beginCreateTime, String endCreateTime);

6.编写controller层代码

IndexController

 
    @GetMapping("/getTodoInfo")
    public AjaxResult getTodoInfo(@RequestParam("beginCreateTime") String beginCreateTime,
                                  @RequestParam("endCreateTime") String endCreateTime){
        return AjaxResult.success(reportService.getTodoInfo(beginCreateTime,endCreateTime));
    } 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号