初始化项目

This commit is contained in:
lianghuanjie
2024-12-05 20:51:35 +08:00
commit e2ba6924b8
30 changed files with 1560 additions and 0 deletions

45
internal/model/nh_task_model.go Executable file
View File

@@ -0,0 +1,45 @@
package model
import (
"context"
"errors"
"fmt"
"github.com/zeromicro/go-zero/core/stores/sqlx"
)
var _ NhTaskModel = (*customNhTaskModel)(nil)
type (
// NhTaskModel is an interface to be customized, add more methods here,
// and implement the added methods in customNhTaskModel.
NhTaskModel interface {
nhTaskModel
withSession(session sqlx.Session) NhTaskModel
FindTasksByCommunity(ctx context.Context, communityId uint) ([]*NhTask, error)
}
customNhTaskModel struct {
*defaultNhTaskModel
}
)
func (m *customNhTaskModel) FindTasksByCommunity(ctx context.Context, communityId uint) ([]*NhTask, error) {
query := fmt.Sprintf("select %s from %s where community_id = ?", nhTaskRows, m.table)
var tasks []*NhTask
err := m.conn.QueryRowsCtx(ctx, &tasks, query, communityId)
if err != nil && !errors.Is(err, sqlx.ErrNotFound) {
return nil, err
}
return tasks, nil
}
// NewNhTaskModel returns a model for the database table.
func NewNhTaskModel(conn sqlx.SqlConn) NhTaskModel {
return &customNhTaskModel{
defaultNhTaskModel: newNhTaskModel(conn),
}
}
func (m *customNhTaskModel) withSession(session sqlx.Session) NhTaskModel {
return NewNhTaskModel(sqlx.NewSqlConnFromSession(session))
}

View File

@@ -0,0 +1,97 @@
// Code generated by goctl. DO NOT EDIT.
// versions:
// goctl version: 1.7.3
package model
import (
"context"
"database/sql"
"fmt"
"strings"
"time"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
)
var (
nhTaskFieldNames = builder.RawFieldNames(&NhTask{})
nhTaskRows = strings.Join(nhTaskFieldNames, ",")
nhTaskRowsExpectAutoSet = strings.Join(stringx.Remove(nhTaskFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
nhTaskRowsWithPlaceHolder = strings.Join(stringx.Remove(nhTaskFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
)
type (
nhTaskModel interface {
Insert(ctx context.Context, data *NhTask) (sql.Result, error)
FindOne(ctx context.Context, id uint) (*NhTask, error)
Update(ctx context.Context, data *NhTask) error
Delete(ctx context.Context, id uint) error
}
defaultNhTaskModel struct {
conn sqlx.SqlConn
table string
}
NhTask struct {
Id uint `db:"id"`
CommunityId uint `db:"community_id"` // 合作社区ID0=官方平台
Title string `db:"title"` // 大标题
SubTitle string `db:"sub_title"` // 子标题
Description string `db:"description"` // 描述
Points int `db:"points"` // 积分数量
ButtonText string `db:"button_text"` // 按钮上的文字
Type int8 `db:"type"` // 0=一次性任务1=每天任务
Status int8 `db:"status"` // 0=不启用1=启用
StartAt sql.NullTime `db:"start_at"` // 开始时间
EndAt sql.NullTime `db:"end_at"` // 结束时间
CreatedAt time.Time `db:"created_at"` // 创建时间
UpdatedAt time.Time `db:"updated_at"` // 修改时间
}
)
func newNhTaskModel(conn sqlx.SqlConn) *defaultNhTaskModel {
return &defaultNhTaskModel{
conn: conn,
table: "`nh_task`",
}
}
func (m *defaultNhTaskModel) Delete(ctx context.Context, id uint) error {
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
_, err := m.conn.ExecCtx(ctx, query, id)
return err
}
func (m *defaultNhTaskModel) FindOne(ctx context.Context, id uint) (*NhTask, error) {
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", nhTaskRows, m.table)
var resp NhTask
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
switch err {
case nil:
return &resp, nil
case sqlx.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultNhTaskModel) Insert(ctx context.Context, data *NhTask) (sql.Result, error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, nhTaskRowsExpectAutoSet)
ret, err := m.conn.ExecCtx(ctx, query, data.CommunityId, data.Title, data.SubTitle, data.Description, data.Points, data.ButtonText, data.Type, data.Status, data.StartAt, data.EndAt)
return ret, err
}
func (m *defaultNhTaskModel) Update(ctx context.Context, data *NhTask) error {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, nhTaskRowsWithPlaceHolder)
_, err := m.conn.ExecCtx(ctx, query, data.CommunityId, data.Title, data.SubTitle, data.Description, data.Points, data.ButtonText, data.Type, data.Status, data.StartAt, data.EndAt, data.Id)
return err
}
func (m *defaultNhTaskModel) tableName() string {
return m.table
}

5
internal/model/vars.go Normal file
View File

@@ -0,0 +1,5 @@
package model
import "github.com/zeromicro/go-zero/core/stores/sqlx"
var ErrNotFound = sqlx.ErrNotFound