mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	优化代码
This commit is contained in:
		@@ -43,6 +43,9 @@ func (this *RestartLocalAPINodeAction) RunPost(params struct {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 停止1秒等待命令运行完毕
 | 
				
			||||||
 | 
						time.Sleep(1 * time.Second)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 检查是否已启动
 | 
						// 检查是否已启动
 | 
				
			||||||
	var countTries = 120
 | 
						var countTries = 120
 | 
				
			||||||
	for {
 | 
						for {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,7 @@ func (this *IndexAction) RunGet(params struct {
 | 
				
			|||||||
		selectedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
 | 
							selectedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	countriesResp, err := this.RPC().RegionCountryRPC().FindAllEnabledRegionCountries(this.AdminContext(), &pb.FindAllEnabledRegionCountriesRequest{})
 | 
						countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,7 +42,7 @@ func (this *ProvincesAction) RunGet(params struct {
 | 
				
			|||||||
		selectedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
 | 
							selectedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	provincesResp, err := this.RPC().RegionProvinceRPC().FindAllEnabledRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllEnabledRegionProvincesWithCountryIdRequest{
 | 
						provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithCountryIdRequest{
 | 
				
			||||||
		RegionCountryId: int64(ChinaCountryId),
 | 
							RegionCountryId: int64(ChinaCountryId),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,13 +46,13 @@ func (this *CountriesAction) RunGet(params struct {
 | 
				
			|||||||
		selectedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
 | 
							selectedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	countriesResp, err := this.RPC().RegionCountryRPC().FindAllEnabledRegionCountries(this.AdminContext(), &pb.FindAllEnabledRegionCountriesRequest{})
 | 
						countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	countryMaps := []maps.Map{}
 | 
						countryMaps := []maps.Map{}
 | 
				
			||||||
	for _, country := range countriesResp.Countries {
 | 
						for _, country := range countriesResp.RegionCountries {
 | 
				
			||||||
		countryMaps = append(countryMaps, maps.Map{
 | 
							countryMaps = append(countryMaps, maps.Map{
 | 
				
			||||||
			"id":        country.Id,
 | 
								"id":        country.Id,
 | 
				
			||||||
			"name":      country.Name,
 | 
								"name":      country.Name,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,15 +46,15 @@ func (this *ProvincesAction) RunGet(params struct {
 | 
				
			|||||||
		selectedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
 | 
							selectedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	provincesResp, err := this.RPC().RegionProvinceRPC().FindAllEnabledRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllEnabledRegionProvincesWithCountryIdRequest{
 | 
						provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithCountryIdRequest{
 | 
				
			||||||
		CountryId: int64(ChinaCountryId),
 | 
							RegionCountryId: int64(ChinaCountryId),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	provinceMaps := []maps.Map{}
 | 
						provinceMaps := []maps.Map{}
 | 
				
			||||||
	for _, province := range provincesResp.Provinces {
 | 
						for _, province := range provincesResp.RegionProvinces {
 | 
				
			||||||
		provinceMaps = append(provinceMaps, maps.Map{
 | 
							provinceMaps = append(provinceMaps, maps.Map{
 | 
				
			||||||
			"id":        province.Id,
 | 
								"id":        province.Id,
 | 
				
			||||||
			"name":      province.Name,
 | 
								"name":      province.Name,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ func (this *CountriesAction) RunGet(params struct {
 | 
				
			|||||||
		selectedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
 | 
							selectedCountryIds = policyConfig.Inbound.Region.DenyCountryIds
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	countriesResp, err := this.RPC().RegionCountryRPC().FindAllEnabledRegionCountries(this.AdminContext(), &pb.FindAllEnabledRegionCountriesRequest{})
 | 
						countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ func (this *ProvincesAction) RunGet(params struct {
 | 
				
			|||||||
		selectedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
 | 
							selectedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	provincesResp, err := this.RPC().RegionProvinceRPC().FindAllEnabledRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllEnabledRegionProvincesWithCountryIdRequest{
 | 
						provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithCountryIdRequest{
 | 
				
			||||||
		RegionCountryId: int64(ChinaCountryId),
 | 
							RegionCountryId: int64(ChinaCountryId),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
package iplibrary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/oplogs"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type DeleteAction struct {
 | 
					 | 
				
			||||||
	actionutils.ParentAction
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *DeleteAction) RunPost(params struct {
 | 
					 | 
				
			||||||
	LibraryId int64
 | 
					 | 
				
			||||||
}) {
 | 
					 | 
				
			||||||
	// 创建日志
 | 
					 | 
				
			||||||
	defer this.CreateLog(oplogs.LevelInfo, "删除IP库 %d", params.LibraryId)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	_, err := this.RPC().IPLibraryRPC().DeleteIPLibrary(this.AdminContext(), &pb.DeleteIPLibraryRequest{IpLibraryId: params.LibraryId})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	this.Success()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,50 +0,0 @@
 | 
				
			|||||||
package iplibrary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/oplogs"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type DownloadAction struct {
 | 
					 | 
				
			||||||
	actionutils.ParentAction
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *DownloadAction) Init() {
 | 
					 | 
				
			||||||
	this.Nav("", "", "")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *DownloadAction) RunGet(params struct {
 | 
					 | 
				
			||||||
	LibraryId int64
 | 
					 | 
				
			||||||
}) {
 | 
					 | 
				
			||||||
	// 日志
 | 
					 | 
				
			||||||
	defer this.CreateLog(oplogs.LevelInfo, "下载IP库 %d", params.LibraryId)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	libraryResp, err := this.RPC().IPLibraryRPC().FindEnabledIPLibrary(this.AdminContext(), &pb.FindEnabledIPLibraryRequest{IpLibraryId: params.LibraryId})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if libraryResp.IpLibrary == nil || libraryResp.IpLibrary.File == nil {
 | 
					 | 
				
			||||||
		this.NotFound("ipLibrary", params.LibraryId)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	file := libraryResp.IpLibrary.File
 | 
					 | 
				
			||||||
	chunkIdsResp, err := this.RPC().FileChunkRPC().FindAllFileChunkIds(this.AdminContext(), &pb.FindAllFileChunkIdsRequest{FileId: file.Id})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	this.AddHeader("Content-Disposition", "attachment; filename=\""+file.Filename+"\";")
 | 
					 | 
				
			||||||
	for _, chunkId := range chunkIdsResp.FileChunkIds {
 | 
					 | 
				
			||||||
		chunkResp, err := this.RPC().FileChunkRPC().DownloadFileChunk(this.AdminContext(), &pb.DownloadFileChunkRequest{FileChunkId: chunkId})
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			this.ErrorPage(err)
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if chunkResp.FileChunk != nil {
 | 
					 | 
				
			||||||
			this.Write(chunkResp.FileChunk.Data)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
package iplibrary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"github.com/iwind/TeaGo/actions"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type Helper struct {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func NewHelper() *Helper {
 | 
					 | 
				
			||||||
	return &Helper{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *Helper) BeforeAction(action *actions.ActionObject) {
 | 
					 | 
				
			||||||
	if action.Request.Method != http.MethodGet {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	action.Data["mainTab"] = "component"
 | 
					 | 
				
			||||||
	action.Data["secondMenuItem"] = "ip-library"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,56 +0,0 @@
 | 
				
			|||||||
package iplibrary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
 | 
					 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
					 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type IndexAction struct {
 | 
					 | 
				
			||||||
	actionutils.ParentAction
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *IndexAction) Init() {
 | 
					 | 
				
			||||||
	this.FirstMenu("index")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *IndexAction) RunGet(params struct {
 | 
					 | 
				
			||||||
	Type string
 | 
					 | 
				
			||||||
}) {
 | 
					 | 
				
			||||||
	if len(params.Type) == 0 {
 | 
					 | 
				
			||||||
		params.Type = serverconfigs.IPLibraryTypes[0].GetString("code")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	this.Data["types"] = serverconfigs.IPLibraryTypes
 | 
					 | 
				
			||||||
	this.Data["selectedType"] = params.Type
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 列表
 | 
					 | 
				
			||||||
	listResp, err := this.RPC().IPLibraryRPC().FindAllEnabledIPLibrariesWithType(this.AdminContext(), &pb.FindAllEnabledIPLibrariesWithTypeRequest{Type: params.Type})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	libraryMaps := []maps.Map{}
 | 
					 | 
				
			||||||
	for _, library := range listResp.IpLibraries {
 | 
					 | 
				
			||||||
		var fileMap maps.Map = nil
 | 
					 | 
				
			||||||
		if library.File != nil {
 | 
					 | 
				
			||||||
			fileMap = maps.Map{
 | 
					 | 
				
			||||||
				"id":       library.File.Id,
 | 
					 | 
				
			||||||
				"filename": library.File.Filename,
 | 
					 | 
				
			||||||
				"sizeMB":   fmt.Sprintf("%.2f", float64(library.File.Size)/1024/1024),
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		libraryMaps = append(libraryMaps, maps.Map{
 | 
					 | 
				
			||||||
			"id":          library.Id,
 | 
					 | 
				
			||||||
			"file":        fileMap,
 | 
					 | 
				
			||||||
			"createdTime": timeutil.FormatTime("Y-m-d H:i:s", library.CreatedAt),
 | 
					 | 
				
			||||||
		})
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	this.Data["libraries"] = libraryMaps
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	this.Show()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,23 +0,0 @@
 | 
				
			|||||||
package iplibrary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/configloaders"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/helpers"
 | 
					 | 
				
			||||||
	"github.com/iwind/TeaGo"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	TeaGo.BeforeStart(func(server *TeaGo.Server) {
 | 
					 | 
				
			||||||
		server.
 | 
					 | 
				
			||||||
			Helper(helpers.NewUserMustAuth(configloaders.AdminModuleCodeSetting)).
 | 
					 | 
				
			||||||
			Helper(NewHelper()).
 | 
					 | 
				
			||||||
			Helper(settingutils.NewHelper("ipLibrary")).
 | 
					 | 
				
			||||||
			Prefix("/settings/ip-library").
 | 
					 | 
				
			||||||
			Get("", new(IndexAction)).
 | 
					 | 
				
			||||||
			GetPost("/uploadPopup", new(UploadPopupAction)).
 | 
					 | 
				
			||||||
			Post("/delete", new(DeleteAction)).
 | 
					 | 
				
			||||||
			Get("/download", new(DownloadAction)).
 | 
					 | 
				
			||||||
			EndAll()
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,111 +0,0 @@
 | 
				
			|||||||
package iplibrary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/oplogs"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
 | 
					 | 
				
			||||||
	"github.com/iwind/TeaGo/actions"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type UploadPopupAction struct {
 | 
					 | 
				
			||||||
	actionutils.ParentAction
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *UploadPopupAction) Init() {
 | 
					 | 
				
			||||||
	this.Nav("", "", "")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *UploadPopupAction) RunGet(params struct{}) {
 | 
					 | 
				
			||||||
	this.Data["types"] = serverconfigs.IPLibraryTypes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	this.Show()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (this *UploadPopupAction) RunPost(params struct {
 | 
					 | 
				
			||||||
	Type string
 | 
					 | 
				
			||||||
	File *actions.File
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Must *actions.Must
 | 
					 | 
				
			||||||
}) {
 | 
					 | 
				
			||||||
	libraryType := serverconfigs.FindIPLibraryWithType(params.Type)
 | 
					 | 
				
			||||||
	if libraryType == nil {
 | 
					 | 
				
			||||||
		this.Fail("错误的IP类型")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if params.File == nil {
 | 
					 | 
				
			||||||
		this.Fail("请选择要上传的文件")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if params.File.Size == 0 {
 | 
					 | 
				
			||||||
		this.Fail("文件内容不能为空")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if params.File.Ext != libraryType.GetString("ext") {
 | 
					 | 
				
			||||||
		this.Fail("IP库文件扩展名错误,应该为:" + libraryType.GetString("ext"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	reader, err := params.File.OriginFile.Open()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	defer func() {
 | 
					 | 
				
			||||||
		_ = reader.Close()
 | 
					 | 
				
			||||||
	}()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 创建文件
 | 
					 | 
				
			||||||
	fileResp, err := this.RPC().FileRPC().CreateFile(this.AdminContext(), &pb.CreateFileRequest{
 | 
					 | 
				
			||||||
		Filename: params.File.Filename,
 | 
					 | 
				
			||||||
		Size:     params.File.Size,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	fileId := fileResp.FileId
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 上传内容
 | 
					 | 
				
			||||||
	buf := make([]byte, 512*1024)
 | 
					 | 
				
			||||||
	for {
 | 
					 | 
				
			||||||
		n, err := reader.Read(buf)
 | 
					 | 
				
			||||||
		if n > 0 {
 | 
					 | 
				
			||||||
			_, err = this.RPC().FileChunkRPC().CreateFileChunk(this.AdminContext(), &pb.CreateFileChunkRequest{
 | 
					 | 
				
			||||||
				FileId: fileId,
 | 
					 | 
				
			||||||
				Data:   buf[:n],
 | 
					 | 
				
			||||||
			})
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				this.Fail("上传失败:" + err.Error())
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			if err == io.EOF {
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			this.Fail("上传失败:" + err.Error())
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 置为已完成
 | 
					 | 
				
			||||||
	_, err = this.RPC().FileRPC().UpdateFileFinished(this.AdminContext(), &pb.UpdateFileFinishedRequest{FileId: fileId})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 保存
 | 
					 | 
				
			||||||
	createResp, err := this.RPC().IPLibraryRPC().CreateIPLibrary(this.AdminContext(), &pb.CreateIPLibraryRequest{
 | 
					 | 
				
			||||||
		Type:   params.Type,
 | 
					 | 
				
			||||||
		FileId: fileId,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		this.ErrorPage(err)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 创建日志
 | 
					 | 
				
			||||||
	defer this.CreateLog(oplogs.LevelInfo, "上传IP库 %d", createResp.IpLibraryId)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	this.Success()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -31,7 +31,7 @@ func (this *IndexAction) RunGet(params struct{}) {
 | 
				
			|||||||
	// 国家和地区
 | 
						// 国家和地区
 | 
				
			||||||
	var countryMaps = []maps.Map{}
 | 
						var countryMaps = []maps.Map{}
 | 
				
			||||||
	for _, countryId := range config.AllowCountryIds {
 | 
						for _, countryId := range config.AllowCountryIds {
 | 
				
			||||||
		countryResp, err := this.RPC().RegionCountryRPC().FindEnabledRegionCountry(this.AdminContext(), &pb.FindEnabledRegionCountryRequest{RegionCountryId: countryId})
 | 
							countryResp, err := this.RPC().RegionCountryRPC().FindRegionCountry(this.AdminContext(), &pb.FindRegionCountryRequest{RegionCountryId: countryId})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			this.ErrorPage(err)
 | 
								this.ErrorPage(err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
@@ -49,7 +49,7 @@ func (this *IndexAction) RunGet(params struct{}) {
 | 
				
			|||||||
	// 省份
 | 
						// 省份
 | 
				
			||||||
	var provinceMaps = []maps.Map{}
 | 
						var provinceMaps = []maps.Map{}
 | 
				
			||||||
	for _, provinceId := range config.AllowProvinceIds {
 | 
						for _, provinceId := range config.AllowProvinceIds {
 | 
				
			||||||
		provinceResp, err := this.RPC().RegionProvinceRPC().FindEnabledRegionProvince(this.AdminContext(), &pb.FindEnabledRegionProvinceRequest{RegionProvinceId: provinceId})
 | 
							provinceResp, err := this.RPC().RegionProvinceRPC().FindRegionProvince(this.AdminContext(), &pb.FindRegionProvinceRequest{RegionProvinceId: provinceId})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			this.ErrorPage(err)
 | 
								this.ErrorPage(err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,14 +22,14 @@ func NewAdvancedHelper(tab string) *AdvancedHelper {
 | 
				
			|||||||
func (this *AdvancedHelper) BeforeAction(actionPtr actions.ActionWrapper) (goNext bool) {
 | 
					func (this *AdvancedHelper) BeforeAction(actionPtr actions.ActionWrapper) (goNext bool) {
 | 
				
			||||||
	goNext = true
 | 
						goNext = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	action := actionPtr.Object()
 | 
						var action = actionPtr.Object()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 左侧菜单
 | 
						// 左侧菜单
 | 
				
			||||||
	action.Data["teaMenu"] = "settings"
 | 
						action.Data["teaMenu"] = "settings"
 | 
				
			||||||
	action.Data["teaSubMenu"] = "advanced"
 | 
						action.Data["teaSubMenu"] = "advanced"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 标签栏
 | 
						// 标签栏
 | 
				
			||||||
	tabbar := actionutils.NewTabbar()
 | 
						var tabbar = actionutils.NewTabbar()
 | 
				
			||||||
	var session = action.Session()
 | 
						var session = action.Session()
 | 
				
			||||||
	var adminId = session.GetInt64("adminId")
 | 
						var adminId = session.GetInt64("adminId")
 | 
				
			||||||
	if configloaders.AllowModule(adminId, configloaders.AdminModuleCodeSetting) {
 | 
						if configloaders.AllowModule(adminId, configloaders.AdminModuleCodeSetting) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
 | 
					//go:build !plus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package settingutils
 | 
					package settingutils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/configloaders"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/configloaders"
 | 
				
			||||||
	teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const"
 | 
					 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
				
			||||||
	"github.com/iwind/TeaGo/actions"
 | 
						"github.com/iwind/TeaGo/actions"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -20,23 +21,19 @@ func NewHelper(tab string) *Helper {
 | 
				
			|||||||
func (this *Helper) BeforeAction(actionPtr actions.ActionWrapper) (goNext bool) {
 | 
					func (this *Helper) BeforeAction(actionPtr actions.ActionWrapper) (goNext bool) {
 | 
				
			||||||
	goNext = true
 | 
						goNext = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	action := actionPtr.Object()
 | 
						var action = actionPtr.Object()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 左侧菜单
 | 
						// 左侧菜单
 | 
				
			||||||
	action.Data["teaMenu"] = "settings"
 | 
						action.Data["teaMenu"] = "settings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 标签栏
 | 
						// 标签栏
 | 
				
			||||||
	tabbar := actionutils.NewTabbar()
 | 
						var tabbar = actionutils.NewTabbar()
 | 
				
			||||||
	var session = action.Session()
 | 
						var session = action.Session()
 | 
				
			||||||
	var adminId = session.GetInt64("adminId")
 | 
						var adminId = session.GetInt64("adminId")
 | 
				
			||||||
	if configloaders.AllowModule(adminId, configloaders.AdminModuleCodeSetting) {
 | 
						if configloaders.AllowModule(adminId, configloaders.AdminModuleCodeSetting) {
 | 
				
			||||||
		tabbar.Add("Web服务", "", "/settings/server", "", this.tab == "server")
 | 
							tabbar.Add("Web服务", "", "/settings/server", "", this.tab == "server")
 | 
				
			||||||
		tabbar.Add("管理界面设置", "", "/settings/ui", "", this.tab == "ui")
 | 
							tabbar.Add("管理界面设置", "", "/settings/ui", "", this.tab == "ui")
 | 
				
			||||||
		if teaconst.IsPlus {
 | 
					 | 
				
			||||||
			tabbar.Add("用户界面设置", "", "/settings/user-ui", "", this.tab == "userUI")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		tabbar.Add("安全设置", "", "/settings/security", "", this.tab == "security")
 | 
							tabbar.Add("安全设置", "", "/settings/security", "", this.tab == "security")
 | 
				
			||||||
		//tabbar.Add("IP库", "", "/settings/ip-library", "", this.tab == "ipLibrary")
 | 
					 | 
				
			||||||
		tabbar.Add("检查更新", "", "/settings/updates", "", this.tab == "updates")
 | 
							tabbar.Add("检查更新", "", "/settings/updates", "", this.tab == "updates")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	tabbar.Add("个人资料", "", "/settings/profile", "", this.tab == "profile")
 | 
						tabbar.Add("个人资料", "", "/settings/profile", "", this.tab == "profile")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ type CityOptionsAction struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *CityOptionsAction) RunPost(params struct{}) {
 | 
					func (this *CityOptionsAction) RunPost(params struct{}) {
 | 
				
			||||||
	citiesResp, err := this.RPC().RegionCityRPC().FindAllEnabledRegionCities(this.AdminContext(), &pb.FindAllEnabledRegionCitiesRequest{
 | 
						citiesResp, err := this.RPC().RegionCityRPC().FindAllRegionCities(this.AdminContext(), &pb.FindAllRegionCitiesRequest{
 | 
				
			||||||
		IncludeRegionProvince: true,
 | 
							IncludeRegionProvince: true,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ type CountryOptionsAction struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *CountryOptionsAction) RunPost(params struct{}) {
 | 
					func (this *CountryOptionsAction) RunPost(params struct{}) {
 | 
				
			||||||
	countriesResp, err := this.RPC().RegionCountryRPC().FindAllEnabledRegionCountries(this.AdminContext(), &pb.FindAllEnabledRegionCountriesRequest{})
 | 
						countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ type ProviderOptionsAction struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *ProviderOptionsAction) RunPost(params struct{}) {
 | 
					func (this *ProviderOptionsAction) RunPost(params struct{}) {
 | 
				
			||||||
	providersResp, err := this.RPC().RegionProviderRPC().FindAllEnabledRegionProviders(this.AdminContext(), &pb.FindAllEnabledRegionProvidersRequest{})
 | 
						providersResp, err := this.RPC().RegionProviderRPC().FindAllRegionProviders(this.AdminContext(), &pb.FindAllRegionProvidersRequest{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ type ProvinceOptionsAction struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *ProvinceOptionsAction) RunPost(params struct{}) {
 | 
					func (this *ProvinceOptionsAction) RunPost(params struct{}) {
 | 
				
			||||||
	provincesResp, err := this.RPC().RegionProvinceRPC().FindAllEnabledRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllEnabledRegionProvincesWithCountryIdRequest{RegionCountryId: ChinaCountryId})
 | 
						provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithCountryIdRequest{RegionCountryId: ChinaCountryId})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ func (this *SelectCountriesPopupAction) RunGet(params struct {
 | 
				
			|||||||
}) {
 | 
					}) {
 | 
				
			||||||
	var selectedCountryIds = utils.SplitNumbers(params.CountryIds)
 | 
						var selectedCountryIds = utils.SplitNumbers(params.CountryIds)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	countriesResp, err := this.RPC().RegionCountryRPC().FindAllEnabledRegionCountries(this.AdminContext(), &pb.FindAllEnabledRegionCountriesRequest{})
 | 
						countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -50,7 +50,7 @@ func (this *SelectCountriesPopupAction) RunPost(params struct {
 | 
				
			|||||||
}) {
 | 
					}) {
 | 
				
			||||||
	var countryMaps = []maps.Map{}
 | 
						var countryMaps = []maps.Map{}
 | 
				
			||||||
	for _, countryId := range params.CountryIds {
 | 
						for _, countryId := range params.CountryIds {
 | 
				
			||||||
		countryResp, err := this.RPC().RegionCountryRPC().FindEnabledRegionCountry(this.AdminContext(), &pb.FindEnabledRegionCountryRequest{RegionCountryId: countryId})
 | 
							countryResp, err := this.RPC().RegionCountryRPC().FindRegionCountry(this.AdminContext(), &pb.FindRegionCountryRequest{RegionCountryId: countryId})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			this.ErrorPage(err)
 | 
								this.ErrorPage(err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@ func (this *SelectProvincesPopupAction) RunGet(params struct {
 | 
				
			|||||||
}) {
 | 
					}) {
 | 
				
			||||||
	var selectedProvinceIds = utils.SplitNumbers(params.ProvinceIds)
 | 
						var selectedProvinceIds = utils.SplitNumbers(params.ProvinceIds)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	provincesResp, err := this.RPC().RegionProvinceRPC().FindAllEnabledRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllEnabledRegionProvincesWithCountryIdRequest{RegionCountryId: ChinaCountryId})
 | 
						provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithCountryIdRequest{RegionCountryId: ChinaCountryId})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -50,7 +50,7 @@ func (this *SelectProvincesPopupAction) RunPost(params struct {
 | 
				
			|||||||
}) {
 | 
					}) {
 | 
				
			||||||
	var provinceMaps = []maps.Map{}
 | 
						var provinceMaps = []maps.Map{}
 | 
				
			||||||
	for _, provinceId := range params.ProvinceIds {
 | 
						for _, provinceId := range params.ProvinceIds {
 | 
				
			||||||
		provinceResp, err := this.RPC().RegionProvinceRPC().FindEnabledRegionProvince(this.AdminContext(), &pb.FindEnabledRegionProvinceRequest{RegionProvinceId: provinceId})
 | 
							provinceResp, err := this.RPC().RegionProvinceRPC().FindRegionProvince(this.AdminContext(), &pb.FindRegionProvinceRequest{RegionProvinceId: provinceId})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			this.ErrorPage(err)
 | 
								this.ErrorPage(err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -115,7 +115,6 @@ import (
 | 
				
			|||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings"
 | 
						_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings"
 | 
				
			||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/backup"
 | 
						_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/backup"
 | 
				
			||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/database"
 | 
						_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/database"
 | 
				
			||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/ip-library"
 | 
					 | 
				
			||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/login"
 | 
						_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/login"
 | 
				
			||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/profile"
 | 
						_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/profile"
 | 
				
			||||||
	_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/security"
 | 
						_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/security"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -212,7 +212,9 @@ Tea.context(function () {
 | 
				
			|||||||
			})
 | 
								})
 | 
				
			||||||
			.timeout(300)
 | 
								.timeout(300)
 | 
				
			||||||
			.success(function () {
 | 
								.success(function () {
 | 
				
			||||||
				teaweb.reload()
 | 
									this.$delay(function () {
 | 
				
			||||||
 | 
										teaweb.reload()
 | 
				
			||||||
 | 
									}, 5000)
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
			.done(function () {
 | 
								.done(function () {
 | 
				
			||||||
				this.isRestartingLocalAPINode = false
 | 
									this.isRestartingLocalAPINode = false
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user