diff --git a/controller/game_card.go b/controller/game_card.go index 4f856fd..87aaf18 100644 --- a/controller/game_card.go +++ b/controller/game_card.go @@ -251,13 +251,49 @@ func PushWXPayNotice(c *gin.Context) { if notify.Attach == wxpay.WxPayRentCard { logger.Info("租借游戏卡 支付成功:") - - err = model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).GetUpdater(). - SetPayStatus(model.PayStatusPaid).SetPayTime(time.Now()).Update() + var order model.Order + err := model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).One(&order) if err != nil { logger.Error("err:", err) + return } + begin := model.DB.Begin() + err = model.NewOrderQuerySet(begin).IDEq(order.ID).GetUpdater(). + SetPayStatus(model.PayStatusPaid).SetPayTime(time.Now()).Update() + if err != nil { + begin.Rollback() + logger.Error("err:", err) + return + } + //model.OrderCard{} + _, err = model.NewOrderCardQuerySet(begin).OrderIdEq(order.ID).GetUpdater(). + SetPayStatus(model.PayStatusPaid).UpdateNum() + if err != nil { + begin.Rollback() + logger.Error("err:", err) + return + } + err = order.InventoryReduction(begin) + if err != nil { + begin.Rollback() + logger.Error("err:", err) + return + } + err = begin.Commit().Error + if err != nil { + begin.Rollback() + logger.Error("err:", err) + return + } + + count, err := model.NewOrderQuerySet(begin).IDEq(order.ID).Count() + if err != nil { + logger.Error("err:", err) + return + } + + go model.OrderCardUserRentCard(uint32(order.Uid), uint32(count), nil) } else if notify.Attach == wxpay.WxPayMember { logger.Info("开通会员 支付成功:") @@ -364,17 +400,29 @@ func PushWXPayNotice(c *gin.Context) { } else if notify.Attach == wxpay.WxPayDeposit { record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo} err := record.GetByOpenNo() - if err != nil { - logger.Error("err:", err) - } - - configInfo, err := model.PayConfigInfo() if err != nil { logger.Error("err:", err) return } - num, err := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetDeposit(configInfo.DepositFee).UpdateNum() + //configInfo, err := model.PayConfigInfo() + //if err != nil { + // logger.Error("err:", err) + // return + //} + user := model.GetUserByUid(record.Uid) + if user == nil { + logger.Error("user nil") + return + } + + memberConfig, err := model.GetMemberConfig(user.MemberLevel) + if err != nil { + logger.Error("err:",err) + return + } + + num, err := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetDeposit(memberConfig.MemberDeposit).UpdateNum() if err != nil { logger.Error("update deposit err:", err) } diff --git a/controller/order.go b/controller/order.go index 08dc661..f31d982 100644 --- a/controller/order.go +++ b/controller/order.go @@ -55,14 +55,9 @@ import ( // } //} -func OrderList(c *gin.Context) { - req := struct { - Page int `json:"page"` - PageSize int `json:"page_size"` - }{ - Page: 1, - PageSize: 10, - } +func RentCardOrderList(c *gin.Context) { + fmt.Println("RentCardOrderList") + req := model.OrderListReq{} if c.ShouldBindJSON(&req) != nil { logger.Error("ShouldBindJSON err") RespJson(c, status.BadRequest, nil) @@ -74,7 +69,10 @@ func OrderList(c *gin.Context) { RespJson(c, status.Unauthorized, nil) return } - orderList, totalPage, err := model.GetOrderList(uint64(uc.Uid), req.Page, req.PageSize) // TODO + req.Uid = uc.Uid + + + orderCardList, totalPage, err := req.GetOrderCardList() // TODO if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) @@ -82,9 +80,9 @@ func OrderList(c *gin.Context) { } ret := map[string]interface{}{ - "order_list": orderList, - "cur_page": req.Page, - "total_page": totalPage, + "order_card_list": orderCardList, + "cur_page": req.Page, + "total_page": totalPage, } RespOK(c, ret) return @@ -92,7 +90,9 @@ func OrderList(c *gin.Context) { func OrderInfo(c *gin.Context) { req := struct { - OrderId uint32 `json:"order_id"` + OrderId uint32 `json:"order_id"` + GameCardId uint64 `json:"game_card_id"` // 游戏id + GameCardGoodsId uint64 `json:"game_card_goods_id" ` // 游戏卡id }{} if c.ShouldBindJSON(&req) != nil { logger.Error("ShouldBindJSON err") @@ -101,14 +101,18 @@ func OrderInfo(c *gin.Context) { } order := model.Order{} order.ID = req.OrderId + order.GameCardId = req.GameCardId info, err := order.Info() if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } - - RespOK(c, info) + var orderCard model.OrderCard + if len(info) > 0 { + orderCard = info[0] + } + RespOK(c, orderCard) return } @@ -155,15 +159,15 @@ func WXPaySuccess(c *gin.Context) { var orderCreateLocker sync.Mutex // 创建订单 -func OrderCreate(c *gin.Context) { +func RentCardOrderCreate(c *gin.Context) { //type Goods struct { // Price uint32 `json:"price"` //} req := struct { GameCardList []model.CardInfo `json:"game_card_list"` - StoreId uint64 `json:"store_id"` - UserAddressId uint64 `json:"user_address_id"` + StoreId uint32 `json:"store_id"` + UserAddressId uint32 `json:"user_address_id"` Price uint32 `json:"price"` DeliveryType uint8 `json:"delivery_type"` // 取货方式 ExpressFee uint32 `json:"express_fee"` @@ -217,38 +221,52 @@ func OrderCreate(c *gin.Context) { RespJson(c, status.NotMember, nil) return } - if user.Deposit == 0 { - logger.Error(errors.New("user deposit 0")) - RespJson(c, status.OrderUnpaidDeposit, nil) - return - } + memberConfig, err := model.GetMemberConfig(user.MemberLevel) if err != nil { logger.Error("GetMemberConfig err:", err) RespJson(c, status.InternalServerError, nil) return } + if user.Deposit != memberConfig.MemberDeposit { + logger.Error(errors.New("user deposit 0")) + RespJson(c, status.OrderUnpaidDeposit, nil) + return + } + cardCount := uint32(0) for _, v := range req.GameCardList { cardCount += v.Count } - if memberConfig.MemberLever < cardCount { + fmt.Println("cardCount:", cardCount) + rentCard := model.GetUserRentCard(uc.Uid) + if rentCard == nil { + //logger.Error(errors.New("GetUserByUid err")) + //RespJson(c, status.InternalServerError, nil) + //return + fmt.Println("CardMax", memberConfig.CardMax) + rentCard = &model.UserRentCard{LevelRentCount: memberConfig.CardMax, CanRentCount: memberConfig.CardMax} + } + fmt.Println("rentCard", rentCard.CanRentCount) + if cardCount > rentCard.CanRentCount { logger.Error("GetMemberConfig err:", err) - RespJson(c, status.OrderMemberLevelLow, nil) + RespJson(c, status.OrderOutRentCount, nil) return } - model.UnPayOrderSetCancel(user.Uid) + // 订单成功后 扣减库存 + //model.UnPayOrderSetCancel(user.Uid) orderCreateLocker.Lock() defer orderCreateLocker.Unlock() - unreturnedOrders, err := model.IsHaveUnreturnedOrders(uc.Uid) // TODO + isRentCount, err := rentCard.IsHaveUnreturnedOrders(cardCount) + //unreturnedOrders, err := model.IsHaveUnreturnedOrders(uc.Uid) // TODO if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } - if unreturnedOrders { + if isRentCount { logger.Error("unreturnedOrders") RespJson(c, status.HaveUnreturnedOrders, nil) return @@ -265,9 +283,9 @@ func OrderCreate(c *gin.Context) { RespJson(c, status.GoodsSoldOut, nil) return } - if req.DeliveryType == 1 { - } + //if req.DeliveryType == 1 { + //} reqJson, _ := json.Marshal(&req) fmt.Println("reqJson:", string(reqJson)) @@ -277,8 +295,8 @@ func OrderCreate(c *gin.Context) { order := model.Order{ Uid: uint64(uc.Uid), GameCardId: 0, - StoreId: req.StoreId, - UserAddressId: req.UserAddressId, + StoreId: uint64(req.StoreId), + UserAddressId: uint64(req.UserAddressId), DeliveryType: req.DeliveryType, Count: 1, PickupCode: model.GetPickupCode(), // TODO 取货码 @@ -290,8 +308,7 @@ func OrderCreate(c *gin.Context) { Postage: req.ExpressFee, } - //tx := model.TransactionBegin() - ////TODO 以支付成功作为订单下单成功的依据,不是订单创建 已修改 + //TODO 以支付成功作为订单下单成功的依据,不是订单创建 已修改 //var gameCardGoodsStock model.GameCardGoodsStock //err = model.NewGameCardGoodsStockQuerySet(model.DB).StoreIdEq(req.StoreId).GameCardIdEq(req.GameCardId).One(&gameCardGoodsStock) //if err != nil { @@ -304,52 +321,86 @@ func OrderCreate(c *gin.Context) { // RespJson(c, status.OrderStockOut, nil) // return //} - // - //fmt.Println("PayPrice:", order.PayPrice) - //if req.Price == 0 { - // order.PayStatus = model.PayStatusPaid - // fmt.Println("orderId:", order.PayStatus) - // err = order.OrderCreate() - // if err != nil { - // logger.Error("err:", err) - // RespJson(c, status.InternalServerError, nil) - // return - // } - // - // // 减库存 - // sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) - // fmt.Println("sql:", sql) - // err = model.DB.Exec(sql).Error - // if err != nil { - // logger.Errorf("err:", err) - // RespJson(c, status.InternalServerError, nil) - // return - // } - // - // ret := map[string]interface{}{ - // "web_pay": "", - // "order_id": order.ID, - // } - // RespOK(c, ret) - // return - //} - // - //begin := model.DB.Begin() - ////err = order.OrderCreate() - ////if err != nil { - //// logger.Error("err:", err) - //// RespJson(c, status.InternalServerError, nil) - //// return - ////} - //err = order.Create(begin) + stockEnough, err := model.IsCardGoodsStockEnough(req.GameCardList, req.StoreId) + if err != nil { + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + if stockEnough { + logger.Error("order stock out ") + RespJson(c, status.OrderStockOut, nil) + return + } + + fmt.Println("PayPrice:", order.PayPrice) + if req.Price == 0 { + tx := model.TransactionBegin() + order.PayStatus = model.PayStatusPaid + fmt.Println("orderId:", order.PayStatus) + err = order.OrderCreate(tx) + if err != nil { + tx.Rollback() + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + + // 减库存 + //sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) + //fmt.Println("sql:", sql) + //err = model.DB.Exec(sql).Error + //if err != nil { + // logger.Errorf("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + //} + err := model.GameCardGoodsInventoryReduction(req.GameCardList, req.StoreId, tx) + if err != nil { + tx.Rollback() + logger.Error("inventory reduction err:%s", err.Error()) + RespJson(c, status.InternalServerError, nil) + return + } + err = order.CreatOrderCard(req.GameCardList, req.StoreId, tx) + if err != nil { + tx.Rollback() + logger.Error("inventory reduction err:%s", err.Error()) + RespJson(c, status.InternalServerError, nil) + return + } + err = tx.Commit().Error + if err != nil { + tx.Rollback() + logger.Error("commit err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + go model.OrderCardUserRentCard(uc.Uid, cardCount, memberConfig) + ret := map[string]interface{}{ + "web_pay": "", + "order_id": order.ID, + } + RespOK(c, ret) + return + } + + //err = order.OrderCreate() //if err != nil { - // begin.Rollback() // logger.Error("err:", err) // RespJson(c, status.InternalServerError, nil) // return //} - // - //// 减库存 + begin := model.DB.Begin() + err = order.Create(begin) + if err != nil { + begin.Rollback() + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + + // 减库存 //sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) //fmt.Println("sql:", sql) //err = begin.Exec(sql).Error @@ -359,14 +410,29 @@ func OrderCreate(c *gin.Context) { // RespJson(c, status.InternalServerError, nil) // return //} - //err = begin.Commit().Error + // TODO 订单回调成功减库存 + //err = model.GameCardGoodsInventoryReduction(req.GameCardList, req.StoreId, begin) //if err != nil { // begin.Rollback() - // logger.Errorf("err:", err) + // logger.Error("inventory reduction err:%s", err.Error()) // RespJson(c, status.InternalServerError, nil) // return //} - // + err = order.CreatOrderCard(req.GameCardList, req.StoreId, begin) + if err != nil { + begin.Rollback() + logger.Error("inventory reduction err:%s", err.Error()) + RespJson(c, status.InternalServerError, nil) + return + } + err = begin.Commit().Error + if err != nil { + begin.Rollback() + logger.Errorf("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + //orderId := fmt.Sprintf("%d", order.ID) ////orderId = "100000" //fmt.Println("orderId", orderId) @@ -712,14 +778,14 @@ func OrderRevert(c *gin.Context) { } //order := model.Order{} //order.ID = req.OrderId - info, err := order.Revert() + err := order.Revert() if err != nil { logger.Error("err:", err) RespJson(c, status.OrderCompleted, nil) return } - RespOK(c, info) + RespOK(c, nil) return } @@ -732,22 +798,55 @@ func OrderRevertCancel(c *gin.Context) { } //order := model.Order{} //order.ID = req.OrderId - info, err := order.RevertCancel() + _, err := order.RevertCancel() if err != nil { logger.Error("err:", err) - RespJson(c, status.OrderCompleted, nil) + RespJson(c, status.OrderStatusNotReturning, nil) return } - - RespOK(c, info) + //if isRecede { + // outTradeNo, err := model.GetWxPayExpressFeeRefundRecord(order.ID) + // if err != nil { + // logger.Error("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + // } + // + // orderSn := model.GetOrderSn() + // err = model.UserOpenMemberRecord{Uid: uint32(order.Uid), OpenNo: orderSn, OrderId: order.ID, OrderType: 2}.Insert() + // if err != nil { + // logger.Error(errors.New("WebPay err")) + // RespJson(c, status.InternalServerError, nil) + // return + // } + // + // orderRefund := wxpay.OrderRefund{ + // OutTradeNo: outTradeNo, + // OutRefundNo: orderSn, + // NotifyUrl: "", + // Amount: wxpay.OrderRefundAmount{ + // Refund: order.PayPrice, + // Total: order.PayPrice, + // Currency: "CNY", + // }, + // } + // //bytes, _ := json.Marshal(orderRefund) + // //fmt.Println("订单取消:", string(bytes)) + // //err = wxpay.WxPayOrderRefund(orderRefund) + // err = wxpay.TransactionOrderRefund(orderRefund) + // if err != nil { + // logger.Error("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + // } + //} + RespOK(c, nil) return } func OrderCancel(c *gin.Context) { - req := struct { - OrderId uint32 `json:"order_id"` - }{} - if c.ShouldBindJSON(&req) != nil { + order := model.Order{} + if c.ShouldBindJSON(&order) != nil { logger.Error("ShouldBindJSON err") RespJson(c, status.BadRequest, nil) return @@ -758,10 +857,10 @@ func OrderCancel(c *gin.Context) { // RespJson(c, status.Unauthorized, nil) // return //} - fmt.Println("OrderId:", req.OrderId) - order := &model.Order{} - order.ID = req.OrderId - err := order.Cancel() + fmt.Println("OrderId:", order.ID) + //order := &model.Order{} + //order.ID = req.OrderId + isRecede, err := order.Cancel() if err != nil { logger.Error("err:", err) RespJson(c, status.OrderDelivered, nil) @@ -769,7 +868,14 @@ func OrderCancel(c *gin.Context) { } fmt.Println("order:", order) - if order.DeliveryType == 2 { + if isRecede { + err = model.NewOrderQuerySet(model.DB).IDEq(order.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update() + if err != nil { + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + outTradeNo, err := model.GetWxPayExpressFeeRefundRecord(order.ID) if err != nil { logger.Error("err:", err) diff --git a/controller/user.go b/controller/user.go index fdf541c..babcbc8 100644 --- a/controller/user.go +++ b/controller/user.go @@ -260,7 +260,84 @@ func OpenMember(c *gin.Context) { //} //orderSn := utils.GetSerialNo32HEXString() orderSn := model.GetOrderSn() - err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn,MemberLevel: req.MemberLevel}.Insert() + err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: req.MemberLevel}.Insert() + if err != nil { + logger.Error(errors.New("WebPay err")) + RespJson(c, status.InternalServerError, nil) + return + } + + webPay, err := wxpay.WebPay(orderSn, totalFee, user.WxOpenID, "N", wxpay.WxPayMember) + if err != nil { + logger.Error(errors.New("WebPay err")) + RespJson(c, status.InternalServerError, nil) + return + } + + RespOK(c, webPay) +} + +func UpgradeMember(c *gin.Context) { + req := struct { + MemberLevel uint32 `json:"member_level"` // 昵称 + }{} + if c.ShouldBindJSON(&req) != nil { + logger.Error("parameter err") + RespJson(c, status.BadRequest, nil) + return + } + uc := auth.GetCurrentUser(c) + if uc == nil { + RespJson(c, status.Unauthorized, nil) + return + } + + user := model.GetUserByUid(uc.Uid) + if user.MemberLevel != 2 && user.MemberLevel != 4 { + logger.Error("MemberLevel err:") + RespJson(c, status.InternalServerError, nil) + return + } + //configInfo, err := model.PayConfigInfo() + //if err != nil { + // logger.Error("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + //} + memberConfig, err := model.GetMemberConfig(req.MemberLevel) + if err != nil { + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + + //totalFee := uint32(MemberFee + DepositFee) + ////totalFee = uint32(3) // TODO 测试 + //if user.Deposit == 300 { + // totalFee = MemberFee + // // //totalFee = uint32(1) // TODO 测试 + //} + + fmt.Println("configInfo.MemberFee : configInfo.DepositFee", memberConfig.MemberFee, memberConfig.MemberDeposit) + + totalFee := memberConfig.MemberFee + memberConfig.MemberDeposit + if user.Deposit == memberConfig.MemberDeposit { + totalFee = memberConfig.MemberFee + } + if totalFee == 0 { + logger.Error(errors.New("totalFee is 0")) + RespJson(c, status.InternalServerError, nil) + return + } + //webPay, err := wxpay.WebPay(uid, totalFee, user.WxOpenID, "N", wxpay.WxPayMember) + //if err != nil { + // logger.Error(errors.New("WebPay err")) + // RespJson(c, status.InternalServerError, nil) + // return + //} + //orderSn := utils.GetSerialNo32HEXString() + orderSn := model.GetOrderSn() + err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: req.MemberLevel}.Insert() if err != nil { logger.Error(errors.New("WebPay err")) RespJson(c, status.InternalServerError, nil) @@ -303,7 +380,7 @@ func PayDeposit(c *gin.Context) { //} memberConfig, err := model.GetMemberConfig(level) if err != nil { - logger.Error("GetMemberConfig err:",err) + logger.Error("GetMemberConfig err:", err) RespJson(c, status.InternalServerError, nil) return } @@ -430,3 +507,6 @@ func MemberConfigList(c *gin.Context) { // 会员列表 开通会员 下订单 借卡 还卡 // 会员升级 +// 299会员 升级 +// 订单 会员导数据 +// 退押金记录 diff --git a/lib/status/status.go b/lib/status/status.go index f0becb7..e905a76 100644 --- a/lib/status/status.go +++ b/lib/status/status.go @@ -82,14 +82,16 @@ const ( AwardOffShelves = 500407 //奖品下架 AwardExchangeOut = 500408 //奖品已兑完 - NotMember = 500501 //非会员 - HadReceiveReward = 500502 // 已经领取过奖励 - OrderDelivered = 500503 // 订单已发货 - OrderCompleted = 500504 // 订单已完成 - OrderStockOut = 500505 // 没有库存 - OrderUnpaidDeposit = 500506 // 未交押金 - RefundDepositSubmitted = 500507 // 已提交押金退款 - OrderMemberLevelLow = 500508 // 会员等级低 + NotMember = 500501 //非会员 + HadReceiveReward = 500502 // 已经领取过奖励 + OrderDelivered = 500503 // 订单已发货 + OrderCompleted = 500504 // 订单已完成 + OrderStockOut = 500505 // 没有库存 + OrderUnpaidDeposit = 500506 // 未交押金 + RefundDepositSubmitted = 500507 // 已提交押金退款 + OrderMemberLevelLow = 500508 // 会员等级低 + OrderOutRentCount = 500509 // 会员超过可借卡数 + OrderStatusNotReturning = 500510 // 订单已完成 ToastErr = 600 // 报错 ) @@ -129,8 +131,9 @@ var statusDesc = map[int]string{ ExchangeStepLimit: "今日兑换步数超出上限", - NotExists: "请求的资源不存在", - IsExists: "资源已经存在", + NotExists: "请求的资源不存在", + IsExists: "资源已经存在", + OrderStatusNotReturning: "该卡状态不能取消", InternalServerError: "服务器开小差了,请稍后再试", SmsFail: "短信发送失败", @@ -192,9 +195,9 @@ var statusMsg = map[int]string{ CheckInAlready: "今日已签到", OpenChestTimeNot: "宝箱时间未到", - NotExists: "请求的资源不存在", - IsExists: "资源已经存在", - + NotExists: "请求的资源不存在", + IsExists: "资源已经存在", + OrderOutRentCount: "借卡数量超了", InternalServerError: "服务器开小差了,请稍后再试", SmsFail: "短信发送失败", diff --git a/model/autogenerated_order.go b/model/autogenerated_order.go index 2e96fb1..87b57a5 100644 --- a/model/autogenerated_order.go +++ b/model/autogenerated_order.go @@ -524,6 +524,1557 @@ func NewExpressCompanyUpdater(db *gorm.DB) ExpressCompanyUpdater { // ===== END of ExpressCompany modifiers +// ===== BEGIN of query set OrderCardQuerySet + +// OrderCardQuerySet is an queryset type for OrderCard +type OrderCardQuerySet struct { + db *gorm.DB +} + +// NewOrderCardQuerySet constructs new OrderCardQuerySet +func NewOrderCardQuerySet(db *gorm.DB) OrderCardQuerySet { + return OrderCardQuerySet{ + db: db.Model(&OrderCard{}), + } +} + +func (qs OrderCardQuerySet) w(db *gorm.DB) OrderCardQuerySet { + return NewOrderCardQuerySet(db) +} + +// Create is an autogenerated method +// nolint: dupl +func (o *OrderCard) Create(db *gorm.DB) error { + return db.Create(o).Error +} + +// Delete is an autogenerated method +// nolint: dupl +func (o *OrderCard) Delete(db *gorm.DB) error { + return db.Delete(o).Error +} + +// All is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) All(ret *[]OrderCard) error { + return qs.db.Find(ret).Error +} + +// CardStatusEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusEq(cardStatus uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("card_status = ?", cardStatus)) +} + +// CardStatusGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusGt(cardStatus uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("card_status > ?", cardStatus)) +} + +// CardStatusGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusGte(cardStatus uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("card_status >= ?", cardStatus)) +} + +// CardStatusIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusIn(cardStatus ...uint32) OrderCardQuerySet { + if len(cardStatus) == 0 { + qs.db.AddError(errors.New("must at least pass one cardStatus in CardStatusIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("card_status IN (?)", cardStatus)) +} + +// CardStatusLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusLt(cardStatus uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("card_status < ?", cardStatus)) +} + +// CardStatusLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusLte(cardStatus uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("card_status <= ?", cardStatus)) +} + +// CardStatusNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusNe(cardStatus uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("card_status != ?", cardStatus)) +} + +// CardStatusNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CardStatusNotIn(cardStatus ...uint32) OrderCardQuerySet { + if len(cardStatus) == 0 { + qs.db.AddError(errors.New("must at least pass one cardStatus in CardStatusNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("card_status NOT IN (?)", cardStatus)) +} + +// Count is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) Count() (int, error) { + var count int + err := qs.db.Count(&count).Error + return count, err +} + +// CreatedAtEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CreatedAtEq(createdAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("created_at = ?", createdAt)) +} + +// CreatedAtGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CreatedAtGt(createdAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("created_at > ?", createdAt)) +} + +// CreatedAtGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CreatedAtGte(createdAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("created_at >= ?", createdAt)) +} + +// CreatedAtLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CreatedAtLt(createdAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("created_at < ?", createdAt)) +} + +// CreatedAtLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CreatedAtLte(createdAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("created_at <= ?", createdAt)) +} + +// CreatedAtNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) CreatedAtNe(createdAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("created_at != ?", createdAt)) +} + +// Delete is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) Delete() error { + return qs.db.Delete(OrderCard{}).Error +} + +// DeleteNum is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeleteNum() (int64, error) { + db := qs.db.Delete(OrderCard{}) + return db.RowsAffected, db.Error +} + +// DeleteNumUnscoped is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeleteNumUnscoped() (int64, error) { + db := qs.db.Unscoped().Delete(OrderCard{}) + return db.RowsAffected, db.Error +} + +// DeletedAtEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtEq(deletedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at = ?", deletedAt)) +} + +// DeletedAtGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtGt(deletedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at > ?", deletedAt)) +} + +// DeletedAtGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtGte(deletedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at >= ?", deletedAt)) +} + +// DeletedAtIsNotNull is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtIsNotNull() OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at IS NOT NULL")) +} + +// DeletedAtIsNull is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtIsNull() OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at IS NULL")) +} + +// DeletedAtLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtLt(deletedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at < ?", deletedAt)) +} + +// DeletedAtLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtLte(deletedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at <= ?", deletedAt)) +} + +// DeletedAtNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeletedAtNe(deletedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("deleted_at != ?", deletedAt)) +} + +// DeliveryTimeEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTimeEq(deliveryTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_time = ?", deliveryTime)) +} + +// DeliveryTimeGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTimeGt(deliveryTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_time > ?", deliveryTime)) +} + +// DeliveryTimeGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTimeGte(deliveryTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_time >= ?", deliveryTime)) +} + +// DeliveryTimeLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTimeLt(deliveryTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_time < ?", deliveryTime)) +} + +// DeliveryTimeLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTimeLte(deliveryTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_time <= ?", deliveryTime)) +} + +// DeliveryTimeNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTimeNe(deliveryTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_time != ?", deliveryTime)) +} + +// DeliveryTypeEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeEq(deliveryType uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_type = ?", deliveryType)) +} + +// DeliveryTypeGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeGt(deliveryType uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_type > ?", deliveryType)) +} + +// DeliveryTypeGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeGte(deliveryType uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_type >= ?", deliveryType)) +} + +// DeliveryTypeIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeIn(deliveryType ...uint8) OrderCardQuerySet { + if len(deliveryType) == 0 { + qs.db.AddError(errors.New("must at least pass one deliveryType in DeliveryTypeIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("delivery_type IN (?)", deliveryType)) +} + +// DeliveryTypeLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeLt(deliveryType uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_type < ?", deliveryType)) +} + +// DeliveryTypeLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeLte(deliveryType uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_type <= ?", deliveryType)) +} + +// DeliveryTypeNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeNe(deliveryType uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("delivery_type != ?", deliveryType)) +} + +// DeliveryTypeNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) DeliveryTypeNotIn(deliveryType ...uint8) OrderCardQuerySet { + if len(deliveryType) == 0 { + qs.db.AddError(errors.New("must at least pass one deliveryType in DeliveryTypeNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("delivery_type NOT IN (?)", deliveryType)) +} + +// GameCardGoodsIdEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdEq(gameCardGoodsId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_goods_id = ?", gameCardGoodsId)) +} + +// GameCardGoodsIdGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdGt(gameCardGoodsId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_goods_id > ?", gameCardGoodsId)) +} + +// GameCardGoodsIdGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdGte(gameCardGoodsId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_goods_id >= ?", gameCardGoodsId)) +} + +// GameCardGoodsIdIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdIn(gameCardGoodsId ...uint32) OrderCardQuerySet { + if len(gameCardGoodsId) == 0 { + qs.db.AddError(errors.New("must at least pass one gameCardGoodsId in GameCardGoodsIdIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_card_goods_id IN (?)", gameCardGoodsId)) +} + +// GameCardGoodsIdLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdLt(gameCardGoodsId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_goods_id < ?", gameCardGoodsId)) +} + +// GameCardGoodsIdLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdLte(gameCardGoodsId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_goods_id <= ?", gameCardGoodsId)) +} + +// GameCardGoodsIdNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdNe(gameCardGoodsId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_goods_id != ?", gameCardGoodsId)) +} + +// GameCardGoodsIdNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardGoodsIdNotIn(gameCardGoodsId ...uint32) OrderCardQuerySet { + if len(gameCardGoodsId) == 0 { + qs.db.AddError(errors.New("must at least pass one gameCardGoodsId in GameCardGoodsIdNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_card_goods_id NOT IN (?)", gameCardGoodsId)) +} + +// GameCardIdEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdEq(gameCardId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_id = ?", gameCardId)) +} + +// GameCardIdGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdGt(gameCardId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_id > ?", gameCardId)) +} + +// GameCardIdGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdGte(gameCardId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_id >= ?", gameCardId)) +} + +// GameCardIdIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdIn(gameCardId ...uint32) OrderCardQuerySet { + if len(gameCardId) == 0 { + qs.db.AddError(errors.New("must at least pass one gameCardId in GameCardIdIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_card_id IN (?)", gameCardId)) +} + +// GameCardIdLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdLt(gameCardId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_id < ?", gameCardId)) +} + +// GameCardIdLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdLte(gameCardId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_id <= ?", gameCardId)) +} + +// GameCardIdNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdNe(gameCardId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("game_card_id != ?", gameCardId)) +} + +// GameCardIdNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GameCardIdNotIn(gameCardId ...uint32) OrderCardQuerySet { + if len(gameCardId) == 0 { + qs.db.AddError(errors.New("must at least pass one gameCardId in GameCardIdNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_card_id NOT IN (?)", gameCardId)) +} + +// GetDB is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GetDB() *gorm.DB { + return qs.db +} + +// GetUpdater is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) GetUpdater() OrderCardUpdater { + return NewOrderCardUpdater(qs.db) +} + +// IDEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDEq(ID uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("id = ?", ID)) +} + +// IDGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDGt(ID uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("id > ?", ID)) +} + +// IDGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDGte(ID uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("id >= ?", ID)) +} + +// IDIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDIn(ID ...uint32) OrderCardQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id IN (?)", ID)) +} + +// IDLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDLt(ID uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("id < ?", ID)) +} + +// IDLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDLte(ID uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("id <= ?", ID)) +} + +// IDNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDNe(ID uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("id != ?", ID)) +} + +// IDNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) IDNotIn(ID ...uint32) OrderCardQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id NOT IN (?)", ID)) +} + +// Limit is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) Limit(limit int) OrderCardQuerySet { + return qs.w(qs.db.Limit(limit)) +} + +// Offset is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) Offset(offset int) OrderCardQuerySet { + return qs.w(qs.db.Offset(offset)) +} + +// One is used to retrieve one result. It returns gorm.ErrRecordNotFound +// if nothing was fetched +func (qs OrderCardQuerySet) One(ret *OrderCard) error { + return qs.db.First(ret).Error +} + +// OrderAscByCardStatus is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByCardStatus() OrderCardQuerySet { + return qs.w(qs.db.Order("card_status ASC")) +} + +// OrderAscByCreatedAt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByCreatedAt() OrderCardQuerySet { + return qs.w(qs.db.Order("created_at ASC")) +} + +// OrderAscByDeletedAt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByDeletedAt() OrderCardQuerySet { + return qs.w(qs.db.Order("deleted_at ASC")) +} + +// OrderAscByDeliveryTime is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByDeliveryTime() OrderCardQuerySet { + return qs.w(qs.db.Order("delivery_time ASC")) +} + +// OrderAscByDeliveryType is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByDeliveryType() OrderCardQuerySet { + return qs.w(qs.db.Order("delivery_type ASC")) +} + +// OrderAscByGameCardGoodsId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByGameCardGoodsId() OrderCardQuerySet { + return qs.w(qs.db.Order("game_card_goods_id ASC")) +} + +// OrderAscByGameCardId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByGameCardId() OrderCardQuerySet { + return qs.w(qs.db.Order("game_card_id ASC")) +} + +// OrderAscByID is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByID() OrderCardQuerySet { + return qs.w(qs.db.Order("id ASC")) +} + +// OrderAscByOrderId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByOrderId() OrderCardQuerySet { + return qs.w(qs.db.Order("order_id ASC")) +} + +// OrderAscByPayStatus is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByPayStatus() OrderCardQuerySet { + return qs.w(qs.db.Order("pay_status ASC")) +} + +// OrderAscByReceiptTime is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByReceiptTime() OrderCardQuerySet { + return qs.w(qs.db.Order("receipt_time ASC")) +} + +// OrderAscByRevertExpressDuration is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByRevertExpressDuration() OrderCardQuerySet { + return qs.w(qs.db.Order("revert_express_duration ASC")) +} + +// OrderAscByRevertStoreId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByRevertStoreId() OrderCardQuerySet { + return qs.w(qs.db.Order("revert_store_id ASC")) +} + +// OrderAscByRevertTime is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByRevertTime() OrderCardQuerySet { + return qs.w(qs.db.Order("revert_time ASC")) +} + +// OrderAscByStoreId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByStoreId() OrderCardQuerySet { + return qs.w(qs.db.Order("store_id ASC")) +} + +// OrderAscByUid is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByUid() OrderCardQuerySet { + return qs.w(qs.db.Order("uid ASC")) +} + +// OrderAscByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderAscByUpdatedAt() OrderCardQuerySet { + return qs.w(qs.db.Order("updated_at ASC")) +} + +// OrderDescByCardStatus is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByCardStatus() OrderCardQuerySet { + return qs.w(qs.db.Order("card_status DESC")) +} + +// OrderDescByCreatedAt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByCreatedAt() OrderCardQuerySet { + return qs.w(qs.db.Order("created_at DESC")) +} + +// OrderDescByDeletedAt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByDeletedAt() OrderCardQuerySet { + return qs.w(qs.db.Order("deleted_at DESC")) +} + +// OrderDescByDeliveryTime is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByDeliveryTime() OrderCardQuerySet { + return qs.w(qs.db.Order("delivery_time DESC")) +} + +// OrderDescByDeliveryType is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByDeliveryType() OrderCardQuerySet { + return qs.w(qs.db.Order("delivery_type DESC")) +} + +// OrderDescByGameCardGoodsId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByGameCardGoodsId() OrderCardQuerySet { + return qs.w(qs.db.Order("game_card_goods_id DESC")) +} + +// OrderDescByGameCardId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByGameCardId() OrderCardQuerySet { + return qs.w(qs.db.Order("game_card_id DESC")) +} + +// OrderDescByID is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByID() OrderCardQuerySet { + return qs.w(qs.db.Order("id DESC")) +} + +// OrderDescByOrderId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByOrderId() OrderCardQuerySet { + return qs.w(qs.db.Order("order_id DESC")) +} + +// OrderDescByPayStatus is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByPayStatus() OrderCardQuerySet { + return qs.w(qs.db.Order("pay_status DESC")) +} + +// OrderDescByReceiptTime is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByReceiptTime() OrderCardQuerySet { + return qs.w(qs.db.Order("receipt_time DESC")) +} + +// OrderDescByRevertExpressDuration is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByRevertExpressDuration() OrderCardQuerySet { + return qs.w(qs.db.Order("revert_express_duration DESC")) +} + +// OrderDescByRevertStoreId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByRevertStoreId() OrderCardQuerySet { + return qs.w(qs.db.Order("revert_store_id DESC")) +} + +// OrderDescByRevertTime is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByRevertTime() OrderCardQuerySet { + return qs.w(qs.db.Order("revert_time DESC")) +} + +// OrderDescByStoreId is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByStoreId() OrderCardQuerySet { + return qs.w(qs.db.Order("store_id DESC")) +} + +// OrderDescByUid is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByUid() OrderCardQuerySet { + return qs.w(qs.db.Order("uid DESC")) +} + +// OrderDescByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderDescByUpdatedAt() OrderCardQuerySet { + return qs.w(qs.db.Order("updated_at DESC")) +} + +// OrderIdEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdEq(orderId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("order_id = ?", orderId)) +} + +// OrderIdGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdGt(orderId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("order_id > ?", orderId)) +} + +// OrderIdGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdGte(orderId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("order_id >= ?", orderId)) +} + +// OrderIdIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdIn(orderId ...uint32) OrderCardQuerySet { + if len(orderId) == 0 { + qs.db.AddError(errors.New("must at least pass one orderId in OrderIdIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("order_id IN (?)", orderId)) +} + +// OrderIdLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdLt(orderId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("order_id < ?", orderId)) +} + +// OrderIdLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdLte(orderId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("order_id <= ?", orderId)) +} + +// OrderIdNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdNe(orderId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("order_id != ?", orderId)) +} + +// OrderIdNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) OrderIdNotIn(orderId ...uint32) OrderCardQuerySet { + if len(orderId) == 0 { + qs.db.AddError(errors.New("must at least pass one orderId in OrderIdNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("order_id NOT IN (?)", orderId)) +} + +// PayStatusEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusEq(payStatus uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("pay_status = ?", payStatus)) +} + +// PayStatusGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusGt(payStatus uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("pay_status > ?", payStatus)) +} + +// PayStatusGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusGte(payStatus uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("pay_status >= ?", payStatus)) +} + +// PayStatusIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusIn(payStatus ...uint8) OrderCardQuerySet { + if len(payStatus) == 0 { + qs.db.AddError(errors.New("must at least pass one payStatus in PayStatusIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("pay_status IN (?)", payStatus)) +} + +// PayStatusLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusLt(payStatus uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("pay_status < ?", payStatus)) +} + +// PayStatusLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusLte(payStatus uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("pay_status <= ?", payStatus)) +} + +// PayStatusNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusNe(payStatus uint8) OrderCardQuerySet { + return qs.w(qs.db.Where("pay_status != ?", payStatus)) +} + +// PayStatusNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) PayStatusNotIn(payStatus ...uint8) OrderCardQuerySet { + if len(payStatus) == 0 { + qs.db.AddError(errors.New("must at least pass one payStatus in PayStatusNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("pay_status NOT IN (?)", payStatus)) +} + +// ReceiptTimeEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) ReceiptTimeEq(receiptTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("receipt_time = ?", receiptTime)) +} + +// ReceiptTimeGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) ReceiptTimeGt(receiptTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("receipt_time > ?", receiptTime)) +} + +// ReceiptTimeGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) ReceiptTimeGte(receiptTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("receipt_time >= ?", receiptTime)) +} + +// ReceiptTimeLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) ReceiptTimeLt(receiptTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("receipt_time < ?", receiptTime)) +} + +// ReceiptTimeLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) ReceiptTimeLte(receiptTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("receipt_time <= ?", receiptTime)) +} + +// ReceiptTimeNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) ReceiptTimeNe(receiptTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("receipt_time != ?", receiptTime)) +} + +// RevertExpressCompanyEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyEq(revertExpressCompany string) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_company = ?", revertExpressCompany)) +} + +// RevertExpressCompanyIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyIn(revertExpressCompany ...string) OrderCardQuerySet { + if len(revertExpressCompany) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressCompany in RevertExpressCompanyIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_company IN (?)", revertExpressCompany)) +} + +// RevertExpressCompanyNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyNe(revertExpressCompany string) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_company != ?", revertExpressCompany)) +} + +// RevertExpressCompanyNoEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyNoEq(revertExpressCompanyNo string) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_company_no = ?", revertExpressCompanyNo)) +} + +// RevertExpressCompanyNoIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyNoIn(revertExpressCompanyNo ...string) OrderCardQuerySet { + if len(revertExpressCompanyNo) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressCompanyNo in RevertExpressCompanyNoIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_company_no IN (?)", revertExpressCompanyNo)) +} + +// RevertExpressCompanyNoNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyNoNe(revertExpressCompanyNo string) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_company_no != ?", revertExpressCompanyNo)) +} + +// RevertExpressCompanyNoNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyNoNotIn(revertExpressCompanyNo ...string) OrderCardQuerySet { + if len(revertExpressCompanyNo) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressCompanyNo in RevertExpressCompanyNoNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_company_no NOT IN (?)", revertExpressCompanyNo)) +} + +// RevertExpressCompanyNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressCompanyNotIn(revertExpressCompany ...string) OrderCardQuerySet { + if len(revertExpressCompany) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressCompany in RevertExpressCompanyNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_company NOT IN (?)", revertExpressCompany)) +} + +// RevertExpressDurationEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationEq(revertExpressDuration uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_duration = ?", revertExpressDuration)) +} + +// RevertExpressDurationGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationGt(revertExpressDuration uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_duration > ?", revertExpressDuration)) +} + +// RevertExpressDurationGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationGte(revertExpressDuration uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_duration >= ?", revertExpressDuration)) +} + +// RevertExpressDurationIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationIn(revertExpressDuration ...uint64) OrderCardQuerySet { + if len(revertExpressDuration) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressDuration in RevertExpressDurationIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_duration IN (?)", revertExpressDuration)) +} + +// RevertExpressDurationLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationLt(revertExpressDuration uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_duration < ?", revertExpressDuration)) +} + +// RevertExpressDurationLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationLte(revertExpressDuration uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_duration <= ?", revertExpressDuration)) +} + +// RevertExpressDurationNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationNe(revertExpressDuration uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_duration != ?", revertExpressDuration)) +} + +// RevertExpressDurationNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressDurationNotIn(revertExpressDuration ...uint64) OrderCardQuerySet { + if len(revertExpressDuration) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressDuration in RevertExpressDurationNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_duration NOT IN (?)", revertExpressDuration)) +} + +// RevertExpressNoEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressNoEq(revertExpressNo string) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_no = ?", revertExpressNo)) +} + +// RevertExpressNoIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressNoIn(revertExpressNo ...string) OrderCardQuerySet { + if len(revertExpressNo) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressNo in RevertExpressNoIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_no IN (?)", revertExpressNo)) +} + +// RevertExpressNoNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressNoNe(revertExpressNo string) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_express_no != ?", revertExpressNo)) +} + +// RevertExpressNoNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertExpressNoNotIn(revertExpressNo ...string) OrderCardQuerySet { + if len(revertExpressNo) == 0 { + qs.db.AddError(errors.New("must at least pass one revertExpressNo in RevertExpressNoNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_express_no NOT IN (?)", revertExpressNo)) +} + +// RevertStoreIdEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdEq(revertStoreId uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_store_id = ?", revertStoreId)) +} + +// RevertStoreIdGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdGt(revertStoreId uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_store_id > ?", revertStoreId)) +} + +// RevertStoreIdGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdGte(revertStoreId uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_store_id >= ?", revertStoreId)) +} + +// RevertStoreIdIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdIn(revertStoreId ...uint64) OrderCardQuerySet { + if len(revertStoreId) == 0 { + qs.db.AddError(errors.New("must at least pass one revertStoreId in RevertStoreIdIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_store_id IN (?)", revertStoreId)) +} + +// RevertStoreIdLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdLt(revertStoreId uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_store_id < ?", revertStoreId)) +} + +// RevertStoreIdLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdLte(revertStoreId uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_store_id <= ?", revertStoreId)) +} + +// RevertStoreIdNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdNe(revertStoreId uint64) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_store_id != ?", revertStoreId)) +} + +// RevertStoreIdNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertStoreIdNotIn(revertStoreId ...uint64) OrderCardQuerySet { + if len(revertStoreId) == 0 { + qs.db.AddError(errors.New("must at least pass one revertStoreId in RevertStoreIdNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("revert_store_id NOT IN (?)", revertStoreId)) +} + +// RevertTimeEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertTimeEq(revertTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_time = ?", revertTime)) +} + +// RevertTimeGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertTimeGt(revertTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_time > ?", revertTime)) +} + +// RevertTimeGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertTimeGte(revertTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_time >= ?", revertTime)) +} + +// RevertTimeLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertTimeLt(revertTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_time < ?", revertTime)) +} + +// RevertTimeLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertTimeLte(revertTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_time <= ?", revertTime)) +} + +// RevertTimeNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) RevertTimeNe(revertTime time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("revert_time != ?", revertTime)) +} + +// SerialNumberEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) SerialNumberEq(serialNumber string) OrderCardQuerySet { + return qs.w(qs.db.Where("serial_number = ?", serialNumber)) +} + +// SerialNumberIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) SerialNumberIn(serialNumber ...string) OrderCardQuerySet { + if len(serialNumber) == 0 { + qs.db.AddError(errors.New("must at least pass one serialNumber in SerialNumberIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("serial_number IN (?)", serialNumber)) +} + +// SerialNumberNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) SerialNumberNe(serialNumber string) OrderCardQuerySet { + return qs.w(qs.db.Where("serial_number != ?", serialNumber)) +} + +// SerialNumberNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) SerialNumberNotIn(serialNumber ...string) OrderCardQuerySet { + if len(serialNumber) == 0 { + qs.db.AddError(errors.New("must at least pass one serialNumber in SerialNumberNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("serial_number NOT IN (?)", serialNumber)) +} + +// StoreIdEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdEq(storeId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("store_id = ?", storeId)) +} + +// StoreIdGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdGt(storeId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("store_id > ?", storeId)) +} + +// StoreIdGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdGte(storeId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("store_id >= ?", storeId)) +} + +// StoreIdIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdIn(storeId ...uint32) OrderCardQuerySet { + if len(storeId) == 0 { + qs.db.AddError(errors.New("must at least pass one storeId in StoreIdIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("store_id IN (?)", storeId)) +} + +// StoreIdLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdLt(storeId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("store_id < ?", storeId)) +} + +// StoreIdLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdLte(storeId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("store_id <= ?", storeId)) +} + +// StoreIdNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdNe(storeId uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("store_id != ?", storeId)) +} + +// StoreIdNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) StoreIdNotIn(storeId ...uint32) OrderCardQuerySet { + if len(storeId) == 0 { + qs.db.AddError(errors.New("must at least pass one storeId in StoreIdNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("store_id NOT IN (?)", storeId)) +} + +// UidEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidEq(uid uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("uid = ?", uid)) +} + +// UidGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidGt(uid uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("uid > ?", uid)) +} + +// UidGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidGte(uid uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("uid >= ?", uid)) +} + +// UidIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidIn(uid ...uint32) OrderCardQuerySet { + if len(uid) == 0 { + qs.db.AddError(errors.New("must at least pass one uid in UidIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("uid IN (?)", uid)) +} + +// UidLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidLt(uid uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("uid < ?", uid)) +} + +// UidLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidLte(uid uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("uid <= ?", uid)) +} + +// UidNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidNe(uid uint32) OrderCardQuerySet { + return qs.w(qs.db.Where("uid != ?", uid)) +} + +// UidNotIn is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UidNotIn(uid ...uint32) OrderCardQuerySet { + if len(uid) == 0 { + qs.db.AddError(errors.New("must at least pass one uid in UidNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("uid NOT IN (?)", uid)) +} + +// UpdatedAtEq is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UpdatedAtEq(updatedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("updated_at = ?", updatedAt)) +} + +// UpdatedAtGt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UpdatedAtGt(updatedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("updated_at > ?", updatedAt)) +} + +// UpdatedAtGte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UpdatedAtGte(updatedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("updated_at >= ?", updatedAt)) +} + +// UpdatedAtLt is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UpdatedAtLt(updatedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("updated_at < ?", updatedAt)) +} + +// UpdatedAtLte is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UpdatedAtLte(updatedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("updated_at <= ?", updatedAt)) +} + +// UpdatedAtNe is an autogenerated method +// nolint: dupl +func (qs OrderCardQuerySet) UpdatedAtNe(updatedAt time.Time) OrderCardQuerySet { + return qs.w(qs.db.Where("updated_at != ?", updatedAt)) +} + +// SetCardStatus is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetCardStatus(cardStatus uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.CardStatus)] = cardStatus + return u +} + +// SetCreatedAt is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetCreatedAt(createdAt time.Time) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.CreatedAt)] = createdAt + return u +} + +// SetDeletedAt is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetDeletedAt(deletedAt *time.Time) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.DeletedAt)] = deletedAt + return u +} + +// SetDeliveryTime is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetDeliveryTime(deliveryTime time.Time) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.DeliveryTime)] = deliveryTime + return u +} + +// SetDeliveryType is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetDeliveryType(deliveryType uint8) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.DeliveryType)] = deliveryType + return u +} + +// SetGameCardGoodsId is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetGameCardGoodsId(gameCardGoodsId uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.GameCardGoodsId)] = gameCardGoodsId + return u +} + +// SetGameCardId is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetGameCardId(gameCardId uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.GameCardId)] = gameCardId + return u +} + +// SetID is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetID(ID uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.ID)] = ID + return u +} + +// SetOrderId is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetOrderId(orderId uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.OrderId)] = orderId + return u +} + +// SetPayStatus is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetPayStatus(payStatus uint8) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.PayStatus)] = payStatus + return u +} + +// SetReceiptTime is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetReceiptTime(receiptTime time.Time) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.ReceiptTime)] = receiptTime + return u +} + +// SetRevertExpressCompany is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetRevertExpressCompany(revertExpressCompany string) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.RevertExpressCompany)] = revertExpressCompany + return u +} + +// SetRevertExpressCompanyNo is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetRevertExpressCompanyNo(revertExpressCompanyNo string) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.RevertExpressCompanyNo)] = revertExpressCompanyNo + return u +} + +// SetRevertExpressDuration is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetRevertExpressDuration(revertExpressDuration uint64) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.RevertExpressDuration)] = revertExpressDuration + return u +} + +// SetRevertExpressNo is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetRevertExpressNo(revertExpressNo string) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.RevertExpressNo)] = revertExpressNo + return u +} + +// SetRevertStoreId is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetRevertStoreId(revertStoreId uint64) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.RevertStoreId)] = revertStoreId + return u +} + +// SetRevertTime is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetRevertTime(revertTime time.Time) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.RevertTime)] = revertTime + return u +} + +// SetSerialNumber is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetSerialNumber(serialNumber string) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.SerialNumber)] = serialNumber + return u +} + +// SetStoreId is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetStoreId(storeId uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.StoreId)] = storeId + return u +} + +// SetUid is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetUid(uid uint32) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.Uid)] = uid + return u +} + +// SetUpdatedAt is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) SetUpdatedAt(updatedAt time.Time) OrderCardUpdater { + u.fields[string(OrderCardDBSchema.UpdatedAt)] = updatedAt + return u +} + +// Update is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) Update() error { + return u.db.Updates(u.fields).Error +} + +// UpdateNum is an autogenerated method +// nolint: dupl +func (u OrderCardUpdater) UpdateNum() (int64, error) { + db := u.db.Updates(u.fields) + return db.RowsAffected, db.Error +} + +// ===== END of query set OrderCardQuerySet + +// ===== BEGIN of OrderCard modifiers + +// OrderCardDBSchemaField describes database schema field. It requires for method 'Update' +type OrderCardDBSchemaField string + +// String method returns string representation of field. +// nolint: dupl +func (f OrderCardDBSchemaField) String() string { + return string(f) +} + +// OrderCardDBSchema stores db field names of OrderCard +var OrderCardDBSchema = struct { + ID OrderCardDBSchemaField + CreatedAt OrderCardDBSchemaField + UpdatedAt OrderCardDBSchemaField + DeletedAt OrderCardDBSchemaField + OrderId OrderCardDBSchemaField + Uid OrderCardDBSchemaField + GameCardId OrderCardDBSchemaField + GameCardGoodsId OrderCardDBSchemaField + StoreId OrderCardDBSchemaField + CardStatus OrderCardDBSchemaField + DeliveryTime OrderCardDBSchemaField + ReceiptTime OrderCardDBSchemaField + DeliveryType OrderCardDBSchemaField + SerialNumber OrderCardDBSchemaField + PayStatus OrderCardDBSchemaField + RevertStoreId OrderCardDBSchemaField + RevertTime OrderCardDBSchemaField + RevertExpressCompany OrderCardDBSchemaField + RevertExpressCompanyNo OrderCardDBSchemaField + RevertExpressNo OrderCardDBSchemaField + RevertExpressDuration OrderCardDBSchemaField +}{ + + ID: OrderCardDBSchemaField("id"), + CreatedAt: OrderCardDBSchemaField("created_at"), + UpdatedAt: OrderCardDBSchemaField("updated_at"), + DeletedAt: OrderCardDBSchemaField("deleted_at"), + OrderId: OrderCardDBSchemaField("order_id"), + Uid: OrderCardDBSchemaField("uid"), + GameCardId: OrderCardDBSchemaField("game_card_id"), + GameCardGoodsId: OrderCardDBSchemaField("game_card_goods_id"), + StoreId: OrderCardDBSchemaField("store_id"), + CardStatus: OrderCardDBSchemaField("card_status"), + DeliveryTime: OrderCardDBSchemaField("delivery_time"), + ReceiptTime: OrderCardDBSchemaField("receipt_time"), + DeliveryType: OrderCardDBSchemaField("delivery_type"), + SerialNumber: OrderCardDBSchemaField("serial_number"), + PayStatus: OrderCardDBSchemaField("pay_status"), + RevertStoreId: OrderCardDBSchemaField("revert_store_id"), + RevertTime: OrderCardDBSchemaField("revert_time"), + RevertExpressCompany: OrderCardDBSchemaField("revert_express_company"), + RevertExpressCompanyNo: OrderCardDBSchemaField("revert_express_company_no"), + RevertExpressNo: OrderCardDBSchemaField("revert_express_no"), + RevertExpressDuration: OrderCardDBSchemaField("revert_express_duration"), +} + +// Update updates OrderCard fields by primary key +// nolint: dupl +func (o *OrderCard) Update(db *gorm.DB, fields ...OrderCardDBSchemaField) error { + dbNameToFieldName := map[string]interface{}{ + "id": o.ID, + "created_at": o.CreatedAt, + "updated_at": o.UpdatedAt, + "deleted_at": o.DeletedAt, + "order_id": o.OrderId, + "uid": o.Uid, + "game_card_id": o.GameCardId, + "game_card_goods_id": o.GameCardGoodsId, + "store_id": o.StoreId, + "card_status": o.CardStatus, + "delivery_time": o.DeliveryTime, + "receipt_time": o.ReceiptTime, + "delivery_type": o.DeliveryType, + "serial_number": o.SerialNumber, + "pay_status": o.PayStatus, + "revert_store_id": o.RevertStoreId, + "revert_time": o.RevertTime, + "revert_express_company": o.RevertExpressCompany, + "revert_express_company_no": o.RevertExpressCompanyNo, + "revert_express_no": o.RevertExpressNo, + "revert_express_duration": o.RevertExpressDuration, + } + u := map[string]interface{}{} + for _, f := range fields { + fs := f.String() + u[fs] = dbNameToFieldName[fs] + } + if err := db.Model(o).Updates(u).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return err + } + + return fmt.Errorf("can't update OrderCard %v fields %v: %s", + o, fields, err) + } + + return nil +} + +// OrderCardUpdater is an OrderCard updates manager +type OrderCardUpdater struct { + fields map[string]interface{} + db *gorm.DB +} + +// NewOrderCardUpdater creates new OrderCard updater +// nolint: dupl +func NewOrderCardUpdater(db *gorm.DB) OrderCardUpdater { + return OrderCardUpdater{ + fields: map[string]interface{}{}, + db: db.Model(&OrderCard{}), + } +} + +// ===== END of OrderCard modifiers + // ===== BEGIN of query set OrderQuerySet // OrderQuerySet is an queryset type for Order diff --git a/model/autogenerated_user.go b/model/autogenerated_user.go index 84267e3..98a37b8 100644 --- a/model/autogenerated_user.go +++ b/model/autogenerated_user.go @@ -1401,6 +1401,711 @@ func NewDepositRefundRecordUpdater(db *gorm.DB) DepositRefundRecordUpdater { // ===== END of DepositRefundRecord modifiers +// ===== BEGIN of query set UserConsumeRecordQuerySet + +// UserConsumeRecordQuerySet is an queryset type for UserConsumeRecord +type UserConsumeRecordQuerySet struct { + db *gorm.DB +} + +// NewUserConsumeRecordQuerySet constructs new UserConsumeRecordQuerySet +func NewUserConsumeRecordQuerySet(db *gorm.DB) UserConsumeRecordQuerySet { + return UserConsumeRecordQuerySet{ + db: db.Model(&UserConsumeRecord{}), + } +} + +func (qs UserConsumeRecordQuerySet) w(db *gorm.DB) UserConsumeRecordQuerySet { + return NewUserConsumeRecordQuerySet(db) +} + +// Create is an autogenerated method +// nolint: dupl +func (o *UserConsumeRecord) Create(db *gorm.DB) error { + return db.Create(o).Error +} + +// Delete is an autogenerated method +// nolint: dupl +func (o *UserConsumeRecord) Delete(db *gorm.DB) error { + return db.Delete(o).Error +} + +// All is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) All(ret *[]UserConsumeRecord) error { + return qs.db.Find(ret).Error +} + +// AmountEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountEq(amount uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("amount = ?", amount)) +} + +// AmountGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountGt(amount uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("amount > ?", amount)) +} + +// AmountGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountGte(amount uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("amount >= ?", amount)) +} + +// AmountIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountIn(amount ...uint32) UserConsumeRecordQuerySet { + if len(amount) == 0 { + qs.db.AddError(errors.New("must at least pass one amount in AmountIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("amount IN (?)", amount)) +} + +// AmountLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountLt(amount uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("amount < ?", amount)) +} + +// AmountLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountLte(amount uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("amount <= ?", amount)) +} + +// AmountNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountNe(amount uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("amount != ?", amount)) +} + +// AmountNotIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) AmountNotIn(amount ...uint32) UserConsumeRecordQuerySet { + if len(amount) == 0 { + qs.db.AddError(errors.New("must at least pass one amount in AmountNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("amount NOT IN (?)", amount)) +} + +// ConsumeTypeEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) ConsumeTypeEq(consumeType string) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("consume_type = ?", consumeType)) +} + +// ConsumeTypeIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) ConsumeTypeIn(consumeType ...string) UserConsumeRecordQuerySet { + if len(consumeType) == 0 { + qs.db.AddError(errors.New("must at least pass one consumeType in ConsumeTypeIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("consume_type IN (?)", consumeType)) +} + +// ConsumeTypeNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) ConsumeTypeNe(consumeType string) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("consume_type != ?", consumeType)) +} + +// ConsumeTypeNotIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) ConsumeTypeNotIn(consumeType ...string) UserConsumeRecordQuerySet { + if len(consumeType) == 0 { + qs.db.AddError(errors.New("must at least pass one consumeType in ConsumeTypeNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("consume_type NOT IN (?)", consumeType)) +} + +// Count is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) Count() (int, error) { + var count int + err := qs.db.Count(&count).Error + return count, err +} + +// CreatedAtEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) CreatedAtEq(createdAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("created_at = ?", createdAt)) +} + +// CreatedAtGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) CreatedAtGt(createdAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("created_at > ?", createdAt)) +} + +// CreatedAtGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) CreatedAtGte(createdAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("created_at >= ?", createdAt)) +} + +// CreatedAtLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) CreatedAtLt(createdAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("created_at < ?", createdAt)) +} + +// CreatedAtLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) CreatedAtLte(createdAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("created_at <= ?", createdAt)) +} + +// CreatedAtNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) CreatedAtNe(createdAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("created_at != ?", createdAt)) +} + +// Delete is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) Delete() error { + return qs.db.Delete(UserConsumeRecord{}).Error +} + +// DeleteNum is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeleteNum() (int64, error) { + db := qs.db.Delete(UserConsumeRecord{}) + return db.RowsAffected, db.Error +} + +// DeleteNumUnscoped is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeleteNumUnscoped() (int64, error) { + db := qs.db.Unscoped().Delete(UserConsumeRecord{}) + return db.RowsAffected, db.Error +} + +// DeletedAtEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtEq(deletedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at = ?", deletedAt)) +} + +// DeletedAtGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtGt(deletedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at > ?", deletedAt)) +} + +// DeletedAtGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtGte(deletedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at >= ?", deletedAt)) +} + +// DeletedAtIsNotNull is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtIsNotNull() UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at IS NOT NULL")) +} + +// DeletedAtIsNull is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtIsNull() UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at IS NULL")) +} + +// DeletedAtLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtLt(deletedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at < ?", deletedAt)) +} + +// DeletedAtLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtLte(deletedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at <= ?", deletedAt)) +} + +// DeletedAtNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) DeletedAtNe(deletedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("deleted_at != ?", deletedAt)) +} + +// GetDB is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) GetDB() *gorm.DB { + return qs.db +} + +// GetUpdater is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) GetUpdater() UserConsumeRecordUpdater { + return NewUserConsumeRecordUpdater(qs.db) +} + +// IDEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDEq(ID uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("id = ?", ID)) +} + +// IDGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDGt(ID uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("id > ?", ID)) +} + +// IDGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDGte(ID uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("id >= ?", ID)) +} + +// IDIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDIn(ID ...uint32) UserConsumeRecordQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id IN (?)", ID)) +} + +// IDLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDLt(ID uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("id < ?", ID)) +} + +// IDLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDLte(ID uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("id <= ?", ID)) +} + +// IDNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDNe(ID uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("id != ?", ID)) +} + +// IDNotIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) IDNotIn(ID ...uint32) UserConsumeRecordQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id NOT IN (?)", ID)) +} + +// Limit is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) Limit(limit int) UserConsumeRecordQuerySet { + return qs.w(qs.db.Limit(limit)) +} + +// Offset is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) Offset(offset int) UserConsumeRecordQuerySet { + return qs.w(qs.db.Offset(offset)) +} + +// One is used to retrieve one result. It returns gorm.ErrRecordNotFound +// if nothing was fetched +func (qs UserConsumeRecordQuerySet) One(ret *UserConsumeRecord) error { + return qs.db.First(ret).Error +} + +// OrderAscByAmount is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByAmount() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("amount ASC")) +} + +// OrderAscByCreatedAt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByCreatedAt() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("created_at ASC")) +} + +// OrderAscByDeletedAt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByDeletedAt() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("deleted_at ASC")) +} + +// OrderAscByID is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByID() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("id ASC")) +} + +// OrderAscByStatus is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByStatus() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("status ASC")) +} + +// OrderAscByUid is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByUid() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("uid ASC")) +} + +// OrderAscByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderAscByUpdatedAt() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("updated_at ASC")) +} + +// OrderDescByAmount is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByAmount() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("amount DESC")) +} + +// OrderDescByCreatedAt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByCreatedAt() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("created_at DESC")) +} + +// OrderDescByDeletedAt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByDeletedAt() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("deleted_at DESC")) +} + +// OrderDescByID is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByID() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("id DESC")) +} + +// OrderDescByStatus is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByStatus() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("status DESC")) +} + +// OrderDescByUid is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByUid() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("uid DESC")) +} + +// OrderDescByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) OrderDescByUpdatedAt() UserConsumeRecordQuerySet { + return qs.w(qs.db.Order("updated_at DESC")) +} + +// StatusEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusEq(status uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("status = ?", status)) +} + +// StatusGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusGt(status uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("status > ?", status)) +} + +// StatusGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusGte(status uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("status >= ?", status)) +} + +// StatusIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusIn(status ...uint32) UserConsumeRecordQuerySet { + if len(status) == 0 { + qs.db.AddError(errors.New("must at least pass one status in StatusIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("status IN (?)", status)) +} + +// StatusLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusLt(status uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("status < ?", status)) +} + +// StatusLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusLte(status uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("status <= ?", status)) +} + +// StatusNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusNe(status uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("status != ?", status)) +} + +// StatusNotIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) StatusNotIn(status ...uint32) UserConsumeRecordQuerySet { + if len(status) == 0 { + qs.db.AddError(errors.New("must at least pass one status in StatusNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("status NOT IN (?)", status)) +} + +// UidEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidEq(uid uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("uid = ?", uid)) +} + +// UidGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidGt(uid uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("uid > ?", uid)) +} + +// UidGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidGte(uid uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("uid >= ?", uid)) +} + +// UidIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidIn(uid ...uint32) UserConsumeRecordQuerySet { + if len(uid) == 0 { + qs.db.AddError(errors.New("must at least pass one uid in UidIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("uid IN (?)", uid)) +} + +// UidLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidLt(uid uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("uid < ?", uid)) +} + +// UidLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidLte(uid uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("uid <= ?", uid)) +} + +// UidNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidNe(uid uint32) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("uid != ?", uid)) +} + +// UidNotIn is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UidNotIn(uid ...uint32) UserConsumeRecordQuerySet { + if len(uid) == 0 { + qs.db.AddError(errors.New("must at least pass one uid in UidNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("uid NOT IN (?)", uid)) +} + +// UpdatedAtEq is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UpdatedAtEq(updatedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("updated_at = ?", updatedAt)) +} + +// UpdatedAtGt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UpdatedAtGt(updatedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("updated_at > ?", updatedAt)) +} + +// UpdatedAtGte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UpdatedAtGte(updatedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("updated_at >= ?", updatedAt)) +} + +// UpdatedAtLt is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UpdatedAtLt(updatedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("updated_at < ?", updatedAt)) +} + +// UpdatedAtLte is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UpdatedAtLte(updatedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("updated_at <= ?", updatedAt)) +} + +// UpdatedAtNe is an autogenerated method +// nolint: dupl +func (qs UserConsumeRecordQuerySet) UpdatedAtNe(updatedAt time.Time) UserConsumeRecordQuerySet { + return qs.w(qs.db.Where("updated_at != ?", updatedAt)) +} + +// SetAmount is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetAmount(amount uint32) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.Amount)] = amount + return u +} + +// SetConsumeType is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetConsumeType(consumeType string) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.ConsumeType)] = consumeType + return u +} + +// SetCreatedAt is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetCreatedAt(createdAt time.Time) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.CreatedAt)] = createdAt + return u +} + +// SetDeletedAt is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetDeletedAt(deletedAt *time.Time) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.DeletedAt)] = deletedAt + return u +} + +// SetID is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetID(ID uint32) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.ID)] = ID + return u +} + +// SetStatus is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetStatus(status uint32) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.Status)] = status + return u +} + +// SetUid is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetUid(uid uint32) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.Uid)] = uid + return u +} + +// SetUpdatedAt is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) SetUpdatedAt(updatedAt time.Time) UserConsumeRecordUpdater { + u.fields[string(UserConsumeRecordDBSchema.UpdatedAt)] = updatedAt + return u +} + +// Update is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) Update() error { + return u.db.Updates(u.fields).Error +} + +// UpdateNum is an autogenerated method +// nolint: dupl +func (u UserConsumeRecordUpdater) UpdateNum() (int64, error) { + db := u.db.Updates(u.fields) + return db.RowsAffected, db.Error +} + +// ===== END of query set UserConsumeRecordQuerySet + +// ===== BEGIN of UserConsumeRecord modifiers + +// UserConsumeRecordDBSchemaField describes database schema field. It requires for method 'Update' +type UserConsumeRecordDBSchemaField string + +// String method returns string representation of field. +// nolint: dupl +func (f UserConsumeRecordDBSchemaField) String() string { + return string(f) +} + +// UserConsumeRecordDBSchema stores db field names of UserConsumeRecord +var UserConsumeRecordDBSchema = struct { + ID UserConsumeRecordDBSchemaField + CreatedAt UserConsumeRecordDBSchemaField + UpdatedAt UserConsumeRecordDBSchemaField + DeletedAt UserConsumeRecordDBSchemaField + Uid UserConsumeRecordDBSchemaField + ConsumeType UserConsumeRecordDBSchemaField + Amount UserConsumeRecordDBSchemaField + Status UserConsumeRecordDBSchemaField +}{ + + ID: UserConsumeRecordDBSchemaField("id"), + CreatedAt: UserConsumeRecordDBSchemaField("created_at"), + UpdatedAt: UserConsumeRecordDBSchemaField("updated_at"), + DeletedAt: UserConsumeRecordDBSchemaField("deleted_at"), + Uid: UserConsumeRecordDBSchemaField("uid"), + ConsumeType: UserConsumeRecordDBSchemaField("consume_type"), + Amount: UserConsumeRecordDBSchemaField("amount"), + Status: UserConsumeRecordDBSchemaField("status"), +} + +// Update updates UserConsumeRecord fields by primary key +// nolint: dupl +func (o *UserConsumeRecord) Update(db *gorm.DB, fields ...UserConsumeRecordDBSchemaField) error { + dbNameToFieldName := map[string]interface{}{ + "id": o.ID, + "created_at": o.CreatedAt, + "updated_at": o.UpdatedAt, + "deleted_at": o.DeletedAt, + "uid": o.Uid, + "consume_type": o.ConsumeType, + "amount": o.Amount, + "status": o.Status, + } + u := map[string]interface{}{} + for _, f := range fields { + fs := f.String() + u[fs] = dbNameToFieldName[fs] + } + if err := db.Model(o).Updates(u).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return err + } + + return fmt.Errorf("can't update UserConsumeRecord %v fields %v: %s", + o, fields, err) + } + + return nil +} + +// UserConsumeRecordUpdater is an UserConsumeRecord updates manager +type UserConsumeRecordUpdater struct { + fields map[string]interface{} + db *gorm.DB +} + +// NewUserConsumeRecordUpdater creates new UserConsumeRecord updater +// nolint: dupl +func NewUserConsumeRecordUpdater(db *gorm.DB) UserConsumeRecordUpdater { + return UserConsumeRecordUpdater{ + fields: map[string]interface{}{}, + db: db.Model(&UserConsumeRecord{}), + } +} + +// ===== END of UserConsumeRecord modifiers + // ===== BEGIN of query set UserInviteQuerySet // UserInviteQuerySet is an queryset type for UserInvite @@ -5046,4 +5751,901 @@ func NewUserUpdater(db *gorm.DB) UserUpdater { // ===== END of User modifiers +// ===== BEGIN of query set UserRentCardQuerySet + +// UserRentCardQuerySet is an queryset type for UserRentCard +type UserRentCardQuerySet struct { + db *gorm.DB +} + +// NewUserRentCardQuerySet constructs new UserRentCardQuerySet +func NewUserRentCardQuerySet(db *gorm.DB) UserRentCardQuerySet { + return UserRentCardQuerySet{ + db: db.Model(&UserRentCard{}), + } +} + +func (qs UserRentCardQuerySet) w(db *gorm.DB) UserRentCardQuerySet { + return NewUserRentCardQuerySet(db) +} + +// Create is an autogenerated method +// nolint: dupl +func (o *UserRentCard) Create(db *gorm.DB) error { + return db.Create(o).Error +} + +// Delete is an autogenerated method +// nolint: dupl +func (o *UserRentCard) Delete(db *gorm.DB) error { + return db.Delete(o).Error +} + +// All is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) All(ret *[]UserRentCard) error { + return qs.db.Find(ret).Error +} + +// CanRentCountEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountEq(canRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("can_rent_count = ?", canRentCount)) +} + +// CanRentCountGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountGt(canRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("can_rent_count > ?", canRentCount)) +} + +// CanRentCountGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountGte(canRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("can_rent_count >= ?", canRentCount)) +} + +// CanRentCountIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountIn(canRentCount ...uint32) UserRentCardQuerySet { + if len(canRentCount) == 0 { + qs.db.AddError(errors.New("must at least pass one canRentCount in CanRentCountIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("can_rent_count IN (?)", canRentCount)) +} + +// CanRentCountLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountLt(canRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("can_rent_count < ?", canRentCount)) +} + +// CanRentCountLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountLte(canRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("can_rent_count <= ?", canRentCount)) +} + +// CanRentCountNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountNe(canRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("can_rent_count != ?", canRentCount)) +} + +// CanRentCountNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CanRentCountNotIn(canRentCount ...uint32) UserRentCardQuerySet { + if len(canRentCount) == 0 { + qs.db.AddError(errors.New("must at least pass one canRentCount in CanRentCountNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("can_rent_count NOT IN (?)", canRentCount)) +} + +// Count is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) Count() (int, error) { + var count int + err := qs.db.Count(&count).Error + return count, err +} + +// CreatedAtEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CreatedAtEq(createdAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("created_at = ?", createdAt)) +} + +// CreatedAtGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CreatedAtGt(createdAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("created_at > ?", createdAt)) +} + +// CreatedAtGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CreatedAtGte(createdAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("created_at >= ?", createdAt)) +} + +// CreatedAtLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CreatedAtLt(createdAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("created_at < ?", createdAt)) +} + +// CreatedAtLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CreatedAtLte(createdAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("created_at <= ?", createdAt)) +} + +// CreatedAtNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) CreatedAtNe(createdAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("created_at != ?", createdAt)) +} + +// Delete is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) Delete() error { + return qs.db.Delete(UserRentCard{}).Error +} + +// DeleteNum is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeleteNum() (int64, error) { + db := qs.db.Delete(UserRentCard{}) + return db.RowsAffected, db.Error +} + +// DeleteNumUnscoped is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeleteNumUnscoped() (int64, error) { + db := qs.db.Unscoped().Delete(UserRentCard{}) + return db.RowsAffected, db.Error +} + +// DeletedAtEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtEq(deletedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at = ?", deletedAt)) +} + +// DeletedAtGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtGt(deletedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at > ?", deletedAt)) +} + +// DeletedAtGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtGte(deletedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at >= ?", deletedAt)) +} + +// DeletedAtIsNotNull is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtIsNotNull() UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at IS NOT NULL")) +} + +// DeletedAtIsNull is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtIsNull() UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at IS NULL")) +} + +// DeletedAtLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtLt(deletedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at < ?", deletedAt)) +} + +// DeletedAtLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtLte(deletedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at <= ?", deletedAt)) +} + +// DeletedAtNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) DeletedAtNe(deletedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("deleted_at != ?", deletedAt)) +} + +// GetDB is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) GetDB() *gorm.DB { + return qs.db +} + +// GetUpdater is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) GetUpdater() UserRentCardUpdater { + return NewUserRentCardUpdater(qs.db) +} + +// HaveRentCountEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountEq(haveRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("have_rent_count = ?", haveRentCount)) +} + +// HaveRentCountGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountGt(haveRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("have_rent_count > ?", haveRentCount)) +} + +// HaveRentCountGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountGte(haveRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("have_rent_count >= ?", haveRentCount)) +} + +// HaveRentCountIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountIn(haveRentCount ...uint32) UserRentCardQuerySet { + if len(haveRentCount) == 0 { + qs.db.AddError(errors.New("must at least pass one haveRentCount in HaveRentCountIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("have_rent_count IN (?)", haveRentCount)) +} + +// HaveRentCountLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountLt(haveRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("have_rent_count < ?", haveRentCount)) +} + +// HaveRentCountLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountLte(haveRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("have_rent_count <= ?", haveRentCount)) +} + +// HaveRentCountNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountNe(haveRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("have_rent_count != ?", haveRentCount)) +} + +// HaveRentCountNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) HaveRentCountNotIn(haveRentCount ...uint32) UserRentCardQuerySet { + if len(haveRentCount) == 0 { + qs.db.AddError(errors.New("must at least pass one haveRentCount in HaveRentCountNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("have_rent_count NOT IN (?)", haveRentCount)) +} + +// IDEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDEq(ID uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("id = ?", ID)) +} + +// IDGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDGt(ID uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("id > ?", ID)) +} + +// IDGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDGte(ID uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("id >= ?", ID)) +} + +// IDIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDIn(ID ...uint32) UserRentCardQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id IN (?)", ID)) +} + +// IDLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDLt(ID uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("id < ?", ID)) +} + +// IDLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDLte(ID uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("id <= ?", ID)) +} + +// IDNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDNe(ID uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("id != ?", ID)) +} + +// IDNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) IDNotIn(ID ...uint32) UserRentCardQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id NOT IN (?)", ID)) +} + +// LevelRentCountEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountEq(levelRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("level_rent_count = ?", levelRentCount)) +} + +// LevelRentCountGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountGt(levelRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("level_rent_count > ?", levelRentCount)) +} + +// LevelRentCountGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountGte(levelRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("level_rent_count >= ?", levelRentCount)) +} + +// LevelRentCountIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountIn(levelRentCount ...uint32) UserRentCardQuerySet { + if len(levelRentCount) == 0 { + qs.db.AddError(errors.New("must at least pass one levelRentCount in LevelRentCountIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("level_rent_count IN (?)", levelRentCount)) +} + +// LevelRentCountLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountLt(levelRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("level_rent_count < ?", levelRentCount)) +} + +// LevelRentCountLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountLte(levelRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("level_rent_count <= ?", levelRentCount)) +} + +// LevelRentCountNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountNe(levelRentCount uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("level_rent_count != ?", levelRentCount)) +} + +// LevelRentCountNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) LevelRentCountNotIn(levelRentCount ...uint32) UserRentCardQuerySet { + if len(levelRentCount) == 0 { + qs.db.AddError(errors.New("must at least pass one levelRentCount in LevelRentCountNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("level_rent_count NOT IN (?)", levelRentCount)) +} + +// Limit is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) Limit(limit int) UserRentCardQuerySet { + return qs.w(qs.db.Limit(limit)) +} + +// MemberLevelEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelEq(memberLevel uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("member_level = ?", memberLevel)) +} + +// MemberLevelGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelGt(memberLevel uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("member_level > ?", memberLevel)) +} + +// MemberLevelGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelGte(memberLevel uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("member_level >= ?", memberLevel)) +} + +// MemberLevelIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelIn(memberLevel ...uint32) UserRentCardQuerySet { + if len(memberLevel) == 0 { + qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("member_level IN (?)", memberLevel)) +} + +// MemberLevelLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelLt(memberLevel uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("member_level < ?", memberLevel)) +} + +// MemberLevelLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelLte(memberLevel uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("member_level <= ?", memberLevel)) +} + +// MemberLevelNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelNe(memberLevel uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("member_level != ?", memberLevel)) +} + +// MemberLevelNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) MemberLevelNotIn(memberLevel ...uint32) UserRentCardQuerySet { + if len(memberLevel) == 0 { + qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel)) +} + +// Offset is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) Offset(offset int) UserRentCardQuerySet { + return qs.w(qs.db.Offset(offset)) +} + +// One is used to retrieve one result. It returns gorm.ErrRecordNotFound +// if nothing was fetched +func (qs UserRentCardQuerySet) One(ret *UserRentCard) error { + return qs.db.First(ret).Error +} + +// OrderAscByCanRentCount is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByCanRentCount() UserRentCardQuerySet { + return qs.w(qs.db.Order("can_rent_count ASC")) +} + +// OrderAscByCreatedAt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByCreatedAt() UserRentCardQuerySet { + return qs.w(qs.db.Order("created_at ASC")) +} + +// OrderAscByDeletedAt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByDeletedAt() UserRentCardQuerySet { + return qs.w(qs.db.Order("deleted_at ASC")) +} + +// OrderAscByHaveRentCount is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByHaveRentCount() UserRentCardQuerySet { + return qs.w(qs.db.Order("have_rent_count ASC")) +} + +// OrderAscByID is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByID() UserRentCardQuerySet { + return qs.w(qs.db.Order("id ASC")) +} + +// OrderAscByLevelRentCount is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByLevelRentCount() UserRentCardQuerySet { + return qs.w(qs.db.Order("level_rent_count ASC")) +} + +// OrderAscByMemberLevel is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByMemberLevel() UserRentCardQuerySet { + return qs.w(qs.db.Order("member_level ASC")) +} + +// OrderAscByStatus is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByStatus() UserRentCardQuerySet { + return qs.w(qs.db.Order("status ASC")) +} + +// OrderAscByUid is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByUid() UserRentCardQuerySet { + return qs.w(qs.db.Order("uid ASC")) +} + +// OrderAscByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderAscByUpdatedAt() UserRentCardQuerySet { + return qs.w(qs.db.Order("updated_at ASC")) +} + +// OrderDescByCanRentCount is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByCanRentCount() UserRentCardQuerySet { + return qs.w(qs.db.Order("can_rent_count DESC")) +} + +// OrderDescByCreatedAt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByCreatedAt() UserRentCardQuerySet { + return qs.w(qs.db.Order("created_at DESC")) +} + +// OrderDescByDeletedAt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByDeletedAt() UserRentCardQuerySet { + return qs.w(qs.db.Order("deleted_at DESC")) +} + +// OrderDescByHaveRentCount is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByHaveRentCount() UserRentCardQuerySet { + return qs.w(qs.db.Order("have_rent_count DESC")) +} + +// OrderDescByID is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByID() UserRentCardQuerySet { + return qs.w(qs.db.Order("id DESC")) +} + +// OrderDescByLevelRentCount is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByLevelRentCount() UserRentCardQuerySet { + return qs.w(qs.db.Order("level_rent_count DESC")) +} + +// OrderDescByMemberLevel is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByMemberLevel() UserRentCardQuerySet { + return qs.w(qs.db.Order("member_level DESC")) +} + +// OrderDescByStatus is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByStatus() UserRentCardQuerySet { + return qs.w(qs.db.Order("status DESC")) +} + +// OrderDescByUid is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByUid() UserRentCardQuerySet { + return qs.w(qs.db.Order("uid DESC")) +} + +// OrderDescByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) OrderDescByUpdatedAt() UserRentCardQuerySet { + return qs.w(qs.db.Order("updated_at DESC")) +} + +// StatusEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusEq(status uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("status = ?", status)) +} + +// StatusGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusGt(status uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("status > ?", status)) +} + +// StatusGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusGte(status uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("status >= ?", status)) +} + +// StatusIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusIn(status ...uint32) UserRentCardQuerySet { + if len(status) == 0 { + qs.db.AddError(errors.New("must at least pass one status in StatusIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("status IN (?)", status)) +} + +// StatusLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusLt(status uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("status < ?", status)) +} + +// StatusLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusLte(status uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("status <= ?", status)) +} + +// StatusNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusNe(status uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("status != ?", status)) +} + +// StatusNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) StatusNotIn(status ...uint32) UserRentCardQuerySet { + if len(status) == 0 { + qs.db.AddError(errors.New("must at least pass one status in StatusNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("status NOT IN (?)", status)) +} + +// UidEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidEq(uid uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("uid = ?", uid)) +} + +// UidGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidGt(uid uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("uid > ?", uid)) +} + +// UidGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidGte(uid uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("uid >= ?", uid)) +} + +// UidIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidIn(uid ...uint32) UserRentCardQuerySet { + if len(uid) == 0 { + qs.db.AddError(errors.New("must at least pass one uid in UidIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("uid IN (?)", uid)) +} + +// UidLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidLt(uid uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("uid < ?", uid)) +} + +// UidLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidLte(uid uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("uid <= ?", uid)) +} + +// UidNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidNe(uid uint32) UserRentCardQuerySet { + return qs.w(qs.db.Where("uid != ?", uid)) +} + +// UidNotIn is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UidNotIn(uid ...uint32) UserRentCardQuerySet { + if len(uid) == 0 { + qs.db.AddError(errors.New("must at least pass one uid in UidNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("uid NOT IN (?)", uid)) +} + +// UpdatedAtEq is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UpdatedAtEq(updatedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("updated_at = ?", updatedAt)) +} + +// UpdatedAtGt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UpdatedAtGt(updatedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("updated_at > ?", updatedAt)) +} + +// UpdatedAtGte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UpdatedAtGte(updatedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("updated_at >= ?", updatedAt)) +} + +// UpdatedAtLt is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UpdatedAtLt(updatedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("updated_at < ?", updatedAt)) +} + +// UpdatedAtLte is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UpdatedAtLte(updatedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("updated_at <= ?", updatedAt)) +} + +// UpdatedAtNe is an autogenerated method +// nolint: dupl +func (qs UserRentCardQuerySet) UpdatedAtNe(updatedAt time.Time) UserRentCardQuerySet { + return qs.w(qs.db.Where("updated_at != ?", updatedAt)) +} + +// SetCanRentCount is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetCanRentCount(canRentCount uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.CanRentCount)] = canRentCount + return u +} + +// SetCreatedAt is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetCreatedAt(createdAt time.Time) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.CreatedAt)] = createdAt + return u +} + +// SetDeletedAt is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetDeletedAt(deletedAt *time.Time) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.DeletedAt)] = deletedAt + return u +} + +// SetHaveRentCount is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetHaveRentCount(haveRentCount uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.HaveRentCount)] = haveRentCount + return u +} + +// SetID is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetID(ID uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.ID)] = ID + return u +} + +// SetLevelRentCount is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetLevelRentCount(levelRentCount uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.LevelRentCount)] = levelRentCount + return u +} + +// SetMemberLevel is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetMemberLevel(memberLevel uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.MemberLevel)] = memberLevel + return u +} + +// SetStatus is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetStatus(status uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.Status)] = status + return u +} + +// SetUid is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetUid(uid uint32) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.Uid)] = uid + return u +} + +// SetUpdatedAt is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) SetUpdatedAt(updatedAt time.Time) UserRentCardUpdater { + u.fields[string(UserRentCardDBSchema.UpdatedAt)] = updatedAt + return u +} + +// Update is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) Update() error { + return u.db.Updates(u.fields).Error +} + +// UpdateNum is an autogenerated method +// nolint: dupl +func (u UserRentCardUpdater) UpdateNum() (int64, error) { + db := u.db.Updates(u.fields) + return db.RowsAffected, db.Error +} + +// ===== END of query set UserRentCardQuerySet + +// ===== BEGIN of UserRentCard modifiers + +// UserRentCardDBSchemaField describes database schema field. It requires for method 'Update' +type UserRentCardDBSchemaField string + +// String method returns string representation of field. +// nolint: dupl +func (f UserRentCardDBSchemaField) String() string { + return string(f) +} + +// UserRentCardDBSchema stores db field names of UserRentCard +var UserRentCardDBSchema = struct { + ID UserRentCardDBSchemaField + CreatedAt UserRentCardDBSchemaField + UpdatedAt UserRentCardDBSchemaField + DeletedAt UserRentCardDBSchemaField + Uid UserRentCardDBSchemaField + MemberLevel UserRentCardDBSchemaField + LevelRentCount UserRentCardDBSchemaField + HaveRentCount UserRentCardDBSchemaField + CanRentCount UserRentCardDBSchemaField + Status UserRentCardDBSchemaField +}{ + + ID: UserRentCardDBSchemaField("id"), + CreatedAt: UserRentCardDBSchemaField("created_at"), + UpdatedAt: UserRentCardDBSchemaField("updated_at"), + DeletedAt: UserRentCardDBSchemaField("deleted_at"), + Uid: UserRentCardDBSchemaField("uid"), + MemberLevel: UserRentCardDBSchemaField("member_level"), + LevelRentCount: UserRentCardDBSchemaField("level_rent_count"), + HaveRentCount: UserRentCardDBSchemaField("have_rent_count"), + CanRentCount: UserRentCardDBSchemaField("can_rent_count"), + Status: UserRentCardDBSchemaField("status"), +} + +// Update updates UserRentCard fields by primary key +// nolint: dupl +func (o *UserRentCard) Update(db *gorm.DB, fields ...UserRentCardDBSchemaField) error { + dbNameToFieldName := map[string]interface{}{ + "id": o.ID, + "created_at": o.CreatedAt, + "updated_at": o.UpdatedAt, + "deleted_at": o.DeletedAt, + "uid": o.Uid, + "member_level": o.MemberLevel, + "level_rent_count": o.LevelRentCount, + "have_rent_count": o.HaveRentCount, + "can_rent_count": o.CanRentCount, + "status": o.Status, + } + u := map[string]interface{}{} + for _, f := range fields { + fs := f.String() + u[fs] = dbNameToFieldName[fs] + } + if err := db.Model(o).Updates(u).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return err + } + + return fmt.Errorf("can't update UserRentCard %v fields %v: %s", + o, fields, err) + } + + return nil +} + +// UserRentCardUpdater is an UserRentCard updates manager +type UserRentCardUpdater struct { + fields map[string]interface{} + db *gorm.DB +} + +// NewUserRentCardUpdater creates new UserRentCard updater +// nolint: dupl +func NewUserRentCardUpdater(db *gorm.DB) UserRentCardUpdater { + return UserRentCardUpdater{ + fields: map[string]interface{}{}, + db: db.Model(&UserRentCard{}), + } +} + +// ===== END of UserRentCard modifiers + // ===== END of all query sets diff --git a/model/base_init_db.go b/model/base_init_db.go index ddfa075..a9c7786 100644 --- a/model/base_init_db.go +++ b/model/base_init_db.go @@ -27,7 +27,7 @@ func InitDB() { DB.DB().SetMaxIdleConns(500) DB.DB().SetConnMaxLifetime(time.Second * 10) DB.LogMode(true) - DB.SetLogger(DBLoggerWriter{}) + //DB.SetLogger(DBLoggerWriter{}) DB.SingularTable(true) if err := DB.DB().Ping(); err != nil { fmt.Println("Ping Database Fail, error = ", err) diff --git a/model/model_test.go b/model/model_test.go index fb3592b..eed6185 100644 --- a/model/model_test.go +++ b/model/model_test.go @@ -95,6 +95,9 @@ func InitTestDB() { &UserRedeemCode{}, &DepositRefundRecord{}, &GroupSendMessageTemplate{}, + &OrderCard{}, + &UserRentCard{}, + &UserConsumeRecord{}, ) diff --git a/model/order.go b/model/order.go index 73bfa39..c9b5a26 100644 --- a/model/order.go +++ b/model/order.go @@ -1,12 +1,12 @@ package model import ( + "encoding/json" "errors" "fmt" "github.com/codinl/go-logger" "github.com/jinzhu/gorm" "math/rand" - "qiniupkg.com/x/log.v7" "time" ) @@ -63,14 +63,39 @@ type Order struct { Mchid string `json:"mchid"` // 商户 } +// gen:qs type OrderCard struct { Model - OrderId uint32 `json:"order_id" gorm:"index"` - Uid uint32 `json:"uid" gorm:"index"` - GameCardId uint32 `json:"game_card_id" gorm:"index"` // 游戏id - GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"` // 游戏卡id - StoreId uint32 `json:"store_id" gorm:"index"` // 门店id - Status uint8 `json:"status" gorm:"index"` // 1-待领取 2-游玩中 3-已归还 4-未领取 + OrderId uint32 `json:"order_id" gorm:"index"` + Uid uint32 `json:"uid" gorm:"index"` + GameCardId uint32 `json:"game_card_id" gorm:"index"` // 游戏id + GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"` // 游戏卡id + StoreId uint32 `json:"store_id" gorm:"index"` // 门店id + CardStatus uint32 `json:"card_status"` // 1-待取货中 2-游玩中 3-归还中 4-已完成 5-已取消 + DeliveryTime time.Time `json:"delivery_time"` // 发货时间 + ReceiptTime time.Time `json:"receipt_time"` // 收货时间 + DeliveryType uint8 `json:"delivery_type"` // 取货类型 1-门店自取 2-快递 + SerialNumber string `json:"serial_number" gorm:"index"` // 编号 + PayStatus uint8 `json:"pay_status"` // 支付状态 1-未支付 2-已支付 + + RevertStoreId uint64 `json:"revert_store_id"` // 归还门店id + RevertTime time.Time `json:"revert_time"` // 归还时间 + RevertExpressCompany string `json:"revert_express_company"` // 归还物流公司 + RevertExpressCompanyNo string `json:"revert_express_company_no"` // 归还物流公司编号 + RevertExpressNo string `json:"revert_express_no"` // 归还物流单号 + RevertExpressDuration uint64 `json:"revert_express_duration"` // 归还物流时长 + //Status uint8 `json:"status" gorm:"index"` // 1-待领取 2-游玩中 3-已归还 4-未领取 + + Postage uint32 `json:"postage" gorm:"-"` // 邮费 + ExpressCompany string `json:"express_company" gorm:"-"` // 物流公司 + ExpressCompanyNo string `json:"express_company_no" gorm:"-"` // 物流公司编号 + ExpressNo string `json:"express_no" gorm:"-"` // 物流单号 + + GameName string `json:"name" gorm:"-"` // 名称 + GamePrice uint32 `json:"price" gorm:"-"` // 价格 + GameCoverImg string `json:"cover_img" gorm:"-"` // 封面 + Order *Order `json:"order" gorm:"-"` // 订单 + //PickupCode string `json:"pickup_code"` // 取货码 } func (*Order) TableName() string { @@ -79,182 +104,311 @@ func (*Order) TableName() string { func (m *Order) ToInfo(card *GameCard) OrderInfo { return OrderInfo{ - Order: *m, - GameName: card.Name, - GamePrice: card.Price, - GameCoverImg: card.CoverImg, + Order: *m, } } type OrderInfo struct { Order - GameName string `json:"name" gorm:"index"` // 名称 - GamePrice uint32 `json:"price" gorm:"index"` // 价格 - GameCoverImg string `json:"cover_img"` // 封面 + Cards []OrderCard } -func GetOrderList(uid uint64, page, pageSize int) ([]OrderInfo, uint32, error) { - var ( - orders []Order - totalPage uint32 - orderInfos = make([]OrderInfo, 0, pageSize) - ) - page -= 1 - if page < 0 { - page = 0 +func OrderCardListSetGameInfo(list []OrderCard) []OrderCard { + //GameCardMap + ids := make([]uint32, 0, len(list)) + orderIds := make([]uint32, 0, len(list)) + for i, _ := range list { + ids = append(ids, list[i].GameCardId) + orderIds = append(orderIds, list[i].OrderId) + } + if len(ids) == 0 || len(orderIds) == 0 { + return list } - //oq := NewOrderQuerySet(DB).UidEq(uid).OrderDescByCreatedAt().PayStatusEq(PayStatusPaid) - oq := NewOrderQuerySet(DB).UidEq(uid).OrderDescByCreatedAt() + orderMap, err := OrderMap(orderIds) + if err != nil { + logger.Error("err:", err) + return list + } + + fmt.Println("ids:", ids) + cardMap, err := GameCardMap(ids) + if err != nil { + logger.Error("err:", err) + return list + } + bytes, _ := json.Marshal(&cardMap) + orderMapbytes, _ := json.Marshal(&orderMap) + fmt.Println("cardMap:", string(bytes)) + fmt.Println("orderMap:", string(orderMapbytes)) + for i, _ := range list { + fmt.Println("list[i].GameCardId", list[i].GameCardId) + fmt.Println("list[i].OrderId", list[i].OrderId) + gameCard, ok1 := cardMap[list[i].GameCardId] + order, ok2 := orderMap[list[i].OrderId] + fmt.Printf("gameCard1:%#v \n", gameCard) + if ok1 && ok2 { + fmt.Printf("gameCard2:%#v \n", gameCard) + list[i].GameName = gameCard.Name + list[i].GameCoverImg = gameCard.CoverImg + list[i].GamePrice = gameCard.Price + list[i].Order = &order + } + } + listbytes, _ := json.Marshal(&list) + fmt.Println("listbytes:", string(listbytes)) + return list +} + +func GameCardMap(ids []uint32) (map[uint32]GameCard, error) { + cardMap := make(map[uint32]GameCard, 0) + var cards []GameCard + err := NewGameCardQuerySet(DB).IDIn(ids...).All(&cards) + if err != nil { + logger.Error("err:", err) + return cardMap, err + } + if len(cards) == 0 { + return cardMap, nil + } + for i, _ := range cards { + cardMap[cards[i].ID] = cards[i] + } + return cardMap, nil +} + +func OrderMap(ids []uint32) (map[uint32]Order, error) { + cardMap := make(map[uint32]Order, 0) + var cards []Order + err := NewOrderQuerySet(DB).IDIn(ids...).All(&cards) + if err != nil { + logger.Error("err:", err) + return cardMap, err + } + if len(cards) == 0 { + return cardMap, nil + } + for i, _ := range cards { + cardMap[cards[i].ID] = cards[i] + } + return cardMap, nil +} + +type OrderListReq struct { + Page int `json:"page"` + PageSize int `json:"page_size"` + OrderType uint32 `json:"order_type"` // 1-全部 2-进行中 3-已完成 + Uid uint32 `json:"uid"` +} + +func (m *OrderListReq) GetOrderCardList() ([]OrderCard, uint32, error) { + var ( + orderCards []OrderCard + totalPage uint32 + //orderInfos = make([]OrderInfo, 0, pageSize) + ) + m.Page -= 1 + if m.Page < 0 { + m.Page = 0 + } + if m.PageSize == 0 { + m.PageSize = 10 + } + oq := NewOrderCardQuerySet(DB).PayStatusEq(PayStatusPaid).UidEq(m.Uid) + if m.OrderType == 2 { + oq = oq.CardStatusIn([]uint32{1, 2, 3}...) + } + if m.OrderType == 3 { + oq = oq.CardStatusEq(4) + } count, err := oq.Count() if err != nil { - log.Error("NewGameCardQuerySet err:", err) - return orderInfos, 0, err + logger.Error("NewGameCardQuerySet err:", err) + return orderCards, 0, err } - err = oq.Offset(page * pageSize).Limit(pageSize).All(&orders) + err = oq.OrderDescByCreatedAt().Offset(m.Page * m.PageSize).Limit(m.PageSize).All(&orderCards) if err != nil && err != RecordNotFound { - log.Error("err:", err) - return orderInfos, 0, err + logger.Error("err:", err) + return orderCards, 0, err } - totalPage = uint32(count/pageSize + 1) + totalPage = uint32(count/m.PageSize + 1) - var games []GameCard - gameIds := make([]uint32, 0, len(orders)) - for i, _ := range orders { - gameIds = append(gameIds, uint32(orders[i].GameCardId)) - } - if len(gameIds) == 0 { - log.Error("gameIds is null") - return orderInfos, 0, err - } - err = NewGameCardQuerySet(DB).IDIn(gameIds...).All(&games) - if err != nil && err != RecordNotFound { - log.Error("err:", err) - return orderInfos, 0, err - } - gamesMap := make(map[uint32]*GameCard) - for i, _ := range games { - gamesMap[games[i].ID] = &games[i] - } - for i, _ := range orders { - card, ok := gamesMap[uint32(orders[i].GameCardId)] - if !ok { - continue - } - orderInfos = append(orderInfos, orders[i].ToInfo(card)) - } + orderCards = OrderCardListSetGameInfo(orderCards) - return orderInfos, totalPage, nil + return orderCards, totalPage, nil } -func (m *Order) Info() (*OrderInfo, error) { - var ( - order Order - card GameCard - ) - err := NewOrderQuerySet(DB).IDEq(m.ID).One(&order) +func (m *Order) Info() ([]OrderCard, error) { + + //err := NewOrderQuerySet(DB).IDEq(m.ID).One(&order) + //if err != nil { + // logger.Error("err:", err) + // return nil, err + //} + // + //err = NewGameCardQuerySet(DB).IDEq(uint32(order.GameCardId)).One(&card) + //if err != nil && err != RecordNotFound { + // logger.Error("err:", err) + // return nil, err + //} + + qs := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardIdEq(uint32(m.GameCardId)) + if m.GameCardGoodsId != 0 { + qs = qs.GameCardGoodsIdEq(uint32(m.GameCardGoodsId)) + } + var orderCards []OrderCard + err := qs.All(&orderCards) if err != nil { - log.Error("err:", err) + logger.Error("err:", err) return nil, err } + orderCards = OrderCardListSetGameInfo(orderCards) - err = NewGameCardQuerySet(DB).IDEq(uint32(order.GameCardId)).One(&card) - if err != nil && err != RecordNotFound { - log.Error("err:", err) - return nil, err - } - - info := order.ToInfo(&card) - return &info, nil + //info := order.ToInfo(&card) + return orderCards, nil } -func (m *Order) Revert() (*OrderInfo, error) { +func (m *Order) Revert() error { var ( - order Order - card GameCard + orderCard OrderCard + //card GameCard ) - qs := NewOrderQuerySet(DB).IDEq(m.ID) - err := qs.One(&order) + //qs := NewOrderQuerySet(DB).IDEq(m.ID) + //err := qs.One(&order) + //if err != nil { + // logger.Errorf("err:%#v", err) + // return err + //} + //if order.CardStatus == OrderCardStatusCompleted { + // logger.Error("order card status completed") + // return errors.New("order card status completed") + //} + fmt.Println("GameCardGoodsId------:",m.GameCardGoodsId) + fmt.Println("ID------:",m.ID) + err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).One(&orderCard) if err != nil { logger.Errorf("err:%#v", err) - return nil, err + return err } - if order.CardStatus == OrderCardStatusCompleted { + if orderCard.CardStatus == OrderCardStatusCompleted { logger.Error("order card status completed") - return nil, errors.New("order card status completed") + return errors.New("order card status completed") } - err = qs.GetUpdater(). + //err = qs.GetUpdater(). + // SetCardStatus(OrderCardStatusReturning). + // SetRevertTime(time.Now()). + // SetRevertStoreId(m.RevertStoreId). + // SetRevertExpressCompany(m.RevertExpressCompany). + // SetRevertExpressCompanyNo(m.RevertExpressCompanyNo). + // SetRevertExpressNo(m.RevertExpressNo).Update() + //if err != nil { + // logger.Error("err:", err) + // return nil, err + //} + //order.CardStatus = OrderCardStatusReturning + ////order.RevertTime = time.Now() + //order.RevertStoreId = m.RevertStoreId + //order.RevertExpressCompany = m.RevertExpressCompany + //order.RevertExpressCompanyNo = m.RevertExpressCompanyNo + //order.RevertExpressNo = m.RevertExpressNo + + _, err = NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).GetUpdater(). SetCardStatus(OrderCardStatusReturning). SetRevertTime(time.Now()). SetRevertStoreId(m.RevertStoreId). SetRevertExpressCompany(m.RevertExpressCompany). SetRevertExpressCompanyNo(m.RevertExpressCompanyNo). - SetRevertExpressNo(m.RevertExpressNo).Update() + SetRevertExpressNo(m.RevertExpressNo).UpdateNum() if err != nil { - log.Error("err:", err) - return nil, err + logger.Error("err:", err) + return err } - order.CardStatus = OrderCardStatusReturning - order.RevertTime = time.Now() - order.RevertStoreId = m.RevertStoreId - order.RevertExpressCompany = m.RevertExpressCompany - order.RevertExpressCompanyNo = m.RevertExpressCompanyNo - order.RevertExpressNo = m.RevertExpressNo - //err = NewGameCardQuerySet(DB).IDEq(uint32(order.GameCardId)).One(&card) //if err != nil && err != RecordNotFound { - // log.Error("err:", err) + // logger.Error("err:", err) // return nil, err //} - info := order.ToInfo(&card) - return &info, nil + + //info := order.ToInfo(&card) + return nil } -func (m *Order) RevertCancel() (*OrderInfo, error) { +func (m *Order) RevertCancel() (bool, error) { var ( - order Order - card GameCard + orderCard OrderCard + //order Order + //card GameCard ) - qs := NewOrderQuerySet(DB).IDEq(m.ID) - err := qs.One(&order) + //qs := NewOrderQuerySet(DB).IDEq(m.ID) + //err := qs.One(&order) + //if err != nil { + // logger.Errorf("err:%#v", err) + // return false, err + //} + //if order.CardStatus != OrderCardStatusReturning { + // logger.Error("order card status completed") + // return false, errors.New("order card status completed") + //} + err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).One(&orderCard) if err != nil { logger.Errorf("err:%#v", err) - return nil, err + return false, err } - if order.CardStatus != OrderCardStatusReturning { - logger.Error("order card status completed") - return nil, errors.New("order card status completed") + if orderCard.CardStatus != OrderCardStatusReturning { + logger.Error("order card status returning") + return false, errors.New("order card status returning") } - err = qs.GetUpdater(). + //err = qs.GetUpdater(). + // SetCardStatus(OrderCardStatusPlaying). + // SetRevertStoreId(0). + // SetRevertExpressCompany(""). + // SetRevertExpressCompanyNo(""). + // SetRevertExpressNo("").Update() + //if err != nil { + // logger.Error("err:", err) + // return nil, err + //} + //order.CardStatus = OrderCardStatusCancel + ////order.RevertTime = time.Now() + //order.RevertStoreId = m.RevertStoreId + //order.RevertExpressCompany = m.RevertExpressCompany + //order.RevertExpressCompanyNo = m.RevertExpressCompanyNo + //order.RevertExpressNo = m.RevertExpressNo + _, err = NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).GetUpdater(). SetCardStatus(OrderCardStatusPlaying). + //SetRevertTime(time.Time{}). SetRevertStoreId(0). SetRevertExpressCompany(""). SetRevertExpressCompanyNo(""). - SetRevertExpressNo("").Update() + SetRevertExpressNo("").UpdateNum() if err != nil { - log.Error("err:", err) - return nil, err + logger.Error("err:", err) + return false, err } - order.CardStatus = OrderCardStatusPlaying - //order.RevertTime = time.Now() - order.RevertStoreId = m.RevertStoreId - order.RevertExpressCompany = m.RevertExpressCompany - order.RevertExpressCompanyNo = m.RevertExpressCompanyNo - order.RevertExpressNo = m.RevertExpressNo - - info := order.ToInfo(&card) - return &info, nil + isRecede := false + //if order.DeliveryType == 2 && order.Postage > 0 { + // isHaveOnDeliver, err := IsHaveOnDeliverOrderCards(m.ID) + // if err != nil { + // logger.Error("err:", err) + // return false, err + // } + // if !isHaveOnDeliver { + // isRecede = true + // } + //} + //info := order.ToInfo(&card) + return isRecede, nil } -func (m *Order) OrderCreate() error { - err := m.Create(DB) +func (m *Order) OrderCreate(gdb *gorm.DB) error { + err := m.Create(gdb) if err != nil { - log.Error("err:", err) + logger.Error("err:", err) return err } return nil @@ -280,7 +434,7 @@ func (m *Order) Modify() (*OrderInfo, error) { var card GameCard err := NewGameCardQuerySet(DB).IDEq(uint32(m.GameCardId)).One(&card) if err != nil && err != RecordNotFound { - log.Error("err:", err) + logger.Error("err:", err) return nil, err } @@ -289,10 +443,12 @@ func (m *Order) Modify() (*OrderInfo, error) { return &info, nil } -func IsHaveUnreturnedOrders(uid uint32) (bool, error) { - fmt.Println("uid", uid) +func (m *UserRentCard) IsHaveUnreturnedOrders(RentCount uint32) (bool, error) { + fmt.Println("uid", m.Uid) - sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM `order` WHERE uid = %d AND pay_status=2 AND card_status IN (1,2,3) ;", uid) + sql := fmt.Sprintf("SELECT COUNT(order_card.id) FROM `order` RIGHT JOIN order_card ON `order`.id = order_card.order_id WHERE `order`.uid=%d AND `order`.pay_status=2 AND order_card.card_status IN (1,2,3) ;", m.Uid) + //sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM `order` WHERE uid = %d AND pay_status=2 AND card_status IN (1,2,3) ;", m.Uid) + //sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM `order` WHERE uid = %d AND pay_status=2 AND card_status IN (1,2,3) ;", uid) //count, err := NewOrderQuerySet(DB).UidEq(uint64(uid)).PayStatusEq(PayStatusPaid).CardStatusIn(1, 2, 3).Count() //if err != nil { // logger.Error("err:", err) @@ -301,9 +457,22 @@ func IsHaveUnreturnedOrders(uid uint32) (bool, error) { unreturned := &struct { Count int `json:"count"` }{} - DB.Raw(sql).Scan(unreturned) + err := DB.Raw(sql).Scan(unreturned).Error + if err != nil { + logger.Error("err:", err) + return false, err + } fmt.Println("订单数量count:", unreturned.Count) - return unreturned.Count != 0, nil + return uint32(unreturned.Count)+RentCount > m.LevelRentCount, nil +} + +func IsHaveOnDeliverOrderCards(orderId uint32) (bool, error) { + count, err := NewOrderCardQuerySet(DB).OrderIdEq(orderId).CardStatusEq(1).Count() + if err != nil { + logger.Error("err:", err) + return false, err + } + return count > 0, nil } func IsUserHaveUnreturnedOrder(uid uint32) (bool, error) { @@ -361,57 +530,88 @@ func GetPickupCode() string { } -func (m *Order) Cancel() error { - var userOrder Order - err := NewOrderQuerySet(DB).IDEq(m.ID).One(&userOrder) +func (m *Order) Cancel() (bool, error) { + var ( + order Order + orderCard OrderCard + ) + err := NewOrderQuerySet(DB).IDEq(m.ID).One(&order) if err != nil { - log.Error("err:", err) - return err + logger.Error("err:", err) + return false, err } - if userOrder.CardStatus != OrderCardStatusUnPick { - log.Error("card status not unpick err: ") - return errors.New("card status not unpick") + + //err = NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).One(&orderCard) + err = NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardIdEq(uint32(m.GameCardId)).CardStatusEq(OrderCardStatusUnPick).Limit(1).One(&orderCard) + if err != nil && err != RecordNotFound { + logger.Errorf("err:%#v", err) + return false, err } - if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(30*time.Minute).Before(time.Now()) { - //if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(3*time.Minute).Before(time.Now()) { - log.Error("card status expire err: ") - return errors.New("card status expire") + if err == RecordNotFound { + logger.Error("order card status not unpick") + return false, errors.New("order card status not unpick") } + //if userOrder.CardStatus != OrderCardStatusUnPick { + // logger.Error("card status not unpick err: ") + // return false,errors.New("card status not unpick") + //} + //if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(30*time.Minute).Before(time.Now()) { + // //if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(3*time.Minute).Before(time.Now()) { + // logger.Error("card status expire err: ") + // return errors.New("card status expire") + //} //fmt.Println("PayStatus",userOrder.PayStatus) //fmt.Println("DeliveryType",userOrder.DeliveryType) //fmt.Println("CreatedAt",userOrder.CreatedAt.Add(4*time.Minute)) //fmt.Println("Now",time.Now()) - if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(24*time.Hour).Before(time.Now()) { - //if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(4*time.Minute).Before(time.Now()) { - log.Error("card status expire err: ") - return errors.New("card status expire") - } + //if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(24*time.Hour).Before(time.Now()) { + // //if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(4*time.Minute).Before(time.Now()) { + // logger.Error("card status expire err: ") + // return errors.New("card status expire") + //} begin := DB.Begin() - err = NewOrderQuerySet(begin).IDEq(m.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update() + //err = NewOrderQuerySet(begin).IDEq(orderCard.OrderId).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update() + //if err != nil { + // begin.Rollback() + // logger.Error("err:", err) + // return false,err + //} + _, err = NewOrderCardQuerySet(DB).IDEq(orderCard.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).UpdateNum() if err != nil { begin.Rollback() - log.Error("err:", err) - return err + logger.Error("err:", err) + return false, err } - sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock+1 WHERE store_id=%d AND game_card_id=%d;", userOrder.StoreId, userOrder.GameCardId) + sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock+1 WHERE store_id=%d AND game_card_id=%d;", orderCard.StoreId, orderCard.GameCardId) fmt.Println("sql:", sql) err = begin.Exec(sql).Error if err != nil { begin.Rollback() logger.Errorf("err:%#v", err) - return err + return false, err } err = begin.Commit().Error if err != nil { begin.Rollback() logger.Errorf("err:%#v", err) - return err + return false, err + } + isRecede := false + if order.DeliveryType == 2 && order.Postage > 0 { + isHaveOnDeliver, err := IsHaveOnDeliverOrderCards(m.ID) + if err != nil { + logger.Error("err:", err) + return false, err + } + if !isHaveOnDeliver { + isRecede = true + } } - *m = userOrder - return nil + m = &order + return isRecede, nil } func UnPayOrderSetCancel(uid uint32) { @@ -419,7 +619,7 @@ func UnPayOrderSetCancel(uid uint32) { var order Order err := NewOrderQuerySet(DB.Debug()).UidEq(uint64(uid)).PayStatusEq(PayStatusUnPay).CardStatusEq(OrderCardStatusUnPick).One(&order) if err != nil { - log.Error("err:", err) + logger.Error("err:", err) return } @@ -430,7 +630,7 @@ func UnPayOrderSetCancel(uid uint32) { SetCardStatus(OrderCardStatusCancel).UpdateNum() if err != nil { begin.Rollback() - log.Error("err:", err) + logger.Error("err:", err) return } @@ -439,39 +639,115 @@ func UnPayOrderSetCancel(uid uint32) { err = begin.Exec(sql).Error if err != nil { begin.Rollback() - log.Error("err:", err) + logger.Error("err:", err) return } err = begin.Commit().Error if err != nil { begin.Rollback() - log.Error("err:", err) + logger.Error("err:", err) } } -func (m *Order) CreateByCardInfoList(cardInfos []CardInfo, gdb *gorm.DB) error { - err := gdb.Create(m).Error - if err != nil { - log.Error("err:", err) - return err - } - if m.ID == 0 { - return errors.New("order id is 0") - } - for _, v := range cardInfos { - for i := 0; i < int(v.Count); i++ { - //OrderCard{ - // OrderId: m.ID, - // Uid: uint32(m.Uid), - // GameCardId: v.GameCardId, - // GameCardGoodsId: 0, - // StoreId: uint32(m.StoreId), - // Status: 0, - //} +//func (m *Order) CreateByCardInfoList(cardInfos []CardInfo, gdb *gorm.DB) error { +// err := gdb.Create(m).Error +// if err != nil { +// logger.Error("err:", err) +// return err +// } +// if m.ID == 0 { +// return errors.New("order id is 0") +// } +// for _, v := range cardInfos { +// for i := 0; i < int(v.Count); i++ { +// //OrderCard{ +// // OrderId: m.ID, +// // Uid: uint32(m.Uid), +// // GameCardId: v.GameCardId, +// // GameCardGoodsId: 0, +// // StoreId: uint32(m.StoreId), +// // Status: 0, +// //} +// } +// +// } +// +// return nil +//} + +func IsCardGoodsStockEnough(cards []CardInfo, storeId uint32) (bool, error) { + for i, _ := range cards { + var gameCardGoodsStock GameCardGoodsStock + err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).GameCardIdEq(uint64(cards[i].GameCardId)). + One(&gameCardGoodsStock) + if err != nil { + logger.Error("err:", err) + return false, err + } + if gameCardGoodsStock.RentStock < cards[i].Count { + logger.Error("order stock out ") + return false, errors.New("order stock out") } - } + return false, nil +} +func GameCardGoodsInventoryReduction(cards []CardInfo, storeId uint32, gdb *gorm.DB) error { + for i, _ := range cards { + sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-%d WHERE store_id=%d AND game_card_id=%d;", cards[i].Count, storeId, cards[i].GameCardId) + fmt.Println("sql:", sql) + err := gdb.Exec(sql).Error + if err != nil { + logger.Error("err:", err) + return err + } + } + return nil +} + +func (m *Order) InventoryReduction(gdb *gorm.DB) error { + var cards []OrderCard + err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).All(&cards) + if err != nil { + logger.Error("err:", err) + return err + } + + for i, _ := range cards { + sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", m.StoreId, cards[i].GameCardId) + fmt.Println("sql:", sql) + err := gdb.Exec(sql).Error + if err != nil { + logger.Error("err:", err) + return err + } + } + return nil +} + +func (m *Order) CreatOrderCard(cards []CardInfo, storeId uint32, gdb *gorm.DB) error { + for _, v := range cards { + for i := 0; i < int(v.Count); i++ { + orderCard := &OrderCard{ + OrderId: m.ID, + Uid: uint32(m.Uid), + GameCardId: v.GameCardId, + GameCardGoodsId: 0, + StoreId: storeId, + CardStatus: OrderCardStatusUnPick, + DeliveryTime: time.Time{}, + ReceiptTime: time.Time{}, + DeliveryType: m.DeliveryType, + SerialNumber: "", + PayStatus: m.PayStatus, + } + err := gdb.Create(orderCard).Error + if err != nil { + logger.Error("err:", err) + return err + } + } + } return nil } diff --git a/model/user.go b/model/user.go index 1d7ba2a..2841ec4 100644 --- a/model/user.go +++ b/model/user.go @@ -2,6 +2,7 @@ package model import ( "errors" + "fmt" "github.com/codinl/go-logger" "mh-server/lib/utils" "sync" @@ -91,6 +92,39 @@ type DepositRefundRecord struct { User User `json:"user" gorm:"-"` } +// 黄金会员 member_gold 白金会员 member_platinum 黑金会员 member_black_gold +// member_gold_deposit member_platinum_deposit member_black_gold_platinum +// express_fee +const ( + UserConsumeTypeMemberGold = "member_gold" + UserConsumeTypeMemberPlatinum = "member_platinum" + UserConsumeTypeMemberBlackGold = "member_black_gold" + UserConsumeTypeMemberGoldDeposit = "member_gold_deposit" + UserConsumeTypeMemberPlatinumDeposit = "member_platinum_deposit" + UserConsumeTypeMemberBlackGoldDeposit = "member_black_gold_platinum" + UserConsumeTypeExpressFee = "express_fee" +) + +// gen:qs +type UserConsumeRecord struct { + Model + Uid uint32 `json:"uid"` + ConsumeType string `json:"consume_type"` // 黄金会员 member_gold 白金会员 member_platinum 黑金会员 member_black_gold + Amount uint32 `json:"amount"` + Status uint32 `json:"status"` // 1-待支付 2-已支付 3-已退款 +} + +// gen:qs +type UserRentCard struct { + Model + Uid uint32 `json:"uid"` + MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员 + LevelRentCount uint32 `json:"level_rent_count"` // 等级借卡数量 + HaveRentCount uint32 `json:"have_rent_count"` // 已借卡数量 + CanRentCount uint32 `json:"can_rent_count"` // 可借卡数量 + Status uint32 `json:"status"` // 状态 +} + func GetUserByUid(uid uint32) *User { user := new(User) if err := NewUserQuerySet(DB).UidEq(uid).One(user); err != nil { @@ -100,6 +134,15 @@ func GetUserByUid(uid uint32) *User { return user } +func GetUserRentCard(uid uint32) *UserRentCard { + userRent := new(UserRentCard) + if err := NewUserRentCardQuerySet(DB).UidEq(uid).One(userRent); err != nil { + logger.Error(err, uid) + return nil + } + return userRent +} + func UserUpdate(user *User) error { if user.Uid == 0 { return errors.New("uid is null") @@ -395,3 +438,48 @@ func GetUserMutex(mutexKey string) *sync.Mutex { //} var AuthLoginMutex = sync.Mutex{} + +func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig) error { + //UserRentCard{} + var userRentCard UserRentCard + err := NewUserRentCardQuerySet(DB).UidEq(uid).One(&userRentCard) + if err != nil && err != RecordNotFound { + logger.Error("err:", err) + return err + } + if err == RecordNotFound { + user := GetUserByUid(uid) + if user == nil { + logger.Error("user nil") + return errors.New("user nil") + } + if memberConfig == nil { + memberConfig, err = GetMemberConfig(user.MemberLevel) + if err != nil { + logger.Error("GetMemberConfig err:", err) + return err + } + } + rentCard := &UserRentCard{ + Uid: uid, + MemberLevel: user.MemberLevel, + LevelRentCount: memberConfig.CardMax, + HaveRentCount: uint32(count), + CanRentCount: uint32(memberConfig.CardMax - count), + Status: 0, + } + err := DB.Create(rentCard).Error + if err != nil { + logger.Error("err", err) + return err + } + return nil + } + sql := fmt.Sprintf("UPDATE user_rent_card SET have_rent_count=have_rent_count+%d ,can_rent_count=can_rent_count-%d WHERE uid = %d", count, count, uid) + err = DB.Exec(sql).Error + if err != nil { + logger.Error("err", err) + return err + } + return nil +} diff --git a/router/router_app.go b/router/router_app.go index a618ead..e7c12fb 100644 --- a/router/router_app.go +++ b/router/router_app.go @@ -75,8 +75,9 @@ func ConfigAppRouter(r gin.IRouter) { user.POST("user_info/tel", controller.UserTel) // 获取用户手机号 user.POST("user_info/update", controller.UserInfoUpdate) // 修改用户信息 user.POST("open_member", controller.OpenMember) // 开通会员 + user.POST("upgrade_member", controller.UpgradeMember) // 开通会员 user.POST("pay_deposit", controller.PayDeposit) // 支付押金 - user.POST("refund_deposit", controller.RefundDeposit) // 押金 + user.POST("refund_deposit", controller.RefundDeposit) // 退押金 user.POST("refund_deposit_record", controller.UserDepositRefundRecordList) // 押金记录 user.POST("member_config", controller.MemberConfigList) // 开通会员配置 @@ -128,11 +129,11 @@ func ConfigAppRouter(r gin.IRouter) { order.POST("cancel", controller.OrderCancel) // 订单取消 order.Use(auth.UserAccessAuth) // TODO - order.POST("create", controller.OrderCreate) // 创建订单 - order.POST("pay", controller.OrderPay) // 订单支付 - order.POST("list", controller.OrderList) // 订单列表 - order.POST("revert", controller.OrderRevert) // 订单归还 - order.POST("revert/cancel", controller.OrderRevertCancel) // 订单归还 + order.POST("create", controller.RentCardOrderCreate) // 创建租卡 + order.POST("pay", controller.OrderPay) // 租卡订单支付 + order.POST("list", controller.RentCardOrderList) // 租卡订单列表 + order.POST("revert", controller.OrderRevert) // 租卡订单归还 + order.POST("revert/cancel", controller.OrderRevertCancel) // 租卡订单取消归还 //order.POST("express_fee/refund", controller.ExpressFeeRefund) // 物流费退款 order.POST("confirm_receipt", controller.ConfirmReceipt) // 订单确认收货