2025-05-08 15:48:34 +08:00
|
|
|
package smdl
|
|
|
|
|
|
|
|
import (
|
|
|
|
"admin/apps/game/domain/entity"
|
|
|
|
"admin/apps/game/model"
|
|
|
|
"admin/apps/game/model/dto"
|
|
|
|
"admin/internal/consts"
|
|
|
|
"admin/internal/errcode"
|
|
|
|
"admin/lib/httpclient"
|
|
|
|
"admin/lib/xlog"
|
|
|
|
"net/url"
|
|
|
|
)
|
|
|
|
|
|
|
|
type NoticeHook struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
func (hook *NoticeHook) 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)
|
|
|
|
}
|
|
|
|
|
2025-05-12 18:43:41 +08:00
|
|
|
//et := (&entity.CommonResource{}).FromPo(&model.Notice{}).FromDto(dtoObj)
|
|
|
|
//banInfo := et.ToPo().(*model.Notice)
|
|
|
|
//
|
|
|
|
//banApi := ""
|
|
|
|
//switch banInfo.BanType {
|
|
|
|
//case consts.BanType_Role:
|
|
|
|
// banApi = "banrole"
|
|
|
|
//case consts.BanType_RoleChat:
|
|
|
|
// banApi = "banroletalk"
|
|
|
|
//default:
|
|
|
|
// xlog.Warnf("神魔大陆不支持此类型的封禁:%v", banInfo.BanType)
|
|
|
|
// return nil
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//roleId := banInfo.Value
|
|
|
|
//
|
|
|
|
//params := &url.Values{}
|
|
|
|
//params.Add("server", banInfo.ServerConfID)
|
|
|
|
//params.Add("roleid", roleId)
|
|
|
|
//
|
|
|
|
//expireAt := banInfo.ExpireAt.Unix()
|
|
|
|
//
|
|
|
|
//if expireAt <= 0 {
|
|
|
|
// // 解封
|
|
|
|
// params.Add("forbidtime", "0")
|
|
|
|
// params.Add("desc", banInfo.BanReason)
|
|
|
|
// params.Add("notifytouser", banInfo.BanNotifyReason)
|
|
|
|
//} else {
|
|
|
|
// dura := (expireAt - time.Now().Unix()) / 60 // 神魔大陆封禁是分钟
|
|
|
|
// if dura <= 0 {
|
|
|
|
// // 解封
|
|
|
|
// params.Add("forbidtime", "0")
|
|
|
|
// } else {
|
|
|
|
// params.Add("forbidtime", strconv.FormatInt(dura, 10))
|
|
|
|
// params.Add("desc", banInfo.BanReason)
|
|
|
|
// params.Add("notifytouser", banInfo.BanNotifyReason)
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//rsp := make(map[string]any)
|
|
|
|
//err := httpclient.Request(alisrvAddr+"/"+banApi, "get", params, &rsp)
|
|
|
|
//if err != nil {
|
|
|
|
// return err
|
|
|
|
//}
|
2025-05-08 15:48:34 +08:00
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (hook *NoticeHook) Delete(projectInfo *entity.Project, resource string, dtoObj dto.CommonDtoValues) error {
|
2025-05-12 18:43:41 +08:00
|
|
|
return nil
|
|
|
|
|
2025-05-08 15:48:34 +08:00
|
|
|
alisrvAddr := projectInfo.GetApiAddr()
|
|
|
|
if alisrvAddr == "" {
|
|
|
|
return errcode.New(errcode.ServerError, "项目%v没有配置api服务器地址", projectInfo.Po.Name)
|
|
|
|
}
|
|
|
|
|
|
|
|
et := (&entity.CommonResource{}).FromPo(&model.Ban{}).FromDto(dtoObj)
|
|
|
|
banInfo := et.ToPo().(*model.Ban)
|
|
|
|
|
|
|
|
banApi := ""
|
|
|
|
switch banInfo.BanType {
|
|
|
|
case consts.BanType_Role:
|
|
|
|
banApi = "banrole"
|
|
|
|
case consts.BanType_RoleChat:
|
|
|
|
banApi = "banroletalkdel"
|
|
|
|
default:
|
|
|
|
xlog.Warnf("神魔大陆不支持此类型的封禁:%v", banInfo.BanType)
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
roleId := banInfo.Value
|
|
|
|
params := &url.Values{}
|
|
|
|
params.Add("server", banInfo.ServerConfID)
|
|
|
|
params.Add("roleid", roleId)
|
|
|
|
|
|
|
|
// 解封
|
|
|
|
params.Add("forbidtime", "-1")
|
|
|
|
params.Add("desc", "")
|
|
|
|
params.Add("notifytouser", "")
|
|
|
|
|
|
|
|
rsp := make(map[string]any)
|
|
|
|
err := httpclient.Request(alisrvAddr+"/"+banApi, "get", params, &rsp)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|