This commit is contained in:
li 2022-05-13 17:35:10 +08:00
parent f3a8ac8a55
commit 3670b91603
12 changed files with 595 additions and 173 deletions

View File

@ -277,6 +277,12 @@ func CooperativeCannibalizeTaskPutInStorage(c *gin.Context) {
RespJson(c, status.InternalServerError, nil)
return
}
if assistant.XcxRoleId != 2 {
logger.Error("xcx role err:")
RespJson(c, status.NoAuth, nil)
return
}
err := model.CannibalizePutInStorage(req.CannibalizeStockTaskId)
if err != nil {
logger.Error("err:", err)

View File

@ -479,15 +479,18 @@ func PushWXPayNotice(c *gin.Context) {
}
openMemberChannel := model.OpenMemberChannelUserInvite
userQs := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater()
if inviteUser.UserType == 2 {
openMemberChannel = model.OpenMemberChannelStorePromotion
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
uint32(inviteUser.StoreId), inviteUser.Uid, int(record.MemberLevel))
userQs = userQs.SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
SetCooperativeName(inviteUser.CooperativeName)
}
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().
SetOpenMemberChannel(openMemberChannel).
SetCooperativeBusinessId(inviteUser.CooperativeBusinessId).
SetCooperativeName(inviteUser.CooperativeName).UpdateNum()
_, err = userQs.SetOpenMemberChannel(openMemberChannel).UpdateNum()
if err != nil {
logger.Error("err:", err)
}

View File

@ -289,24 +289,34 @@ func RentCardOrderCreate(c *gin.Context) {
RespJson(c, status.GoodsSoldOut, nil)
return
}
store := &model.Store{}
store.ID = req.StoreId
err = store.Info()
if err != nil {
logger.Error("store err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
// 邮费
orderSn := model.GetOrderSn()
order := model.Order{
Uid: uint64(uc.Uid),
GameCardId: 0,
StoreId: uint64(req.StoreId),
UserAddressId: uint64(req.UserAddressId),
DeliveryType: req.DeliveryType,
Count: 1,
PickupCode: model.GetPickupCode(), // 取货码
CardStatus: model.OrderCardStatusUnPick,
PayStatus: model.PayStatusUnPay,
PayTime: time.Now(),
OrderSn: orderSn,
PayPrice: req.Price,
Postage: req.ExpressFee,
Uid: uint64(uc.Uid),
GameCardId: 0,
StoreId: uint64(req.StoreId),
UserAddressId: uint64(req.UserAddressId),
DeliveryType: req.DeliveryType,
Count: 1,
PickupCode: model.GetPickupCode(), // 取货码
CardStatus: model.OrderCardStatusUnPick,
PayStatus: model.PayStatusUnPay,
PayTime: time.Now(),
OrderSn: orderSn,
PayPrice: req.Price,
Postage: req.ExpressFee,
CooperativeBusinessId: store.CooperativeBusinessId,
CooperativeName: store.CooperativeName,
}
// 以支付成功作为订单下单成功的依据,不是订单创建 已修改

View File

@ -11,7 +11,8 @@ import (
func StoreList(c *gin.Context) {
req := struct {
//GameCardId uint64 `json:"game_card_id"`
GameCardList []model.CardInfo `json:"game_card_list"`
UseType uint32 `json:"use_type"`
GameCardList []model.CardInfo `json:"game_card_list"`
}{}
if err := c.ShouldBindJSON(&req); err != nil {
logger.Error(err)
@ -28,6 +29,25 @@ func StoreList(c *gin.Context) {
RespOK(c, stores)
}
func DisplayStoreList(c *gin.Context) {
req := struct {
DisplayType uint32 `json:"display_type"` // 0-所有 1-共享卡
}{}
if err := c.ShouldBindJSON(&req); err != nil {
logger.Error(err)
RespJson(c, status.BadRequest, nil)
return
}
stores, err := model.GetDisplayStoreList(req.DisplayType)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, stores)
}
func StoreInfo(c *gin.Context) {
req := struct {
StoreId uint32 `json:"store_id"`

View File

@ -35,6 +35,10 @@ func MonthDate() string {
return NowTime().Format("2006-01")
}
func MonthDateAdd(month int) string {
return NowTime().AddDate(0, month, 0).Format("2006-01")
}
func TodayZeroAddDays(days int) time.Time {
return TodayZero().AddDate(0, 0, days)
}

View File

@ -3053,6 +3053,74 @@ func (qs InviteMemberReportQuerySet) CreatedAtNe(createdAt time.Time) InviteMemb
return qs.w(qs.db.Where("created_at != ?", createdAt))
}
// DateEq is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateEq(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date = ?", date))
}
// DateGt is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateGt(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date > ?", date))
}
// DateGte is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateGte(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date >= ?", date))
}
// DateIn is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateIn(date ...string) InviteMemberReportQuerySet {
if len(date) == 0 {
qs.db.AddError(errors.New("must at least pass one date in DateIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("date IN (?)", date))
}
// DateLike is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateLike(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date LIKE ?", date))
}
// DateLt is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateLt(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date < ?", date))
}
// DateLte is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateLte(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date <= ?", date))
}
// DateNe is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateNe(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date != ?", date))
}
// DateNotIn is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateNotIn(date ...string) InviteMemberReportQuerySet {
if len(date) == 0 {
qs.db.AddError(errors.New("must at least pass one date in DateNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("date NOT IN (?)", date))
}
// DateNotlike is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DateNotlike(date string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("date NOT LIKE ?", date))
}
// DeductAmountEq is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) DeductAmountEq(deductAmount uint32) InviteMemberReportQuerySet {
@ -3405,6 +3473,12 @@ func (qs InviteMemberReportQuerySet) OrderAscByCreatedAt() InviteMemberReportQue
return qs.w(qs.db.Order("created_at ASC"))
}
// OrderAscByDate is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderAscByDate() InviteMemberReportQuerySet {
return qs.w(qs.db.Order("date ASC"))
}
// OrderAscByDeductAmount is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderAscByDeductAmount() InviteMemberReportQuerySet {
@ -3447,12 +3521,6 @@ func (qs InviteMemberReportQuerySet) OrderAscByPlatinumDeduct() InviteMemberRepo
return qs.w(qs.db.Order("platinum_deduct ASC"))
}
// OrderAscByReportTime is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderAscByReportTime() InviteMemberReportQuerySet {
return qs.w(qs.db.Order("report_time ASC"))
}
// OrderAscByStoreId is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderAscByStoreId() InviteMemberReportQuerySet {
@ -3501,6 +3569,12 @@ func (qs InviteMemberReportQuerySet) OrderDescByCreatedAt() InviteMemberReportQu
return qs.w(qs.db.Order("created_at DESC"))
}
// OrderDescByDate is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderDescByDate() InviteMemberReportQuerySet {
return qs.w(qs.db.Order("date DESC"))
}
// OrderDescByDeductAmount is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderDescByDeductAmount() InviteMemberReportQuerySet {
@ -3543,12 +3617,6 @@ func (qs InviteMemberReportQuerySet) OrderDescByPlatinumDeduct() InviteMemberRep
return qs.w(qs.db.Order("platinum_deduct DESC"))
}
// OrderDescByReportTime is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderDescByReportTime() InviteMemberReportQuerySet {
return qs.w(qs.db.Order("report_time DESC"))
}
// OrderDescByStoreId is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) OrderDescByStoreId() InviteMemberReportQuerySet {
@ -3679,74 +3747,6 @@ func (qs InviteMemberReportQuerySet) PlatinumDeductNotIn(platinumDeduct ...uint3
return qs.w(qs.db.Where("platinum_deduct NOT IN (?)", platinumDeduct))
}
// ReportTimeEq is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeEq(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time = ?", reportTime))
}
// ReportTimeGt is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeGt(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time > ?", reportTime))
}
// ReportTimeGte is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeGte(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time >= ?", reportTime))
}
// ReportTimeIn is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeIn(reportTime ...string) InviteMemberReportQuerySet {
if len(reportTime) == 0 {
qs.db.AddError(errors.New("must at least pass one reportTime in ReportTimeIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("report_time IN (?)", reportTime))
}
// ReportTimeLike is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeLike(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time LIKE ?", reportTime))
}
// ReportTimeLt is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeLt(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time < ?", reportTime))
}
// ReportTimeLte is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeLte(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time <= ?", reportTime))
}
// ReportTimeNe is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeNe(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time != ?", reportTime))
}
// ReportTimeNotIn is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeNotIn(reportTime ...string) InviteMemberReportQuerySet {
if len(reportTime) == 0 {
qs.db.AddError(errors.New("must at least pass one reportTime in ReportTimeNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("report_time NOT IN (?)", reportTime))
}
// ReportTimeNotlike is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) ReportTimeNotlike(reportTime string) InviteMemberReportQuerySet {
return qs.w(qs.db.Where("report_time NOT LIKE ?", reportTime))
}
// StoreIdEq is an autogenerated method
// nolint: dupl
func (qs InviteMemberReportQuerySet) StoreIdEq(storeId uint32) InviteMemberReportQuerySet {
@ -3930,6 +3930,13 @@ func (u InviteMemberReportUpdater) SetCreatedAt(createdAt time.Time) InviteMembe
return u
}
// SetDate is an autogenerated method
// nolint: dupl
func (u InviteMemberReportUpdater) SetDate(date string) InviteMemberReportUpdater {
u.fields[string(InviteMemberReportDBSchema.Date)] = date
return u
}
// SetDeductAmount is an autogenerated method
// nolint: dupl
func (u InviteMemberReportUpdater) SetDeductAmount(deductAmount uint32) InviteMemberReportUpdater {
@ -3979,13 +3986,6 @@ func (u InviteMemberReportUpdater) SetPlatinumDeduct(platinumDeduct uint32) Invi
return u
}
// SetReportTime is an autogenerated method
// nolint: dupl
func (u InviteMemberReportUpdater) SetReportTime(reportTime string) InviteMemberReportUpdater {
u.fields[string(InviteMemberReportDBSchema.ReportTime)] = reportTime
return u
}
// SetStoreId is an autogenerated method
// nolint: dupl
func (u InviteMemberReportUpdater) SetStoreId(storeId uint32) InviteMemberReportUpdater {
@ -4044,7 +4044,7 @@ var InviteMemberReportDBSchema = struct {
GoldCount InviteMemberReportDBSchemaField
PlatinumCount InviteMemberReportDBSchemaField
BlackGoldCount InviteMemberReportDBSchemaField
ReportTime InviteMemberReportDBSchemaField
Date InviteMemberReportDBSchemaField
DeductAmount InviteMemberReportDBSchemaField
CooperativeBusinessId InviteMemberReportDBSchemaField
CooperativeName InviteMemberReportDBSchemaField
@ -4062,7 +4062,7 @@ var InviteMemberReportDBSchema = struct {
GoldCount: InviteMemberReportDBSchemaField("gold_count"),
PlatinumCount: InviteMemberReportDBSchemaField("platinum_count"),
BlackGoldCount: InviteMemberReportDBSchemaField("black_gold_count"),
ReportTime: InviteMemberReportDBSchemaField("report_time"),
Date: InviteMemberReportDBSchemaField("date"),
DeductAmount: InviteMemberReportDBSchemaField("deduct_amount"),
CooperativeBusinessId: InviteMemberReportDBSchemaField("cooperative_business_id"),
CooperativeName: InviteMemberReportDBSchemaField("cooperative_name"),
@ -4084,7 +4084,7 @@ func (o *InviteMemberReport) Update(db *gorm.DB, fields ...InviteMemberReportDBS
"gold_count": o.GoldCount,
"platinum_count": o.PlatinumCount,
"black_gold_count": o.BlackGoldCount,
"report_time": o.ReportTime,
"date": o.Date,
"deduct_amount": o.DeductAmount,
"cooperative_business_id": o.CooperativeBusinessId,
"cooperative_name": o.CooperativeName,
@ -4171,6 +4171,62 @@ func (qs OperationLogQuerySet) All(ret *[]OperationLog) error {
return qs.db.Find(ret).Error
}
// CooperativeBusinessIdEq is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdEq(cooperativeBusinessId uint32) OperationLogQuerySet {
return qs.w(qs.db.Where("cooperative_business_id = ?", cooperativeBusinessId))
}
// CooperativeBusinessIdGt is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdGt(cooperativeBusinessId uint32) OperationLogQuerySet {
return qs.w(qs.db.Where("cooperative_business_id > ?", cooperativeBusinessId))
}
// CooperativeBusinessIdGte is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdGte(cooperativeBusinessId uint32) OperationLogQuerySet {
return qs.w(qs.db.Where("cooperative_business_id >= ?", cooperativeBusinessId))
}
// CooperativeBusinessIdIn is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdIn(cooperativeBusinessId ...uint32) OperationLogQuerySet {
if len(cooperativeBusinessId) == 0 {
qs.db.AddError(errors.New("must at least pass one cooperativeBusinessId in CooperativeBusinessIdIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("cooperative_business_id IN (?)", cooperativeBusinessId))
}
// CooperativeBusinessIdLt is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdLt(cooperativeBusinessId uint32) OperationLogQuerySet {
return qs.w(qs.db.Where("cooperative_business_id < ?", cooperativeBusinessId))
}
// CooperativeBusinessIdLte is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdLte(cooperativeBusinessId uint32) OperationLogQuerySet {
return qs.w(qs.db.Where("cooperative_business_id <= ?", cooperativeBusinessId))
}
// CooperativeBusinessIdNe is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdNe(cooperativeBusinessId uint32) OperationLogQuerySet {
return qs.w(qs.db.Where("cooperative_business_id != ?", cooperativeBusinessId))
}
// CooperativeBusinessIdNotIn is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeBusinessIdNotIn(cooperativeBusinessId ...uint32) OperationLogQuerySet {
if len(cooperativeBusinessId) == 0 {
qs.db.AddError(errors.New("must at least pass one cooperativeBusinessId in CooperativeBusinessIdNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("cooperative_business_id NOT IN (?)", cooperativeBusinessId))
}
// CooperativeNameEq is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) CooperativeNameEq(cooperativeName string) OperationLogQuerySet {
@ -4543,6 +4599,74 @@ func (qs OperationLogQuerySet) DescriptionNotlike(description string) OperationL
return qs.w(qs.db.Where("description NOT LIKE ?", description))
}
// DetailEq is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailEq(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail = ?", detail))
}
// DetailGt is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailGt(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail > ?", detail))
}
// DetailGte is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailGte(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail >= ?", detail))
}
// DetailIn is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailIn(detail ...string) OperationLogQuerySet {
if len(detail) == 0 {
qs.db.AddError(errors.New("must at least pass one detail in DetailIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("detail IN (?)", detail))
}
// DetailLike is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailLike(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail LIKE ?", detail))
}
// DetailLt is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailLt(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail < ?", detail))
}
// DetailLte is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailLte(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail <= ?", detail))
}
// DetailNe is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailNe(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail != ?", detail))
}
// DetailNotIn is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailNotIn(detail ...string) OperationLogQuerySet {
if len(detail) == 0 {
qs.db.AddError(errors.New("must at least pass one detail in DetailNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("detail NOT IN (?)", detail))
}
// DetailNotlike is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) DetailNotlike(detail string) OperationLogQuerySet {
return qs.w(qs.db.Where("detail NOT LIKE ?", detail))
}
// GetDB is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) GetDB() *gorm.DB {
@ -4697,6 +4821,12 @@ func (qs OperationLogQuerySet) OperationTypeNotlike(operationType string) Operat
return qs.w(qs.db.Where("operation_type NOT LIKE ?", operationType))
}
// OrderAscByCooperativeBusinessId is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderAscByCooperativeBusinessId() OperationLogQuerySet {
return qs.w(qs.db.Order("cooperative_business_id ASC"))
}
// OrderAscByCooperativeName is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderAscByCooperativeName() OperationLogQuerySet {
@ -4733,6 +4863,12 @@ func (qs OperationLogQuerySet) OrderAscByDescription() OperationLogQuerySet {
return qs.w(qs.db.Order("description ASC"))
}
// OrderAscByDetail is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderAscByDetail() OperationLogQuerySet {
return qs.w(qs.db.Order("detail ASC"))
}
// OrderAscByID is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderAscByID() OperationLogQuerySet {
@ -4745,6 +4881,12 @@ func (qs OperationLogQuerySet) OrderAscByOperationType() OperationLogQuerySet {
return qs.w(qs.db.Order("operation_type ASC"))
}
// OrderAscByRemark is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderAscByRemark() OperationLogQuerySet {
return qs.w(qs.db.Order("remark ASC"))
}
// OrderAscBySerialNumber is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderAscBySerialNumber() OperationLogQuerySet {
@ -4775,6 +4917,12 @@ func (qs OperationLogQuerySet) OrderAscByUpdatedAt() OperationLogQuerySet {
return qs.w(qs.db.Order("updated_at ASC"))
}
// OrderDescByCooperativeBusinessId is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderDescByCooperativeBusinessId() OperationLogQuerySet {
return qs.w(qs.db.Order("cooperative_business_id DESC"))
}
// OrderDescByCooperativeName is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderDescByCooperativeName() OperationLogQuerySet {
@ -4811,6 +4959,12 @@ func (qs OperationLogQuerySet) OrderDescByDescription() OperationLogQuerySet {
return qs.w(qs.db.Order("description DESC"))
}
// OrderDescByDetail is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderDescByDetail() OperationLogQuerySet {
return qs.w(qs.db.Order("detail DESC"))
}
// OrderDescByID is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderDescByID() OperationLogQuerySet {
@ -4823,6 +4977,12 @@ func (qs OperationLogQuerySet) OrderDescByOperationType() OperationLogQuerySet {
return qs.w(qs.db.Order("operation_type DESC"))
}
// OrderDescByRemark is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderDescByRemark() OperationLogQuerySet {
return qs.w(qs.db.Order("remark DESC"))
}
// OrderDescBySerialNumber is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) OrderDescBySerialNumber() OperationLogQuerySet {
@ -4853,6 +5013,74 @@ func (qs OperationLogQuerySet) OrderDescByUpdatedAt() OperationLogQuerySet {
return qs.w(qs.db.Order("updated_at DESC"))
}
// RemarkEq is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkEq(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark = ?", remark))
}
// RemarkGt is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkGt(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark > ?", remark))
}
// RemarkGte is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkGte(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark >= ?", remark))
}
// RemarkIn is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkIn(remark ...string) OperationLogQuerySet {
if len(remark) == 0 {
qs.db.AddError(errors.New("must at least pass one remark in RemarkIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("remark IN (?)", remark))
}
// RemarkLike is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkLike(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark LIKE ?", remark))
}
// RemarkLt is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkLt(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark < ?", remark))
}
// RemarkLte is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkLte(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark <= ?", remark))
}
// RemarkNe is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkNe(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark != ?", remark))
}
// RemarkNotIn is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkNotIn(remark ...string) OperationLogQuerySet {
if len(remark) == 0 {
qs.db.AddError(errors.New("must at least pass one remark in RemarkNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("remark NOT IN (?)", remark))
}
// RemarkNotlike is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) RemarkNotlike(remark string) OperationLogQuerySet {
return qs.w(qs.db.Where("remark NOT LIKE ?", remark))
}
// SerialNumberEq is an autogenerated method
// nolint: dupl
func (qs OperationLogQuerySet) SerialNumberEq(serialNumber string) OperationLogQuerySet {
@ -5137,6 +5365,13 @@ func (qs OperationLogQuerySet) UpdatedAtNe(updatedAt time.Time) OperationLogQuer
return qs.w(qs.db.Where("updated_at != ?", updatedAt))
}
// SetCooperativeBusinessId is an autogenerated method
// nolint: dupl
func (u OperationLogUpdater) SetCooperativeBusinessId(cooperativeBusinessId uint32) OperationLogUpdater {
u.fields[string(OperationLogDBSchema.CooperativeBusinessId)] = cooperativeBusinessId
return u
}
// SetCooperativeName is an autogenerated method
// nolint: dupl
func (u OperationLogUpdater) SetCooperativeName(cooperativeName string) OperationLogUpdater {
@ -5179,6 +5414,13 @@ func (u OperationLogUpdater) SetDescription(description string) OperationLogUpda
return u
}
// SetDetail is an autogenerated method
// nolint: dupl
func (u OperationLogUpdater) SetDetail(detail string) OperationLogUpdater {
u.fields[string(OperationLogDBSchema.Detail)] = detail
return u
}
// SetID is an autogenerated method
// nolint: dupl
func (u OperationLogUpdater) SetID(ID uint32) OperationLogUpdater {
@ -5193,6 +5435,13 @@ func (u OperationLogUpdater) SetOperationType(operationType string) OperationLog
return u
}
// SetRemark is an autogenerated method
// nolint: dupl
func (u OperationLogUpdater) SetRemark(remark string) OperationLogUpdater {
u.fields[string(OperationLogDBSchema.Remark)] = remark
return u
}
// SetSerialNumber is an autogenerated method
// nolint: dupl
func (u OperationLogUpdater) SetSerialNumber(serialNumber string) OperationLogUpdater {
@ -5256,53 +5505,62 @@ func (f OperationLogDBSchemaField) String() string {
// OperationLogDBSchema stores db field names of OperationLog
var OperationLogDBSchema = struct {
ID OperationLogDBSchemaField
CreatedAt OperationLogDBSchemaField
UpdatedAt OperationLogDBSchemaField
DeletedAt OperationLogDBSchemaField
Uid OperationLogDBSchemaField
Description OperationLogDBSchemaField
OperationType OperationLogDBSchemaField
CorrelationId OperationLogDBSchemaField
CorrelationName OperationLogDBSchemaField
StoreId OperationLogDBSchemaField
StoreName OperationLogDBSchemaField
CooperativeName OperationLogDBSchemaField
SerialNumber OperationLogDBSchemaField
ID OperationLogDBSchemaField
CreatedAt OperationLogDBSchemaField
UpdatedAt OperationLogDBSchemaField
DeletedAt OperationLogDBSchemaField
Uid OperationLogDBSchemaField
Description OperationLogDBSchemaField
OperationType OperationLogDBSchemaField
CorrelationId OperationLogDBSchemaField
CorrelationName OperationLogDBSchemaField
StoreId OperationLogDBSchemaField
StoreName OperationLogDBSchemaField
CooperativeName OperationLogDBSchemaField
CooperativeBusinessId OperationLogDBSchemaField
SerialNumber OperationLogDBSchemaField
Detail OperationLogDBSchemaField
Remark OperationLogDBSchemaField
}{
ID: OperationLogDBSchemaField("id"),
CreatedAt: OperationLogDBSchemaField("created_at"),
UpdatedAt: OperationLogDBSchemaField("updated_at"),
DeletedAt: OperationLogDBSchemaField("deleted_at"),
Uid: OperationLogDBSchemaField("uid"),
Description: OperationLogDBSchemaField("description"),
OperationType: OperationLogDBSchemaField("operation_type"),
CorrelationId: OperationLogDBSchemaField("correlation_id"),
CorrelationName: OperationLogDBSchemaField("correlation_name"),
StoreId: OperationLogDBSchemaField("store_id"),
StoreName: OperationLogDBSchemaField("store_name"),
CooperativeName: OperationLogDBSchemaField("cooperative_name"),
SerialNumber: OperationLogDBSchemaField("serial_number"),
ID: OperationLogDBSchemaField("id"),
CreatedAt: OperationLogDBSchemaField("created_at"),
UpdatedAt: OperationLogDBSchemaField("updated_at"),
DeletedAt: OperationLogDBSchemaField("deleted_at"),
Uid: OperationLogDBSchemaField("uid"),
Description: OperationLogDBSchemaField("description"),
OperationType: OperationLogDBSchemaField("operation_type"),
CorrelationId: OperationLogDBSchemaField("correlation_id"),
CorrelationName: OperationLogDBSchemaField("correlation_name"),
StoreId: OperationLogDBSchemaField("store_id"),
StoreName: OperationLogDBSchemaField("store_name"),
CooperativeName: OperationLogDBSchemaField("cooperative_name"),
CooperativeBusinessId: OperationLogDBSchemaField("cooperative_business_id"),
SerialNumber: OperationLogDBSchemaField("serial_number"),
Detail: OperationLogDBSchemaField("detail"),
Remark: OperationLogDBSchemaField("remark"),
}
// Update updates OperationLog fields by primary key
// nolint: dupl
func (o *OperationLog) Update(db *gorm.DB, fields ...OperationLogDBSchemaField) error {
dbNameToFieldName := map[string]interface{}{
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"uid": o.Uid,
"description": o.Description,
"operation_type": o.OperationType,
"correlation_id": o.CorrelationId,
"correlation_name": o.CorrelationName,
"store_id": o.StoreId,
"store_name": o.StoreName,
"cooperative_name": o.CooperativeName,
"serial_number": o.SerialNumber,
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"uid": o.Uid,
"description": o.Description,
"operation_type": o.OperationType,
"correlation_id": o.CorrelationId,
"correlation_name": o.CorrelationName,
"store_id": o.StoreId,
"store_name": o.StoreName,
"cooperative_name": o.CooperativeName,
"cooperative_business_id": o.CooperativeBusinessId,
"serial_number": o.SerialNumber,
"detail": o.Detail,
"remark": o.Remark,
}
u := map[string]interface{}{}
for _, f := range fields {
@ -9501,6 +9759,12 @@ func (qs UserQuerySet) OrderAscByProvince() UserQuerySet {
return qs.w(qs.db.Order("province ASC"))
}
// OrderAscByShopAssistantName is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OrderAscByShopAssistantName() UserQuerySet {
return qs.w(qs.db.Order("shop_assistant_name ASC"))
}
// OrderAscByStoreId is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OrderAscByStoreId() UserQuerySet {
@ -9693,6 +9957,12 @@ func (qs UserQuerySet) OrderDescByProvince() UserQuerySet {
return qs.w(qs.db.Order("province DESC"))
}
// OrderDescByShopAssistantName is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OrderDescByShopAssistantName() UserQuerySet {
return qs.w(qs.db.Order("shop_assistant_name DESC"))
}
// OrderDescByStoreId is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) OrderDescByStoreId() UserQuerySet {
@ -9833,6 +10103,74 @@ func (qs UserQuerySet) ProvinceNotlike(province string) UserQuerySet {
return qs.w(qs.db.Where("province NOT LIKE ?", province))
}
// ShopAssistantNameEq is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameEq(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name = ?", shopAssistantName))
}
// ShopAssistantNameGt is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameGt(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name > ?", shopAssistantName))
}
// ShopAssistantNameGte is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameGte(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name >= ?", shopAssistantName))
}
// ShopAssistantNameIn is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameIn(shopAssistantName ...string) UserQuerySet {
if len(shopAssistantName) == 0 {
qs.db.AddError(errors.New("must at least pass one shopAssistantName in ShopAssistantNameIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("shop_assistant_name IN (?)", shopAssistantName))
}
// ShopAssistantNameLike is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameLike(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name LIKE ?", shopAssistantName))
}
// ShopAssistantNameLt is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameLt(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name < ?", shopAssistantName))
}
// ShopAssistantNameLte is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameLte(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name <= ?", shopAssistantName))
}
// ShopAssistantNameNe is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameNe(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name != ?", shopAssistantName))
}
// ShopAssistantNameNotIn is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameNotIn(shopAssistantName ...string) UserQuerySet {
if len(shopAssistantName) == 0 {
qs.db.AddError(errors.New("must at least pass one shopAssistantName in ShopAssistantNameNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("shop_assistant_name NOT IN (?)", shopAssistantName))
}
// ShopAssistantNameNotlike is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) ShopAssistantNameNotlike(shopAssistantName string) UserQuerySet {
return qs.w(qs.db.Where("shop_assistant_name NOT LIKE ?", shopAssistantName))
}
// StoreIdEq is an autogenerated method
// nolint: dupl
func (qs UserQuerySet) StoreIdEq(storeId uint64) UserQuerySet {
@ -10685,6 +11023,13 @@ func (u UserUpdater) SetProvince(province string) UserUpdater {
return u
}
// SetShopAssistantName is an autogenerated method
// nolint: dupl
func (u UserUpdater) SetShopAssistantName(shopAssistantName string) UserUpdater {
u.fields[string(UserDBSchema.ShopAssistantName)] = shopAssistantName
return u
}
// SetStoreId is an autogenerated method
// nolint: dupl
func (u UserUpdater) SetStoreId(storeId uint64) UserUpdater {
@ -10828,6 +11173,7 @@ var UserDBSchema = struct {
StoreType UserDBSchemaField
CooperativeBusinessId UserDBSchemaField
CooperativeName UserDBSchemaField
ShopAssistantName UserDBSchemaField
Version UserDBSchemaField
}{
@ -10862,6 +11208,7 @@ var UserDBSchema = struct {
StoreType: UserDBSchemaField("store_type"),
CooperativeBusinessId: UserDBSchemaField("cooperative_business_id"),
CooperativeName: UserDBSchemaField("cooperative_name"),
ShopAssistantName: UserDBSchemaField("shop_assistant_name"),
Version: UserDBSchemaField("version"),
}
@ -10900,6 +11247,7 @@ func (o *User) Update(db *gorm.DB, fields ...UserDBSchemaField) error {
"store_type": o.StoreType,
"cooperative_business_id": o.CooperativeBusinessId,
"cooperative_name": o.CooperativeName,
"shop_assistant_name": o.ShopAssistantName,
"version": o.Version,
}
u := map[string]interface{}{}

View File

@ -228,7 +228,7 @@ func (m *CooperativeMemberPromotion) AddPromotion(gdb *gorm.DB, memberLevel int)
}
fmt.Println("邀请会员sql:", sql)
exist, err := QueryRecordExist(fmt.Sprintf(
"SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s'",
"SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s' ",
m.CooperativeBusinessId, dateString))
if err != nil {
logger.Error("cooperative member promotion record exist err:", err)
@ -408,28 +408,28 @@ func (m *InviteMemberReport) AddPromotion(gdb *gorm.DB, memberLevel int) error {
if m.Uid == 0 {
return errors.New("uid is null")
}
m.ReportTime = dateString
m.Date = dateString
sql := ""
switch memberLevel {
case 2:
sql = "UPDATE invite_member_report SET gold_count=gold_count+1 " +
fmt.Sprintf("WHERE report_time='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
m.GoldCount = 1
case 4:
sql = "UPDATE invite_member_report SET platinum_count=platinum_count+1 " +
fmt.Sprintf("WHERE report_time='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
m.PlatinumCount = 1
case 5:
sql = "UPDATE invite_member_report SET black_gold_count=black_gold_count+1 " +
fmt.Sprintf("WHERE report_time='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d AND uid=%d",
dateString, m.CooperativeBusinessId, m.StoreId, m.Uid)
m.BlackGoldCount = 1
}
exist, err := QueryRecordExist(fmt.Sprintf(
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND report_time='%s' AND store_id=%d AND uid=%d",
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d AND uid=%d",
m.CooperativeBusinessId, dateString, m.StoreId, m.Uid))
if err != nil {
logger.Error("cooperative member promotion record exist err:", err)

View File

@ -1500,7 +1500,7 @@ func (m *AssistantMemberPromotionReq) List() ([]InviteMemberReport, int, error)
qs := NewInviteMemberReportQuerySet(DB).CooperativeBusinessIdEq(m.Assistant.CooperativeBusinessId).
StoreIdEq(m.StoreId)
if m.Date != "" {
qs = qs.ReportTimeEq(m.Date)
qs = qs.DateEq(m.Date)
}
count, err := qs.Count()
if err != nil {

View File

@ -171,6 +171,9 @@ func OrderCardListSetGameInfo(list []OrderCard) []OrderCard {
func GameCardMap(ids []uint32) (map[uint32]GameCard, error) {
cardMap := make(map[uint32]GameCard, 0)
if len(ids) == 0 {
return cardMap, nil
}
var cards []GameCard
err := NewGameCardQuerySet(DB).IDIn(ids...).All(&cards)
if err != nil {
@ -188,6 +191,9 @@ func GameCardMap(ids []uint32) (map[uint32]GameCard, error) {
func OrderMap(ids []uint32) (map[uint32]Order, error) {
cardMap := make(map[uint32]Order, 0)
if len(ids) == 0 {
return cardMap, nil
}
var cards []Order
err := NewOrderQuerySet(DB).IDIn(ids...).All(&cards)
if err != nil {
@ -806,18 +812,20 @@ func (m *Order) CreatOrderCard(cards []CardInfo, storeId uint32, gdb *gorm.DB) e
for _, v := range cards {
for i := 0; i < int(v.Count); i++ {
orderCard := &OrderCard{
OrderId: m.ID,
Uid: uint32(m.Uid),
GameCardId: v.GameCardId,
GameCardGoodsId: 0,
StoreId: storeId,
CardStatus: OrderCardStatusUnPick,
DeliveryTime: time.Time{},
ReceiptTime: time.Time{},
DeliveryType: m.DeliveryType,
SerialNumber: "",
PayStatus: m.PayStatus,
IssueType: 2,
OrderId: m.ID,
Uid: uint32(m.Uid),
GameCardId: v.GameCardId,
GameCardGoodsId: 0,
StoreId: storeId,
CardStatus: OrderCardStatusUnPick,
DeliveryTime: time.Time{},
ReceiptTime: time.Time{},
DeliveryType: m.DeliveryType,
SerialNumber: "",
PayStatus: m.PayStatus,
IssueType: 2,
CooperativeBusinessId: m.CooperativeBusinessId,
CooperativeName: m.CooperativeName,
}
err := gdb.Create(orderCard).Error
if err != nil {

View File

@ -129,6 +129,21 @@ func GetStoreList(cardInfos []CardInfo) ([]GameCardStock, error) {
return list, nil
}
func GetDisplayStoreList(displayType uint32) ([]Store, error) {
stores := make([]Store, 0)
qs := NewStoreQuerySet(DB).IsOnlineEq(1)
if displayType == 1 {
qs = qs.CooperativeBusinessIdEq(1)
}
err := qs.OrderDescByID().All(&stores)
if err != nil && err != RecordNotFound {
logger.Errorf("err:%+v", err)
return stores, err
}
return stores, nil
}
func (m *Store) Info() error {
err := NewStoreQuerySet(DB).IDEq(m.ID).One(m)
if err != nil {

View File

@ -313,12 +313,13 @@ func (m *UserOpenMemberRecord) OrderRefund(outTradeNo string) error {
// gen:qs
type InviteMemberReport struct {
Model
Uid uint32 `json:"uid" gorm:"index"` // 店员uid
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
GoldCount uint32 `json:"gold_count"` // 黄金数量
PlatinumCount uint32 `json:"platinum_count"` // 白金数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金数量
ReportTime string `json:"report_time" gorm:"index"` // 业绩时间
Uid uint32 `json:"uid" gorm:"index"` // 店员uid
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
GoldCount uint32 `json:"gold_count"` // 黄金数量
PlatinumCount uint32 `json:"platinum_count"` // 白金数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金数量
//ReportTime string `json:"report_time" gorm:"index"` // 业绩时间
Date string `json:"date" gorm:"index"` // 业绩时间
DeductAmount uint32 `json:"deduct_amount"` // 店员提成
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` // 合作商id
CooperativeName string `json:"cooperative_name"` // 合作商名称
@ -921,6 +922,9 @@ func (m *InviteMemberReportListReq) List() ([]InviteMemberReport, int, error) {
func GetUserMap(ids []uint32) (map[uint32]*User, error) {
userMap := make(map[uint32]*User, 0)
if len(ids) == 0 {
return userMap, nil
}
var users []User
err := NewUserQuerySet(DB).UidIn(ids...).All(&users)
if err != nil {

View File

@ -88,7 +88,7 @@ func ConfigAppRouter(r gin.IRouter) {
user.POST("member_config", controller.MemberConfigList) // 开通会员配置
user.POST("attendance", controller.UserAttendance) // 签到
user.POST("attendance/detail", controller.UserAttendanceDetail) // 签到详情
user.POST("invite_report", controller.InviteMemberReportList) // 用户邀请会员业绩报表
//user.POST("invite_report", controller.InviteMemberReportList) // 用户邀请会员业绩报表
user.POST("common_problem/list", controller.CommonProblemList) // 常见问题列表
//user.POST("service/wechat_id", controller.GetCustomerServiceWechatId) // 获取客服微信号
@ -100,6 +100,7 @@ func ConfigAppRouter(r gin.IRouter) {
{
store.POST("list", controller.StoreList) // 门店列表
store.POST("info", controller.StoreInfo) // 门店详情
//store.POST("display_list", controller.DisplayStoreList) // 用户门店列表
}
address := api.Group("user/address")
@ -226,6 +227,9 @@ func ConfigAppRouter(r gin.IRouter) {
cooperative.POST("goods_stock/goods_list", controller.CooperativeGameCardGoodsList) // 卡列表
cooperative.POST("member_promotion/assistant_list", controller.AssistantMemberPromotionList) // 店员推广 TODO
cooperative.POST("display_list", controller.DisplayStoreList) // 用户门店列表
cooperative.POST("invite_report", controller.InviteMemberReportList) // 用户邀请会员业绩报表
cooperative.POST("/cannibalize_task/create", controller.CooperativeCannibalizeTaskCreate) // 创建调拨
cooperative.POST("/cannibalize_task/import_goods", controller.CooperativeCannibalizeTaskImportGoods) //
cooperative.POST("/cannibalize_task/deliver_goods", controller.CooperativeCannibalizeTaskDeliverGoods) //