fix:
This commit is contained in:
parent
0a4c7f2c4b
commit
75b20230c6
|
@ -252,11 +252,13 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
if notify.Attach == wxpay.WxPayRentCard {
|
||||
logger.Info("租借游戏卡 支付成功:")
|
||||
var order model.Order
|
||||
err := model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).One(&order)
|
||||
err := model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).PayStatusEq(PayStatusUnPay).One(&order)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
//orderJson, _ := json.Marshal(&order)
|
||||
//fmt.Println("orderJson:", string(orderJson))
|
||||
|
||||
begin := model.DB.Begin()
|
||||
err = model.NewOrderQuerySet(begin).IDEq(order.ID).GetUpdater().
|
||||
|
@ -287,13 +289,13 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
count, err := model.NewOrderQuerySet(begin).IDEq(order.ID).Count()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
//count, err := model.NewOrderQuerySet(model.DB).UidEq(order.Uid).IDEq(order.ID).Count()
|
||||
//if err != nil {
|
||||
// logger.Error("err:", err)
|
||||
// return
|
||||
//}
|
||||
|
||||
go model.OrderCardUserRentCard(uint32(order.Uid), uint32(count), nil)
|
||||
//go model.OrderCardUserRentCard(uint32(order.Uid), uint32(count), nil)
|
||||
} else if notify.Attach == wxpay.WxPayMember {
|
||||
|
||||
logger.Info("开通会员 支付成功:")
|
||||
|
@ -334,10 +336,16 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
logger.Error("GetMemberConfig err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
|
||||
openMemberTime := time.Now()
|
||||
if !user.OpenMemberTime.IsZero() {
|
||||
openMemberTime = user.OpenMemberTime
|
||||
}
|
||||
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).SetMemberExpire(expireTime).
|
||||
SetDeposit(memberConfig.MemberDeposit).SetOpenMemberTime(openMemberTime).UpdateNum()
|
||||
//err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
var invite model.UserInvite
|
||||
|
@ -418,7 +426,7 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
|
||||
memberConfig, err := model.GetMemberConfig(user.MemberLevel)
|
||||
if err != nil {
|
||||
logger.Error("err:",err)
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -429,6 +437,48 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
if num == 0 {
|
||||
logger.Error("update deposit num is 0")
|
||||
}
|
||||
} else if notify.Attach == wxpay.WxPayUpgradeMember {
|
||||
|
||||
record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo}
|
||||
err := record.GetByOpenNo()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
fmt.Println("UpgradeMember:", record.Uid)
|
||||
var user model.User
|
||||
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
memberConfig, err := model.GetMemberConfig(record.MemberLevel)
|
||||
if err != nil {
|
||||
logger.Error("GetMemberConfig err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).SetMemberExpire(record.MemberExpire).
|
||||
SetDeposit(memberConfig.MemberDeposit).UpdateNum()
|
||||
//err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
// 添加会员时长 等级 借卡数量
|
||||
var userRentCard model.UserRentCard
|
||||
err = model.NewUserRentCardQuerySet(model.DB).UidEq(record.Uid).One(&userRentCard)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
_, err = model.NewUserRentCardQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).
|
||||
SetLevelRentCount(memberConfig.CardMax).SetCanRentCount(memberConfig.CardMax - userRentCard.HaveRentCount).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
logger.Debug("微信推动支付通知")
|
||||
|
|
|
@ -71,7 +71,6 @@ func RentCardOrderList(c *gin.Context) {
|
|||
}
|
||||
req.Uid = uc.Uid
|
||||
|
||||
|
||||
orderCardList, totalPage, err := req.GetOrderCardList() // TODO
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
|
@ -90,9 +89,10 @@ func RentCardOrderList(c *gin.Context) {
|
|||
|
||||
func OrderInfo(c *gin.Context) {
|
||||
req := struct {
|
||||
OrderId uint32 `json:"order_id"`
|
||||
GameCardId uint64 `json:"game_card_id"` // 游戏id
|
||||
GameCardGoodsId uint64 `json:"game_card_goods_id" ` // 游戏卡id
|
||||
//OrderId uint32 `json:"order_id"`
|
||||
//GameCardId uint64 `json:"game_card_id"` // 游戏id
|
||||
//GameCardGoodsId uint64 `json:"game_card_goods_id" ` // 游戏卡id
|
||||
OrderCardId uint32 `json:"order_card_id"`
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("ShouldBindJSON err")
|
||||
|
@ -100,9 +100,9 @@ func OrderInfo(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
order := model.Order{}
|
||||
order.ID = req.OrderId
|
||||
order.GameCardId = req.GameCardId
|
||||
info, err := order.Info()
|
||||
//order.ID = req.OrderId
|
||||
//order.GameCardId = req.GameCardId
|
||||
info, err := order.Info(req.OrderCardId)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
@ -324,7 +324,7 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
stockEnough, err := model.IsCardGoodsStockEnough(req.GameCardList, req.StoreId)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
RespJson(c, status.OrderStockOut, nil)
|
||||
return
|
||||
}
|
||||
if stockEnough {
|
||||
|
@ -376,7 +376,7 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
go model.OrderCardUserRentCard(uc.Uid, cardCount, memberConfig)
|
||||
go model.OrderCardUserRentCard(uc.Uid, cardCount, memberConfig, nil)
|
||||
ret := map[string]interface{}{
|
||||
"web_pay": "",
|
||||
"order_id": order.ID,
|
||||
|
@ -869,12 +869,6 @@ func OrderCancel(c *gin.Context) {
|
|||
|
||||
fmt.Println("order:", order)
|
||||
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 {
|
||||
|
@ -901,8 +895,8 @@ func OrderCancel(c *gin.Context) {
|
|||
Currency: "CNY",
|
||||
},
|
||||
}
|
||||
//bytes, _ := json.Marshal(orderRefund)
|
||||
//fmt.Println("订单取消:", string(bytes))
|
||||
bytes, _ := json.Marshal(order)
|
||||
fmt.Println("订单取消:", string(bytes))
|
||||
//err = wxpay.WxPayOrderRefund(orderRefund)
|
||||
err = wxpay.TransactionOrderRefund(orderRefund)
|
||||
if err != nil {
|
||||
|
|
|
@ -298,32 +298,73 @@ func UpgradeMember(c *gin.Context) {
|
|||
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)
|
||||
|
||||
originalMemberConfig, err := model.GetMemberConfig(user.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
|
||||
memberConfig, err := model.GetMemberConfig(req.MemberLevel)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
raiseTime, err := time.Parse("2006-01-02 15:04:05", "2022-01-01 00:00:00")
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
memberFee := originalMemberConfig.MemberFee
|
||||
if user.OpenMemberTime.Before(raiseTime) {
|
||||
memberFee = 29900
|
||||
}
|
||||
|
||||
// 补押金
|
||||
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
|
||||
|
||||
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).StatusEq(model.RedeemCodeStatusUsed).Count()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
fmt.Println("count:", count)
|
||||
// 抵扣天数
|
||||
deductionDays := int64(0)
|
||||
deductionTime := user.MemberExpire.Unix() - int64(count*30*24*3600) - time.Now().Unix() + 12*3600
|
||||
if deductionTime < 0 {
|
||||
deductionTime = 0
|
||||
}
|
||||
if deductionTime > 0 {
|
||||
deductionDays = deductionTime / int64(24*3600)
|
||||
}
|
||||
|
||||
// 抵扣金
|
||||
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
|
||||
|
||||
// 补会员费
|
||||
memberMendFee := int64(memberConfig.MemberFee) - deductionFee
|
||||
|
||||
totalFee := int64(depositMendFee) + memberMendFee
|
||||
//if memberMendFee < 0 {
|
||||
// depositMendFee = depositMendFee + memberMendFee
|
||||
//}
|
||||
fmt.Println("depositMendFee : memberMendFee", depositMendFee, memberMendFee)
|
||||
|
||||
if totalFee == 0 {
|
||||
logger.Error(errors.New("totalFee is 0"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
//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)
|
||||
|
@ -336,15 +377,17 @@ func UpgradeMember(c *gin.Context) {
|
|||
// return
|
||||
//}
|
||||
//orderSn := utils.GetSerialNo32HEXString()
|
||||
memberExpire := time.Now().AddDate(1, 0, count*30)
|
||||
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, OrderType: 3, MemberExpire: memberExpire}.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)
|
||||
webPay, err := wxpay.WebPay(orderSn, uint32(totalFee), user.WxOpenID, "N", wxpay.WxPayUpgradeMember)
|
||||
if err != nil {
|
||||
logger.Error(errors.New("WebPay err"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
@ -354,6 +397,105 @@ func UpgradeMember(c *gin.Context) {
|
|||
RespOK(c, webPay)
|
||||
}
|
||||
|
||||
func UpgradeMemberInfo(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
|
||||
//}
|
||||
originalMemberConfig, err := model.GetMemberConfig(user.MemberLevel)
|
||||
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
|
||||
}
|
||||
raiseTime, err := time.Parse("2006-01-02 15:04:05", "2022-01-01 00:00:00")
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
memberFee := originalMemberConfig.MemberFee
|
||||
if user.OpenMemberTime.Before(raiseTime) {
|
||||
memberFee = 29900
|
||||
}
|
||||
|
||||
// 补押金
|
||||
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
|
||||
|
||||
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).StatusEq(model.RedeemCodeStatusUsed).Count()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
fmt.Println("count:", count)
|
||||
// 抵扣天数
|
||||
deductionDays := int64(0)
|
||||
deductionTime := user.MemberExpire.Unix() - int64(count*30*24*3600) - time.Now().Unix() + 12*3600
|
||||
if deductionTime < 0 {
|
||||
deductionTime = 0
|
||||
}
|
||||
if deductionTime > 0 {
|
||||
deductionDays = deductionTime / int64(24*3600)
|
||||
}
|
||||
|
||||
// 抵扣金
|
||||
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
|
||||
|
||||
// 补会员费
|
||||
memberMendFee := int64(memberConfig.MemberFee) - deductionFee
|
||||
|
||||
totalFee := int64(depositMendFee) + memberMendFee
|
||||
//if memberMendFee < 0 {
|
||||
// depositMendFee = depositMendFee + memberMendFee
|
||||
//}
|
||||
fmt.Println("depositMendFee : memberMendFee", depositMendFee, memberMendFee)
|
||||
|
||||
if totalFee == 0 {
|
||||
logger.Error(errors.New("totalFee is 0"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
RespOK(c, map[string]interface{}{
|
||||
"deduction_fee": deductionFee, // 会员抵扣费
|
||||
"deduction_days": deductionDays, // 会员抵扣天数
|
||||
"member_mend_fee": memberMendFee, // 会员补费
|
||||
"deposit_mend_fee": depositMendFee, // 补押金
|
||||
"total_fee": totalFee, // 总费用
|
||||
})
|
||||
}
|
||||
|
||||
func PayDeposit(c *gin.Context) {
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
|
|
|
@ -37,6 +37,7 @@ const (
|
|||
WxPayMember = "member_pay" // 会员
|
||||
WxPayRentCard = "rent_card_pay" // 租卡
|
||||
WxPayDeposit = "deposit_pay" // 押金
|
||||
WxPayUpgradeMember = "upgrade_member" // 押金
|
||||
|
||||
//NotifyUrl = "https://switch.deovo.com:8001/api/v1/wxpay/notice" // TODO 数据库配置 生产
|
||||
//NotifyUrl = "https://dev.switch.deovo.com:8004/api/v1/wxpay/notice" // TODO 测试
|
||||
|
|
|
@ -3439,6 +3439,42 @@ func (qs UserOpenMemberRecordQuerySet) Limit(limit int) UserOpenMemberRecordQuer
|
|||
return qs.w(qs.db.Limit(limit))
|
||||
}
|
||||
|
||||
// MemberExpireEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberExpireEq(memberExpire time.Time) UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire = ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberExpireGt(memberExpire time.Time) UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire > ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberExpireGte(memberExpire time.Time) UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire >= ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberExpireLt(memberExpire time.Time) UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire < ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberExpireLte(memberExpire time.Time) UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire <= ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberExpireNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberExpireNe(memberExpire time.Time) UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Where("member_expire != ?", memberExpire))
|
||||
}
|
||||
|
||||
// MemberLevelEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) MemberLevelEq(memberLevel uint32) UserOpenMemberRecordQuerySet {
|
||||
|
@ -3557,6 +3593,12 @@ func (qs UserOpenMemberRecordQuerySet) OrderAscByID() UserOpenMemberRecordQueryS
|
|||
return qs.w(qs.db.Order("id ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByMemberExpire is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) OrderAscByMemberExpire() UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Order("member_expire ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByMemberLevel is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) OrderAscByMemberLevel() UserOpenMemberRecordQuerySet {
|
||||
|
@ -3605,6 +3647,12 @@ func (qs UserOpenMemberRecordQuerySet) OrderDescByID() UserOpenMemberRecordQuery
|
|||
return qs.w(qs.db.Order("id DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByMemberExpire is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) OrderDescByMemberExpire() UserOpenMemberRecordQuerySet {
|
||||
return qs.w(qs.db.Order("member_expire DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByMemberLevel is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserOpenMemberRecordQuerySet) OrderDescByMemberLevel() UserOpenMemberRecordQuerySet {
|
||||
|
@ -3860,6 +3908,13 @@ func (u UserOpenMemberRecordUpdater) SetID(ID uint32) UserOpenMemberRecordUpdate
|
|||
return u
|
||||
}
|
||||
|
||||
// SetMemberExpire is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserOpenMemberRecordUpdater) SetMemberExpire(memberExpire time.Time) UserOpenMemberRecordUpdater {
|
||||
u.fields[string(UserOpenMemberRecordDBSchema.MemberExpire)] = memberExpire
|
||||
return u
|
||||
}
|
||||
|
||||
// SetMemberLevel is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserOpenMemberRecordUpdater) SetMemberLevel(memberLevel uint32) UserOpenMemberRecordUpdater {
|
||||
|
@ -3930,41 +3985,44 @@ func (f UserOpenMemberRecordDBSchemaField) String() string {
|
|||
|
||||
// UserOpenMemberRecordDBSchema stores db field names of UserOpenMemberRecord
|
||||
var UserOpenMemberRecordDBSchema = struct {
|
||||
ID UserOpenMemberRecordDBSchemaField
|
||||
CreatedAt UserOpenMemberRecordDBSchemaField
|
||||
UpdatedAt UserOpenMemberRecordDBSchemaField
|
||||
DeletedAt UserOpenMemberRecordDBSchemaField
|
||||
Uid UserOpenMemberRecordDBSchemaField
|
||||
OpenNo UserOpenMemberRecordDBSchemaField
|
||||
OrderId UserOpenMemberRecordDBSchemaField
|
||||
OrderType UserOpenMemberRecordDBSchemaField
|
||||
MemberLevel UserOpenMemberRecordDBSchemaField
|
||||
ID UserOpenMemberRecordDBSchemaField
|
||||
CreatedAt UserOpenMemberRecordDBSchemaField
|
||||
UpdatedAt UserOpenMemberRecordDBSchemaField
|
||||
DeletedAt UserOpenMemberRecordDBSchemaField
|
||||
Uid UserOpenMemberRecordDBSchemaField
|
||||
OpenNo UserOpenMemberRecordDBSchemaField
|
||||
OrderId UserOpenMemberRecordDBSchemaField
|
||||
OrderType UserOpenMemberRecordDBSchemaField
|
||||
MemberLevel UserOpenMemberRecordDBSchemaField
|
||||
MemberExpire UserOpenMemberRecordDBSchemaField
|
||||
}{
|
||||
|
||||
ID: UserOpenMemberRecordDBSchemaField("id"),
|
||||
CreatedAt: UserOpenMemberRecordDBSchemaField("created_at"),
|
||||
UpdatedAt: UserOpenMemberRecordDBSchemaField("updated_at"),
|
||||
DeletedAt: UserOpenMemberRecordDBSchemaField("deleted_at"),
|
||||
Uid: UserOpenMemberRecordDBSchemaField("uid"),
|
||||
OpenNo: UserOpenMemberRecordDBSchemaField("open_no"),
|
||||
OrderId: UserOpenMemberRecordDBSchemaField("order_id"),
|
||||
OrderType: UserOpenMemberRecordDBSchemaField("order_type"),
|
||||
MemberLevel: UserOpenMemberRecordDBSchemaField("member_level"),
|
||||
ID: UserOpenMemberRecordDBSchemaField("id"),
|
||||
CreatedAt: UserOpenMemberRecordDBSchemaField("created_at"),
|
||||
UpdatedAt: UserOpenMemberRecordDBSchemaField("updated_at"),
|
||||
DeletedAt: UserOpenMemberRecordDBSchemaField("deleted_at"),
|
||||
Uid: UserOpenMemberRecordDBSchemaField("uid"),
|
||||
OpenNo: UserOpenMemberRecordDBSchemaField("open_no"),
|
||||
OrderId: UserOpenMemberRecordDBSchemaField("order_id"),
|
||||
OrderType: UserOpenMemberRecordDBSchemaField("order_type"),
|
||||
MemberLevel: UserOpenMemberRecordDBSchemaField("member_level"),
|
||||
MemberExpire: UserOpenMemberRecordDBSchemaField("member_expire"),
|
||||
}
|
||||
|
||||
// Update updates UserOpenMemberRecord fields by primary key
|
||||
// nolint: dupl
|
||||
func (o *UserOpenMemberRecord) Update(db *gorm.DB, fields ...UserOpenMemberRecordDBSchemaField) error {
|
||||
dbNameToFieldName := map[string]interface{}{
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"open_no": o.OpenNo,
|
||||
"order_id": o.OrderId,
|
||||
"order_type": o.OrderType,
|
||||
"member_level": o.MemberLevel,
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"open_no": o.OpenNo,
|
||||
"order_id": o.OrderId,
|
||||
"order_type": o.OrderType,
|
||||
"member_level": o.MemberLevel,
|
||||
"member_expire": o.MemberExpire,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
@ -4722,6 +4780,42 @@ func (qs UserQuerySet) One(ret *User) error {
|
|||
return qs.db.First(ret).Error
|
||||
}
|
||||
|
||||
// OpenMemberTimeEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OpenMemberTimeEq(openMemberTime time.Time) UserQuerySet {
|
||||
return qs.w(qs.db.Where("open_member_time = ?", openMemberTime))
|
||||
}
|
||||
|
||||
// OpenMemberTimeGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OpenMemberTimeGt(openMemberTime time.Time) UserQuerySet {
|
||||
return qs.w(qs.db.Where("open_member_time > ?", openMemberTime))
|
||||
}
|
||||
|
||||
// OpenMemberTimeGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OpenMemberTimeGte(openMemberTime time.Time) UserQuerySet {
|
||||
return qs.w(qs.db.Where("open_member_time >= ?", openMemberTime))
|
||||
}
|
||||
|
||||
// OpenMemberTimeLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OpenMemberTimeLt(openMemberTime time.Time) UserQuerySet {
|
||||
return qs.w(qs.db.Where("open_member_time < ?", openMemberTime))
|
||||
}
|
||||
|
||||
// OpenMemberTimeLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OpenMemberTimeLte(openMemberTime time.Time) UserQuerySet {
|
||||
return qs.w(qs.db.Where("open_member_time <= ?", openMemberTime))
|
||||
}
|
||||
|
||||
// OpenMemberTimeNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OpenMemberTimeNe(openMemberTime time.Time) UserQuerySet {
|
||||
return qs.w(qs.db.Where("open_member_time != ?", openMemberTime))
|
||||
}
|
||||
|
||||
// OrderAscByBond is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderAscByBond() UserQuerySet {
|
||||
|
@ -4776,6 +4870,12 @@ func (qs UserQuerySet) OrderAscByMemberLevel() UserQuerySet {
|
|||
return qs.w(qs.db.Order("member_level ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByOpenMemberTime is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderAscByOpenMemberTime() UserQuerySet {
|
||||
return qs.w(qs.db.Order("open_member_time ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByStoreId is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderAscByStoreId() UserQuerySet {
|
||||
|
@ -4866,6 +4966,12 @@ func (qs UserQuerySet) OrderDescByMemberLevel() UserQuerySet {
|
|||
return qs.w(qs.db.Order("member_level DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByOpenMemberTime is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderDescByOpenMemberTime() UserQuerySet {
|
||||
return qs.w(qs.db.Order("open_member_time DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByStoreId is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserQuerySet) OrderDescByStoreId() UserQuerySet {
|
||||
|
@ -5515,6 +5621,13 @@ func (u UserUpdater) SetMemberLevel(memberLevel uint32) UserUpdater {
|
|||
return u
|
||||
}
|
||||
|
||||
// SetOpenMemberTime is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserUpdater) SetOpenMemberTime(openMemberTime time.Time) UserUpdater {
|
||||
u.fields[string(UserDBSchema.OpenMemberTime)] = openMemberTime
|
||||
return u
|
||||
}
|
||||
|
||||
// SetProvince is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserUpdater) SetProvince(province string) UserUpdater {
|
||||
|
@ -5627,95 +5740,98 @@ func (f UserDBSchemaField) String() string {
|
|||
|
||||
// UserDBSchema stores db field names of User
|
||||
var UserDBSchema = struct {
|
||||
ID UserDBSchemaField
|
||||
CreatedAt UserDBSchemaField
|
||||
UpdatedAt UserDBSchemaField
|
||||
DeletedAt UserDBSchemaField
|
||||
Uid UserDBSchemaField
|
||||
MemberLevel UserDBSchemaField
|
||||
MemberExpire UserDBSchemaField
|
||||
Bond UserDBSchemaField
|
||||
WxName UserDBSchemaField
|
||||
WxAvatar UserDBSchemaField
|
||||
WxOpenID UserDBSchemaField
|
||||
AppOpenID UserDBSchemaField
|
||||
WxUnionID UserDBSchemaField
|
||||
Tel UserDBSchemaField
|
||||
Gender UserDBSchemaField
|
||||
City UserDBSchemaField
|
||||
Province UserDBSchemaField
|
||||
Country UserDBSchemaField
|
||||
Deposit UserDBSchemaField
|
||||
UserType UserDBSchemaField
|
||||
StoreId UserDBSchemaField
|
||||
InviteCodeUrl UserDBSchemaField
|
||||
LastLoginAt UserDBSchemaField
|
||||
IP UserDBSchemaField
|
||||
InBlack UserDBSchemaField
|
||||
StoreType UserDBSchemaField
|
||||
Version UserDBSchemaField
|
||||
ID UserDBSchemaField
|
||||
CreatedAt UserDBSchemaField
|
||||
UpdatedAt UserDBSchemaField
|
||||
DeletedAt UserDBSchemaField
|
||||
Uid UserDBSchemaField
|
||||
MemberLevel UserDBSchemaField
|
||||
MemberExpire UserDBSchemaField
|
||||
OpenMemberTime UserDBSchemaField
|
||||
Bond UserDBSchemaField
|
||||
WxName UserDBSchemaField
|
||||
WxAvatar UserDBSchemaField
|
||||
WxOpenID UserDBSchemaField
|
||||
AppOpenID UserDBSchemaField
|
||||
WxUnionID UserDBSchemaField
|
||||
Tel UserDBSchemaField
|
||||
Gender UserDBSchemaField
|
||||
City UserDBSchemaField
|
||||
Province UserDBSchemaField
|
||||
Country UserDBSchemaField
|
||||
Deposit UserDBSchemaField
|
||||
UserType UserDBSchemaField
|
||||
StoreId UserDBSchemaField
|
||||
InviteCodeUrl UserDBSchemaField
|
||||
LastLoginAt UserDBSchemaField
|
||||
IP UserDBSchemaField
|
||||
InBlack UserDBSchemaField
|
||||
StoreType UserDBSchemaField
|
||||
Version UserDBSchemaField
|
||||
}{
|
||||
|
||||
ID: UserDBSchemaField("id"),
|
||||
CreatedAt: UserDBSchemaField("created_at"),
|
||||
UpdatedAt: UserDBSchemaField("updated_at"),
|
||||
DeletedAt: UserDBSchemaField("deleted_at"),
|
||||
Uid: UserDBSchemaField("uid"),
|
||||
MemberLevel: UserDBSchemaField("member_level"),
|
||||
MemberExpire: UserDBSchemaField("member_expire"),
|
||||
Bond: UserDBSchemaField("bond"),
|
||||
WxName: UserDBSchemaField("wx_name"),
|
||||
WxAvatar: UserDBSchemaField("wx_avatar"),
|
||||
WxOpenID: UserDBSchemaField("wx_open_id"),
|
||||
AppOpenID: UserDBSchemaField("app_open_id"),
|
||||
WxUnionID: UserDBSchemaField("wx_union_id"),
|
||||
Tel: UserDBSchemaField("tel"),
|
||||
Gender: UserDBSchemaField("gender"),
|
||||
City: UserDBSchemaField("city"),
|
||||
Province: UserDBSchemaField("province"),
|
||||
Country: UserDBSchemaField("country"),
|
||||
Deposit: UserDBSchemaField("deposit"),
|
||||
UserType: UserDBSchemaField("user_type"),
|
||||
StoreId: UserDBSchemaField("store_id"),
|
||||
InviteCodeUrl: UserDBSchemaField("invite_code_url"),
|
||||
LastLoginAt: UserDBSchemaField("last_login_at"),
|
||||
IP: UserDBSchemaField("ip"),
|
||||
InBlack: UserDBSchemaField("in_black"),
|
||||
StoreType: UserDBSchemaField("store_type"),
|
||||
Version: UserDBSchemaField("version"),
|
||||
ID: UserDBSchemaField("id"),
|
||||
CreatedAt: UserDBSchemaField("created_at"),
|
||||
UpdatedAt: UserDBSchemaField("updated_at"),
|
||||
DeletedAt: UserDBSchemaField("deleted_at"),
|
||||
Uid: UserDBSchemaField("uid"),
|
||||
MemberLevel: UserDBSchemaField("member_level"),
|
||||
MemberExpire: UserDBSchemaField("member_expire"),
|
||||
OpenMemberTime: UserDBSchemaField("open_member_time"),
|
||||
Bond: UserDBSchemaField("bond"),
|
||||
WxName: UserDBSchemaField("wx_name"),
|
||||
WxAvatar: UserDBSchemaField("wx_avatar"),
|
||||
WxOpenID: UserDBSchemaField("wx_open_id"),
|
||||
AppOpenID: UserDBSchemaField("app_open_id"),
|
||||
WxUnionID: UserDBSchemaField("wx_union_id"),
|
||||
Tel: UserDBSchemaField("tel"),
|
||||
Gender: UserDBSchemaField("gender"),
|
||||
City: UserDBSchemaField("city"),
|
||||
Province: UserDBSchemaField("province"),
|
||||
Country: UserDBSchemaField("country"),
|
||||
Deposit: UserDBSchemaField("deposit"),
|
||||
UserType: UserDBSchemaField("user_type"),
|
||||
StoreId: UserDBSchemaField("store_id"),
|
||||
InviteCodeUrl: UserDBSchemaField("invite_code_url"),
|
||||
LastLoginAt: UserDBSchemaField("last_login_at"),
|
||||
IP: UserDBSchemaField("ip"),
|
||||
InBlack: UserDBSchemaField("in_black"),
|
||||
StoreType: UserDBSchemaField("store_type"),
|
||||
Version: UserDBSchemaField("version"),
|
||||
}
|
||||
|
||||
// Update updates User fields by primary key
|
||||
// nolint: dupl
|
||||
func (o *User) Update(db *gorm.DB, fields ...UserDBSchemaField) 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,
|
||||
"member_expire": o.MemberExpire,
|
||||
"bond": o.Bond,
|
||||
"wx_name": o.WxName,
|
||||
"wx_avatar": o.WxAvatar,
|
||||
"wx_open_id": o.WxOpenID,
|
||||
"app_open_id": o.AppOpenID,
|
||||
"wx_union_id": o.WxUnionID,
|
||||
"tel": o.Tel,
|
||||
"gender": o.Gender,
|
||||
"city": o.City,
|
||||
"province": o.Province,
|
||||
"country": o.Country,
|
||||
"deposit": o.Deposit,
|
||||
"user_type": o.UserType,
|
||||
"store_id": o.StoreId,
|
||||
"invite_code_url": o.InviteCodeUrl,
|
||||
"last_login_at": o.LastLoginAt,
|
||||
"ip": o.IP,
|
||||
"in_black": o.InBlack,
|
||||
"store_type": o.StoreType,
|
||||
"version": o.Version,
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"uid": o.Uid,
|
||||
"member_level": o.MemberLevel,
|
||||
"member_expire": o.MemberExpire,
|
||||
"open_member_time": o.OpenMemberTime,
|
||||
"bond": o.Bond,
|
||||
"wx_name": o.WxName,
|
||||
"wx_avatar": o.WxAvatar,
|
||||
"wx_open_id": o.WxOpenID,
|
||||
"app_open_id": o.AppOpenID,
|
||||
"wx_union_id": o.WxUnionID,
|
||||
"tel": o.Tel,
|
||||
"gender": o.Gender,
|
||||
"city": o.City,
|
||||
"province": o.Province,
|
||||
"country": o.Country,
|
||||
"deposit": o.Deposit,
|
||||
"user_type": o.UserType,
|
||||
"store_id": o.StoreId,
|
||||
"invite_code_url": o.InviteCodeUrl,
|
||||
"last_login_at": o.LastLoginAt,
|
||||
"ip": o.IP,
|
||||
"in_black": o.InBlack,
|
||||
"store_type": o.StoreType,
|
||||
"version": o.Version,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
|
|
@ -71,7 +71,7 @@ type OrderCard struct {
|
|||
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-已取消
|
||||
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-快递
|
||||
|
@ -233,13 +233,12 @@ func (m *OrderListReq) GetOrderCardList() ([]OrderCard, uint32, error) {
|
|||
}
|
||||
totalPage = uint32(count/m.PageSize + 1)
|
||||
|
||||
|
||||
orderCards = OrderCardListSetGameInfo(orderCards)
|
||||
|
||||
return orderCards, totalPage, nil
|
||||
}
|
||||
|
||||
func (m *Order) Info() ([]OrderCard, error) {
|
||||
func (m *Order) Info(orderCardId uint32) ([]OrderCard, error) {
|
||||
|
||||
//err := NewOrderQuerySet(DB).IDEq(m.ID).One(&order)
|
||||
//if err != nil {
|
||||
|
@ -253,10 +252,11 @@ func (m *Order) Info() ([]OrderCard, error) {
|
|||
// return nil, err
|
||||
//}
|
||||
|
||||
qs := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardIdEq(uint32(m.GameCardId))
|
||||
if m.GameCardGoodsId != 0 {
|
||||
qs = qs.GameCardGoodsIdEq(uint32(m.GameCardGoodsId))
|
||||
}
|
||||
qs := NewOrderCardQuerySet(DB).IDEq(orderCardId)
|
||||
//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 {
|
||||
|
@ -285,8 +285,8 @@ func (m *Order) Revert() error {
|
|||
// logger.Error("order card status completed")
|
||||
// return errors.New("order card status completed")
|
||||
//}
|
||||
fmt.Println("GameCardGoodsId------:",m.GameCardGoodsId)
|
||||
fmt.Println("ID------:",m.ID)
|
||||
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)
|
||||
|
@ -467,7 +467,7 @@ func (m *UserRentCard) IsHaveUnreturnedOrders(RentCount uint32) (bool, error) {
|
|||
}
|
||||
|
||||
func IsHaveOnDeliverOrderCards(orderId uint32) (bool, error) {
|
||||
count, err := NewOrderCardQuerySet(DB).OrderIdEq(orderId).CardStatusEq(1).Count()
|
||||
count, err := NewOrderCardQuerySet(DB).OrderIdEq(orderId).CardStatusEq(OrderCardStatusUnPick).Count()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return false, err
|
||||
|
@ -540,6 +540,8 @@ func (m *Order) Cancel() (bool, error) {
|
|||
logger.Error("err:", err)
|
||||
return false, err
|
||||
}
|
||||
orderJson, _ := json.Marshal(m)
|
||||
fmt.Println("orderJson:", string(orderJson))
|
||||
|
||||
//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)
|
||||
|
@ -592,19 +594,36 @@ func (m *Order) Cancel() (bool, error) {
|
|||
logger.Errorf("err:%#v", err)
|
||||
return false, err
|
||||
}
|
||||
//UserRentCard{}
|
||||
sqlRent := fmt.Sprintf("UPDATE user_rent_card SET have_rent_count = have_rent_count-1,can_rent_count=can_rent_count+1 WHERE uid =%d;", order.Uid)
|
||||
fmt.Println("sqlRent:", sqlRent)
|
||||
err = begin.Exec(sqlRent).Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Errorf("err:%#v", err)
|
||||
return false, err
|
||||
}
|
||||
err = begin.Commit().Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Errorf("err:%#v", err)
|
||||
return false, err
|
||||
}
|
||||
isRecede := false
|
||||
if order.DeliveryType == 2 && order.Postage > 0 {
|
||||
isHaveOnDeliver, err := IsHaveOnDeliverOrderCards(m.ID)
|
||||
isHaveOnDeliver, err := IsHaveOnDeliverOrderCards(m.ID)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return false, err
|
||||
}
|
||||
if !isHaveOnDeliver {
|
||||
err = NewOrderQuerySet(DB).IDEq(order.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return false, err
|
||||
}
|
||||
}
|
||||
|
||||
isRecede := false
|
||||
if order.DeliveryType == 2 && order.Postage > 0 {
|
||||
if !isHaveOnDeliver {
|
||||
isRecede = true
|
||||
}
|
||||
|
@ -681,10 +700,14 @@ func IsCardGoodsStockEnough(cards []CardInfo, storeId uint32) (bool, error) {
|
|||
var gameCardGoodsStock GameCardGoodsStock
|
||||
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).GameCardIdEq(uint64(cards[i].GameCardId)).
|
||||
One(&gameCardGoodsStock)
|
||||
if err != nil {
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("err:", err)
|
||||
return false, err
|
||||
}
|
||||
if err == RecordNotFound {
|
||||
logger.Error("order stock out:")
|
||||
return false, err
|
||||
}
|
||||
if gameCardGoodsStock.RentStock < cards[i].Count {
|
||||
logger.Error("order stock out ")
|
||||
return false, errors.New("order stock out")
|
||||
|
@ -708,13 +731,15 @@ func GameCardGoodsInventoryReduction(cards []CardInfo, storeId uint32, gdb *gorm
|
|||
|
||||
func (m *Order) InventoryReduction(gdb *gorm.DB) error {
|
||||
var cards []OrderCard
|
||||
err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).All(&cards)
|
||||
err := NewOrderCardQuerySet(DB).UidEq(uint32(m.Uid)).OrderIdEq(m.ID).All(&cards)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//fmt.Println("cards:", cards)
|
||||
for i, _ := range cards {
|
||||
//fmt.Println("cards:", cards[i].GameCardId, cards[i].StoreId, cards[i].Uid)
|
||||
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
|
||||
|
@ -723,6 +748,10 @@ func (m *Order) InventoryReduction(gdb *gorm.DB) error {
|
|||
return err
|
||||
}
|
||||
}
|
||||
err = OrderCardUserRentCard(uint32(m.Uid), uint32(len(cards)), nil, gdb)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ func UserRedeemCodeConvert(uid uint32, serialCode string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func CodeSendToUser(uid uint32, codeType string,activityType uint32) error {
|
||||
func CodeSendToUser(uid uint32, codeType string, activityType uint32) error {
|
||||
count, err := NewUserRedeemCodeQuerySet(DB).UidEq(uid).Count()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
|
@ -198,7 +198,7 @@ func CodeSendToUser(uid uint32, codeType string,activityType uint32) error {
|
|||
Status: UserRedeemCodeStatusHold,
|
||||
SerialCode: redeemCode.SerialCode,
|
||||
CodeType: redeemCode.CodeType,
|
||||
ActivityType: activityType ,
|
||||
ActivityType: activityType,
|
||||
//ActivityType: RedeemCodeActivityTypeUserInvite,
|
||||
}
|
||||
err = begin.Create(userRedeemCode).Error
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"github.com/codinl/go-logger"
|
||||
"github.com/jinzhu/gorm"
|
||||
"mh-server/lib/utils"
|
||||
"sync"
|
||||
"time"
|
||||
|
@ -14,29 +15,30 @@ import (
|
|||
type User struct {
|
||||
Model
|
||||
|
||||
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
|
||||
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
Bond uint32 `json:"bond"` // 保证金
|
||||
WxName string `json:"wx_name"` // 昵称
|
||||
WxAvatar string `json:"wx_avatar"` // 头像
|
||||
WxOpenID string `json:"wx_open_id"`
|
||||
AppOpenID string `json:"app_open_id"`
|
||||
WxUnionID string `json:"wx_union_id"`
|
||||
Tel string `json:"tel"` // 电话
|
||||
Gender uint8 `json:"gender"` // 性别
|
||||
City string `json:"city"` // 城市
|
||||
Province string `json:"province"` // 省
|
||||
Country string `json:"country"` // 市
|
||||
Deposit uint32 `json:"deposit"` //
|
||||
UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员
|
||||
StoreId uint64 `json:"store_id"` // 门店id
|
||||
InviteCodeUrl string `json:"invite_code_url"` // 分享二维码
|
||||
LastLoginAt time.Time `json:"last_login_at"` // 最近登录时间
|
||||
IP string `json:"-" gorm:"type:varchar(60)"` // ip
|
||||
InBlack bool `json:"in_black"` // 是否在黑名单
|
||||
StoreType uint8 `json:"store_type"` // 1-订单门店
|
||||
Version uint32 `json:"-"`
|
||||
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
|
||||
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
OpenMemberTime time.Time `json:"open_member_time"` // 开通会员
|
||||
Bond uint32 `json:"bond"` // 保证金
|
||||
WxName string `json:"wx_name"` // 昵称
|
||||
WxAvatar string `json:"wx_avatar"` // 头像
|
||||
WxOpenID string `json:"wx_open_id"`
|
||||
AppOpenID string `json:"app_open_id"`
|
||||
WxUnionID string `json:"wx_union_id"`
|
||||
Tel string `json:"tel"` // 电话
|
||||
Gender uint8 `json:"gender"` // 性别
|
||||
City string `json:"city"` // 城市
|
||||
Province string `json:"province"` // 省
|
||||
Country string `json:"country"` // 市
|
||||
Deposit uint32 `json:"deposit"` //
|
||||
UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员
|
||||
StoreId uint64 `json:"store_id"` // 门店id
|
||||
InviteCodeUrl string `json:"invite_code_url"` // 分享二维码
|
||||
LastLoginAt time.Time `json:"last_login_at"` // 最近登录时间
|
||||
IP string `json:"-" gorm:"type:varchar(60)"` // ip
|
||||
InBlack bool `json:"in_black"` // 是否在黑名单
|
||||
StoreType uint8 `json:"store_type"` // 1-订单门店
|
||||
Version uint32 `json:"-"`
|
||||
}
|
||||
|
||||
func (o *User) TableName() string {
|
||||
|
@ -180,11 +182,12 @@ func UserUpdate(user *User) error {
|
|||
type UserOpenMemberRecord struct {
|
||||
Model
|
||||
|
||||
Uid uint32 `json:"uid"`
|
||||
OpenNo string `json:"open_no" gorm:"index"`
|
||||
OrderId uint32 `json:"order_id"`
|
||||
OrderType uint32 `json:"order_type"` // 1-物流支付
|
||||
MemberLevel uint32 `json:"member_level"`
|
||||
Uid uint32 `json:"uid"`
|
||||
OpenNo string `json:"open_no" gorm:"index"`
|
||||
OrderId uint32 `json:"order_id"`
|
||||
OrderType uint32 `json:"order_type"` // 1-物流支付 2-取消物流租卡
|
||||
MemberLevel uint32 `json:"member_level"`
|
||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||
}
|
||||
|
||||
func (o *UserOpenMemberRecord) TableName() string {
|
||||
|
@ -439,8 +442,11 @@ func GetUserMutex(mutexKey string) *sync.Mutex {
|
|||
|
||||
var AuthLoginMutex = sync.Mutex{}
|
||||
|
||||
func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig) error {
|
||||
func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig,gdb *gorm.DB) error {
|
||||
//UserRentCard{}
|
||||
if gdb == nil {
|
||||
gdb = DB
|
||||
}
|
||||
var userRentCard UserRentCard
|
||||
err := NewUserRentCardQuerySet(DB).UidEq(uid).One(&userRentCard)
|
||||
if err != nil && err != RecordNotFound {
|
||||
|
@ -468,7 +474,7 @@ func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig)
|
|||
CanRentCount: uint32(memberConfig.CardMax - count),
|
||||
Status: 0,
|
||||
}
|
||||
err := DB.Create(rentCard).Error
|
||||
err := gdb.Create(rentCard).Error
|
||||
if err != nil {
|
||||
logger.Error("err", err)
|
||||
return err
|
||||
|
@ -476,7 +482,7 @@ func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig)
|
|||
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
|
||||
err = gdb.Exec(sql).Error
|
||||
if err != nil {
|
||||
logger.Error("err", err)
|
||||
return err
|
||||
|
|
|
@ -75,7 +75,8 @@ 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("upgrade_member", controller.UpgradeMember) // 升级会员
|
||||
user.POST("upgrade_member_info", controller.UpgradeMemberInfo) // 升级详情
|
||||
user.POST("pay_deposit", controller.PayDeposit) // 支付押金
|
||||
user.POST("refund_deposit", controller.RefundDeposit) // 退押金
|
||||
user.POST("refund_deposit_record", controller.UserDepositRefundRecordList) // 押金记录
|
||||
|
@ -126,14 +127,14 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
order.POST("express", controller.OrderExpress) // 订单物流
|
||||
order.POST("express_company/list", controller.ExpressCompanyList) // 物流公司列表
|
||||
order.POST("order/wx_pay/success", controller.WXPaySuccess) // 微信支付成功
|
||||
order.POST("cancel", controller.OrderCancel) // 订单取消
|
||||
order.POST("cancel", controller.OrderCancel) // 取消租卡
|
||||
|
||||
order.Use(auth.UserAccessAuth) // TODO
|
||||
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("revert/cancel", controller.OrderRevertCancel) // 取消归还
|
||||
//order.POST("express_fee/refund", controller.ExpressFeeRefund) // 物流费退款
|
||||
|
||||
order.POST("confirm_receipt", controller.ConfirmReceipt) // 订单确认收货
|
||||
|
|
Loading…
Reference in New Issue
Block a user