refactor: reorganize modules and add Linux build tooling
This commit is contained in:
86
module/ec/market/internal/models/impl.go
Normal file
86
module/ec/market/internal/models/impl.go
Normal file
@@ -0,0 +1,86 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/database/sql"
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
var DBService *gorm.DB
|
||||
|
||||
var migrateTables = []any{
|
||||
&MarketAgency{},
|
||||
&MarketSupply{},
|
||||
}
|
||||
|
||||
func New(driver string, dsn []string, options *types.SqlOptions) (err error) {
|
||||
driver = strings.ToLower(driver)
|
||||
|
||||
switch driver {
|
||||
case "mysql":
|
||||
DBService, err = NewMysql(dsn, options)
|
||||
case "postgres":
|
||||
DBService, err = NewPostgres(dsn, options)
|
||||
default:
|
||||
log.Fatalln("Unsupported database driver:", driver)
|
||||
return
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
return err
|
||||
}
|
||||
|
||||
// auto migrate table.
|
||||
err = DBService.AutoMigrate(migrateTables...)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
return err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func NewMysql(dsn []string, options *types.SqlOptions) (gormDb *gorm.DB, err error) {
|
||||
//set connection default val.
|
||||
options = sql.SetOptions(options)
|
||||
|
||||
gormDb, err = gorm.Open(mysql.Open(dsn[0]), &gorm.Config{
|
||||
SkipDefaultTransaction: true,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if options.Debug {
|
||||
gormDb = gormDb.Debug()
|
||||
}
|
||||
|
||||
// 获取通用数据库对象 sql.DB ,然后使用其提供的功能
|
||||
sqlDB, _ := gormDb.DB()
|
||||
// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量。
|
||||
sqlDB.SetMaxIdleConns(options.MaxIdleConns)
|
||||
// SetMaxOpenConns 设置打开数据库连接的最大数量。
|
||||
sqlDB.SetMaxOpenConns(options.MaxOpenConns)
|
||||
// SetConnMaxLifetime 设置了连接可复用的最大时间。
|
||||
sqlDB.SetConnMaxLifetime(options.ConnMaxLifetime)
|
||||
|
||||
return gormDb, nil
|
||||
}
|
||||
|
||||
func NewPostgres(dsn []string, options *types.SqlOptions) (gormDb *gorm.DB, err error) {
|
||||
//set connection default val.
|
||||
options = sql.SetOptions(options)
|
||||
|
||||
db, err := sql.NewPostgreSql(dsn[0], options)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
db = db.Debug()
|
||||
|
||||
return db, nil
|
||||
}
|
||||
37
module/ec/market/internal/models/market_agency.go
Normal file
37
module/ec/market/internal/models/market_agency.go
Normal file
@@ -0,0 +1,37 @@
|
||||
// Models generated by mesh dev cli,@Author: David Yan(david.yan@qq.com).
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
)
|
||||
|
||||
// 省代公司
|
||||
type MarketAgency struct {
|
||||
types.Std_IICUDS
|
||||
Name string `gorm:"type:varchar(255);not null;"` // 名称
|
||||
Avatar string `gorm:"column:avatar;type:varchar(255);default:'';" json:"avatar"` // 头像
|
||||
Account string `gorm:"column:account;type:varchar(255);default:'';" json:"account"` // 帐号
|
||||
Phone string `gorm:"column:phone;type:varchar(20);not null;" json:"phone"` // 手机号
|
||||
Password string `gorm:"column:password;type:varchar(255);" json:"password"` // 密码
|
||||
Salt string `gorm:"type:varchar(255);default:'';"` // 密码盐值
|
||||
Email string `gorm:"column:email;type:varchar(255);default:'';" json:"email"` // 邮箱
|
||||
Country string `gorm:"column:country;type:varchar(255);default:'';" json:"country"` // 国家
|
||||
Area string `gorm:"column:area;type:varchar(255);default:'';" json:"area"` // 地区
|
||||
OrgName string `gorm:"column:org_name;type:varchar(255);default:'';" json:"org_name"` // 机构名称
|
||||
OrgPhoto string `gorm:"column:org_photo;type:varchar(255);default:'';" json:"org_photo"` // 机构照片
|
||||
IDName string `gorm:"column:id_name;type:varchar(255);default:'';" json:"id_name"` // 证件姓名
|
||||
IDBefore string `gorm:"column:id_before;type:varchar(255);default:'';" json:"id_before"` // 证件照片
|
||||
IDAfter string `gorm:"column:id_after;type:varchar(255);default:'';" json:"id_after"` // 证件照片
|
||||
Remark string `gorm:"type:varchar(255);default:'';"` // 备注
|
||||
CommissionRate int32 `gorm:"column:commission_rate;default:0;" json:"commission_rate"` // 佣金比例
|
||||
AgencyType int32 `gorm:"column:agency_type;default:0;" json:"agency_type"` // 服务 状态:1:代理商 2:安装商
|
||||
Approve int8 `gorm:"column:approve;default:0;" json:"approve"` // 状态:-2,认证未通过,0为未认证,2为认证成功
|
||||
LastLoginAt time.Time
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (table *MarketAgency) TableName() string {
|
||||
return "market_agency" //对应数据库表名
|
||||
}
|
||||
32
module/ec/market/internal/models/market_supply.go
Normal file
32
module/ec/market/internal/models/market_supply.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
)
|
||||
|
||||
// 供应商
|
||||
type MarketSupply struct {
|
||||
types.Std_IICUDS
|
||||
Name string `gorm:"type:varchar(255);not null;"` // 名称
|
||||
Avatar string `gorm:"column:avatar;type:varchar(255);default:'';" json:"avatar"` // 头像
|
||||
Account string `gorm:"column:account;type:varchar(255);default:'';" json:"account"` // 帐号
|
||||
Phone string `gorm:"column:phone;type:varchar(20);not null;" json:"phone"` // 手机号
|
||||
Password string `gorm:"column:password;type:varchar(255);not null;" json:"password"` // 密码
|
||||
Salt string `gorm:"type:varchar(255);default:'';"` // 密码盐值
|
||||
OrgName string `gorm:"column:org_name;type:varchar(255);default:'';" json:"org_name"` // 机构名称
|
||||
OrgPhoto string `gorm:"column:org_photo;type:varchar(255);default:'';" json:"org_photo"` // 机构照片
|
||||
IDName string `gorm:"column:id_name;type:varchar(255);default:'';" json:"id_name"` // 证件姓名
|
||||
IDBefore string `gorm:"column:id_before;type:varchar(255);default:'';" json:"id_before"` // 证件照片
|
||||
IDAfter string `gorm:"column:id_after;type:varchar(255);default:'';" json:"id_after"` // 证件照片
|
||||
Remark string `gorm:"type:varchar(255);default:'';"` // 备注
|
||||
CommissionRate int32 `gorm:"column:commission_rate;default:0;" json:"commission_rate"` // 佣金比例
|
||||
Approve int8 `gorm:"column:approve;default:0;" json:"approve"` // 状态:-2,认证未通过,0为未认证,1为审核中,2为认证成功
|
||||
LastLoginAt time.Time
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (table *MarketSupply) TableName() string {
|
||||
return "market_supply" //对应数据库表名
|
||||
}
|
||||
13
module/ec/market/internal/models/query.go
Normal file
13
module/ec/market/internal/models/query.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package models
|
||||
|
||||
const (
|
||||
// NormalStatus .
|
||||
NormalStatus = 1
|
||||
// DisabledStatus .
|
||||
DisabledStatus = -1
|
||||
)
|
||||
|
||||
type Std_Market struct {
|
||||
Market_ID uint `gorm:"primarykey;" json:"market_id"` // 代理商ID
|
||||
Market_Identity string `gorm:"column:market_identity;type:varchar(36);index;" json:"market_identity"` // 代理商唯一标识,24位NanoID,36位为ULID
|
||||
}
|
||||
Reference in New Issue
Block a user