This commit is contained in:
2025-12-09 18:55:28 +08:00
parent 8d00d67540
commit c23ab8338b
209 changed files with 5445 additions and 3963 deletions

View File

@@ -8,32 +8,33 @@ import (
"fmt"
"strings"
"reflect"
"time"
"ycc-server/common/globalkey"
"github.com/Masterminds/squirrel"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlc"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
"ycc-server/common/globalkey"
)
var (
authorizationDocumentFieldNames = builder.RawFieldNames(&AuthorizationDocument{})
authorizationDocumentRows = strings.Join(authorizationDocumentFieldNames, ",")
authorizationDocumentRowsExpectAutoSet = strings.Join(stringx.Remove(authorizationDocumentFieldNames, "`id`", "`create_time`", "`update_time`"), ",")
authorizationDocumentRowsExpectAutoSet = strings.Join(stringx.Remove(authorizationDocumentFieldNames, "`create_time`", "`update_time`"), ",")
authorizationDocumentRowsWithPlaceHolder = strings.Join(stringx.Remove(authorizationDocumentFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
cacheHmAuthorizationDocumentIdPrefix = "cache:ycc:authorizationDocument:id:"
cacheYccAuthorizationDocumentIdPrefix = "cache:ycc:authorizationDocument:id:"
)
type (
authorizationDocumentModel interface {
Insert(ctx context.Context, session sqlx.Session, data *AuthorizationDocument) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*AuthorizationDocument, error)
FindOne(ctx context.Context, id string) (*AuthorizationDocument, error)
Update(ctx context.Context, session sqlx.Session, data *AuthorizationDocument) (sql.Result, error)
UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AuthorizationDocument) error
Trans(ctx context.Context, fn func(context context.Context, session sqlx.Session) error) error
@@ -46,7 +47,7 @@ type (
FindPageListByPageWithTotal(ctx context.Context, rowBuilder squirrel.SelectBuilder, page, pageSize int64, orderBy string) ([]*AuthorizationDocument, int64, error)
FindPageListByIdDESC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMinId, pageSize int64) ([]*AuthorizationDocument, error)
FindPageListByIdASC(ctx context.Context, rowBuilder squirrel.SelectBuilder, preMaxId, pageSize int64) ([]*AuthorizationDocument, error)
Delete(ctx context.Context, session sqlx.Session, id int64) error
Delete(ctx context.Context, session sqlx.Session, id string) error
}
defaultAuthorizationDocumentModel struct {
@@ -55,10 +56,10 @@ type (
}
AuthorizationDocument struct {
Id int64 `db:"id"` // 主键ID
UserId int64 `db:"user_id"` // 用户ID
OrderId int64 `db:"order_id"` // 订单ID
QueryId int64 `db:"query_id"` // 查询ID
Id string `db:"id"`
UserId string `db:"user_id"`
OrderId string `db:"order_id"`
QueryId string `db:"query_id"`
FileName string `db:"file_name"` // 文件名
FilePath string `db:"file_path"` // 文件路径
FileUrl string `db:"file_url"` // 文件访问URL
@@ -83,20 +84,37 @@ func newAuthorizationDocumentModel(conn sqlx.SqlConn, c cache.CacheConf) *defaul
func (m *defaultAuthorizationDocumentModel) Insert(ctx context.Context, session sqlx.Session, data *AuthorizationDocument) (sql.Result, error) {
data.DelState = globalkey.DelStateNo
hmAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheHmAuthorizationDocumentIdPrefix, data.Id)
m.insertUUID(data)
yccAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheYccAuthorizationDocumentIdPrefix, data.Id)
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, authorizationDocumentRowsExpectAutoSet)
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, authorizationDocumentRowsExpectAutoSet)
if session != nil {
return session.ExecCtx(ctx, query, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version)
return session.ExecCtx(ctx, query, data.Id, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version)
}
return conn.ExecCtx(ctx, query, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version)
}, hmAuthorizationDocumentIdKey)
return conn.ExecCtx(ctx, query, data.Id, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version)
}, yccAuthorizationDocumentIdKey)
}
func (m *defaultAuthorizationDocumentModel) insertUUID(data *AuthorizationDocument) {
t := reflect.TypeOf(data).Elem()
v := reflect.ValueOf(data).Elem()
for i := 0; i < t.NumField(); i++ {
sf := t.Field(i)
if sf.Tag.Get("db") == "id" {
f := v.Field(i)
if f.IsValid() && f.CanSet() && f.Kind() == reflect.String {
if f.String() == "" {
f.SetString(uuid.NewString())
}
}
break
}
}
}
func (m *defaultAuthorizationDocumentModel) FindOne(ctx context.Context, id int64) (*AuthorizationDocument, error) {
hmAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheHmAuthorizationDocumentIdPrefix, id)
func (m *defaultAuthorizationDocumentModel) FindOne(ctx context.Context, id string) (*AuthorizationDocument, error) {
yccAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheYccAuthorizationDocumentIdPrefix, id)
var resp AuthorizationDocument
err := m.QueryRowCtx(ctx, &resp, hmAuthorizationDocumentIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
err := m.QueryRowCtx(ctx, &resp, yccAuthorizationDocumentIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", authorizationDocumentRows, m.table)
return conn.QueryRowCtx(ctx, v, query, id, globalkey.DelStateNo)
})
@@ -111,14 +129,14 @@ func (m *defaultAuthorizationDocumentModel) FindOne(ctx context.Context, id int6
}
func (m *defaultAuthorizationDocumentModel) Update(ctx context.Context, session sqlx.Session, data *AuthorizationDocument) (sql.Result, error) {
hmAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheHmAuthorizationDocumentIdPrefix, data.Id)
yccAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheYccAuthorizationDocumentIdPrefix, data.Id)
return m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, authorizationDocumentRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version, data.Id)
}
return conn.ExecCtx(ctx, query, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version, data.Id)
}, hmAuthorizationDocumentIdKey)
}, yccAuthorizationDocumentIdKey)
}
func (m *defaultAuthorizationDocumentModel) UpdateWithVersion(ctx context.Context, session sqlx.Session, data *AuthorizationDocument) error {
@@ -129,14 +147,14 @@ func (m *defaultAuthorizationDocumentModel) UpdateWithVersion(ctx context.Contex
var sqlResult sql.Result
var err error
hmAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheHmAuthorizationDocumentIdPrefix, data.Id)
yccAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheYccAuthorizationDocumentIdPrefix, data.Id)
sqlResult, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("update %s set %s where `id` = ? and version = ? ", m.table, authorizationDocumentRowsWithPlaceHolder)
if session != nil {
return session.ExecCtx(ctx, query, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}
return conn.ExecCtx(ctx, query, data.UserId, data.OrderId, data.QueryId, data.FileName, data.FilePath, data.FileUrl, data.FileSize, data.FileType, data.Status, data.ExpireTime, data.DeleteTime, data.DelState, data.Version, data.Id, oldVersion)
}, hmAuthorizationDocumentIdKey)
}, yccAuthorizationDocumentIdKey)
if err != nil {
return err
}
@@ -353,19 +371,19 @@ func (m *defaultAuthorizationDocumentModel) Trans(ctx context.Context, fn func(c
func (m *defaultAuthorizationDocumentModel) SelectBuilder() squirrel.SelectBuilder {
return squirrel.Select().From(m.table)
}
func (m *defaultAuthorizationDocumentModel) Delete(ctx context.Context, session sqlx.Session, id int64) error {
hmAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheHmAuthorizationDocumentIdPrefix, id)
func (m *defaultAuthorizationDocumentModel) Delete(ctx context.Context, session sqlx.Session, id string) error {
yccAuthorizationDocumentIdKey := fmt.Sprintf("%s%v", cacheYccAuthorizationDocumentIdPrefix, id)
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
if session != nil {
return session.ExecCtx(ctx, query, id)
}
return conn.ExecCtx(ctx, query, id)
}, hmAuthorizationDocumentIdKey)
}, yccAuthorizationDocumentIdKey)
return err
}
func (m *defaultAuthorizationDocumentModel) formatPrimary(primary interface{}) string {
return fmt.Sprintf("%s%v", cacheHmAuthorizationDocumentIdPrefix, primary)
return fmt.Sprintf("%s%v", cacheYccAuthorizationDocumentIdPrefix, primary)
}
func (m *defaultAuthorizationDocumentModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
query := fmt.Sprintf("select %s from %s where `id` = ? and del_state = ? limit 1", authorizationDocumentRows, m.table)