goProject/trunk/framework/managecenterMgr/resourceVersion.go
皮蛋13361098506 1b77f62820 初始化项目
2025-01-06 16:01:02 +08:00

101 lines
3.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package managecenterMgr
import (
"encoding/json"
"errors"
"fmt"
"Framework/managecenterModel"
. "Framework/managecenterModel"
"goutil/logUtil"
"goutil/webUtil"
)
var (
resourceVersionList = make([]*ResourceVersion, 128)
resourceVersionHash string
)
// 重新加载资源列表
func reloadResourceVersion(isInit bool) error {
//logUtil.DebugLog("开始刷新资源列表")
// 连接服务器,以获取数据
url := getManageCenterUrl("/API/ResourceVersionList.ashx")
// 定义请求参数
postDict := make(map[string]string)
postDict["HashValue"] = resourceVersionHash
//请求url,请求头
header := webUtil.GetFormHeader()
transport := webUtil.NewTransport()
transport.DisableKeepAlives = true
transport = webUtil.GetTimeoutTransport(transport, 30)
statusCode, returnBytes, err := webUtil.PostMapData(url, postDict, header, transport)
//statusCode, returnBytes, err := webUtil.PostMapData(url, postDict, header, nil)
if err != nil {
logUtil.ErrorLog(fmt.Sprintf("获取资源列表出错url:%s,错误信息为:%s", url, err))
return err
}
if statusCode != 200 {
logUtil.ErrorLog(fmt.Sprintf("获取资源列表出错url:%s,错误码为:%d", url, statusCode))
return err
}
// 解析返回值
returnObj := new(ReturnObject)
if err = json.Unmarshal(returnBytes, &returnObj); err != nil {
logUtil.ErrorLog(fmt.Sprintf("获取资源列表出错,反序列化返回值出错,错误信息为:%s, str:%s", err, string(returnBytes)))
return err
}
// 判断返回状态是否为成功
if returnObj.Code != 0 {
// 数据没有变化,所以没有获取到新的数据,不能算错误。
if returnObj.Code == 47 || returnObj.Message == "DataNotChanged" {
//如果本地集合为空且数据又没变化时重新初始化一下本地hash值
if len(resourceVersionList) == 0 {
resourceVersionHash = ""
}
return nil
} else {
msg := fmt.Sprintf("获取资源列表出错,返回状态:%d信息为%s", returnObj.Code, returnObj.Message)
logUtil.ErrorLog(msg)
return errors.New(msg)
}
}
// 解析Data
tmpResourceVersionList := make([]*ResourceVersion, 0, 128)
if data, ok := returnObj.Data.(string); !ok {
msg := "获取资源列表出错返回的数据不是string类型"
logUtil.ErrorLog(msg)
return errors.New(msg)
} else {
if err = json.Unmarshal([]byte(data), &tmpResourceVersionList); err != nil {
logUtil.ErrorLog(fmt.Sprintf("获取资源列表出错,反序列化数据出错,错误信息为:%s", err))
return err
}
}
//logUtil.DebugLog(fmt.Sprintf("刷新资源信息结束,资源数量:%d", len(tmpResourceVersionList)))
// 赋值给最终的partnerMap
resourceVersionList = tmpResourceVersionList
resourceVersionHash = returnObj.HashValue
//通知变更
mcDataChangeCallBack(managecenterModel.ResourceVersionData, isInit)
return nil
}
// 获取资源包列表
// 返回值:
// 获取资源包列表
func GetResourceVersionList() []*ResourceVersion {
return resourceVersionList
}