Переглянути джерело

feat: rpc api for user, user_credential, user_device model

BaiLuoYan 3 місяців тому
батько
коміт
c769a241b4

+ 3 - 0
pb/client/gogameclient/go_game_client.go

@@ -338,6 +338,9 @@ type (
 	VpnTagListReq                              = pb.VpnTagListReq
 	VpnTagListResp                             = pb.VpnTagListResp
 	VpnTagVo                                   = pb.VpnTagVo
+	VpnWithIPAndPortItem                       = pb.VpnWithIPAndPortItem
+	VpnWithIPAndPortReq                        = pb.VpnWithIPAndPortReq
+	VpnWithIPAndPortResp                       = pb.VpnWithIPAndPortResp
 	VpnipAddReq                                = pb.VpnipAddReq
 	VpnipAddResp                               = pb.VpnipAddResp
 	VpnipBatchAddReq                           = pb.VpnipBatchAddReq

+ 49 - 46
pb/client/gopmpclient/go_pmp_client.go

@@ -338,6 +338,9 @@ type (
 	VpnTagListReq                              = pb.VpnTagListReq
 	VpnTagListResp                             = pb.VpnTagListResp
 	VpnTagVo                                   = pb.VpnTagVo
+	VpnWithIPAndPortItem                       = pb.VpnWithIPAndPortItem
+	VpnWithIPAndPortReq                        = pb.VpnWithIPAndPortReq
+	VpnWithIPAndPortResp                       = pb.VpnWithIPAndPortResp
 	VpnipAddReq                                = pb.VpnipAddReq
 	VpnipAddResp                               = pb.VpnipAddResp
 	VpnipBatchAddReq                           = pb.VpnipBatchAddReq
@@ -415,21 +418,21 @@ type (
 
 	GoPmpClient interface {
 		Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
-		// GlobalParamVo
+		// GlobalParamVo Model
 		GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
 		GlobalParamUpdate(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
 		GlobalParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		GlobalParamGet(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
 		GlobalParamGetWithLang(ctx context.Context, in *GlobalParamGetReq, opts ...grpc.CallOption) (*GlobalParamVo, error)
 		GlobalParamList(ctx context.Context, in *GlobalParamListReq, opts ...grpc.CallOption) (*GlobalParamListResp, error)
-		// ProductVo
+		// ProductVo Model
 		ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
 		ProductUpdate(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
 		ProductDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		ProductGet(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
 		ProductList(ctx context.Context, in *ProductListReq, opts ...grpc.CallOption) (*ProductListResp, error)
 		ProductAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*ProductListResp, error)
-		// ProductParamVo
+		// ProductParamVo Model
 		ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
 		ProductParamUpdate(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
 		ProductParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -464,70 +467,70 @@ type (
 		ProductActionTypeDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		ProductActionTypeGet(ctx context.Context, in *ProductActionTypeReq, opts ...grpc.CallOption) (*ProductActionTypeVo, error)
 		ProductActionTypeList(ctx context.Context, in *ProductActionTypeListReq, opts ...grpc.CallOption) (*ProductActionTypeListResp, error)
-		// AreaParamVo
+		// AreaParamVo Model
 		AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
 		AreaParamUpdate(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
 		AreaParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		AreaParamGet(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
 		AreaParamList(ctx context.Context, in *AreaParamListReq, opts ...grpc.CallOption) (*AreaParamListResp, error)
-		// NationalLanguage
+		// NationalLanguage Model
 		NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
 		NationalLanguageUpdate(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
 		NationalLanguageDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		NationalLanguageGet(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
 		NationalLanguageList(ctx context.Context, in *NationalLanguageListReq, opts ...grpc.CallOption) (*NationalLanguageListResp, error)
-		// Tip
+		// Tip Model
 		TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
 		TipUpdate(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
 		TipDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		TipGet(ctx context.Context, in *TipGetReq, opts ...grpc.CallOption) (*TipVo, error)
 		TipList(ctx context.Context, in *TipListReq, opts ...grpc.CallOption) (*TipListResp, error)
-		// Dict
+		// Dict Model
 		DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
 		DictUpdate(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
 		DictDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		DictGet(ctx context.Context, in *DictGetReq, opts ...grpc.CallOption) (*DictVo, error)
 		DictList(ctx context.Context, in *DictListReq, opts ...grpc.CallOption) (*DictListResp, error)
-		// UpgradePkgPlan
+		// UpgradePkgPlan Model
 		UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
 		UpgradePkgPlanUpdate(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
 		UpgradePkgPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		UpgradePkgPlanGet(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
 		UpgradePkgPlanList(ctx context.Context, in *UpgradePkgPlanListReq, opts ...grpc.CallOption) (*UpgradePkgPlanListResp, error)
-		// UpgradePkgPlanDetail
+		// UpgradePkgPlanDetail Model
 		UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
 		UpgradePkgPlanDetailUpdate(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
 		UpgradePkgPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		UpgradePkgPlanDetailGet(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
 		UpgradePkgPlanDetailList(ctx context.Context, in *UpgradePkgPlanDetailListReq, opts ...grpc.CallOption) (*UpgradePkgPlanDetailListResp, error)
-		// UpgradeResPlan
+		// UpgradeResPlan Model
 		UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
 		UpgradeResPlanUpdate(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
 		UpgradeResPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		UpgradeResPlanGet(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
 		UpgradeResPlanList(ctx context.Context, in *UpgradeResPlanListReq, opts ...grpc.CallOption) (*UpgradeResPlanListResp, error)
-		// UpgradeResPlanDetail
+		// UpgradeResPlanDetail Model
 		UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
 		UpgradeResPlanDetailUpdate(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
 		UpgradeResPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		UpgradeResPlanDetailGet(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
 		UpgradeResPlanDetailList(ctx context.Context, in *UpgradeResPlanDetailListReq, opts ...grpc.CallOption) (*UpgradeResPlanDetailListResp, error)
-		// AdPlan
+		// AdPlan Model
 		AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
 		AdPlanUpdate(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
 		AdPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		AdPlanGet(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
 		AdPlanList(ctx context.Context, in *AdPlanListReq, opts ...grpc.CallOption) (*AdPlanListResp, error)
-		// AdPlanDetail
+		// AdPlanDetail Model
 		AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
 		AdPlanDetailUpdate(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
 		AdPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		AdPlanDetailGet(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
 		AdPlanDetailList(ctx context.Context, in *AdPlanDetailListReq, opts ...grpc.CallOption) (*AdPlanDetailListResp, error)
-		// AdGlobalConfig
+		// AdGlobalConfig Model
 		AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
 		AdGlobalConfigUpdate(ctx context.Context, in *AdGlobalConfigVo, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
-		// JobBatch
+		// JobBatch Model
 		JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
 		JobBatchAddWithTasks(ctx context.Context, in *JobBatchWithTasksVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
 		JobBatchUpdate(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
@@ -536,48 +539,48 @@ type (
 		JobBatchGetWithTasks(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
 		JobBatchList(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListResp, error)
 		JobBatchListWithTasks(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListWithTasksResp, error)
-		// JobTasks
+		// JobTasks Model
 		JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
 		JobTasksUpdate(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
 		JobTasksDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		JobTasksGet(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
 		JobTasksList(ctx context.Context, in *JobTasksListReq, opts ...grpc.CallOption) (*JobTasksListResp, error)
-		// DeployConfig
+		// DeployConfig Model
 		DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
 		DeployConfigUpdate(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
 		DeployConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		DeployConfigGet(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
 		DeployConfigList(ctx context.Context, in *DeployConfigListReq, opts ...grpc.CallOption) (*DeployConfigListResp, error)
-		// OperationLog
+		// OperationLog Model
 		OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
 		OperationLogUpdate(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
 		OperationLogGet(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
 		OperationLogList(ctx context.Context, in *OperationLogListReq, opts ...grpc.CallOption) (*OperationLogListResp, error)
-		// AnnouncePlan
+		// AnnouncePlan Model
 		AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
 		AnnouncePlanUpdate(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
 		AnnouncePlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		AnnouncePlanGet(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
 		AnnouncePlanList(ctx context.Context, in *AnnouncePlanListReq, opts ...grpc.CallOption) (*AnnouncePlanListResp, error)
-		// AnnouncePlanDetail
+		// AnnouncePlanDetail Model
 		AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
 		AnnouncePlanDetailUpdate(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
 		AnnouncePlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		AnnouncePlanDetailGet(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
 		AnnouncePlanDetailList(ctx context.Context, in *AnnouncePlanDetailListReq, opts ...grpc.CallOption) (*AnnouncePlanDetailListResp, error)
-		// ServiceTypes
+		// ServiceTypes Model
 		ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
 		ServiceTypesUpdate(ctx context.Context, in *ServiceTypesUpdateReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
 		ServiceTypesDel(ctx context.Context, in *ServiceTypesDelReq, opts ...grpc.CallOption) (*Empty, error)
 		ServiceTypesGet(ctx context.Context, in *ServiceTypesGetReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
 		ServiceTypesList(ctx context.Context, in *ServiceTypesListReq, opts ...grpc.CallOption) (*ServiceTypesListResp, error)
-		// ServiceSets
+		// ServiceSets Model
 		ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
 		ServiceSetsUpdate(ctx context.Context, in *ServiceSetsUpdateReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
 		ServiceSetsDel(ctx context.Context, in *ServiceSetsDelReq, opts ...grpc.CallOption) (*Empty, error)
 		ServiceSetsGet(ctx context.Context, in *ServiceSetsGetReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
 		ServiceSetsList(ctx context.Context, in *ServiceSetsListReq, opts ...grpc.CallOption) (*ServiceSetsListResp, error)
-		// MessagePush
+		// MessagePush Model
 		MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
 		MessagePushUpdate(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
 		MessagePushList(ctx context.Context, in *MessagePushListReq, opts ...grpc.CallOption) (*MessagePushListResp, error)
@@ -599,7 +602,7 @@ func (m *defaultGoPmpClient) Ping(ctx context.Context, in *Request, opts ...grpc
 	return client.Ping(ctx, in, opts...)
 }
 
-// GlobalParamVo
+// GlobalParamVo Model
 func (m *defaultGoPmpClient) GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.GlobalParamAdd(ctx, in, opts...)
@@ -630,7 +633,7 @@ func (m *defaultGoPmpClient) GlobalParamList(ctx context.Context, in *GlobalPara
 	return client.GlobalParamList(ctx, in, opts...)
 }
 
-// ProductVo
+// ProductVo Model
 func (m *defaultGoPmpClient) ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.ProductAdd(ctx, in, opts...)
@@ -661,7 +664,7 @@ func (m *defaultGoPmpClient) ProductAll(ctx context.Context, in *Request, opts .
 	return client.ProductAll(ctx, in, opts...)
 }
 
-// ProductParamVo
+// ProductParamVo Model
 func (m *defaultGoPmpClient) ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.ProductParamAdd(ctx, in, opts...)
@@ -816,7 +819,7 @@ func (m *defaultGoPmpClient) ProductActionTypeList(ctx context.Context, in *Prod
 	return client.ProductActionTypeList(ctx, in, opts...)
 }
 
-// AreaParamVo
+// AreaParamVo Model
 func (m *defaultGoPmpClient) AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.AreaParamAdd(ctx, in, opts...)
@@ -842,7 +845,7 @@ func (m *defaultGoPmpClient) AreaParamList(ctx context.Context, in *AreaParamLis
 	return client.AreaParamList(ctx, in, opts...)
 }
 
-// NationalLanguage
+// NationalLanguage Model
 func (m *defaultGoPmpClient) NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.NationalLanguageAdd(ctx, in, opts...)
@@ -868,7 +871,7 @@ func (m *defaultGoPmpClient) NationalLanguageList(ctx context.Context, in *Natio
 	return client.NationalLanguageList(ctx, in, opts...)
 }
 
-// Tip
+// Tip Model
 func (m *defaultGoPmpClient) TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.TipAdd(ctx, in, opts...)
@@ -894,7 +897,7 @@ func (m *defaultGoPmpClient) TipList(ctx context.Context, in *TipListReq, opts .
 	return client.TipList(ctx, in, opts...)
 }
 
-// Dict
+// Dict Model
 func (m *defaultGoPmpClient) DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.DictAdd(ctx, in, opts...)
@@ -920,7 +923,7 @@ func (m *defaultGoPmpClient) DictList(ctx context.Context, in *DictListReq, opts
 	return client.DictList(ctx, in, opts...)
 }
 
-// UpgradePkgPlan
+// UpgradePkgPlan Model
 func (m *defaultGoPmpClient) UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.UpgradePkgPlanAdd(ctx, in, opts...)
@@ -946,7 +949,7 @@ func (m *defaultGoPmpClient) UpgradePkgPlanList(ctx context.Context, in *Upgrade
 	return client.UpgradePkgPlanList(ctx, in, opts...)
 }
 
-// UpgradePkgPlanDetail
+// UpgradePkgPlanDetail Model
 func (m *defaultGoPmpClient) UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.UpgradePkgPlanDetailAdd(ctx, in, opts...)
@@ -972,7 +975,7 @@ func (m *defaultGoPmpClient) UpgradePkgPlanDetailList(ctx context.Context, in *U
 	return client.UpgradePkgPlanDetailList(ctx, in, opts...)
 }
 
-// UpgradeResPlan
+// UpgradeResPlan Model
 func (m *defaultGoPmpClient) UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.UpgradeResPlanAdd(ctx, in, opts...)
@@ -998,7 +1001,7 @@ func (m *defaultGoPmpClient) UpgradeResPlanList(ctx context.Context, in *Upgrade
 	return client.UpgradeResPlanList(ctx, in, opts...)
 }
 
-// UpgradeResPlanDetail
+// UpgradeResPlanDetail Model
 func (m *defaultGoPmpClient) UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.UpgradeResPlanDetailAdd(ctx, in, opts...)
@@ -1024,7 +1027,7 @@ func (m *defaultGoPmpClient) UpgradeResPlanDetailList(ctx context.Context, in *U
 	return client.UpgradeResPlanDetailList(ctx, in, opts...)
 }
 
-// AdPlan
+// AdPlan Model
 func (m *defaultGoPmpClient) AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.AdPlanAdd(ctx, in, opts...)
@@ -1050,7 +1053,7 @@ func (m *defaultGoPmpClient) AdPlanList(ctx context.Context, in *AdPlanListReq,
 	return client.AdPlanList(ctx, in, opts...)
 }
 
-// AdPlanDetail
+// AdPlanDetail Model
 func (m *defaultGoPmpClient) AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.AdPlanDetailAdd(ctx, in, opts...)
@@ -1076,7 +1079,7 @@ func (m *defaultGoPmpClient) AdPlanDetailList(ctx context.Context, in *AdPlanDet
 	return client.AdPlanDetailList(ctx, in, opts...)
 }
 
-// AdGlobalConfig
+// AdGlobalConfig Model
 func (m *defaultGoPmpClient) AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.AdGlobalConfigGet(ctx, in, opts...)
@@ -1087,7 +1090,7 @@ func (m *defaultGoPmpClient) AdGlobalConfigUpdate(ctx context.Context, in *AdGlo
 	return client.AdGlobalConfigUpdate(ctx, in, opts...)
 }
 
-// JobBatch
+// JobBatch Model
 func (m *defaultGoPmpClient) JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.JobBatchAdd(ctx, in, opts...)
@@ -1128,7 +1131,7 @@ func (m *defaultGoPmpClient) JobBatchListWithTasks(ctx context.Context, in *JobB
 	return client.JobBatchListWithTasks(ctx, in, opts...)
 }
 
-// JobTasks
+// JobTasks Model
 func (m *defaultGoPmpClient) JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.JobTasksAdd(ctx, in, opts...)
@@ -1154,7 +1157,7 @@ func (m *defaultGoPmpClient) JobTasksList(ctx context.Context, in *JobTasksListR
 	return client.JobTasksList(ctx, in, opts...)
 }
 
-// DeployConfig
+// DeployConfig Model
 func (m *defaultGoPmpClient) DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.DeployConfigAdd(ctx, in, opts...)
@@ -1180,7 +1183,7 @@ func (m *defaultGoPmpClient) DeployConfigList(ctx context.Context, in *DeployCon
 	return client.DeployConfigList(ctx, in, opts...)
 }
 
-// OperationLog
+// OperationLog Model
 func (m *defaultGoPmpClient) OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.OperationLogAdd(ctx, in, opts...)
@@ -1201,7 +1204,7 @@ func (m *defaultGoPmpClient) OperationLogList(ctx context.Context, in *Operation
 	return client.OperationLogList(ctx, in, opts...)
 }
 
-// AnnouncePlan
+// AnnouncePlan Model
 func (m *defaultGoPmpClient) AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.AnnouncePlanAdd(ctx, in, opts...)
@@ -1227,7 +1230,7 @@ func (m *defaultGoPmpClient) AnnouncePlanList(ctx context.Context, in *AnnounceP
 	return client.AnnouncePlanList(ctx, in, opts...)
 }
 
-// AnnouncePlanDetail
+// AnnouncePlanDetail Model
 func (m *defaultGoPmpClient) AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.AnnouncePlanDetailAdd(ctx, in, opts...)
@@ -1253,7 +1256,7 @@ func (m *defaultGoPmpClient) AnnouncePlanDetailList(ctx context.Context, in *Ann
 	return client.AnnouncePlanDetailList(ctx, in, opts...)
 }
 
-// ServiceTypes
+// ServiceTypes Model
 func (m *defaultGoPmpClient) ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.ServiceTypesAdd(ctx, in, opts...)
@@ -1279,7 +1282,7 @@ func (m *defaultGoPmpClient) ServiceTypesList(ctx context.Context, in *ServiceTy
 	return client.ServiceTypesList(ctx, in, opts...)
 }
 
-// ServiceSets
+// ServiceSets Model
 func (m *defaultGoPmpClient) ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.ServiceSetsAdd(ctx, in, opts...)
@@ -1305,7 +1308,7 @@ func (m *defaultGoPmpClient) ServiceSetsList(ctx context.Context, in *ServiceSet
 	return client.ServiceSetsList(ctx, in, opts...)
 }
 
-// MessagePush
+// MessagePush Model
 func (m *defaultGoPmpClient) MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error) {
 	client := pb.NewGoPmpClientClient(m.cli.Conn())
 	return client.MessagePushAdd(ctx, in, opts...)

+ 3 - 0
pb/client/goshortdramaclient/go_short_drama_client.go

@@ -338,6 +338,9 @@ type (
 	VpnTagListReq                              = pb.VpnTagListReq
 	VpnTagListResp                             = pb.VpnTagListResp
 	VpnTagVo                                   = pb.VpnTagVo
+	VpnWithIPAndPortItem                       = pb.VpnWithIPAndPortItem
+	VpnWithIPAndPortReq                        = pb.VpnWithIPAndPortReq
+	VpnWithIPAndPortResp                       = pb.VpnWithIPAndPortResp
 	VpnipAddReq                                = pb.VpnipAddReq
 	VpnipAddResp                               = pb.VpnipAddResp
 	VpnipBatchAddReq                           = pb.VpnipBatchAddReq

+ 3 - 0
pb/client/gosysclient/go_sys_client.go

@@ -338,6 +338,9 @@ type (
 	VpnTagListReq                              = pb.VpnTagListReq
 	VpnTagListResp                             = pb.VpnTagListResp
 	VpnTagVo                                   = pb.VpnTagVo
+	VpnWithIPAndPortItem                       = pb.VpnWithIPAndPortItem
+	VpnWithIPAndPortReq                        = pb.VpnWithIPAndPortReq
+	VpnWithIPAndPortResp                       = pb.VpnWithIPAndPortResp
 	VpnipAddReq                                = pb.VpnipAddReq
 	VpnipAddResp                               = pb.VpnipAddResp
 	VpnipBatchAddReq                           = pb.VpnipBatchAddReq

+ 15 - 12
pb/client/gouserclient/go_user_client.go

@@ -338,6 +338,9 @@ type (
 	VpnTagListReq                              = pb.VpnTagListReq
 	VpnTagListResp                             = pb.VpnTagListResp
 	VpnTagVo                                   = pb.VpnTagVo
+	VpnWithIPAndPortItem                       = pb.VpnWithIPAndPortItem
+	VpnWithIPAndPortReq                        = pb.VpnWithIPAndPortReq
+	VpnWithIPAndPortResp                       = pb.VpnWithIPAndPortResp
 	VpnipAddReq                                = pb.VpnipAddReq
 	VpnipAddResp                               = pb.VpnipAddResp
 	VpnipBatchAddReq                           = pb.VpnipBatchAddReq
@@ -421,19 +424,19 @@ type (
 		UserAppConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		UserAppConfigGet(ctx context.Context, in *UserAppConfigGetReq, opts ...grpc.CallOption) (*UserAppConfigVo, error)
 		UserAppConfigList(ctx context.Context, in *UserAppConfigListReq, opts ...grpc.CallOption) (*UserAppConfigListRes, error)
-		// 设备管理
+		// Device Model
 		DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
 		DeviceUpdate(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
 		DeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		DeviceGet(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
 		DeviceList(ctx context.Context, in *DeviceListReq, opts ...grpc.CallOption) (*DeviceListRes, error)
-		// Account
+		// Account Model
 		AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
 		AccountUpdate(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
 		AccountDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		AccountGet(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
 		AccountList(ctx context.Context, in *AccountListReq, opts ...grpc.CallOption) (*AccountListResp, error)
-		// AccountDevice
+		// AccountDevice Model
 		AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
 		AccountDeviceUpdate(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
 		AccountDeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -451,19 +454,19 @@ type (
 		UserTestDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		UserTestGet(ctx context.Context, in *UserTestVo, opts ...grpc.CallOption) (*UserTestVo, error)
 		UserTestList(ctx context.Context, in *UserTestListReq, opts ...grpc.CallOption) (*UserTestListResp, error)
-		// User
+		// User Model
 		UserAdd(ctx context.Context, in *UserAddReq, opts ...grpc.CallOption) (*UserAddResp, error)
 		UserUpdate(ctx context.Context, in *UserUpdateReq, opts ...grpc.CallOption) (*UserUpdateResp, error)
 		UserDel(ctx context.Context, in *UserDelReq, opts ...grpc.CallOption) (*Empty, error)
 		UserGet(ctx context.Context, in *UserGetReq, opts ...grpc.CallOption) (*UserGetResp, error)
 		UserList(ctx context.Context, in *UserListReq, opts ...grpc.CallOption) (*UserListResp, error)
-		// UserCredential
+		// UserCredential Model
 		UserCredentialAdd(ctx context.Context, in *UserCredentialAddReq, opts ...grpc.CallOption) (*UserCredentialAddResp, error)
 		UserCredentialUpdate(ctx context.Context, in *UserCredentialUpdateReq, opts ...grpc.CallOption) (*UserCredentialUpdateResp, error)
 		UserCredentialDel(ctx context.Context, in *UserCredentialDelReq, opts ...grpc.CallOption) (*Empty, error)
 		UserCredentialGet(ctx context.Context, in *UserCredentialGetReq, opts ...grpc.CallOption) (*UserCredentialGetResp, error)
 		UserCredentialList(ctx context.Context, in *UserCredentialListReq, opts ...grpc.CallOption) (*UserCredentialListResp, error)
-		// UserDevice
+		// UserDevice Model
 		UserDeviceAdd(ctx context.Context, in *UserDeviceAddReq, opts ...grpc.CallOption) (*UserDeviceAddResp, error)
 		UserDeviceUpdate(ctx context.Context, in *UserDeviceUpdateReq, opts ...grpc.CallOption) (*UserDeviceUpdateResp, error)
 		UserDeviceDel(ctx context.Context, in *UserDeviceDelReq, opts ...grpc.CallOption) (*Empty, error)
@@ -513,7 +516,7 @@ func (m *defaultGoUserClient) UserAppConfigList(ctx context.Context, in *UserApp
 	return client.UserAppConfigList(ctx, in, opts...)
 }
 
-// 设备管理
+// Device Model
 func (m *defaultGoUserClient) DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error) {
 	client := pb.NewGoUserClientClient(m.cli.Conn())
 	return client.DeviceAdd(ctx, in, opts...)
@@ -539,7 +542,7 @@ func (m *defaultGoUserClient) DeviceList(ctx context.Context, in *DeviceListReq,
 	return client.DeviceList(ctx, in, opts...)
 }
 
-// Account
+// Account Model
 func (m *defaultGoUserClient) AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error) {
 	client := pb.NewGoUserClientClient(m.cli.Conn())
 	return client.AccountAdd(ctx, in, opts...)
@@ -565,7 +568,7 @@ func (m *defaultGoUserClient) AccountList(ctx context.Context, in *AccountListRe
 	return client.AccountList(ctx, in, opts...)
 }
 
-// AccountDevice
+// AccountDevice Model
 func (m *defaultGoUserClient) AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error) {
 	client := pb.NewGoUserClientClient(m.cli.Conn())
 	return client.AccountDeviceAdd(ctx, in, opts...)
@@ -643,7 +646,7 @@ func (m *defaultGoUserClient) UserTestList(ctx context.Context, in *UserTestList
 	return client.UserTestList(ctx, in, opts...)
 }
 
-// User
+// User Model
 func (m *defaultGoUserClient) UserAdd(ctx context.Context, in *UserAddReq, opts ...grpc.CallOption) (*UserAddResp, error) {
 	client := pb.NewGoUserClientClient(m.cli.Conn())
 	return client.UserAdd(ctx, in, opts...)
@@ -669,7 +672,7 @@ func (m *defaultGoUserClient) UserList(ctx context.Context, in *UserListReq, opt
 	return client.UserList(ctx, in, opts...)
 }
 
-// UserCredential
+// UserCredential Model
 func (m *defaultGoUserClient) UserCredentialAdd(ctx context.Context, in *UserCredentialAddReq, opts ...grpc.CallOption) (*UserCredentialAddResp, error) {
 	client := pb.NewGoUserClientClient(m.cli.Conn())
 	return client.UserCredentialAdd(ctx, in, opts...)
@@ -695,7 +698,7 @@ func (m *defaultGoUserClient) UserCredentialList(ctx context.Context, in *UserCr
 	return client.UserCredentialList(ctx, in, opts...)
 }
 
-// UserDevice
+// UserDevice Model
 func (m *defaultGoUserClient) UserDeviceAdd(ctx context.Context, in *UserDeviceAddReq, opts ...grpc.CallOption) (*UserDeviceAddResp, error) {
 	client := pb.NewGoUserClientClient(m.cli.Conn())
 	return client.UserDeviceAdd(ctx, in, opts...)

+ 33 - 24
pb/client/govpnclient/go_vpn_client.go

@@ -338,6 +338,9 @@ type (
 	VpnTagListReq                              = pb.VpnTagListReq
 	VpnTagListResp                             = pb.VpnTagListResp
 	VpnTagVo                                   = pb.VpnTagVo
+	VpnWithIPAndPortItem                       = pb.VpnWithIPAndPortItem
+	VpnWithIPAndPortReq                        = pb.VpnWithIPAndPortReq
+	VpnWithIPAndPortResp                       = pb.VpnWithIPAndPortResp
 	VpnipAddReq                                = pb.VpnipAddReq
 	VpnipAddResp                               = pb.VpnipAddResp
 	VpnipBatchAddReq                           = pb.VpnipBatchAddReq
@@ -417,7 +420,7 @@ type (
 		Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
 		// 表的事务操作
 		Transaction(ctx context.Context, in *TransactionReq, opts ...grpc.CallOption) (*Empty, error)
-		// VpnTag
+		// VpnTag Model
 		VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
 		VpnTagUpdate(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
 		VpnTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -425,7 +428,7 @@ type (
 		VpnTagList(ctx context.Context, in *VpnTagListReq, opts ...grpc.CallOption) (*VpnTagListResp, error)
 		VpnTagBatchAdd(ctx context.Context, in *VpnTagBatchAddReq, opts ...grpc.CallOption) (*VpnTagBatchAddResp, error)
 		VpnTagBatchUpdate(ctx context.Context, in *VpnTagBatchUpdateReq, opts ...grpc.CallOption) (*VpnTagBatchUpdateResp, error)
-		// VpnGroup
+		// VpnGroup Model
 		VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error)
 		VpnGroupUpdate(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*Empty, error)
 		VpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -433,13 +436,13 @@ type (
 		VpnGroupList(ctx context.Context, in *VpnGroupListReq, opts ...grpc.CallOption) (*VpnGroupListResp, error)
 		VpnGroupBatchAdd(ctx context.Context, in *VpnGroupBatchAddReq, opts ...grpc.CallOption) (*VpnGroupBatchAddResp, error)
 		VpnGroupBatchUpdate(ctx context.Context, in *VpnGroupBatchUpdateReq, opts ...grpc.CallOption) (*VpnGroupBatchUpdateResp, error)
-		// VpnGroupTag
+		// VpnGroupTag Model
 		VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
 		VpnGroupTagUpdate(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
 		VpnGroupTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		VpnGroupTagGet(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
 		VpnGroupTagList(ctx context.Context, in *VpnGroupTagListReq, opts ...grpc.CallOption) (*VpnGroupTagListResp, error)
-		// VpnLocation
+		// VpnLocation Model
 		VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error)
 		VpnLocationUpdate(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*Empty, error)
 		VpnLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -447,7 +450,7 @@ type (
 		VpnLocationList(ctx context.Context, in *VpnLocationListReq, opts ...grpc.CallOption) (*VpnLocationListResp, error)
 		VpnLocationBatchAdd(ctx context.Context, in *VpnLocationBatchAddReq, opts ...grpc.CallOption) (*VpnLocationBatchAddResp, error)
 		VpnLocationBatchUpdate(ctx context.Context, in *VpnLocationBatchUpdateReq, opts ...grpc.CallOption) (*VpnLocationBatchUpdateResp, error)
-		// VpnServer
+		// VpnServer Model
 		VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
 		VpnServerUpdate(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
 		VpnServerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -457,19 +460,20 @@ type (
 		VpnServerExList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerExListResp, error)
 		VpnServerBatchAdd(ctx context.Context, in *VpnServerBatchAddReq, opts ...grpc.CallOption) (*VpnServerBatchAddResp, error)
 		VpnServerBatchUpdate(ctx context.Context, in *VpnServerBatchUpdateReq, opts ...grpc.CallOption) (*VpnServerBatchUpdateResp, error)
-		// VpnServerLocation
+		// VpnServerLocation Model
 		VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
 		VpnServerLocationUpdate(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*Empty, error)
 		VpnServerLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 		VpnServerLocationGet(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
 		VpnServerLocationList(ctx context.Context, in *VpnServerLocationListReq, opts ...grpc.CallOption) (*VpnServerLocationListResp, error)
+		VpnWithIPAndPort(ctx context.Context, in *VpnWithIPAndPortReq, opts ...grpc.CallOption) (*VpnWithIPAndPortResp, error)
 		// VpnLocationServerCount
 		VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error)
-		// VpnProbeTask
+		// VpnProbeTask Model
 		VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error)
 		VpnProbeTaskUpdate(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*Empty, error)
 		VpnProbeTaskList(ctx context.Context, in *VpnProbeTaskListReq, opts ...grpc.CallOption) (*VpnProbeTaskListResp, error)
-		// VpnipWalled
+		// VpnipWalled Model
 		VpnipWalledAdd(ctx context.Context, in *VpnipWalledAddReq, opts ...grpc.CallOption) (*VpnipWalledAddResp, error)
 		VpnipWalledUpdate(ctx context.Context, in *VpnipWalledUpdateReq, opts ...grpc.CallOption) (*VpnipWalledUpdateResp, error)
 		VpnipWalledDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -477,7 +481,7 @@ type (
 		VpnipWalledList(ctx context.Context, in *VpnipWalledListReq, opts ...grpc.CallOption) (*VpnipWalledListResp, error)
 		VpnipWalledBatchAdd(ctx context.Context, in *VpnipWalledBatchAddReq, opts ...grpc.CallOption) (*VpnipWalledBatchAddResp, error)
 		VpnipWalledBatchUpdate(ctx context.Context, in *VpnipWalledBatchUpdateReq, opts ...grpc.CallOption) (*VpnipWalledBatchUpdateResp, error)
-		// Vpnip
+		// Vpnip Model
 		VpnipAdd(ctx context.Context, in *VpnipAddReq, opts ...grpc.CallOption) (*VpnipAddResp, error)
 		VpnipExAdd(ctx context.Context, in *VpnipExAddReq, opts ...grpc.CallOption) (*VpnipExAddResp, error)
 		VpnipUpdate(ctx context.Context, in *VpnipUpdateReq, opts ...grpc.CallOption) (*VpnipUpdateResp, error)
@@ -491,7 +495,7 @@ type (
 		VpnipBatchUpdate(ctx context.Context, in *VpnipBatchUpdateReq, opts ...grpc.CallOption) (*VpnipBatchUpdateResp, error)
 		VpnipExBatchAdd(ctx context.Context, in *VpnipExBatchAddReq, opts ...grpc.CallOption) (*VpnipExBatchAddResp, error)
 		VpnipExBatchUpdate(ctx context.Context, in *VpnipExBatchUpdateReq, opts ...grpc.CallOption) (*VpnipExBatchUpdateResp, error)
-		// VpnipRange
+		// VpnipRange Model
 		VpnipRangeAdd(ctx context.Context, in *VpnipRangeAddReq, opts ...grpc.CallOption) (*VpnipRangeAddResp, error)
 		// VpnipRangeExAdd 添加IP段及IP数据,如果IP数据已存在,会自动将已经存在的IP的 rangeId 更新为新增的IP段的ID
 		VpnipRangeExAdd(ctx context.Context, in *VpnipRangeExAddReq, opts ...grpc.CallOption) (*VpnipRangeExAddResp, error)
@@ -506,7 +510,7 @@ type (
 		VpnipRangeExBatchAdd(ctx context.Context, in *VpnipRangeExBatchAddReq, opts ...grpc.CallOption) (*VpnipRangeExBatchAddResp, error)
 		VpnipRangeBatchUpdate(ctx context.Context, in *VpnipRangeBatchUpdateReq, opts ...grpc.CallOption) (*VpnipRangeBatchUpdateResp, error)
 		VpnipRangeExBatchUpdate(ctx context.Context, in *VpnipRangeExBatchUpdateReq, opts ...grpc.CallOption) (*VpnipRangeExBatchUpdateResp, error)
-		// VpnipBind
+		// VpnipBind Model
 		VpnipBindAdd(ctx context.Context, in *VpnipBindAddReq, opts ...grpc.CallOption) (*VpnipBindAddResp, error)
 		VpnipBindUpdate(ctx context.Context, in *VpnipBindUpdateReq, opts ...grpc.CallOption) (*VpnipBindUpdateResp, error)
 		VpnipBindDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -515,7 +519,7 @@ type (
 		VpnipBindBatchUpdate(ctx context.Context, in *VpnipBindBatchUpdateReq, opts ...grpc.CallOption) (*VpnipBindBatchUpdateResp, error)
 		// VpnipsBindServer 为一台服务器绑定一批新IP,会解绑上次绑定的IP,再绑定新的IP,仅需提供 ipId, serverId, Remark, createAt, updateAt 即可,其他字段会自动填充
 		VpnipsBindServer(ctx context.Context, in *VpnipBindBatchAddReq, opts ...grpc.CallOption) (*VpnipBindBatchAddResp, error)
-		// VpnConfigTemplatePlan
+		// VpnConfigTemplatePlan Model
 		VpnConfigTemplatePlanAdd(ctx context.Context, in *VpnConfigTemplatePlanAddReq, opts ...grpc.CallOption) (*VpnConfigTemplatePlanAddResp, error)
 		VpnConfigTemplatePlanUpdate(ctx context.Context, in *VpnConfigTemplatePlanUpdateReq, opts ...grpc.CallOption) (*VpnConfigTemplatePlanUpdateResp, error)
 		VpnConfigTemplatePlanDel(ctx context.Context, in *VpnConfigTemplatePlanDelReq, opts ...grpc.CallOption) (*Empty, error)
@@ -550,7 +554,7 @@ func (m *defaultGoVpnClient) Transaction(ctx context.Context, in *TransactionReq
 	return client.Transaction(ctx, in, opts...)
 }
 
-// VpnTag
+// VpnTag Model
 func (m *defaultGoVpnClient) VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnTagAdd(ctx, in, opts...)
@@ -586,7 +590,7 @@ func (m *defaultGoVpnClient) VpnTagBatchUpdate(ctx context.Context, in *VpnTagBa
 	return client.VpnTagBatchUpdate(ctx, in, opts...)
 }
 
-// VpnGroup
+// VpnGroup Model
 func (m *defaultGoVpnClient) VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnGroupAdd(ctx, in, opts...)
@@ -622,7 +626,7 @@ func (m *defaultGoVpnClient) VpnGroupBatchUpdate(ctx context.Context, in *VpnGro
 	return client.VpnGroupBatchUpdate(ctx, in, opts...)
 }
 
-// VpnGroupTag
+// VpnGroupTag Model
 func (m *defaultGoVpnClient) VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnGroupTagAdd(ctx, in, opts...)
@@ -648,7 +652,7 @@ func (m *defaultGoVpnClient) VpnGroupTagList(ctx context.Context, in *VpnGroupTa
 	return client.VpnGroupTagList(ctx, in, opts...)
 }
 
-// VpnLocation
+// VpnLocation Model
 func (m *defaultGoVpnClient) VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnLocationAdd(ctx, in, opts...)
@@ -684,7 +688,7 @@ func (m *defaultGoVpnClient) VpnLocationBatchUpdate(ctx context.Context, in *Vpn
 	return client.VpnLocationBatchUpdate(ctx, in, opts...)
 }
 
-// VpnServer
+// VpnServer Model
 func (m *defaultGoVpnClient) VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnServerAdd(ctx, in, opts...)
@@ -730,7 +734,7 @@ func (m *defaultGoVpnClient) VpnServerBatchUpdate(ctx context.Context, in *VpnSe
 	return client.VpnServerBatchUpdate(ctx, in, opts...)
 }
 
-// VpnServerLocation
+// VpnServerLocation Model
 func (m *defaultGoVpnClient) VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnServerLocationAdd(ctx, in, opts...)
@@ -756,13 +760,18 @@ func (m *defaultGoVpnClient) VpnServerLocationList(ctx context.Context, in *VpnS
 	return client.VpnServerLocationList(ctx, in, opts...)
 }
 
+func (m *defaultGoVpnClient) VpnWithIPAndPort(ctx context.Context, in *VpnWithIPAndPortReq, opts ...grpc.CallOption) (*VpnWithIPAndPortResp, error) {
+	client := pb.NewGoVpnClientClient(m.cli.Conn())
+	return client.VpnWithIPAndPort(ctx, in, opts...)
+}
+
 // VpnLocationServerCount
 func (m *defaultGoVpnClient) VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnLocationServerCount(ctx, in, opts...)
 }
 
-// VpnProbeTask
+// VpnProbeTask Model
 func (m *defaultGoVpnClient) VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnProbeTaskAdd(ctx, in, opts...)
@@ -778,7 +787,7 @@ func (m *defaultGoVpnClient) VpnProbeTaskList(ctx context.Context, in *VpnProbeT
 	return client.VpnProbeTaskList(ctx, in, opts...)
 }
 
-// VpnipWalled
+// VpnipWalled Model
 func (m *defaultGoVpnClient) VpnipWalledAdd(ctx context.Context, in *VpnipWalledAddReq, opts ...grpc.CallOption) (*VpnipWalledAddResp, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnipWalledAdd(ctx, in, opts...)
@@ -814,7 +823,7 @@ func (m *defaultGoVpnClient) VpnipWalledBatchUpdate(ctx context.Context, in *Vpn
 	return client.VpnipWalledBatchUpdate(ctx, in, opts...)
 }
 
-// Vpnip
+// Vpnip Model
 func (m *defaultGoVpnClient) VpnipAdd(ctx context.Context, in *VpnipAddReq, opts ...grpc.CallOption) (*VpnipAddResp, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnipAdd(ctx, in, opts...)
@@ -880,7 +889,7 @@ func (m *defaultGoVpnClient) VpnipExBatchUpdate(ctx context.Context, in *VpnipEx
 	return client.VpnipExBatchUpdate(ctx, in, opts...)
 }
 
-// VpnipRange
+// VpnipRange Model
 func (m *defaultGoVpnClient) VpnipRangeAdd(ctx context.Context, in *VpnipRangeAddReq, opts ...grpc.CallOption) (*VpnipRangeAddResp, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnipRangeAdd(ctx, in, opts...)
@@ -947,7 +956,7 @@ func (m *defaultGoVpnClient) VpnipRangeExBatchUpdate(ctx context.Context, in *Vp
 	return client.VpnipRangeExBatchUpdate(ctx, in, opts...)
 }
 
-// VpnipBind
+// VpnipBind Model
 func (m *defaultGoVpnClient) VpnipBindAdd(ctx context.Context, in *VpnipBindAddReq, opts ...grpc.CallOption) (*VpnipBindAddResp, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnipBindAdd(ctx, in, opts...)
@@ -984,7 +993,7 @@ func (m *defaultGoVpnClient) VpnipsBindServer(ctx context.Context, in *VpnipBind
 	return client.VpnipsBindServer(ctx, in, opts...)
 }
 
-// VpnConfigTemplatePlan
+// VpnConfigTemplatePlan Model
 func (m *defaultGoVpnClient) VpnConfigTemplatePlanAdd(ctx context.Context, in *VpnConfigTemplatePlanAddReq, opts ...grpc.CallOption) (*VpnConfigTemplatePlanAddResp, error) {
 	client := pb.NewGoVpnClientClient(m.cli.Conn())
 	return client.VpnConfigTemplatePlanAdd(ctx, in, opts...)

+ 181 - 185
pb/gorpc.proto

@@ -941,12 +941,11 @@ message AdGlobalConfigGetReq {
 
 // JobBatch
 message JobBatchVo {
-  int64 id = 1;          // ID
-  string name = 2;       // 作业名称
-  string type = 3;       // 作业类型
-  string initParams = 4; // 作业初始化参数
-  string contextData =
-      5; // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
+  int64 id = 1;            // ID
+  string name = 2;         // 作业名称
+  string type = 3;         // 作业类型
+  string initParams = 4;   // 作业初始化参数
+  string contextData = 5;  // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
   string beginHandler = 6; // 预处理函数/URL
   string afterHandler = 7; // 后处理函数/URL
   int64 concurrency = 8;   // 并发控制数
@@ -994,12 +993,11 @@ message JobBatchListWithTasksResp {
 
 // JobTasks
 message JobTasksVo {
-  int64 id = 1;          // 任务id
-  int64 batchId = 2;     // 批量作业Id
-  string name = 3;       // 任务名称
-  string initParams = 4; // 任务初始化配置及数据
-  string runtimeData =
-      5; // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
+  int64 id = 1;            // 任务id
+  int64 batchId = 2;       // 批量作业Id
+  string name = 3;         // 任务名称
+  string initParams = 4;   // 任务初始化配置及数据
+  string runtimeData = 5;  // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
   string externalRefs = 6; // 外部系统引用,用于记录与外部系统交互产生的关联标识
   int64 startedTime = 7;   // 任务开始时间
   int64 finishedTime = 8;  // 任务结束时间
@@ -1256,16 +1254,17 @@ message MessagePushListResp {
 service GoPmpClient {
   rpc Ping(Request) returns (Response);
 
-  // GlobalParamVo
+  // GlobalParamVo Model
+  // GlobalParamAdd
   rpc GlobalParamAdd(GlobalParamVo) returns (GlobalParamVo);
   rpc GlobalParamUpdate(GlobalParamVo) returns (GlobalParamVo);
   rpc GlobalParamDel(Ids) returns (Empty);
-  rpc GlobalParamGet(GlobalParamVo)
-      returns (GlobalParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc GlobalParamGet(GlobalParamVo) returns (GlobalParamVo); // 兼容旧接口,新版本代码中请不要调用
   rpc GlobalParamGetWithLang(GlobalParamGetReq) returns (GlobalParamVo);
   rpc GlobalParamList(GlobalParamListReq) returns (GlobalParamListResp);
 
-  // ProductVo
+  // ProductVo Model
+  // ProductAdd
   rpc ProductAdd(ProductVo) returns (ProductVo);
   rpc ProductUpdate(ProductVo) returns (ProductVo);
   rpc ProductDel(Ids) returns (Empty);
@@ -1273,12 +1272,12 @@ service GoPmpClient {
   rpc ProductList(ProductListReq) returns (ProductListResp);
   rpc ProductAll(Request) returns (ProductListResp);
 
-  // ProductParamVo
+  // ProductParamVo Model
+  // ProductParamAdd
   rpc ProductParamAdd(ProductParamVo) returns (ProductParamVo);
   rpc ProductParamUpdate(ProductParamVo) returns (ProductParamVo);
   rpc ProductParamDel(Ids) returns (Empty);
-  rpc ProductParamGet(ProductParamVo)
-      returns (ProductParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc ProductParamGet(ProductParamVo) returns (ProductParamVo); // 兼容旧接口,新版本代码中请不要调用
   rpc ProductParamGetWithLang(ProductParamGetReq) returns (ProductParamVo);
   rpc ProductParamList(ProductParamListReq) returns (ProductParamListResp);
 
@@ -1290,65 +1289,56 @@ service GoPmpClient {
   rpc ProductActionList(ProductActionListReq) returns (ProductActionListResp);
 
   // ProductActionGroup 产品行为分组
-  rpc ProductActionGroupAdd(ProductActionGroupVo)
-      returns (ProductActionGroupVo);
-  rpc ProductActionGroupUpdate(ProductActionGroupVo)
-      returns (ProductActionGroupVo);
+  rpc ProductActionGroupAdd(ProductActionGroupVo) returns (ProductActionGroupVo);
+  rpc ProductActionGroupUpdate(ProductActionGroupVo) returns (ProductActionGroupVo);
   rpc ProductActionGroupDel(Ids) returns (Empty);
-  rpc ProductActionGroupGet(ProductActionGroupReq)
-      returns (ProductActionGroupVo);
-  rpc ProductActionGroupList(ProductActionGroupListReq)
-      returns (ProductActionGroupListResp);
+  rpc ProductActionGroupGet(ProductActionGroupReq) returns (ProductActionGroupVo);
+  rpc ProductActionGroupList(ProductActionGroupListReq) returns (ProductActionGroupListResp);
   rpc ProductActionGroupDisable(ProductActionGroupDisableReq) returns (Empty);
   rpc ProductActionGroupEnable(ProductActionGroupEnableReq) returns (Empty);
 
   // ProductActionPolicyGroup 产品行为策略分组
-  rpc ProductActionPolicyGroupAdd(ProductActionPolicyGroupVo)
-      returns (ProductActionPolicyGroupVo);
-  rpc ProductActionPolicyGroupUpdate(ProductActionPolicyGroupVo)
-      returns (ProductActionPolicyGroupVo);
+  rpc ProductActionPolicyGroupAdd(ProductActionPolicyGroupVo) returns (ProductActionPolicyGroupVo);
+  rpc ProductActionPolicyGroupUpdate(ProductActionPolicyGroupVo) returns (ProductActionPolicyGroupVo);
   rpc ProductActionPolicyGroupDel(Ids) returns (Empty);
-  rpc ProductActionPolicyGroupGet(ProductActionPolicyGroupReq)
-      returns (ProductActionPolicyGroupVo);
-  rpc ProductActionPolicyGroupList(ProductActionPolicyGroupListReq)
-      returns (ProductActionPolicyGroupListResp);
-  rpc ProductActionPolicyGroupDisable(ProductActionPolicyGroupDisableReq)
-      returns (Empty);
-  rpc ProductActionPolicyGroupEnable(ProductActionPolicyGroupEnableReq)
-      returns (Empty);
+  rpc ProductActionPolicyGroupGet(ProductActionPolicyGroupReq) returns (ProductActionPolicyGroupVo);
+  rpc ProductActionPolicyGroupList(ProductActionPolicyGroupListReq) returns (ProductActionPolicyGroupListResp);
+  rpc ProductActionPolicyGroupDisable(ProductActionPolicyGroupDisableReq) returns (Empty);
+  rpc ProductActionPolicyGroupEnable(ProductActionPolicyGroupEnableReq) returns (Empty);
 
   // ProductActionType 产品行为类型
   rpc ProductActionTypeAdd(ProductActionTypeVo) returns (ProductActionTypeVo);
-  rpc ProductActionTypeUpdate(ProductActionTypeVo)
-      returns (ProductActionTypeVo);
+  rpc ProductActionTypeUpdate(ProductActionTypeVo) returns (ProductActionTypeVo);
   rpc ProductActionTypeDel(Ids) returns (Empty);
   rpc ProductActionTypeGet(ProductActionTypeReq) returns (ProductActionTypeVo);
-  rpc ProductActionTypeList(ProductActionTypeListReq)
-      returns (ProductActionTypeListResp);
+  rpc ProductActionTypeList(ProductActionTypeListReq) returns (ProductActionTypeListResp);
 
-  // AreaParamVo
+  // AreaParamVo Model
+  // AreaParamAdd
   rpc AreaParamAdd(AreaParamVo) returns (AreaParamVo);
   rpc AreaParamUpdate(AreaParamVo) returns (AreaParamVo);
   rpc AreaParamDel(Ids) returns (Empty);
   rpc AreaParamGet(AreaParamVo) returns (AreaParamVo);
   rpc AreaParamList(AreaParamListReq) returns (AreaParamListResp);
 
-  // NationalLanguage
+  // NationalLanguage Model
+  // NationalLanguageAdd
   rpc NationalLanguageAdd(NationalLanguageVo) returns (NationalLanguageVo);
   rpc NationalLanguageUpdate(NationalLanguageVo) returns (NationalLanguageVo);
   rpc NationalLanguageDel(Ids) returns (Empty);
   rpc NationalLanguageGet(NationalLanguageVo) returns (NationalLanguageVo);
-  rpc NationalLanguageList(NationalLanguageListReq)
-      returns (NationalLanguageListResp);
+  rpc NationalLanguageList(NationalLanguageListReq) returns (NationalLanguageListResp);
 
-  // Tip
+  // Tip Model
+  // TipAdd
   rpc TipAdd(TipVo) returns (TipVo);
   rpc TipUpdate(TipVo) returns (TipVo);
   rpc TipDel(Ids) returns (Empty);
   rpc TipGet(TipGetReq) returns (TipVo);
   rpc TipList(TipListReq) returns (TipListResp);
 
-  // Dict
+  // Dict Model
+  // DictAdd
   rpc DictAdd(DictVo) returns (DictVo);
   rpc DictUpdate(DictVo) returns (DictVo);
   rpc DictDel(Ids) returns (Empty);
@@ -1369,72 +1359,70 @@ service GoPmpClient {
   // rpc UpgradePkgGet(UpgradePkgGetReq) returns (UpgradePkgVo);
   // rpc UpgradePkgList(UpgradePkgListReq) returns (UpgradePkgListResp);
 
-  // // UpgradeResConfig
-  // 热更新【代码资源】配置管理,控制哪些版本地区的用户可以更新 rpc
-  // UpgradeResConfigAdd(UpgradeResConfigVo) returns (UpgradeResConfigVo); rpc
-  // UpgradeResConfigUpdate(UpgradeResConfigVo) returns (Empty); rpc
-  // UpgradeResConfigDel(Ids) returns (Empty); rpc
-  // UpgradeResConfigGet(UpgradeResConfigGetReq) returns (UpgradeResConfigVo);
-  // rpc UpgradeResConfigList(UpgradeResConfigListReq)
-  //     returns (UpgradeResConfigListResp);
-
-  // UpgradePkgPlan
+  // // UpgradeResConfig Model
+  // // UpgradeResConfigAdd
+  // 热更新【代码资源】配置管理,控制哪些版本地区的用户可以更新
+  // rpc UpgradeResConfigAdd(UpgradeResConfigVo) returns (UpgradeResConfigVo);
+  // rpc UpgradeResConfigUpdate(UpgradeResConfigVo) returns (Empty);
+  // rpc UpgradeResConfigDel(Ids) returns (Empty);
+  // rpc UpgradeResConfigGet(UpgradeResConfigGetReq) returns (UpgradeResConfigVo);
+  // rpc UpgradeResConfigList(UpgradeResConfigListReq) returns (UpgradeResConfigListResp);
+
+  // UpgradePkgPlan Model
+  // UpgradePkgPlanAdd
   rpc UpgradePkgPlanAdd(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
   rpc UpgradePkgPlanUpdate(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
   rpc UpgradePkgPlanDel(Ids) returns (Empty);
   rpc UpgradePkgPlanGet(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
-  rpc UpgradePkgPlanList(UpgradePkgPlanListReq)
-      returns (UpgradePkgPlanListResp);
-
-  // UpgradePkgPlanDetail
-  rpc UpgradePkgPlanDetailAdd(UpgradePkgPlanDetailVo)
-      returns (UpgradePkgPlanDetailVo);
-  rpc UpgradePkgPlanDetailUpdate(UpgradePkgPlanDetailVo)
-      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanList(UpgradePkgPlanListReq) returns (UpgradePkgPlanListResp);
+
+  // UpgradePkgPlanDetail Model
+  // UpgradePkgPlanDetailAdd
+  rpc UpgradePkgPlanDetailAdd(UpgradePkgPlanDetailVo) returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailUpdate(UpgradePkgPlanDetailVo) returns (UpgradePkgPlanDetailVo);
   rpc UpgradePkgPlanDetailDel(Ids) returns (Empty);
-  rpc UpgradePkgPlanDetailGet(UpgradePkgPlanDetailVo)
-      returns (UpgradePkgPlanDetailVo);
-  rpc UpgradePkgPlanDetailList(UpgradePkgPlanDetailListReq)
-      returns (UpgradePkgPlanDetailListResp);
+  rpc UpgradePkgPlanDetailGet(UpgradePkgPlanDetailVo) returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailList(UpgradePkgPlanDetailListReq) returns (UpgradePkgPlanDetailListResp);
 
-  // UpgradeResPlan
+  // UpgradeResPlan Model
+  // UpgradeResPlanAdd
   rpc UpgradeResPlanAdd(UpgradeResPlanVo) returns (UpgradeResPlanVo);
   rpc UpgradeResPlanUpdate(UpgradeResPlanVo) returns (UpgradeResPlanVo);
   rpc UpgradeResPlanDel(Ids) returns (Empty);
   rpc UpgradeResPlanGet(UpgradeResPlanVo) returns (UpgradeResPlanVo);
-  rpc UpgradeResPlanList(UpgradeResPlanListReq)
-      returns (UpgradeResPlanListResp);
-
-  // UpgradeResPlanDetail
-  rpc UpgradeResPlanDetailAdd(UpgradeResPlanDetailVo)
-      returns (UpgradeResPlanDetailVo);
-  rpc UpgradeResPlanDetailUpdate(UpgradeResPlanDetailVo)
-      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanList(UpgradeResPlanListReq) returns (UpgradeResPlanListResp);
+
+  // UpgradeResPlanDetail Model
+  // UpgradeResPlanDetailAdd
+  rpc UpgradeResPlanDetailAdd(UpgradeResPlanDetailVo) returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailUpdate(UpgradeResPlanDetailVo) returns (UpgradeResPlanDetailVo);
   rpc UpgradeResPlanDetailDel(Ids) returns (Empty);
-  rpc UpgradeResPlanDetailGet(UpgradeResPlanDetailVo)
-      returns (UpgradeResPlanDetailVo);
-  rpc UpgradeResPlanDetailList(UpgradeResPlanDetailListReq)
-      returns (UpgradeResPlanDetailListResp);
+  rpc UpgradeResPlanDetailGet(UpgradeResPlanDetailVo) returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailList(UpgradeResPlanDetailListReq) returns (UpgradeResPlanDetailListResp);
 
-  // AdPlan
+  // AdPlan Model
+  // AdPlanAdd
   rpc AdPlanAdd(AdPlanVo) returns (AdPlanVo);
   rpc AdPlanUpdate(AdPlanVo) returns (AdPlanVo);
   rpc AdPlanDel(Ids) returns (Empty);
   rpc AdPlanGet(AdPlanVo) returns (AdPlanVo);
   rpc AdPlanList(AdPlanListReq) returns (AdPlanListResp);
 
-  // AdPlanDetail
+  // AdPlanDetail Model
+  // AdPlanDetailAdd
   rpc AdPlanDetailAdd(AdPlanDetailVo) returns (AdPlanDetailVo);
   rpc AdPlanDetailUpdate(AdPlanDetailVo) returns (AdPlanDetailVo);
   rpc AdPlanDetailDel(Ids) returns (Empty);
   rpc AdPlanDetailGet(AdPlanDetailVo) returns (AdPlanDetailVo);
   rpc AdPlanDetailList(AdPlanDetailListReq) returns (AdPlanDetailListResp);
 
-  // AdGlobalConfig
+  // AdGlobalConfig Model
+  // AdGlobalConfigGet
   rpc AdGlobalConfigGet(AdGlobalConfigGetReq) returns (AdGlobalConfigVo);
   rpc AdGlobalConfigUpdate(AdGlobalConfigVo) returns (AdGlobalConfigVo);
 
-  // JobBatch
+  // JobBatch Model
+  // JobBatchAdd
   rpc JobBatchAdd(JobBatchVo) returns (JobBatchVo);
   rpc JobBatchAddWithTasks(JobBatchWithTasksVo) returns (JobBatchWithTasksVo);
   rpc JobBatchUpdate(JobBatchVo) returns (JobBatchVo);
@@ -1442,62 +1430,65 @@ service GoPmpClient {
   rpc JobBatchGet(JobBatchVo) returns (JobBatchVo);
   rpc JobBatchGetWithTasks(JobBatchVo) returns (JobBatchWithTasksVo);
   rpc JobBatchList(JobBatchListReq) returns (JobBatchListResp);
-  rpc JobBatchListWithTasks(JobBatchListReq)
-      returns (JobBatchListWithTasksResp);
+  rpc JobBatchListWithTasks(JobBatchListReq) returns (JobBatchListWithTasksResp);
 
-  // JobTasks
+  // JobTasks Model
+  // JobTasksAdd
   rpc JobTasksAdd(JobTasksVo) returns (JobTasksVo);
   rpc JobTasksUpdate(JobTasksVo) returns (JobTasksVo);
   rpc JobTasksDel(Ids) returns (Empty);
   rpc JobTasksGet(JobTasksVo) returns (JobTasksVo);
   rpc JobTasksList(JobTasksListReq) returns (JobTasksListResp);
 
-  // DeployConfig
+  // DeployConfig Model
+  // DeployConfigAdd
   rpc DeployConfigAdd(DeployConfigVo) returns (DeployConfigVo);
   rpc DeployConfigUpdate(DeployConfigVo) returns (DeployConfigVo);
   rpc DeployConfigDel(Ids) returns (Empty);
   rpc DeployConfigGet(DeployConfigVo) returns (DeployConfigVo);
   rpc DeployConfigList(DeployConfigListReq) returns (DeployConfigListResp);
 
-  // OperationLog
+  // OperationLog Model
+  // OperationLogAdd
   rpc OperationLogAdd(OperationLogVo) returns (OperationLogVo);
   rpc OperationLogUpdate(OperationLogVo) returns (OperationLogVo);
   rpc OperationLogGet(OperationLogVo) returns (OperationLogVo);
   rpc OperationLogList(OperationLogListReq) returns (OperationLogListResp);
 
-  // AnnouncePlan
+  // AnnouncePlan Model
+  // AnnouncePlanAdd
   rpc AnnouncePlanAdd(AnnouncePlanVo) returns (AnnouncePlanVo);
   rpc AnnouncePlanUpdate(AnnouncePlanVo) returns (AnnouncePlanVo);
   rpc AnnouncePlanDel(Ids) returns (Empty);
   rpc AnnouncePlanGet(AnnouncePlanVo) returns (AnnouncePlanVo);
   rpc AnnouncePlanList(AnnouncePlanListReq) returns (AnnouncePlanListResp);
 
-  // AnnouncePlanDetail
-  rpc AnnouncePlanDetailAdd(AnnouncePlanDetailVo)
-      returns (AnnouncePlanDetailVo);
-  rpc AnnouncePlanDetailUpdate(AnnouncePlanDetailVo)
-      returns (AnnouncePlanDetailVo);
+  // AnnouncePlanDetail Model
+  // AnnouncePlanDetailAdd
+  rpc AnnouncePlanDetailAdd(AnnouncePlanDetailVo) returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailUpdate(AnnouncePlanDetailVo) returns (AnnouncePlanDetailVo);
   rpc AnnouncePlanDetailDel(Ids) returns (Empty);
-  rpc AnnouncePlanDetailGet(AnnouncePlanDetailVo)
-      returns (AnnouncePlanDetailVo);
-  rpc AnnouncePlanDetailList(AnnouncePlanDetailListReq)
-      returns (AnnouncePlanDetailListResp);
+  rpc AnnouncePlanDetailGet(AnnouncePlanDetailVo) returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailList(AnnouncePlanDetailListReq) returns (AnnouncePlanDetailListResp);
 
-  // ServiceTypes
+  // ServiceTypes Model
+  // ServiceTypesAdd
   rpc ServiceTypesAdd(ServiceTypesAddReq) returns (ServiceTypesVo);
   rpc ServiceTypesUpdate(ServiceTypesUpdateReq) returns (ServiceTypesVo);
   rpc ServiceTypesDel(ServiceTypesDelReq) returns (Empty);
   rpc ServiceTypesGet(ServiceTypesGetReq) returns (ServiceTypesVo);
   rpc ServiceTypesList(ServiceTypesListReq) returns (ServiceTypesListResp);
 
-  // ServiceSets
+  // ServiceSets Model
+  // ServiceSetsAdd
   rpc ServiceSetsAdd(ServiceSetsAddReq) returns (ServiceSetsVo);
   rpc ServiceSetsUpdate(ServiceSetsUpdateReq) returns (ServiceSetsVo);
   rpc ServiceSetsDel(ServiceSetsDelReq) returns (Empty);
   rpc ServiceSetsGet(ServiceSetsGetReq) returns (ServiceSetsVo);
   rpc ServiceSetsList(ServiceSetsListReq) returns (ServiceSetsListResp);
 
-  // MessagePush
+  // MessagePush Model
+  // MessagePushAdd
   rpc MessagePushAdd(MessagePushVo) returns (MessagePushVo);
   rpc MessagePushUpdate(MessagePushVo) returns (MessagePushVo);
   rpc MessagePushList(MessagePushListReq) returns (MessagePushListResp);
@@ -1937,14 +1928,10 @@ service GoSysClient {
   rpc SysUserDelete(Ids) returns (Empty);
   rpc SysUserGet(SysUserGetReq) returns (SysUserVo);
   rpc SysUserList(SysUserListReq) returns (SysUserListResp);
-  rpc SysUserAddWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
-      returns (SysUserWithRolesAndPerms);
-  rpc SysUserUpdateWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
-      returns (SysUserWithRolesAndPerms);
-  rpc SysUserGetWithRolesAndPerms(SysUserGetReq)
-      returns (SysUserWithRolesAndPerms);
-  rpc SysUserListWithRolesAndPerms(SysUserListReq)
-      returns (SysUserListWithRolesAndPermsResp);
+  rpc SysUserAddWithRolesAndPerms(SysUserWithRoleIdsAndPermRules) returns (SysUserWithRolesAndPerms);
+  rpc SysUserUpdateWithRolesAndPerms(SysUserWithRoleIdsAndPermRules) returns (SysUserWithRolesAndPerms);
+  rpc SysUserGetWithRolesAndPerms(SysUserGetReq) returns (SysUserWithRolesAndPerms);
+  rpc SysUserListWithRolesAndPerms(SysUserListReq) returns (SysUserListWithRolesAndPermsResp);
 
   // 角色管理
   rpc SysRoleAdd(SysRoleVo) returns (SysRoleVo);
@@ -2243,6 +2230,7 @@ message UserCredentialListReq {
   Page page = 1;
   UserCredentialVo vo = 2;
   repeated int64 excludeIds = 3; // 排除的ID
+  repeated int64 userIds = 4;    // 用户ID
 }
 message UserCredentialListResp {
   int64 total = 1;
@@ -2276,7 +2264,7 @@ message UserDeviceListReq {
   UserDeviceVo vo = 2;
   repeated int64 excludeIds = 3; // 排除的ID
   repeated int64 userIds = 4;    // 用户ID
-  repeated int64 dIds = 5;       // device 表的 id
+  repeated int64 dids = 5;       // device 表的 id
 }
 message UserDeviceListResp {
   int64 total = 1;
@@ -2294,21 +2282,24 @@ service GoUserClient {
   rpc UserAppConfigGet(UserAppConfigGetReq) returns (UserAppConfigVo);
   rpc UserAppConfigList(UserAppConfigListReq) returns (UserAppConfigListRes);
 
-  // 设备管理
+  // Device Model
+  // DeviceAdd
   rpc DeviceAdd(DeviceVo) returns (DeviceVo);
   rpc DeviceUpdate(DeviceVo) returns (DeviceVo);
   rpc DeviceDel(Ids) returns (Empty);
   rpc DeviceGet(DeviceVo) returns (DeviceVo);
   rpc DeviceList(DeviceListReq) returns (DeviceListRes);
 
-  // Account
+  // Account Model
+  // AccountAdd
   rpc AccountAdd(AccountVo) returns (AccountVo);
   rpc AccountUpdate(AccountVo) returns (AccountVo);
   rpc AccountDel(Ids) returns (Empty);
   rpc AccountGet(AccountVo) returns (AccountVo);
   rpc AccountList(AccountListReq) returns (AccountListResp);
 
-  // AccountDevice
+  // AccountDevice Model
+  // AccountDeviceAdd
   rpc AccountDeviceAdd(AccountDeviceVo) returns (AccountDeviceVo);
   rpc AccountDeviceUpdate(AccountDeviceVo) returns (AccountDeviceVo);
   rpc AccountDeviceDel(Ids) returns (Empty);
@@ -2329,21 +2320,24 @@ service GoUserClient {
   rpc UserTestGet(UserTestVo) returns (UserTestVo);
   rpc UserTestList(UserTestListReq) returns (UserTestListResp);
 
-  // User
+  // User Model
+  // UserAdd
   rpc UserAdd(UserAddReq) returns (UserAddResp);
   rpc UserUpdate(UserUpdateReq) returns (UserUpdateResp);
   rpc UserDel(UserDelReq) returns (Empty);
   rpc UserGet(UserGetReq) returns (UserGetResp);
   rpc UserList(UserListReq) returns (UserListResp);
 
-  // UserCredential
+  // UserCredential Model
+  // UserCredentialAdd
   rpc UserCredentialAdd(UserCredentialAddReq) returns (UserCredentialAddResp);
   rpc UserCredentialUpdate(UserCredentialUpdateReq) returns (UserCredentialUpdateResp);
   rpc UserCredentialDel(UserCredentialDelReq) returns (Empty);
   rpc UserCredentialGet(UserCredentialGetReq) returns (UserCredentialGetResp);
   rpc UserCredentialList(UserCredentialListReq) returns (UserCredentialListResp);
 
-  // UserDevice
+  // UserDevice Model
+  // UserDeviceAdd
   rpc UserDeviceAdd(UserDeviceAddReq) returns (UserDeviceAddResp);
   rpc UserDeviceUpdate(UserDeviceUpdateReq) returns (UserDeviceUpdateResp);
   rpc UserDeviceDel(UserDeviceDelReq) returns (Empty);
@@ -2622,6 +2616,21 @@ message VpnProbeTaskListResp {
   repeated VpnProbeTaskVo list = 2;
 }
 
+message VpnWithIPAndPortReq {
+  // 产品Code
+  string productCode = 1;
+}
+
+message VpnWithIPAndPortResp {
+  repeated VpnWithIPAndPortItem list = 1;
+}
+message VpnWithIPAndPortItem {
+  // location displayConfig
+  string displayConfig = 1;
+  // 设备
+  repeated VpnServerVo vo = 2;
+}
+
 // VpnipWalledVo
 message VpnipWalledVo {
   int64 id = 1;         // ID
@@ -2961,7 +2970,8 @@ service GoVpnClient {
   // 表的事务操作
   rpc Transaction(TransactionReq) returns (Empty);
 
-  // VpnTag
+  // VpnTag Model
+  // VpnTagAdd
   rpc VpnTagAdd(VpnTagVo) returns (VpnTagVo);
   rpc VpnTagUpdate(VpnTagVo) returns (VpnTagVo);
   rpc VpnTagDel(Ids) returns (Empty);
@@ -2970,35 +2980,36 @@ service GoVpnClient {
   rpc VpnTagBatchAdd(VpnTagBatchAddReq) returns (VpnTagBatchAddResp);
   rpc VpnTagBatchUpdate(VpnTagBatchUpdateReq) returns (VpnTagBatchUpdateResp);
 
-  // VpnGroup
+  // VpnGroup Model
+  // VpnGroupAdd
   rpc VpnGroupAdd(VpnGroupAddReq) returns (VpnGroupVo);
   rpc VpnGroupUpdate(VpnGroupAddReq) returns (Empty);
   rpc VpnGroupDel(Ids) returns (Empty);
   rpc VpnGroupGet(VpnGroupGetReq) returns (VpnGroupVo);
   rpc VpnGroupList(VpnGroupListReq) returns (VpnGroupListResp);
   rpc VpnGroupBatchAdd(VpnGroupBatchAddReq) returns (VpnGroupBatchAddResp);
-  rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq)
-      returns (VpnGroupBatchUpdateResp);
+  rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq) returns (VpnGroupBatchUpdateResp);
 
-  // VpnGroupTag
+  // VpnGroupTag Model
+  // VpnGroupTagAdd
   rpc VpnGroupTagAdd(VpnGroupTagVo) returns (VpnGroupTagVo);
   rpc VpnGroupTagUpdate(VpnGroupTagVo) returns (VpnGroupTagVo);
   rpc VpnGroupTagDel(Ids) returns (Empty);
   rpc VpnGroupTagGet(VpnGroupTagVo) returns (VpnGroupTagVo);
   rpc VpnGroupTagList(VpnGroupTagListReq) returns (VpnGroupTagListResp);
 
-  // VpnLocation
+  // VpnLocation Model
+  // VpnLocationAdd
   rpc VpnLocationAdd(VpnLocationVo) returns (VpnLocationVo);
   rpc VpnLocationUpdate(VpnLocationVo) returns (Empty);
   rpc VpnLocationDel(Ids) returns (Empty);
   rpc VpnLocationGet(VpnLocationGetReq) returns (VpnLocationVo);
   rpc VpnLocationList(VpnLocationListReq) returns (VpnLocationListResp);
-  rpc VpnLocationBatchAdd(VpnLocationBatchAddReq)
-      returns (VpnLocationBatchAddResp);
-  rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq)
-      returns (VpnLocationBatchUpdateResp);
+  rpc VpnLocationBatchAdd(VpnLocationBatchAddReq) returns (VpnLocationBatchAddResp);
+  rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq) returns (VpnLocationBatchUpdateResp);
 
-  // VpnServer
+  // VpnServer Model
+  // VpnServerAdd
   rpc VpnServerAdd(VpnServerAddReq) returns (VpnServerAddReq);
   rpc VpnServerUpdate(VpnServerAddReq) returns (VpnServerAddReq);
   rpc VpnServerDel(Ids) returns (Empty);
@@ -3007,38 +3018,39 @@ service GoVpnClient {
   rpc VpnServerList(VpnServerListReq) returns (VpnServerListResp);
   rpc VpnServerExList(VpnServerListReq) returns (VpnServerExListResp);
   rpc VpnServerBatchAdd(VpnServerBatchAddReq) returns (VpnServerBatchAddResp);
-  rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq)
-      returns (VpnServerBatchUpdateResp);
+  rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq) returns (VpnServerBatchUpdateResp);
 
-  // VpnServerLocation
+  // VpnServerLocation Model
+  // VpnServerLocationAdd
   rpc VpnServerLocationAdd(VpnServerLocationVo) returns (VpnServerLocationVo);
   rpc VpnServerLocationUpdate(VpnServerLocationVo) returns (Empty);
   rpc VpnServerLocationDel(Ids) returns (Empty);
   rpc VpnServerLocationGet(VpnServerLocationVo) returns (VpnServerLocationVo);
-  rpc VpnServerLocationList(VpnServerLocationListReq)
-      returns (VpnServerLocationListResp);
+  rpc VpnServerLocationList(VpnServerLocationListReq) returns (VpnServerLocationListResp);
+
+  rpc VpnWithIPAndPort(VpnWithIPAndPortReq) returns (VpnWithIPAndPortResp);
 
   // VpnLocationServerCount
-  rpc VpnLocationServerCount(VpnLocationServerCountReq)
-      returns (VpnLocationServerCountResp);
+  rpc VpnLocationServerCount(VpnLocationServerCountReq) returns (VpnLocationServerCountResp);
 
-  // VpnProbeTask
+  // VpnProbeTask Model
+  // VpnProbeTaskAdd
   rpc VpnProbeTaskAdd(VpnProbeTaskVo) returns (VpnProbeTaskVo);
   rpc VpnProbeTaskUpdate(VpnProbeTaskVo) returns (Empty);
   rpc VpnProbeTaskList(VpnProbeTaskListReq) returns (VpnProbeTaskListResp);
 
-  // VpnipWalled
+  // VpnipWalled Model
+  // VpnipWalledAdd
   rpc VpnipWalledAdd(VpnipWalledAddReq) returns (VpnipWalledAddResp);
   rpc VpnipWalledUpdate(VpnipWalledUpdateReq) returns (VpnipWalledUpdateResp);
   rpc VpnipWalledDel(Ids) returns (Empty);
   rpc VpnipWalledGet(VpnipWalledGetReq) returns (VpnipWalledGetResp);
   rpc VpnipWalledList(VpnipWalledListReq) returns (VpnipWalledListResp);
-  rpc VpnipWalledBatchAdd(VpnipWalledBatchAddReq)
-      returns (VpnipWalledBatchAddResp);
-  rpc VpnipWalledBatchUpdate(VpnipWalledBatchUpdateReq)
-      returns (VpnipWalledBatchUpdateResp);
+  rpc VpnipWalledBatchAdd(VpnipWalledBatchAddReq) returns (VpnipWalledBatchAddResp);
+  rpc VpnipWalledBatchUpdate(VpnipWalledBatchUpdateReq) returns (VpnipWalledBatchUpdateResp);
 
-  // Vpnip
+  // Vpnip Model
+  // VpnipAdd
   rpc VpnipAdd(VpnipAddReq) returns (VpnipAddResp);
   rpc VpnipExAdd(VpnipExAddReq) returns (VpnipExAddResp);
   rpc VpnipUpdate(VpnipUpdateReq) returns (VpnipUpdateResp);
@@ -3051,62 +3063,46 @@ service GoVpnClient {
   rpc VpnipBatchAdd(VpnipBatchAddReq) returns (VpnipBatchAddResp);
   rpc VpnipBatchUpdate(VpnipBatchUpdateReq) returns (VpnipBatchUpdateResp);
   rpc VpnipExBatchAdd(VpnipExBatchAddReq) returns (VpnipExBatchAddResp);
-  rpc VpnipExBatchUpdate(VpnipExBatchUpdateReq)
-      returns (VpnipExBatchUpdateResp);
+  rpc VpnipExBatchUpdate(VpnipExBatchUpdateReq) returns (VpnipExBatchUpdateResp);
 
-  // VpnipRange
+  // VpnipRange Model
+  // VpnipRangeAdd
   rpc VpnipRangeAdd(VpnipRangeAddReq) returns (VpnipRangeAddResp);
   // VpnipRangeExAdd 添加IP段及IP数据,如果IP数据已存在,会自动将已经存在的IP的 rangeId 更新为新增的IP段的ID
   rpc VpnipRangeExAdd(VpnipRangeExAddReq) returns (VpnipRangeExAddResp);
   rpc VpnipRangeUpdate(VpnipRangeUpdateReq) returns (VpnipRangeUpdateResp);
-  rpc VpnipRangeExUpdate(VpnipRangeExUpdateReq)
-      returns (VpnipRangeExUpdateResp);
+  rpc VpnipRangeExUpdate(VpnipRangeExUpdateReq) returns (VpnipRangeExUpdateResp);
   rpc VpnipRangeDel(Ids) returns (Empty);
   rpc VpnipRangeGet(VpnipRangeGetReq) returns (VpnipRangeGetResp);
   rpc VpnipRangeExGet(VpnipRangeGetReq) returns (VpnipRangeExGetResp);
   rpc VpnipRangeList(VpnipRangeListReq) returns (VpnipRangeListResp);
   rpc VpnipRangeExList(VpnipRangeListReq) returns (VpnipRangeExListResp);
-  rpc VpnipRangeBatchAdd(VpnipRangeBatchAddReq)
-      returns (VpnipRangeBatchAddResp);
-  rpc VpnipRangeExBatchAdd(VpnipRangeExBatchAddReq)
-      returns (VpnipRangeExBatchAddResp);
-  rpc VpnipRangeBatchUpdate(VpnipRangeBatchUpdateReq)
-      returns (VpnipRangeBatchUpdateResp);
-  rpc VpnipRangeExBatchUpdate(VpnipRangeExBatchUpdateReq)
-      returns (VpnipRangeExBatchUpdateResp);
-
-  // VpnipBind
+  rpc VpnipRangeBatchAdd(VpnipRangeBatchAddReq) returns (VpnipRangeBatchAddResp);
+  rpc VpnipRangeExBatchAdd(VpnipRangeExBatchAddReq) returns (VpnipRangeExBatchAddResp);
+  rpc VpnipRangeBatchUpdate(VpnipRangeBatchUpdateReq) returns (VpnipRangeBatchUpdateResp);
+  rpc VpnipRangeExBatchUpdate(VpnipRangeExBatchUpdateReq) returns (VpnipRangeExBatchUpdateResp);
+
+  // VpnipBind Model
+  // VpnipBindAdd
   rpc VpnipBindAdd(VpnipBindAddReq) returns (VpnipBindAddResp);
   rpc VpnipBindUpdate(VpnipBindUpdateReq) returns (VpnipBindUpdateResp);
   rpc VpnipBindDel(Ids) returns (Empty);
   rpc VpnipBindGet(VpnipBindGetReq) returns (VpnipBindGetResp);
   rpc VpnipBindList(VpnipBindListReq) returns (VpnipBindListResp);
-  rpc VpnipBindBatchUpdate(VpnipBindBatchUpdateReq)
-      returns (VpnipBindBatchUpdateResp);
+  rpc VpnipBindBatchUpdate(VpnipBindBatchUpdateReq) returns (VpnipBindBatchUpdateResp);
   // VpnipsBindServer 为一台服务器绑定一批新IP,会解绑上次绑定的IP,再绑定新的IP,仅需提供 ipId, serverId, Remark, createAt, updateAt 即可,其他字段会自动填充
   rpc VpnipsBindServer(VpnipBindBatchAddReq) returns (VpnipBindBatchAddResp);
 
-  // VpnConfigTemplatePlan
-  rpc VpnConfigTemplatePlanAdd(VpnConfigTemplatePlanAddReq)
-      returns (VpnConfigTemplatePlanAddResp);
-  rpc VpnConfigTemplatePlanUpdate(VpnConfigTemplatePlanUpdateReq)
-      returns (VpnConfigTemplatePlanUpdateResp);
+  // VpnConfigTemplatePlan Model
+  // VpnConfigTemplatePlanAdd
+  rpc VpnConfigTemplatePlanAdd(VpnConfigTemplatePlanAddReq) returns (VpnConfigTemplatePlanAddResp);
+  rpc VpnConfigTemplatePlanUpdate(VpnConfigTemplatePlanUpdateReq) returns (VpnConfigTemplatePlanUpdateResp);
   rpc VpnConfigTemplatePlanDel(VpnConfigTemplatePlanDelReq) returns (Empty);
-  rpc VpnConfigTemplatePlanGet(VpnConfigTemplatePlanGetReq)
-      returns (VpnConfigTemplatePlanGetResp);
-  rpc VpnConfigTemplatePlanList(VpnConfigTemplatePlanListReq)
-      returns (VpnConfigTemplatePlanListResp);
-  rpc VpnConfigTemplatePlanDetailAdd(VpnConfigTemplatePlanDetailAddReq)
-      returns (VpnConfigTemplatePlanDetailAddResp);
-  rpc VpnConfigTemplatePlanDetailUpdate(VpnConfigTemplatePlanDetailUpdateReq)
-      returns (VpnConfigTemplatePlanDetailUpdateResp);
-  rpc VpnConfigTemplatePlanDetailDel(VpnConfigTemplatePlanDetailDelReq)
-      returns (Empty);
-  rpc VpnConfigTemplatePlanDetailGet(VpnConfigTemplatePlanDetailGetReq)
-      returns (VpnConfigTemplatePlanDetailGetResp);
-  rpc VpnConfigTemplatePlanDetailList(VpnConfigTemplatePlanDetailListReq)
-      returns (VpnConfigTemplatePlanDetailListResp);
+  rpc VpnConfigTemplatePlanGet(VpnConfigTemplatePlanGetReq) returns (VpnConfigTemplatePlanGetResp);
+  rpc VpnConfigTemplatePlanList(VpnConfigTemplatePlanListReq) returns (VpnConfigTemplatePlanListResp);
+  rpc VpnConfigTemplatePlanDetailAdd(VpnConfigTemplatePlanDetailAddReq) returns (VpnConfigTemplatePlanDetailAddResp);
+  rpc VpnConfigTemplatePlanDetailUpdate(VpnConfigTemplatePlanDetailUpdateReq) returns (VpnConfigTemplatePlanDetailUpdateResp);
+  rpc VpnConfigTemplatePlanDetailDel(VpnConfigTemplatePlanDetailDelReq) returns (Empty);
+  rpc VpnConfigTemplatePlanDetailGet(VpnConfigTemplatePlanDetailGetReq) returns (VpnConfigTemplatePlanDetailGetResp);
+  rpc VpnConfigTemplatePlanDetailList(VpnConfigTemplatePlanDetailListReq) returns (VpnConfigTemplatePlanDetailListResp);
 }
-
-
-// test go mod tidy

Різницю між файлами не показано, бо вона завелика
+ 244 - 93
pb/pb/gorpc.pb.go


+ 202 - 82
pb/pb/gorpc_grpc.pb.go

@@ -1228,21 +1228,24 @@ const (
 // 基础服务: 产品管理,产品配置,升级配置、更新资源管理,资源版本管理,全局配置
 type GoPmpClientClient interface {
 	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
-	// GlobalParamVo
+	// GlobalParamVo Model
+	// GlobalParamAdd
 	GlobalParamAdd(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
 	GlobalParamUpdate(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
 	GlobalParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	GlobalParamGet(ctx context.Context, in *GlobalParamVo, opts ...grpc.CallOption) (*GlobalParamVo, error)
 	GlobalParamGetWithLang(ctx context.Context, in *GlobalParamGetReq, opts ...grpc.CallOption) (*GlobalParamVo, error)
 	GlobalParamList(ctx context.Context, in *GlobalParamListReq, opts ...grpc.CallOption) (*GlobalParamListResp, error)
-	// ProductVo
+	// ProductVo Model
+	// ProductAdd
 	ProductAdd(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
 	ProductUpdate(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
 	ProductDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	ProductGet(ctx context.Context, in *ProductVo, opts ...grpc.CallOption) (*ProductVo, error)
 	ProductList(ctx context.Context, in *ProductListReq, opts ...grpc.CallOption) (*ProductListResp, error)
 	ProductAll(ctx context.Context, in *Request, opts ...grpc.CallOption) (*ProductListResp, error)
-	// ProductParamVo
+	// ProductParamVo Model
+	// ProductParamAdd
 	ProductParamAdd(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
 	ProductParamUpdate(ctx context.Context, in *ProductParamVo, opts ...grpc.CallOption) (*ProductParamVo, error)
 	ProductParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -1277,70 +1280,82 @@ type GoPmpClientClient interface {
 	ProductActionTypeDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	ProductActionTypeGet(ctx context.Context, in *ProductActionTypeReq, opts ...grpc.CallOption) (*ProductActionTypeVo, error)
 	ProductActionTypeList(ctx context.Context, in *ProductActionTypeListReq, opts ...grpc.CallOption) (*ProductActionTypeListResp, error)
-	// AreaParamVo
+	// AreaParamVo Model
+	// AreaParamAdd
 	AreaParamAdd(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
 	AreaParamUpdate(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
 	AreaParamDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	AreaParamGet(ctx context.Context, in *AreaParamVo, opts ...grpc.CallOption) (*AreaParamVo, error)
 	AreaParamList(ctx context.Context, in *AreaParamListReq, opts ...grpc.CallOption) (*AreaParamListResp, error)
-	// NationalLanguage
+	// NationalLanguage Model
+	// NationalLanguageAdd
 	NationalLanguageAdd(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
 	NationalLanguageUpdate(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
 	NationalLanguageDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	NationalLanguageGet(ctx context.Context, in *NationalLanguageVo, opts ...grpc.CallOption) (*NationalLanguageVo, error)
 	NationalLanguageList(ctx context.Context, in *NationalLanguageListReq, opts ...grpc.CallOption) (*NationalLanguageListResp, error)
-	// Tip
+	// Tip Model
+	// TipAdd
 	TipAdd(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
 	TipUpdate(ctx context.Context, in *TipVo, opts ...grpc.CallOption) (*TipVo, error)
 	TipDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	TipGet(ctx context.Context, in *TipGetReq, opts ...grpc.CallOption) (*TipVo, error)
 	TipList(ctx context.Context, in *TipListReq, opts ...grpc.CallOption) (*TipListResp, error)
-	// Dict
+	// Dict Model
+	// DictAdd
 	DictAdd(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
 	DictUpdate(ctx context.Context, in *DictVo, opts ...grpc.CallOption) (*DictVo, error)
 	DictDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	DictGet(ctx context.Context, in *DictGetReq, opts ...grpc.CallOption) (*DictVo, error)
 	DictList(ctx context.Context, in *DictListReq, opts ...grpc.CallOption) (*DictListResp, error)
-	// UpgradePkgPlan
+	// UpgradePkgPlan Model
+	// UpgradePkgPlanAdd
 	UpgradePkgPlanAdd(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
 	UpgradePkgPlanUpdate(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
 	UpgradePkgPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	UpgradePkgPlanGet(ctx context.Context, in *UpgradePkgPlanVo, opts ...grpc.CallOption) (*UpgradePkgPlanVo, error)
 	UpgradePkgPlanList(ctx context.Context, in *UpgradePkgPlanListReq, opts ...grpc.CallOption) (*UpgradePkgPlanListResp, error)
-	// UpgradePkgPlanDetail
+	// UpgradePkgPlanDetail Model
+	// UpgradePkgPlanDetailAdd
 	UpgradePkgPlanDetailAdd(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
 	UpgradePkgPlanDetailUpdate(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
 	UpgradePkgPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	UpgradePkgPlanDetailGet(ctx context.Context, in *UpgradePkgPlanDetailVo, opts ...grpc.CallOption) (*UpgradePkgPlanDetailVo, error)
 	UpgradePkgPlanDetailList(ctx context.Context, in *UpgradePkgPlanDetailListReq, opts ...grpc.CallOption) (*UpgradePkgPlanDetailListResp, error)
-	// UpgradeResPlan
+	// UpgradeResPlan Model
+	// UpgradeResPlanAdd
 	UpgradeResPlanAdd(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
 	UpgradeResPlanUpdate(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
 	UpgradeResPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	UpgradeResPlanGet(ctx context.Context, in *UpgradeResPlanVo, opts ...grpc.CallOption) (*UpgradeResPlanVo, error)
 	UpgradeResPlanList(ctx context.Context, in *UpgradeResPlanListReq, opts ...grpc.CallOption) (*UpgradeResPlanListResp, error)
-	// UpgradeResPlanDetail
+	// UpgradeResPlanDetail Model
+	// UpgradeResPlanDetailAdd
 	UpgradeResPlanDetailAdd(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
 	UpgradeResPlanDetailUpdate(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
 	UpgradeResPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	UpgradeResPlanDetailGet(ctx context.Context, in *UpgradeResPlanDetailVo, opts ...grpc.CallOption) (*UpgradeResPlanDetailVo, error)
 	UpgradeResPlanDetailList(ctx context.Context, in *UpgradeResPlanDetailListReq, opts ...grpc.CallOption) (*UpgradeResPlanDetailListResp, error)
-	// AdPlan
+	// AdPlan Model
+	// AdPlanAdd
 	AdPlanAdd(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
 	AdPlanUpdate(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
 	AdPlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	AdPlanGet(ctx context.Context, in *AdPlanVo, opts ...grpc.CallOption) (*AdPlanVo, error)
 	AdPlanList(ctx context.Context, in *AdPlanListReq, opts ...grpc.CallOption) (*AdPlanListResp, error)
-	// AdPlanDetail
+	// AdPlanDetail Model
+	// AdPlanDetailAdd
 	AdPlanDetailAdd(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
 	AdPlanDetailUpdate(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
 	AdPlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	AdPlanDetailGet(ctx context.Context, in *AdPlanDetailVo, opts ...grpc.CallOption) (*AdPlanDetailVo, error)
 	AdPlanDetailList(ctx context.Context, in *AdPlanDetailListReq, opts ...grpc.CallOption) (*AdPlanDetailListResp, error)
-	// AdGlobalConfig
+	// AdGlobalConfig Model
+	// AdGlobalConfigGet
 	AdGlobalConfigGet(ctx context.Context, in *AdGlobalConfigGetReq, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
 	AdGlobalConfigUpdate(ctx context.Context, in *AdGlobalConfigVo, opts ...grpc.CallOption) (*AdGlobalConfigVo, error)
-	// JobBatch
+	// JobBatch Model
+	// JobBatchAdd
 	JobBatchAdd(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
 	JobBatchAddWithTasks(ctx context.Context, in *JobBatchWithTasksVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
 	JobBatchUpdate(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchVo, error)
@@ -1349,48 +1364,56 @@ type GoPmpClientClient interface {
 	JobBatchGetWithTasks(ctx context.Context, in *JobBatchVo, opts ...grpc.CallOption) (*JobBatchWithTasksVo, error)
 	JobBatchList(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListResp, error)
 	JobBatchListWithTasks(ctx context.Context, in *JobBatchListReq, opts ...grpc.CallOption) (*JobBatchListWithTasksResp, error)
-	// JobTasks
+	// JobTasks Model
+	// JobTasksAdd
 	JobTasksAdd(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
 	JobTasksUpdate(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
 	JobTasksDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	JobTasksGet(ctx context.Context, in *JobTasksVo, opts ...grpc.CallOption) (*JobTasksVo, error)
 	JobTasksList(ctx context.Context, in *JobTasksListReq, opts ...grpc.CallOption) (*JobTasksListResp, error)
-	// DeployConfig
+	// DeployConfig Model
+	// DeployConfigAdd
 	DeployConfigAdd(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
 	DeployConfigUpdate(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
 	DeployConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	DeployConfigGet(ctx context.Context, in *DeployConfigVo, opts ...grpc.CallOption) (*DeployConfigVo, error)
 	DeployConfigList(ctx context.Context, in *DeployConfigListReq, opts ...grpc.CallOption) (*DeployConfigListResp, error)
-	// OperationLog
+	// OperationLog Model
+	// OperationLogAdd
 	OperationLogAdd(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
 	OperationLogUpdate(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
 	OperationLogGet(ctx context.Context, in *OperationLogVo, opts ...grpc.CallOption) (*OperationLogVo, error)
 	OperationLogList(ctx context.Context, in *OperationLogListReq, opts ...grpc.CallOption) (*OperationLogListResp, error)
-	// AnnouncePlan
+	// AnnouncePlan Model
+	// AnnouncePlanAdd
 	AnnouncePlanAdd(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
 	AnnouncePlanUpdate(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
 	AnnouncePlanDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	AnnouncePlanGet(ctx context.Context, in *AnnouncePlanVo, opts ...grpc.CallOption) (*AnnouncePlanVo, error)
 	AnnouncePlanList(ctx context.Context, in *AnnouncePlanListReq, opts ...grpc.CallOption) (*AnnouncePlanListResp, error)
-	// AnnouncePlanDetail
+	// AnnouncePlanDetail Model
+	// AnnouncePlanDetailAdd
 	AnnouncePlanDetailAdd(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
 	AnnouncePlanDetailUpdate(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
 	AnnouncePlanDetailDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	AnnouncePlanDetailGet(ctx context.Context, in *AnnouncePlanDetailVo, opts ...grpc.CallOption) (*AnnouncePlanDetailVo, error)
 	AnnouncePlanDetailList(ctx context.Context, in *AnnouncePlanDetailListReq, opts ...grpc.CallOption) (*AnnouncePlanDetailListResp, error)
-	// ServiceTypes
+	// ServiceTypes Model
+	// ServiceTypesAdd
 	ServiceTypesAdd(ctx context.Context, in *ServiceTypesAddReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
 	ServiceTypesUpdate(ctx context.Context, in *ServiceTypesUpdateReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
 	ServiceTypesDel(ctx context.Context, in *ServiceTypesDelReq, opts ...grpc.CallOption) (*Empty, error)
 	ServiceTypesGet(ctx context.Context, in *ServiceTypesGetReq, opts ...grpc.CallOption) (*ServiceTypesVo, error)
 	ServiceTypesList(ctx context.Context, in *ServiceTypesListReq, opts ...grpc.CallOption) (*ServiceTypesListResp, error)
-	// ServiceSets
+	// ServiceSets Model
+	// ServiceSetsAdd
 	ServiceSetsAdd(ctx context.Context, in *ServiceSetsAddReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
 	ServiceSetsUpdate(ctx context.Context, in *ServiceSetsUpdateReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
 	ServiceSetsDel(ctx context.Context, in *ServiceSetsDelReq, opts ...grpc.CallOption) (*Empty, error)
 	ServiceSetsGet(ctx context.Context, in *ServiceSetsGetReq, opts ...grpc.CallOption) (*ServiceSetsVo, error)
 	ServiceSetsList(ctx context.Context, in *ServiceSetsListReq, opts ...grpc.CallOption) (*ServiceSetsListResp, error)
-	// MessagePush
+	// MessagePush Model
+	// MessagePushAdd
 	MessagePushAdd(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
 	MessagePushUpdate(ctx context.Context, in *MessagePushVo, opts ...grpc.CallOption) (*MessagePushVo, error)
 	MessagePushList(ctx context.Context, in *MessagePushListReq, opts ...grpc.CallOption) (*MessagePushListResp, error)
@@ -2811,21 +2834,24 @@ func (c *goPmpClientClient) MessagePushList(ctx context.Context, in *MessagePush
 // 基础服务: 产品管理,产品配置,升级配置、更新资源管理,资源版本管理,全局配置
 type GoPmpClientServer interface {
 	Ping(context.Context, *Request) (*Response, error)
-	// GlobalParamVo
+	// GlobalParamVo Model
+	// GlobalParamAdd
 	GlobalParamAdd(context.Context, *GlobalParamVo) (*GlobalParamVo, error)
 	GlobalParamUpdate(context.Context, *GlobalParamVo) (*GlobalParamVo, error)
 	GlobalParamDel(context.Context, *Ids) (*Empty, error)
 	GlobalParamGet(context.Context, *GlobalParamVo) (*GlobalParamVo, error)
 	GlobalParamGetWithLang(context.Context, *GlobalParamGetReq) (*GlobalParamVo, error)
 	GlobalParamList(context.Context, *GlobalParamListReq) (*GlobalParamListResp, error)
-	// ProductVo
+	// ProductVo Model
+	// ProductAdd
 	ProductAdd(context.Context, *ProductVo) (*ProductVo, error)
 	ProductUpdate(context.Context, *ProductVo) (*ProductVo, error)
 	ProductDel(context.Context, *Ids) (*Empty, error)
 	ProductGet(context.Context, *ProductVo) (*ProductVo, error)
 	ProductList(context.Context, *ProductListReq) (*ProductListResp, error)
 	ProductAll(context.Context, *Request) (*ProductListResp, error)
-	// ProductParamVo
+	// ProductParamVo Model
+	// ProductParamAdd
 	ProductParamAdd(context.Context, *ProductParamVo) (*ProductParamVo, error)
 	ProductParamUpdate(context.Context, *ProductParamVo) (*ProductParamVo, error)
 	ProductParamDel(context.Context, *Ids) (*Empty, error)
@@ -2860,70 +2886,82 @@ type GoPmpClientServer interface {
 	ProductActionTypeDel(context.Context, *Ids) (*Empty, error)
 	ProductActionTypeGet(context.Context, *ProductActionTypeReq) (*ProductActionTypeVo, error)
 	ProductActionTypeList(context.Context, *ProductActionTypeListReq) (*ProductActionTypeListResp, error)
-	// AreaParamVo
+	// AreaParamVo Model
+	// AreaParamAdd
 	AreaParamAdd(context.Context, *AreaParamVo) (*AreaParamVo, error)
 	AreaParamUpdate(context.Context, *AreaParamVo) (*AreaParamVo, error)
 	AreaParamDel(context.Context, *Ids) (*Empty, error)
 	AreaParamGet(context.Context, *AreaParamVo) (*AreaParamVo, error)
 	AreaParamList(context.Context, *AreaParamListReq) (*AreaParamListResp, error)
-	// NationalLanguage
+	// NationalLanguage Model
+	// NationalLanguageAdd
 	NationalLanguageAdd(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error)
 	NationalLanguageUpdate(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error)
 	NationalLanguageDel(context.Context, *Ids) (*Empty, error)
 	NationalLanguageGet(context.Context, *NationalLanguageVo) (*NationalLanguageVo, error)
 	NationalLanguageList(context.Context, *NationalLanguageListReq) (*NationalLanguageListResp, error)
-	// Tip
+	// Tip Model
+	// TipAdd
 	TipAdd(context.Context, *TipVo) (*TipVo, error)
 	TipUpdate(context.Context, *TipVo) (*TipVo, error)
 	TipDel(context.Context, *Ids) (*Empty, error)
 	TipGet(context.Context, *TipGetReq) (*TipVo, error)
 	TipList(context.Context, *TipListReq) (*TipListResp, error)
-	// Dict
+	// Dict Model
+	// DictAdd
 	DictAdd(context.Context, *DictVo) (*DictVo, error)
 	DictUpdate(context.Context, *DictVo) (*DictVo, error)
 	DictDel(context.Context, *Ids) (*Empty, error)
 	DictGet(context.Context, *DictGetReq) (*DictVo, error)
 	DictList(context.Context, *DictListReq) (*DictListResp, error)
-	// UpgradePkgPlan
+	// UpgradePkgPlan Model
+	// UpgradePkgPlanAdd
 	UpgradePkgPlanAdd(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error)
 	UpgradePkgPlanUpdate(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error)
 	UpgradePkgPlanDel(context.Context, *Ids) (*Empty, error)
 	UpgradePkgPlanGet(context.Context, *UpgradePkgPlanVo) (*UpgradePkgPlanVo, error)
 	UpgradePkgPlanList(context.Context, *UpgradePkgPlanListReq) (*UpgradePkgPlanListResp, error)
-	// UpgradePkgPlanDetail
+	// UpgradePkgPlanDetail Model
+	// UpgradePkgPlanDetailAdd
 	UpgradePkgPlanDetailAdd(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error)
 	UpgradePkgPlanDetailUpdate(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error)
 	UpgradePkgPlanDetailDel(context.Context, *Ids) (*Empty, error)
 	UpgradePkgPlanDetailGet(context.Context, *UpgradePkgPlanDetailVo) (*UpgradePkgPlanDetailVo, error)
 	UpgradePkgPlanDetailList(context.Context, *UpgradePkgPlanDetailListReq) (*UpgradePkgPlanDetailListResp, error)
-	// UpgradeResPlan
+	// UpgradeResPlan Model
+	// UpgradeResPlanAdd
 	UpgradeResPlanAdd(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error)
 	UpgradeResPlanUpdate(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error)
 	UpgradeResPlanDel(context.Context, *Ids) (*Empty, error)
 	UpgradeResPlanGet(context.Context, *UpgradeResPlanVo) (*UpgradeResPlanVo, error)
 	UpgradeResPlanList(context.Context, *UpgradeResPlanListReq) (*UpgradeResPlanListResp, error)
-	// UpgradeResPlanDetail
+	// UpgradeResPlanDetail Model
+	// UpgradeResPlanDetailAdd
 	UpgradeResPlanDetailAdd(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error)
 	UpgradeResPlanDetailUpdate(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error)
 	UpgradeResPlanDetailDel(context.Context, *Ids) (*Empty, error)
 	UpgradeResPlanDetailGet(context.Context, *UpgradeResPlanDetailVo) (*UpgradeResPlanDetailVo, error)
 	UpgradeResPlanDetailList(context.Context, *UpgradeResPlanDetailListReq) (*UpgradeResPlanDetailListResp, error)
-	// AdPlan
+	// AdPlan Model
+	// AdPlanAdd
 	AdPlanAdd(context.Context, *AdPlanVo) (*AdPlanVo, error)
 	AdPlanUpdate(context.Context, *AdPlanVo) (*AdPlanVo, error)
 	AdPlanDel(context.Context, *Ids) (*Empty, error)
 	AdPlanGet(context.Context, *AdPlanVo) (*AdPlanVo, error)
 	AdPlanList(context.Context, *AdPlanListReq) (*AdPlanListResp, error)
-	// AdPlanDetail
+	// AdPlanDetail Model
+	// AdPlanDetailAdd
 	AdPlanDetailAdd(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error)
 	AdPlanDetailUpdate(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error)
 	AdPlanDetailDel(context.Context, *Ids) (*Empty, error)
 	AdPlanDetailGet(context.Context, *AdPlanDetailVo) (*AdPlanDetailVo, error)
 	AdPlanDetailList(context.Context, *AdPlanDetailListReq) (*AdPlanDetailListResp, error)
-	// AdGlobalConfig
+	// AdGlobalConfig Model
+	// AdGlobalConfigGet
 	AdGlobalConfigGet(context.Context, *AdGlobalConfigGetReq) (*AdGlobalConfigVo, error)
 	AdGlobalConfigUpdate(context.Context, *AdGlobalConfigVo) (*AdGlobalConfigVo, error)
-	// JobBatch
+	// JobBatch Model
+	// JobBatchAdd
 	JobBatchAdd(context.Context, *JobBatchVo) (*JobBatchVo, error)
 	JobBatchAddWithTasks(context.Context, *JobBatchWithTasksVo) (*JobBatchWithTasksVo, error)
 	JobBatchUpdate(context.Context, *JobBatchVo) (*JobBatchVo, error)
@@ -2932,48 +2970,56 @@ type GoPmpClientServer interface {
 	JobBatchGetWithTasks(context.Context, *JobBatchVo) (*JobBatchWithTasksVo, error)
 	JobBatchList(context.Context, *JobBatchListReq) (*JobBatchListResp, error)
 	JobBatchListWithTasks(context.Context, *JobBatchListReq) (*JobBatchListWithTasksResp, error)
-	// JobTasks
+	// JobTasks Model
+	// JobTasksAdd
 	JobTasksAdd(context.Context, *JobTasksVo) (*JobTasksVo, error)
 	JobTasksUpdate(context.Context, *JobTasksVo) (*JobTasksVo, error)
 	JobTasksDel(context.Context, *Ids) (*Empty, error)
 	JobTasksGet(context.Context, *JobTasksVo) (*JobTasksVo, error)
 	JobTasksList(context.Context, *JobTasksListReq) (*JobTasksListResp, error)
-	// DeployConfig
+	// DeployConfig Model
+	// DeployConfigAdd
 	DeployConfigAdd(context.Context, *DeployConfigVo) (*DeployConfigVo, error)
 	DeployConfigUpdate(context.Context, *DeployConfigVo) (*DeployConfigVo, error)
 	DeployConfigDel(context.Context, *Ids) (*Empty, error)
 	DeployConfigGet(context.Context, *DeployConfigVo) (*DeployConfigVo, error)
 	DeployConfigList(context.Context, *DeployConfigListReq) (*DeployConfigListResp, error)
-	// OperationLog
+	// OperationLog Model
+	// OperationLogAdd
 	OperationLogAdd(context.Context, *OperationLogVo) (*OperationLogVo, error)
 	OperationLogUpdate(context.Context, *OperationLogVo) (*OperationLogVo, error)
 	OperationLogGet(context.Context, *OperationLogVo) (*OperationLogVo, error)
 	OperationLogList(context.Context, *OperationLogListReq) (*OperationLogListResp, error)
-	// AnnouncePlan
+	// AnnouncePlan Model
+	// AnnouncePlanAdd
 	AnnouncePlanAdd(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error)
 	AnnouncePlanUpdate(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error)
 	AnnouncePlanDel(context.Context, *Ids) (*Empty, error)
 	AnnouncePlanGet(context.Context, *AnnouncePlanVo) (*AnnouncePlanVo, error)
 	AnnouncePlanList(context.Context, *AnnouncePlanListReq) (*AnnouncePlanListResp, error)
-	// AnnouncePlanDetail
+	// AnnouncePlanDetail Model
+	// AnnouncePlanDetailAdd
 	AnnouncePlanDetailAdd(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error)
 	AnnouncePlanDetailUpdate(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error)
 	AnnouncePlanDetailDel(context.Context, *Ids) (*Empty, error)
 	AnnouncePlanDetailGet(context.Context, *AnnouncePlanDetailVo) (*AnnouncePlanDetailVo, error)
 	AnnouncePlanDetailList(context.Context, *AnnouncePlanDetailListReq) (*AnnouncePlanDetailListResp, error)
-	// ServiceTypes
+	// ServiceTypes Model
+	// ServiceTypesAdd
 	ServiceTypesAdd(context.Context, *ServiceTypesAddReq) (*ServiceTypesVo, error)
 	ServiceTypesUpdate(context.Context, *ServiceTypesUpdateReq) (*ServiceTypesVo, error)
 	ServiceTypesDel(context.Context, *ServiceTypesDelReq) (*Empty, error)
 	ServiceTypesGet(context.Context, *ServiceTypesGetReq) (*ServiceTypesVo, error)
 	ServiceTypesList(context.Context, *ServiceTypesListReq) (*ServiceTypesListResp, error)
-	// ServiceSets
+	// ServiceSets Model
+	// ServiceSetsAdd
 	ServiceSetsAdd(context.Context, *ServiceSetsAddReq) (*ServiceSetsVo, error)
 	ServiceSetsUpdate(context.Context, *ServiceSetsUpdateReq) (*ServiceSetsVo, error)
 	ServiceSetsDel(context.Context, *ServiceSetsDelReq) (*Empty, error)
 	ServiceSetsGet(context.Context, *ServiceSetsGetReq) (*ServiceSetsVo, error)
 	ServiceSetsList(context.Context, *ServiceSetsListReq) (*ServiceSetsListResp, error)
-	// MessagePush
+	// MessagePush Model
+	// MessagePushAdd
 	MessagePushAdd(context.Context, *MessagePushVo) (*MessagePushVo, error)
 	MessagePushUpdate(context.Context, *MessagePushVo) (*MessagePushVo, error)
 	MessagePushList(context.Context, *MessagePushListReq) (*MessagePushListResp, error)
@@ -9052,19 +9098,22 @@ type GoUserClientClient interface {
 	UserAppConfigDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	UserAppConfigGet(ctx context.Context, in *UserAppConfigGetReq, opts ...grpc.CallOption) (*UserAppConfigVo, error)
 	UserAppConfigList(ctx context.Context, in *UserAppConfigListReq, opts ...grpc.CallOption) (*UserAppConfigListRes, error)
-	// 设备管理
+	// Device Model
+	// DeviceAdd
 	DeviceAdd(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
 	DeviceUpdate(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
 	DeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	DeviceGet(ctx context.Context, in *DeviceVo, opts ...grpc.CallOption) (*DeviceVo, error)
 	DeviceList(ctx context.Context, in *DeviceListReq, opts ...grpc.CallOption) (*DeviceListRes, error)
-	// Account
+	// Account Model
+	// AccountAdd
 	AccountAdd(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
 	AccountUpdate(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
 	AccountDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	AccountGet(ctx context.Context, in *AccountVo, opts ...grpc.CallOption) (*AccountVo, error)
 	AccountList(ctx context.Context, in *AccountListReq, opts ...grpc.CallOption) (*AccountListResp, error)
-	// AccountDevice
+	// AccountDevice Model
+	// AccountDeviceAdd
 	AccountDeviceAdd(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
 	AccountDeviceUpdate(ctx context.Context, in *AccountDeviceVo, opts ...grpc.CallOption) (*AccountDeviceVo, error)
 	AccountDeviceDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -9082,19 +9131,22 @@ type GoUserClientClient interface {
 	UserTestDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	UserTestGet(ctx context.Context, in *UserTestVo, opts ...grpc.CallOption) (*UserTestVo, error)
 	UserTestList(ctx context.Context, in *UserTestListReq, opts ...grpc.CallOption) (*UserTestListResp, error)
-	// User
+	// User Model
+	// UserAdd
 	UserAdd(ctx context.Context, in *UserAddReq, opts ...grpc.CallOption) (*UserAddResp, error)
 	UserUpdate(ctx context.Context, in *UserUpdateReq, opts ...grpc.CallOption) (*UserUpdateResp, error)
 	UserDel(ctx context.Context, in *UserDelReq, opts ...grpc.CallOption) (*Empty, error)
 	UserGet(ctx context.Context, in *UserGetReq, opts ...grpc.CallOption) (*UserGetResp, error)
 	UserList(ctx context.Context, in *UserListReq, opts ...grpc.CallOption) (*UserListResp, error)
-	// UserCredential
+	// UserCredential Model
+	// UserCredentialAdd
 	UserCredentialAdd(ctx context.Context, in *UserCredentialAddReq, opts ...grpc.CallOption) (*UserCredentialAddResp, error)
 	UserCredentialUpdate(ctx context.Context, in *UserCredentialUpdateReq, opts ...grpc.CallOption) (*UserCredentialUpdateResp, error)
 	UserCredentialDel(ctx context.Context, in *UserCredentialDelReq, opts ...grpc.CallOption) (*Empty, error)
 	UserCredentialGet(ctx context.Context, in *UserCredentialGetReq, opts ...grpc.CallOption) (*UserCredentialGetResp, error)
 	UserCredentialList(ctx context.Context, in *UserCredentialListReq, opts ...grpc.CallOption) (*UserCredentialListResp, error)
-	// UserDevice
+	// UserDevice Model
+	// UserDeviceAdd
 	UserDeviceAdd(ctx context.Context, in *UserDeviceAddReq, opts ...grpc.CallOption) (*UserDeviceAddResp, error)
 	UserDeviceUpdate(ctx context.Context, in *UserDeviceUpdateReq, opts ...grpc.CallOption) (*UserDeviceUpdateResp, error)
 	UserDeviceDel(ctx context.Context, in *UserDeviceDelReq, opts ...grpc.CallOption) (*Empty, error)
@@ -9583,19 +9635,22 @@ type GoUserClientServer interface {
 	UserAppConfigDel(context.Context, *Ids) (*Empty, error)
 	UserAppConfigGet(context.Context, *UserAppConfigGetReq) (*UserAppConfigVo, error)
 	UserAppConfigList(context.Context, *UserAppConfigListReq) (*UserAppConfigListRes, error)
-	// 设备管理
+	// Device Model
+	// DeviceAdd
 	DeviceAdd(context.Context, *DeviceVo) (*DeviceVo, error)
 	DeviceUpdate(context.Context, *DeviceVo) (*DeviceVo, error)
 	DeviceDel(context.Context, *Ids) (*Empty, error)
 	DeviceGet(context.Context, *DeviceVo) (*DeviceVo, error)
 	DeviceList(context.Context, *DeviceListReq) (*DeviceListRes, error)
-	// Account
+	// Account Model
+	// AccountAdd
 	AccountAdd(context.Context, *AccountVo) (*AccountVo, error)
 	AccountUpdate(context.Context, *AccountVo) (*AccountVo, error)
 	AccountDel(context.Context, *Ids) (*Empty, error)
 	AccountGet(context.Context, *AccountVo) (*AccountVo, error)
 	AccountList(context.Context, *AccountListReq) (*AccountListResp, error)
-	// AccountDevice
+	// AccountDevice Model
+	// AccountDeviceAdd
 	AccountDeviceAdd(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error)
 	AccountDeviceUpdate(context.Context, *AccountDeviceVo) (*AccountDeviceVo, error)
 	AccountDeviceDel(context.Context, *Ids) (*Empty, error)
@@ -9613,19 +9668,22 @@ type GoUserClientServer interface {
 	UserTestDel(context.Context, *Ids) (*Empty, error)
 	UserTestGet(context.Context, *UserTestVo) (*UserTestVo, error)
 	UserTestList(context.Context, *UserTestListReq) (*UserTestListResp, error)
-	// User
+	// User Model
+	// UserAdd
 	UserAdd(context.Context, *UserAddReq) (*UserAddResp, error)
 	UserUpdate(context.Context, *UserUpdateReq) (*UserUpdateResp, error)
 	UserDel(context.Context, *UserDelReq) (*Empty, error)
 	UserGet(context.Context, *UserGetReq) (*UserGetResp, error)
 	UserList(context.Context, *UserListReq) (*UserListResp, error)
-	// UserCredential
+	// UserCredential Model
+	// UserCredentialAdd
 	UserCredentialAdd(context.Context, *UserCredentialAddReq) (*UserCredentialAddResp, error)
 	UserCredentialUpdate(context.Context, *UserCredentialUpdateReq) (*UserCredentialUpdateResp, error)
 	UserCredentialDel(context.Context, *UserCredentialDelReq) (*Empty, error)
 	UserCredentialGet(context.Context, *UserCredentialGetReq) (*UserCredentialGetResp, error)
 	UserCredentialList(context.Context, *UserCredentialListReq) (*UserCredentialListResp, error)
-	// UserDevice
+	// UserDevice Model
+	// UserDeviceAdd
 	UserDeviceAdd(context.Context, *UserDeviceAddReq) (*UserDeviceAddResp, error)
 	UserDeviceUpdate(context.Context, *UserDeviceUpdateReq) (*UserDeviceUpdateResp, error)
 	UserDeviceDel(context.Context, *UserDeviceDelReq) (*Empty, error)
@@ -10867,6 +10925,7 @@ const (
 	GoVpnClient_VpnServerLocationDel_FullMethodName              = "/gorpc.GoVpnClient/VpnServerLocationDel"
 	GoVpnClient_VpnServerLocationGet_FullMethodName              = "/gorpc.GoVpnClient/VpnServerLocationGet"
 	GoVpnClient_VpnServerLocationList_FullMethodName             = "/gorpc.GoVpnClient/VpnServerLocationList"
+	GoVpnClient_VpnWithIPAndPort_FullMethodName                  = "/gorpc.GoVpnClient/VpnWithIPAndPort"
 	GoVpnClient_VpnLocationServerCount_FullMethodName            = "/gorpc.GoVpnClient/VpnLocationServerCount"
 	GoVpnClient_VpnProbeTaskAdd_FullMethodName                   = "/gorpc.GoVpnClient/VpnProbeTaskAdd"
 	GoVpnClient_VpnProbeTaskUpdate_FullMethodName                = "/gorpc.GoVpnClient/VpnProbeTaskUpdate"
@@ -10932,7 +10991,8 @@ type GoVpnClientClient interface {
 	Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
 	// 表的事务操作
 	Transaction(ctx context.Context, in *TransactionReq, opts ...grpc.CallOption) (*Empty, error)
-	// VpnTag
+	// VpnTag Model
+	// VpnTagAdd
 	VpnTagAdd(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
 	VpnTagUpdate(ctx context.Context, in *VpnTagVo, opts ...grpc.CallOption) (*VpnTagVo, error)
 	VpnTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -10940,7 +11000,8 @@ type GoVpnClientClient interface {
 	VpnTagList(ctx context.Context, in *VpnTagListReq, opts ...grpc.CallOption) (*VpnTagListResp, error)
 	VpnTagBatchAdd(ctx context.Context, in *VpnTagBatchAddReq, opts ...grpc.CallOption) (*VpnTagBatchAddResp, error)
 	VpnTagBatchUpdate(ctx context.Context, in *VpnTagBatchUpdateReq, opts ...grpc.CallOption) (*VpnTagBatchUpdateResp, error)
-	// VpnGroup
+	// VpnGroup Model
+	// VpnGroupAdd
 	VpnGroupAdd(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*VpnGroupVo, error)
 	VpnGroupUpdate(ctx context.Context, in *VpnGroupAddReq, opts ...grpc.CallOption) (*Empty, error)
 	VpnGroupDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -10948,13 +11009,15 @@ type GoVpnClientClient interface {
 	VpnGroupList(ctx context.Context, in *VpnGroupListReq, opts ...grpc.CallOption) (*VpnGroupListResp, error)
 	VpnGroupBatchAdd(ctx context.Context, in *VpnGroupBatchAddReq, opts ...grpc.CallOption) (*VpnGroupBatchAddResp, error)
 	VpnGroupBatchUpdate(ctx context.Context, in *VpnGroupBatchUpdateReq, opts ...grpc.CallOption) (*VpnGroupBatchUpdateResp, error)
-	// VpnGroupTag
+	// VpnGroupTag Model
+	// VpnGroupTagAdd
 	VpnGroupTagAdd(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
 	VpnGroupTagUpdate(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
 	VpnGroupTagDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	VpnGroupTagGet(ctx context.Context, in *VpnGroupTagVo, opts ...grpc.CallOption) (*VpnGroupTagVo, error)
 	VpnGroupTagList(ctx context.Context, in *VpnGroupTagListReq, opts ...grpc.CallOption) (*VpnGroupTagListResp, error)
-	// VpnLocation
+	// VpnLocation Model
+	// VpnLocationAdd
 	VpnLocationAdd(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*VpnLocationVo, error)
 	VpnLocationUpdate(ctx context.Context, in *VpnLocationVo, opts ...grpc.CallOption) (*Empty, error)
 	VpnLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -10962,7 +11025,8 @@ type GoVpnClientClient interface {
 	VpnLocationList(ctx context.Context, in *VpnLocationListReq, opts ...grpc.CallOption) (*VpnLocationListResp, error)
 	VpnLocationBatchAdd(ctx context.Context, in *VpnLocationBatchAddReq, opts ...grpc.CallOption) (*VpnLocationBatchAddResp, error)
 	VpnLocationBatchUpdate(ctx context.Context, in *VpnLocationBatchUpdateReq, opts ...grpc.CallOption) (*VpnLocationBatchUpdateResp, error)
-	// VpnServer
+	// VpnServer Model
+	// VpnServerAdd
 	VpnServerAdd(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
 	VpnServerUpdate(ctx context.Context, in *VpnServerAddReq, opts ...grpc.CallOption) (*VpnServerAddReq, error)
 	VpnServerDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -10972,19 +11036,23 @@ type GoVpnClientClient interface {
 	VpnServerExList(ctx context.Context, in *VpnServerListReq, opts ...grpc.CallOption) (*VpnServerExListResp, error)
 	VpnServerBatchAdd(ctx context.Context, in *VpnServerBatchAddReq, opts ...grpc.CallOption) (*VpnServerBatchAddResp, error)
 	VpnServerBatchUpdate(ctx context.Context, in *VpnServerBatchUpdateReq, opts ...grpc.CallOption) (*VpnServerBatchUpdateResp, error)
-	// VpnServerLocation
+	// VpnServerLocation Model
+	// VpnServerLocationAdd
 	VpnServerLocationAdd(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
 	VpnServerLocationUpdate(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*Empty, error)
 	VpnServerLocationDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
 	VpnServerLocationGet(ctx context.Context, in *VpnServerLocationVo, opts ...grpc.CallOption) (*VpnServerLocationVo, error)
 	VpnServerLocationList(ctx context.Context, in *VpnServerLocationListReq, opts ...grpc.CallOption) (*VpnServerLocationListResp, error)
+	VpnWithIPAndPort(ctx context.Context, in *VpnWithIPAndPortReq, opts ...grpc.CallOption) (*VpnWithIPAndPortResp, error)
 	// VpnLocationServerCount
 	VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error)
-	// VpnProbeTask
+	// VpnProbeTask Model
+	// VpnProbeTaskAdd
 	VpnProbeTaskAdd(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*VpnProbeTaskVo, error)
 	VpnProbeTaskUpdate(ctx context.Context, in *VpnProbeTaskVo, opts ...grpc.CallOption) (*Empty, error)
 	VpnProbeTaskList(ctx context.Context, in *VpnProbeTaskListReq, opts ...grpc.CallOption) (*VpnProbeTaskListResp, error)
-	// VpnipWalled
+	// VpnipWalled Model
+	// VpnipWalledAdd
 	VpnipWalledAdd(ctx context.Context, in *VpnipWalledAddReq, opts ...grpc.CallOption) (*VpnipWalledAddResp, error)
 	VpnipWalledUpdate(ctx context.Context, in *VpnipWalledUpdateReq, opts ...grpc.CallOption) (*VpnipWalledUpdateResp, error)
 	VpnipWalledDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -10992,7 +11060,8 @@ type GoVpnClientClient interface {
 	VpnipWalledList(ctx context.Context, in *VpnipWalledListReq, opts ...grpc.CallOption) (*VpnipWalledListResp, error)
 	VpnipWalledBatchAdd(ctx context.Context, in *VpnipWalledBatchAddReq, opts ...grpc.CallOption) (*VpnipWalledBatchAddResp, error)
 	VpnipWalledBatchUpdate(ctx context.Context, in *VpnipWalledBatchUpdateReq, opts ...grpc.CallOption) (*VpnipWalledBatchUpdateResp, error)
-	// Vpnip
+	// Vpnip Model
+	// VpnipAdd
 	VpnipAdd(ctx context.Context, in *VpnipAddReq, opts ...grpc.CallOption) (*VpnipAddResp, error)
 	VpnipExAdd(ctx context.Context, in *VpnipExAddReq, opts ...grpc.CallOption) (*VpnipExAddResp, error)
 	VpnipUpdate(ctx context.Context, in *VpnipUpdateReq, opts ...grpc.CallOption) (*VpnipUpdateResp, error)
@@ -11006,7 +11075,8 @@ type GoVpnClientClient interface {
 	VpnipBatchUpdate(ctx context.Context, in *VpnipBatchUpdateReq, opts ...grpc.CallOption) (*VpnipBatchUpdateResp, error)
 	VpnipExBatchAdd(ctx context.Context, in *VpnipExBatchAddReq, opts ...grpc.CallOption) (*VpnipExBatchAddResp, error)
 	VpnipExBatchUpdate(ctx context.Context, in *VpnipExBatchUpdateReq, opts ...grpc.CallOption) (*VpnipExBatchUpdateResp, error)
-	// VpnipRange
+	// VpnipRange Model
+	// VpnipRangeAdd
 	VpnipRangeAdd(ctx context.Context, in *VpnipRangeAddReq, opts ...grpc.CallOption) (*VpnipRangeAddResp, error)
 	// VpnipRangeExAdd 添加IP段及IP数据,如果IP数据已存在,会自动将已经存在的IP的 rangeId 更新为新增的IP段的ID
 	VpnipRangeExAdd(ctx context.Context, in *VpnipRangeExAddReq, opts ...grpc.CallOption) (*VpnipRangeExAddResp, error)
@@ -11021,7 +11091,8 @@ type GoVpnClientClient interface {
 	VpnipRangeExBatchAdd(ctx context.Context, in *VpnipRangeExBatchAddReq, opts ...grpc.CallOption) (*VpnipRangeExBatchAddResp, error)
 	VpnipRangeBatchUpdate(ctx context.Context, in *VpnipRangeBatchUpdateReq, opts ...grpc.CallOption) (*VpnipRangeBatchUpdateResp, error)
 	VpnipRangeExBatchUpdate(ctx context.Context, in *VpnipRangeExBatchUpdateReq, opts ...grpc.CallOption) (*VpnipRangeExBatchUpdateResp, error)
-	// VpnipBind
+	// VpnipBind Model
+	// VpnipBindAdd
 	VpnipBindAdd(ctx context.Context, in *VpnipBindAddReq, opts ...grpc.CallOption) (*VpnipBindAddResp, error)
 	VpnipBindUpdate(ctx context.Context, in *VpnipBindUpdateReq, opts ...grpc.CallOption) (*VpnipBindUpdateResp, error)
 	VpnipBindDel(ctx context.Context, in *Ids, opts ...grpc.CallOption) (*Empty, error)
@@ -11030,7 +11101,8 @@ type GoVpnClientClient interface {
 	VpnipBindBatchUpdate(ctx context.Context, in *VpnipBindBatchUpdateReq, opts ...grpc.CallOption) (*VpnipBindBatchUpdateResp, error)
 	// VpnipsBindServer 为一台服务器绑定一批新IP,会解绑上次绑定的IP,再绑定新的IP,仅需提供 ipId, serverId, Remark, createAt, updateAt 即可,其他字段会自动填充
 	VpnipsBindServer(ctx context.Context, in *VpnipBindBatchAddReq, opts ...grpc.CallOption) (*VpnipBindBatchAddResp, error)
-	// VpnConfigTemplatePlan
+	// VpnConfigTemplatePlan Model
+	// VpnConfigTemplatePlanAdd
 	VpnConfigTemplatePlanAdd(ctx context.Context, in *VpnConfigTemplatePlanAddReq, opts ...grpc.CallOption) (*VpnConfigTemplatePlanAddResp, error)
 	VpnConfigTemplatePlanUpdate(ctx context.Context, in *VpnConfigTemplatePlanUpdateReq, opts ...grpc.CallOption) (*VpnConfigTemplatePlanUpdateResp, error)
 	VpnConfigTemplatePlanDel(ctx context.Context, in *VpnConfigTemplatePlanDelReq, opts ...grpc.CallOption) (*Empty, error)
@@ -11471,6 +11543,16 @@ func (c *goVpnClientClient) VpnServerLocationList(ctx context.Context, in *VpnSe
 	return out, nil
 }
 
+func (c *goVpnClientClient) VpnWithIPAndPort(ctx context.Context, in *VpnWithIPAndPortReq, opts ...grpc.CallOption) (*VpnWithIPAndPortResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(VpnWithIPAndPortResp)
+	err := c.cc.Invoke(ctx, GoVpnClient_VpnWithIPAndPort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *goVpnClientClient) VpnLocationServerCount(ctx context.Context, in *VpnLocationServerCountReq, opts ...grpc.CallOption) (*VpnLocationServerCountResp, error) {
 	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(VpnLocationServerCountResp)
@@ -12020,7 +12102,8 @@ type GoVpnClientServer interface {
 	Ping(context.Context, *Request) (*Response, error)
 	// 表的事务操作
 	Transaction(context.Context, *TransactionReq) (*Empty, error)
-	// VpnTag
+	// VpnTag Model
+	// VpnTagAdd
 	VpnTagAdd(context.Context, *VpnTagVo) (*VpnTagVo, error)
 	VpnTagUpdate(context.Context, *VpnTagVo) (*VpnTagVo, error)
 	VpnTagDel(context.Context, *Ids) (*Empty, error)
@@ -12028,7 +12111,8 @@ type GoVpnClientServer interface {
 	VpnTagList(context.Context, *VpnTagListReq) (*VpnTagListResp, error)
 	VpnTagBatchAdd(context.Context, *VpnTagBatchAddReq) (*VpnTagBatchAddResp, error)
 	VpnTagBatchUpdate(context.Context, *VpnTagBatchUpdateReq) (*VpnTagBatchUpdateResp, error)
-	// VpnGroup
+	// VpnGroup Model
+	// VpnGroupAdd
 	VpnGroupAdd(context.Context, *VpnGroupAddReq) (*VpnGroupVo, error)
 	VpnGroupUpdate(context.Context, *VpnGroupAddReq) (*Empty, error)
 	VpnGroupDel(context.Context, *Ids) (*Empty, error)
@@ -12036,13 +12120,15 @@ type GoVpnClientServer interface {
 	VpnGroupList(context.Context, *VpnGroupListReq) (*VpnGroupListResp, error)
 	VpnGroupBatchAdd(context.Context, *VpnGroupBatchAddReq) (*VpnGroupBatchAddResp, error)
 	VpnGroupBatchUpdate(context.Context, *VpnGroupBatchUpdateReq) (*VpnGroupBatchUpdateResp, error)
-	// VpnGroupTag
+	// VpnGroupTag Model
+	// VpnGroupTagAdd
 	VpnGroupTagAdd(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error)
 	VpnGroupTagUpdate(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error)
 	VpnGroupTagDel(context.Context, *Ids) (*Empty, error)
 	VpnGroupTagGet(context.Context, *VpnGroupTagVo) (*VpnGroupTagVo, error)
 	VpnGroupTagList(context.Context, *VpnGroupTagListReq) (*VpnGroupTagListResp, error)
-	// VpnLocation
+	// VpnLocation Model
+	// VpnLocationAdd
 	VpnLocationAdd(context.Context, *VpnLocationVo) (*VpnLocationVo, error)
 	VpnLocationUpdate(context.Context, *VpnLocationVo) (*Empty, error)
 	VpnLocationDel(context.Context, *Ids) (*Empty, error)
@@ -12050,7 +12136,8 @@ type GoVpnClientServer interface {
 	VpnLocationList(context.Context, *VpnLocationListReq) (*VpnLocationListResp, error)
 	VpnLocationBatchAdd(context.Context, *VpnLocationBatchAddReq) (*VpnLocationBatchAddResp, error)
 	VpnLocationBatchUpdate(context.Context, *VpnLocationBatchUpdateReq) (*VpnLocationBatchUpdateResp, error)
-	// VpnServer
+	// VpnServer Model
+	// VpnServerAdd
 	VpnServerAdd(context.Context, *VpnServerAddReq) (*VpnServerAddReq, error)
 	VpnServerUpdate(context.Context, *VpnServerAddReq) (*VpnServerAddReq, error)
 	VpnServerDel(context.Context, *Ids) (*Empty, error)
@@ -12060,19 +12147,23 @@ type GoVpnClientServer interface {
 	VpnServerExList(context.Context, *VpnServerListReq) (*VpnServerExListResp, error)
 	VpnServerBatchAdd(context.Context, *VpnServerBatchAddReq) (*VpnServerBatchAddResp, error)
 	VpnServerBatchUpdate(context.Context, *VpnServerBatchUpdateReq) (*VpnServerBatchUpdateResp, error)
-	// VpnServerLocation
+	// VpnServerLocation Model
+	// VpnServerLocationAdd
 	VpnServerLocationAdd(context.Context, *VpnServerLocationVo) (*VpnServerLocationVo, error)
 	VpnServerLocationUpdate(context.Context, *VpnServerLocationVo) (*Empty, error)
 	VpnServerLocationDel(context.Context, *Ids) (*Empty, error)
 	VpnServerLocationGet(context.Context, *VpnServerLocationVo) (*VpnServerLocationVo, error)
 	VpnServerLocationList(context.Context, *VpnServerLocationListReq) (*VpnServerLocationListResp, error)
+	VpnWithIPAndPort(context.Context, *VpnWithIPAndPortReq) (*VpnWithIPAndPortResp, error)
 	// VpnLocationServerCount
 	VpnLocationServerCount(context.Context, *VpnLocationServerCountReq) (*VpnLocationServerCountResp, error)
-	// VpnProbeTask
+	// VpnProbeTask Model
+	// VpnProbeTaskAdd
 	VpnProbeTaskAdd(context.Context, *VpnProbeTaskVo) (*VpnProbeTaskVo, error)
 	VpnProbeTaskUpdate(context.Context, *VpnProbeTaskVo) (*Empty, error)
 	VpnProbeTaskList(context.Context, *VpnProbeTaskListReq) (*VpnProbeTaskListResp, error)
-	// VpnipWalled
+	// VpnipWalled Model
+	// VpnipWalledAdd
 	VpnipWalledAdd(context.Context, *VpnipWalledAddReq) (*VpnipWalledAddResp, error)
 	VpnipWalledUpdate(context.Context, *VpnipWalledUpdateReq) (*VpnipWalledUpdateResp, error)
 	VpnipWalledDel(context.Context, *Ids) (*Empty, error)
@@ -12080,7 +12171,8 @@ type GoVpnClientServer interface {
 	VpnipWalledList(context.Context, *VpnipWalledListReq) (*VpnipWalledListResp, error)
 	VpnipWalledBatchAdd(context.Context, *VpnipWalledBatchAddReq) (*VpnipWalledBatchAddResp, error)
 	VpnipWalledBatchUpdate(context.Context, *VpnipWalledBatchUpdateReq) (*VpnipWalledBatchUpdateResp, error)
-	// Vpnip
+	// Vpnip Model
+	// VpnipAdd
 	VpnipAdd(context.Context, *VpnipAddReq) (*VpnipAddResp, error)
 	VpnipExAdd(context.Context, *VpnipExAddReq) (*VpnipExAddResp, error)
 	VpnipUpdate(context.Context, *VpnipUpdateReq) (*VpnipUpdateResp, error)
@@ -12094,7 +12186,8 @@ type GoVpnClientServer interface {
 	VpnipBatchUpdate(context.Context, *VpnipBatchUpdateReq) (*VpnipBatchUpdateResp, error)
 	VpnipExBatchAdd(context.Context, *VpnipExBatchAddReq) (*VpnipExBatchAddResp, error)
 	VpnipExBatchUpdate(context.Context, *VpnipExBatchUpdateReq) (*VpnipExBatchUpdateResp, error)
-	// VpnipRange
+	// VpnipRange Model
+	// VpnipRangeAdd
 	VpnipRangeAdd(context.Context, *VpnipRangeAddReq) (*VpnipRangeAddResp, error)
 	// VpnipRangeExAdd 添加IP段及IP数据,如果IP数据已存在,会自动将已经存在的IP的 rangeId 更新为新增的IP段的ID
 	VpnipRangeExAdd(context.Context, *VpnipRangeExAddReq) (*VpnipRangeExAddResp, error)
@@ -12109,7 +12202,8 @@ type GoVpnClientServer interface {
 	VpnipRangeExBatchAdd(context.Context, *VpnipRangeExBatchAddReq) (*VpnipRangeExBatchAddResp, error)
 	VpnipRangeBatchUpdate(context.Context, *VpnipRangeBatchUpdateReq) (*VpnipRangeBatchUpdateResp, error)
 	VpnipRangeExBatchUpdate(context.Context, *VpnipRangeExBatchUpdateReq) (*VpnipRangeExBatchUpdateResp, error)
-	// VpnipBind
+	// VpnipBind Model
+	// VpnipBindAdd
 	VpnipBindAdd(context.Context, *VpnipBindAddReq) (*VpnipBindAddResp, error)
 	VpnipBindUpdate(context.Context, *VpnipBindUpdateReq) (*VpnipBindUpdateResp, error)
 	VpnipBindDel(context.Context, *Ids) (*Empty, error)
@@ -12118,7 +12212,8 @@ type GoVpnClientServer interface {
 	VpnipBindBatchUpdate(context.Context, *VpnipBindBatchUpdateReq) (*VpnipBindBatchUpdateResp, error)
 	// VpnipsBindServer 为一台服务器绑定一批新IP,会解绑上次绑定的IP,再绑定新的IP,仅需提供 ipId, serverId, Remark, createAt, updateAt 即可,其他字段会自动填充
 	VpnipsBindServer(context.Context, *VpnipBindBatchAddReq) (*VpnipBindBatchAddResp, error)
-	// VpnConfigTemplatePlan
+	// VpnConfigTemplatePlan Model
+	// VpnConfigTemplatePlanAdd
 	VpnConfigTemplatePlanAdd(context.Context, *VpnConfigTemplatePlanAddReq) (*VpnConfigTemplatePlanAddResp, error)
 	VpnConfigTemplatePlanUpdate(context.Context, *VpnConfigTemplatePlanUpdateReq) (*VpnConfigTemplatePlanUpdateResp, error)
 	VpnConfigTemplatePlanDel(context.Context, *VpnConfigTemplatePlanDelReq) (*Empty, error)
@@ -12265,6 +12360,9 @@ func (UnimplementedGoVpnClientServer) VpnServerLocationGet(context.Context, *Vpn
 func (UnimplementedGoVpnClientServer) VpnServerLocationList(context.Context, *VpnServerLocationListReq) (*VpnServerLocationListResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method VpnServerLocationList not implemented")
 }
+func (UnimplementedGoVpnClientServer) VpnWithIPAndPort(context.Context, *VpnWithIPAndPortReq) (*VpnWithIPAndPortResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VpnWithIPAndPort not implemented")
+}
 func (UnimplementedGoVpnClientServer) VpnLocationServerCount(context.Context, *VpnLocationServerCountReq) (*VpnLocationServerCountResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method VpnLocationServerCount not implemented")
 }
@@ -13204,6 +13302,24 @@ func _GoVpnClient_VpnServerLocationList_Handler(srv interface{}, ctx context.Con
 	return interceptor(ctx, in, info, handler)
 }
 
+func _GoVpnClient_VpnWithIPAndPort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(VpnWithIPAndPortReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(GoVpnClientServer).VpnWithIPAndPort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: GoVpnClient_VpnWithIPAndPort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(GoVpnClientServer).VpnWithIPAndPort(ctx, req.(*VpnWithIPAndPortReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _GoVpnClient_VpnLocationServerCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(VpnLocationServerCountReq)
 	if err := dec(in); err != nil {
@@ -14351,6 +14467,10 @@ var GoVpnClient_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "VpnServerLocationList",
 			Handler:    _GoVpnClient_VpnServerLocationList_Handler,
 		},
+		{
+			MethodName: "VpnWithIPAndPort",
+			Handler:    _GoVpnClient_VpnWithIPAndPort_Handler,
+		},
 		{
 			MethodName: "VpnLocationServerCount",
 			Handler:    _GoVpnClient_VpnLocationServerCount_Handler,

+ 97 - 106
pb/pmp.proto

@@ -667,12 +667,11 @@ message AdGlobalConfigGetReq {
 
 // JobBatch
 message JobBatchVo {
-  int64 id = 1;          // ID
-  string name = 2;       // 作业名称
-  string type = 3;       // 作业类型
-  string initParams = 4; // 作业初始化参数
-  string contextData =
-      5; // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
+  int64 id = 1;            // ID
+  string name = 2;         // 作业名称
+  string type = 3;         // 作业类型
+  string initParams = 4;   // 作业初始化参数
+  string contextData = 5;  // 上下文数据,可用于存储此次批量作业的任务过程中产生的通用的中间数据
   string beginHandler = 6; // 预处理函数/URL
   string afterHandler = 7; // 后处理函数/URL
   int64 concurrency = 8;   // 并发控制数
@@ -720,12 +719,11 @@ message JobBatchListWithTasksResp {
 
 // JobTasks
 message JobTasksVo {
-  int64 id = 1;          // 任务id
-  int64 batchId = 2;     // 批量作业Id
-  string name = 3;       // 任务名称
-  string initParams = 4; // 任务初始化配置及数据
-  string runtimeData =
-      5; // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
+  int64 id = 1;            // 任务id
+  int64 batchId = 2;       // 批量作业Id
+  string name = 3;         // 任务名称
+  string initParams = 4;   // 任务初始化配置及数据
+  string runtimeData = 5;  // 任务运行时数据,用于临时存储任务过程中各个关键节点的中间数据
   string externalRefs = 6; // 外部系统引用,用于记录与外部系统交互产生的关联标识
   int64 startedTime = 7;   // 任务开始时间
   int64 finishedTime = 8;  // 任务结束时间
@@ -982,16 +980,17 @@ message MessagePushListResp {
 service GoPmpClient {
   rpc Ping(Request) returns (Response);
 
-  // GlobalParamVo
+  // GlobalParamVo Model
+  // GlobalParamAdd
   rpc GlobalParamAdd(GlobalParamVo) returns (GlobalParamVo);
   rpc GlobalParamUpdate(GlobalParamVo) returns (GlobalParamVo);
   rpc GlobalParamDel(Ids) returns (Empty);
-  rpc GlobalParamGet(GlobalParamVo)
-      returns (GlobalParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc GlobalParamGet(GlobalParamVo) returns (GlobalParamVo); // 兼容旧接口,新版本代码中请不要调用
   rpc GlobalParamGetWithLang(GlobalParamGetReq) returns (GlobalParamVo);
   rpc GlobalParamList(GlobalParamListReq) returns (GlobalParamListResp);
 
-  // ProductVo
+  // ProductVo Model
+  // ProductAdd
   rpc ProductAdd(ProductVo) returns (ProductVo);
   rpc ProductUpdate(ProductVo) returns (ProductVo);
   rpc ProductDel(Ids) returns (Empty);
@@ -999,12 +998,12 @@ service GoPmpClient {
   rpc ProductList(ProductListReq) returns (ProductListResp);
   rpc ProductAll(Request) returns (ProductListResp);
 
-  // ProductParamVo
+  // ProductParamVo Model
+  // ProductParamAdd
   rpc ProductParamAdd(ProductParamVo) returns (ProductParamVo);
   rpc ProductParamUpdate(ProductParamVo) returns (ProductParamVo);
   rpc ProductParamDel(Ids) returns (Empty);
-  rpc ProductParamGet(ProductParamVo)
-      returns (ProductParamVo); // 兼容旧接口,新版本代码中请不要调用
+  rpc ProductParamGet(ProductParamVo) returns (ProductParamVo); // 兼容旧接口,新版本代码中请不要调用
   rpc ProductParamGetWithLang(ProductParamGetReq) returns (ProductParamVo);
   rpc ProductParamList(ProductParamListReq) returns (ProductParamListResp);
 
@@ -1016,65 +1015,56 @@ service GoPmpClient {
   rpc ProductActionList(ProductActionListReq) returns (ProductActionListResp);
 
   // ProductActionGroup 产品行为分组
-  rpc ProductActionGroupAdd(ProductActionGroupVo)
-      returns (ProductActionGroupVo);
-  rpc ProductActionGroupUpdate(ProductActionGroupVo)
-      returns (ProductActionGroupVo);
+  rpc ProductActionGroupAdd(ProductActionGroupVo) returns (ProductActionGroupVo);
+  rpc ProductActionGroupUpdate(ProductActionGroupVo) returns (ProductActionGroupVo);
   rpc ProductActionGroupDel(Ids) returns (Empty);
-  rpc ProductActionGroupGet(ProductActionGroupReq)
-      returns (ProductActionGroupVo);
-  rpc ProductActionGroupList(ProductActionGroupListReq)
-      returns (ProductActionGroupListResp);
+  rpc ProductActionGroupGet(ProductActionGroupReq) returns (ProductActionGroupVo);
+  rpc ProductActionGroupList(ProductActionGroupListReq) returns (ProductActionGroupListResp);
   rpc ProductActionGroupDisable(ProductActionGroupDisableReq) returns (Empty);
   rpc ProductActionGroupEnable(ProductActionGroupEnableReq) returns (Empty);
 
   // ProductActionPolicyGroup 产品行为策略分组
-  rpc ProductActionPolicyGroupAdd(ProductActionPolicyGroupVo)
-      returns (ProductActionPolicyGroupVo);
-  rpc ProductActionPolicyGroupUpdate(ProductActionPolicyGroupVo)
-      returns (ProductActionPolicyGroupVo);
+  rpc ProductActionPolicyGroupAdd(ProductActionPolicyGroupVo) returns (ProductActionPolicyGroupVo);
+  rpc ProductActionPolicyGroupUpdate(ProductActionPolicyGroupVo) returns (ProductActionPolicyGroupVo);
   rpc ProductActionPolicyGroupDel(Ids) returns (Empty);
-  rpc ProductActionPolicyGroupGet(ProductActionPolicyGroupReq)
-      returns (ProductActionPolicyGroupVo);
-  rpc ProductActionPolicyGroupList(ProductActionPolicyGroupListReq)
-      returns (ProductActionPolicyGroupListResp);
-  rpc ProductActionPolicyGroupDisable(ProductActionPolicyGroupDisableReq)
-      returns (Empty);
-  rpc ProductActionPolicyGroupEnable(ProductActionPolicyGroupEnableReq)
-      returns (Empty);
+  rpc ProductActionPolicyGroupGet(ProductActionPolicyGroupReq) returns (ProductActionPolicyGroupVo);
+  rpc ProductActionPolicyGroupList(ProductActionPolicyGroupListReq) returns (ProductActionPolicyGroupListResp);
+  rpc ProductActionPolicyGroupDisable(ProductActionPolicyGroupDisableReq) returns (Empty);
+  rpc ProductActionPolicyGroupEnable(ProductActionPolicyGroupEnableReq) returns (Empty);
 
   // ProductActionType 产品行为类型
   rpc ProductActionTypeAdd(ProductActionTypeVo) returns (ProductActionTypeVo);
-  rpc ProductActionTypeUpdate(ProductActionTypeVo)
-      returns (ProductActionTypeVo);
+  rpc ProductActionTypeUpdate(ProductActionTypeVo) returns (ProductActionTypeVo);
   rpc ProductActionTypeDel(Ids) returns (Empty);
   rpc ProductActionTypeGet(ProductActionTypeReq) returns (ProductActionTypeVo);
-  rpc ProductActionTypeList(ProductActionTypeListReq)
-      returns (ProductActionTypeListResp);
+  rpc ProductActionTypeList(ProductActionTypeListReq) returns (ProductActionTypeListResp);
 
-  // AreaParamVo
+  // AreaParamVo Model
+  // AreaParamAdd
   rpc AreaParamAdd(AreaParamVo) returns (AreaParamVo);
   rpc AreaParamUpdate(AreaParamVo) returns (AreaParamVo);
   rpc AreaParamDel(Ids) returns (Empty);
   rpc AreaParamGet(AreaParamVo) returns (AreaParamVo);
   rpc AreaParamList(AreaParamListReq) returns (AreaParamListResp);
 
-  // NationalLanguage
+  // NationalLanguage Model
+  // NationalLanguageAdd
   rpc NationalLanguageAdd(NationalLanguageVo) returns (NationalLanguageVo);
   rpc NationalLanguageUpdate(NationalLanguageVo) returns (NationalLanguageVo);
   rpc NationalLanguageDel(Ids) returns (Empty);
   rpc NationalLanguageGet(NationalLanguageVo) returns (NationalLanguageVo);
-  rpc NationalLanguageList(NationalLanguageListReq)
-      returns (NationalLanguageListResp);
+  rpc NationalLanguageList(NationalLanguageListReq) returns (NationalLanguageListResp);
 
-  // Tip
+  // Tip Model
+  // TipAdd
   rpc TipAdd(TipVo) returns (TipVo);
   rpc TipUpdate(TipVo) returns (TipVo);
   rpc TipDel(Ids) returns (Empty);
   rpc TipGet(TipGetReq) returns (TipVo);
   rpc TipList(TipListReq) returns (TipListResp);
 
-  // Dict
+  // Dict Model
+  // DictAdd
   rpc DictAdd(DictVo) returns (DictVo);
   rpc DictUpdate(DictVo) returns (DictVo);
   rpc DictDel(Ids) returns (Empty);
@@ -1095,72 +1085,70 @@ service GoPmpClient {
   // rpc UpgradePkgGet(UpgradePkgGetReq) returns (UpgradePkgVo);
   // rpc UpgradePkgList(UpgradePkgListReq) returns (UpgradePkgListResp);
 
-  // // UpgradeResConfig
-  // 热更新【代码资源】配置管理,控制哪些版本地区的用户可以更新 rpc
-  // UpgradeResConfigAdd(UpgradeResConfigVo) returns (UpgradeResConfigVo); rpc
-  // UpgradeResConfigUpdate(UpgradeResConfigVo) returns (Empty); rpc
-  // UpgradeResConfigDel(Ids) returns (Empty); rpc
-  // UpgradeResConfigGet(UpgradeResConfigGetReq) returns (UpgradeResConfigVo);
-  // rpc UpgradeResConfigList(UpgradeResConfigListReq)
-  //     returns (UpgradeResConfigListResp);
-
-  // UpgradePkgPlan
+  // // UpgradeResConfig Model
+  // // UpgradeResConfigAdd
+  // 热更新【代码资源】配置管理,控制哪些版本地区的用户可以更新
+  // rpc UpgradeResConfigAdd(UpgradeResConfigVo) returns (UpgradeResConfigVo);
+  // rpc UpgradeResConfigUpdate(UpgradeResConfigVo) returns (Empty);
+  // rpc UpgradeResConfigDel(Ids) returns (Empty);
+  // rpc UpgradeResConfigGet(UpgradeResConfigGetReq) returns (UpgradeResConfigVo);
+  // rpc UpgradeResConfigList(UpgradeResConfigListReq) returns (UpgradeResConfigListResp);
+
+  // UpgradePkgPlan Model
+  // UpgradePkgPlanAdd
   rpc UpgradePkgPlanAdd(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
   rpc UpgradePkgPlanUpdate(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
   rpc UpgradePkgPlanDel(Ids) returns (Empty);
   rpc UpgradePkgPlanGet(UpgradePkgPlanVo) returns (UpgradePkgPlanVo);
-  rpc UpgradePkgPlanList(UpgradePkgPlanListReq)
-      returns (UpgradePkgPlanListResp);
-
-  // UpgradePkgPlanDetail
-  rpc UpgradePkgPlanDetailAdd(UpgradePkgPlanDetailVo)
-      returns (UpgradePkgPlanDetailVo);
-  rpc UpgradePkgPlanDetailUpdate(UpgradePkgPlanDetailVo)
-      returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanList(UpgradePkgPlanListReq) returns (UpgradePkgPlanListResp);
+
+  // UpgradePkgPlanDetail Model
+  // UpgradePkgPlanDetailAdd
+  rpc UpgradePkgPlanDetailAdd(UpgradePkgPlanDetailVo) returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailUpdate(UpgradePkgPlanDetailVo) returns (UpgradePkgPlanDetailVo);
   rpc UpgradePkgPlanDetailDel(Ids) returns (Empty);
-  rpc UpgradePkgPlanDetailGet(UpgradePkgPlanDetailVo)
-      returns (UpgradePkgPlanDetailVo);
-  rpc UpgradePkgPlanDetailList(UpgradePkgPlanDetailListReq)
-      returns (UpgradePkgPlanDetailListResp);
+  rpc UpgradePkgPlanDetailGet(UpgradePkgPlanDetailVo) returns (UpgradePkgPlanDetailVo);
+  rpc UpgradePkgPlanDetailList(UpgradePkgPlanDetailListReq) returns (UpgradePkgPlanDetailListResp);
 
-  // UpgradeResPlan
+  // UpgradeResPlan Model
+  // UpgradeResPlanAdd
   rpc UpgradeResPlanAdd(UpgradeResPlanVo) returns (UpgradeResPlanVo);
   rpc UpgradeResPlanUpdate(UpgradeResPlanVo) returns (UpgradeResPlanVo);
   rpc UpgradeResPlanDel(Ids) returns (Empty);
   rpc UpgradeResPlanGet(UpgradeResPlanVo) returns (UpgradeResPlanVo);
-  rpc UpgradeResPlanList(UpgradeResPlanListReq)
-      returns (UpgradeResPlanListResp);
-
-  // UpgradeResPlanDetail
-  rpc UpgradeResPlanDetailAdd(UpgradeResPlanDetailVo)
-      returns (UpgradeResPlanDetailVo);
-  rpc UpgradeResPlanDetailUpdate(UpgradeResPlanDetailVo)
-      returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanList(UpgradeResPlanListReq) returns (UpgradeResPlanListResp);
+
+  // UpgradeResPlanDetail Model
+  // UpgradeResPlanDetailAdd
+  rpc UpgradeResPlanDetailAdd(UpgradeResPlanDetailVo) returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailUpdate(UpgradeResPlanDetailVo) returns (UpgradeResPlanDetailVo);
   rpc UpgradeResPlanDetailDel(Ids) returns (Empty);
-  rpc UpgradeResPlanDetailGet(UpgradeResPlanDetailVo)
-      returns (UpgradeResPlanDetailVo);
-  rpc UpgradeResPlanDetailList(UpgradeResPlanDetailListReq)
-      returns (UpgradeResPlanDetailListResp);
+  rpc UpgradeResPlanDetailGet(UpgradeResPlanDetailVo) returns (UpgradeResPlanDetailVo);
+  rpc UpgradeResPlanDetailList(UpgradeResPlanDetailListReq) returns (UpgradeResPlanDetailListResp);
 
-  // AdPlan
+  // AdPlan Model
+  // AdPlanAdd
   rpc AdPlanAdd(AdPlanVo) returns (AdPlanVo);
   rpc AdPlanUpdate(AdPlanVo) returns (AdPlanVo);
   rpc AdPlanDel(Ids) returns (Empty);
   rpc AdPlanGet(AdPlanVo) returns (AdPlanVo);
   rpc AdPlanList(AdPlanListReq) returns (AdPlanListResp);
 
-  // AdPlanDetail
+  // AdPlanDetail Model
+  // AdPlanDetailAdd
   rpc AdPlanDetailAdd(AdPlanDetailVo) returns (AdPlanDetailVo);
   rpc AdPlanDetailUpdate(AdPlanDetailVo) returns (AdPlanDetailVo);
   rpc AdPlanDetailDel(Ids) returns (Empty);
   rpc AdPlanDetailGet(AdPlanDetailVo) returns (AdPlanDetailVo);
   rpc AdPlanDetailList(AdPlanDetailListReq) returns (AdPlanDetailListResp);
 
-  // AdGlobalConfig
+  // AdGlobalConfig Model
+  // AdGlobalConfigGet
   rpc AdGlobalConfigGet(AdGlobalConfigGetReq) returns (AdGlobalConfigVo);
   rpc AdGlobalConfigUpdate(AdGlobalConfigVo) returns (AdGlobalConfigVo);
 
-  // JobBatch
+  // JobBatch Model
+  // JobBatchAdd
   rpc JobBatchAdd(JobBatchVo) returns (JobBatchVo);
   rpc JobBatchAddWithTasks(JobBatchWithTasksVo) returns (JobBatchWithTasksVo);
   rpc JobBatchUpdate(JobBatchVo) returns (JobBatchVo);
@@ -1168,62 +1156,65 @@ service GoPmpClient {
   rpc JobBatchGet(JobBatchVo) returns (JobBatchVo);
   rpc JobBatchGetWithTasks(JobBatchVo) returns (JobBatchWithTasksVo);
   rpc JobBatchList(JobBatchListReq) returns (JobBatchListResp);
-  rpc JobBatchListWithTasks(JobBatchListReq)
-      returns (JobBatchListWithTasksResp);
+  rpc JobBatchListWithTasks(JobBatchListReq) returns (JobBatchListWithTasksResp);
 
-  // JobTasks
+  // JobTasks Model
+  // JobTasksAdd
   rpc JobTasksAdd(JobTasksVo) returns (JobTasksVo);
   rpc JobTasksUpdate(JobTasksVo) returns (JobTasksVo);
   rpc JobTasksDel(Ids) returns (Empty);
   rpc JobTasksGet(JobTasksVo) returns (JobTasksVo);
   rpc JobTasksList(JobTasksListReq) returns (JobTasksListResp);
 
-  // DeployConfig
+  // DeployConfig Model
+  // DeployConfigAdd
   rpc DeployConfigAdd(DeployConfigVo) returns (DeployConfigVo);
   rpc DeployConfigUpdate(DeployConfigVo) returns (DeployConfigVo);
   rpc DeployConfigDel(Ids) returns (Empty);
   rpc DeployConfigGet(DeployConfigVo) returns (DeployConfigVo);
   rpc DeployConfigList(DeployConfigListReq) returns (DeployConfigListResp);
 
-  // OperationLog
+  // OperationLog Model
+  // OperationLogAdd
   rpc OperationLogAdd(OperationLogVo) returns (OperationLogVo);
   rpc OperationLogUpdate(OperationLogVo) returns (OperationLogVo);
   rpc OperationLogGet(OperationLogVo) returns (OperationLogVo);
   rpc OperationLogList(OperationLogListReq) returns (OperationLogListResp);
 
-  // AnnouncePlan
+  // AnnouncePlan Model
+  // AnnouncePlanAdd
   rpc AnnouncePlanAdd(AnnouncePlanVo) returns (AnnouncePlanVo);
   rpc AnnouncePlanUpdate(AnnouncePlanVo) returns (AnnouncePlanVo);
   rpc AnnouncePlanDel(Ids) returns (Empty);
   rpc AnnouncePlanGet(AnnouncePlanVo) returns (AnnouncePlanVo);
   rpc AnnouncePlanList(AnnouncePlanListReq) returns (AnnouncePlanListResp);
 
-  // AnnouncePlanDetail
-  rpc AnnouncePlanDetailAdd(AnnouncePlanDetailVo)
-      returns (AnnouncePlanDetailVo);
-  rpc AnnouncePlanDetailUpdate(AnnouncePlanDetailVo)
-      returns (AnnouncePlanDetailVo);
+  // AnnouncePlanDetail Model
+  // AnnouncePlanDetailAdd
+  rpc AnnouncePlanDetailAdd(AnnouncePlanDetailVo) returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailUpdate(AnnouncePlanDetailVo) returns (AnnouncePlanDetailVo);
   rpc AnnouncePlanDetailDel(Ids) returns (Empty);
-  rpc AnnouncePlanDetailGet(AnnouncePlanDetailVo)
-      returns (AnnouncePlanDetailVo);
-  rpc AnnouncePlanDetailList(AnnouncePlanDetailListReq)
-      returns (AnnouncePlanDetailListResp);
+  rpc AnnouncePlanDetailGet(AnnouncePlanDetailVo) returns (AnnouncePlanDetailVo);
+  rpc AnnouncePlanDetailList(AnnouncePlanDetailListReq) returns (AnnouncePlanDetailListResp);
 
-  // ServiceTypes
+  // ServiceTypes Model
+  // ServiceTypesAdd
   rpc ServiceTypesAdd(ServiceTypesAddReq) returns (ServiceTypesVo);
   rpc ServiceTypesUpdate(ServiceTypesUpdateReq) returns (ServiceTypesVo);
   rpc ServiceTypesDel(ServiceTypesDelReq) returns (Empty);
   rpc ServiceTypesGet(ServiceTypesGetReq) returns (ServiceTypesVo);
   rpc ServiceTypesList(ServiceTypesListReq) returns (ServiceTypesListResp);
 
-  // ServiceSets
+  // ServiceSets Model
+  // ServiceSetsAdd
   rpc ServiceSetsAdd(ServiceSetsAddReq) returns (ServiceSetsVo);
   rpc ServiceSetsUpdate(ServiceSetsUpdateReq) returns (ServiceSetsVo);
   rpc ServiceSetsDel(ServiceSetsDelReq) returns (Empty);
   rpc ServiceSetsGet(ServiceSetsGetReq) returns (ServiceSetsVo);
   rpc ServiceSetsList(ServiceSetsListReq) returns (ServiceSetsListResp);
 
-  // MessagePush
+  // MessagePush Model
+  // MessagePushAdd
   rpc MessagePushAdd(MessagePushVo) returns (MessagePushVo);
   rpc MessagePushUpdate(MessagePushVo) returns (MessagePushVo);
   rpc MessagePushList(MessagePushListReq) returns (MessagePushListResp);

+ 4 - 8
pb/sys.proto

@@ -194,14 +194,10 @@ service GoSysClient {
   rpc SysUserDelete(Ids) returns (Empty);
   rpc SysUserGet(SysUserGetReq) returns (SysUserVo);
   rpc SysUserList(SysUserListReq) returns (SysUserListResp);
-  rpc SysUserAddWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
-      returns (SysUserWithRolesAndPerms);
-  rpc SysUserUpdateWithRolesAndPerms(SysUserWithRoleIdsAndPermRules)
-      returns (SysUserWithRolesAndPerms);
-  rpc SysUserGetWithRolesAndPerms(SysUserGetReq)
-      returns (SysUserWithRolesAndPerms);
-  rpc SysUserListWithRolesAndPerms(SysUserListReq)
-      returns (SysUserListWithRolesAndPermsResp);
+  rpc SysUserAddWithRolesAndPerms(SysUserWithRoleIdsAndPermRules) returns (SysUserWithRolesAndPerms);
+  rpc SysUserUpdateWithRolesAndPerms(SysUserWithRoleIdsAndPermRules) returns (SysUserWithRolesAndPerms);
+  rpc SysUserGetWithRolesAndPerms(SysUserGetReq) returns (SysUserWithRolesAndPerms);
+  rpc SysUserListWithRolesAndPerms(SysUserListReq) returns (SysUserListWithRolesAndPermsResp);
 
   // 角色管理
   rpc SysRoleAdd(SysRoleVo) returns (SysRoleVo);

+ 14 - 7
pb/user.proto

@@ -260,6 +260,7 @@ message UserCredentialListReq {
   Page page = 1;
   UserCredentialVo vo = 2;
   repeated int64 excludeIds = 3; // 排除的ID
+  repeated int64 userIds = 4;    // 用户ID
 }
 message UserCredentialListResp {
   int64 total = 1;
@@ -293,7 +294,7 @@ message UserDeviceListReq {
   UserDeviceVo vo = 2;
   repeated int64 excludeIds = 3; // 排除的ID
   repeated int64 userIds = 4;    // 用户ID
-  repeated int64 dIds = 5;       // device 表的 id
+  repeated int64 dids = 5;       // device 表的 id
 }
 message UserDeviceListResp {
   int64 total = 1;
@@ -311,21 +312,24 @@ service GoUserClient {
   rpc UserAppConfigGet(UserAppConfigGetReq) returns (UserAppConfigVo);
   rpc UserAppConfigList(UserAppConfigListReq) returns (UserAppConfigListRes);
 
-  // 设备管理
+  // Device Model
+  // DeviceAdd
   rpc DeviceAdd(DeviceVo) returns (DeviceVo);
   rpc DeviceUpdate(DeviceVo) returns (DeviceVo);
   rpc DeviceDel(Ids) returns (Empty);
   rpc DeviceGet(DeviceVo) returns (DeviceVo);
   rpc DeviceList(DeviceListReq) returns (DeviceListRes);
 
-  // Account
+  // Account Model
+  // AccountAdd
   rpc AccountAdd(AccountVo) returns (AccountVo);
   rpc AccountUpdate(AccountVo) returns (AccountVo);
   rpc AccountDel(Ids) returns (Empty);
   rpc AccountGet(AccountVo) returns (AccountVo);
   rpc AccountList(AccountListReq) returns (AccountListResp);
 
-  // AccountDevice
+  // AccountDevice Model
+  // AccountDeviceAdd
   rpc AccountDeviceAdd(AccountDeviceVo) returns (AccountDeviceVo);
   rpc AccountDeviceUpdate(AccountDeviceVo) returns (AccountDeviceVo);
   rpc AccountDeviceDel(Ids) returns (Empty);
@@ -346,21 +350,24 @@ service GoUserClient {
   rpc UserTestGet(UserTestVo) returns (UserTestVo);
   rpc UserTestList(UserTestListReq) returns (UserTestListResp);
 
-  // User
+  // User Model
+  // UserAdd
   rpc UserAdd(UserAddReq) returns (UserAddResp);
   rpc UserUpdate(UserUpdateReq) returns (UserUpdateResp);
   rpc UserDel(UserDelReq) returns (Empty);
   rpc UserGet(UserGetReq) returns (UserGetResp);
   rpc UserList(UserListReq) returns (UserListResp);
 
-  // UserCredential
+  // UserCredential Model
+  // UserCredentialAdd
   rpc UserCredentialAdd(UserCredentialAddReq) returns (UserCredentialAddResp);
   rpc UserCredentialUpdate(UserCredentialUpdateReq) returns (UserCredentialUpdateResp);
   rpc UserCredentialDel(UserCredentialDelReq) returns (Empty);
   rpc UserCredentialGet(UserCredentialGetReq) returns (UserCredentialGetResp);
   rpc UserCredentialList(UserCredentialListReq) returns (UserCredentialListResp);
 
-  // UserDevice
+  // UserDevice Model
+  // UserDeviceAdd
   rpc UserDeviceAdd(UserDeviceAddReq) returns (UserDeviceAddResp);
   rpc UserDeviceUpdate(UserDeviceUpdateReq) returns (UserDeviceUpdateResp);
   rpc UserDeviceDel(UserDeviceDelReq) returns (Empty);

+ 67 - 65
pb/vpn.proto

@@ -274,6 +274,21 @@ message VpnProbeTaskListResp {
   repeated VpnProbeTaskVo list = 2;
 }
 
+message VpnWithIPAndPortReq {
+  // 产品Code
+  string productCode = 1;
+}
+
+message VpnWithIPAndPortResp {
+  repeated VpnWithIPAndPortItem list = 1;
+}
+message VpnWithIPAndPortItem {
+  // location displayConfig
+  string displayConfig = 1;
+  // 设备
+  repeated VpnServerVo vo = 2;
+}
+
 // VpnipWalledVo
 message VpnipWalledVo {
   int64 id = 1;         // ID
@@ -613,7 +628,8 @@ service GoVpnClient {
   // 表的事务操作
   rpc Transaction(TransactionReq) returns (Empty);
 
-  // VpnTag
+  // VpnTag Model
+  // VpnTagAdd
   rpc VpnTagAdd(VpnTagVo) returns (VpnTagVo);
   rpc VpnTagUpdate(VpnTagVo) returns (VpnTagVo);
   rpc VpnTagDel(Ids) returns (Empty);
@@ -622,35 +638,36 @@ service GoVpnClient {
   rpc VpnTagBatchAdd(VpnTagBatchAddReq) returns (VpnTagBatchAddResp);
   rpc VpnTagBatchUpdate(VpnTagBatchUpdateReq) returns (VpnTagBatchUpdateResp);
 
-  // VpnGroup
+  // VpnGroup Model
+  // VpnGroupAdd
   rpc VpnGroupAdd(VpnGroupAddReq) returns (VpnGroupVo);
   rpc VpnGroupUpdate(VpnGroupAddReq) returns (Empty);
   rpc VpnGroupDel(Ids) returns (Empty);
   rpc VpnGroupGet(VpnGroupGetReq) returns (VpnGroupVo);
   rpc VpnGroupList(VpnGroupListReq) returns (VpnGroupListResp);
   rpc VpnGroupBatchAdd(VpnGroupBatchAddReq) returns (VpnGroupBatchAddResp);
-  rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq)
-      returns (VpnGroupBatchUpdateResp);
+  rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq) returns (VpnGroupBatchUpdateResp);
 
-  // VpnGroupTag
+  // VpnGroupTag Model
+  // VpnGroupTagAdd
   rpc VpnGroupTagAdd(VpnGroupTagVo) returns (VpnGroupTagVo);
   rpc VpnGroupTagUpdate(VpnGroupTagVo) returns (VpnGroupTagVo);
   rpc VpnGroupTagDel(Ids) returns (Empty);
   rpc VpnGroupTagGet(VpnGroupTagVo) returns (VpnGroupTagVo);
   rpc VpnGroupTagList(VpnGroupTagListReq) returns (VpnGroupTagListResp);
 
-  // VpnLocation
+  // VpnLocation Model
+  // VpnLocationAdd
   rpc VpnLocationAdd(VpnLocationVo) returns (VpnLocationVo);
   rpc VpnLocationUpdate(VpnLocationVo) returns (Empty);
   rpc VpnLocationDel(Ids) returns (Empty);
   rpc VpnLocationGet(VpnLocationGetReq) returns (VpnLocationVo);
   rpc VpnLocationList(VpnLocationListReq) returns (VpnLocationListResp);
-  rpc VpnLocationBatchAdd(VpnLocationBatchAddReq)
-      returns (VpnLocationBatchAddResp);
-  rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq)
-      returns (VpnLocationBatchUpdateResp);
+  rpc VpnLocationBatchAdd(VpnLocationBatchAddReq) returns (VpnLocationBatchAddResp);
+  rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq) returns (VpnLocationBatchUpdateResp);
 
-  // VpnServer
+  // VpnServer Model
+  // VpnServerAdd
   rpc VpnServerAdd(VpnServerAddReq) returns (VpnServerAddReq);
   rpc VpnServerUpdate(VpnServerAddReq) returns (VpnServerAddReq);
   rpc VpnServerDel(Ids) returns (Empty);
@@ -659,38 +676,39 @@ service GoVpnClient {
   rpc VpnServerList(VpnServerListReq) returns (VpnServerListResp);
   rpc VpnServerExList(VpnServerListReq) returns (VpnServerExListResp);
   rpc VpnServerBatchAdd(VpnServerBatchAddReq) returns (VpnServerBatchAddResp);
-  rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq)
-      returns (VpnServerBatchUpdateResp);
+  rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq) returns (VpnServerBatchUpdateResp);
 
-  // VpnServerLocation
+  // VpnServerLocation Model
+  // VpnServerLocationAdd
   rpc VpnServerLocationAdd(VpnServerLocationVo) returns (VpnServerLocationVo);
   rpc VpnServerLocationUpdate(VpnServerLocationVo) returns (Empty);
   rpc VpnServerLocationDel(Ids) returns (Empty);
   rpc VpnServerLocationGet(VpnServerLocationVo) returns (VpnServerLocationVo);
-  rpc VpnServerLocationList(VpnServerLocationListReq)
-      returns (VpnServerLocationListResp);
+  rpc VpnServerLocationList(VpnServerLocationListReq) returns (VpnServerLocationListResp);
+
+  rpc VpnWithIPAndPort(VpnWithIPAndPortReq) returns (VpnWithIPAndPortResp);
 
   // VpnLocationServerCount
-  rpc VpnLocationServerCount(VpnLocationServerCountReq)
-      returns (VpnLocationServerCountResp);
+  rpc VpnLocationServerCount(VpnLocationServerCountReq) returns (VpnLocationServerCountResp);
 
-  // VpnProbeTask
+  // VpnProbeTask Model
+  // VpnProbeTaskAdd
   rpc VpnProbeTaskAdd(VpnProbeTaskVo) returns (VpnProbeTaskVo);
   rpc VpnProbeTaskUpdate(VpnProbeTaskVo) returns (Empty);
   rpc VpnProbeTaskList(VpnProbeTaskListReq) returns (VpnProbeTaskListResp);
 
-  // VpnipWalled
+  // VpnipWalled Model
+  // VpnipWalledAdd
   rpc VpnipWalledAdd(VpnipWalledAddReq) returns (VpnipWalledAddResp);
   rpc VpnipWalledUpdate(VpnipWalledUpdateReq) returns (VpnipWalledUpdateResp);
   rpc VpnipWalledDel(Ids) returns (Empty);
   rpc VpnipWalledGet(VpnipWalledGetReq) returns (VpnipWalledGetResp);
   rpc VpnipWalledList(VpnipWalledListReq) returns (VpnipWalledListResp);
-  rpc VpnipWalledBatchAdd(VpnipWalledBatchAddReq)
-      returns (VpnipWalledBatchAddResp);
-  rpc VpnipWalledBatchUpdate(VpnipWalledBatchUpdateReq)
-      returns (VpnipWalledBatchUpdateResp);
+  rpc VpnipWalledBatchAdd(VpnipWalledBatchAddReq) returns (VpnipWalledBatchAddResp);
+  rpc VpnipWalledBatchUpdate(VpnipWalledBatchUpdateReq) returns (VpnipWalledBatchUpdateResp);
 
-  // Vpnip
+  // Vpnip Model
+  // VpnipAdd
   rpc VpnipAdd(VpnipAddReq) returns (VpnipAddResp);
   rpc VpnipExAdd(VpnipExAddReq) returns (VpnipExAddResp);
   rpc VpnipUpdate(VpnipUpdateReq) returns (VpnipUpdateResp);
@@ -703,62 +721,46 @@ service GoVpnClient {
   rpc VpnipBatchAdd(VpnipBatchAddReq) returns (VpnipBatchAddResp);
   rpc VpnipBatchUpdate(VpnipBatchUpdateReq) returns (VpnipBatchUpdateResp);
   rpc VpnipExBatchAdd(VpnipExBatchAddReq) returns (VpnipExBatchAddResp);
-  rpc VpnipExBatchUpdate(VpnipExBatchUpdateReq)
-      returns (VpnipExBatchUpdateResp);
+  rpc VpnipExBatchUpdate(VpnipExBatchUpdateReq) returns (VpnipExBatchUpdateResp);
 
-  // VpnipRange
+  // VpnipRange Model
+  // VpnipRangeAdd
   rpc VpnipRangeAdd(VpnipRangeAddReq) returns (VpnipRangeAddResp);
   // VpnipRangeExAdd 添加IP段及IP数据,如果IP数据已存在,会自动将已经存在的IP的 rangeId 更新为新增的IP段的ID
   rpc VpnipRangeExAdd(VpnipRangeExAddReq) returns (VpnipRangeExAddResp);
   rpc VpnipRangeUpdate(VpnipRangeUpdateReq) returns (VpnipRangeUpdateResp);
-  rpc VpnipRangeExUpdate(VpnipRangeExUpdateReq)
-      returns (VpnipRangeExUpdateResp);
+  rpc VpnipRangeExUpdate(VpnipRangeExUpdateReq) returns (VpnipRangeExUpdateResp);
   rpc VpnipRangeDel(Ids) returns (Empty);
   rpc VpnipRangeGet(VpnipRangeGetReq) returns (VpnipRangeGetResp);
   rpc VpnipRangeExGet(VpnipRangeGetReq) returns (VpnipRangeExGetResp);
   rpc VpnipRangeList(VpnipRangeListReq) returns (VpnipRangeListResp);
   rpc VpnipRangeExList(VpnipRangeListReq) returns (VpnipRangeExListResp);
-  rpc VpnipRangeBatchAdd(VpnipRangeBatchAddReq)
-      returns (VpnipRangeBatchAddResp);
-  rpc VpnipRangeExBatchAdd(VpnipRangeExBatchAddReq)
-      returns (VpnipRangeExBatchAddResp);
-  rpc VpnipRangeBatchUpdate(VpnipRangeBatchUpdateReq)
-      returns (VpnipRangeBatchUpdateResp);
-  rpc VpnipRangeExBatchUpdate(VpnipRangeExBatchUpdateReq)
-      returns (VpnipRangeExBatchUpdateResp);
-
-  // VpnipBind
+  rpc VpnipRangeBatchAdd(VpnipRangeBatchAddReq) returns (VpnipRangeBatchAddResp);
+  rpc VpnipRangeExBatchAdd(VpnipRangeExBatchAddReq) returns (VpnipRangeExBatchAddResp);
+  rpc VpnipRangeBatchUpdate(VpnipRangeBatchUpdateReq) returns (VpnipRangeBatchUpdateResp);
+  rpc VpnipRangeExBatchUpdate(VpnipRangeExBatchUpdateReq) returns (VpnipRangeExBatchUpdateResp);
+
+  // VpnipBind Model
+  // VpnipBindAdd
   rpc VpnipBindAdd(VpnipBindAddReq) returns (VpnipBindAddResp);
   rpc VpnipBindUpdate(VpnipBindUpdateReq) returns (VpnipBindUpdateResp);
   rpc VpnipBindDel(Ids) returns (Empty);
   rpc VpnipBindGet(VpnipBindGetReq) returns (VpnipBindGetResp);
   rpc VpnipBindList(VpnipBindListReq) returns (VpnipBindListResp);
-  rpc VpnipBindBatchUpdate(VpnipBindBatchUpdateReq)
-      returns (VpnipBindBatchUpdateResp);
+  rpc VpnipBindBatchUpdate(VpnipBindBatchUpdateReq) returns (VpnipBindBatchUpdateResp);
   // VpnipsBindServer 为一台服务器绑定一批新IP,会解绑上次绑定的IP,再绑定新的IP,仅需提供 ipId, serverId, Remark, createAt, updateAt 即可,其他字段会自动填充
   rpc VpnipsBindServer(VpnipBindBatchAddReq) returns (VpnipBindBatchAddResp);
 
-  // VpnConfigTemplatePlan
-  rpc VpnConfigTemplatePlanAdd(VpnConfigTemplatePlanAddReq)
-      returns (VpnConfigTemplatePlanAddResp);
-  rpc VpnConfigTemplatePlanUpdate(VpnConfigTemplatePlanUpdateReq)
-      returns (VpnConfigTemplatePlanUpdateResp);
+  // VpnConfigTemplatePlan Model
+  // VpnConfigTemplatePlanAdd
+  rpc VpnConfigTemplatePlanAdd(VpnConfigTemplatePlanAddReq) returns (VpnConfigTemplatePlanAddResp);
+  rpc VpnConfigTemplatePlanUpdate(VpnConfigTemplatePlanUpdateReq) returns (VpnConfigTemplatePlanUpdateResp);
   rpc VpnConfigTemplatePlanDel(VpnConfigTemplatePlanDelReq) returns (Empty);
-  rpc VpnConfigTemplatePlanGet(VpnConfigTemplatePlanGetReq)
-      returns (VpnConfigTemplatePlanGetResp);
-  rpc VpnConfigTemplatePlanList(VpnConfigTemplatePlanListReq)
-      returns (VpnConfigTemplatePlanListResp);
-  rpc VpnConfigTemplatePlanDetailAdd(VpnConfigTemplatePlanDetailAddReq)
-      returns (VpnConfigTemplatePlanDetailAddResp);
-  rpc VpnConfigTemplatePlanDetailUpdate(VpnConfigTemplatePlanDetailUpdateReq)
-      returns (VpnConfigTemplatePlanDetailUpdateResp);
-  rpc VpnConfigTemplatePlanDetailDel(VpnConfigTemplatePlanDetailDelReq)
-      returns (Empty);
-  rpc VpnConfigTemplatePlanDetailGet(VpnConfigTemplatePlanDetailGetReq)
-      returns (VpnConfigTemplatePlanDetailGetResp);
-  rpc VpnConfigTemplatePlanDetailList(VpnConfigTemplatePlanDetailListReq)
-      returns (VpnConfigTemplatePlanDetailListResp);
-}
-
-
-// test go mod tidy
+  rpc VpnConfigTemplatePlanGet(VpnConfigTemplatePlanGetReq) returns (VpnConfigTemplatePlanGetResp);
+  rpc VpnConfigTemplatePlanList(VpnConfigTemplatePlanListReq) returns (VpnConfigTemplatePlanListResp);
+  rpc VpnConfigTemplatePlanDetailAdd(VpnConfigTemplatePlanDetailAddReq) returns (VpnConfigTemplatePlanDetailAddResp);
+  rpc VpnConfigTemplatePlanDetailUpdate(VpnConfigTemplatePlanDetailUpdateReq) returns (VpnConfigTemplatePlanDetailUpdateResp);
+  rpc VpnConfigTemplatePlanDetailDel(VpnConfigTemplatePlanDetailDelReq) returns (Empty);
+  rpc VpnConfigTemplatePlanDetailGet(VpnConfigTemplatePlanDetailGetReq) returns (VpnConfigTemplatePlanDetailGetResp);
+  rpc VpnConfigTemplatePlanDetailList(VpnConfigTemplatePlanDetailListReq) returns (VpnConfigTemplatePlanDetailListResp);
+}

Деякі файли не було показано, через те що забагато файлів було змінено