You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
594 lines
18 KiB
594 lines
18 KiB
package commonus
|
|
|
|
//企业微信相关操作
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"strconv"
|
|
|
|
"gin_server_admin/global"
|
|
"gin_server_admin/utils/redishandel"
|
|
"github.com/mitchellh/mapstructure"
|
|
)
|
|
|
|
// 获取企业微信token
|
|
func GetWechatTokenType(types string) (tokenInfo string, redisClient *redishandel.RedisStoreType, err error) {
|
|
redisClient = redishandel.RunRedis()
|
|
isTrue := false
|
|
redisPrefix := "workWeChatToken_"
|
|
companyId := global.GVA_CONFIG.WorkWechatId.CompanyId
|
|
secretStr := global.GVA_CONFIG.WorkWechatMailList.SecretStr
|
|
switch types {
|
|
case "maillist":
|
|
redisPrefix = redisPrefix + "mail_"
|
|
secretStr = global.GVA_CONFIG.WorkWechatMailList.SecretStr
|
|
case "health":
|
|
redisPrefix = redisPrefix + "health_"
|
|
secretStr = global.GVA_CONFIG.WorkHealthReport.SecretStr
|
|
default:
|
|
redisPrefix = redisPrefix + "sholle_"
|
|
secretStr = global.GVA_CONFIG.WorkWechatSchool.SecretStr
|
|
}
|
|
// fmt.Printf("token=====>%v***************%v------------------%v\n", redisPrefix, global.GVA_CONFIG.RedisPrefix.Alias, global.GVA_REDIS)
|
|
// return
|
|
isTrue, tokenInfo = redisClient.Get(redisPrefix + global.GVA_CONFIG.RedisPrefix.Alias)
|
|
// fmt.Printf("token=====>%v***************%v------------------%v\n", isTrue, companyId, secretStr)
|
|
if isTrue == true {
|
|
return
|
|
} else {
|
|
// getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + global.GVA_CONFIG.WorkWechatIds.CompanyId + "&corpsecret=" + global.GVA_CONFIG.WorkWechatMailLists.SecretStr
|
|
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + companyId + "&corpsecret=" + secretStr
|
|
// fmt.Printf("getTokenUrl:%v\n", getTokenUrl)
|
|
token := CurlGet(getTokenUrl)
|
|
var callBackData weChatCallBack
|
|
err = json.Unmarshal(token, &callBackData)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if callBackData.Errcode != 0 {
|
|
return
|
|
}
|
|
// fmt.Printf("%v\n", callBackData)
|
|
tokenInfo = callBackData.Accesstoken
|
|
redisClient.SetRedisTime(7080)
|
|
// redisClient.Set("workWeChatToken_"+global.GVA_CONFIG.RedisPrefix.Alias, tokenInfo)
|
|
redisClient.Set(redisPrefix+global.GVA_CONFIG.RedisPrefix.Alias, tokenInfo)
|
|
}
|
|
return
|
|
}
|
|
|
|
// 获取企业微信token
|
|
func GetWechatToken() (tokenInfo string, redisClient *redishandel.RedisStoreType, err error) {
|
|
redisClient = redishandel.RunRedis()
|
|
isTrue, tokenInfo := redisClient.Get("workWeChatToken_" + global.GVA_CONFIG.RedisPrefix.Alias)
|
|
if isTrue == true {
|
|
return
|
|
} else {
|
|
// getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + global.GVA_CONFIG.WorkWechatIds.CompanyId + "&corpsecret=" + global.GVA_CONFIG.WorkWechatMailLists.SecretStr
|
|
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + global.GVA_CONFIG.WorkWechatId.CompanyId + "&corpsecret=" + global.GVA_CONFIG.WorkWechatMailList.SecretStr
|
|
// fmt.Printf("getTokenUrl:%v\n", getTokenUrl)
|
|
token := CurlGet(getTokenUrl)
|
|
var callBackData weChatCallBack
|
|
err = json.Unmarshal(token, &callBackData)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if callBackData.Errcode != 0 {
|
|
return
|
|
}
|
|
// fmt.Printf("%v\n", callBackData)
|
|
tokenInfo = callBackData.Accesstoken
|
|
redisClient.SetRedisTime(7080)
|
|
redisClient.Set("workWeChatToken_"+global.GVA_CONFIG.RedisPrefix.Alias, tokenInfo)
|
|
}
|
|
return
|
|
}
|
|
|
|
func GetDepartment(dePartMentId int) (departmentlist *[]DePartMentInfo, isTrue bool) {
|
|
isTrue = false
|
|
ton, redisClient, err := GetWechatToken()
|
|
if err != nil {
|
|
return
|
|
}
|
|
dePartMentIdStr := strconv.Itoa(dePartMentId)
|
|
isTrue, dePartMentMapJson := redisClient.Get("dePartMentList:list_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + dePartMentIdStr)
|
|
if isTrue == true {
|
|
//json转换成Struct
|
|
err := json.Unmarshal([]byte(dePartMentMapJson), &departmentlist)
|
|
|
|
if err != nil {
|
|
fmt.Println("JsonToMapDemo err: ", err)
|
|
return departmentlist, false
|
|
}
|
|
// fmt.Printf("Map => %v", departmentlist)
|
|
// if errMap := mapstructure.Decode(dePartMentMapJson, &departmentlist); errMap != nil {
|
|
// // redisClient.HashMsetAdd("dePartMentAry_ment_dev_"+dePartMentIdStr, departmentlist)
|
|
// return departmentlist, false
|
|
// }
|
|
return departmentlist, true
|
|
// fmt.Printf("Key_jia1 ==> %v ------ Val_jia1 ==> %v\n", dePartMentMap, isTrue)
|
|
// var dePartMentStruct dePartMentInfoStr
|
|
// if errMap := mapstructure.Decode(dePartMentMap, &dePartMentStruct); errMap != nil {
|
|
// fmt.Printf("Key_jia2 ==> %v ------ Val_jia2 ==> %v\n", dePartMentMap, errMap)
|
|
// return departmentlist, false
|
|
// }
|
|
// var ksjdes []dePartMentInfo
|
|
// var ksjd dePartMentInfo
|
|
// ksjd.Id, _ = strconv.Atoi(dePartMentStruct.Id)
|
|
// ksjd.Name = dePartMentStruct.Name
|
|
// ksjd.NameEN = dePartMentStruct.NameEN
|
|
// ksjd.Parentid, _ = strconv.Atoi(dePartMentStruct.Parentid)
|
|
// ksjd.Order, _ = strconv.Atoi(dePartMentStruct.Order)
|
|
// ksjdes = append(ksjdes, ksjd)
|
|
// departmentlist = &ksjdes
|
|
// fmt.Printf("Key ==> %v ------ Val ==> %v\n", dePartMentMap, departmentlist)
|
|
// return departmentlist, true
|
|
} else {
|
|
//获取企业微信部门列表
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + ton + "&id=" + dePartMentIdStr
|
|
// fmt.Printf("URL ===> %v\n", getTokenUrl)
|
|
callBackList := CurlGet(getTokenUrl)
|
|
var callBackData dePartMent
|
|
err = json.Unmarshal(callBackList, &callBackData)
|
|
if err != nil {
|
|
return departmentlist, false
|
|
}
|
|
// fmt.Printf("%+v\n", callBackData)
|
|
// departmentlist = &callBackData.DePartMent
|
|
// return callBackData.DePartMent
|
|
redisClient.SetRedisTime(604800)
|
|
if callBackData.Errcode == 0 {
|
|
if errMap := mapstructure.Decode(callBackData.DePartMent, &departmentlist); errMap != nil {
|
|
// redisClient.HashMsetAdd("dePartMentAry_ment_dev_"+dePartMentIdStr, departmentlist)
|
|
return departmentlist, false
|
|
}
|
|
for _, val := range callBackData.DePartMent {
|
|
// fmt.Printf("Key ==> %v ------ Val ==> %v\n", key, val)
|
|
writeRedisData := map[string]interface{}{
|
|
"id": val.Id,
|
|
"name": val.Name,
|
|
"name_en": val.NameEN,
|
|
"parentid": val.Parentid,
|
|
"order": val.Order,
|
|
}
|
|
departId := strconv.FormatInt(val.Id, 10)
|
|
|
|
redisClient.HashMsetAdd("dePartMentAry:ment_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+departId, writeRedisData)
|
|
}
|
|
dePartMentJson, _ := json.Marshal(callBackData.DePartMent)
|
|
redisClient.Set("dePartMentList:list_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+dePartMentIdStr, string(dePartMentJson))
|
|
} else {
|
|
return departmentlist, false
|
|
}
|
|
}
|
|
return departmentlist, true
|
|
}
|
|
|
|
// 获取企业微信部门列表
|
|
func GetWechatFramework(id int64) (callBackList []byte, isTrue bool) {
|
|
isTrue = false
|
|
ton, _, err := GetWechatToken()
|
|
if err != nil {
|
|
return
|
|
}
|
|
dePartMentIdStr := strconv.FormatInt(id, 10)
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + ton + "&id=" + dePartMentIdStr
|
|
callBackList = CurlGet(getTokenUrl)
|
|
var callBackData dePartMent
|
|
err = json.Unmarshal(callBackList, &callBackData)
|
|
if err != nil {
|
|
return callBackList, false
|
|
}
|
|
if callBackData.Errcode == 0 {
|
|
isTrue = true
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
// 获取单个部门信息
|
|
func GetOneDePartMent(dePartMentId int) (departmentlist *DePartMentInfo, isTrue bool) {
|
|
isTrue = false
|
|
_, redisClient, err := GetWechatToken()
|
|
if err != nil {
|
|
return
|
|
}
|
|
dePartMentIdStr := strconv.Itoa(dePartMentId)
|
|
dePartMentMapJson, isTrue := redisClient.HashGetAll("dePartMentAry:ment_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + dePartMentIdStr)
|
|
if isTrue == true {
|
|
var departmentinfo dePartMentInfoStr
|
|
err := mapstructure.Decode(dePartMentMapJson, &departmentinfo)
|
|
if err != nil {
|
|
return departmentlist, false
|
|
}
|
|
var jjks DePartMentInfo
|
|
jjks.Id, _ = strconv.ParseInt(departmentinfo.Id, 10, 64)
|
|
jjks.Name = departmentinfo.Name
|
|
jjks.NameEN = departmentinfo.NameEN
|
|
jjks.Parentid, _ = strconv.ParseInt(departmentinfo.Parentid, 10, 64)
|
|
jjks.Order, _ = strconv.ParseInt(departmentinfo.Order, 10, 64)
|
|
departmentlist = &jjks
|
|
return departmentlist, true
|
|
} else {
|
|
_, _ = GetDepartment(dePartMentId)
|
|
dePartMentMapJson, isTrue := redisClient.HashGetAll("dePartMentAry:ment_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + dePartMentIdStr)
|
|
if isTrue == true {
|
|
var departmentinfo dePartMentInfoStr
|
|
err := mapstructure.Decode(dePartMentMapJson, &departmentinfo)
|
|
if err != nil {
|
|
return departmentlist, false
|
|
}
|
|
var jjks DePartMentInfo
|
|
jjks.Id, _ = strconv.ParseInt(departmentinfo.Id, 10, 64)
|
|
jjks.Name = departmentinfo.Name
|
|
jjks.NameEN = departmentinfo.NameEN
|
|
jjks.Parentid, _ = strconv.ParseInt(departmentinfo.Parentid, 10, 64)
|
|
jjks.Order, _ = strconv.ParseInt(departmentinfo.Order, 10, 64)
|
|
departmentlist = &jjks
|
|
return departmentlist, true
|
|
}
|
|
}
|
|
return departmentlist, true
|
|
}
|
|
|
|
/*
|
|
创建部门
|
|
*/
|
|
func (d *DePartMentInfo) AddDepartment(parentid int64, name string) (int64, bool) {
|
|
d.InstDepartMentInfo()
|
|
if parentid <= 0 {
|
|
return 0, false
|
|
}
|
|
if name == "" {
|
|
return 0, false
|
|
}
|
|
d.Parentid = parentid
|
|
d.Name = name
|
|
// jsonBytes, _ := json.Marshal(d)
|
|
weChatPart := MapOut()
|
|
weChatPart["parentid"] = d.Parentid
|
|
weChatPart["name"] = d.Name
|
|
if d.NameEN != "" {
|
|
weChatPart["name_en"] = d.NameEN
|
|
}
|
|
if d.Id != 0 {
|
|
weChatPart["id"] = d.Id
|
|
}
|
|
if d.Order != 0 {
|
|
weChatPart["order"] = d.Order
|
|
}
|
|
sendJsonData, _ := json.Marshal(weChatPart)
|
|
|
|
tonken, _, err := GetWechatToken() //获取token
|
|
if err != nil {
|
|
return 0, false
|
|
}
|
|
weChatApiUrl := "https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=" + tonken
|
|
|
|
addDePartMent := CurlPostJosn(weChatApiUrl, sendJsonData)
|
|
var callBackData DePartMentCallBack
|
|
err = json.Unmarshal(addDePartMent, &callBackData)
|
|
if callBackData.Errcode != 0 {
|
|
return 0, false
|
|
}
|
|
// fmt.Printf("%v=================>&&&&&&&&&& %v ------------>%v#################3%v\n", d, jsonBytes, string(addDePartMent), callBackData)
|
|
return callBackData.Id, true
|
|
}
|
|
|
|
/*
|
|
更新部门
|
|
*/
|
|
func (d *DePartMentInfo) SaveDepartment(id, order, parentid int64, name, name_en string) (int64, bool) {
|
|
d.InstDepartMentInfo()
|
|
if id <= 0 {
|
|
return 0, false
|
|
}
|
|
if parentid <= 0 {
|
|
return 0, false
|
|
}
|
|
if name == "" {
|
|
return 0, false
|
|
}
|
|
d.Id = id
|
|
d.Parentid = parentid
|
|
d.Name = name
|
|
if order > 0 {
|
|
d.Order = order
|
|
}
|
|
if name_en != "" {
|
|
d.NameEN = name_en
|
|
}
|
|
|
|
weChatPart := MapOut()
|
|
weChatPart["parentid"] = d.Parentid
|
|
weChatPart["name"] = d.Name
|
|
if d.NameEN != "" {
|
|
weChatPart["name_en"] = d.NameEN
|
|
}
|
|
if d.Id != 0 {
|
|
weChatPart["id"] = d.Id
|
|
}
|
|
if d.Order != 0 {
|
|
weChatPart["order"] = d.Order
|
|
}
|
|
|
|
sendJsonData, _ := json.Marshal(weChatPart)
|
|
|
|
tonken, _, err := GetWechatToken() //获取token
|
|
if err != nil {
|
|
return 0, false
|
|
}
|
|
weChatApiUrl := "https://qyapi.weixin.qq.com/cgi-bin/department/update?access_token=" + tonken
|
|
|
|
addDePartMent := CurlPostJosn(weChatApiUrl, sendJsonData)
|
|
var callBackData DePartMentCallBack
|
|
err = json.Unmarshal(addDePartMent, &callBackData)
|
|
fmt.Printf("json ===>%v\n", callBackData)
|
|
if callBackData.Errcode != 0 {
|
|
return 0, false
|
|
}
|
|
return d.Id, true
|
|
}
|
|
func (d *DePartMentInfo) InstDepartMentInfo() (departmentinfo *DePartMentInfo) {
|
|
var dep DePartMentInfo
|
|
dep.Id = 0
|
|
dep.Name = ""
|
|
dep.NameEN = ""
|
|
dep.Parentid = 0
|
|
dep.Order = 0
|
|
departmentinfo = &dep
|
|
return
|
|
}
|
|
|
|
/*
|
|
删除部门
|
|
*/
|
|
func DelDepartment(id int64) bool {
|
|
isTrue := false
|
|
ton, _, err := GetWechatToken()
|
|
if err != nil {
|
|
return isTrue
|
|
}
|
|
delIdStr := strconv.FormatInt(id, 10)
|
|
//删除部门
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + ton + "&id=" + delIdStr
|
|
// fmt.Printf("URL ===> %v\n", getTokenUrl)
|
|
callBackList := CurlGet(getTokenUrl)
|
|
var callBackData dePartMent
|
|
err = json.Unmarshal(callBackList, &callBackData)
|
|
if err != nil {
|
|
return isTrue
|
|
}
|
|
if callBackData.Errcode != 0 {
|
|
return isTrue
|
|
}
|
|
isTrue = true
|
|
return isTrue
|
|
}
|
|
|
|
// 获取读取成员(单个)
|
|
func GetOneAddressBookMember(userId string) (userInfoByte []byte, msg string, isTrue bool) {
|
|
isTrue = false
|
|
if userId == "" {
|
|
msg = "请输入用户UserId"
|
|
return
|
|
}
|
|
ton, _, err := GetWechatTokenType("maillist")
|
|
if err != nil {
|
|
msg = "获取Token失败!"
|
|
return
|
|
}
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=" + ton + "&userid=" + userId
|
|
// fmt.Printf("getTokenUrl:%v\n", getTokenUrl)
|
|
userInfo := CurlGet(getTokenUrl)
|
|
var callBackData WechatUserInfo
|
|
err = json.Unmarshal(userInfo, &callBackData)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if callBackData.Errcode != 0 {
|
|
return
|
|
}
|
|
userInfoByte = userInfo
|
|
return
|
|
}
|
|
|
|
// 获取部门成员详情
|
|
func GetDepartmentUserList(dePartMentId int) (userInfoByte []byte, msg string, isTrue bool) {
|
|
isTrue = false
|
|
if dePartMentId == 0 {
|
|
msg = "请输入部门Id"
|
|
return
|
|
}
|
|
ton, _, err := GetWechatTokenType("maillist")
|
|
if err != nil {
|
|
msg = "获取Token失败!"
|
|
return
|
|
}
|
|
getTokenUrl := "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=" + ton + "&department_id=" + strconv.Itoa(dePartMentId) + "&fetch_child=1"
|
|
userInfo := CurlGet(getTokenUrl)
|
|
userInfoByte = userInfo
|
|
isTrue = true
|
|
msg = "获取成功!"
|
|
return
|
|
}
|
|
|
|
//健康上报相关操作
|
|
|
|
/*
|
|
获取健康上报使用统计
|
|
*/
|
|
|
|
func GetHealthReportStat(dateTime string) (pv, uv int64, isTrue bool, msg string) {
|
|
isTrue = false
|
|
pv = 0
|
|
uv = 0
|
|
msg = "获取失败!"
|
|
if dateTime == "" {
|
|
return
|
|
}
|
|
ton, _, err := GetWechatTokenType("health")
|
|
if err != nil {
|
|
msg = "获取Token失败!"
|
|
return
|
|
}
|
|
getWechatApiUrl := "https://qyapi.weixin.qq.com/cgi-bin/health/get_health_report_stat?access_token=" + ton
|
|
weChatPart := MapOut()
|
|
weChatPart["date"] = dateTime
|
|
sendJsonData, jsonErr := json.Marshal(weChatPart)
|
|
if jsonErr != nil {
|
|
msg = "提交数据转换失败!"
|
|
return
|
|
}
|
|
|
|
addDePartMent := CurlPostJosn(getWechatApiUrl, sendJsonData)
|
|
var callBackData HealthReportStat
|
|
err = json.Unmarshal(addDePartMent, &callBackData)
|
|
// fmt.Printf("json ===>%v------>%v\n", weChatPart, string(addDePartMent))
|
|
if callBackData.Errcode != 0 {
|
|
return
|
|
}
|
|
isTrue = true
|
|
pv = callBackData.Pv
|
|
uv = callBackData.Uv
|
|
msg = callBackData.Errmsg
|
|
return
|
|
}
|
|
|
|
/*
|
|
企业当前正在运行的上报任务ID列表
|
|
ANIAyAd9-A4AHAAEwZhACsvfrYYfjcTz
|
|
*/
|
|
func GetRunHealthReportJobids(page int, pageSize int64) (dateAry []string, isTrue bool, msg string) {
|
|
isTrue = false
|
|
|
|
if pageSize == 0 {
|
|
pageSize = 100
|
|
}
|
|
ton, _, err := GetWechatTokenType("health")
|
|
if err != nil {
|
|
msg = "获取Token失败!"
|
|
return
|
|
}
|
|
getWechatApiUrl := "https://qyapi.weixin.qq.com/cgi-bin/health/get_report_jobids?access_token=" + ton
|
|
weChatPart := MapOut()
|
|
weChatPart["offset"] = page
|
|
weChatPart["limit"] = pageSize
|
|
sendJsonData, jsonErr := json.Marshal(weChatPart)
|
|
if jsonErr != nil {
|
|
msg = "提交数据转换失败!"
|
|
return
|
|
}
|
|
addDePartMent := CurlPostJosn(getWechatApiUrl, sendJsonData)
|
|
var callBackData CallBackData
|
|
|
|
err = json.Unmarshal(addDePartMent, &callBackData)
|
|
// fmt.Printf("json ===>%v------>%v\n", weChatPart, string(addDePartMent))
|
|
// return
|
|
if callBackData.Errcode != 0 {
|
|
return
|
|
}
|
|
isTrue = true
|
|
msg = callBackData.ErrMsg
|
|
|
|
var mspStructAry []string
|
|
for _, val := range callBackData.Jobids {
|
|
mspStructAry = append(mspStructAry, val.(string))
|
|
}
|
|
// fmt.Printf("json3 ===>%v------>%v\n", mspStructAry, string(addDePartMent))
|
|
dateAry = mspStructAry
|
|
// fmt.Printf("json2 ===>%v------>%v\n", dateAry, string(addDePartMent))
|
|
// fmt.Printf("%v", callBackData)
|
|
return
|
|
}
|
|
|
|
// 获取指定的健康上报任务详情
|
|
func GetReportJobInfo(jobid, date string) (ca *CallBackReportJobInfo, isTrue bool, kk, msg string) {
|
|
isTrue = false
|
|
|
|
if jobid == "" {
|
|
msg = "请输入任务ID"
|
|
return
|
|
}
|
|
if date == "" {
|
|
msg = "请输入要查询的日期"
|
|
return
|
|
}
|
|
ton, _, err := GetWechatTokenType("health")
|
|
if err != nil {
|
|
msg = "获取Token失败!"
|
|
return
|
|
}
|
|
getWechatApiUrl := "https://qyapi.weixin.qq.com/cgi-bin/health/get_report_job_info?access_token=" + ton
|
|
weChatPart := MapOut()
|
|
weChatPart["jobid"] = jobid
|
|
weChatPart["date"] = date
|
|
sendJsonData, jsonErr := json.Marshal(weChatPart)
|
|
if jsonErr != nil {
|
|
msg = "提交数据转换失败!"
|
|
return
|
|
}
|
|
addDePartMent := CurlPostJosn(getWechatApiUrl, sendJsonData)
|
|
// fmt.Printf("json2 ===>%v------>%v\n", weChatPart, string(addDePartMent))
|
|
kk = string(addDePartMent)
|
|
var sendCallBackDate CallBackReportJobInfo
|
|
err = json.Unmarshal(addDePartMent, &sendCallBackDate)
|
|
fmt.Printf("json23 ===>%v===>%v===>%v------>%v\n", getWechatApiUrl, string(sendJsonData), sendCallBackDate, string(addDePartMent))
|
|
if sendCallBackDate.Errcode == 0 {
|
|
isTrue = true
|
|
}
|
|
msg = sendCallBackDate.ErrMsg
|
|
ca = &sendCallBackDate
|
|
return
|
|
}
|
|
|
|
// 获取用户填写答案
|
|
func GetUserWriteAnswer(jobid, date string, page int, pageSize int64) (btyDate []byte, r *ReportAnswerResult, isTrue bool, msg string) {
|
|
isTrue = false
|
|
if jobid == "" {
|
|
msg = "请输入任务ID"
|
|
return
|
|
}
|
|
if date == "" {
|
|
msg = "请输入要查询的日期"
|
|
return
|
|
}
|
|
var pageInt64 int64 = 0
|
|
if page != 0 {
|
|
pageInt64 = int64(page) * pageSize
|
|
}
|
|
// pageInt64 = int64(page) * pageSize
|
|
if pageSize == 0 {
|
|
pageSize = 100
|
|
}
|
|
ton, _, err := GetWechatTokenType("health")
|
|
if err != nil {
|
|
msg = "获取Token失败!"
|
|
return
|
|
}
|
|
getWechatApiUrl := "https://qyapi.weixin.qq.com/cgi-bin/health/get_report_answer?access_token=" + ton
|
|
weChatPart := MapOut()
|
|
weChatPart["jobid"] = jobid
|
|
weChatPart["date"] = date
|
|
weChatPart["offset"] = pageInt64
|
|
weChatPart["limit"] = pageSize
|
|
sendJsonData, jsonErr := json.Marshal(weChatPart)
|
|
if jsonErr != nil {
|
|
msg = "提交数据转换失败!"
|
|
return
|
|
}
|
|
addDePartMent := CurlPostJosn(getWechatApiUrl, sendJsonData)
|
|
btyDate = addDePartMent
|
|
// fmt.Printf("结果---->%v\n", string(sendJsonData))
|
|
var reportAnswerJson ReportAnswerResult
|
|
err = json.Unmarshal(addDePartMent, &reportAnswerJson)
|
|
r = &reportAnswerJson
|
|
if reportAnswerJson.Errcode == 0 {
|
|
isTrue = true
|
|
}
|
|
msg = reportAnswerJson.ErrMsg
|
|
// fmt.Printf("json2*** %v ===>%v------>%v\n", page, weChatPart, len(reportAnswerJson.Answers))
|
|
return
|
|
}
|
|
|