fix:问题反馈
This commit is contained in:
parent
30fca5a0a4
commit
dcac87d0e2
|
@ -383,15 +383,16 @@ func ShareCardRetrieveCreate(c *gin.Context) {
|
|||
RespJson(c, status.ShareCardRetrieveExistAppliedCard, nil)
|
||||
return
|
||||
}
|
||||
req.Amount = 40 // TODO 测试数据
|
||||
//req.Amount = 40 // TODO 测试数据
|
||||
retrieve, err := req.RetrieveCreate()
|
||||
if err != nil {
|
||||
logger.Error("share card retrieve create err:", err)
|
||||
if err.Error() == "before_6_month" {
|
||||
RespJson(c, status.CardRetrieveBefore6Month, nil)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
if req.RetrieveCardType == 1 {
|
||||
|
@ -624,6 +625,8 @@ func CardIssueCreate(c *gin.Context) {
|
|||
ObtainType string `json:"obtain_type"` // 卡类型
|
||||
Problem string `json:"problem"` // 问题
|
||||
Remark string `json:"remark"`
|
||||
TransportType uint32 `json:"transport_type"` // 1-送卡到门店 2-邮寄
|
||||
UserAddressId uint32 `json:"user_address_id"` // 用户地址
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
|
@ -635,7 +638,18 @@ func CardIssueCreate(c *gin.Context) {
|
|||
RespJson(c, status.Unauthorized, nil)
|
||||
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
|
||||
if req.ObtainType == "retrieve_card" {
|
||||
var shareCardRetrieveCard model.ShareCardRetrieveCard
|
||||
|
@ -667,6 +681,8 @@ func CardIssueCreate(c *gin.Context) {
|
|||
Problem: req.Problem,
|
||||
Remark: req.Remark,
|
||||
State: model.CardIssueStateFollowing,
|
||||
TransportType: req.TransportType,
|
||||
UserAddressId: req.UserAddressId,
|
||||
}
|
||||
} else if req.ObtainType == "rent_card" {
|
||||
var orderCard model.OrderCard
|
||||
|
@ -692,13 +708,21 @@ func CardIssueCreate(c *gin.Context) {
|
|||
Problem: req.Problem,
|
||||
Remark: req.Remark,
|
||||
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 {
|
||||
logger.Error("obtain type err:")
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
err := model.DB.Create(feedback).Error
|
||||
err = model.DB.Create(feedback).Error
|
||||
if err != nil {
|
||||
logger.Error("create feedback err:")
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
@ -742,7 +766,15 @@ func CardIssueCancel(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
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)
|
||||
return
|
||||
}
|
||||
|
@ -759,6 +791,9 @@ func CardIssueList(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
//uc := &auth.UserClaims{
|
||||
// Uid: 49393347,
|
||||
//}
|
||||
if uc == nil {
|
||||
logger.Error("user err")
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
|
@ -783,7 +818,7 @@ func CardIssueList(c *gin.Context) {
|
|||
if req.PageSize == 0 {
|
||||
req.PageSize = 10
|
||||
}
|
||||
totalPage := count / req.PageSize
|
||||
totalPage := count/req.PageSize + 1
|
||||
|
||||
err = qs.OrderDescByID().Offset(page * req.PageSize).Limit(req.PageSize).All(&issueFeedbacks)
|
||||
if err != nil && err != model.RecordNotFound {
|
||||
|
@ -833,8 +868,16 @@ func CardIssueInfo(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
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.GameCard = &gameCard
|
||||
issueFeedback.UserAddress = &userAddress
|
||||
|
||||
RespOK(c, issueFeedback)
|
||||
return
|
||||
|
@ -855,7 +898,7 @@ func CardIssueDeliver(c *gin.Context) {
|
|||
//var issueFeedback model.CardIssueFeedback
|
||||
_, err := model.NewCardIssueFeedbackQuerySet(model.DB).IDEq(req.CardIssueFeedbackId).GetUpdater().
|
||||
SetExpressCompany(req.ExpressCompany).SetExpressCompanyNo(req.ExpressCompanyNo).
|
||||
SetDeliverExpressNo(req.ExpressNo).UpdateNum()
|
||||
SetExpressNo(req.ExpressNo).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("card issue feedback err")
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
|
|
@ -97,6 +97,7 @@ const (
|
|||
ShareCardRetrieveExistAppliedCard = 500513 // 共享单状态不能取消
|
||||
IssueFeedbackReceiptTimeOver48Hour = 500514 // 问题反馈 超过 48小时
|
||||
CardRetrieveBefore6Month = 500515 // 用户收回卡需要半年后
|
||||
IssueFeedbackRepetition = 500516 // 问题反馈已存在,不能重复反馈
|
||||
|
||||
GoodsNotSale = 500508 // 商品已下架
|
||||
|
||||
|
@ -226,6 +227,7 @@ var statusMsg = map[int]string{
|
|||
ShareCardRetrieveExistAppliedCard: "存在重复申请收回的卡",
|
||||
IssueFeedbackReceiptTimeOver48Hour: "签收后已超过48小时",
|
||||
CardRetrieveBefore6Month: "收回的卡需共享满半年",
|
||||
IssueFeedbackRepetition: "改卡反馈已存在,不能重复反馈",
|
||||
PayStateIng: "支付中",
|
||||
PayStateFail: "支付失败",
|
||||
MoneySufficient: "余额不足",
|
||||
|
|
|
@ -1115,6 +1115,62 @@ func (qs OrderCardQuerySet) IDNotIn(ID ...uint32) OrderCardQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs OrderCardQuerySet) Limit(limit int) OrderCardQuerySet {
|
||||
|
@ -1181,6 +1237,12 @@ func (qs OrderCardQuerySet) OrderAscByID() OrderCardQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs OrderCardQuerySet) OrderAscByOrderId() OrderCardQuerySet {
|
||||
|
@ -1307,6 +1369,12 @@ func (qs OrderCardQuerySet) OrderDescByID() OrderCardQuerySet {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (qs OrderCardQuerySet) OrderDescByOrderId() OrderCardQuerySet {
|
||||
|
@ -2157,6 +2225,13 @@ func (u OrderCardUpdater) SetID(ID uint32) OrderCardUpdater {
|
|||
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
|
||||
// nolint: dupl
|
||||
func (u OrderCardUpdater) SetOrderId(orderId uint32) OrderCardUpdater {
|
||||
|
@ -2297,6 +2372,7 @@ var OrderCardDBSchema = struct {
|
|||
RevertExpressCompanyNo OrderCardDBSchemaField
|
||||
RevertExpressNo OrderCardDBSchemaField
|
||||
RevertExpressDuration OrderCardDBSchemaField
|
||||
IssueType OrderCardDBSchemaField
|
||||
}{
|
||||
|
||||
ID: OrderCardDBSchemaField("id"),
|
||||
|
@ -2320,6 +2396,7 @@ var OrderCardDBSchema = struct {
|
|||
RevertExpressCompanyNo: OrderCardDBSchemaField("revert_express_company_no"),
|
||||
RevertExpressNo: OrderCardDBSchemaField("revert_express_no"),
|
||||
RevertExpressDuration: OrderCardDBSchemaField("revert_express_duration"),
|
||||
IssueType: OrderCardDBSchemaField("issue_type"),
|
||||
}
|
||||
|
||||
// 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_no": o.RevertExpressNo,
|
||||
"revert_express_duration": o.RevertExpressDuration,
|
||||
"issue_type": o.IssueType,
|
||||
}
|
||||
u := map[string]interface{}{}
|
||||
for _, f := range fields {
|
||||
|
|
|
@ -105,6 +105,7 @@ func InitTestDB() {
|
|||
&UserRentCard{},
|
||||
&UserConsumeRecord{},
|
||||
&UserMemberExpireDelay{},
|
||||
|
||||
&UserShareCardBill{},
|
||||
&ShareCardBillGame{},
|
||||
&UserShareCard{},
|
||||
|
@ -155,6 +156,18 @@ func InitDBProd() {
|
|||
DBProd.AutoMigrate(
|
||||
&RedeemCode{},
|
||||
&UserRedeemCode{},
|
||||
|
||||
&UserShareCardBill{},
|
||||
&ShareCardBillGame{},
|
||||
&UserShareCard{},
|
||||
&ShareCardVmRecord{},
|
||||
&UserShareCardVm{},
|
||||
&ShareCardDateVm{},
|
||||
&ShareCardGameVm{},
|
||||
&ShareCardRetrieve{},
|
||||
&ShareCardRetrieveCard{},
|
||||
&GameCardLabel{},
|
||||
&CardIssueFeedback{},
|
||||
)
|
||||
|
||||
if err := DBProd.DB().Ping(); err != nil {
|
||||
|
@ -164,6 +177,10 @@ func InitDBProd() {
|
|||
fmt.Println("DB init success")
|
||||
}
|
||||
|
||||
func TestInitProdDBModel(t *testing.T) {
|
||||
InitDBProd()
|
||||
}
|
||||
|
||||
func TestHotSearch_TableName(t *testing.T) {
|
||||
InitTestDB()
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ type OrderCard struct {
|
|||
RevertExpressNo string `json:"revert_express_no"` // 归还物流单号
|
||||
RevertExpressDuration uint64 `json:"revert_express_duration"` // 归还物流时长
|
||||
//Status uint8 `json:"status" gorm:"index"` // 1-待领取 2-游玩中 3-已归还 4-未领取
|
||||
|
||||
IssueType uint32 `json:"issue_type"` // 问题类型: 1-问题反馈 2-正常
|
||||
Postage uint32 `json:"postage" gorm:"-"` // 邮费
|
||||
ExpressCompany string `json:"express_company" gorm:"-"` // 物流公司
|
||||
ExpressCompanyNo string `json:"express_company_no" gorm:"-"` // 物流公司编号
|
||||
|
@ -97,6 +97,7 @@ type OrderCard struct {
|
|||
GameName string `json:"name" gorm:"-"` // 名称
|
||||
GamePrice uint32 `json:"price" gorm:"-"` // 价格
|
||||
GameCoverImg string `json:"cover_img" gorm:"-"` // 封面
|
||||
IssueFeedbackStoreId uint32 `json:"issue_feedback_store_id" gorm:"-"` // 问题反馈门店
|
||||
Order *Order `json:"order" gorm:"-"` // 订单
|
||||
//PickupCode string `json:"pickup_code"` // 取货码
|
||||
}
|
||||
|
@ -134,35 +135,37 @@ func OrderCardListSetGameInfo(list []OrderCard) []OrderCard {
|
|||
return list
|
||||
}
|
||||
|
||||
fmt.Println("ids:", ids)
|
||||
cardMap, err := GameCardMap(ids)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return list
|
||||
}
|
||||
bytes, _ := json.Marshal(&cardMap)
|
||||
orderMapbytes, _ := json.Marshal(&orderMap)
|
||||
fmt.Println("cardMap:", string(bytes))
|
||||
fmt.Println("orderMap:", string(orderMapbytes))
|
||||
|
||||
//fmt.Println("ids:", ids)
|
||||
//NewCardIssueFeedbackQuerySet(DB).SerialNumberEq()
|
||||
//bytes, _ := json.Marshal(&cardMap)
|
||||
//orderMapbytes, _ := json.Marshal(&orderMap)
|
||||
//fmt.Println("cardMap:", string(bytes))
|
||||
//fmt.Println("orderMap:", string(orderMapbytes))
|
||||
for i, _ := range list {
|
||||
fmt.Println("list[i].GameCardId", list[i].GameCardId)
|
||||
fmt.Println("list[i].OrderId", list[i].OrderId)
|
||||
//fmt.Println("list[i].GameCardId", list[i].GameCardId)
|
||||
//fmt.Println("list[i].OrderId", list[i].OrderId)
|
||||
gameCard, ok1 := cardMap[list[i].GameCardId]
|
||||
order, ok2 := orderMap[list[i].OrderId]
|
||||
fmt.Printf("gameCard1:%#v \n", gameCard)
|
||||
//fmt.Printf("gameCard1:%#v \n", gameCard)
|
||||
if ok1 && ok2 {
|
||||
if order.CardStatus == 2 || order.CardStatus == 3 {
|
||||
order.CardStatus = 4
|
||||
}
|
||||
fmt.Printf("gameCard2:%#v \n", gameCard)
|
||||
//fmt.Printf("gameCard2:%#v \n", gameCard)
|
||||
list[i].GameName = gameCard.Name
|
||||
list[i].GameCoverImg = gameCard.CoverImg
|
||||
list[i].GamePrice = gameCard.Price
|
||||
list[i].Order = &order
|
||||
}
|
||||
}
|
||||
listbytes, _ := json.Marshal(&list)
|
||||
fmt.Println("listbytes:", string(listbytes))
|
||||
//listbytes, _ := json.Marshal(&list)
|
||||
//fmt.Println("listbytes:", string(listbytes))
|
||||
return list
|
||||
}
|
||||
|
||||
|
@ -292,9 +295,9 @@ func (m *Order) Revert() error {
|
|||
// logger.Error("order card status completed")
|
||||
// return errors.New("order card status completed")
|
||||
//}
|
||||
fmt.Println("GameCardGoodsId------:", m.GameCardGoodsId)
|
||||
fmt.Println("ID------:", m.ID)
|
||||
fmt.Println("OrderCardId------:", m.OrderCardId)
|
||||
//fmt.Println("GameCardGoodsId------:", m.GameCardGoodsId)
|
||||
//fmt.Println("ID------:", m.ID)
|
||||
//fmt.Println("OrderCardId------:", m.OrderCardId)
|
||||
err := NewOrderCardQuerySet(DB).IDEq(m.OrderCardId).One(&orderCard)
|
||||
//err := NewOrderCardQuerySet(DB).OrderIdEq(m.ID).GameCardGoodsIdEq(uint32(m.GameCardGoodsId)).One(&orderCard)
|
||||
if err != nil {
|
||||
|
@ -814,6 +817,7 @@ func (m *Order) CreatOrderCard(cards []CardInfo, storeId uint32, gdb *gorm.DB) e
|
|||
DeliveryType: m.DeliveryType,
|
||||
SerialNumber: "",
|
||||
PayStatus: m.PayStatus,
|
||||
IssueType: 2,
|
||||
}
|
||||
err := gdb.Create(orderCard).Error
|
||||
if err != nil {
|
||||
|
|
|
@ -258,6 +258,7 @@ type ShareCardRetrieveCard struct {
|
|||
const (
|
||||
CardIssueStateFollowing = "following" // 处理中
|
||||
CardIssueStateFollowed = "followed" // 已处理
|
||||
CardIssueStateInDeliver = "in_deliver" // 发货中
|
||||
CardIssueStateCompleted = "completed" // 已完成
|
||||
CardIssueStateCanceled = "canceled" // 已取消
|
||||
)
|
||||
|
@ -296,12 +297,15 @@ type CardIssueFeedback struct {
|
|||
CheckSysUid string `json:"check_sys_uid" gorm:"index"` // 检测店员账号用户id
|
||||
ReceiptTime time.Time `json:"receipt_time"` // 签收时间
|
||||
//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:"-"`
|
||||
GameCard *GameCard `json:"game_card" gorm:"-"`
|
||||
Store *Store `json:"store" gorm:"-"`
|
||||
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
|
||||
Order *Order `json:"order" gorm:"-"`
|
||||
UserAddress *UserAddress `json:"user_address" gorm:"-"`
|
||||
// card_issue_feedback
|
||||
}
|
||||
|
||||
|
@ -667,6 +671,7 @@ func (m *ShareCardRetrieveCreateReq) RetrieveCreate() (*ShareCardRetrieve, error
|
|||
//for i, _ := range userShareCards {
|
||||
// gameIds = append(gameIds, uint64(userShareCards[i].GameCardId))
|
||||
//}
|
||||
// TODO 共享卡半年收回
|
||||
for i, _ := range userShareCards {
|
||||
if userShareCards[i].CreatedAt.AddDate(0, 6, 0).After(time.Now()) {
|
||||
logger.Error("user share before 6 month")
|
||||
|
|
Loading…
Reference in New Issue
Block a user