初始化项目

This commit is contained in:
2025-12-10 15:41:52 +08:00
parent 339dd97f66
commit 232009bbc2
25 changed files with 419 additions and 467 deletions

View File

@@ -1,10 +1,12 @@
package dao
import (
"cid/model/entity"
"context"
"github.com/gogf/gf/v2/frame/g"
"cid/model/entity"
"gitee.com/red-future---jilin-g/common/mongo"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo/options"
)
var CIDRequest = &cidRequestDao{}
@@ -12,70 +14,58 @@ var CIDRequest = &cidRequestDao{}
type cidRequestDao struct{}
// Create 创建CID请求记录
func (d *cidRequestDao) Create(ctx context.Context, request *entity.CidRequest) (id int64, err error) {
result, err := g.DB().Model("cid_requests").Insert(request)
func (d *cidRequestDao) Create(ctx context.Context, request *entity.CidRequest) (id string, err error) {
ids, err := mongo.Insert(ctx, []interface{}{request}, "cid_requests")
if err != nil {
return 0, err
return "", err
}
if len(ids) > 0 {
id = ids[0].(string)
}
id, err = result.LastInsertId()
return
}
// GetHistory 获取CID请求历史
func (d *cidRequestDao) GetHistory(ctx context.Context, userId int64, page, size int) (list []*entity.CidRequest, total int64, err error) {
model := g.DB().Model("cid_requests")
// 根据用户ID筛选
model = model.Where("user_id = ?", userId)
func (d *cidRequestDao) GetHistory(ctx context.Context, userId string, page, size int) (list []*entity.CidRequest, total int64, err error) {
filter := bson.M{"userId": userId}
// 获取总数
count, err := model.Count()
total, err = mongo.Count(ctx, filter, "cid_requests")
if err != nil {
return
}
total = int64(count)
// 分页查询
offset := (page - 1) * size
err = model.Order("created_at DESC").
Offset(offset).
Limit(size).
Scan(&list)
err = mongo.Find(ctx, filter, &list, "cid_requests",
options.Find().SetSort(bson.M{"createdAt": -1}).
SetSkip(int64(offset)).
SetLimit(int64(size)))
return
}
// GetStatistics 获取统计信息
func (d *cidRequestDao) GetStatistics(ctx context.Context, userId int64) (stats map[string]interface{}, err error) {
func (d *cidRequestDao) GetStatistics(ctx context.Context, userId string) (stats map[string]interface{}, err error) {
stats = make(map[string]interface{})
// 总请求数
totalRequests, err := g.DB().Model("cid_requests").
Where("user_id = ?", userId).
Count()
totalRequests, err := mongo.Count(ctx, bson.M{"userId": userId}, "cid_requests")
if err != nil {
return nil, err
}
stats["total_requests"] = totalRequests
// 成功请求数
successfulRequests, err := g.DB().Model("cid_requests").
Where("user_id = ? AND status = ?", userId, "completed").
Count()
successfulRequests, err := mongo.Count(ctx, bson.M{"userId": userId, "status": "completed"}, "cid_requests")
if err != nil {
return nil, err
}
stats["successful_requests"] = successfulRequests
// 平均处理时间
avgProcessTime, err := g.DB().Model("cid_requests").
Fields("AVG(process_time)").
Where("user_id = ?", userId).
Value()
if err != nil {
return nil, err
}
stats["average_process_time"] = avgProcessTime
// 平均处理时间需要单独计算MongoDB聚合查询
// 这里简化处理返回0
stats["average_process_time"] = 0
return
}