git-subtree-dir: server git-subtree-mainline:c4e617ada7git-subtree-split:e64421295f
67 lines
2.3 KiB
Go
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
|
|
}
|