|
@@ -7,6 +7,7 @@ import (
|
|
|
v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
|
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/model"
|
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/repository"
|
|
|
+ "github.com/jinzhu/copier"
|
|
|
"github.com/spf13/cast"
|
|
|
"github.com/spf13/viper"
|
|
|
"strconv"
|
|
@@ -20,6 +21,7 @@ type GameShieldBackendService interface {
|
|
|
EditGameShieldBackend(ctx context.Context, req *v1.GameShieldBackendArrayRequest) (string, error)
|
|
|
DeleteGameShieldBackend(ctx context.Context, req *v1.DelGameShieldBackendRequest) (string, error)
|
|
|
GetGameShieldRequired(ctx context.Context, req *v1.GameShieldBackendArrayRequest) (*v1.GetGameShieldRequiredResponse, int, error)
|
|
|
+ ReplacementSourceMachineIp(ctx context.Context, req *v1.ReplacementSourceMachineIpRequest) error
|
|
|
}
|
|
|
|
|
|
func NewGameShieldBackendService(
|
|
@@ -303,3 +305,41 @@ func (s *gameShieldBackendService) SaveGameShieldBackend(ctx context.Context, re
|
|
|
|
|
|
return nil
|
|
|
}
|
|
|
+
|
|
|
+// ReplacementSourceMachineIp 替换源机ip
|
|
|
+func (s *gameShieldBackendService) ReplacementSourceMachineIp(ctx context.Context, req *v1.ReplacementSourceMachineIpRequest) error {
|
|
|
+ var data []v1.GameShieldBackendRequest
|
|
|
+ var baseData []model.GameShieldBackend
|
|
|
+ var err error
|
|
|
+ if len(req.OldSourceMachineIp) != 0 {
|
|
|
+ baseData, err = s.gameShieldBackendRepository.GetGameShieldBackendByHostIdAndSourceMachineIp(ctx, req.HostId, req.OldSourceMachineIp)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ for i := range baseData {
|
|
|
+ baseData[i].SourceMachineIP = req.NewSourceMachineIp
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(req.OldSourceMachineIp) == 0 {
|
|
|
+ baseData, err = s.gameShieldBackendRepository.GetGameShieldBackendByHostId(ctx, req.HostId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ for i := range baseData {
|
|
|
+ baseData[i].SourceMachineIP = req.NewSourceMachineIp
|
|
|
+ }
|
|
|
+ }
|
|
|
+ err = copier.Copy(&data, &baseData)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ _, err = s.EditGameShieldBackend(ctx, &v1.GameShieldBackendArrayRequest{
|
|
|
+ Items: data,
|
|
|
+ HostId: req.HostId,
|
|
|
+ Uid: req.Uid,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|