单服黑名单

master
czx 2023-08-22 09:36:45 +08:00
parent 6f101d7493
commit edece153c6
2 changed files with 130 additions and 0 deletions

View File

@ -1071,6 +1071,113 @@ func (action *Action) DelBlackList(r *ghttp.Request) {
base.Succ(r, g.Map{"code": 0, "result": deleteResult.DeletedCount})
}
//保存单服黑名单
func (action *Action) SaveSingleBlackList(r *ghttp.Request) {
id := r.Form.Get("id")
uid := r.Form.Get("uid")
serverId := r.Form.Get("serverId")
blockTime := gconv.Int64(r.Form.Get("time"))
obj_id := primitive.NewObjectID()
if id != "" {
obj_id, _ = primitive.ObjectIDFromHex(id)
}
blackList := new(gameinfo.SingleBlackList)
blackList.Id = obj_id
blackList.Uid = uid
blackList.ServerId = serverId
if blockTime > 0 {
blackList.UnblockTime = time.Now().Unix() + blockTime*60
} else {
blackList.UnblockTime = -1
}
/*ages := uid + strconv.FormatInt(blackList.UnblockTime, 10)
cmdStr := "addblack"
singleResult := gameinfo.ModelServer.FindOne("server_id", serverId)
var serverInfo gameinfo.ServerInfo
err := singleResult.Decode(&serverInfo)
gmip := serverInfo.GMIp
gmport := serverInfo.GMPort
if err != nil {
base.Fail(r, "查询服务器信息出现异常,"+serverId)
}
blackList.ServerName = serverInfo.Name
cmd := netutil.Gmcmd{
ServerIp: gmip,
ServerPort: gmport,
Cmd: cmdStr,
Args: ages,
}
fmt.Println(cmd)
res := cmd.Creatcdk() //0 成功
if res == -100 {
base.Resp(r, 1, "thrift解析地址时出错", nil)
} else if res == -101 {
base.Resp(r, 1, "thrift打开服务器socket出错", nil)
} else if res != 0 {
base.Resp(r, 1, "操作失败", nil)
}*/
res1 := gameinfo.ModelSingleBlackList.AddBlackList(id, "", blackList)
if res1 > 0 {
base.Succ(r, g.Map{"code": 0, "result": "操作成功"})
} else {
base.Succ(r, g.Map{"code": 1, "result": "操作失败"})
}
}
//黑名单列表
func (action *Action) SingleBlackList(r *ghttp.Request) {
var timeLayoutStr = "2006-01-02 15:04:05"
form := base.NewForm(r.GetMap())
bs := bson.D{}
if form.Params != nil {
if form.Params["uid"] != "" {
bs1 := bson.E{"uid", form.Params["uid"]}
bs = append(bs, bs1)
}
if form.Params["serverId"] != "" {
bs1 := bson.E{"serverId", form.Params["serverId"]}
bs = append(bs, bs1)
}
}
data := g.ListAnyAny{}
count := gameinfo.ModelSingleBlackList.GetListCount(bs)
page := util.Page{
PageSize: gconv.Int64(form.Rows),
CurrentPage: gconv.Int64(form.Page),
Total: gconv.Int64(count),
}
blackListData := gameinfo.ModelSingleBlackList.FindBlackList(bs, page)
dayMap := gmap.New()
for blackListData.Next(context.TODO()) {
var blackList gameinfo.SingleBlackList
err := blackListData.Decode(&blackList)
if err != nil {
//log.Fatal(err)
log.Println(err)
continue
}
dayMap.Set("id", blackList.Id)
dayMap.Set("uid", blackList.Uid)
dayMap.Set("serverName", blackList.ServerName)
if blackList.UnblockTime > 0 {
dayMap.Set("unblockTime", time.Unix(blackList.UnblockTime, 0).Format(timeLayoutStr))
} else {
dayMap.Set("unblockTime", "永久封禁")
}
data = append(g.ListAnyAny{gconv.Map(dayMap)}, data...)
}
fmt.Println(data)
base.Succ(r,
g.Map{
//"page": page.PageSize,
"rows": data,
"total": page.Total,
"current": page.CurrentPage,
})
}
//公告信息列表
func (action *Action) NoticeInfo(r *ghttp.Request) {
var timeLayoutStr = "2006-01-02 15:04:05"

View File

@ -0,0 +1,23 @@
package gameinfo
import (
"github.com/gogf/gf/frame/g"
dao "gmanager/library/mongo"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type SingleBlackList struct {
Id primitive.ObjectID `bson:"_id" json:"id"`
ServerId string `bson:"serverId" json:"serverId"`
ServerName string `bson:"serverName" json:"serverName"`
Uid string `bson:"uid" json:"uid"`
UnblockTime int64 `bson:"unblockTime" json:"unblockTime"`
}
var (
// Table is the table name of account.
TableSingleBlackList = "single_black_user_list"
SingleBlackListTablbeName = g.Config().GetString("db.core")
// Model is the model object of account.
ModelSingleBlackList = dao.NewMgo(SingleBlackListTablbeName, TableSingleBlackList)
)