84 lines
2.4 KiB
Go
84 lines
2.4 KiB
Go
|
|
package models
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"git.apinb.com/bsm-ec/mall/internal/impl"
|
|||
|
|
"git.apinb.com/bsm-sdk/core/types"
|
|||
|
|
"git.apinb.com/bsm-sdk/core/utils"
|
|||
|
|
"gorm.io/gorm"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
type ContentType int32
|
|||
|
|
|
|||
|
|
const (
|
|||
|
|
CONTENT_TYPE_TEXT ContentType = iota + 1 // 1.文本
|
|||
|
|
CONTENT_TYPE_IMAGE // 2.图片
|
|||
|
|
CONTENT_TYPE_VIDEO // 3.视频
|
|||
|
|
CONTENT_TYPE_AUDIO // 4.音频
|
|||
|
|
CONTENT_TYPE_LINK // 5.连接
|
|||
|
|
CONTENT_TYPE_ATTACHMENT // 6.附件
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
const (
|
|||
|
|
// NormalStatus .
|
|||
|
|
NormalStatus = 1
|
|||
|
|
// DisabledStatus .
|
|||
|
|
DisabledStatus = -1
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
type Std_Store struct {
|
|||
|
|
Store_ID uint `gorm:"primarykey;" json:"store_id"` // 店铺ID
|
|||
|
|
Store_Identity string `gorm:"column:store_identity;type:varchar(36);index;" json:"store_identity"` // 店铺唯一标识,24位NanoID,36位为ULID
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 初始化数据
|
|||
|
|
func InitData() {
|
|||
|
|
CreateStore("to b", "localhost")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func CreateStore(title, domain string) {
|
|||
|
|
var cnt int64 = 0
|
|||
|
|
|
|||
|
|
// 创建默认目录
|
|||
|
|
var store MallStore
|
|||
|
|
err := impl.DBService.Model(&MallStore{}).Where("subdomain=?", domain).First(&store).Error
|
|||
|
|
if err == gorm.ErrRecordNotFound {
|
|||
|
|
store = MallStore{
|
|||
|
|
Title: title,
|
|||
|
|
Subdomain: domain,
|
|||
|
|
Std_IICUDS: types.Std_IICUDS{Identity: utils.UUID(), Status: NormalStatus},
|
|||
|
|
}
|
|||
|
|
impl.DBService.Create(&store)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 创建默认目录
|
|||
|
|
err = impl.DBService.Model(&MallStaff{}).Where("store_identity=? and account=?", store.Identity, "root").Count(&cnt).Error
|
|||
|
|
if cnt == 0 || err != nil {
|
|||
|
|
salt := utils.RandomString(8)
|
|||
|
|
root := &MallStaff{
|
|||
|
|
Std_Store: Std_Store{Store_ID: store.ID, Store_Identity: store.Identity},
|
|||
|
|
Account: "root",
|
|||
|
|
Password: utils.Md5("123456" + salt),
|
|||
|
|
Salt: salt,
|
|||
|
|
Role: "Mall_Admin",
|
|||
|
|
Std_IICUDS: types.Std_IICUDS{Identity: utils.UUID(), Status: 1},
|
|||
|
|
}
|
|||
|
|
impl.DBService.Create(root)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// GetCategoryList 获取分类列表
|
|||
|
|
func GetCategoryList(keyword, identity string, id int64) ([]*MallCategory, error) {
|
|||
|
|
tx := impl.DBService.Preload("Categories").Where("store_identity = ? ", identity).Where("parent_id = 0")
|
|||
|
|
if id != 0 {
|
|||
|
|
tx = tx.Where("id = ?", id)
|
|||
|
|
}
|
|||
|
|
if keyword != "" {
|
|||
|
|
tx = tx.Where("title like ?", "%"+keyword+"%")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
data := make([]*MallCategory, 0)
|
|||
|
|
tx.Order("created_at desc").Find(&data)
|
|||
|
|
err := tx.Error
|
|||
|
|
return data, err
|
|||
|
|
}
|