package smdl import ( "admin/apps/game/domain/entity" "admin/apps/game/model" "admin/apps/game/model/dto" "admin/internal/errcode" "admin/lib/httpclient" "net/url" ) type WhitelistHook struct { } func (hook *WhitelistHook) Create(projectInfo *entity.Project, resource string, dtoObj dto.CommonDtoValues) error { alisrvAddr := projectInfo.GetApiAddr() if alisrvAddr == "" { return errcode.New(errcode.ServerError, "项目%v没有配置api服务器地址", projectInfo.Po.Name) } et := (&entity.CommonResource{}).FromPo(&model.WhiteList{}).FromDto(dtoObj) whiteInfo := et.ToPo().(*model.WhiteList) params := &url.Values{} params.Add("cmd_data", "OpWhitelist") params.Add("type", whiteInfo.WType) params.Add("value", whiteInfo.Value) params.Add("op", "add") if len(whiteInfo.ServerConfID) == 0 { // 所有区服 serverList, err := getAllRunningServers(projectInfo) if err != nil { return err } for _, v := range serverList { params.Set("server", v.ServerId) rsp := make(map[string]any) err := httpclient.Request(alisrvAddr+"/gm", "get", params, &rsp) if err != nil { return errcode.New(errcode.ServerError, "发送新增白名单请求:%+v错误:%v", whiteInfo, err) } } } else { // 指定区服 for _, v := range whiteInfo.ServerConfID { params.Set("server", v) rsp := make(map[string]any) err := httpclient.Request(alisrvAddr+"/gm", "get", params, &rsp) if err != nil { return errcode.New(errcode.ServerError, "发送新增白名单请求:%+v错误:%v", whiteInfo, err) } } } return nil } func (hook *WhitelistHook) Delete(projectInfo *entity.Project, resource string, dtoObj dto.CommonDtoValues) error { alisrvAddr := projectInfo.GetApiAddr() if alisrvAddr == "" { return errcode.New(errcode.ServerError, "项目%v没有配置api服务器地址", projectInfo.Po.Name) } et := (&entity.CommonResource{}).FromPo(&model.WhiteList{}).FromDto(dtoObj) whiteInfo := et.ToPo().(*model.WhiteList) params := &url.Values{} params.Add("cmd_data", "OpWhitelist") params.Add("type", whiteInfo.WType) params.Add("value", whiteInfo.Value) params.Add("op", "remove") if len(whiteInfo.ServerConfID) == 0 { // 所有区服 serverList, err := getAllRunningServers(projectInfo) if err != nil { return err } for _, v := range serverList { params.Set("server", v.ServerId) rsp := make(map[string]any) err := httpclient.Request(alisrvAddr+"/gm", "get", params, &rsp) if err != nil { return errcode.New(errcode.ServerError, "发送新增白名单请求:%+v错误:%v", whiteInfo, err) } } } else { // 指定区服 for _, v := range whiteInfo.ServerConfID { params.Set("server", v) rsp := make(map[string]any) err := httpclient.Request(alisrvAddr+"/gm", "get", params, &rsp) if err != nil { return errcode.New(errcode.ServerError, "发送新增白名单请求:%+v错误:%v", whiteInfo, err) } } } return nil }