fix:问题反馈

This commit is contained in:
li 2022-04-21 14:59:12 +08:00
parent 30fca5a0a4
commit dcac87d0e2
6 changed files with 184 additions and 35 deletions

View File

@ -383,15 +383,16 @@ func ShareCardRetrieveCreate(c *gin.Context) {
RespJson(c, status.ShareCardRetrieveExistAppliedCard, nil) RespJson(c, status.ShareCardRetrieveExistAppliedCard, nil)
return return
} }
req.Amount = 40 // TODO 测试数据 //req.Amount = 40 // TODO 测试数据
retrieve, err := req.RetrieveCreate() retrieve, err := req.RetrieveCreate()
if err != nil { if err != nil {
logger.Error("share card retrieve create err:", err) logger.Error("share card retrieve create err:", err)
if err.Error() == "before_6_month" { if err.Error() == "before_6_month" {
RespJson(c, status.CardRetrieveBefore6Month, nil) RespJson(c, status.CardRetrieveBefore6Month, nil)
return } else {
RespJson(c, status.InternalServerError, nil)
} }
RespJson(c, status.InternalServerError, nil)
return return
} }
if req.RetrieveCardType == 1 { if req.RetrieveCardType == 1 {
@ -620,10 +621,12 @@ func ShareCardRetrieveConfirm(c *gin.Context) {
func CardIssueCreate(c *gin.Context) { func CardIssueCreate(c *gin.Context) {
req := struct { req := struct {
RelevanceId uint32 `json:"relevance_id"` // 关联id RelevanceId uint32 `json:"relevance_id"` // 关联id
ObtainType string `json:"obtain_type"` // 卡类型 ObtainType string `json:"obtain_type"` // 卡类型
Problem string `json:"problem"` // 问题 Problem string `json:"problem"` // 问题
Remark string `json:"remark"` Remark string `json:"remark"`
TransportType uint32 `json:"transport_type"` // 1-送卡到门店 2-邮寄
UserAddressId uint32 `json:"user_address_id"` // 用户地址
}{} }{}
if c.ShouldBindJSON(&req) != nil { if c.ShouldBindJSON(&req) != nil {
logger.Error("parameter err") logger.Error("parameter err")
@ -635,7 +638,18 @@ func CardIssueCreate(c *gin.Context) {
RespJson(c, status.Unauthorized, nil) RespJson(c, status.Unauthorized, nil)
return return
} }
count, err := model.NewCardIssueFeedbackQuerySet(model.DB).RelevanceIdEq(req.RelevanceId).
StateNe(model.CardIssueStateCanceled).Count()
if err != nil {
logger.Error("card issue feedback count err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
if count > 0 {
logger.Error("card issue feedback exist")
RespJson(c, status.IssueFeedbackRepetition, nil)
return
}
var feedback *model.CardIssueFeedback var feedback *model.CardIssueFeedback
if req.ObtainType == "retrieve_card" { if req.ObtainType == "retrieve_card" {
var shareCardRetrieveCard model.ShareCardRetrieveCard var shareCardRetrieveCard model.ShareCardRetrieveCard
@ -667,6 +681,8 @@ func CardIssueCreate(c *gin.Context) {
Problem: req.Problem, Problem: req.Problem,
Remark: req.Remark, Remark: req.Remark,
State: model.CardIssueStateFollowing, State: model.CardIssueStateFollowing,
TransportType: req.TransportType,
UserAddressId: req.UserAddressId,
} }
} else if req.ObtainType == "rent_card" { } else if req.ObtainType == "rent_card" {
var orderCard model.OrderCard var orderCard model.OrderCard
@ -692,13 +708,21 @@ func CardIssueCreate(c *gin.Context) {
Problem: req.Problem, Problem: req.Problem,
Remark: req.Remark, Remark: req.Remark,
State: model.CardIssueStateFollowing, State: model.CardIssueStateFollowing,
TransportType: req.TransportType,
UserAddressId: req.UserAddressId,
}
_, err = model.NewOrderCardQuerySet(model.DB).IDEq(req.RelevanceId).GetUpdater().SetIssueType(1).UpdateNum()
if err != nil {
logger.Error("order err:", err)
RespJson(c, status.InternalServerError, nil)
return
} }
} else { } else {
logger.Error("obtain type err:") logger.Error("obtain type err:")
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
return return
} }
err := model.DB.Create(feedback).Error err = model.DB.Create(feedback).Error
if err != nil { if err != nil {
logger.Error("create feedback err:") logger.Error("create feedback err:")
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
@ -742,7 +766,15 @@ func CardIssueCancel(c *gin.Context) {
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
return return
} }
if cardIssueFeedback.ObtainType == model.ObtainTypeRentCard {
_, err = model.NewOrderCardQuerySet(model.DB).IDEq(cardIssueFeedback.RelevanceId).GetUpdater().
SetIssueType(2).UpdateNum()
if err != nil {
logger.Error("order err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
}
RespOK(c, nil) RespOK(c, nil)
return return
} }
@ -759,6 +791,9 @@ func CardIssueList(c *gin.Context) {
return return
} }
uc := auth.GetCurrentUser(c) uc := auth.GetCurrentUser(c)
//uc := &auth.UserClaims{
// Uid: 49393347,
//}
if uc == nil { if uc == nil {
logger.Error("user err") logger.Error("user err")
RespJson(c, status.Unauthorized, nil) RespJson(c, status.Unauthorized, nil)
@ -783,7 +818,7 @@ func CardIssueList(c *gin.Context) {
if req.PageSize == 0 { if req.PageSize == 0 {
req.PageSize = 10 req.PageSize = 10
} }
totalPage := count / req.PageSize totalPage := count/req.PageSize + 1
err = qs.OrderDescByID().Offset(page * req.PageSize).Limit(req.PageSize).All(&issueFeedbacks) err = qs.OrderDescByID().Offset(page * req.PageSize).Limit(req.PageSize).All(&issueFeedbacks)
if err != nil && err != model.RecordNotFound { if err != nil && err != model.RecordNotFound {
@ -833,8 +868,16 @@ func CardIssueInfo(c *gin.Context) {
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
return return
} }
var userAddress model.UserAddress
err = model.NewUserAddressQuerySet(model.DB).IDEq(issueFeedback.UserAddressId).One(&userAddress)
if err != nil && err != model.RecordNotFound {
logger.Error("game card err")
RespJson(c, status.InternalServerError, nil)
return
}
issueFeedback.Store = &store issueFeedback.Store = &store
issueFeedback.GameCard = &gameCard issueFeedback.GameCard = &gameCard
issueFeedback.UserAddress = &userAddress
RespOK(c, issueFeedback) RespOK(c, issueFeedback)
return return
@ -855,7 +898,7 @@ func CardIssueDeliver(c *gin.Context) {
//var issueFeedback model.CardIssueFeedback //var issueFeedback model.CardIssueFeedback
_, err := model.NewCardIssueFeedbackQuerySet(model.DB).IDEq(req.CardIssueFeedbackId).GetUpdater(). _, err := model.NewCardIssueFeedbackQuerySet(model.DB).IDEq(req.CardIssueFeedbackId).GetUpdater().
SetExpressCompany(req.ExpressCompany).SetExpressCompanyNo(req.ExpressCompanyNo). SetExpressCompany(req.ExpressCompany).SetExpressCompanyNo(req.ExpressCompanyNo).
SetDeliverExpressNo(req.ExpressNo).UpdateNum() SetExpressNo(req.ExpressNo).UpdateNum()
if err != nil { if err != nil {
logger.Error("card issue feedback err") logger.Error("card issue feedback err")
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)

View File

@ -97,6 +97,7 @@ const (
ShareCardRetrieveExistAppliedCard = 500513 // 共享单状态不能取消 ShareCardRetrieveExistAppliedCard = 500513 // 共享单状态不能取消
IssueFeedbackReceiptTimeOver48Hour = 500514 // 问题反馈 超过 48小时 IssueFeedbackReceiptTimeOver48Hour = 500514 // 问题反馈 超过 48小时
CardRetrieveBefore6Month = 500515 // 用户收回卡需要半年后 CardRetrieveBefore6Month = 500515 // 用户收回卡需要半年后
IssueFeedbackRepetition = 500516 // 问题反馈已存在,不能重复反馈
GoodsNotSale = 500508 // 商品已下架 GoodsNotSale = 500508 // 商品已下架
@ -226,6 +227,7 @@ var statusMsg = map[int]string{
ShareCardRetrieveExistAppliedCard: "存在重复申请收回的卡", ShareCardRetrieveExistAppliedCard: "存在重复申请收回的卡",
IssueFeedbackReceiptTimeOver48Hour: "签收后已超过48小时", IssueFeedbackReceiptTimeOver48Hour: "签收后已超过48小时",
CardRetrieveBefore6Month: "收回的卡需共享满半年", CardRetrieveBefore6Month: "收回的卡需共享满半年",
IssueFeedbackRepetition: "改卡反馈已存在,不能重复反馈",
PayStateIng: "支付中", PayStateIng: "支付中",
PayStateFail: "支付失败", PayStateFail: "支付失败",
MoneySufficient: "余额不足", MoneySufficient: "余额不足",

View File

@ -1115,6 +1115,62 @@ func (qs OrderCardQuerySet) IDNotIn(ID ...uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("id NOT IN (?)", ID)) return qs.w(qs.db.Where("id NOT IN (?)", ID))
} }
// IssueTypeEq is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeEq(issueType uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("issue_type = ?", issueType))
}
// IssueTypeGt is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeGt(issueType uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("issue_type > ?", issueType))
}
// IssueTypeGte is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeGte(issueType uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("issue_type >= ?", issueType))
}
// IssueTypeIn is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeIn(issueType ...uint32) OrderCardQuerySet {
if len(issueType) == 0 {
qs.db.AddError(errors.New("must at least pass one issueType in IssueTypeIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("issue_type IN (?)", issueType))
}
// IssueTypeLt is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeLt(issueType uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("issue_type < ?", issueType))
}
// IssueTypeLte is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeLte(issueType uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("issue_type <= ?", issueType))
}
// IssueTypeNe is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeNe(issueType uint32) OrderCardQuerySet {
return qs.w(qs.db.Where("issue_type != ?", issueType))
}
// IssueTypeNotIn is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) IssueTypeNotIn(issueType ...uint32) OrderCardQuerySet {
if len(issueType) == 0 {
qs.db.AddError(errors.New("must at least pass one issueType in IssueTypeNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("issue_type NOT IN (?)", issueType))
}
// Limit is an autogenerated method // Limit is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs OrderCardQuerySet) Limit(limit int) OrderCardQuerySet { func (qs OrderCardQuerySet) Limit(limit int) OrderCardQuerySet {
@ -1181,6 +1237,12 @@ func (qs OrderCardQuerySet) OrderAscByID() OrderCardQuerySet {
return qs.w(qs.db.Order("id ASC")) return qs.w(qs.db.Order("id ASC"))
} }
// OrderAscByIssueType is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) OrderAscByIssueType() OrderCardQuerySet {
return qs.w(qs.db.Order("issue_type ASC"))
}
// OrderAscByOrderId is an autogenerated method // OrderAscByOrderId is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs OrderCardQuerySet) OrderAscByOrderId() OrderCardQuerySet { func (qs OrderCardQuerySet) OrderAscByOrderId() OrderCardQuerySet {
@ -1307,6 +1369,12 @@ func (qs OrderCardQuerySet) OrderDescByID() OrderCardQuerySet {
return qs.w(qs.db.Order("id DESC")) return qs.w(qs.db.Order("id DESC"))
} }
// OrderDescByIssueType is an autogenerated method
// nolint: dupl
func (qs OrderCardQuerySet) OrderDescByIssueType() OrderCardQuerySet {
return qs.w(qs.db.Order("issue_type DESC"))
}
// OrderDescByOrderId is an autogenerated method // OrderDescByOrderId is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs OrderCardQuerySet) OrderDescByOrderId() OrderCardQuerySet { func (qs OrderCardQuerySet) OrderDescByOrderId() OrderCardQuerySet {
@ -2157,6 +2225,13 @@ func (u OrderCardUpdater) SetID(ID uint32) OrderCardUpdater {
return u return u
} }
// SetIssueType is an autogenerated method
// nolint: dupl
func (u OrderCardUpdater) SetIssueType(issueType uint32) OrderCardUpdater {
u.fields[string(OrderCardDBSchema.IssueType)] = issueType
return u
}
// SetOrderId is an autogenerated method // SetOrderId is an autogenerated method
// nolint: dupl // nolint: dupl
func (u OrderCardUpdater) SetOrderId(orderId uint32) OrderCardUpdater { func (u OrderCardUpdater) SetOrderId(orderId uint32) OrderCardUpdater {
@ -2297,6 +2372,7 @@ var OrderCardDBSchema = struct {
RevertExpressCompanyNo OrderCardDBSchemaField RevertExpressCompanyNo OrderCardDBSchemaField
RevertExpressNo OrderCardDBSchemaField RevertExpressNo OrderCardDBSchemaField
RevertExpressDuration OrderCardDBSchemaField RevertExpressDuration OrderCardDBSchemaField
IssueType OrderCardDBSchemaField
}{ }{
ID: OrderCardDBSchemaField("id"), ID: OrderCardDBSchemaField("id"),
@ -2320,6 +2396,7 @@ var OrderCardDBSchema = struct {
RevertExpressCompanyNo: OrderCardDBSchemaField("revert_express_company_no"), RevertExpressCompanyNo: OrderCardDBSchemaField("revert_express_company_no"),
RevertExpressNo: OrderCardDBSchemaField("revert_express_no"), RevertExpressNo: OrderCardDBSchemaField("revert_express_no"),
RevertExpressDuration: OrderCardDBSchemaField("revert_express_duration"), RevertExpressDuration: OrderCardDBSchemaField("revert_express_duration"),
IssueType: OrderCardDBSchemaField("issue_type"),
} }
// Update updates OrderCard fields by primary key // Update updates OrderCard fields by primary key
@ -2347,6 +2424,7 @@ func (o *OrderCard) Update(db *gorm.DB, fields ...OrderCardDBSchemaField) error
"revert_express_company_no": o.RevertExpressCompanyNo, "revert_express_company_no": o.RevertExpressCompanyNo,
"revert_express_no": o.RevertExpressNo, "revert_express_no": o.RevertExpressNo,
"revert_express_duration": o.RevertExpressDuration, "revert_express_duration": o.RevertExpressDuration,
"issue_type": o.IssueType,
} }
u := map[string]interface{}{} u := map[string]interface{}{}
for _, f := range fields { for _, f := range fields {

View File

@ -105,6 +105,7 @@ func InitTestDB() {
&UserRentCard{}, &UserRentCard{},
&UserConsumeRecord{}, &UserConsumeRecord{},
&UserMemberExpireDelay{}, &UserMemberExpireDelay{},
&UserShareCardBill{}, &UserShareCardBill{},
&ShareCardBillGame{}, &ShareCardBillGame{},
&UserShareCard{}, &UserShareCard{},
@ -155,6 +156,18 @@ func InitDBProd() {
DBProd.AutoMigrate( DBProd.AutoMigrate(
&RedeemCode{}, &RedeemCode{},
&UserRedeemCode{}, &UserRedeemCode{},
&UserShareCardBill{},
&ShareCardBillGame{},
&UserShareCard{},
&ShareCardVmRecord{},
&UserShareCardVm{},
&ShareCardDateVm{},
&ShareCardGameVm{},
&ShareCardRetrieve{},
&ShareCardRetrieveCard{},
&GameCardLabel{},
&CardIssueFeedback{},
) )
if err := DBProd.DB().Ping(); err != nil { if err := DBProd.DB().Ping(); err != nil {
@ -164,6 +177,10 @@ func InitDBProd() {
fmt.Println("DB init success") fmt.Println("DB init success")
} }
func TestInitProdDBModel(t *testing.T) {
InitDBProd()
}
func TestHotSearch_TableName(t *testing.T) { func TestHotSearch_TableName(t *testing.T) {
InitTestDB() InitTestDB()

View File

@ -88,16 +88,17 @@ type OrderCard struct {
RevertExpressNo string `json:"revert_express_no"` // 归还物流单号 RevertExpressNo string `json:"revert_express_no"` // 归还物流单号
RevertExpressDuration uint64 `json:"revert_express_duration"` // 归还物流时长 RevertExpressDuration uint64 `json:"revert_express_duration"` // 归还物流时长
//Status uint8 `json:"status" gorm:"index"` // 1-待领取 2-游玩中 3-已归还 4-未领取 //Status uint8 `json:"status" gorm:"index"` // 1-待领取 2-游玩中 3-已归还 4-未领取
IssueType uint32 `json:"issue_type"` // 问题类型: 1-问题反馈 2-正常
Postage uint32 `json:"postage" gorm:"-"` // 邮费 Postage uint32 `json:"postage" gorm:"-"` // 邮费
ExpressCompany string `json:"express_company" gorm:"-"` // 物流公司 ExpressCompany string `json:"express_company" gorm:"-"` // 物流公司
ExpressCompanyNo string `json:"express_company_no" gorm:"-"` // 物流公司编号 ExpressCompanyNo string `json:"express_company_no" gorm:"-"` // 物流公司编号
ExpressNo string `json:"express_no" gorm:"-"` // 物流单号 ExpressNo string `json:"express_no" gorm:"-"` // 物流单号
GameName string `json:"name" gorm:"-"` // 名称 GameName string `json:"name" gorm:"-"` // 名称
GamePrice uint32 `json:"price" gorm:"-"` // 价格 GamePrice uint32 `json:"price" gorm:"-"` // 价格
GameCoverImg string `json:"cover_img" gorm:"-"` // 封面 GameCoverImg string `json:"cover_img" gorm:"-"` // 封面
Order *Order `json:"order" gorm:"-"` // 订单 IssueFeedbackStoreId uint32 `json:"issue_feedback_store_id" gorm:"-"` // 问题反馈门店
Order *Order `json:"order" gorm:"-"` // 订单
//PickupCode string `json:"pickup_code"` // 取货码 //PickupCode string `json:"pickup_code"` // 取货码
} }
@ -134,35 +135,37 @@ func OrderCardListSetGameInfo(list []OrderCard) []OrderCard {
return list return list
} }
fmt.Println("ids:", ids)
cardMap, err := GameCardMap(ids) cardMap, err := GameCardMap(ids)
if err != nil { if err != nil {
logger.Error("err:", err) logger.Error("err:", err)
return list return list
} }
bytes, _ := json.Marshal(&cardMap)
orderMapbytes, _ := json.Marshal(&orderMap) //fmt.Println("ids:", ids)
fmt.Println("cardMap:", string(bytes)) //NewCardIssueFeedbackQuerySet(DB).SerialNumberEq()
fmt.Println("orderMap:", string(orderMapbytes)) //bytes, _ := json.Marshal(&cardMap)
//orderMapbytes, _ := json.Marshal(&orderMap)
//fmt.Println("cardMap:", string(bytes))
//fmt.Println("orderMap:", string(orderMapbytes))
for i, _ := range list { for i, _ := range list {
fmt.Println("list[i].GameCardId", list[i].GameCardId) //fmt.Println("list[i].GameCardId", list[i].GameCardId)
fmt.Println("list[i].OrderId", list[i].OrderId) //fmt.Println("list[i].OrderId", list[i].OrderId)
gameCard, ok1 := cardMap[list[i].GameCardId] gameCard, ok1 := cardMap[list[i].GameCardId]
order, ok2 := orderMap[list[i].OrderId] order, ok2 := orderMap[list[i].OrderId]
fmt.Printf("gameCard1:%#v \n", gameCard) //fmt.Printf("gameCard1:%#v \n", gameCard)
if ok1 && ok2 { if ok1 && ok2 {
if order.CardStatus == 2 || order.CardStatus == 3 { if order.CardStatus == 2 || order.CardStatus == 3 {
order.CardStatus = 4 order.CardStatus = 4
} }
fmt.Printf("gameCard2:%#v \n", gameCard) //fmt.Printf("gameCard2:%#v \n", gameCard)
list[i].GameName = gameCard.Name list[i].GameName = gameCard.Name
list[i].GameCoverImg = gameCard.CoverImg list[i].GameCoverImg = gameCard.CoverImg
list[i].GamePrice = gameCard.Price list[i].GamePrice = gameCard.Price
list[i].Order = &order list[i].Order = &order
} }
} }
listbytes, _ := json.Marshal(&list) //listbytes, _ := json.Marshal(&list)
fmt.Println("listbytes:", string(listbytes)) //fmt.Println("listbytes:", string(listbytes))
return list return list
} }
@ -292,9 +295,9 @@ func (m *Order) Revert() error {
// logger.Error("order card status completed") // logger.Error("order card status completed")
// return errors.New("order card status completed") // return errors.New("order card status completed")
//} //}
fmt.Println("GameCardGoodsId------:", m.GameCardGoodsId) //fmt.Println("GameCardGoodsId------:", m.GameCardGoodsId)
fmt.Println("ID------:", m.ID) //fmt.Println("ID------:", m.ID)
fmt.Println("OrderCardId------:", m.OrderCardId) //fmt.Println("OrderCardId------:", m.OrderCardId)
err := NewOrderCardQuerySet(DB).IDEq(m.OrderCardId).One(&orderCard) err := NewOrderCardQuerySet(DB).IDEq(m.OrderCardId).One(&orderCard)
//err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).One(&orderCard) //err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).One(&orderCard)
if err != nil { if err != nil {
@ -814,6 +817,7 @@ func (m *Order) CreatOrderCard(cards []CardInfo, storeId uint32, gdb *gorm.DB) e
DeliveryType: m.DeliveryType, DeliveryType: m.DeliveryType,
SerialNumber: "", SerialNumber: "",
PayStatus: m.PayStatus, PayStatus: m.PayStatus,
IssueType: 2,
} }
err := gdb.Create(orderCard).Error err := gdb.Create(orderCard).Error
if err != nil { if err != nil {

View File

@ -256,10 +256,11 @@ type ShareCardRetrieveCard struct {
} }
const ( const (
CardIssueStateFollowing = "following" // 处理中 CardIssueStateFollowing = "following" // 处理中
CardIssueStateFollowed = "followed" // 已处理 CardIssueStateFollowed = "followed" // 已处理
CardIssueStateCompleted = "completed" // 已完成 CardIssueStateInDeliver = "in_deliver" // 发货中
CardIssueStateCanceled = "canceled" // 已取消 CardIssueStateCompleted = "completed" // 已完成
CardIssueStateCanceled = "canceled" // 已取消
) )
const ( const (
ObtainTypeRetrieveCard = "retrieve_card" // 收回卡 ObtainTypeRetrieveCard = "retrieve_card" // 收回卡
@ -296,12 +297,15 @@ type CardIssueFeedback struct {
CheckSysUid string `json:"check_sys_uid" gorm:"index"` // 检测店员账号用户id CheckSysUid string `json:"check_sys_uid" gorm:"index"` // 检测店员账号用户id
ReceiptTime time.Time `json:"receipt_time"` // 签收时间 ReceiptTime time.Time `json:"receipt_time"` // 签收时间
//CheckShopAssistant string `json:"check_shop_assistant" gorm:"index"` // 检测店员账号 //CheckShopAssistant string `json:"check_shop_assistant" gorm:"index"` // 检测店员账号
TransportType uint32 `json:"transport_type" gorm:"index"` // 1-送卡到门店 2-邮寄
UserAddressId uint32 `json:"user_address_id" gorm:"index"`
UserInfo *User `json:"user_info" gorm:"-"` UserInfo *User `json:"user_info" gorm:"-"`
GameCard *GameCard `json:"game_card" gorm:"-"` GameCard *GameCard `json:"game_card" gorm:"-"`
Store *Store `json:"store" gorm:"-"` Store *Store `json:"store" gorm:"-"`
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"` ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
Order *Order `json:"order" gorm:"-"` Order *Order `json:"order" gorm:"-"`
UserAddress *UserAddress `json:"user_address" gorm:"-"`
// card_issue_feedback // card_issue_feedback
} }
@ -667,6 +671,7 @@ func (m *ShareCardRetrieveCreateReq) RetrieveCreate() (*ShareCardRetrieve, error
//for i, _ := range userShareCards { //for i, _ := range userShareCards {
// gameIds = append(gameIds, uint64(userShareCards[i].GameCardId)) // gameIds = append(gameIds, uint64(userShareCards[i].GameCardId))
//} //}
// TODO 共享卡半年收回
for i, _ := range userShareCards { for i, _ := range userShareCards {
if userShareCards[i].CreatedAt.AddDate(0, 6, 0).After(time.Now()) { if userShareCards[i].CreatedAt.AddDate(0, 6, 0).After(time.Now()) {
logger.Error("user share before 6 month") logger.Error("user share before 6 month")