| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- 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{}
- err = util.DecodeWithError(response, result, "GetCorpStatistic")
- return result, err
- }
- // 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{}
- err = util.DecodeWithError(response, result, "GetServicerStatistic")
- return result, err
- }
|