修复一些序列化的细节

This commit is contained in:
eson 2023-06-15 11:05:33 +08:00
parent c55d837670
commit f3be74e78c
27 changed files with 702 additions and 129 deletions

118
generator/basic.go Normal file
View File

@ -0,0 +1,118 @@
package main
const (
_ int = iota
LongVarBinary
LongVarChar
GeometryCollection
GeomCollection
LineString
MultiLineString
MultiPoint
MultiPolygon
Point
Polygon
Json
Geometry
Enum
Set
Bit
Time
Timestamp
DateTime
Binary
VarBinary
Blob
Year
Decimal
Dec
Fixed
Numeric
Float
Float4
Float8
Double
Real
TinyInt
SmallInt
MediumInt
Int
Integer
BigInt
MiddleInt
Int1
Int2
Int3
Int4
Int8
Date
TinyBlob
MediumBlob
LongBlob
Bool
Boolean
Serial
NVarChar
NChar
Char
Character
VarChar
TinyText
Text
MediumText
LongText
)
var SQLTypeToGoTypeMap = map[int]string{
LongVarBinary: "[]byte",
Binary: "[]byte",
VarBinary: "[]byte",
Blob: "[]byte",
TinyBlob: "[]byte",
MediumBlob: "[]byte",
LongBlob: "[]byte",
LongVarChar: "*string",
NVarChar: "*string",
NChar: "*string",
Char: "*string",
Character: "*string",
VarChar: "*string",
TinyText: "*string",
Text: "*string",
MediumText: "*string",
LongText: "*string",
Time: "*time.Time",
Timestamp: "*time.Time",
DateTime: "*time.Time",
Date: "*time.Time",
Year: "*int64",
TinyInt: "*int64",
SmallInt: "*int64",
MediumInt: "*int64",
Int: "*int64",
Integer: "*int64",
BigInt: "*int64",
MiddleInt: "*int64",
Int1: "*int64",
Int2: "*int64",
Int3: "*int64",
Int4: "*int64",
Int8: "*int64",
Serial: "*int64",
Decimal: "*float64",
Dec: "*float64",
Fixed: "*float64",
Numeric: "*float64",
Float: "*float64",
Float4: "*float64",
Float8: "*float64",
Double: "*float64",
Real: "*float64",
Bool: "*bool",
Boolean: "*bool",
}

View File

@ -27,158 +27,55 @@ func toPascalCase(s string) string {
return strings.Join(words, "")
}
const (
_ int = iota
LongVarBinary
LongVarChar
GeometryCollection
GeomCollection
LineString
MultiLineString
MultiPoint
MultiPolygon
Point
Polygon
Json
Geometry
Enum
Set
Bit
Time
Timestamp
DateTime
Binary
VarBinary
Blob
Year
Decimal
Dec
Fixed
Numeric
Float
Float4
Float8
Double
Real
TinyInt
SmallInt
MediumInt
Int
Integer
BigInt
MiddleInt
Int1
Int2
Int3
Int4
Int8
Date
TinyBlob
MediumBlob
LongBlob
Bool
Boolean
Serial
NVarChar
NChar
Char
Character
VarChar
TinyText
Text
MediumText
LongText
)
var SQLTypeToGoTypeMap = map[int]string{
LongVarBinary: "[]byte",
Binary: "[]byte",
VarBinary: "[]byte",
Blob: "[]byte",
TinyBlob: "[]byte",
MediumBlob: "[]byte",
LongBlob: "[]byte",
LongVarChar: "*string",
NVarChar: "*string",
NChar: "*string",
Char: "*string",
Character: "*string",
VarChar: "*string",
TinyText: "*string",
Text: "*string",
MediumText: "*string",
LongText: "*string",
Time: "*time.Time",
Timestamp: "*time.Time",
DateTime: "*time.Time",
Date: "*time.Time",
Year: "*int64",
TinyInt: "*int64",
SmallInt: "*int64",
MediumInt: "*int64",
Int: "*int64",
Integer: "*int64",
BigInt: "*int64",
MiddleInt: "*int64",
Int1: "*int64",
Int2: "*int64",
Int3: "*int64",
Int4: "*int64",
Int8: "*int64",
Serial: "*int64",
Decimal: "*float64",
Dec: "*float64",
Fixed: "*float64",
Numeric: "*float64",
Float: "*float64",
Float4: "*float64",
Float8: "*float64",
Double: "*float64",
Real: "*float64",
Bool: "*bool",
Boolean: "*bool",
}
func main() {
var name string
flag.StringVar(&name, "name", "", "输入需要序列化的ddl文件名, 不需要后缀.ddl")
flag.Parse()
p, err := filepath.Abs(fmt.Sprintf("%s/%s.sql", targerDir, name))
if name != "" {
name = fmt.Sprintf("%s/%s.sql", targerDir, name)
GenFromPath(name)
} else {
matches, err := filepath.Glob(fmt.Sprintf("%s/*.sql", targerDir))
if err != nil {
panic(err)
}
for _, pth := range matches {
GenFromPath(pth)
}
}
}
func GenFromPath(pth string) {
p, err := filepath.Abs(pth)
if err != nil {
panic(err)
}
ddlf, err := os.Open(p)
if err != nil {
panic(err)
}
ddlfilestr, err := ioutil.ReadAll(ddlf)
ddlfilestr, err := ioutil.ReadFile(pth)
if err != nil {
panic(err)
}
// PRIMARY KEY (`guest_id`) USING BTREE
re := regexp.MustCompile("PRIMARY\\s+KEY\\s+\\(\\s*`([^`]+)`\\s*\\)|`([^`]+)` [^\n]+PRIMARY\\s+KEY\\s+")
matches := re.FindStringSubmatch(string(ddlfilestr))
PrimaryStr := ""
if len(matches) > 0 {
PrimaryStr = matches[1]
}
// 匹配到主键定义
var importstr = "import (\"gorm.io/gorm\"\n"
// 匹配到主键定义
parser.NewParser()
result, err := parser.NewParser().From(p)
if err != nil {
panic(err)
}
fcontent := "package model\nimport \"gorm.io/gorm\"\n"
fcontent := "package model\n"
for _, table := range result {
structstr := "type %s struct {%s\n}\n"
@ -189,6 +86,9 @@ func main() {
for _, col := range table.Columns {
fieldName := toPascalCase(col.Name)
typeName := SQLTypeToGoTypeMap[col.DataType.Type()]
if typeName == "*time.Time" {
importstr += "\"time\"\n"
}
tagstr := "`gorm:"
if col.Name == PrimaryStr {
tagstr += "\"primary_key\""
@ -204,6 +104,7 @@ func main() {
}
fcontent += importstr + ")\n"
fcontent += fmt.Sprintf(structstr, tableName, fieldstr)
modelstr := fmt.Sprintf(`type %sModel struct {db *gorm.DB}`, tableName)
fcontent += modelstr

View File

@ -1,7 +1,6 @@
package main
import (
"os"
"testing"
)
@ -9,7 +8,7 @@ func TestMain(t *testing.T) {
// args := []string{"-name", "fs_guest"}
targerDir = "../" + targerDir
genDir = "../" + genDir
os.Args = []string{"cmd", "-name=fs_guest"}
// os.Args = []string{"cmd", "-name=fs_guest"}
main()
}

View File

@ -0,0 +1,25 @@
package model
import (
"gorm.io/gorm"
)
type FsAddress struct {
Id int64 `gorm:"primary_key" json:"id"` //
UserId *int64 `gorm:"" json:"user_id"` // 用户ID
Name *string `gorm:"" json:"name"` // 地址名称
FirstName *string `gorm:"" json:"first_name"` // FirstName
LastName *string `gorm:"" json:"last_name"` // LastName
Mobile *string `gorm:"" json:"mobile"` // 手机号码
Street *string `gorm:"" json:"street"` // 街道
Suite *string `gorm:"" json:"suite"` // 房号
City *string `gorm:"" json:"city"` // 城市
State *string `gorm:"" json:"state"` // 州名
Country *string `gorm:"" json:"country"` // 国家
ZipCode *string `gorm:"" json:"zip_code"` // 邮编
Status *int64 `gorm:"" json:"status"` // 1正常 0异常
IsDefault *int64 `gorm:"" json:"is_default"` // 1默认地址0非默认地址
}
type FsAddressModel struct{ db *gorm.DB }
func NewFsAddressModel(db *gorm.DB) *FsAddressModel { return &FsAddressModel{db} }

View File

@ -0,0 +1,19 @@
package model
import (
"gorm.io/gorm"
)
type FsCanteenProduct struct {
Id int64 `gorm:"primary_key" json:"id"` // ID
CanteenType *int64 `gorm:"" json:"canteen_type"` // 餐厅类别id
ProductId *int64 `gorm:"" json:"product_id"` // 产品id
SizeId *int64 `gorm:"" json:"size_id"` // 尺寸id
Sort *int64 `gorm:"" json:"sort"` // 排序
Status *int64 `gorm:"" json:"status"` // 状态位 1启用0停用
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Sid *string `gorm:"" json:"sid"` // 前端带入的id
}
type FsCanteenProductModel struct{ db *gorm.DB }
func NewFsCanteenProductModel(db *gorm.DB) *FsCanteenProductModel { return &FsCanteenProductModel{db} }

View File

@ -0,0 +1,16 @@
package model
import (
"gorm.io/gorm"
)
type FsCanteenType struct {
Id int64 `gorm:"primary_key" json:"id"` // ID
Name *string `gorm:"" json:"name"` // 餐厅名字
Sort *int64 `gorm:"" json:"sort"` // 排序
Status *int64 `gorm:"" json:"status"` // 状态位 1启用0停用
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
}
type FsCanteenTypeModel struct{ db *gorm.DB }
func NewFsCanteenTypeModel(db *gorm.DB) *FsCanteenTypeModel { return &FsCanteenTypeModel{db} }

View File

@ -0,0 +1,29 @@
package model
import (
"time"
"gorm.io/gorm"
)
type FsCart struct {
Id int64 `gorm:"primary_key" json:"id"` // id
UserId *int64 `gorm:"" json:"user_id"` // 用户ID
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
TemplateId *int64 `gorm:"" json:"template_id"` // 模板ID
PriceId *int64 `gorm:"" json:"price_id"` // 价格ID
MaterialId *int64 `gorm:"" json:"material_id"` // 材质ID
SizeId *int64 `gorm:"" json:"size_id"` // 尺寸ID
BuyNum *int64 `gorm:"" json:"buy_num"` // 购买数量
Cover *string `gorm:"" json:"cover"` // 截图
DesignId *int64 `gorm:"" json:"design_id"` // 设计ID
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Status *int64 `gorm:"" json:"status"` // 状态位
OptionalId *int64 `gorm:"" json:"optional_id"` // 选项ID
IsCheck *int64 `gorm:"" json:"is_check"` // 是否选中状态0未选中1选中
TsTime *time.Time `gorm:"" json:"ts_time"` //
IsEmail *int64 `gorm:"" json:"is_email"` // 是否发送邮件
}
type FsCartModel struct{ db *gorm.DB }
func NewFsCartModel(db *gorm.DB) *FsCartModel { return &FsCartModel{db} }

View File

@ -0,0 +1,19 @@
package model
import (
"gorm.io/gorm"
)
type FsFaq struct {
Id int64 `gorm:"primary_key" json:"id"` //
TagId *int64 `gorm:"" json:"tag_id"` // 分类ID
TagName *string `gorm:"" json:"tag_name"` // 分类名称
Title *string `gorm:"" json:"title"` // 标题
Content *string `gorm:"" json:"content"` // 内容
Status *int64 `gorm:"" json:"status"` // 状态(0:禁用1:启用)
Sort *int64 `gorm:"" json:"sort"` // 排序
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
}
type FsFaqModel struct{ db *gorm.DB }
func NewFsFaqModel(db *gorm.DB) *FsFaqModel { return &FsFaqModel{db} }

View File

@ -0,0 +1,16 @@
package model
import (
"gorm.io/gorm"
)
type FsFont struct {
Id int64 `gorm:"primary_key" json:"id"` // id
Title *string `gorm:"" json:"title"` // 字体名字
LinuxFontname *string `gorm:"" json:"linux_fontname"` // linux对应字体名
FilePath *string `gorm:"" json:"file_path"` // 字体文件路径
Sort *int64 `gorm:"" json:"sort"` // 排序
}
type FsFontModel struct{ db *gorm.DB }
func NewFsFontModel(db *gorm.DB) *FsFontModel { return &FsFontModel{db} }

View File

@ -1,6 +1,8 @@
package model
import "gorm.io/gorm"
import (
"gorm.io/gorm"
)
type FsGuest struct {
GuestId int64 `gorm:"primary_key" json:"guest_id"` // 游客ID

View File

@ -0,0 +1,18 @@
package model
import (
"gorm.io/gorm"
)
type FsMapLibrary struct {
Id int64 `gorm:"primary_key" json:"id"` // Id
Title *string `gorm:"" json:"title"` // 名称
Info *string `gorm:"" json:"info"` // 贴图数据
Sort *int64 `gorm:"" json:"sort"` // 排序
Status *int64 `gorm:"" json:"status"` // 状态 1启用
Ctime *int64 `gorm:"" json:"ctime"` // 创建时间
TagId *int64 `gorm:"" json:"tag_id"` // 模板标签id
}
type FsMapLibraryModel struct{ db *gorm.DB }
func NewFsMapLibraryModel(db *gorm.DB) *FsMapLibraryModel { return &FsMapLibraryModel{db} }

View File

@ -0,0 +1,35 @@
package model
import (
"gorm.io/gorm"
)
type FsOrderDetail struct {
Id int64 `gorm:"primary_key" json:"id"` //
Sn *string `gorm:"" json:"sn"` // 唯一编码
OrderId *int64 `gorm:"" json:"order_id"` // 订单ID
UserId *int64 `gorm:"" json:"user_id"` // 用户ID
FactoryId *int64 `gorm:"" json:"factory_id"` // 工厂ID
OrderDetailTemplateId *int64 `gorm:"" json:"order_detail_template_id"` // 详情templateID
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
BuyNum *int64 `gorm:"" json:"buy_num"` // 购买数量
PushNum *int64 `gorm:"" json:"push_num"` // 已发数量
Amount *int64 `gorm:"" json:"amount"` // 单价
Cover *string `gorm:"" json:"cover"` // 截图
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Status *int64 `gorm:"" json:"status"` // 状态位 是否推送到厂家 是否生产完成 是否发货完成
OptionalId *int64 `gorm:"" json:"optional_id"` // 选项ID
OptionalTitle *string `gorm:"" json:"optional_title"` // 选项名称
OptionPrice *int64 `gorm:"" json:"option_price"` // 配件价格
IsTofactory *int64 `gorm:"" json:"is_tofactory"` // 是否推送到工厂
IsProduct *int64 `gorm:"" json:"is_product"` // 是否生产中
IsProductCompletion *int64 `gorm:"" json:"is_product_completion"` // 是否生产完成
IsCloud *int64 `gorm:"" json:"is_cloud"` // 是否是云仓订单
IsTocloud *int64 `gorm:"" json:"is_tocloud"` // 是否已发云仓(云仓单要发货到云仓,直接发到用户的不需要发到云仓)
IsDeliver *int64 `gorm:"" json:"is_deliver"` // 是否已发货
IsEnd *int64 `gorm:"" json:"is_end"` // 是否完成订单(签收)
CartId *int64 `gorm:"" json:"cart_id"` // 购物车编号
}
type FsOrderDetailModel struct{ db *gorm.DB }
func NewFsOrderDetailModel(db *gorm.DB) *FsOrderDetailModel { return &FsOrderDetailModel{db} }

View File

@ -0,0 +1,24 @@
package model
import (
"gorm.io/gorm"
)
type FsOrderDetailTemplate struct {
Id int64 `gorm:"primary_key" json:"id"` //
Sn *string `gorm:"" json:"sn"` // 唯一编码
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
ModelId *int64 `gorm:"" json:"model_id"` // 模型ID
TemplateId *int64 `gorm:"" json:"template_id"` // 模板ID
MaterialId *int64 `gorm:"" json:"material_id"` // 材质id
SizeId *int64 `gorm:"" json:"size_id"` // 尺寸id
EachBoxNum *int64 `gorm:"" json:"each_box_num"` // 每一箱的个数
EachBoxWeight *float64 `gorm:"" json:"each_box_weight"` // 每一箱的重量 单位KG
DesignId *int64 `gorm:"" json:"design_id"` // 设计ID
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
}
type FsOrderDetailTemplateModel struct{ db *gorm.DB }
func NewFsOrderDetailTemplateModel(db *gorm.DB) *FsOrderDetailTemplateModel {
return &FsOrderDetailTemplateModel{db}
}

View File

@ -0,0 +1,48 @@
package model
import (
"gorm.io/gorm"
"time"
)
type FsOrder struct {
Id int64 `gorm:"primary_key" json:"id"` //
Sn *string `gorm:"" json:"sn"` // 订单编号 FS211224OL2XDKNP
UserId *int64 `gorm:"" json:"user_id"` // 用户ID
SellerUserId *int64 `gorm:"" json:"seller_user_id"` // 销售员ID 0:自主下单
TotalAmount *int64 `gorm:"" json:"total_amount"` // 总价
PayedAmount *int64 `gorm:"" json:"payed_amount"` // 已支付金额
PayMethod *int64 `gorm:"" json:"pay_method"` // 支付方式 1paypal 2strip
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Utime *int64 `gorm:"" json:"utime"` // 更新时间
Ptime *int64 `gorm:"" json:"ptime"` // 最后一次 支付时间(可能多次支付)
AddressId *int64 `gorm:"" json:"address_id"` // 地址ID或者云仓ID
DeliveryMethod *int64 `gorm:"" json:"delivery_method"` // 配送方式 1:直接发货到收获地址 2云仓
CustomerMark *string `gorm:"" json:"customer_mark"` // 客户备注
Mark *string `gorm:"" json:"mark"` // 后台订单备注
AddressInfo *string `gorm:"" json:"address_info"` // 详细地址信息JSON
IsSup *int64 `gorm:"" json:"is_sup"` // 0不是补货 1是补货
Status *int64 `gorm:"" json:"status"` // 状态位0未支付1部分支付2支付完成3部分生产4部分生产完成5全部生产6全部生产完成7部分发货8发货完成9完成订单10取消订单11:退款中12退款完成13:订单已删除14:订单已关闭)
IsPartPay *int64 `gorm:"" json:"is_part_pay"` // 是否部分支付01
IsPayCompleted *int64 `gorm:"" json:"is_pay_completed"` // 是否支付完成01
IsPartProduct *int64 `gorm:"" json:"is_part_product"` // 是否部分生产01
IsPartProductCompleted *int64 `gorm:"" json:"is_part_product_completed"` // 是否部分生产完成01
IsAllProduct *int64 `gorm:"" json:"is_all_product"` // 是否全部生产01
IsAllProductCompleted *int64 `gorm:"" json:"is_all_product_completed"` // 是否全部生产完成01
IsPartDelivery *int64 `gorm:"" json:"is_part_delivery"` // 是否部分发货01
IsDeliveryCompleted *int64 `gorm:"" json:"is_delivery_completed"` // 是否发货完成01
IsComplated *int64 `gorm:"" json:"is_complated"` // 是否完成订单01
IsCancel *int64 `gorm:"" json:"is_cancel"` // 是否取消订单01
IsRefunding *int64 `gorm:"" json:"is_refunding"` // 是否退款中01
IsRefunded *int64 `gorm:"" json:"is_refunded"` // 是否退款完成01
IsDeleted *int64 `gorm:"" json:"is_deleted"` // 是否删除01
RefundReasonId *int64 `gorm:"" json:"refund_reason_id"` // 取消订单原因ID
RefundReason *string `gorm:"" json:"refund_reason"` // 取消订单原因
TsTime *time.Time `gorm:"" json:"ts_time"` //
IsSure *int64 `gorm:"" json:"is_sure"` // 是否确认订单 1确认0未确认
DeliverSn *string `gorm:"" json:"deliver_sn"` // 发货单号
EmailTime *int64 `gorm:"" json:"email_time"` // 邮件发送时间
}
type FsOrderModel struct{ db *gorm.DB }
func NewFsOrderModel(db *gorm.DB) *FsOrderModel { return &FsOrderModel{db} }

View File

@ -0,0 +1,28 @@
package model
import (
"gorm.io/gorm"
"time"
)
type FsProductDesign struct {
Id int64 `gorm:"primary_key" json:"id"` //
Sn *string `gorm:"" json:"sn"` // 唯一标识
UserId *int64 `gorm:"" json:"user_id"` // 用户ID
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
TemplateId *int64 `gorm:"" json:"template_id"` // 模型ID
MaterialId *int64 `gorm:"" json:"material_id"` // 材质ID
SizeId *int64 `gorm:"" json:"size_id"` // 尺寸ID
OptionalId *int64 `gorm:"" json:"optional_id"` // 选项ID
Cover *string `gorm:"" json:"cover"` // 封面图
Info *string `gorm:"" json:"info"` // 保留的设计信息
Utime *time.Time `gorm:"" json:"utime"` // 更新时间
Status *int64 `gorm:"" json:"status"` // 状态
IsDel *int64 `gorm:"" json:"is_del"` // 是否删除 0未删除 1删除
IsPay *int64 `gorm:"" json:"is_pay"` // 是否已有支付 0 未 1 有
LogoColor *string `gorm:"" json:"logo_color"` // logo图片备选项
PageGuid *string `gorm:"" json:"page_guid"` // 页面识别id
}
type FsProductDesignModel struct{ db *gorm.DB }
func NewFsProductDesignModel(db *gorm.DB) *FsProductDesignModel { return &FsProductDesignModel{db} }

View File

@ -0,0 +1,40 @@
package model
import (
"gorm.io/gorm"
)
type FsProduct struct {
Id int64 `gorm:"primary_key" json:"id"` //
Sn *string `gorm:"" json:"sn"` // 商品编号 P98f087j
Type *int64 `gorm:"" json:"type"` // 分类ID
Title *string `gorm:"" json:"title"` // 名称
TitleCn *string `gorm:"" json:"title_cn"` // 中文名称
Cover *string `gorm:"" json:"cover"` // 封面图
Imgs *string `gorm:"" json:"imgs"` // 一个或多个介绍图或视频
Keywords *string `gorm:"" json:"keywords"` // 关键字
Intro *string `gorm:"" json:"intro"` // 简要描述
Sort *int64 `gorm:"" json:"sort"` // 排序
SelledNum *int64 `gorm:"" json:"selled_num"` // 已卖数量
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
View *int64 `gorm:"" json:"view"` // 浏览量
SizeIds *string `gorm:"" json:"size_ids"` // 尺寸 1,2,3,4
MaterialIds *string `gorm:"" json:"material_ids"` // 材质 1,2,3
TagIds *string `gorm:"" json:"tag_ids"` // 标签 逗号间隔
Status *int64 `gorm:"" json:"status"` // 状态位 弃用
ProduceDays *int64 `gorm:"" json:"produce_days"` // 生产天数
DeliveryDays *int64 `gorm:"" json:"delivery_days"` // 运送天数
CoverImg *string `gorm:"" json:"cover_img"` // 背景图
IsShelf *int64 `gorm:"" json:"is_shelf"` // 是否上架
IsRecommend *int64 `gorm:"" json:"is_recommend"` // 是否推荐
IsHot *int64 `gorm:"" json:"is_hot"` // 是否热销
IsProtection *int64 `gorm:"" json:"is_protection"` // 是否环保
IsMicrowave *int64 `gorm:"" json:"is_microwave"` // 是否可微波炉
IsDel *int64 `gorm:"" json:"is_del"` // 是否删除
RecommendProduct *string `gorm:"" json:"recommend_product"` // 推荐产品id例如: 1,3,4,5
RecommendProductSort *string `gorm:"" json:"recommend_product_sort"` // 推荐排序例如:1324
SceneIds *string `gorm:"" json:"scene_ids"` // 关联的场景id
}
type FsProductModel struct{ db *gorm.DB }
func NewFsProductModel(db *gorm.DB) *FsProductModel { return &FsProductModel{db} }

View File

@ -0,0 +1,29 @@
package model
import (
"gorm.io/gorm"
)
type FsProductModel3d struct {
Id int64 `gorm:"primary_key" json:"id"` //
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
Tag *int64 `gorm:"" json:"tag"` // 类别1模型2配件3场景
Title *string `gorm:"" json:"title"` // 标题
Name *string `gorm:"" json:"name"` // 详情页展示名称
ModelInfo *string `gorm:"" json:"model_info"` // 模型详情
MaterialId *int64 `gorm:"" json:"material_id"` // 材质ID
SizeId *int64 `gorm:"" json:"size_id"` // 尺寸ID
Sort *int64 `gorm:"" json:"sort"` // 排序
Light *int64 `gorm:"" json:"light"` // 灯光组
LightList *string `gorm:"" json:"light_list"` // 灯光备选项
PartId *int64 `gorm:"" json:"part_id"` // 配件选项id配件就是模型的id
PartList *string `gorm:"" json:"part_list"` // 配件备选项
Status *int64 `gorm:"" json:"status"` // 状态位 显示 删除
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
OptionTemplate *int64 `gorm:"" json:"option_template"` // 配件绑定的公共模板
Price *int64 `gorm:"" json:"price"` // 仅配件用,配件的价格, 单位:美分
Sku *string `gorm:"" json:"sku"` // sku
}
type FsProductModel3dModel struct{ db *gorm.DB }
func NewFsProductModel3dModel(db *gorm.DB) *FsProductModel3dModel { return &FsProductModel3dModel{db} }

View File

@ -0,0 +1,18 @@
package model
import (
"gorm.io/gorm"
)
type FsProductModel3dLight struct {
Id int64 `gorm:"primary_key" json:"id"` //
Name *string `gorm:"" json:"name"` // 灯光名称
Info *string `gorm:"" json:"info"` // 灯光数据json格式
Status *int64 `gorm:"" json:"status"` // 状态值1显示0删除
Ctime *int64 `gorm:"" json:"ctime"` // 创建时间
}
type FsProductModel3dLightModel struct{ db *gorm.DB }
func NewFsProductModel3dLightModel(db *gorm.DB) *FsProductModel3dLightModel {
return &FsProductModel3dLightModel{db}
}

View File

@ -0,0 +1,24 @@
package model
import (
"gorm.io/gorm"
)
type FsProductPrice struct {
Id int64 `gorm:"primary_key" json:"id"` //
Sn *string `gorm:"" json:"sn"` // 唯一编码
Title *string `gorm:"" json:"title"` // 标题描述
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
MaterialId *int64 `gorm:"" json:"material_id"` // 材质ID
SizeId *int64 `gorm:"" json:"size_id"` // 尺寸ID
EachBoxNum *int64 `gorm:"" json:"each_box_num"` // 每一箱的个数
EachBoxWeight *float64 `gorm:"" json:"each_box_weight"` // 每一箱的重量 单位KG
MinBuyNum *int64 `gorm:"" json:"min_buy_num"` // 最少购买量
StepNum *string `gorm:"" json:"step_num"` // 数量阶梯 eg:10,20,30
StepPrice *string `gorm:"" json:"step_price"` // 价格阶梯 eg:100,50,25
Status *int64 `gorm:"" json:"status"` // 是否可用
IsDefault *int64 `gorm:"" json:"is_default"` // 是否默认
}
type FsProductPriceModel struct{ db *gorm.DB }
func NewFsProductPriceModel(db *gorm.DB) *FsProductPriceModel { return &FsProductPriceModel{db} }

View File

@ -0,0 +1,21 @@
package model
import (
"gorm.io/gorm"
)
type FsProductSize struct {
Id int64 `gorm:"primary_key" json:"id"` //
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
Title *string `gorm:"" json:"title"` // 标题 10*10*20
Cover *string `gorm:"" json:"cover"` // 封面图
CoverImg *string `gorm:"" json:"cover_img"` // 背景图
Capacity *string `gorm:"" json:"capacity"` // 自己填的尺寸名称
Status *int64 `gorm:"" json:"status"` // 状态位 显示 删除
Sort *int64 `gorm:"" json:"sort"` // 排序
Remark *string `gorm:"" json:"remark"` // 备注信息
PartsCanDeleted *int64 `gorm:"" json:"parts_can_deleted"` // 配件是否可移除 1是0否
}
type FsProductSizeModel struct{ db *gorm.DB }
func NewFsProductSizeModel(db *gorm.DB) *FsProductSizeModel { return &FsProductSizeModel{db} }

View File

@ -0,0 +1,17 @@
package model
import (
"gorm.io/gorm"
)
type FsProductTemplateTags struct {
Id int64 `gorm:"primary_key" json:"id"` // ID
Title *string `gorm:"" json:"title"` // 标题
Status *int64 `gorm:"" json:"status"` // 状态 1可用
CreateAt *int64 `gorm:"" json:"create_at"` // 创建时间
}
type FsProductTemplateTagsModel struct{ db *gorm.DB }
func NewFsProductTemplateTagsModel(db *gorm.DB) *FsProductTemplateTagsModel {
return &FsProductTemplateTagsModel{db}
}

View File

@ -0,0 +1,29 @@
package model
import (
"gorm.io/gorm"
)
type FsProductTemplateV2 struct {
Id int64 `gorm:"primary_key" json:"id"` //
ProductId *int64 `gorm:"" json:"product_id"` // 产品ID
ModelId *int64 `gorm:"" json:"model_id"` // 模型ID
Title *string `gorm:"" json:"title"` // 模板sku,预留字段
Name *string `gorm:"" json:"name"` // 名称
CoverImg *string `gorm:"" json:"cover_img"` // 模板背景图
TemplateInfo *string `gorm:"" json:"template_info"` // 模板详情
MaterialImg *string `gorm:"" json:"material_img"` // 合成好的贴图
Sort *int64 `gorm:"" json:"sort"` // 排序
LogoWidth *int64 `gorm:"" json:"logo_width"` // logo图最大宽度
LogoHeight *int64 `gorm:"" json:"logo_height"` // logo图最大高度
IsPublic *int64 `gorm:"" json:"is_public"` // 是否可公用1:可以0不可以
Status *int64 `gorm:"" json:"status"` // 状态1正常 2异常
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Tag *string `gorm:"" json:"tag"` // 标签(用户自填)
IsDel *int64 `gorm:"" json:"is_del"` // 是否删除 1删除
}
type FsProductTemplateV2Model struct{ db *gorm.DB }
func NewFsProductTemplateV2Model(db *gorm.DB) *FsProductTemplateV2Model {
return &FsProductTemplateV2Model{db}
}

View File

@ -0,0 +1,23 @@
package model
import (
"gorm.io/gorm"
)
type FsQrcodeSet struct {
Id int64 `gorm:"primary_key" json:"id"` // id
Name *string `gorm:"" json:"name"` // 二维码组件名称
Size *int64 `gorm:"" json:"size"` // 二维码内容尺寸
IndexX *int64 `gorm:"" json:"index_x"` // x偏移量
IndexY *int64 `gorm:"" json:"index_y"` // y偏移量
SvgWebsite *string `gorm:"" json:"svg_website"` // website d数据
SvgInstagram *string `gorm:"" json:"svg_instagram"` // svg instagram d数据
SvgFacebook *string `gorm:"" json:"svg_facebook"` // svg facebook d数据
Status *int64 `gorm:"" json:"status"` // 状态
AdminId *int64 `gorm:"" json:"admin_id"` // 操作人
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Utime *int64 `gorm:"" json:"utime"` // 更新时间
}
type FsQrcodeSetModel struct{ db *gorm.DB }
func NewFsQrcodeSetModel(db *gorm.DB) *FsQrcodeSetModel { return &FsQrcodeSetModel{db} }

View File

@ -0,0 +1,16 @@
package model
import (
"gorm.io/gorm"
)
type FsStandardLogo struct {
Id int64 `gorm:"primary_key" json:"id"` // ID
Name *string `gorm:"" json:"name"` // logo名称
Image *string `gorm:"" json:"image"` // 图片地址
Ctime *int64 `gorm:"" json:"ctime"` // 添加时间
Status *int64 `gorm:"" json:"status"` // 状态 1正常 0删除
}
type FsStandardLogoModel struct{ db *gorm.DB }
func NewFsStandardLogoModel(db *gorm.DB) *FsStandardLogoModel { return &FsStandardLogoModel{db} }

View File

@ -0,0 +1,22 @@
package model
import (
"gorm.io/gorm"
)
type FsTags struct {
Id int64 `gorm:"primary_key" json:"id"` // ID
Title *string `gorm:"" json:"title"` // 标题
Level *int64 `gorm:"" json:"level"` // 层级、分类 1 => 二维码分类
ClickNum *int64 `gorm:"" json:"click_num"` // 点击次数
Sort *int64 `gorm:"" json:"sort"` // 排序(从大到小)
CreateAt *int64 `gorm:"" json:"create_at"` // 创建时间
Icon *string `gorm:"" json:"icon"` // 标签图标
Status *int64 `gorm:"" json:"status"` // 状态 1可用
Description *string `gorm:"" json:"description"` // 介绍 Seo
RecommendProduct *string `gorm:"" json:"recommend_product"` // 推荐产品id例如: 1,3,4,5
RecommendProductSort *string `gorm:"" json:"recommend_product_sort"` // 推荐排序例如:1324
}
type FsTagsModel struct{ db *gorm.DB }
func NewFsTagsModel(db *gorm.DB) *FsTagsModel { return &FsTagsModel{db} }

View File

@ -0,0 +1,37 @@
package model
import (
"gorm.io/gorm"
)
type FsUser struct {
Id int64 `gorm:"primary_key" json:"id"` // ID
FaceId *int64 `gorm:"" json:"face_id"` // facebook的userid
Sub *int64 `gorm:"" json:"sub"` // google的sub
FirstName *string `gorm:"" json:"first_name"` // FirstName
LastName *string `gorm:"" json:"last_name"` // LastName
Username *string `gorm:"" json:"username"` // 用户名
Company *string `gorm:"" json:"company"` // 公司名称
Mobile *string `gorm:"" json:"mobile"` // 手机号码
AuthKey *string `gorm:"" json:"auth_key"` //
PasswordHash *string `gorm:"" json:"password_hash"` //
VerificationToken *string `gorm:"" json:"verification_token"` //
PasswordResetToken *string `gorm:"" json:"password_reset_token"` //
Email *string `gorm:"" json:"email"` // 邮箱
Type *int64 `gorm:"" json:"type"` // 1普通餐厅 2连锁餐厅
Status *int64 `gorm:"" json:"status"` // 1正常 0不正常
IsDel *int64 `gorm:"" json:"is_del"` // 是否删除 1删除
CreatedAt *int64 `gorm:"" json:"created_at"` // 添加时间
UpdatedAt *int64 `gorm:"" json:"updated_at"` // 更新时间
IsOrderStatusEmail *int64 `gorm:"" json:"is_order_status_email"` // 订单状态改变时是否接收邮件
IsEmailAdvertisement *int64 `gorm:"" json:"is_email_advertisement"` // 是否接收邮件广告
IsOrderStatusPhone *int64 `gorm:"" json:"is_order_status_phone"` // 订单状态改变是是否接收电话
IsPhoneAdvertisement *int64 `gorm:"" json:"is_phone_advertisement"` // 是否接收短信广告
IsOpenRender *int64 `gorm:"" json:"is_open_render"` // 是否打开个性化渲染1开启0关闭
IsThousandFace *int64 `gorm:"" json:"is_thousand_face"` // 是否已经存在千人千面1存在0不存在
IsLowRendering *int64 `gorm:"" json:"is_low_rendering"` // 是否开启低渲染模型渲染
IsRemoveBg *int64 `gorm:"" json:"is_remove_bg"` // 用户上传logo是否去除背景
}
type FsUserModel struct{ db *gorm.DB }
func NewFsUserModel(db *gorm.DB) *FsUserModel { return &FsUserModel{db} }

View File

@ -29,7 +29,7 @@ func NewUserAddressListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *U
func (l *UserAddressListLogic) UserAddressList(req *types.Request, userinfo *auth.UserInfo) (resp *basic.Response) {
// 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data)
m := model.NewFsAddressModel(l.svcCtx.MysqlConn)
userinfo.GetIdType()
// user := auth.GetUserInfoFormCtx(l.ctx)
// if user.UserId == 0 {
// return resp.SetStatus(basic.CodeUnAuth)