package after
import (
"github.com/golangkit/formatime"
"github.com/shopspring/decimal"
"recook/internal/v2/lib/db"
)
type RecookAfterSalesGoodsModel struct {
db.BaseModel
Id uint `gorm:"column:id;primary_key" json:"asID"`
AncestorId uint `gorm:"column:ancestor_id" json:"-"`
ParentId uint `gorm:"column:parent_id" json:"parentId"` // 分享者id,链接购买则是分享者id。其他方式则是自己上级的id
SharerId uint `gorm:"column:sharer_id" json:"sharerId"`
UserId uint `gorm:"column:user_id" json:"userId"` // 下单者
UserRole uint `gorm:"column:user_role" json:"userRole"`
OrderId uint `gorm:"column:order_id" json:"orderId"`
OrderGoodsId uint `gorm:"column:order_goods_id" json:"orderGoodsId"` // 1审核中 2填写物流单号 3申请被拒绝 4等待商家收货 5成功
VendorId uint `gorm:"column:vendor_id" json:"vendorId"` // 供应商Id: 0表示自营
VendorName string `gorm:"column:vendor_name" json:"vendorName"`
BrandName string `gorm:"column:brand_name" json:"brandName"` // 品牌名称
CategoryName string `gorm:"column:category_name" json:"cateName"`
GoodsId uint `gorm:"column:goods_id" json:"goodsId"` // 商品Id
GoodsName string `gorm:"column:goods_name" json:"goodsName"` // 商品名快照
SkuName string `gorm:"column:sku_name" json:"skuName"` // SKU名字组合起来
SkuCode string `gorm:"column:sku_code" json:"skuCode"` // 条形码或者编码
MainPhotoUrl string `gorm:"column:main_photo_url" json:"mainPhotoUrl"` // 主图快照 先读sku 没有则读取主图
Quantity uint `gorm:"column:quantity" json:"quantity"` // 商品数量
OrderTime formatime.Second `gorm:"column:order_time" json:"orderTime"`
OrderTotalAmount decimal.Decimal `gorm:"column:order_total_amount" json:"orderTotalAmount"`
RefundAmount decimal.Decimal `gorm:"column:refund_amount" json:"refundAmount"` // 退款金额
RefundCoin decimal.Decimal `gorm:"column:refund_coin" json:"refundCoin"` // 退款瑞币
TradeNo string `gorm:"column:trade_no" json:"tradeNo"` // 传递给第三方支付的id凭证
PayMethod uint `gorm:"column:pay_method" json:"payMethod"`
IsShip uint `gorm:"column:is_ship" json:"isShip"`
AssType uint `gorm:"column:ass_type" json:"assType"`
ReturnStatus uint `gorm:"column:return_status" json:"returnStatus"`
ApplyTime formatime.Second `gorm:"column:apply_time" json:"applyTime"`
CheckTime formatime.Second `gorm:"column:check_time" json:"checkTime"`
Reason string `gorm:"column:reason" json:"reason"`
RejectReason string `gorm:"column:reject_reason" json:"rejectReason"`
ExpressCompName string `gorm:"column:express_comp_name" json:"expressCompName"` // 物流公司名称
ExpressCompCode string `gorm:"column:express_comp_code" json:"expressCompCode"` // 物流单号
ExpressNo string `gorm:"column:express_no" json:"expressNo"`
ExpressFree decimal.Decimal `gorm:"column:express_free" json:"expressFree"` //运费补偿
ExpressTime formatime.Second `gorm:"column:express_time" json:"expressTime"`
RefundNo string `gorm:"column:refund_no" json:"refundNo"`
RefundStatus uint `gorm:"column:refund_status" json:"refundStatus"`
FinishTime formatime.Second `gorm:"column:finish_time" json:"finishTime"`
CreatedAt formatime.Second `gorm:"column:created_at" json:"createdAt"`
IsClosed int `gorm:"is_closed" json:"isClosed"`
ReasonId int `gorm:"reason_id" json:"reasonId"`
ReasonType uint `gorm:"reason_type" json:"reasonType"`
ThirdPartyType int `gorm:"third_party_type" json:"thirdPartyType"`
ReasonContent string `gorm:"reason_content" json:"reasonContent"`
ReasonImg string `gorm:"reason_img" json:"reasonImg"`
SupplierPrice decimal.Decimal `gorm:"supplier_price" json:"supplierPrice"`
}
// TableName sets the insert table name for this struct type
func (r *RecookAfterSalesGoodsModel) TableName() string {
return "recook_after_sales_goods"
}
// @Style 获取列表
func (r *RecookAfterSalesGoodsModel) GetLists(start, limit int, order string, query interface{}, args ...interface{}) (result []RecookAfterSalesGoodsModel) {
r.GetDb().Model(&RecookAfterSalesGoodsModel{}).Where(query, args...).Offset(start).Limit(limit).Order(order).Find(&result)
return
}
// @Style 获取总数
func (r *RecookAfterSalesGoodsModel) GetListsTotal(query interface{}, args ...interface{}) (result int) {
r.GetDb().Model(&RecookAfterSalesGoodsModel{}).Where(query, args...).Count(&result)
return
}
// GetCount 获取数量.
func (r *RecookAfterSalesGoodsModel) GetCount(where interface{}, args ...interface{}) (count uint) {
r.GetDb().Model(&RecookAfterSalesGoodsModel{}).Where(where, args).Count(&count)
return
}
// GetAFTByID 通过id获取.
func (r *RecookAfterSalesGoodsModel) GetAFTByID(by uint) (res RecookAfterSalesGoodsModel) {
r.GetDb().Model(&RecookAfterSalesGoodsModel{}).Where("id = ?", by).Find(&res)
return
}
// UpdateByID 通过id更新.
func (r *RecookAfterSalesGoodsModel) UpdateByID(by uint, values interface{}, ignoreProtectedAttrs ...bool) error {
return r.GetDb().Model(&RecookAfterSalesGoodsModel{}).Where("id = ?", by).
Omit("id").Updates(values, ignoreProtectedAttrs...).Error
}
//
func (r *RecookAfterSalesGoodsModel) GetRefundLogContent() string {
return "退款金额¥" +
r.RefundAmount.String() +
"将原路退回至您的付款账户,请及时关注到账情况。"
}