|
@@ -7,7 +7,6 @@ import (
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/model"
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/model"
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/repository"
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/repository"
|
|
"github.com/spf13/viper"
|
|
"github.com/spf13/viper"
|
|
- "strconv"
|
|
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -55,26 +54,26 @@ type gameShieldService struct {
|
|
required RequiredService
|
|
required RequiredService
|
|
}
|
|
}
|
|
|
|
|
|
-func (service *gameShieldService) GetGameShieldrequired(ctx context.Context, req *v1.GameShieldSubmitRequest) (*v1.GetGameShieldRequiredResponse, error) {
|
|
|
|
- var res v1.GetGameShieldRequiredResponse
|
|
|
|
- var err error
|
|
|
|
- if req.Uid == 0 {
|
|
|
|
- return nil, fmt.Errorf("uid is required")
|
|
|
|
- }
|
|
|
|
- res.ExpiredAt, err = service.duedate.NextDueDate(ctx, req.Uid, req.HostId)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- res.Backend, err = service.formatter.FormatBackendData(ctx, req)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- res.Cookie, err = service.crawlerService.GetLoginCookie(ctx)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- return &res, nil
|
|
|
|
-}
|
|
|
|
|
|
+//func (service *gameShieldService) GetGameShieldrequired(ctx context.Context, req *v1.GameShieldSubmitRequest) (*v1.GetGameShieldRequiredResponse, error) {
|
|
|
|
+// var res v1.GetGameShieldRequiredResponse
|
|
|
|
+// var err error
|
|
|
|
+// if req.Uid == 0 {
|
|
|
|
+// return nil, fmt.Errorf("uid is required")
|
|
|
|
+// }
|
|
|
|
+// res.ExpiredAt, err = service.duedate.NextDueDate(ctx, req.Uid, req.HostId)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return nil, err
|
|
|
|
+// }
|
|
|
|
+// res.Backend, err = service.formatter.FormatBackendData(ctx, req)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return nil, err
|
|
|
|
+// }
|
|
|
|
+// res.Cookie, err = service.crawlerService.GetLoginCookie(ctx)
|
|
|
|
+// if err != nil {
|
|
|
|
+// return nil, err
|
|
|
|
+// }
|
|
|
|
+// return &res, nil
|
|
|
|
+//}
|
|
|
|
|
|
func (service *gameShieldService) SubmitGameShield(ctx context.Context, req *v1.GameShieldSubmitRequest) (string, error) {
|
|
func (service *gameShieldService) SubmitGameShield(ctx context.Context, req *v1.GameShieldSubmitRequest) (string, error) {
|
|
nameCount, err := service.gameShieldRepository.GetGameShieldDuplicateName(ctx, req.AppName, req.Uid)
|
|
nameCount, err := service.gameShieldRepository.GetGameShieldDuplicateName(ctx, req.AppName, req.Uid)
|
|
@@ -84,50 +83,46 @@ func (service *gameShieldService) SubmitGameShield(ctx context.Context, req *v1.
|
|
if nameCount > 0 {
|
|
if nameCount > 0 {
|
|
return "", fmt.Errorf("应用名称已存在")
|
|
return "", fmt.Errorf("应用名称已存在")
|
|
}
|
|
}
|
|
- require, err := service.GetGameShieldrequired(ctx, req)
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- dunName := strconv.Itoa(req.Uid) + "_" + strconv.FormatInt(time.Now().Unix(), 10) + "_" + req.AppName
|
|
|
|
- formData := map[string]interface{}{
|
|
|
|
- "app_name": dunName,
|
|
|
|
- "gateway_group_id": 4,
|
|
|
|
- "backend": require.Backend,
|
|
|
|
- "expired_at": require.ExpiredAt,
|
|
|
|
- "max_device_count": 0,
|
|
|
|
- }
|
|
|
|
- respBody, err := service.required.SendForm(ctx, "admin/info/rule/new", "admin/new/rule", formData)
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- // 解析响应内容中的 alert 消息
|
|
|
|
- res, err := service.parser.ParseAlert(string(respBody))
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- if res != "" {
|
|
|
|
- return "", fmt.Errorf(res)
|
|
|
|
- }
|
|
|
|
- KeyAndField, err := service.required.GetKeyAndField(ctx, dunName, "rule_id")
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
|
|
+ //require, err := service.GetGameShieldrequired(ctx, req)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //dunName := strconv.Itoa(req.Uid) + "_" + strconv.FormatInt(time.Now().Unix(), 10) + "_" + req.AppName
|
|
|
|
+ //formData := map[string]interface{}{
|
|
|
|
+ // "app_name": dunName,
|
|
|
|
+ // "gateway_group_id": 4,
|
|
|
|
+ // "backend": require.Backend,
|
|
|
|
+ // "expired_at": require.ExpiredAt,
|
|
|
|
+ // "max_device_count": 0,
|
|
|
|
+ //}
|
|
|
|
+ //respBody, err := service.required.SendForm(ctx, "admin/info/rule/new", "admin/new/rule", formData)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //// 解析响应内容中的 alert 消息
|
|
|
|
+ //res, err := service.parser.ParseAlert(string(respBody))
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //if res != "" {
|
|
|
|
+ // return "", fmt.Errorf(res)
|
|
|
|
+ //}
|
|
|
|
+ //KeyAndField, err := service.required.GetKeyAndField(ctx, dunName, "rule_id")
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
if err := service.gameShieldRepository.AddGameShield(ctx, &model.GameShield{
|
|
if err := service.gameShieldRepository.AddGameShield(ctx, &model.GameShield{
|
|
AppName: req.AppName,
|
|
AppName: req.AppName,
|
|
GatewayGroupId: 4,
|
|
GatewayGroupId: 4,
|
|
- Backend: require.Backend,
|
|
|
|
- RuleId: KeyAndField.FieldId,
|
|
|
|
- Key: KeyAndField.Key,
|
|
|
|
AddTime: time.Now(),
|
|
AddTime: time.Now(),
|
|
Uid: req.Uid,
|
|
Uid: req.Uid,
|
|
HostId: req.HostId,
|
|
HostId: req.HostId,
|
|
AppIp: req.AppIp,
|
|
AppIp: req.AppIp,
|
|
Checked: req.Checked,
|
|
Checked: req.Checked,
|
|
- DunName: dunName,
|
|
|
|
}); err != nil {
|
|
}); err != nil {
|
|
return "", err
|
|
return "", err
|
|
}
|
|
}
|
|
- return res, nil
|
|
|
|
|
|
+ return "", nil
|
|
}
|
|
}
|
|
|
|
|
|
func (service *gameShieldService) EditGameShield(ctx context.Context, req *v1.GameShieldSubmitRequest) (string, error) {
|
|
func (service *gameShieldService) EditGameShield(ctx context.Context, req *v1.GameShieldSubmitRequest) (string, error) {
|
|
@@ -138,59 +133,55 @@ func (service *gameShieldService) EditGameShield(ctx context.Context, req *v1.Ga
|
|
if ruleId != req.RuleId {
|
|
if ruleId != req.RuleId {
|
|
return "", fmt.Errorf("应用名称已存在")
|
|
return "", fmt.Errorf("应用名称已存在")
|
|
}
|
|
}
|
|
- require, err := service.GetGameShieldrequired(ctx, req)
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- tokenUrl := service.Url + "admin/info/rule/edit?&__goadmin_edit_pk=" + strconv.Itoa(req.RuleId) + "_" + req.AppName
|
|
|
|
- tokens, err := service.crawlerService.GetFormTokens(ctx, tokenUrl, require.Cookie)
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- sendUrl := service.Url + "admin/edit/rule"
|
|
|
|
-
|
|
|
|
- dunName := strconv.Itoa(req.Uid) + "_" + strconv.FormatInt(time.Now().Unix(), 10) + "_" + req.AppName
|
|
|
|
- formData := map[string]interface{}{
|
|
|
|
- "app_name": dunName,
|
|
|
|
- "gateway_group_id": 4,
|
|
|
|
- "backend": require.Backend,
|
|
|
|
- "rule_id": req.RuleId,
|
|
|
|
- "expired_at": require.ExpiredAt,
|
|
|
|
- "max_device_count": 0,
|
|
|
|
- "__go_admin_previous_": tokens["previous"],
|
|
|
|
- "__go_admin_t_": tokens["t"],
|
|
|
|
- }
|
|
|
|
- respBody, err := service.crawlerService.SendFormData(ctx, sendUrl, require.Cookie, formData)
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- // 解析响应内容中的 alert 消息
|
|
|
|
- res, err := service.parser.ParseAlert(string(respBody))
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
- if res != "" {
|
|
|
|
- return "", fmt.Errorf(res)
|
|
|
|
- }
|
|
|
|
- KeyAndField, err := service.required.GetKeyAndField(ctx, dunName, "rule_id")
|
|
|
|
- if err != nil {
|
|
|
|
- return "", err
|
|
|
|
- }
|
|
|
|
|
|
+ //require, err := service.GetGameShieldrequired(ctx, req)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //tokenUrl := service.Url + "admin/info/rule/edit?&__goadmin_edit_pk=" + strconv.Itoa(req.RuleId) + "_" + req.AppName
|
|
|
|
+ //tokens, err := service.crawlerService.GetFormTokens(ctx, tokenUrl, require.Cookie)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //sendUrl := service.Url + "admin/edit/rule"
|
|
|
|
+ //
|
|
|
|
+ //dunName := strconv.Itoa(req.Uid) + "_" + strconv.FormatInt(time.Now().Unix(), 10) + "_" + req.AppName
|
|
|
|
+ //formData := map[string]interface{}{
|
|
|
|
+ // "app_name": dunName,
|
|
|
|
+ // "gateway_group_id": 4,
|
|
|
|
+ // "backend": require.Backend,
|
|
|
|
+ // "rule_id": req.RuleId,
|
|
|
|
+ // "expired_at": require.ExpiredAt,
|
|
|
|
+ // "max_device_count": 0,
|
|
|
|
+ // "__go_admin_previous_": tokens["previous"],
|
|
|
|
+ // "__go_admin_t_": tokens["t"],
|
|
|
|
+ //}
|
|
|
|
+ //respBody, err := service.crawlerService.SendFormData(ctx, sendUrl, require.Cookie, formData)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //// 解析响应内容中的 alert 消息
|
|
|
|
+ //res, err := service.parser.ParseAlert(string(respBody))
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
|
|
+ //if res != "" {
|
|
|
|
+ // return "", fmt.Errorf(res)
|
|
|
|
+ //}
|
|
|
|
+ //KeyAndField, err := service.required.GetKeyAndField(ctx, dunName, "rule_id")
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return "", err
|
|
|
|
+ //}
|
|
if err := service.gameShieldRepository.UpdateGameShield(ctx, &model.GameShield{
|
|
if err := service.gameShieldRepository.UpdateGameShield(ctx, &model.GameShield{
|
|
AppName: req.AppName,
|
|
AppName: req.AppName,
|
|
GatewayGroupId: 4,
|
|
GatewayGroupId: 4,
|
|
- Backend: require.Backend,
|
|
|
|
- RuleId: KeyAndField.FieldId,
|
|
|
|
- Key: KeyAndField.Key,
|
|
|
|
Uid: req.Uid,
|
|
Uid: req.Uid,
|
|
HostId: req.HostId,
|
|
HostId: req.HostId,
|
|
AppIp: req.AppIp,
|
|
AppIp: req.AppIp,
|
|
Checked: req.Checked,
|
|
Checked: req.Checked,
|
|
- DunName: dunName,
|
|
|
|
}); err != nil {
|
|
}); err != nil {
|
|
return "", err
|
|
return "", err
|
|
}
|
|
}
|
|
- return res, nil
|
|
|
|
|
|
+ return "", nil
|
|
}
|
|
}
|
|
|
|
|
|
func (service *gameShieldService) DeleteGameShield(ctx context.Context, id int) (string, error) {
|
|
func (service *gameShieldService) DeleteGameShield(ctx context.Context, id int) (string, error) {
|