site
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.

90 lines
1.6 KiB

package site
import (
"encoding/json"
"errors"
"git.tetele.net/tgo/redisrpc"
)
/**
* 从redis获取分站数据库及ID信息
* 2020/06/08
* gz
*/
func GetSiteFromRedis(host string) (map[string]string, error) {
var site map[string]string = make(map[string]string)
info, err := redisrpc.HGetString(SITE_KEY, host)
if err != nil {
return site, err
}
type siteStruct struct {
Database string `json:"database"`
SiteId string `json:"site_id"`
}
var siteInfo siteStruct
err = json.Unmarshal([]byte(info), &siteInfo)
if err != nil {
return site, err
}
if siteInfo.Database != "" {
site["database"] = siteInfo.Database
}
if siteInfo.SiteId != "" {
site["site_id"] = siteInfo.SiteId
}
return site, nil
}
/**
* 分站数据库及ID信息保存及redis
* 2020/06/08
* gz
*/
func SetToRedis(host string, site map[string]string) error {
if host == "" {
return errors.New("没有域名")
}
if len(site) < 1 {
return errors.New("没有站点信息")
}
siteStr, err := json.Marshal(site)
if err != nil {
return err
}
_, err = redisrpc.HSet(SITE_KEY, host, string(siteStr))
return err
}
/*
func GetAll() ([]map[string]string, error) {
list, err := redisrpc.HGetAll(SITE_KEY)
if err != nil {
return nil, err
}
var siteInfo map[string]string
var all []map[string]string
if len(list) > 0 {
for key, item := range list {
if (key+1)%2 == 0 { //只处理偶数位
siteInfo = make(map[string]string)
err = json.Unmarshal(item, &siteInfo)
if err != nil {
continue
}
siteInfo["domainname"] = string(list[key-1])
all = append(all, siteInfo)
}
}
}
return all, err
}
*/