// Package sysin // @Link https://github.com/bufanyun/hotgo // @Copyright Copyright (c) 2023 HotGo CLI // @Author Ms <133814250@qq.com> // @License https://github.com/bufanyun/hotgo/blob/master/LICENSE // @AutoGenerate Version 2.7.6 package sysin import ( "context" "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" "hotgo/internal/consts" "hotgo/internal/model/entity" "hotgo/internal/model/input/form" "hotgo/utility/validate" ) // ServeLicenseUpdateFields 修改服务许可证字段过滤 type ServeLicenseUpdateFields struct { Group string `json:"group" dc:"分组"` Name string `json:"name" dc:"许可名称"` Appid string `json:"appid" dc:"应用ID"` SecretKey string `json:"secretKey" dc:"应用秘钥"` OnlineLimit int `json:"onlineLimit" dc:"在线数量限制,默认1"` // Routes *gjson.Json `json:"routes" dc:"路由表,空使用默认分组路由"` AllowedIps string `json:"allowedIps" dc:"白名单,*代表所有,只有允许的IP才能连接到tcp服务"` EndAt *gtime.Time `json:"endAt" dc:"授权结束时间"` Remark string `json:"remark" dc:"备注"` Status int `json:"status" dc:"状态"` } // ServeLicenseInsertFields 新增服务许可证字段过滤 type ServeLicenseInsertFields struct { Group string `json:"group" dc:"分组"` Name string `json:"name" dc:"许可名称"` Appid string `json:"appid" dc:"应用ID"` SecretKey string `json:"secretKey" dc:"应用秘钥"` OnlineLimit int `json:"onlineLimit" dc:"在线数量限制,默认1"` // Routes *gjson.Json `json:"routes" dc:"路由表,空使用默认分组路由"` AllowedIps string `json:"allowedIps" dc:"白名单,*代表所有,只有允许的IP才能连接到tcp服务"` EndAt *gtime.Time `json:"endAt" dc:"授权结束时间"` Remark string `json:"remark" dc:"备注"` Status int `json:"status" dc:"状态"` } // ServeLicenseEditInp 修改/新增服务许可证 type ServeLicenseEditInp struct { entity.SysServeLicense } func (in *ServeLicenseEditInp) Filter(ctx context.Context) (err error) { // 验证分组 if err := g.Validator().Rules("required").Data(in.Group).Messages("分组不能为空").Run(ctx); err != nil { return err.Current() } // 验证许可名称 if err := g.Validator().Rules("required").Data(in.Name).Messages("许可名称不能为空").Run(ctx); err != nil { return err.Current() } // 验证应用ID if err := g.Validator().Rules("required").Data(in.Appid).Messages("应用ID不能为空").Run(ctx); err != nil { return err.Current() } // 验证授权结束时间 if err := g.Validator().Rules("required").Data(in.EndAt).Messages("授权结束时间不能为空").Run(ctx); err != nil { return err.Current() } return } type ServeLicenseEditModel struct{} // ServeLicenseDeleteInp 删除服务许可证 type ServeLicenseDeleteInp struct { Id interface{} `json:"id" v:"required#许可ID不能为空" dc:"许可ID"` } func (in *ServeLicenseDeleteInp) Filter(ctx context.Context) (err error) { return } type ServeLicenseDeleteModel struct{} // ServeLicenseViewInp 获取指定服务许可证信息 type ServeLicenseViewInp struct { Id int64 `json:"id" v:"required#许可ID不能为空" dc:"许可ID"` } func (in *ServeLicenseViewInp) Filter(ctx context.Context) (err error) { return } type ServeLicenseViewModel struct { entity.SysServeLicense } // ServeLicenseListInp 获取服务许可证列表 type ServeLicenseListInp struct { form.PageReq Id int64 `json:"id" dc:"许可ID"` Group string `json:"group" dc:"分组"` Name string `json:"name" dc:"许可名称"` Appid string `json:"appid" dc:"应用ID"` EndAt []*gtime.Time `json:"endAt" dc:"授权结束时间"` Status int `json:"status" dc:"状态"` CreatedAt []*gtime.Time `json:"createdAt" dc:"创建时间"` } func (in *ServeLicenseListInp) Filter(ctx context.Context) (err error) { return } type ServeLicenseListModel struct { Id int64 `json:"id" dc:"许可ID"` Group string `json:"group" dc:"分组"` Name string `json:"name" dc:"许可名称"` Appid string `json:"appid" dc:"应用ID"` SecretKey string `json:"secretKey" dc:"应用秘钥"` RemoteAddr string `json:"remoteAddr" dc:"最后连接地址"` OnlineLimit int `json:"onlineLimit" dc:"在线数量限制,默认1"` LoginTimes int64 `json:"loginTimes" dc:"登录次数"` LastLoginAt *gtime.Time `json:"lastLoginAt" dc:"最后登录时间"` LastActiveAt *gtime.Time `json:"lastActiveAt" dc:"最后活跃时间"` EndAt *gtime.Time `json:"endAt" dc:"授权结束时间"` Routes *gjson.Json `json:"routes" dc:"路由表,空使用默认分组路由"` Status int `json:"status" dc:"状态"` CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"` UpdatedAt *gtime.Time `json:"updatedAt" dc:"修改时间"` Online int `json:"online" dc:"在线"` } // ServeLicenseExportModel 导出服务许可证 type ServeLicenseExportModel struct { Id int64 `json:"id" dc:"许可ID"` Group string `json:"group" dc:"分组"` Name string `json:"name" dc:"许可名称"` Appid string `json:"appid" dc:"应用ID"` SecretKey string `json:"secretKey" dc:"应用秘钥"` RemoteAddr string `json:"remoteAddr" dc:"最后连接地址"` OnlineLimit int `json:"onlineLimit" dc:"在线数量限制,默认1"` LoginTimes int64 `json:"loginTimes" dc:"登录次数"` LastLoginAt *gtime.Time `json:"lastLoginAt" dc:"最后登录时间"` LastActiveAt *gtime.Time `json:"lastActiveAt" dc:"最后活跃时间"` EndAt *gtime.Time `json:"endAt" dc:"授权结束时间"` Status int `json:"status" dc:"状态"` CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"` UpdatedAt *gtime.Time `json:"updatedAt" dc:"修改时间"` } // ServeLicenseStatusInp 更新服务许可证状态 type ServeLicenseStatusInp struct { Id int64 `json:"id" v:"required#许可ID不能为空" dc:"许可ID"` Status int `json:"status" dc:"状态"` } func (in *ServeLicenseStatusInp) Filter(ctx context.Context) (err error) { if in.Id <= 0 { err = gerror.New("许可ID不能为空") return } if in.Status <= 0 { err = gerror.New("状态不能为空") return } if !validate.InSlice(consts.StatusSlice, in.Status) { err = gerror.New("状态不正确") return } return } type ServeLicenseStatusModel struct{} type ServeLicenseAssignRouterInp struct { Id int64 `json:"id" v:"required#许可ID不能为空" dc:"许可ID"` Routes *gjson.Json `json:"routes" dc:"路由表,空使用默认分组路由"` } func (in *ServeLicenseAssignRouterInp) Filter(ctx context.Context) (err error) { return }