1.配合前端调整零售预售功能,相关数据需注意:
主机预售券 activity_id为10; 优惠券名称需要包含"预售"两个字; 2、新建商城订单时增加入参:CouponCode; 3、GoodsOrder表新增字段:coupon_code、coupon_name、coupon_discount;
This commit is contained in:
parent
5535e0492e
commit
1597ccf96b
|
@ -535,9 +535,10 @@ func PostagePackageInfo(c *gin.Context) {
|
|||
|
||||
func MemberRenewalUserCouponList(c *gin.Context) {
|
||||
req := struct {
|
||||
PageIdx int `json:"page_idx"`
|
||||
PageSize int `json:"page_size"`
|
||||
State uint32 `json:"state"` // 1-未使用 2-已使用 3-已过期
|
||||
PageIdx int `json:"page_idx"`
|
||||
PageSize int `json:"page_size"`
|
||||
State uint32 `json:"state"` // 1-未使用 2-已使用 3-已过期
|
||||
ActivityId uint32 `json:"activity_id"` // 10-预售券
|
||||
}{}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
logger.Error(err)
|
||||
|
@ -569,6 +570,9 @@ func MemberRenewalUserCouponList(c *gin.Context) {
|
|||
if req.State != 0 {
|
||||
qs = qs.StateEq(req.State)
|
||||
}
|
||||
if req.ActivityId != 0 {
|
||||
qs = qs.ActivityIdEq(req.ActivityId)
|
||||
}
|
||||
count, err := qs.Count()
|
||||
if err != nil {
|
||||
logger.Error("count err:", err)
|
||||
|
|
|
@ -2416,21 +2416,78 @@ func HmPushWXPayNotice(c *gin.Context) {
|
|||
logger.Error("err:", err)
|
||||
}
|
||||
|
||||
err = model.UserVmUpdate(goodsOrder.Uid, int(goodsOrder.Vm)*-1, model.VmEventBuyGoods, "购买商品积分抵扣")
|
||||
// 商品是否存在
|
||||
var goods model.Goods
|
||||
err = model.NewGoodsQuerySet(model.DB).GoodsIdEq(goodsOrder.GoodsId).One(&goods)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
sub := model.DeliverTaskSub{
|
||||
Uid: uint32(goodsOrder.Uid),
|
||||
UserAddressId: uint32(goodsOrder.AddressId),
|
||||
OrderType: 2,
|
||||
OrderId: goodsOrder.OrderId,
|
||||
StoreId: 13,
|
||||
|
||||
// 如果订单使用了优惠券,则更新为已使用
|
||||
if goodsOrder.CouponCode != "" {
|
||||
model.NewUserCouponQuerySet(model.DB).CodeEq(goodsOrder.CouponCode).GetUpdater().SetState(2).Update()
|
||||
}
|
||||
err = sub.Add()
|
||||
if err != nil {
|
||||
logger.Error("deliver task sub add err:", err)
|
||||
|
||||
if strings.Contains(goods.Name, "预售") { // 主机预售券,需要发放优惠券;默认为已收货
|
||||
model.NewGoodsOrderQuerySet(model.DB).IDEq(goodsOrder.ID).GetUpdater().
|
||||
SetState(model.GoodsOrderStateReceived).Update()
|
||||
|
||||
var couponInfo model.Coupon
|
||||
err = model.NewCouponQuerySet(model.DB).ActivityIdEq(model.NewMachineActivityId).One(&couponInfo)
|
||||
if err != nil {
|
||||
logger.Error("coupons err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
couponCode, err := utils.GenerateRandomNumber19()
|
||||
if err != nil {
|
||||
logger.Error("GenerateRandomNumber19err:", err)
|
||||
}
|
||||
userCoupon := &model.UserCoupon{
|
||||
Uid: goodsOrder.Uid,
|
||||
CouponId: couponInfo.ID,
|
||||
CouponType: couponInfo.CouponType,
|
||||
ActivityType: couponInfo.ActivityType,
|
||||
ActivityId: couponInfo.ActivityId,
|
||||
Value: uint32(fundRecord.Amount),
|
||||
State: 1,
|
||||
ActiveStart: time.Now(),
|
||||
ActiveEnd: time.Now().AddDate(0, 0, 180),
|
||||
UseTime: time.Time{},
|
||||
MemberLevel: couponInfo.MemberLevel,
|
||||
Approach: 0,
|
||||
PromotionalSales: 0,
|
||||
RedeemCode: "",
|
||||
CategoryNumber: couponInfo.CategoryNumber,
|
||||
CommodityNumber: couponInfo.CommodityNumber,
|
||||
Code: couponCode,
|
||||
}
|
||||
|
||||
err = model.DB.Create(userCoupon).Error
|
||||
if err != nil {
|
||||
logger.Error("user coupon err:", err)
|
||||
}
|
||||
} else {
|
||||
err = model.UserVmUpdate(goodsOrder.Uid, int(goodsOrder.Vm)*-1, model.VmEventBuyGoods, "购买商品积分抵扣")
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
sub := model.DeliverTaskSub{
|
||||
Uid: uint32(goodsOrder.Uid),
|
||||
UserAddressId: uint32(goodsOrder.AddressId),
|
||||
OrderType: 2,
|
||||
OrderId: goodsOrder.OrderId,
|
||||
StoreId: 13,
|
||||
}
|
||||
err = sub.Add()
|
||||
if err != nil {
|
||||
logger.Error("deliver task sub add err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
fundRecord.Uid = uint32(goodsOrder.Uid)
|
||||
fundRecord.FundType = model.FundTypeBuyGoods
|
||||
fundRecord.Remark = "商城购买"
|
||||
|
|
|
@ -142,16 +142,25 @@ func GetCombinedCouponCode(goods *model.Goods, attribute *model.GoodsAttribute)
|
|||
return uint32(result), nil
|
||||
}
|
||||
|
||||
type MallOrderCreateReq struct {
|
||||
GoodsId uint32 `json:"goods_id" binding:"required"` // 商品id
|
||||
GoodsAttributeId uint32 `json:"goods_attribute_id" binding:"required"` // 规格id
|
||||
GoodsAttributeComboId uint32 `json:"goods_attribute_combo_id" binding:"required"` // 套餐id
|
||||
Quantity uint32 `json:"quantity" binding:"required"` // 购买数量
|
||||
AddressId uint32 `json:"address_id"` // 收货地址
|
||||
DeliveryExtraInfo string `json:"delivery_extra_info"` // 收货备注
|
||||
CouponCode string `json:"coupon_code"` // 优惠券券码
|
||||
}
|
||||
|
||||
// MallOrderCreate 新建商城订单
|
||||
// @Summary 新建商城订单
|
||||
// @Tags 商城, V1.4.5
|
||||
// @Produce json
|
||||
// @Accept json
|
||||
// @Success 200 {object} model.HomeCategoryListResp
|
||||
// @Router /api/v1/mall/order/create [post]
|
||||
func MallOrderCreate(c *gin.Context) {
|
||||
req := struct {
|
||||
GoodsId uint32 `json:"goods_id" binding:"required"` // 商品id
|
||||
GoodsAttributeId uint32 `json:"goods_attribute_id" binding:"required"` // 规格id
|
||||
GoodsAttributeComboId uint32 `json:"goods_attribute_combo_id" binding:"required"` // 套餐id
|
||||
Quantity uint32 `json:"quantity" binding:"required"` // 购买数量
|
||||
//PayType uint32 `json:"pay_type" binding:"required"` // 支付方式
|
||||
AddressId uint32 `json:"address_id"` // 收货地址
|
||||
DeliveryExtraInfo string `json:"delivery_extra_info"` // 收货备注
|
||||
}{}
|
||||
req := MallOrderCreateReq{}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
logger.Error(err)
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
|
@ -194,7 +203,6 @@ func MallOrderCreate(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
// 库存不足
|
||||
//if goods.Stock < req.Quantity {
|
||||
if attribute.Stock < req.Quantity {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.OrderStockOut, nil)
|
||||
|
@ -212,13 +220,32 @@ func MallOrderCreate(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
//// 计算总金额
|
||||
//amount := uint32(0)
|
||||
//if req.PayType == model.PayTypeRm {
|
||||
// amount = req.Quantity * goods.PriceRm
|
||||
//} else if req.PayType == model.PayTypeVm {
|
||||
// amount = req.Quantity * goods.PriceVm
|
||||
//}
|
||||
// 查找用户优惠券,判断是否可用
|
||||
var userCoupon model.UserCoupon
|
||||
var coupon model.Coupon
|
||||
if req.CouponCode != "" {
|
||||
err = model.NewUserCouponQuerySet(model.DB).CodeEq(req.CouponCode).One(&userCoupon)
|
||||
if err != nil {
|
||||
log.Error().Msgf("query userCoupon err:%#v, code is:", err, req.CouponCode)
|
||||
} else {
|
||||
switch userCoupon.State {
|
||||
case 2: // 已使用
|
||||
log.Error().Msgf("优惠券已使用, code is:", req.CouponCode)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
case 3: // 已过期
|
||||
log.Error().Msgf("优惠券已过期, code is:", req.CouponCode)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
}
|
||||
if userCoupon.ActivityId != model.NewMachineActivityId {
|
||||
log.Error().Msgf("优惠券类型与商品不匹配, code is:", req.CouponCode)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
}
|
||||
}
|
||||
|
||||
model.NewCouponQuerySet(model.DB).ActivityIdEq(userCoupon.ActivityId).One(&coupon)
|
||||
}
|
||||
|
||||
// 读取折扣(是否有会员折扣)
|
||||
discount, err := goods.GetUserDiscount(user)
|
||||
if err != nil {
|
||||
log.Error().Msgf("combo err:%#v", err)
|
||||
|
@ -232,26 +259,34 @@ func MallOrderCreate(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// 计算总金额
|
||||
totalVm := combo.PriceVm * req.Quantity
|
||||
totalRm := (combo.PriceRm*req.Quantity*discount + 5) / model.Rmb
|
||||
if combo.PriceVm > 0 && user.UserVm.Vm < totalVm {
|
||||
log.Error().Msgf("vm not enough")
|
||||
RespJson(c, status.UserVmNotEnough, nil)
|
||||
return
|
||||
}
|
||||
|
||||
totalRm := (combo.PriceRm*req.Quantity*discount + 5) / model.Rmb
|
||||
couponDiscount := userCoupon.Value
|
||||
if totalRm <= couponDiscount {
|
||||
log.Error().Msgf("coupon value[%d] is err, code is:", couponDiscount, req.CouponCode)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// 开启事务
|
||||
tx := model.TransactionBegin()
|
||||
// 订单创建逻辑
|
||||
order := model.GoodsOrder{
|
||||
OrderId: model.CreateGoodsOrderId(),
|
||||
SerialNo: model.CreateGoodsOrderSerialNo(),
|
||||
Uid: uc.Uid,
|
||||
GoodsId: req.GoodsId,
|
||||
Rm: totalRm,
|
||||
Vm: totalVm,
|
||||
Quantity: req.Quantity,
|
||||
//PayType: req.PayType,
|
||||
OrderId: model.CreateGoodsOrderId(),
|
||||
SerialNo: model.CreateGoodsOrderSerialNo(),
|
||||
Uid: uc.Uid,
|
||||
GoodsId: req.GoodsId,
|
||||
Rm: totalRm - couponDiscount,
|
||||
Vm: totalVm,
|
||||
Quantity: req.Quantity,
|
||||
PayStatus: model.PayStatusInit,
|
||||
AddressId: req.AddressId,
|
||||
DeliveryExtraInfo: req.DeliveryExtraInfo,
|
||||
|
@ -261,35 +296,12 @@ func MallOrderCreate(c *gin.Context) {
|
|||
GoodsAttributeComboId: req.GoodsAttributeComboId,
|
||||
Discount: discount,
|
||||
State: model.GoodsOrderStateUnPay,
|
||||
CouponDiscount: userCoupon.Value,
|
||||
CouponCode: userCoupon.Code,
|
||||
CouponName: coupon.Name,
|
||||
}
|
||||
|
||||
// 减少库存
|
||||
// 确认下是在支付后减少,还是下单后
|
||||
//if req.PayType == model.PayTypeVm {
|
||||
//var userVm model.UserVm
|
||||
//err = model.NewUserVmQuerySet(model.DB).UidEq(uc.Uid).One(&userVm)
|
||||
//if err != nil {
|
||||
// tx.Rollback()
|
||||
// logger.Error("err:", err)
|
||||
// RespJson(c, status.InternalServerError, nil)
|
||||
// return
|
||||
//}
|
||||
//if userVm.Vm < amount {
|
||||
// tx.Rollback()
|
||||
// logger.Error("err:", err)
|
||||
// RespJson(c, status.UserVmNotEnough, nil)
|
||||
// return
|
||||
//}
|
||||
//err := model.OrderDeductionUserVm(uc.Uid, int(userVm.Vm), int(amount)*-1, tx)
|
||||
//if err != nil {
|
||||
// tx.Rollback()
|
||||
// logger.Error("err:", err)
|
||||
// RespJson(c, status.InternalServerError, nil)
|
||||
// return
|
||||
//}
|
||||
//}
|
||||
|
||||
//if goods.DeliveryFee == 0 {
|
||||
// 如果商品人民币价格为0,则是积分兑换
|
||||
if combo.PriceRm == 0 {
|
||||
order.PayTime = time.Now()
|
||||
order.PayStatus = model.PayStatusOK
|
||||
|
@ -423,26 +435,13 @@ func MallOrderCreate(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
//var user model.User
|
||||
//err = model.NewUserQuerySet(model.DB).UidEq(uint32(order.Uid)).One(&user)
|
||||
//if err != nil {
|
||||
// logger.Error("Order err:", err)
|
||||
// RespJson(c, status.InternalServerError, nil)
|
||||
// return
|
||||
//}
|
||||
configInfo, err := model.PayConfigInfo()
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
//webPay, err := wxpay.WebPay(order.SerialNo, order.Rm, user.WxOpenID, "N",
|
||||
// wxpay.WxPayBuyGoods, configInfo.NotifyUrl)
|
||||
//if err != nil {
|
||||
// logger.Error(errors.New("WebPay err"))
|
||||
// RespJson(c, status.InternalServerError, nil)
|
||||
// return
|
||||
//}
|
||||
|
||||
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: order.SerialNo, OrderId: order.OrderId, OrderType: 6, Attach: wxpay.WxPayBuyGoods}.Insert()
|
||||
if err != nil {
|
||||
logger.Error(errors.New("WebPay err"))
|
||||
|
@ -464,7 +463,7 @@ func MallOrderCreate(c *gin.Context) {
|
|||
}
|
||||
|
||||
RespOK(c, ret)
|
||||
//RespOK(c, order)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -1981,6 +1981,142 @@ func (qs CouponQuerySet) All(ret *[]Coupon) error {
|
|||
return qs.db.Find(ret).Error
|
||||
}
|
||||
|
||||
// CategoryNumberEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberEq(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number = ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberGt(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number > ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberGte(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number >= ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberIn(categoryNumber ...string) CouponQuerySet {
|
||||
if len(categoryNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one categoryNumber in CategoryNumberIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("category_number IN (?)", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberLike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberLike(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number LIKE ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberLt(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number < ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberLte(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number <= ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberNe(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number != ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberNotIn(categoryNumber ...string) CouponQuerySet {
|
||||
if len(categoryNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one categoryNumber in CategoryNumberNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("category_number NOT IN (?)", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberNotlike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CategoryNumberNotlike(categoryNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number NOT LIKE ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberEq(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number = ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberGt(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number > ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberGte(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number >= ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberIn(commodityNumber ...string) CouponQuerySet {
|
||||
if len(commodityNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one commodityNumber in CommodityNumberIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("commodity_number IN (?)", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberLike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberLike(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number LIKE ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberLt(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number < ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberLte(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number <= ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberNe(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number != ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberNotIn(commodityNumber ...string) CouponQuerySet {
|
||||
if len(commodityNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one commodityNumber in CommodityNumberNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("commodity_number NOT IN (?)", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberNotlike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) CommodityNumberNotlike(commodityNumber string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number NOT LIKE ?", commodityNumber))
|
||||
}
|
||||
|
||||
// Count is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) Count() (int, error) {
|
||||
|
@ -2463,6 +2599,18 @@ func (qs CouponQuerySet) OrderAscByActivityType() CouponQuerySet {
|
|||
return qs.w(qs.db.Order("activity_type ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCategoryNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderAscByCategoryNumber() CouponQuerySet {
|
||||
return qs.w(qs.db.Order("category_number ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCommodityNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderAscByCommodityNumber() CouponQuerySet {
|
||||
return qs.w(qs.db.Order("commodity_number ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCouponType is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderAscByCouponType() CouponQuerySet {
|
||||
|
@ -2511,6 +2659,12 @@ func (qs CouponQuerySet) OrderAscByOutCount() CouponQuerySet {
|
|||
return qs.w(qs.db.Order("out_count ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByRule is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderAscByRule() CouponQuerySet {
|
||||
return qs.w(qs.db.Order("rule ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByUpdatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderAscByUpdatedAt() CouponQuerySet {
|
||||
|
@ -2553,6 +2707,18 @@ func (qs CouponQuerySet) OrderDescByActivityType() CouponQuerySet {
|
|||
return qs.w(qs.db.Order("activity_type DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCategoryNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderDescByCategoryNumber() CouponQuerySet {
|
||||
return qs.w(qs.db.Order("category_number DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCommodityNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderDescByCommodityNumber() CouponQuerySet {
|
||||
return qs.w(qs.db.Order("commodity_number DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCouponType is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderDescByCouponType() CouponQuerySet {
|
||||
|
@ -2601,6 +2767,12 @@ func (qs CouponQuerySet) OrderDescByOutCount() CouponQuerySet {
|
|||
return qs.w(qs.db.Order("out_count DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByRule is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderDescByRule() CouponQuerySet {
|
||||
return qs.w(qs.db.Order("rule DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByUpdatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) OrderDescByUpdatedAt() CouponQuerySet {
|
||||
|
@ -2675,6 +2847,74 @@ func (qs CouponQuerySet) OutCountNotIn(outCount ...uint32) CouponQuerySet {
|
|||
return qs.w(qs.db.Where("out_count NOT IN (?)", outCount))
|
||||
}
|
||||
|
||||
// RuleEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleEq(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule = ?", rule))
|
||||
}
|
||||
|
||||
// RuleGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleGt(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule > ?", rule))
|
||||
}
|
||||
|
||||
// RuleGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleGte(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule >= ?", rule))
|
||||
}
|
||||
|
||||
// RuleIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleIn(rule ...string) CouponQuerySet {
|
||||
if len(rule) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one rule in RuleIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("rule IN (?)", rule))
|
||||
}
|
||||
|
||||
// RuleLike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleLike(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule LIKE ?", rule))
|
||||
}
|
||||
|
||||
// RuleLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleLt(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule < ?", rule))
|
||||
}
|
||||
|
||||
// RuleLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleLte(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule <= ?", rule))
|
||||
}
|
||||
|
||||
// RuleNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleNe(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule != ?", rule))
|
||||
}
|
||||
|
||||
// RuleNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleNotIn(rule ...string) CouponQuerySet {
|
||||
if len(rule) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one rule in RuleNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("rule NOT IN (?)", rule))
|
||||
}
|
||||
|
||||
// RuleNotlike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) RuleNotlike(rule string) CouponQuerySet {
|
||||
return qs.w(qs.db.Where("rule NOT LIKE ?", rule))
|
||||
}
|
||||
|
||||
// UpdatedAtEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs CouponQuerySet) UpdatedAtEq(updatedAt time.Time) CouponQuerySet {
|
||||
|
@ -2851,6 +3091,20 @@ func (u CouponUpdater) SetActivityType(activityType uint32) CouponUpdater {
|
|||
return u
|
||||
}
|
||||
|
||||
// SetCategoryNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u CouponUpdater) SetCategoryNumber(categoryNumber string) CouponUpdater {
|
||||
u.fields[string(CouponDBSchema.CategoryNumber)] = categoryNumber
|
||||
return u
|
||||
}
|
||||
|
||||
// SetCommodityNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u CouponUpdater) SetCommodityNumber(commodityNumber string) CouponUpdater {
|
||||
u.fields[string(CouponDBSchema.CommodityNumber)] = commodityNumber
|
||||
return u
|
||||
}
|
||||
|
||||
// SetCouponType is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u CouponUpdater) SetCouponType(couponType string) CouponUpdater {
|
||||
|
@ -2907,6 +3161,13 @@ func (u CouponUpdater) SetOutCount(outCount uint32) CouponUpdater {
|
|||
return u
|
||||
}
|
||||
|
||||
// SetRule is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u CouponUpdater) SetRule(rule string) CouponUpdater {
|
||||
u.fields[string(CouponDBSchema.Rule)] = rule
|
||||
return u
|
||||
}
|
||||
|
||||
// SetUpdatedAt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u CouponUpdater) SetUpdatedAt(updatedAt time.Time) CouponUpdater {
|
||||
|
@ -2956,59 +3217,68 @@ func (f CouponDBSchemaField) String() string {
|
|||
|
||||
// CouponDBSchema stores db field names of Coupon
|
||||
var CouponDBSchema = struct {
|
||||
ID CouponDBSchemaField
|
||||
CreatedAt CouponDBSchemaField
|
||||
UpdatedAt CouponDBSchemaField
|
||||
DeletedAt CouponDBSchemaField
|
||||
Name CouponDBSchemaField
|
||||
Describe CouponDBSchemaField
|
||||
CouponType CouponDBSchemaField
|
||||
ActivityType CouponDBSchemaField
|
||||
ActivityId CouponDBSchemaField
|
||||
Value CouponDBSchemaField
|
||||
OutCount CouponDBSchemaField
|
||||
UsedCount CouponDBSchemaField
|
||||
ActiveStart CouponDBSchemaField
|
||||
ActiveEnd CouponDBSchemaField
|
||||
MemberLevel CouponDBSchemaField
|
||||
ID CouponDBSchemaField
|
||||
CreatedAt CouponDBSchemaField
|
||||
UpdatedAt CouponDBSchemaField
|
||||
DeletedAt CouponDBSchemaField
|
||||
Name CouponDBSchemaField
|
||||
Describe CouponDBSchemaField
|
||||
Rule CouponDBSchemaField
|
||||
CouponType CouponDBSchemaField
|
||||
ActivityType CouponDBSchemaField
|
||||
ActivityId CouponDBSchemaField
|
||||
Value CouponDBSchemaField
|
||||
OutCount CouponDBSchemaField
|
||||
UsedCount CouponDBSchemaField
|
||||
ActiveStart CouponDBSchemaField
|
||||
ActiveEnd CouponDBSchemaField
|
||||
MemberLevel CouponDBSchemaField
|
||||
CategoryNumber CouponDBSchemaField
|
||||
CommodityNumber CouponDBSchemaField
|
||||
}{
|
||||
|
||||
ID: CouponDBSchemaField("id"),
|
||||
CreatedAt: CouponDBSchemaField("created_at"),
|
||||
UpdatedAt: CouponDBSchemaField("updated_at"),
|
||||
DeletedAt: CouponDBSchemaField("deleted_at"),
|
||||
Name: CouponDBSchemaField("name"),
|
||||
Describe: CouponDBSchemaField("describe"),
|
||||
CouponType: CouponDBSchemaField("coupon_type"),
|
||||
ActivityType: CouponDBSchemaField("activity_type"),
|
||||
ActivityId: CouponDBSchemaField("activity_id"),
|
||||
Value: CouponDBSchemaField("value"),
|
||||
OutCount: CouponDBSchemaField("out_count"),
|
||||
UsedCount: CouponDBSchemaField("used_count"),
|
||||
ActiveStart: CouponDBSchemaField("active_start"),
|
||||
ActiveEnd: CouponDBSchemaField("active_end"),
|
||||
MemberLevel: CouponDBSchemaField("member_level"),
|
||||
ID: CouponDBSchemaField("id"),
|
||||
CreatedAt: CouponDBSchemaField("created_at"),
|
||||
UpdatedAt: CouponDBSchemaField("updated_at"),
|
||||
DeletedAt: CouponDBSchemaField("deleted_at"),
|
||||
Name: CouponDBSchemaField("name"),
|
||||
Describe: CouponDBSchemaField("describe"),
|
||||
Rule: CouponDBSchemaField("rule"),
|
||||
CouponType: CouponDBSchemaField("coupon_type"),
|
||||
ActivityType: CouponDBSchemaField("activity_type"),
|
||||
ActivityId: CouponDBSchemaField("activity_id"),
|
||||
Value: CouponDBSchemaField("value"),
|
||||
OutCount: CouponDBSchemaField("out_count"),
|
||||
UsedCount: CouponDBSchemaField("used_count"),
|
||||
ActiveStart: CouponDBSchemaField("active_start"),
|
||||
ActiveEnd: CouponDBSchemaField("active_end"),
|
||||
MemberLevel: CouponDBSchemaField("member_level"),
|
||||
CategoryNumber: CouponDBSchemaField("category_number"),
|
||||
CommodityNumber: CouponDBSchemaField("commodity_number"),
|
||||
}
|
||||
|
||||
// Update updates Coupon fields by primary key
|
||||
// nolint: dupl
|
||||
func (o *Coupon) Update(db *gorm.DB, fields ...CouponDBSchemaField) error {
|
||||
dbNameToFieldName := map[string]interface{}{
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"name": o.Name,
|
||||
"describe": o.Describe,
|
||||
"coupon_type": o.CouponType,
|
||||
"activity_type": o.ActivityType,
|
||||
"activity_id": o.ActivityId,
|
||||
"value": o.Value,
|
||||
"out_count": o.OutCount,
|
||||
"used_count": o.UsedCount,
|
||||
"active_start": o.ActiveStart,
|
||||
"active_end": o.ActiveEnd,
|
||||
"member_level": o.MemberLevel,
|
||||
"id": o.ID,
|
||||
"created_at": o.CreatedAt,
|
||||
"updated_at": o.UpdatedAt,
|
||||
"deleted_at": o.DeletedAt,
|
||||
"name": o.Name,
|
||||
"describe": o.Describe,
|
||||
"rule": o.Rule,
|
||||
"coupon_type": o.CouponType,
|
||||
"activity_type": o.ActivityType,
|
||||
"activity_id": o.ActivityId,
|
||||
"value": o.Value,
|
||||
"out_count": o.OutCount,
|
||||
"used_count": o.UsedCount,
|
||||
"active_start": o.ActiveStart,
|
||||
"active_end": o.ActiveEnd,
|
||||
"member_level": o.MemberLevel,
|
||||
"category_number": o.CategoryNumber,
|
||||
"commodity_number": o.CommodityNumber,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
@ -3329,6 +3599,210 @@ func (qs UserCouponQuerySet) ApproachNotIn(approach ...uint32) UserCouponQuerySe
|
|||
return qs.w(qs.db.Where("approach NOT IN (?)", approach))
|
||||
}
|
||||
|
||||
// CategoryNumberEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberEq(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number = ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberGt(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number > ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberGte(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number >= ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberIn(categoryNumber ...string) UserCouponQuerySet {
|
||||
if len(categoryNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one categoryNumber in CategoryNumberIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("category_number IN (?)", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberLike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberLike(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number LIKE ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberLt(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number < ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberLte(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number <= ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberNe(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number != ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberNotIn(categoryNumber ...string) UserCouponQuerySet {
|
||||
if len(categoryNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one categoryNumber in CategoryNumberNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("category_number NOT IN (?)", categoryNumber))
|
||||
}
|
||||
|
||||
// CategoryNumberNotlike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CategoryNumberNotlike(categoryNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("category_number NOT LIKE ?", categoryNumber))
|
||||
}
|
||||
|
||||
// CodeEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeEq(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code = ?", code))
|
||||
}
|
||||
|
||||
// CodeGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeGt(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code > ?", code))
|
||||
}
|
||||
|
||||
// CodeGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeGte(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code >= ?", code))
|
||||
}
|
||||
|
||||
// CodeIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeIn(code ...string) UserCouponQuerySet {
|
||||
if len(code) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one code in CodeIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("code IN (?)", code))
|
||||
}
|
||||
|
||||
// CodeLike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeLike(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code LIKE ?", code))
|
||||
}
|
||||
|
||||
// CodeLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeLt(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code < ?", code))
|
||||
}
|
||||
|
||||
// CodeLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeLte(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code <= ?", code))
|
||||
}
|
||||
|
||||
// CodeNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeNe(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code != ?", code))
|
||||
}
|
||||
|
||||
// CodeNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeNotIn(code ...string) UserCouponQuerySet {
|
||||
if len(code) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one code in CodeNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("code NOT IN (?)", code))
|
||||
}
|
||||
|
||||
// CodeNotlike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CodeNotlike(code string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("code NOT LIKE ?", code))
|
||||
}
|
||||
|
||||
// CommodityNumberEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberEq(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number = ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberGt(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number > ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberGte(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number >= ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberIn(commodityNumber ...string) UserCouponQuerySet {
|
||||
if len(commodityNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one commodityNumber in CommodityNumberIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("commodity_number IN (?)", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberLike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberLike(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number LIKE ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberLt(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number < ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberLte(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number <= ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberNe(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number != ?", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberNotIn(commodityNumber ...string) UserCouponQuerySet {
|
||||
if len(commodityNumber) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one commodityNumber in CommodityNumberNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("commodity_number NOT IN (?)", commodityNumber))
|
||||
}
|
||||
|
||||
// CommodityNumberNotlike is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) CommodityNumberNotlike(commodityNumber string) UserCouponQuerySet {
|
||||
return qs.w(qs.db.Where("commodity_number NOT LIKE ?", commodityNumber))
|
||||
}
|
||||
|
||||
// Count is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) Count() (int, error) {
|
||||
|
@ -3737,6 +4211,24 @@ func (qs UserCouponQuerySet) OrderAscByApproach() UserCouponQuerySet {
|
|||
return qs.w(qs.db.Order("approach ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCategoryNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderAscByCategoryNumber() UserCouponQuerySet {
|
||||
return qs.w(qs.db.Order("category_number ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCode is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderAscByCode() UserCouponQuerySet {
|
||||
return qs.w(qs.db.Order("code ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCommodityNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderAscByCommodityNumber() UserCouponQuerySet {
|
||||
return qs.w(qs.db.Order("commodity_number ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByCouponId is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderAscByCouponId() UserCouponQuerySet {
|
||||
|
@ -3845,6 +4337,24 @@ func (qs UserCouponQuerySet) OrderDescByApproach() UserCouponQuerySet {
|
|||
return qs.w(qs.db.Order("approach DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCategoryNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderDescByCategoryNumber() UserCouponQuerySet {
|
||||
return qs.w(qs.db.Order("category_number DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCode is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderDescByCode() UserCouponQuerySet {
|
||||
return qs.w(qs.db.Order("code DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCommodityNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderDescByCommodityNumber() UserCouponQuerySet {
|
||||
return qs.w(qs.db.Order("commodity_number DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByCouponId is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs UserCouponQuerySet) OrderDescByCouponId() UserCouponQuerySet {
|
||||
|
@ -4322,6 +4832,27 @@ func (u UserCouponUpdater) SetApproach(approach uint32) UserCouponUpdater {
|
|||
return u
|
||||
}
|
||||
|
||||
// SetCategoryNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserCouponUpdater) SetCategoryNumber(categoryNumber string) UserCouponUpdater {
|
||||
u.fields[string(UserCouponDBSchema.CategoryNumber)] = categoryNumber
|
||||
return u
|
||||
}
|
||||
|
||||
// SetCode is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserCouponUpdater) SetCode(code string) UserCouponUpdater {
|
||||
u.fields[string(UserCouponDBSchema.Code)] = code
|
||||
return u
|
||||
}
|
||||
|
||||
// SetCommodityNumber is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserCouponUpdater) SetCommodityNumber(commodityNumber string) UserCouponUpdater {
|
||||
u.fields[string(UserCouponDBSchema.CommodityNumber)] = commodityNumber
|
||||
return u
|
||||
}
|
||||
|
||||
// SetCouponId is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u UserCouponUpdater) SetCouponId(couponId uint32) UserCouponUpdater {
|
||||
|
@ -4459,6 +4990,9 @@ var UserCouponDBSchema = struct {
|
|||
Approach UserCouponDBSchemaField
|
||||
PromotionalSales UserCouponDBSchemaField
|
||||
RedeemCode UserCouponDBSchemaField
|
||||
CategoryNumber UserCouponDBSchemaField
|
||||
CommodityNumber UserCouponDBSchemaField
|
||||
Code UserCouponDBSchemaField
|
||||
}{
|
||||
|
||||
ID: UserCouponDBSchemaField("id"),
|
||||
|
@ -4479,6 +5013,9 @@ var UserCouponDBSchema = struct {
|
|||
Approach: UserCouponDBSchemaField("approach"),
|
||||
PromotionalSales: UserCouponDBSchemaField("promotional_sales"),
|
||||
RedeemCode: UserCouponDBSchemaField("redeem_code"),
|
||||
CategoryNumber: UserCouponDBSchemaField("category_number"),
|
||||
CommodityNumber: UserCouponDBSchemaField("commodity_number"),
|
||||
Code: UserCouponDBSchemaField("code"),
|
||||
}
|
||||
|
||||
// Update updates UserCoupon fields by primary key
|
||||
|
@ -4503,6 +5040,9 @@ func (o *UserCoupon) Update(db *gorm.DB, fields ...UserCouponDBSchemaField) erro
|
|||
"approach": o.Approach,
|
||||
"promotional_sales": o.PromotionalSales,
|
||||
"redeem_code": o.RedeemCode,
|
||||
"category_number": o.CategoryNumber,
|
||||
"commodity_number": o.CommodityNumber,
|
||||
"code": o.Code,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
|
|
@ -9,7 +9,7 @@ const (
|
|||
CommonSaleActivityId = 5 // 零售销售(普通会员)
|
||||
PrivilegeMemberActivityId = 6 // 零售销售(尊享会员
|
||||
VmActivityId = 9 // 积分兑换优惠券
|
||||
|
||||
NewMachineActivityId = 10 // 主机预订券
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
|
@ -37,8 +37,8 @@ type Coupon struct {
|
|||
IsDraw bool `json:"is_draw" gorm:"-"` //
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
// 用户优惠券
|
||||
// gen:qs
|
||||
type UserCoupon struct {
|
||||
Model
|
||||
|
||||
|
|
|
@ -318,40 +318,39 @@ const (
|
|||
type GoodsOrder struct {
|
||||
Model
|
||||
|
||||
OrderId uint32 `json:"order_id" gorm:"unique_index"` // 订单 id
|
||||
SerialNo string `json:"serial_no" gorm:"unique_index"` // 序列号
|
||||
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
GoodsId uint32 `json:"goods_id" gorm:"index"` // 商品id
|
||||
Amount uint32 `json:"amount"` // 订单金额
|
||||
Quantity uint32 `json:"quantity"` // 购买商品的数量
|
||||
|
||||
PayType uint32 `json:"pay_type"` // 支付方式 1-rm 2-vm
|
||||
PayTime time.Time `json:"pay_time"` // 支付时间
|
||||
PayStatus uint32 `json:"pay_status"` // 支付状态 1-待支付 2-已支付 3-失败
|
||||
State string `json:"state"` //
|
||||
AddressId uint32 `json:"address_id"` // 收货地址
|
||||
DeliveryExtraInfo string `json:"delivery_extra_info"` // 物流备注
|
||||
DeliveryFee uint32 `json:"delivery_fee"` // 物流费用
|
||||
DeliveryTrackingNo string `json:"delivery_tracking_no"` // 物流单号
|
||||
DeliveryCompany string `json:"delivery_company"` // 物流公司
|
||||
DeliveryCompanyNo string `json:"delivery_company_no"` // 物流公司编号
|
||||
DeliveryStatus uint32 `json:"delivery_status"` // 物流状态 1-待发货 2-已发货 3-已收货
|
||||
Rm uint32 `json:"rm"` //
|
||||
Vm uint32 `json:"vm"` // 积分
|
||||
Discount uint32 `json:"discount"` // 折扣
|
||||
GoodsAttributeId uint32 `json:"goods_attribute_id"` //
|
||||
GoodsAttributeComboId uint32 `json:"goods_attribute_combo_id"` //
|
||||
|
||||
DeliverStoreId uint32 `json:"deliver_store_id"` // 发货门店
|
||||
DeliverTime time.Time `json:"deliver_time"` // 发货时间
|
||||
RefundExpressCompany string `json:"refund_express_company"` // 退货物流公司
|
||||
RefundExpressCompanyNo string `json:"refund_express_company_no"` // 退货物流公司编号
|
||||
RefundExpressNo string `json:"refund_express_no"` // 退货物流单号
|
||||
RefundReason string `json:"refund_reason" gorm:"type:text;"`
|
||||
ReceivedTime time.Time `json:"received_time"` // 签收时间
|
||||
|
||||
VersionId uint64 `json:"version_id"` // 乐观锁
|
||||
OrderId uint32 `json:"order_id" gorm:"unique_index"` // 订单 id
|
||||
SerialNo string `json:"serial_no" gorm:"unique_index"` // 序列号
|
||||
Uid uint32 `json:"uid" gorm:"index"` //
|
||||
GoodsId uint32 `json:"goods_id" gorm:"index"` // 商品id
|
||||
Amount uint32 `json:"amount"` // 订单金额
|
||||
Quantity uint32 `json:"quantity"` // 购买商品的数量
|
||||
PayType uint32 `json:"pay_type"` // 支付方式 1-rm 2-vm
|
||||
PayTime time.Time `json:"pay_time"` // 支付时间
|
||||
PayStatus uint32 `json:"pay_status"` // 支付状态 1-待支付 2-已支付 3-失败
|
||||
State string `json:"state"` //
|
||||
AddressId uint32 `json:"address_id"` // 收货地址
|
||||
DeliveryExtraInfo string `json:"delivery_extra_info"` // 物流备注
|
||||
DeliveryFee uint32 `json:"delivery_fee"` // 物流费用
|
||||
DeliveryTrackingNo string `json:"delivery_tracking_no"` // 物流单号
|
||||
DeliveryCompany string `json:"delivery_company"` // 物流公司
|
||||
DeliveryCompanyNo string `json:"delivery_company_no"` // 物流公司编号
|
||||
DeliveryStatus uint32 `json:"delivery_status"` // 物流状态 1-待发货 2-已发货 3-已收货
|
||||
Rm uint32 `json:"rm"` //
|
||||
Vm uint32 `json:"vm"` // 积分
|
||||
Discount uint32 `json:"discount"` // 折扣
|
||||
GoodsAttributeId uint32 `json:"goods_attribute_id"` //
|
||||
GoodsAttributeComboId uint32 `json:"goods_attribute_combo_id"` //
|
||||
DeliverStoreId uint32 `json:"deliver_store_id"` // 发货门店
|
||||
DeliverTime time.Time `json:"deliver_time"` // 发货时间
|
||||
RefundExpressCompany string `json:"refund_express_company"` // 退货物流公司
|
||||
RefundExpressCompanyNo string `json:"refund_express_company_no"` // 退货物流公司编号
|
||||
RefundExpressNo string `json:"refund_express_no"` // 退货物流单号
|
||||
RefundReason string `json:"refund_reason" gorm:"type:text;"` //
|
||||
ReceivedTime time.Time `json:"received_time"` // 签收时间
|
||||
VersionId uint64 `json:"version_id"` // 乐观锁
|
||||
CouponCode string `json:"coupon_code"` // 优惠券券码
|
||||
CouponName string `json:"coupon_name"` // 优惠券名称
|
||||
CouponDiscount uint32 `json:"coupon_discount"` // 优惠券抵扣
|
||||
|
||||
Goods *Goods `json:"goods" gorm:"-"`
|
||||
UserAddress *UserAddress `json:"user_address" gorm:"-"`
|
||||
|
|
Loading…
Reference in New Issue
Block a user