64 lines
1.9 KiB
Go
Raw Normal View History

2025-05-07 15:03:19 +08:00
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.RoleMail{}).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")
params.Add("server", whiteInfo.ServerConfID)
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.RoleMail{}).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")
params.Add("server", whiteInfo.ServerConfID)
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
}