芯片管理平台数据统计 (一)

数据统计接口

当前累计写卡数据

请求 URL:

写卡详情 /getWriteCardInfo?currentUserId={0}&pageSize={1}&pageNum={2}&description={3}

请求方式:
  • GET/POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
access_tokenheaderString用户 token
返回:
返回示例
备注
  • 可以写卡的平台有多个,是否统计多个平台求和?
    writecard_api 空写请求创建表 (用户发起写卡请求写入记录)
    writecard_process_record 集成写卡功能状态与时间节点记录表 (用户发起的写卡请求校验通过后发起写卡任务写入数据)
查询 sql
-- 发起写卡请求详情
SELECT c.batchId batchId, c.count COUNT,u.FULL_NAME senderName,
DATE_FORMAT(c.createTime,'%Y-%m-%d %H:%i') timeStr,c.usesdk
typeStr,
c.description
FROM (
SELECT w.batch_id AS batchId,
COUNT(1) AS
COUNT,w.create_by AS
createBy,w.create_time
createTime,w.description
description,w.usesdk usesdk
FROM writecard_api
w
<where>
	<if test="userType == 02">
		w.create_by = #{someId}
	</if>
	<if test="userType == 01">
		w.create_company = #{someId}
	</if>

	<if test="description != null and description != ''">
		and w.description LIKE CONCAT('%',#{description},'%')
	</if>
</where>
GROUP BY w.batch_id,w.create_by,w.create_time,w.description,w.usesdk
ORDER BY w.create_time DESC ) AS c
LEFT JOIN USER u ON u.USER_ID =
c.createBy
-- 发起写卡请求统计
SELECT  c.count COUNT,u.FULL_NAME senderName,c.usesdk typeStr
FROM (
SELECT 
COUNT(*) AS
COUNT,w.create_by AS
createBy,w.usesdk usesdk
FROM writecard_api
w
where 1=1

GROUP BY w.create_by,w.usesdk) AS c
LEFT JOIN USER u ON u.USER_ID =c.createBy
order by  senderName desc
-- 写卡统计
select temp.count,u.FULL_NAME senderName,temp.protocal_type from 
(select count(*) as count ,sender,protocal_type 
from writecard_process_record
where 1=1 
group by sender,protocal_type) temp
LEFT JOIN USER u ON u.USER_ID =temp.sender
order by  senderName desc

写卡数据的按月分布

请求 URL:
请求方式:
  • GET/POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
access_tokenheaderString用户 token
返回:
返回示例
备注
查询 sql
-- 按用户、sdk、月份统计 发起写卡请求
select count(*),temp.createBy,temp.usesdk,temp.create_time,u.FULL_NAME senderName from (
SELECT 
w.create_by AS
createBy,ifnull(w.usesdk,'') usesdk,
date_format(w.create_time,'%Y-%m') as create_time
FROM writecard_api w
where 1=1
) temp 
LEFT JOIN USER u ON u.USER_ID =temp.createBy
group by temp.createBy,temp.usesdk,temp.create_time
order by senderName,create_time asc

-- 按用户、sdk、月份统计写卡数量
select count(*) ,u.FULL_NAME senderName,temp.protocal_type ,temp.create_date from 
(select sender,protocal_type, date_format(create_date,'%Y-%m') as create_date
from writecard_process_record
where 1=1 
) temp
LEFT JOIN USER u ON u.USER_ID =temp.sender
group by temp.sender,temp.protocal_type,temp.create_date
order by  senderName desc

省公司账号创建情况(含省公司下的普通用户创建数据)

请求 URL:
  • /back/provinceJoinNum?currentUserId={0}
请求方式:
  • GET/POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
currentUserIdurlInteger用户 id
返回:
返回示例
备注

图片.png

graph TB
id1[查询用户]-->|currentUserId|id2{判断用户是否存在};
id2-->|用户不存在|id3[当前用户不存在];
id2-->|用户存在|id4{判断用户角色};
id4-->|role_id角色15或者16|id5[设置公司角色];
id4-->|其它角色|id6[当前用户没有权限访问后台数据];
id5-->|CompanyRoleId=2|id7[查询省公司接入平台情况];
id7-->id8[返回查询结果];
查询 sql
COMPANY_STATUS 公司状态0--失效1--有效
STATUS 用户状态1--停用2--正常(启用)3--删除
SELECT
C.COMPANY_ID companyId,
C.COMPANY_NAME companyName,
count(*)
joinNum
FROM
COMPANY C,
USER U
WHERE
C.COMPANY_ID = U.COMPANY_ID
AND
C.COMPANY_STATUS = 1
AND U.STATUS = 2
AND C.ROLE_ID =2
GROUP BY C.COMPANY_ID

按月开卡数据

请求 URL:
请求方式:
  • GET/POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
access_tokenheaderString用户 token
返回:
返回示例
备注

开卡数据芯片管理平台暂时无法获取

按月空中写卡成功率

请求 URL:
请求方式:
  • GET/POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
access_tokenheaderString用户 token
返回:
返回示例
备注
查询 sql
-- 按用户、sdk、月份统计写卡成功率
select sum(temp.status='4')/count(*) ,u.FULL_NAME senderName,temp.protocal_type ,temp.create_date from 
(select sender,protocal_type, date_format(create_date,'%Y-%m') as create_date,status
from writecard_process_record
where 1=1 
) temp
LEFT JOIN USER u ON u.USER_ID =temp.sender
group by temp.sender,temp.protocal_type,temp.create_date
order by  senderName desc

不同类型企业客户按月的平台登录次数统计

请求 URL:
  • /back/rolesLoginTimes?currentUserId={0}&startTime={1}&endTime={2}
请求方式:
  • GET
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
currentUserIdurlInteger当前用户 id
startTimeurlString开始时间
endTimeurlString结束时间
返回:
返回示例
备注

图片.png

graph TB
id1[查询用户]-->|currentUserId|id2{判断用户是否存在};
id2-->|用户不存在|id3[当前用户不存在];
id2-->|用户存在|id4{判断用户角色};
id4-->|role_id角色15或者16|id7[查询各类公司登录情况];
id4-->|其它角色|id6[当前用户没有权限访问后台数据];
id7-->id8[返回查询结果];
查询 sql
OPERATION_TYPE操作类型1--新增用户2--删除用户3--启用用户4--停用用户5--修改用户6--导入设备7--修改配置下发8--新增公司9--更新公司信息10--删除公司11--分配设备(eid)12--分配设备(testId)13--分配设备(moduleId)14--用户登录15--用户登出16--数据检索17--导入正式号码18--导入临时号码19--导入空中写卡20--芯片导出21--空中写卡导出22--芯片签收23--作废申请24--作废审批25--单个空中写卡26--联网失败27--用户启用28--用户停用29--用户启用审批30--用户停用审批31-空中写卡32-修改密码33--芯片分配
select
c.COMPANY_ID companyId,
cr.ROLE_NAME companyRoleName,
count(*) loginNum
from
user u,
company c,
company_role cr,
(
select
ol.CREATED_BY as uid
from
operation_log ol
where
ol.CREATION_DATE between
#{queryStartTime} and #{queryEndTime}
and ol.OPERATION_TYPE = 14
) as a
where
u.USER_ID = a.uid
and c.COMPANY_ID = u.COMPANY_ID
and cr.ROLE_ID =
c.ROLE_ID
group by cr.ROLE_NAME;

待签收 / 未签收芯片数据统计

请求 URL:
  • /back/getUnreceivedEquipments?currentUserId={0}&pageNum={1}&pageSize={2}
请求方式:
  • GET
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
currentUserIdurlInteger当前用户 id
pageNumurlInteger当前页(默认 1)
pageSizeurlInteger每页数据条数(默认 10)
返回:
返回示例
备注

图片.png

graph TB
id1[查询用户]-->|currentUserId|id2{判断用户是否存在};
id2-->|用户不存在|id3[当前用户不存在];
id2-->|用户存在|id4{判断用户角色};
id4-->|role_id角色15或者16|id5[设置签收状态类型]
id4-->|其它角色|id6[当前用户没有权限访问后台数据];
id5-->|status=0--未签收|id7[芯片未签收统计];
id7-->id8[返回查询结果];
查询 sql
status 流转状态(0--分配中,1--签收,2--拒签)
select  
<if test='status == "0" and receiver != null'>  
 ea.ALARM_INFO_ID alarmInfoId,  
</if>  
 sc.COMPANY_NAME fromCompanyName,  
 su.USER_NAME fromUserName,  
 su.FULL_NAME fromFullName,  
 date_format(e.send_time,'%Y-%m-%d %H:%i:%S') dateStr,  
 DATE_FORMAT(e.receive_time,'%Y-%m-%d %H:%i:%S') endDateSt,  
 rc.COMPANY_NAME toCompanyName,  
 ru.USER_NAME toUserName,  
 ru.FULL_NAME toFullName,  
 count(1) count,  
 e.send_type sourceTypeName,  
 e.uuid uuid  
from   
 equipment_info_distribute e  
join user su on su.USER_ID = e.sender  
join user ru on ru.USER_ID = e.receiver  
join company sc on sc.COMPANY_ID = e.sender_company  
join company rc on rc.COMPANY_ID = e.receiver_company  
<if test='status == "0"  and receiver != null'>  
 left join equipment_alarm_info ea on ea.OTHER_DATA_ID = e.uuid  
</if>  
where  
1=1  
 and e.`status` = #{status}  
<if test="sender != null and sender != ''">  
 and e.sender = #{sender}  
</if>  
<if test="receiver != null and receiver != ''">  
 and e.receiver = #{receiver}  
</if>  
group by e.uuid  
order by e.send_time desc  

空写故障统计与原因分析

请求 URL:
请求方式:
  • GET/POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
access_tokenheaderString用户 token
返回:
返回示例
备注

芯片管理平台接口目录
下一篇 芯片管理平台数据统计(二)