Build and Publish Server / build (push) Successful in 4m30s
- 新增商业化模块:Stripe/Binance Pay 支付、邮箱登录、订单管理 - 新增数据模型:ReportProduct, ReportEntitlement, ReportSnapshot, PaymentEvent, EmailLoginCode - 新增 API:/api/commerce/checkout, /api/commerce/webhooks/*, /api/commerce/orders/* - 新增管理后台:订单列表、统计图表、统一 AdminHeader 组件 - 新增中间件测试:RateLimit, Auth, CORS 共 7 个测试用例 - 新增 AGENTS.md 项目代理指令文件 - 新增 REMINDER.md 商业化功能开发规范 - 修复 JWT 解析:添加 WithValidMethods 限制 HS256 - 修复 GetPayStatus:增加用户权限校验 - 更新 .gitignore 和 README.md
31 lines
986 B
Go
31 lines
986 B
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
|
|
"github.com/gouki/lunar-server/internal/model"
|
|
)
|
|
|
|
func (s *CommerceService) CreateChartRecord(record *model.BaziChartRecord) error {
|
|
if record.ReportID == "" || record.BirthDate == "" || record.BirthTime == "" || record.Snapshot == "" {
|
|
return errors.New("incomplete chart record")
|
|
}
|
|
return s.db.Create(record).Error
|
|
}
|
|
|
|
func (s *CommerceService) AdminChartRecords(search string, page, pageSize int) ([]model.BaziChartRecord, int64, error) {
|
|
query := s.db.Model(&model.BaziChartRecord{})
|
|
if strings.TrimSpace(search) != "" {
|
|
like := "%" + strings.TrimSpace(search) + "%"
|
|
query = query.Where("report_id LIKE ? OR name LIKE ? OR city LIKE ?", like, like, like)
|
|
}
|
|
var total int64
|
|
if err := query.Count(&total).Error; err != nil {
|
|
return nil, 0, err
|
|
}
|
|
var records []model.BaziChartRecord
|
|
err := query.Order("created_at DESC").Offset((page - 1) * pageSize).Limit(pageSize).Find(&records).Error
|
|
return records, total, err
|
|
}
|