feat:完善入驻信息管理
This commit is contained in:
@ -5,6 +5,7 @@ import (
|
|||||||
"SciencesServer/app/common/model"
|
"SciencesServer/app/common/model"
|
||||||
"SciencesServer/config"
|
"SciencesServer/config"
|
||||||
"SciencesServer/serve/orm"
|
"SciencesServer/serve/orm"
|
||||||
|
"SciencesServer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type synchronized struct {
|
type synchronized struct {
|
||||||
@ -25,8 +26,10 @@ func initModel() {
|
|||||||
function := func(synchronized ...*synchronized) {
|
function := func(synchronized ...*synchronized) {
|
||||||
for _, v := range synchronized {
|
for _, v := range synchronized {
|
||||||
if !db.Migrator().HasTable(v.iModel) {
|
if !db.Migrator().HasTable(v.iModel) {
|
||||||
_ = db.Migrator().CreateTable(v.iModel)
|
err := db.Migrator().CreateTable(v.iModel)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
if v.iValues != nil && v.iValues() != nil {
|
if v.iValues != nil && v.iValues() != nil {
|
||||||
db.Table(v.iModel.TableName()).Create(v.iValues())
|
db.Table(v.iModel.TableName()).Create(v.iValues())
|
||||||
}
|
}
|
||||||
@ -40,10 +43,10 @@ func initModel() {
|
|||||||
&synchronized{iModel: model.NewSysConfig()},
|
&synchronized{iModel: model.NewSysConfig()},
|
||||||
&synchronized{iModel: model.NewSysMenu()}, &synchronized{iModel: model.NewSysAuth()},
|
&synchronized{iModel: model.NewSysMenu()}, &synchronized{iModel: model.NewSysAuth()},
|
||||||
&synchronized{iModel: model.NewSysUser(), iValues: func() interface{} {
|
&synchronized{iModel: model.NewSysUser(), iValues: func() interface{} {
|
||||||
return &model.SysUser{Account: "admin", Name: "商挈智能", Mobile: "13888888888", Password: "123456",
|
return &model.SysUser{Account: "admin", Name: "商挈智能", Mobile: "13888888888", Password: utils.Md5String("123456"),
|
||||||
IsAdmin: model.SysUserAdministratorForAdmin, Remark: "超级管理员"}
|
IsAdmin: model.SysUserAdministratorForAdmin, Remark: "超级管理员"}
|
||||||
}},
|
}},
|
||||||
&synchronized{iModel: model.NewSysUserTenant()},
|
&synchronized{iModel: model.NewSysUserRole()}, &synchronized{iModel: model.NewSysUserTenant()},
|
||||||
&synchronized{iModel: model.NewSysDepartment()},
|
&synchronized{iModel: model.NewSysDepartment()},
|
||||||
&synchronized{iModel: model.NewSysRole()}, &synchronized{iModel: model.NewSysRoleMenu()}, &synchronized{iModel: model.NewSysRoleAuth()},
|
&synchronized{iModel: model.NewSysRole()}, &synchronized{iModel: model.NewSysRoleMenu()}, &synchronized{iModel: model.NewSysRoleAuth()},
|
||||||
// 配置管理
|
// 配置管理
|
||||||
@ -72,7 +75,6 @@ func initModel() {
|
|||||||
return out
|
return out
|
||||||
}},
|
}},
|
||||||
// 日志管理
|
// 日志管理
|
||||||
&synchronized{iModel: model.NewSysUserRole()},
|
|
||||||
&synchronized{iModel: model.NewSysLog()}, &synchronized{iModel: model.NewSysUserLoginLog()},
|
&synchronized{iModel: model.NewSysLog()}, &synchronized{iModel: model.NewSysUserLoginLog()},
|
||||||
// 用户管理
|
// 用户管理
|
||||||
&synchronized{iModel: model.NewUserInstance()}, &synchronized{iModel: model.NewUserIdentity()},
|
&synchronized{iModel: model.NewUserInstance()}, &synchronized{iModel: model.NewUserIdentity()},
|
||||||
|
@ -7,7 +7,7 @@ type ActivityApply struct {
|
|||||||
MUid uint64 `gorm:"column:m_uid;type:int;default:0;comment:用户manage_uuid" json:"-"`
|
MUid uint64 `gorm:"column:m_uid;type:int;default:0;comment:用户manage_uuid" json:"-"`
|
||||||
Mode ActivityInstanceMode `gorm:"column:mode;type:tinyint(1);default:1;comment:活动模式" json:"mode"`
|
Mode ActivityInstanceMode `gorm:"column:mode;type:tinyint(1);default:1;comment:活动模式" json:"mode"`
|
||||||
ActivityInstanceBasic
|
ActivityInstanceBasic
|
||||||
Content string `gorm:"column:title;type:text;default:'';comment:活动详情" json:"content"`
|
Content string `gorm:"column:title;type:text;comment:活动详情" json:"content"`
|
||||||
MaxNumber int `gorm:"column:max_number;type:int(6);default:0;comment:报名限制人数,0不做限制" json:"max_number"`
|
MaxNumber int `gorm:"column:max_number;type:int(6);default:0;comment:报名限制人数,0不做限制" json:"max_number"`
|
||||||
Status ActivityApplyStatus `gorm:"column:status;type:tinyint(1);default:0;comment:审核状态" json:"status"`
|
Status ActivityApplyStatus `gorm:"column:status;type:tinyint(1);default:0;comment:审核状态" json:"status"`
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
|
@ -9,7 +9,7 @@ type ActivityInstance struct {
|
|||||||
Identity int `gorm:"column:identity;type:tinyint(3);default:0;comment:身份来源" json:"-"`
|
Identity int `gorm:"column:identity;type:tinyint(3);default:0;comment:身份来源" json:"-"`
|
||||||
Mode ActivityInstanceMode `gorm:"column:mode;type:tinyint(1);default:1;comment:活动模式" json:"mode"`
|
Mode ActivityInstanceMode `gorm:"column:mode;type:tinyint(1);default:1;comment:活动模式" json:"mode"`
|
||||||
ActivityInstanceBasic
|
ActivityInstanceBasic
|
||||||
Content string `gorm:"column:title;type:text;default:'';comment:活动详情" json:"content"`
|
Content string `gorm:"column:title;type:text;comment:活动详情" json:"content"`
|
||||||
MaxNumber int `gorm:"column:max_number;type:int(6);default:0;comment:报名限制人数,0不做限制" json:"max_number"`
|
MaxNumber int `gorm:"column:max_number;type:int(6);default:0;comment:报名限制人数,0不做限制" json:"max_number"`
|
||||||
Status ActivityInstanceStatus `gorm:"column:status;type:tinyint(1);default:1;comment:活动状态(1:显示,2:隐藏)" json:"status"`
|
Status ActivityInstanceStatus `gorm:"column:status;type:tinyint(1);default:1;comment:活动状态(1:显示,2:隐藏)" json:"status"`
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
|
@ -39,7 +39,7 @@ func (m *Image) Analysis(domain string) string {
|
|||||||
|
|
||||||
// Images 多个图片信息
|
// Images 多个图片信息
|
||||||
type Images struct {
|
type Images struct {
|
||||||
Images string `gorm:"column:images;type:text;default:'';comment:图片" json:"images"`
|
Images string `gorm:"column:images;type:text;comment:图片" json:"images"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AnalysisSlice Slice解析
|
// AnalysisSlice Slice解析
|
||||||
|
@ -13,7 +13,7 @@ type ManageAgent struct {
|
|||||||
Keyword string `gorm:"column:keyword;type:varchar(255);default:'';comment:关键词" json:"-"`
|
Keyword string `gorm:"column:keyword;type:varchar(255);default:'';comment:关键词" json:"-"`
|
||||||
WorkExperience string `gorm:"column:work_experience;type:varchar(255);default:'';comment:工作经历" json:"work_experience"`
|
WorkExperience string `gorm:"column:work_experience;type:varchar(255);default:'';comment:工作经历" json:"work_experience"`
|
||||||
WorkPlace string `gorm:"column:work_place;type:varchar(255);default:0;comment:工作地点" json:"work_place"`
|
WorkPlace string `gorm:"column:work_place;type:varchar(255);default:0;comment:工作地点" json:"work_place"`
|
||||||
IDImage string `gorm:"column:id_image;type:text;default:'';comment:身份证图片" json:"-"`
|
IDImage string `gorm:"column:id_image;type:text;comment:身份证图片" json:"-"`
|
||||||
CredentialImage string `gorm:"column:credential_image;type:varchar(255);default:'';comment:资格证书" json:"credential_image"`
|
CredentialImage string `gorm:"column:credential_image;type:varchar(255);default:'';comment:资格证书" json:"credential_image"`
|
||||||
Examine
|
Examine
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
|
@ -12,7 +12,7 @@ type ManageEquipment struct {
|
|||||||
Title string `gorm:"column:title;type:varchar(100);default:'';comment:器材名称" json:"title"`
|
Title string `gorm:"column:title;type:varchar(100);default:'';comment:器材名称" json:"title"`
|
||||||
Params string `gorm:"column:params;type:varchar(255);default:'';comment:器材参数" json:"params"`
|
Params string `gorm:"column:params;type:varchar(255);default:'';comment:器材参数" json:"params"`
|
||||||
PurchaseAt time.Time `gorm:"column:purchase_at;type:datetime;default:'';comment:购买时间" json:"purchase_at"`
|
PurchaseAt time.Time `gorm:"column:purchase_at;type:datetime;default:'';comment:购买时间" json:"purchase_at"`
|
||||||
Description string `gorm:"column:description;type:text;default:'';comment:器材描述" json:"description"`
|
Description string `gorm:"column:description;type:text;comment:器材描述" json:"description"`
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
ModelAt
|
ModelAt
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ type ManageResearch struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *ManageResearch) TableName() string {
|
func (m *ManageResearch) TableName() string {
|
||||||
return "manage_expert"
|
return "manage_research"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ManageResearch) GetIndustryAttribute() []string {
|
func (m *ManageResearch) GetIndustryAttribute() []string {
|
||||||
|
@ -11,7 +11,7 @@ type ServiceDemand struct {
|
|||||||
Title string `gorm:"column:title;type:varchar(50);default:'';comment:需求名称" json:"title"`
|
Title string `gorm:"column:title;type:varchar(50);default:'';comment:需求名称" json:"title"`
|
||||||
Name string `gorm:"column:name;type:varchar(50);default:'';comment:联系人" json:"name"`
|
Name string `gorm:"column:name;type:varchar(50);default:'';comment:联系人" json:"name"`
|
||||||
Mobile string `gorm:"column:mobile;type:varchar(15);default:'';comment:联系人手机号" json:"mobile"`
|
Mobile string `gorm:"column:mobile;type:varchar(15);default:'';comment:联系人手机号" json:"mobile"`
|
||||||
Description string `gorm:"column:description;type:text;default:'';comment:需求描述" json:"description"`
|
Description string `gorm:"column:description;type:text;comment:需求描述" json:"description"`
|
||||||
Status ServiceDemandStatus `gorm:"column:status;type:tinyint(1);default:1;comment:状态" json:"status"`
|
Status ServiceDemandStatus `gorm:"column:status;type:tinyint(1);default:1;comment:状态" json:"status"`
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
ModelAt
|
ModelAt
|
||||||
|
@ -8,7 +8,7 @@ type SysLog struct {
|
|||||||
Name string `gorm:"column:name;type:varchar(20);default:'';comment:真实姓名" json:"name"`
|
Name string `gorm:"column:name;type:varchar(20);default:'';comment:真实姓名" json:"name"`
|
||||||
Method string `gorm:"column:method;type:varchar(8);default:'';comment:请求方式" json:"method"`
|
Method string `gorm:"column:method;type:varchar(8);default:'';comment:请求方式" json:"method"`
|
||||||
Path string `gorm:"column:path;type:varchar(8);default:0;comment:请求地址" json:"event"`
|
Path string `gorm:"column:path;type:varchar(8);default:0;comment:请求地址" json:"event"`
|
||||||
Params string `gorm:"column:params;type:text;default:'';comment:参数信息" json:"params"`
|
Params string `gorm:"column:params;type:text;comment:参数信息" json:"params"`
|
||||||
IP string `gorm:"column:ip;type:char(16);default:'';comment:IP地址" json:"ip"`
|
IP string `gorm:"column:ip;type:char(16);default:'';comment:IP地址" json:"ip"`
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
ModelAt
|
ModelAt
|
||||||
|
@ -13,8 +13,8 @@ type SysPatent struct {
|
|||||||
ApplyName string `gorm:"column:apply_name;type:varchar(100);default:'';comment:申请(专利权)人" json:"apply_name"`
|
ApplyName string `gorm:"column:apply_name;type:varchar(100);default:'';comment:申请(专利权)人" json:"apply_name"`
|
||||||
ApplyAddress string `gorm:"column:apply_address;type:varchar(255);default:'';comment:申请人地址" json:"apply_address"`
|
ApplyAddress string `gorm:"column:apply_address;type:varchar(255);default:'';comment:申请人地址" json:"apply_address"`
|
||||||
Inventor string `gorm:"column:inventor;type:varchar(100);default:'';comment:发明人" json:"inventor"`
|
Inventor string `gorm:"column:inventor;type:varchar(100);default:'';comment:发明人" json:"inventor"`
|
||||||
Description string `gorm:"column:description;type:text;default:'';comment:摘要" json:"description"`
|
Description string `gorm:"column:description;type:text;comment:摘要" json:"description"`
|
||||||
PrincipalClaim string `gorm:"column:principal_claim;type:text;default:'';comment:主权项" json:"principal_claim"`
|
PrincipalClaim string `gorm:"column:principal_claim;type:text;comment:主权项" json:"principal_claim"`
|
||||||
IPCCode string `gorm:"column:ipc_code;type:varchar(50);default:'';comment:IPC主分类号" json:"ipc_code"`
|
IPCCode string `gorm:"column:ipc_code;type:varchar(50);default:'';comment:IPC主分类号" json:"ipc_code"`
|
||||||
Shelf
|
Shelf
|
||||||
Status SysParentStatus `gorm:"column:status;type:tinyint(1);default:1;comment:专利状态(1:授权,2:实审,3:公开)" json:"-"`
|
Status SysParentStatus `gorm:"column:status;type:tinyint(1);default:1;comment:专利状态(1:授权,2:实审,3:公开)" json:"-"`
|
||||||
|
@ -21,7 +21,7 @@ type TechnologyInstance struct {
|
|||||||
Territory uint64 `gorm:"column:territory;type:int(11);default:0;comment:技术领域" json:"territory"`
|
Territory uint64 `gorm:"column:territory;type:int(11);default:0;comment:技术领域" json:"territory"`
|
||||||
Transaction int `gorm:"column:transaction;type:tinyint(3);default:0;comment:交易方式" json:"transaction"`
|
Transaction int `gorm:"column:transaction;type:tinyint(3);default:0;comment:交易方式" json:"transaction"`
|
||||||
Images
|
Images
|
||||||
ProveImages string `gorm:"column:prove_images;type:text;default:'';comment:证明材料图片" json:"prove_images"`
|
ProveImages string `gorm:"column:prove_images;type:text;comment:证明材料图片" json:"prove_images"`
|
||||||
Introduce string `gorm:"column:introduce;type:text;comment:介绍描述" json:"introduce"`
|
Introduce string `gorm:"column:introduce;type:text;comment:介绍描述" json:"introduce"`
|
||||||
Purpose string `gorm:"column:purpose;type:text;comment:意图-承担科研项目" json:"purpose"`
|
Purpose string `gorm:"column:purpose;type:text;comment:意图-承担科研项目" json:"purpose"`
|
||||||
Remark string `gorm:"column:remark;type:varchar(255);default:'';comment:备注信息" json:"remark"`
|
Remark string `gorm:"column:remark;type:varchar(255);default:'';comment:备注信息" json:"remark"`
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"SciencesServer/app/common"
|
"SciencesServer/app/common"
|
||||||
"SciencesServer/config"
|
"SciencesServer/config"
|
||||||
"SciencesServer/cron"
|
"SciencesServer/cron"
|
||||||
"SciencesServer/lib"
|
|
||||||
"SciencesServer/router"
|
"SciencesServer/router"
|
||||||
"SciencesServer/rpc/client"
|
"SciencesServer/rpc/client"
|
||||||
"SciencesServer/serve/cache"
|
"SciencesServer/serve/cache"
|
||||||
@ -32,12 +31,12 @@ type Option struct {
|
|||||||
|
|
||||||
func (this *Serve) Run() {
|
func (this *Serve) Run() {
|
||||||
// 载入配置
|
// 载入配置
|
||||||
lib.LoadConfig(this.Option.Config, config.SettingInfo, func(i interface{}) {
|
utils.LoadConfig(this.Option.Config, config.SettingInfo, func(i interface{}) {
|
||||||
obj := i.(*config.Setting)
|
obj := i.(*config.Setting)
|
||||||
obj.Upload.Exts = strings.Split(obj.Upload.Ext, ",")
|
obj.Upload.Exts = strings.Split(obj.Upload.Ext, ",")
|
||||||
logger.NewLogger().Init(&logger.Option{File: obj.Log.File, LeastDay: obj.Log.LeastDay, Level: obj.Log.Level, IsStdout: false}).Load()
|
logger.NewLogger().Init(&logger.Option{File: obj.Log.File, LeastDay: obj.Log.LeastDay, Level: obj.Log.Level, IsStdout: false}).Load()
|
||||||
})
|
})
|
||||||
lib.LoadConfig(this.Option.RpcConfig, config.RPCServerSettingInfo, func(i interface{}) {
|
utils.LoadConfig(this.Option.RpcConfig, config.RPCServerSettingInfo, func(i interface{}) {
|
||||||
obj := i.(*config.RPCServerSetting)
|
obj := i.(*config.RPCServerSetting)
|
||||||
go utils.TryCatch(func() {
|
go utils.TryCatch(func() {
|
||||||
options := make(map[string]*client.ServerOption, 0)
|
options := make(map[string]*client.ServerOption, 0)
|
||||||
@ -56,6 +55,11 @@ func (this *Serve) Run() {
|
|||||||
orm.NewInstance(
|
orm.NewInstance(
|
||||||
orm.WithDebug(config.SettingInfo.Engine.Debug),
|
orm.WithDebug(config.SettingInfo.Engine.Debug),
|
||||||
orm.WithDBMode(config.SettingInfo.Engine.DBMode),
|
orm.WithDBMode(config.SettingInfo.Engine.DBMode),
|
||||||
|
orm.WithTablePrefix(config.SettingInfo.Engine.TablePrefix),
|
||||||
|
orm.WithSingularTable(!config.SettingInfo.Engine.Complex),
|
||||||
|
orm.WithMaxIdleConns(config.SettingInfo.Engine.MaxIdleConns),
|
||||||
|
orm.WithMaxOpenConns(config.SettingInfo.Engine.MaxOpenConns),
|
||||||
|
orm.WithMaxLifetime(config.SettingInfo.Engine.MaxLifetime),
|
||||||
//orm.WithMysqlUser(config.SettingInfo.Engine.Mysql.User),
|
//orm.WithMysqlUser(config.SettingInfo.Engine.Mysql.User),
|
||||||
).Init()
|
).Init()
|
||||||
task.Init()
|
task.Init()
|
||||||
|
@ -23,8 +23,11 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Instance struct {
|
type Instance struct {
|
||||||
debug bool
|
debug bool
|
||||||
dbMode string
|
dbMode string
|
||||||
|
tablePrefix string
|
||||||
|
singularTable bool
|
||||||
|
maxIdleConns, maxOpenConns, maxLifetime int
|
||||||
*logic.Mysql
|
*logic.Mysql
|
||||||
*logic.Sqlite
|
*logic.Sqlite
|
||||||
}
|
}
|
||||||
@ -43,14 +46,46 @@ func WithDBMode(dbMode string) Option {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WithMysqlUser(user string) Option {
|
func WithTablePrefix(tablePrefix string) Option {
|
||||||
|
return func(instance *Instance) {
|
||||||
|
instance.tablePrefix = tablePrefix
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WithSingularTable(singularTable bool) Option {
|
||||||
|
return func(instance *Instance) {
|
||||||
|
instance.singularTable = singularTable
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WithMaxIdleConns(maxIdleConns int) Option {
|
||||||
|
return func(instance *Instance) {
|
||||||
|
instance.maxIdleConns = maxIdleConns
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WithMaxOpenConns(maxOpenConns int) Option {
|
||||||
|
return func(instance *Instance) {
|
||||||
|
instance.maxOpenConns = maxOpenConns
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WithMaxLifetime(maxLifetime int) Option {
|
||||||
|
return func(instance *Instance) {
|
||||||
|
instance.maxLifetime = maxLifetime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WithMysqlOption(user string) Option {
|
||||||
return func(instance *Instance) {
|
return func(instance *Instance) {
|
||||||
instance.Mysql.User = user
|
instance.Mysql.User = user
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WithMysql() {
|
func WithSqliteOption(user string) Option {
|
||||||
|
return func(instance *Instance) {
|
||||||
|
instance.Mysql.User = user
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Instance) Init() {
|
func (this *Instance) Init() {
|
||||||
|
@ -2,8 +2,8 @@ package tools
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"SciencesServer/config"
|
"SciencesServer/config"
|
||||||
"SciencesServer/lib"
|
|
||||||
"SciencesServer/tools/ip"
|
"SciencesServer/tools/ip"
|
||||||
|
"SciencesServer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func initIP() {
|
func initIP() {
|
||||||
@ -11,7 +11,7 @@ func initIP() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func initJSON() {
|
func initJSON() {
|
||||||
lib.LoadConfig("./file/area.json", &config.SettingAreaInfo)
|
utils.LoadConfig("./file/area.json", &config.SettingAreaInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package lib
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
32
utils/load_test.go
Normal file
32
utils/load_test.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ManagePatent struct {
|
||||||
|
Kind string `json:"kind"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
FileUrl string `json:"file_url"`
|
||||||
|
ApplyCode string `json:"apply_code"`
|
||||||
|
ApplyAt string `json:"apply_at"`
|
||||||
|
OpenCode string `json:"open_code"`
|
||||||
|
OpenAt string `json:"open_at"`
|
||||||
|
ApplyName string `json:"apply_name"`
|
||||||
|
ApplyAddress string `json:"apply_address"`
|
||||||
|
Inventor string `json:"inventor"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
PrincipalClaim string `json:"principal_claim"`
|
||||||
|
IpcCode string `json:"ipc_code"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLoadConfig(t *testing.T) {
|
||||||
|
file := "../file/manage_patent.json"
|
||||||
|
|
||||||
|
out := make([]*ManagePatent, 0)
|
||||||
|
|
||||||
|
LoadConfig(file, &out)
|
||||||
|
|
||||||
|
fmt.Println(AnyToJSON(out))
|
||||||
|
}
|
Reference in New Issue
Block a user