-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: markwang <[email protected]>
- Loading branch information
1 parent
b70ecd9
commit 06719f7
Showing
1 changed file
with
127 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
package kf | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/silenceper/wechat/v2/util" | ||
) | ||
|
||
const ( | ||
// getCorpStatisticURL 获取「客户数据统计」企业汇总数据 | ||
getCorpStatisticURL = "https://qyapi.weixin.qq.com/cgi-bin/kf/get_corp_statistic?access_token=%s" | ||
// getServicerStatisticURL 获取「客户数据统计」接待人员明细数据 | ||
getServicerStatisticURL = "https://qyapi.weixin.qq.com/cgi-bin/kf/get_servicer_statistic?access_token=%s" | ||
) | ||
|
||
// GetCorpStatisticRequest 获取「客户数据统计」企业汇总数据请求 | ||
type GetCorpStatisticRequest struct { | ||
OpenKfID string `json:"open_kfid"` | ||
StartTime int64 `json:"start_time"` | ||
EndTime int64 `json:"end_time"` | ||
} | ||
|
||
// GetCorpStatisticResponse 获取「客户数据统计」企业汇总数据响应 | ||
type GetCorpStatisticResponse struct { | ||
util.CommonError | ||
StatisticList []CorpStatisticList `json:"statistic_list"` | ||
} | ||
|
||
// CorpStatisticList 企业汇总统计数据列表 | ||
type CorpStatisticList struct { | ||
StatTime int64 `json:"stat_time"` | ||
Statistic CorpStatistic `json:"statistic"` | ||
} | ||
|
||
// CorpStatistic 企业汇总统计一天的统计数据 | ||
type CorpStatistic struct { | ||
SessionCnt int64 `json:"session_cnt"` | ||
CustomerCnt int64 `json:"customer_cnt"` | ||
CustomerMsgCnt int64 `json:"customer_msg_cnt"` | ||
UpgradeServiceCustomerCnt int64 `json:"upgrade_service_customer_cnt"` | ||
AiSessionReplyCnt int64 `json:"ai_session_reply_cnt"` | ||
AiTransferRate float64 `json:"ai_transfer_rate"` | ||
AiKnowledgeHitRate float64 `json:"ai_knowledge_hit_rate"` | ||
MsgRejectedCustomerCnt int64 `json:"msg_rejected_customer_cnt"` | ||
} | ||
|
||
// GetCorpStatistic 获取「客户数据统计」企业汇总数据 | ||
// see https://developer.work.weixin.qq.com/document/path/95489 | ||
func (r *Client) GetCorpStatistic(req *GetCorpStatisticRequest) (*GetCorpStatisticResponse, error) { | ||
var ( | ||
accessToken string | ||
err error | ||
) | ||
if accessToken, err = r.ctx.GetAccessToken(); err != nil { | ||
return nil, err | ||
} | ||
var response []byte | ||
if response, err = util.PostJSON(fmt.Sprintf(getCorpStatisticURL, accessToken), req); err != nil { | ||
return nil, err | ||
} | ||
result := &GetCorpStatisticResponse{} | ||
if err = util.DecodeWithError(response, result, "GetCorpStatistic"); err != nil { | ||
return nil, err | ||
} | ||
return result, nil | ||
} | ||
|
||
// GetServicerStatisticRequest 获取「客户数据统计」接待人员明细数据请求 | ||
type GetServicerStatisticRequest struct { | ||
OpenKfID string `json:"open_kfid"` | ||
ServicerUserID string `json:"servicer_userid"` | ||
StartTime int64 `json:"start_time"` | ||
EndTime int64 `json:"end_time"` | ||
} | ||
|
||
// GetServicerStatisticResponse 获取「客户数据统计」接待人员明细数据响应 | ||
type GetServicerStatisticResponse struct { | ||
util.CommonError | ||
StatisticList []ServicerStatisticList `json:"statistic_list"` | ||
} | ||
|
||
// ServicerStatisticList 接待人员明细统计数据列表 | ||
type ServicerStatisticList struct { | ||
StatTime int64 `json:"stat_time"` | ||
Statistic ServicerStatistic `json:"statistic"` | ||
} | ||
|
||
// ServicerStatistic 接待人员明细统计一天的统计数据 | ||
type ServicerStatistic struct { | ||
SessionCnt int64 `json:"session_cnt"` | ||
CustomerCnt int64 `json:"customer_cnt"` | ||
CustomerMsgCnt int64 `json:"customer_msg_cnt"` | ||
ReplyRate float64 `json:"reply_rate"` | ||
FirstReplyAverageSec float64 `json:"first_reply_average_sec"` | ||
SatisfactionInvestgateCnt int64 `json:"satisfaction_investgate_cnt"` | ||
SatisfactionParticipationRate float64 `json:"satisfaction_participation_rate"` | ||
SatisfiedRate float64 `json:"satisfied_rate"` | ||
MiddlingRate float64 `json:"middling_rate"` | ||
DissatisfiedRate float64 `json:"dissatisfied_rate"` | ||
UpgradeServiceCustomerCnt int64 `json:"upgrade_service_customer_cnt"` | ||
UpgradeServiceMemberInviteCnt int64 `json:"upgrade_service_member_invite_cnt"` | ||
UpgradeServiceMemberCustomerCnt int64 `json:"upgrade_service_member_customer_cnt"` | ||
UpgradeServiceGroupChatInviteCnt int64 `json:"upgrade_service_groupchat_invite_cnt"` | ||
UpgradeServiceGroupChatCustomerCnt int64 `json:"upgrade_service_groupchat_customer_cnt"` | ||
MsgRejectedCustomerCnt int64 `json:"msg_rejected_customer_cnt"` | ||
} | ||
|
||
// GetServicerStatistic 获取「客户数据统计」接待人员明细数据 | ||
// see https://developer.work.weixin.qq.com/document/path/95490 | ||
func (r *Client) GetServicerStatistic(req *GetServicerStatisticRequest) (*GetServicerStatisticResponse, error) { | ||
var ( | ||
accessToken string | ||
err error | ||
) | ||
if accessToken, err = r.ctx.GetAccessToken(); err != nil { | ||
return nil, err | ||
} | ||
var response []byte | ||
if response, err = util.PostJSON(fmt.Sprintf(getServicerStatisticURL, accessToken), req); err != nil { | ||
return nil, err | ||
} | ||
result := &GetServicerStatisticResponse{} | ||
if err = util.DecodeWithError(response, result, "GetServicerStatistic"); err != nil { | ||
return nil, err | ||
} | ||
return result, nil | ||
} |