Files
slogan/server/styleagent/dao/partner_store_dao.go
T
admin a6de9ebd12 Add 'server/' from commit 'e64421295fff83acbb6d6ab3d3b27f3ef8368f00'
git-subtree-dir: server
git-subtree-mainline: c4e617ada7
git-subtree-split: e64421295f
2026-08-04 15:02:35 +08:00

67 lines
2.3 KiB
Go

package dao
import (
"context"
"slogan-agent/styleagent/consts"
"slogan-agent/styleagent/model/entity"
"github.com/gogf/gf/v2/frame/g"
)
var PartnerStore = &partnerStoreDao{}
type partnerStoreDao struct{}
func init() {
ctx := context.Background()
_, err := g.DB().Exec(ctx, `CREATE TABLE IF NOT EXISTS `+consts.TableNamePartnerStore+` (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL DEFAULT '',
type INTEGER NOT NULL DEFAULT 1,
lat REAL NOT NULL DEFAULT 0,
lng REAL NOT NULL DEFAULT 0,
address TEXT NOT NULL DEFAULT '',
commission_policy TEXT NOT NULL DEFAULT '',
status INTEGER NOT NULL DEFAULT 1,
created_at DATETIME DEFAULT (datetime('now','localtime'))
)`)
if err != nil {
g.Log().Warningf(ctx, "create partner_store table failed: %v", err)
}
seedStores(ctx)
}
func seedStores(ctx context.Context) {
r, err := g.DB().Model(consts.TableNamePartnerStore).Ctx(ctx).Count()
if err != nil || r > 0 {
return
}
items := []struct {
name, addr, policy string
typ int
lat, lng float64
}{
{"焕新造型工作室", "北京市朝阳区望京SOHO T1-1102", "到店核销佣金 8%", 1, 39.9965, 116.4816},
{"发型研究所(国贸店)", "北京市朝阳区建国门外大街1号", "到店核销佣金 10%", 1, 39.9087, 116.4575},
{"潮服集合店", "北京市朝阳区三里屯太古里19号", "到店核销佣金 6%", 2, 39.9374, 116.4556},
{"简约风服装馆", "北京市海淀区中关村大街27号", "到店核销佣金 6%", 2, 39.9822, 116.3171},
}
for _, it := range items {
if _, err := g.DB().Exec(ctx,
"INSERT INTO "+consts.TableNamePartnerStore+" (name, type, lat, lng, address, commission_policy, status, created_at) VALUES (?, ?, ?, ?, ?, ?, 1, datetime('now','localtime'))",
it.name, it.typ, it.lat, it.lng, it.addr, it.policy); err != nil {
g.Log().Warningf(ctx, "seed partner_store %s failed: %v", it.name, err)
}
}
}
func (d *partnerStoreDao) List(ctx context.Context, storeType int) ([]*entity.PartnerStore, error) {
m := g.DB().Model(consts.TableNamePartnerStore).Ctx(ctx).Where("status", 1)
if storeType > 0 {
m = m.Where("type", storeType)
}
var list []*entity.PartnerStore
err := m.OrderAsc("id").Scan(&list)
return list, err
}