This commit is contained in:
2026-07-14 14:05:38 +08:00
parent a070c402d4
commit fbc7e34d12
3 changed files with 33 additions and 36 deletions
BIN
View File
Binary file not shown.
+31 -34
View File
@@ -50,30 +50,24 @@ func init() {
if len(r) > 0 {
userVersion = r[0]["user_version"].Int()
}
if userVersion < 1 {
if userVersion == 0 {
g.Log().Info(ctx, "migration: convert historical UTC time data to local timezone")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameDrama+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameEpisode+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameScene+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameCharacter+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameProp+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameBackgroundMusic+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameModelConfig+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameGenerationTask+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentConfig+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours')")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentOrder+" SET paid_at = datetime(paid_at, '+8 hours') WHERE paid_at IS NOT NULL")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentOrder+" SET updated_at = datetime(updated_at, '+8 hours') WHERE updated_at IS NOT NULL")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameUser+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours') WHERE username = 'admin'")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameAccountTransaction+" SET created_at = datetime(created_at, '+8 hours') WHERE created_at IS NOT NULL")
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentChannelTrade+" SET created_at = datetime(created_at, '+8 hours') WHERE created_at IS NOT NULL")
_, _ = g.DB().Exec(ctx, "PRAGMA user_version = 1")
g.DB().Exec(ctx, "UPDATE "+public.TableNameUser+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours') WHERE created_at LIKE '%-%T%:%.%Z' OR created_at LIKE '%-%T%:%s%z'")
g.DB().Exec(ctx, "UPDATE "+public.TableNameAccountTransaction+" SET created_at = datetime(created_at, '+8 hours') WHERE created_at LIKE '%-%T%:%.%Z' OR created_at LIKE '%-%T%:%s%z' AND created_at IS NOT NULL")
g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentOrder+" SET created_at = datetime(created_at, '+8 hours'), updated_at = datetime(updated_at, '+8 hours'), paid_at = datetime(paid_at, '+8 hours') WHERE created_at LIKE '%-%T%:%.%Z' OR created_at LIKE '%-%T%:%s%z'")
g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentConfig+" SET created_at = datetime(created_at, '+8 hours') WHERE created_at LIKE '%-%T%:%.%Z' OR created_at LIKE '%-%T%:%s%z'")
g.DB().Exec(ctx, "UPDATE "+public.TableNamePaymentChannelTrade+" SET created_at = datetime(created_at, '+8 hours') WHERE created_at LIKE '%-%T%:%.%Z' OR created_at LIKE '%-%T%:%s%z'")
g.DB().Exec(ctx, "PRAGMA user_version = 1")
}
// 补充 province 字段到各表的 DDL(仅针对在 province 列存在前入库的老数据)
_, _ = g.DB().Exec(ctx, "UPDATE "+public.TableNameUser+" SET province = region WHERE province = '' AND region != ''")
}
func (d *userDao) Insert(ctx context.Context, data *entity.User) (int64, error) {
r, err := g.DB().Exec(ctx,
"INSERT INTO "+public.TableNameUser+" (role, username, phone, password, name, region, address, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now','localtime'), datetime('now','localtime'))",
data.Role, data.Username, data.Phone, data.Password, data.Name, data.Region, data.Address)
"INSERT INTO "+public.TableNameUser+" (role, username, phone, password, name, province, region, address, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, datetime('now','localtime'), datetime('now','localtime'))",
data.Role, data.Username, data.Phone, data.Password, data.Name, data.Province, data.Region, data.Address)
if err != nil {
return 0, err
}
@@ -119,12 +113,9 @@ func (d *userDao) GetByAccount(ctx context.Context, account string) (*entity.Use
func (d *userDao) GetByPhone(ctx context.Context, phone string) (*entity.User, error) {
var u entity.User
err := g.DB().Model(public.TableNameUser).Ctx(ctx).Where("phone", phone).Scan(&u)
if err != nil {
if err != nil || u.Id == 0 {
return nil, err
}
if u.Phone == "" {
return nil, nil
}
return &u, nil
}
@@ -139,25 +130,31 @@ func (d *userDao) UpdateFields(ctx context.Context, id int64, data g.Map) error
}
func (d *userDao) ListByRole(ctx context.Context, role string, page, pageSize int) ([]*entity.User, int, error) {
m := g.DB().Model(public.TableNameUser).Ctx(ctx).Where("role", role)
count, err := m.Count()
total, err := g.DB().Model(public.TableNameUser).Ctx(ctx).Where("role", role).Count()
if err != nil {
return nil, 0, err
}
var list []*entity.User
err = m.Page(page, pageSize).OrderAsc("id").Scan(&list)
return list, count, err
var users []*entity.User
err = g.DB().Model(public.TableNameUser).Ctx(ctx).Where("role", role).Page(page, pageSize).OrderAsc("id").Scan(&users)
return users, total, err
}
func (d *userDao) ListByAgent(ctx context.Context, agentId int64, page, pageSize int) ([]*entity.User, int, error) {
m := g.DB().Model(public.TableNameUser).Ctx(ctx).
InnerJoin(public.TableNameCustomerProfile, "cp", "cp.user_id = "+public.TableNameUser+".id").
Where("cp.agent_id", agentId)
count, err := m.Count()
// 查询指定代理商名下的客户
total, err := g.DB().Model(public.TableNameUser+" u").
InnerJoin(public.TableNameCustomerProfile+" cp", "cp.user_id = u.id").
Where("cp.agent_id", agentId).
Count()
if err != nil {
return nil, 0, err
}
var list []*entity.User
err = m.Page(page, pageSize).OrderAsc(public.TableNameUser + ".id").Scan(&list)
return list, count, err
var users []*entity.User
err = g.DB().Model(public.TableNameUser+" u").
InnerJoin(public.TableNameCustomerProfile+" cp", "cp.user_id = u.id").
Where("cp.agent_id", agentId).
Fields("u.*").
Page(page, pageSize).
OrderAsc("u.id").
Scan(&users)
return users, total, err
}
+2 -2
View File
@@ -35,7 +35,7 @@ func init() {
ctx := context.Background()
adminExisting, _ := dao.User.GetByUsername(ctx, "admin")
if adminExisting == nil {
hash, _ := bcrypt.GenerateFromPassword([]byte("admin123"), bcrypt.DefaultCost)
hash, _ := bcrypt.GenerateFromPassword([]byte("Tongli686^*^"), bcrypt.DefaultCost)
_, _ = g.DB().Model("user").Ctx(ctx).Data(g.Map{
"role": "admin",
"username": "admin",
@@ -45,7 +45,7 @@ func init() {
}
test1Existing, _ := dao.User.GetByUsername(ctx, "test1")
if test1Existing == nil {
hash, _ := bcrypt.GenerateFromPassword([]byte("admin123"), bcrypt.DefaultCost)
hash, _ := bcrypt.GenerateFromPassword([]byte("Tongli686^*^"), bcrypt.DefaultCost)
_, _ = g.DB().Model("user").Ctx(ctx).Data(g.Map{
"role": "agent",
"username": "test1",