feat:完善入驻信息管理

This commit is contained in:
henry
2021-12-06 14:55:41 +08:00
parent 911fcf9b1c
commit 162537e52d
18 changed files with 406 additions and 90 deletions

View File

@ -1,32 +1,144 @@
package model
import (
GormEngine "github.com/belief428/gorm-engine"
"github.com/belief428/gorm-engine/engine"
"github.com/belief428/gorm-engine/logic"
"SciencesServer/serve/orm"
"SciencesServer/serve/orm/logic"
"SciencesServer/utils"
"gorm.io/gorm"
"strings"
"testing"
"time"
)
var (
_db *gorm.DB
)
// PPatent 专利信息数据模型
type PPatent struct {
Model
Kind string `gorm:"column:kind;type:tinyint(1);default:0;comment:专利类型" json:"kind"`
Title string `gorm:"column:title;type:varchar(255);default:'';comment:名称标题" json:"title"`
FileUrl string `gorm:"column:file_url;type:varchar(255);default:'';comment:文件地址" json:"file_url"`
ApplyCode string `gorm:"column:apply_code;type:varchar(50);default:'';comment:申请号" json:"apply_code"`
ApplyAt string `gorm:"column:apply_at;type:varchar(30);default:'';comment:申请日" json:"apply_at"`
OpenCode string `gorm:"column:open_code;type:varchar(50);default:'';comment:公开(公告)号" json:"open_code"`
OpenAt string `gorm:"column:open_at;type:varchar(30);default:'';comment:公开(公告)日" json:"open_at"`
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"`
Inventor string `gorm:"column:inventor;type:varchar(100);default:'';comment:发明人" json:"inventor"`
Description string `gorm:"column:description;type:text;comment:摘要" json:"description"`
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"`
Shelf
Status SysParentStatus `gorm:"column:status;type:tinyint(1);default:1;comment:专利状态(1授权2实审3公开)" json:"-"`
ModelDeleted
ModelAt
}
func mysql() logic.IEngine {
return &engine.MConfig{
User: "appuser", Password: "ABCabc01!",
Host: "192.168.99.188", Port: 3306,
DBName: "iot", Parameters: "charset=utf8mb4,utf8&parseTime=True&loc=Asia%2FShanghai",
func (m *PPatent) TableName() string {
return "manage_patent"
}
func mysql() *gorm.DB {
instance := orm.NewInstance(
orm.WithDebug(true),
orm.WithDBMode("mysql"),
orm.WithTablePrefix(""),
orm.WithSingularTable(false),
orm.WithMaxIdleConns(3600),
orm.WithMaxOpenConns(2000),
orm.WithMaxLifetime(1000),
orm.WithMysqlOption(&logic.Mysql{
User: "appuser", Password: "ABCabc01!", Host: "192.168.0.188", Port: 3306,
DBName: "sciences", Parameters: "charset=utf8mb4,utf8&parseTime=True&loc=Local",
}),
).Init()
return instance.Engine
}
func sqlite() *gorm.DB {
instance := orm.NewInstance(
orm.WithDebug(true),
orm.WithDBMode("sqlite"),
orm.WithTablePrefix(""),
orm.WithSingularTable(false),
orm.WithMaxIdleConns(3600),
orm.WithMaxOpenConns(2000),
orm.WithMaxLifetime(1000),
orm.WithSqliteOption(&logic.Sqlite{Path: "../../../lib",
Name: "data.db"}),
).Init()
return instance.Engine
}
func filter(src string) string {
src = utils.ReplaceAllCompile(src, "\t", "")
src = utils.ReplaceAllCompile(src, "\n", "")
src = strings.TrimLeft(src, " ")
src = strings.TrimRight(src, " ")
return src
}
func TestRecoveryPatent(t *testing.T) {
src := make([]*PPatent, 0)
sqlite := sqlite()
var err error
page := 1
mysql := mysql()
mSysPatent := new(SysPatent)
now := time.Now()
limit := 100
for {
if err = sqlite.Offset((page - 1) * limit).Limit(limit).Find(&src).Error; err != nil {
t.Error("Sqlite" + err.Error())
return
}
if len(src) <= 0 {
t.Log("执行结束")
return
}
t.Log(len(src))
out := make([]*SysPatent, 0)
for _, v := range src {
kind := SysParentKindForInvent
if v.Kind == "实用新型" {
kind = SysParentKindForNewPractical
} else if v.Kind == "外观设计" {
kind = SysParentKindForDesign
}
data := &SysPatent{
Kind: kind,
Title: v.Title,
FileUrl: v.FileUrl,
ApplyCode: v.ApplyCode,
ApplyAt: v.ApplyAt,
OpenCode: v.OpenCode,
OpenAt: v.OpenAt,
ApplyName: filter(v.ApplyName),
ApplyAddress: filter(v.ApplyAddress),
Inventor: filter(v.Inventor),
Description: filter(v.Description),
PrincipalClaim: filter(v.PrincipalClaim),
IPCCode: v.IPCCode,
Shelf: Shelf{ShelfStatus: 1},
ModelAt: ModelAt{
CreatedAt: now, UpdatedAt: now,
},
}
out = append(out, data)
}
src = make([]*PPatent, 0)
page++
if err = mysql.Table(mSysPatent.TableName()).Create(out).Error; err != nil {
t.Error("Mysql" + err.Error())
return
}
}
}
func _init() {
_db = GormEngine.NewEngine()(1, &GormEngine.EngineConfig{
Debug: true,
TablePrefix: "",
Complex: false,
MaxIdleConns: 50,
MaxOpenConns: 150,
MaxLifetime: 3600,
}).Start(mysql())
}