Merge branch 'ldm-v1.01' into feature/mhw-v1.01

This commit is contained in:
laodaming
2023-09-15 10:25:02 +08:00
24 changed files with 1225 additions and 7 deletions

View File

@@ -0,0 +1,35 @@
package gmodel
import (
"gorm.io/gorm"
"time"
)
// fs_orders_trade 订单交易记录表
type FsOrdersTrade struct {
Id int64 `gorm:"primary_key;default:0;auto_increment;" json:"id"` // 订单交易ID
UserId *int64 `gorm:"index;default:0;" json:"user_id"` // 用户ID
OrderNo *string `gorm:"default:'';" json:"order_no"` //
OrderSource *string `gorm:"default:'';" json:"order_source"` //
TradeNo *string `gorm:"index;default:'';" json:"trade_no"` //
PayAmount *int64 `gorm:"default:0;" json:"pay_amount"` // 支付金额 (分)
PayStatus *int64 `gorm:"default:0;" json:"pay_status"` // 支付状态1=未成功2=已成功
PaymentMethod *int64 `gorm:"default:0;" json:"payment_method"` // 支付方式1=stripe2=paypal
PayStage *int64 `gorm:"default:0;" json:"pay_stage"` // 支付阶段1=首付2=尾款
RefundStatus *int64 `gorm:"default:0;" json:"refund_status"` // 退款状态1=未退款2=已退款
CardNo *string `gorm:"default:'';" json:"card_no"` //
CardBrand *string `gorm:"default:'';" json:"card_brand"` //
Ctime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ctime"` //
Utime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"utime"` //
Country *string `gorm:"default:'';" json:"country"` //
Currency *string `gorm:"default:'';" json:"currency"` //
Metadata *[]byte `gorm:"default:'';" json:"metadata"` //
}
type FsOrdersTradeModel struct {
db *gorm.DB
name string
}
func NewFsOrdersTradeModel(db *gorm.DB) *FsOrdersTradeModel {
return &FsOrdersTradeModel{db: db, name: "fs_orders_trade"}
}

View File

@@ -0,0 +1,2 @@
package gmodel
// TODO: 使用model的属性做你想做的

View File

@@ -17,8 +17,6 @@ type FsShoppingCart struct {
PurchaseQuantity *int64 `gorm:"default:0;" json:"purchase_quantity"` // 购买数量
Snapshot *string `gorm:"default:'';" json:"snapshot"` //
IsHighlyCustomized *int64 `gorm:"default:0;" json:"is_highly_customized"` // 是否高度定制 0非 1是针对客人高度定制只能后台增加如购物车
Status *int64 `gorm:"default:0;" json:"status"` // 0未下单 1已下单
IsEffective *int64 `gorm:"default:1;" json:"is_effective"` // 是否有效 0非 1是(针对对购物车下单,此前数据表更失效)
Ctime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ctime"` //
Utime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"utime"` //
}

View File

@@ -1,2 +1,88 @@
package gmodel
// TODO: 使用model的属性做你想做的
import "context"
// 获取单个
func (s *FsShoppingCartModel) FindOne(ctx context.Context, id int64, fields ...string) (resp *FsShoppingCart, err error) {
db := s.db.WithContext(ctx).Where("id = ?", id)
if len(fields) > 0 {
db = db.Select(fields[0])
}
err = db.Take(&resp).Error
return resp, err
}
// 获取用户购物车指定item
func (s *FsShoppingCartModel) FineOneUserCart(ctx context.Context, id, userId int64, fields ...string) (resp *FsShoppingCart, err error) {
db := s.db.WithContext(ctx).Where("user_id = ? and id = ?", userId, id)
if len(fields) > 0 {
db = db.Select(fields[0])
}
err = db.Take(&resp).Error
return resp, err
}
// 创建
func (s *FsShoppingCartModel) Create(ctx context.Context, data *FsShoppingCart) error {
return s.db.WithContext(ctx).Create(&data).Error
}
// 更新
func (s *FsShoppingCartModel) Update(ctx context.Context, id, userId int64, data *FsShoppingCart) error {
return s.db.WithContext(ctx).Where("user_id = ? and id = ?", userId, id).Updates(&data).Error
}
// 获取用户购物车数量
func (s *FsShoppingCartModel) CountUserCart(ctx context.Context, userId int64) (total int64, err error) {
err = s.db.WithContext(ctx).Where("user_id = ?", userId).Limit(1).Count(&total).Error
return total, err
}
// 获取多个
func (s *FsShoppingCartModel) GetAllByIds(ctx context.Context, ids []int64, sort string, fields ...string) (resp []FsShoppingCart, err error) {
if len(ids) == 0 {
return
}
db := s.db.WithContext(ctx).Where("id in (?)", ids)
if len(fields) > 0 {
db = db.Select(fields[0])
}
if sort != "" {
db = db.Order(sort)
}
err = db.Find(&resp).Error
return resp, err
}
// 获取用户所有的购物车
type GetAllCartsByParamReq struct {
Ids []int64 //id集合
UserId int64 //用户id
Fields string //筛选的字段
Sort string //排序
Page int //当前页
Limit int //每页数量
}
func (s *FsShoppingCartModel) GetAllCartsByParam(ctx context.Context, req GetAllCartsByParamReq) (resp []FsShoppingCart, total int64, err error) {
db := s.db.WithContext(ctx)
if req.UserId > 0 {
db = db.Where("user_id = ?", req.UserId)
}
if len(req.Ids) > 0 {
db = db.Where("id in (?)", req.Ids)
}
if req.Fields != "" {
db = db.Select(req.Fields)
}
if req.Sort != "" {
db = db.Order(req.Sort)
}
//查询数量
if err = db.Limit(1).Count(&total).Error; err != nil {
return nil, 0, err
}
offset := (req.Page - 1) * req.Limit
err = db.Offset(offset).Limit(req.Limit).Find(&resp).Error
return resp, total, err
}

View File

@@ -60,6 +60,7 @@ type AllModelsGen struct {
FsOrderDetail *FsOrderDetailModel // fs_order_detail 订单详细表
FsOrderDetailTemplate *FsOrderDetailTemplateModel // fs_order_detail_template 订单模板详细表
FsOrderRemark *FsOrderRemarkModel // fs_order_remark 订单备注表
FsOrdersTrade *FsOrdersTradeModel // fs_orders_trade 订单交易记录表
FsPay *FsPayModel // fs_pay 支付记录
FsPayEvent *FsPayEventModel // fs_pay_event 支付回调事件日志
FsProduct *FsProductModel // fs_product 产品表
@@ -167,6 +168,7 @@ func NewAllModels(gdb *gorm.DB) *AllModelsGen {
FsOrderDetail: NewFsOrderDetailModel(gdb),
FsOrderDetailTemplate: NewFsOrderDetailTemplateModel(gdb),
FsOrderRemark: NewFsOrderRemarkModel(gdb),
FsOrdersTrade: NewFsOrdersTradeModel(gdb),
FsPay: NewFsPayModel(gdb),
FsPayEvent: NewFsPayEventModel(gdb),
FsProduct: NewFsProductModel(gdb),