Files

88 lines
2.4 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package models
import (
"bsm/full/module/ec/mall/internal/impl"
"bsm/full/module/ec/mall/internal/password"
"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 {
passwordHash, hashErr := password.Hash("123456")
if hashErr != nil {
return
}
root := &MallStaff{
Std_Store: Std_Store{Store_ID: store.ID, Store_Identity: store.Identity},
Account: "root",
Password: passwordHash,
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
}