fix:会员共享卡
This commit is contained in:
parent
5307a67bb4
commit
60d0bcb8b0
|
@ -560,6 +560,26 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
}
|
||||
|
||||
model.CreateUserRentCardByMemberLevel(record.Uid, record.MemberLevel, memberConfig.CardMax)
|
||||
} else if notify.Attach == wxpay.WxPayMemberExpireDelay {
|
||||
record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo}
|
||||
err := record.GetByOpenNo()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
var user model.User
|
||||
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
_, err = model.NewUserMemberExpireDelayQuerySet(model.DB).UidEq(record.Uid).MemberExpireEq(user.MemberExpire).GetUpdater().
|
||||
SetIsPay(1).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
logger.Debug("微信推动支付通知")
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"mh-server/lib/status"
|
||||
"mh-server/lib/wxpay"
|
||||
"mh-server/model"
|
||||
"time"
|
||||
)
|
||||
|
||||
func MallGoodsList(c *gin.Context) {
|
||||
|
@ -131,13 +132,6 @@ func MallOrderCreate(c *gin.Context) {
|
|||
DeliveryFee: goods.DeliveryFee,
|
||||
DeliveryStatus: model.DeliveryStatusUnDeliver,
|
||||
}
|
||||
err = order.Create(tx)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
tx.Rollback()
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// TODO 减少库存
|
||||
// TODO 确认下是在支付后减少,还是下单后?
|
||||
|
@ -165,6 +159,69 @@ func MallOrderCreate(c *gin.Context) {
|
|||
//}
|
||||
}
|
||||
|
||||
if goods.DeliveryFee == 0 {
|
||||
order.PayTime = time.Now()
|
||||
order.PayStatus = model.PayStatusOK
|
||||
//_, err := model.NewGoodsOrderQuerySet(model.DB).SerialNoEq(notify.OutTradeNo).GetUpdater().
|
||||
// SetPayTime(time.Now()).
|
||||
// SetPayStatus(model.PayStatusOK).UpdateNum()
|
||||
//if err != nil {
|
||||
// logger.Error("err:", err)
|
||||
//}
|
||||
//var goodsOrder model.GoodsOrder
|
||||
//err = model.NewGoodsOrderQuerySet(model.DB).SerialNoEq(notify.OutTradeNo).One(&goodsOrder)
|
||||
//if err != nil {
|
||||
// logger.Error("err:", err)
|
||||
//}
|
||||
err = order.Create(tx)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
tx.Rollback()
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = model.OrderUpdateGoodsStock(order.GoodsId, order.Quantity, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = model.UserVmUpdate(order.Uid, int(order.Amount)*-1, model.VmEventExchangeGoods, "兑换奖品")
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = tx.Commit().Error
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"order_id": order.ID,
|
||||
"order": order,
|
||||
}
|
||||
|
||||
RespOK(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
err = order.Create(tx)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
tx.Rollback()
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = tx.Commit().Error
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
|
|
@ -582,6 +582,15 @@ func RefundDeposit(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
resp, err := model.MemberExpireDelaying(uc.Uid)
|
||||
if err != nil {
|
||||
logger.Errorf("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
isSurrender, _ := resp["is_surrender"]
|
||||
|
||||
if isSurrender == 0 {
|
||||
count, err := model.NewDepositRefundRecordQuerySet(model.DB).UidEq(uc.Uid).StatusNotIn(model.DepositRefundStatusRefunded, model.DepositRefundStatusRefused).Count()
|
||||
if err != nil || count > 0 {
|
||||
logger.Error("count is not 0")
|
||||
|
@ -602,8 +611,9 @@ func RefundDeposit(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
RespOK(c, nil)
|
||||
RespOK(c, resp)
|
||||
}
|
||||
|
||||
func UserDepositRefundRecordList(c *gin.Context) {
|
||||
|
@ -623,6 +633,82 @@ func UserDepositRefundRecordList(c *gin.Context) {
|
|||
RespOK(c, resp)
|
||||
}
|
||||
|
||||
func UserMemberExpireDelayingInfo(c *gin.Context) {
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
|
||||
unreturnedOrders, err := model.IsUserHaveUnreturnedOrder(uc.Uid)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
if unreturnedOrders {
|
||||
logger.Error("unreturnedOrders")
|
||||
RespJson(c, status.HaveUnreturnedOrders, nil)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := model.MemberExpireDelaying(uc.Uid)
|
||||
if err != nil {
|
||||
logger.Errorf("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
RespOK(c, resp)
|
||||
}
|
||||
|
||||
func UserMemberExpireDelayingPay(c *gin.Context) {
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var user model.User
|
||||
err := model.NewUserQuerySet(model.DB).UidEq(uc.Uid).One(&user)
|
||||
if err != nil {
|
||||
logger.Error("user err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var userMemberExpireDelay model.UserMemberExpireDelay
|
||||
err = model.NewUserMemberExpireDelayQuerySet(model.DB).UidEq(uc.Uid).MemberExpireEq(user.MemberExpire).One(&userMemberExpireDelay)
|
||||
if err != nil {
|
||||
logger.Error("user member expire delay err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
orderSn := model.GetOrderSn()
|
||||
webPay, err := wxpay.WebPay(orderSn, uint32(userMemberExpireDelay.DelayAmount), user.WxOpenID, "N", wxpay.WxPayMemberExpireDelay)
|
||||
if err != nil {
|
||||
logger.Error(errors.New("WebPay err"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, OrderId: 0, OrderType: 3}.Insert()
|
||||
if err != nil {
|
||||
logger.Error(errors.New("WebPay err"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
ret := make(map[string]interface{}, 0)
|
||||
ret["is_surrender"] = 1
|
||||
ret["expire_days"] = userMemberExpireDelay.ExpireDays
|
||||
ret["daily_fee"] = userMemberExpireDelay.DailyFee
|
||||
ret["delay_amount"] = userMemberExpireDelay.DelayAmount
|
||||
ret["web_pay"] = webPay
|
||||
RespOK(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
func MemberConfigList(c *gin.Context) {
|
||||
//uc := auth.GetCurrentUser(c)
|
||||
//if uc == nil {
|
||||
|
|
108
controller/user_share_card.go
Normal file
108
controller/user_share_card.go
Normal file
|
@ -0,0 +1,108 @@
|
|||
package controller
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/codinl/go-logger"
|
||||
"github.com/gin-gonic/gin"
|
||||
"mh-server/lib/auth"
|
||||
"mh-server/lib/status"
|
||||
"mh-server/model"
|
||||
)
|
||||
|
||||
func UserShareCardBillCreate(c *gin.Context) {
|
||||
req := struct {
|
||||
GameCardList []model.CardInfo `json:"game_card_list"`
|
||||
StoreId uint32 `json:"store_id"`
|
||||
SendCardType uint32 `json:"send_card_type"` // 1-送卡 2-邮寄
|
||||
}{}
|
||||
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
|
||||
}
|
||||
if len(req.GameCardList) == 0 || req.StoreId == 0 || req.SendCardType == 0 {
|
||||
logger.Error(errors.New("req err"))
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
billSn := model.GetShareCardBillSn()
|
||||
begin := model.DB.Begin()
|
||||
shareCardBill := &model.UserShareCardBill{
|
||||
Uid: uc.Uid,
|
||||
BillSn: billSn,
|
||||
State: model.ShareCardBillStateInCheck,
|
||||
SendCardType: req.SendCardType,
|
||||
StoreId: req.StoreId,
|
||||
}
|
||||
err := begin.Create(shareCardBill).Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("user share card bill create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
for _, info := range req.GameCardList {
|
||||
var cardBill = model.ShareCardBillGame{
|
||||
UserShareCardBillId: shareCardBill.ID,
|
||||
Uid: uc.Uid,
|
||||
GameCardId: info.GameCardId,
|
||||
BillSn: billSn,
|
||||
Count: info.Count,
|
||||
State: model.ShareCardStateInCheck,
|
||||
}
|
||||
err := begin.Create(&cardBill).Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("share card bill game create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
err = begin.Commit().Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("share card bill game create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
RespOK(c, nil)
|
||||
return
|
||||
}
|
||||
|
||||
func UserShareCardBillList(c *gin.Context) {
|
||||
req := struct {
|
||||
Page int `json:"cur_page"`
|
||||
PageSize int `json:"page_size"`
|
||||
}{}
|
||||
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
|
||||
}
|
||||
list, totalPage, err := model.GetUserShareCardBillList(uc.Uid, req.Page, req.PageSize)
|
||||
if err != nil {
|
||||
logger.Error("share card bill game create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"list": list,
|
||||
"cur_page": req.Page,
|
||||
"total_page": totalPage,
|
||||
}
|
||||
RespOK(c, ret)
|
||||
return
|
||||
}
|
|
@ -39,6 +39,7 @@ const (
|
|||
WxPayDeposit = "deposit_pay" // 押金
|
||||
WxPayExchangeGoods = "exchange_goods" // 兑换商品
|
||||
WxPayUpgradeMember = "upgrade_member" // 多级会员
|
||||
WxPayMemberExpireDelay = "member_expire_delay" // 会员过期滞纳金
|
||||
|
||||
//NotifyUrl = "https://switch.deovo.com:8001/api/v1/wxpay/notice" // TODO 数据库配置 生产
|
||||
//NotifyUrl = "https://dev.switch.deovo.com:8004/api/v1/wxpay/notice" // TODO 测试
|
||||
|
|
3397
model/autogenerated_share_card.go
Normal file
3397
model/autogenerated_share_card.go
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -3398,6 +3398,892 @@ func NewUserInviteUpdater(db *gorm.DB) UserInviteUpdater {
|
|||
|
||||
// ===== END of UserInvite modifiers
|
||||
|
||||
// ===== BEGIN of query set UserMemberExpireDelayQuerySet
|
||||
|
||||
// UserMemberExpireDelayQuerySet is an queryset type for UserMemberExpireDelay
|
||||
type UserMemberExpireDelayQuerySet struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
// NewUserMemberExpireDelayQuerySet constructs new UserMemberExpireDelayQuerySet
|
||||
func NewUserMemberExpireDelayQuerySet(db *gorm.DB) UserMemberExpireDelayQuerySet {
|
||||
return UserMemberExpireDelayQuerySet{
|
||||
db: db.Model(&UserMemberExpireDelay{}),
|
||||
}
|
||||
}
|
||||
|
||||
func (qs UserMemberExpireDelayQuerySet) w(db *gorm.DB) UserMemberExpireDelayQuerySet {
|
||||
return NewUserMemberExpireDelayQuerySet(db)
|
||||
}
|
||||
|
||||
func (qs UserMemberExpireDelayQuerySet) Select(fields ...UserMemberExpireDelayDBSchemaField) UserMemberExpireDelayQuerySet {
|
||||
names := []string{}
|
||||
for _, f := range fields {
|
||||
names = append(names, f.String())
|
||||
}
|
||||
|
||||
return qs.w(qs.db.Select(strings.Join(names, ",")))
|
||||
}
|
||||
|
||||
// Create is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (o *UserMemberExpireDelay) Create(db *gorm.DB) error {
|
||||
return db.Create(o).Error
|
||||
}
|
||||
|
||||
// Delete is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (o *UserMemberExpireDelay) Delete(db *gorm.DB) error {
|
||||
return db.Delete(o).Error
|
||||
}
|
||||
|
||||
// All is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) All(ret *[]UserMemberExpireDelay) error {
|
||||
return qs.db.Find(ret).Error
|
||||
}
|
||||
|
||||
// Count is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) Count() (int, error) {
|
||||
var count int
|
||||
err := qs.db.Count(&count).Error
|
||||
return count, err
|
||||
}
|
||||
|
||||
// CreatedAtEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) CreatedAtEq(createdAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("created_at = ?", createdAt))
|
||||
}
|
||||
|
||||
// CreatedAtGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) CreatedAtGt(createdAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("created_at > ?", createdAt))
|
||||
}
|
||||
|
||||
// CreatedAtGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) CreatedAtGte(createdAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("created_at >= ?", createdAt))
|
||||
}
|
||||
|
||||
// CreatedAtLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) CreatedAtLt(createdAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("created_at < ?", createdAt))
|
||||
}
|
||||
|
||||
// CreatedAtLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) CreatedAtLte(createdAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("created_at <= ?", createdAt))
|
||||
}
|
||||
|
||||
// CreatedAtNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) CreatedAtNe(createdAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("created_at != ?", createdAt))
|
||||
}
|
||||
|
||||
// DailyFeeEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeEq(dailyFee uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("daily_fee = ?", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeGt(dailyFee uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("daily_fee > ?", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeGte(dailyFee uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("daily_fee >= ?", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeIn(dailyFee ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(dailyFee) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one dailyFee in DailyFeeIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("daily_fee IN (?)", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeLt(dailyFee uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("daily_fee < ?", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeLte(dailyFee uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("daily_fee <= ?", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeNe(dailyFee uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("daily_fee != ?", dailyFee))
|
||||
}
|
||||
|
||||
// DailyFeeNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DailyFeeNotIn(dailyFee ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(dailyFee) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one dailyFee in DailyFeeNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("daily_fee NOT IN (?)", dailyFee))
|
||||
}
|
||||
|
||||
// DelayAmountEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountEq(delayAmount uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("delay_amount = ?", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountGt(delayAmount uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("delay_amount > ?", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountGte(delayAmount uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("delay_amount >= ?", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountIn(delayAmount ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(delayAmount) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one delayAmount in DelayAmountIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("delay_amount IN (?)", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountLt(delayAmount uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("delay_amount < ?", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountLte(delayAmount uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("delay_amount <= ?", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountNe(delayAmount uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("delay_amount != ?", delayAmount))
|
||||
}
|
||||
|
||||
// DelayAmountNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DelayAmountNotIn(delayAmount ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(delayAmount) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one delayAmount in DelayAmountNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("delay_amount NOT IN (?)", delayAmount))
|
||||
}
|
||||
|
||||
// Delete is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) Delete() error {
|
||||
return qs.db.Delete(UserMemberExpireDelay{}).Error
|
||||
}
|
||||
|
||||
// DeleteNum is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeleteNum() (int64, error) {
|
||||
db := qs.db.Delete(UserMemberExpireDelay{})
|
||||
return db.RowsAffected, db.Error
|
||||
}
|
||||
|
||||
// DeleteNumUnscoped is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeleteNumUnscoped() (int64, error) {
|
||||
db := qs.db.Unscoped().Delete(UserMemberExpireDelay{})
|
||||
return db.RowsAffected, db.Error
|
||||
}
|
||||
|
||||
// DeletedAtEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtEq(deletedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at = ?", deletedAt))
|
||||
}
|
||||
|
||||
// DeletedAtGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtGt(deletedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at > ?", deletedAt))
|
||||
}
|
||||
|
||||
// DeletedAtGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtGte(deletedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at >= ?", deletedAt))
|
||||
}
|
||||
|
||||
// DeletedAtIsNotNull is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtIsNotNull() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at IS NOT NULL"))
|
||||
}
|
||||
|
||||
// DeletedAtIsNull is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtIsNull() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at IS NULL"))
|
||||
}
|
||||
|
||||
// DeletedAtLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtLt(deletedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at < ?", deletedAt))
|
||||
}
|
||||
|
||||
// DeletedAtLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtLte(deletedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at <= ?", deletedAt))
|
||||
}
|
||||
|
||||
// DeletedAtNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) DeletedAtNe(deletedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("deleted_at != ?", deletedAt))
|
||||
}
|
||||
|
||||
// ExpireDaysEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysEq(expireDays uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("expire_days = ?", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysGt(expireDays uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("expire_days > ?", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysGte(expireDays uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("expire_days >= ?", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysIn(expireDays ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(expireDays) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one expireDays in ExpireDaysIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("expire_days IN (?)", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysLt(expireDays uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("expire_days < ?", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysLte(expireDays uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("expire_days <= ?", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysNe(expireDays uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("expire_days != ?", expireDays))
|
||||
}
|
||||
|
||||
// ExpireDaysNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) ExpireDaysNotIn(expireDays ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(expireDays) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one expireDays in ExpireDaysNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("expire_days NOT IN (?)", expireDays))
|
||||
}
|
||||
|
||||
// GetDB is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) GetDB() *gorm.DB {
|
||||
return qs.db
|
||||
}
|
||||
|
||||
// GetUpdater is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) GetUpdater() UserMemberExpireDelayUpdater {
|
||||
return NewUserMemberExpireDelayUpdater(qs.db)
|
||||
}
|
||||
|
||||
// IDEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDEq(ID uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("id = ?", ID))
|
||||
}
|
||||
|
||||
// IDGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDGt(ID uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("id > ?", ID))
|
||||
}
|
||||
|
||||
// IDGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDGte(ID uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("id >= ?", ID))
|
||||
}
|
||||
|
||||
// IDIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDIn(ID ...uint32) UserMemberExpireDelayQuerySet {
|
||||
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 UserMemberExpireDelayQuerySet) IDLt(ID uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("id < ?", ID))
|
||||
}
|
||||
|
||||
// IDLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDLte(ID uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("id <= ?", ID))
|
||||
}
|
||||
|
||||
// IDNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDNe(ID uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("id != ?", ID))
|
||||
}
|
||||
|
||||
// IDNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IDNotIn(ID ...uint32) UserMemberExpireDelayQuerySet {
|
||||
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))
|
||||
}
|
||||
|
||||
// IsPayEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayEq(isPay uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("is_pay = ?", isPay))
|
||||
}
|
||||
|
||||
// IsPayGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayGt(isPay uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("is_pay > ?", isPay))
|
||||
}
|
||||
|
||||
// IsPayGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayGte(isPay uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("is_pay >= ?", isPay))
|
||||
}
|
||||
|
||||
// IsPayIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayIn(isPay ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(isPay) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one isPay in IsPayIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("is_pay IN (?)", isPay))
|
||||
}
|
||||
|
||||
// IsPayLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayLt(isPay uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("is_pay < ?", isPay))
|
||||
}
|
||||
|
||||
// IsPayLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayLte(isPay uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("is_pay <= ?", isPay))
|
||||
}
|
||||
|
||||
// IsPayNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayNe(isPay uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("is_pay != ?", isPay))
|
||||
}
|
||||
|
||||
// IsPayNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) IsPayNotIn(isPay ...uint32) UserMemberExpireDelayQuerySet {
|
||||
if len(isPay) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one isPay in IsPayNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("is_pay NOT IN (?)", isPay))
|
||||
}
|
||||
|
||||
// Limit is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) Limit(limit int) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Limit(limit))
|
||||
}
|
||||
|
||||
// MemberExpireEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) MemberExpireEq(memberExpire time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire = ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) MemberExpireGt(memberExpire time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire > ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) MemberExpireGte(memberExpire time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire >= ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) MemberExpireLt(memberExpire time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire < ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) MemberExpireLte(memberExpire time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire <= ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) MemberExpireNe(memberExpire time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire != ?", memberExpire))
|
||||
}
|
||||
|
||||
// Offset is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) Offset(offset int) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Offset(offset))
|
||||
}
|
||||
|
||||
// One is used to retrieve one result. It returns gorm.ErrRecordNotFound
|
||||
// if nothing was fetched
|
||||
func (qs UserMemberExpireDelayQuerySet) One(ret *UserMemberExpireDelay) error {
|
||||
return qs.db.First(ret).Error
|
||||
}
|
||||
|
||||
// OrderAscByCreatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByCreatedAt() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("created_at ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByDailyFee is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByDailyFee() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("daily_fee ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByDelayAmount is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByDelayAmount() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("delay_amount ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByDeletedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByDeletedAt() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("deleted_at ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByExpireDays is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByExpireDays() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("expire_days ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByID is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByID() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("id ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByIsPay is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByIsPay() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("is_pay ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByMemberExpire is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByMemberExpire() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("member_expire ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByUid is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByUid() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("uid ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByUpdatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderAscByUpdatedAt() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("updated_at ASC"))
|
||||
}
|
||||
|
||||
// OrderDescByCreatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByCreatedAt() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("created_at DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByDailyFee is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByDailyFee() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("daily_fee DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByDelayAmount is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByDelayAmount() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("delay_amount DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByDeletedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByDeletedAt() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("deleted_at DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByExpireDays is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByExpireDays() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("expire_days DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByID is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByID() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("id DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByIsPay is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByIsPay() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("is_pay DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByMemberExpire is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByMemberExpire() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("member_expire DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByUid is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByUid() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("uid DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByUpdatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) OrderDescByUpdatedAt() UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Order("updated_at DESC"))
|
||||
}
|
||||
|
||||
// UidEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidEq(uid uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("uid = ?", uid))
|
||||
}
|
||||
|
||||
// UidGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidGt(uid uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("uid > ?", uid))
|
||||
}
|
||||
|
||||
// UidGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidGte(uid uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("uid >= ?", uid))
|
||||
}
|
||||
|
||||
// UidIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidIn(uid ...uint32) UserMemberExpireDelayQuerySet {
|
||||
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 UserMemberExpireDelayQuerySet) UidLt(uid uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("uid < ?", uid))
|
||||
}
|
||||
|
||||
// UidLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidLte(uid uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("uid <= ?", uid))
|
||||
}
|
||||
|
||||
// UidNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidNe(uid uint32) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("uid != ?", uid))
|
||||
}
|
||||
|
||||
// UidNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UidNotIn(uid ...uint32) UserMemberExpireDelayQuerySet {
|
||||
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 UserMemberExpireDelayQuerySet) UpdatedAtEq(updatedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("updated_at = ?", updatedAt))
|
||||
}
|
||||
|
||||
// UpdatedAtGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UpdatedAtGt(updatedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("updated_at > ?", updatedAt))
|
||||
}
|
||||
|
||||
// UpdatedAtGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UpdatedAtGte(updatedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("updated_at >= ?", updatedAt))
|
||||
}
|
||||
|
||||
// UpdatedAtLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UpdatedAtLt(updatedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("updated_at < ?", updatedAt))
|
||||
}
|
||||
|
||||
// UpdatedAtLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UpdatedAtLte(updatedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("updated_at <= ?", updatedAt))
|
||||
}
|
||||
|
||||
// UpdatedAtNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserMemberExpireDelayQuerySet) UpdatedAtNe(updatedAt time.Time) UserMemberExpireDelayQuerySet {
|
||||
return qs.w(qs.db.Where("updated_at != ?", updatedAt))
|
||||
}
|
||||
|
||||
// SetCreatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetCreatedAt(createdAt time.Time) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.CreatedAt)] = createdAt
|
||||
return u
|
||||
}
|
||||
|
||||
// SetDailyFee is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetDailyFee(dailyFee uint32) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.DailyFee)] = dailyFee
|
||||
return u
|
||||
}
|
||||
|
||||
// SetDelayAmount is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetDelayAmount(delayAmount uint32) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.DelayAmount)] = delayAmount
|
||||
return u
|
||||
}
|
||||
|
||||
// SetDeletedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetDeletedAt(deletedAt *time.Time) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.DeletedAt)] = deletedAt
|
||||
return u
|
||||
}
|
||||
|
||||
// SetExpireDays is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetExpireDays(expireDays uint32) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.ExpireDays)] = expireDays
|
||||
return u
|
||||
}
|
||||
|
||||
// SetID is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetID(ID uint32) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.ID)] = ID
|
||||
return u
|
||||
}
|
||||
|
||||
// SetIsPay is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetIsPay(isPay uint32) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.IsPay)] = isPay
|
||||
return u
|
||||
}
|
||||
|
||||
// SetMemberExpire is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetMemberExpire(memberExpire time.Time) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.MemberExpire)] = memberExpire
|
||||
return u
|
||||
}
|
||||
|
||||
// SetUid is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetUid(uid uint32) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.Uid)] = uid
|
||||
return u
|
||||
}
|
||||
|
||||
// SetUpdatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) SetUpdatedAt(updatedAt time.Time) UserMemberExpireDelayUpdater {
|
||||
u.fields[string(UserMemberExpireDelayDBSchema.UpdatedAt)] = updatedAt
|
||||
return u
|
||||
}
|
||||
|
||||
// Update is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) Update() error {
|
||||
return u.db.Updates(u.fields).Error
|
||||
}
|
||||
|
||||
// UpdateNum is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserMemberExpireDelayUpdater) UpdateNum() (int64, error) {
|
||||
db := u.db.Updates(u.fields)
|
||||
return db.RowsAffected, db.Error
|
||||
}
|
||||
|
||||
// ===== END of query set UserMemberExpireDelayQuerySet
|
||||
|
||||
// ===== BEGIN of UserMemberExpireDelay modifiers
|
||||
|
||||
// UserMemberExpireDelayDBSchemaField describes database schema field. It requires for method 'Update'
|
||||
type UserMemberExpireDelayDBSchemaField string
|
||||
|
||||
// String method returns string representation of field.
|
||||
// nolint: dupl
|
||||
func (f UserMemberExpireDelayDBSchemaField) String() string {
|
||||
return string(f)
|
||||
}
|
||||
|
||||
// UserMemberExpireDelayDBSchema stores db field names of UserMemberExpireDelay
|
||||
var UserMemberExpireDelayDBSchema = struct {
|
||||
ID UserMemberExpireDelayDBSchemaField
|
||||
CreatedAt UserMemberExpireDelayDBSchemaField
|
||||
UpdatedAt UserMemberExpireDelayDBSchemaField
|
||||
DeletedAt UserMemberExpireDelayDBSchemaField
|
||||
Uid UserMemberExpireDelayDBSchemaField
|
||||
MemberExpire UserMemberExpireDelayDBSchemaField
|
||||
DelayAmount UserMemberExpireDelayDBSchemaField
|
||||
ExpireDays UserMemberExpireDelayDBSchemaField
|
||||
DailyFee UserMemberExpireDelayDBSchemaField
|
||||
IsPay UserMemberExpireDelayDBSchemaField
|
||||
}{
|
||||
|
||||
ID: UserMemberExpireDelayDBSchemaField("id"),
|
||||
CreatedAt: UserMemberExpireDelayDBSchemaField("created_at"),
|
||||
UpdatedAt: UserMemberExpireDelayDBSchemaField("updated_at"),
|
||||
DeletedAt: UserMemberExpireDelayDBSchemaField("deleted_at"),
|
||||
Uid: UserMemberExpireDelayDBSchemaField("uid"),
|
||||
MemberExpire: UserMemberExpireDelayDBSchemaField("member_expire"),
|
||||
DelayAmount: UserMemberExpireDelayDBSchemaField("delay_amount"),
|
||||
ExpireDays: UserMemberExpireDelayDBSchemaField("expire_days"),
|
||||
DailyFee: UserMemberExpireDelayDBSchemaField("daily_fee"),
|
||||
IsPay: UserMemberExpireDelayDBSchemaField("is_pay"),
|
||||
}
|
||||
|
||||
// Update updates UserMemberExpireDelay fields by primary key
|
||||
// nolint: dupl
|
||||
func (o *UserMemberExpireDelay) Update(db *gorm.DB, fields ...UserMemberExpireDelayDBSchemaField) error {
|
||||
dbNameToFieldName := map[string]interface{}{
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"member_expire": o.MemberExpire,
|
||||
"delay_amount": o.DelayAmount,
|
||||
"expire_days": o.ExpireDays,
|
||||
"daily_fee": o.DailyFee,
|
||||
"is_pay": o.IsPay,
|
||||
}
|
||||
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 UserMemberExpireDelay %v fields %v: %s",
|
||||
o, fields, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// UserMemberExpireDelayUpdater is an UserMemberExpireDelay updates manager
|
||||
type UserMemberExpireDelayUpdater struct {
|
||||
fields map[string]interface{}
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
// NewUserMemberExpireDelayUpdater creates new UserMemberExpireDelay updater
|
||||
// nolint: dupl
|
||||
func NewUserMemberExpireDelayUpdater(db *gorm.DB) UserMemberExpireDelayUpdater {
|
||||
return UserMemberExpireDelayUpdater{
|
||||
fields: map[string]interface{}{},
|
||||
db: db.Model(&UserMemberExpireDelay{}),
|
||||
}
|
||||
}
|
||||
|
||||
// ===== END of UserMemberExpireDelay modifiers
|
||||
|
||||
// ===== BEGIN of query set UserOpenMemberRecordQuerySet
|
||||
|
||||
// UserOpenMemberRecordQuerySet is an queryset type for UserOpenMemberRecord
|
||||
|
|
|
@ -204,6 +204,11 @@ const (
|
|||
GameCardGoodsStatusCustomerHold = 3 // 客户持有
|
||||
)
|
||||
|
||||
const (
|
||||
GameCardGoodsTypeShare = "user_share" // 用户共享
|
||||
GameCardGoodsTypeCommon = "common" // 公共
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type GameCardGoods struct {
|
||||
Model
|
||||
|
@ -212,6 +217,7 @@ type GameCardGoods struct {
|
|||
Status uint8 `json:"status"` // 状态:1-库存中 2-在途 3-客户持有
|
||||
StoreId uint64 `json:"store_id"` // 门店id
|
||||
Provider string `json:"provider"` // 供应商
|
||||
CardType string `json:"card_type" gorm:"index"` //
|
||||
}
|
||||
|
||||
func (*GameCardGoods) TableName() string {
|
||||
|
|
|
@ -104,9 +104,9 @@ func InitTestDB() {
|
|||
&OrderCard{},
|
||||
&UserRentCard{},
|
||||
&UserConsumeRecord{},
|
||||
|
||||
|
||||
|
||||
&UserMemberExpireDelay{},
|
||||
&UserShareCardBill{},
|
||||
&ShareCardBillGame{},
|
||||
)
|
||||
|
||||
fmt.Println("DB init success")
|
||||
|
@ -561,7 +561,6 @@ func MergingGameCards() {
|
|||
|
||||
}
|
||||
|
||||
|
||||
func TestGoodsAdd(t *testing.T) {
|
||||
GoodsAdd()
|
||||
}
|
||||
|
@ -877,7 +876,7 @@ func TestOrderCancelId(t *testing.T) {
|
|||
// OutTradeNo: outTradeNo,
|
||||
// OutRefundNo: orderSn,
|
||||
// NotifyUrl: "",
|
||||
// Amount: wxpay.OrderRefundAmount{
|
||||
// Amount: wxpay.OrderRefundAmount{a
|
||||
// Refund: order.PayPrice,
|
||||
// Total: order.PayPrice,
|
||||
// Currency: "CNY",
|
||||
|
@ -895,3 +894,43 @@ func TestOrderCancelId(t *testing.T) {
|
|||
// }
|
||||
//}
|
||||
|
||||
func TestGameCardGoodsStockInspection(t *testing.T) {
|
||||
GameCardGoodsStockInspection()
|
||||
}
|
||||
|
||||
func GameCardGoodsStockInspection() {
|
||||
InitDBProd()
|
||||
|
||||
var gameCardGoodses []GameCardGoods
|
||||
err := NewGameCardGoodsQuerySet(DBProd).StoreIdEq(16).All(&gameCardGoodses)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
|
||||
rentMap := make(map[uint32]uint32, 0)
|
||||
holdMap := make(map[uint32]uint32, 0)
|
||||
for _, gameCard := range gameCardGoodses {
|
||||
if gameCard.Status == 1 {
|
||||
//rentMap[uint32(gameCard.StoreId)] += 1
|
||||
rentMap[uint32(gameCard.GameCardId)] += 1
|
||||
}
|
||||
if gameCard.Status == 3 {
|
||||
holdMap[uint32(gameCard.GameCardId)] += 1
|
||||
}
|
||||
}
|
||||
var gameCardGoodsStocks []GameCardGoodsStock
|
||||
err = NewGameCardGoodsStockQuerySet(DBProd).StoreIdEq(16).All(&gameCardGoodsStocks)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
for _, stock := range gameCardGoodsStocks {
|
||||
rent := rentMap[uint32(stock.GameCardId)]
|
||||
hold := holdMap[uint32(stock.GameCardId)]
|
||||
//fmt.Println("StoreId:", stock.StoreId, "rent:", rent, stock.RentStock, "hold:", hold, stock.UserHoldStock)
|
||||
|
||||
if rent != stock.RentStock || hold != stock.UserHoldStock {
|
||||
fmt.Println("StoreId:", stock.StoreId, "rent:", rent, stock.RentStock, "hold:", hold, stock.UserHoldStock, stock.GameCardId)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -491,7 +491,7 @@ func IsUserHaveUnreturnedOrder(uid uint32) (bool, error) {
|
|||
fmt.Println("uid", uid)
|
||||
|
||||
//sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM `order` WHERE uid = %d AND pay_status IN (1,2) AND card_status IN (1,2,3) ;", uid)
|
||||
sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM order_card WHERE uid = %d AND pay_status IN (1,2) AND card_status IN (1,2,3) ;", uid)
|
||||
sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM order_card WHERE uid = %d AND pay_status IN (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)
|
||||
|
|
148
model/share_card.go
Normal file
148
model/share_card.go
Normal file
|
@ -0,0 +1,148 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/codinl/go-logger"
|
||||
"time"
|
||||
)
|
||||
|
||||
//go:generate goqueryset -in share_card.go
|
||||
// gen:qs
|
||||
type UserShareCardBill struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
BillSn string `json:"bill_sn" gorm:"index"`
|
||||
State string `json:"state" gorm:"index"`
|
||||
SendCardType uint32 `json:"send_card_type"` // 1-送卡 2-邮寄
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
ExpressCompany string `json:"express_company"` // 物流公司
|
||||
ExpressCompanyNo string `json:"express_company_no"` // 物流公司编号
|
||||
ExpressNo string `json:"express_no"` // 物流单号
|
||||
SendCardTime time.Time `json:"send_card_time"` // 递送卡时间
|
||||
StockTime time.Time `json:"stock_time"` // 入库时间
|
||||
RetrieveTime time.Time `json:"retrieve_time"` // 收回卡时间 申请收回
|
||||
StockRemovalTime time.Time `json:"stock_removal_time"` // 出库时间
|
||||
Store Store `json:"store" gorm:"-"` // 门店
|
||||
|
||||
BillGames []ShareCardBillGame `json:"bill_games" gorm:"-"`
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
type ShareCardBillGame struct {
|
||||
Model
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
BillSn string `json:"bill_sn" gorm:"index"`
|
||||
Count uint32 `json:"count"`
|
||||
State string `json:"state" gorm:"index"`
|
||||
GameCard GameCard `json:"game_card" gorm:"-"` //
|
||||
}
|
||||
|
||||
const (
|
||||
ShareCardBillStateInCheck = "in_check" // 待审核
|
||||
ShareCardBillStateInSendCard = "in_send_card" // 待递送卡
|
||||
ShareCardBillStateCompleted = "completed" // 完成
|
||||
ShareCardBillStateCancel = "cancel" // 取消
|
||||
ShareCardBillStateAuditLose = "check_lose" // 审核失败
|
||||
)
|
||||
|
||||
const (
|
||||
ShareCardStateInCheck = "in_check" // 待审核
|
||||
ShareCardStateInSendCard = "in_send_card" // 待递送卡
|
||||
ShareCardStateSharing = "sharing" // 共享中
|
||||
ShareCardStateAuditLose = "check_lose" // 审核失败
|
||||
ShareCardStateCancel = "cancel" // 取消
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type UserShareCard struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
SerialNumber string `json:"serial_number" gorm:"index"` // 编号
|
||||
BillSn string `json:"bill_sn" gorm:"index"`
|
||||
GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
State string `json:"state" gorm:"index"`
|
||||
GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"`
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
ShareCardBillGameId uint32 `json:"share_card_bill_game_id" gorm:"index"`
|
||||
}
|
||||
|
||||
//type UserShareCardBillInfo struct {
|
||||
// GameCardId uint32 `json:"game_card_id"`
|
||||
// Count uint32 `json:"count"`
|
||||
//}
|
||||
|
||||
func GetUserShareCardBillList(uid uint32, page, pageSize int) ([]UserShareCardBill, int, error) {
|
||||
page = page - 1
|
||||
if page < 0 {
|
||||
page = 0
|
||||
}
|
||||
if pageSize == 0 {
|
||||
pageSize = 10
|
||||
}
|
||||
var shareCardBills []UserShareCardBill
|
||||
qs := NewUserShareCardBillQuerySet(DB).UidEq(uid)
|
||||
|
||||
count, err := qs.Count()
|
||||
if err != nil {
|
||||
logger.Error("user share card bill count err:", err)
|
||||
return shareCardBills, 0, err
|
||||
}
|
||||
totalPage := count/pageSize + 1
|
||||
err = qs.OrderDescByID().Offset(page * pageSize).Limit(pageSize).All(&shareCardBills)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("user share card bill err:", err)
|
||||
return shareCardBills, 0, err
|
||||
}
|
||||
if len(shareCardBills) == 0 {
|
||||
return shareCardBills, 0, nil
|
||||
}
|
||||
shareCardBills = UserShareCardBillListSetGame(shareCardBills)
|
||||
return shareCardBills, totalPage, nil
|
||||
}
|
||||
|
||||
func UserShareCardBillListSetGame(list []UserShareCardBill) []UserShareCardBill {
|
||||
billIds := make([]uint32, 0, len(list))
|
||||
for i, _ := range list {
|
||||
billIds = append(billIds, list[i].ID)
|
||||
}
|
||||
if len(billIds) == 0 {
|
||||
return list
|
||||
}
|
||||
billMap := make(map[uint32][]ShareCardBillGame, 0)
|
||||
var games []ShareCardBillGame
|
||||
err := NewShareCardBillGameQuerySet(DB).UserShareCardBillIdIn(billIds...).All(&games)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("share card bill err:", err)
|
||||
return list
|
||||
}
|
||||
gameIds := make([]uint32, 0, len(games))
|
||||
for i, _ := range games {
|
||||
gameIds = append(gameIds, games[i].GameCardId)
|
||||
}
|
||||
cardMap, err := GameCardMap(gameIds)
|
||||
for i, _ := range games {
|
||||
v, ok := cardMap[games[i].GameCardId]
|
||||
if ok {
|
||||
games[i].GameCard = v
|
||||
}
|
||||
}
|
||||
|
||||
for i, _ := range games {
|
||||
billMap[games[i].UserShareCardBillId] = append(billMap[games[i].UserShareCardBillId], games[i])
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
logger.Error("game card map err:", err)
|
||||
return list
|
||||
}
|
||||
|
||||
for i, _ := range list {
|
||||
v, ok := billMap[list[i].ID]
|
||||
if ok {
|
||||
list[i].BillGames = v
|
||||
}
|
||||
}
|
||||
|
||||
return list
|
||||
}
|
102
model/user.go
102
model/user.go
|
@ -59,7 +59,10 @@ const (
|
|||
MemberLevelBlackGold = 5 // 黑金会员
|
||||
)
|
||||
|
||||
const DateTimeFormat = "2006-01-02"
|
||||
const (
|
||||
DateTimeFormat = "2006-01-02"
|
||||
TimeFormat = "2006-01-02 15:04:05"
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type UserInvite struct {
|
||||
|
@ -82,6 +85,9 @@ const (
|
|||
DepositRefundStatusRefunded = 3 // 已退款
|
||||
DepositRefundStatusRefused = 4 // 已拒绝
|
||||
)
|
||||
const (
|
||||
MemberExpireDelayDailyFee = 200
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type DepositRefundRecord struct {
|
||||
|
@ -128,6 +134,18 @@ type UserRentCard struct {
|
|||
Status uint32 `json:"status"` // 状态
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
type UserMemberExpireDelay struct {
|
||||
Model
|
||||
|
||||
Uid uint32 `json:"uid" gorm:"column:uid;index"`
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
DelayAmount uint32 `json:"delay_amount"`
|
||||
ExpireDays uint32 `json:"expire_days"`
|
||||
DailyFee uint32 `json:"daily_fee"`
|
||||
IsPay uint32 `json:"is_pay"`
|
||||
}
|
||||
|
||||
func GetUserByUid(uid uint32) *User {
|
||||
user := new(User)
|
||||
if err := NewUserQuerySet(DB).UidEq(uid).One(user); err != nil {
|
||||
|
@ -186,7 +204,7 @@ type UserOpenMemberRecord struct {
|
|||
Uid uint32 `json:"uid"`
|
||||
OpenNo string `json:"open_no" gorm:"index"`
|
||||
OrderId uint32 `json:"order_id"`
|
||||
OrderType uint32 `json:"order_type"` // 1-物流支付 2-取消物流租卡
|
||||
OrderType uint32 `json:"order_type"` // 1-物流支付 2-取消物流租卡 3-滞纳金
|
||||
MemberLevel uint32 `json:"member_level"`
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
}
|
||||
|
@ -390,6 +408,21 @@ func GetOrderSn() string {
|
|||
return orderSn
|
||||
}
|
||||
|
||||
func GetShareCardBillSn() string {
|
||||
var billSn string
|
||||
for {
|
||||
billSn = utils.GetSerialNo32HEXString()
|
||||
count, err := NewUserShareCardBillQuerySet(DB).BillSnEq(billSn).Count()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
if count == 0 {
|
||||
break
|
||||
}
|
||||
}
|
||||
return billSn
|
||||
}
|
||||
|
||||
func (m *User) Edit() {
|
||||
err := DB.Save(m).Error
|
||||
if err != nil {
|
||||
|
@ -551,5 +584,68 @@ func CreateUserRentCardByMemberLevel(uid, memberLevel, cardMax uint32) {
|
|||
if err != nil {
|
||||
logger.Error("update err:", err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func MemberExpireDelaying(uid uint32) (map[string]interface{}, error) {
|
||||
ret := make(map[string]interface{}, 0)
|
||||
ret["is_surrender"] = 0
|
||||
ret["expire_days"] = 0
|
||||
ret["daily_fee"] = MemberExpireDelayDailyFee
|
||||
ret["delay_amount"] = 0
|
||||
var user User
|
||||
err := NewUserQuerySet(DB).UidEq(uid).One(&user)
|
||||
if err != nil {
|
||||
logger.Error("user err:", err)
|
||||
return ret, err
|
||||
}
|
||||
var userMemberExpireDelay UserMemberExpireDelay
|
||||
err = NewUserMemberExpireDelayQuerySet(DB).UidEq(uid).MemberExpireEq(user.MemberExpire).One(&userMemberExpireDelay)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("user member expire delay err:", err)
|
||||
return ret, err
|
||||
}
|
||||
if err == nil {
|
||||
if userMemberExpireDelay.IsPay != 1 {
|
||||
ret["is_surrender"] = 1
|
||||
ret["expire_days"] = userMemberExpireDelay.ExpireDays
|
||||
ret["daily_fee"] = userMemberExpireDelay.DailyFee
|
||||
ret["delay_amount"] = userMemberExpireDelay.DelayAmount
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
var orderCard OrderCard
|
||||
err = NewOrderCardQuerySet(DB).UidEq(uid).CardStatusIn([]uint32{1, 2, 3, 4}...).OrderDescByOrderId().One(&orderCard)
|
||||
if err != nil {
|
||||
logger.Error("order card err:", err)
|
||||
return ret, err
|
||||
}
|
||||
deadline := orderCard.RevertTime
|
||||
if orderCard.CardStatus != 4 {
|
||||
deadline = time.Now()
|
||||
}
|
||||
if user.MemberLevel == 3 {
|
||||
deadline = time.Unix(1647925200, 0)
|
||||
}
|
||||
|
||||
if user.MemberExpire.AddDate(0, 0, 1).Before(deadline) {
|
||||
days := (deadline.Unix() - user.MemberExpire.Unix()) / 24 / 3600
|
||||
if user.MemberLevel != 3 || (user.MemberLevel == 3 && days > 7) {
|
||||
ret["is_surrender"] = 1
|
||||
ret["expire_days"] = days
|
||||
ret["delay_amount"] = days * MemberExpireDelayDailyFee
|
||||
delay := &UserMemberExpireDelay{
|
||||
Uid: uid,
|
||||
MemberExpire: user.MemberExpire,
|
||||
DelayAmount: uint32(days) * MemberExpireDelayDailyFee,
|
||||
ExpireDays: uint32(days),
|
||||
DailyFee: MemberExpireDelayDailyFee,
|
||||
IsPay: 0,
|
||||
}
|
||||
err := delay.Create(DB)
|
||||
if err != nil {
|
||||
logger.Error("delay create err:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
|
|
@ -80,6 +80,8 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
user.POST("pay_deposit", controller.PayDeposit) // 支付押金
|
||||
user.POST("refund_deposit", controller.RefundDeposit) // 退押金
|
||||
user.POST("refund_deposit_record", controller.UserDepositRefundRecordList) // 押金记录
|
||||
user.POST("expire_delay", controller.UserMemberExpireDelayingInfo) // 滞纳金详情
|
||||
user.POST("expire_delay_pay", controller.UserMemberExpireDelayingPay) // 滞纳金支付
|
||||
|
||||
user.POST("member_config", controller.MemberConfigList) // 开通会员配置
|
||||
|
||||
|
@ -182,5 +184,13 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
shoppingCart.POST("del", controller.ShoppingCartDel) //
|
||||
|
||||
}
|
||||
shareCard := api.Group("share_card")
|
||||
{
|
||||
shareCard.Use(auth.UserAccessAuth)
|
||||
shareCard.POST("bill/list", controller.UserShareCardBillList) // 详情
|
||||
shareCard.POST("bill/add", controller.UserShareCardBillCreate) //
|
||||
//shoppingCart.POST("del", controller.ShoppingCartDel) //
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user