fix:
This commit is contained in:
parent
60d0bcb8b0
commit
bfdbe458d1
|
@ -76,8 +76,53 @@ func UserShareCardBillCreate(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
func ShareCardBillSendCard(c *gin.Context) {
|
||||
req := struct {
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id"`
|
||||
ExpressCompany string `json:"express_company"` // 物流公司
|
||||
ExpressNo string `json:"express_no"` // 物流单号
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
begin := model.DB.Begin()
|
||||
_, err := model.NewUserShareCardBillQuerySet(begin).IDEq(req.UserShareCardBillId).GetUpdater().
|
||||
SetExpressCompany(req.ExpressCompany).SetExpressNo(req.ExpressNo).SetState(model.ShareCardBillStateSentCard).UpdateNum()
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("update user share card bill err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
_, err = model.NewShareCardBillGameQuerySet(begin).UserShareCardBillIdEq(req.UserShareCardBillId).GetUpdater().
|
||||
SetState(model.ShareCardStateSentCard).UpdateNum()
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("update user share card bill err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
err = begin.Commit().Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("commit err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
RespOK(c, nil)
|
||||
return
|
||||
}
|
||||
|
||||
func UserShareCardBillList(c *gin.Context) {
|
||||
req := struct {
|
||||
State string `json:"state"`
|
||||
Page int `json:"cur_page"`
|
||||
PageSize int `json:"page_size"`
|
||||
}{}
|
||||
|
@ -91,7 +136,7 @@ func UserShareCardBillList(c *gin.Context) {
|
|||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
list, totalPage, err := model.GetUserShareCardBillList(uc.Uid, req.Page, req.PageSize)
|
||||
list, totalPage, err := model.GetUserShareCardBillList(uc.Uid, req.Page, req.PageSize, req.State)
|
||||
if err != nil {
|
||||
logger.Error("share card bill game create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
|
@ -106,3 +151,167 @@ func UserShareCardBillList(c *gin.Context) {
|
|||
RespOK(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
func UserShareCardBillInfo(c *gin.Context) {
|
||||
req := struct {
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id"`
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
cardBill, err := model.GetUserShareCardBill(uc.Uid, req.UserShareCardBillId)
|
||||
if err != nil {
|
||||
logger.Error("share card bill game err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
RespOK(c, cardBill)
|
||||
return
|
||||
}
|
||||
|
||||
func UserShareCardBillCancel(c *gin.Context) {
|
||||
req := struct {
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id"`
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
begin := model.DB.Begin()
|
||||
_, err := model.NewUserShareCardBillQuerySet(begin).IDEq(req.UserShareCardBillId).GetUpdater().
|
||||
SetState(model.ShareCardBillStateCancel).UpdateNum()
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("update user share card bill err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
_, err = model.NewShareCardBillGameQuerySet(begin).UserShareCardBillIdEq(req.UserShareCardBillId).GetUpdater().
|
||||
SetState(model.ShareCardStateCancel).UpdateNum()
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("update user share card bill err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
err = begin.Commit().Error
|
||||
if err != nil {
|
||||
begin.Rollback()
|
||||
logger.Error("commit err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
RespOK(c, nil)
|
||||
return
|
||||
}
|
||||
|
||||
func UserShareCardMyCard(c *gin.Context) {
|
||||
req := struct {
|
||||
State string `json:"state"`
|
||||
Page int `json:"cur_page"`
|
||||
PageSize int `json:"page_size"`
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
list, totalPage, err := model.GetUserShareCardMyCardList(uc.Uid, req.Page, req.PageSize, req.State)
|
||||
if err != nil {
|
||||
logger.Error("share card bill game create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
dateVm, err := model.GetUserShareCardDateVm(uc.Uid)
|
||||
if err != nil {
|
||||
logger.Error("get user share card date vm err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"yesterday_vm": dateVm.Vm,
|
||||
"total_vm": dateVm.TotalVm,
|
||||
"list": list,
|
||||
"cur_page": req.Page,
|
||||
"total_page": totalPage,
|
||||
}
|
||||
RespOK(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
func UserShareCardVmRecord(c *gin.Context) {
|
||||
req := struct {
|
||||
GameCardGoodsId uint32 `json:"game_card_goods_id"`
|
||||
Page int `json:"cur_page"`
|
||||
PageSize int `json:"page_size"`
|
||||
}{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
list, totalPage, err := model.GetUserShareCardVmList(uc.Uid, req.Page, req.PageSize, req.GameCardGoodsId)
|
||||
if err != nil {
|
||||
logger.Error("share card bill game create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"list": list,
|
||||
"cur_page": req.Page,
|
||||
"total_page": totalPage,
|
||||
}
|
||||
RespOK(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
func ShareCardRetrieveCreate(c *gin.Context) {
|
||||
req := model.ShareCardRetrieveCreateReq{}
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
err := req.RetrieveCreate()
|
||||
if err != nil {
|
||||
logger.Error("share card retrieve create err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
//ret := map[string]interface{}{
|
||||
// "list": list,
|
||||
// "cur_page": req.Page,
|
||||
// "total_page": totalPage,
|
||||
//}
|
||||
RespOK(c, nil)
|
||||
return
|
||||
}
|
||||
|
|
56
lib/utils/csttime.go
Normal file
56
lib/utils/csttime.go
Normal file
|
@ -0,0 +1,56 @@
|
|||
package utils
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
var cstZone = time.FixedZone("CST", 8*3600)
|
||||
|
||||
const (
|
||||
TimeFormat = "2006-01-02 15:04:05"
|
||||
DateFormat = "2006-01-02"
|
||||
)
|
||||
|
||||
func TodayZeroFormat() string {
|
||||
return TodayZero().Format(TimeFormat)
|
||||
}
|
||||
|
||||
func TodayZeroDateFormat() string {
|
||||
return TodayZero().Format(DateFormat)
|
||||
}
|
||||
|
||||
func ZeroDateFormat(days int) string {
|
||||
return TodayZeroAddDays(days).Format(DateFormat)
|
||||
}
|
||||
|
||||
func TodayZero() time.Time {
|
||||
t := time.Now()
|
||||
tm := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, cstZone)
|
||||
|
||||
//return time.Now().In(cstZone)
|
||||
return tm
|
||||
}
|
||||
|
||||
func TodayZeroAddDays(days int) time.Time {
|
||||
return TodayZero().AddDate(0, 0, days)
|
||||
}
|
||||
|
||||
func YesterdayZero() time.Time {
|
||||
return TodayZeroAddDays(-1)
|
||||
}
|
||||
|
||||
func Now() time.Time {
|
||||
return time.Now().In(cstZone)
|
||||
}
|
||||
|
||||
func TimeFormatDate(stamp int64) string {
|
||||
return time.Unix(stamp, 0).Format(DateFormat)
|
||||
}
|
||||
|
||||
func Yesterday() time.Time {
|
||||
return TodayAddDays(-1)
|
||||
}
|
||||
|
||||
func TodayAddDays(days int) time.Time {
|
||||
return Now().AddDate(0, 0, days)
|
||||
}
|
File diff suppressed because it is too large
Load Diff
BIN
model/goqueryset
BIN
model/goqueryset
Binary file not shown.
|
@ -107,6 +107,12 @@ func InitTestDB() {
|
|||
&UserMemberExpireDelay{},
|
||||
&UserShareCardBill{},
|
||||
&ShareCardBillGame{},
|
||||
&UserShareCard{},
|
||||
&ShareCardVmRecord{},
|
||||
&UserShareCardVm{},
|
||||
&ShareCardDateVm{},
|
||||
&ShareCardVmRecord{},
|
||||
//&GameShareCardVm{},
|
||||
)
|
||||
|
||||
fmt.Println("DB init success")
|
||||
|
|
|
@ -2,6 +2,7 @@ package model
|
|||
|
||||
import (
|
||||
"github.com/codinl/go-logger"
|
||||
"mh-server/lib/utils"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
@ -22,7 +23,7 @@ type UserShareCardBill struct {
|
|||
RetrieveTime time.Time `json:"retrieve_time"` // 收回卡时间 申请收回
|
||||
StockRemovalTime time.Time `json:"stock_removal_time"` // 出库时间
|
||||
Store Store `json:"store" gorm:"-"` // 门店
|
||||
|
||||
Remark string `json:"remark"`
|
||||
BillGames []ShareCardBillGame `json:"bill_games" gorm:"-"`
|
||||
}
|
||||
|
||||
|
@ -36,11 +37,13 @@ type ShareCardBillGame struct {
|
|||
Count uint32 `json:"count"`
|
||||
State string `json:"state" gorm:"index"`
|
||||
GameCard GameCard `json:"game_card" gorm:"-"` //
|
||||
ShareCards []UserShareCard `json:"share_cards" gorm:"-"`
|
||||
}
|
||||
|
||||
const (
|
||||
ShareCardBillStateInCheck = "in_check" // 待审核
|
||||
ShareCardBillStateInSendCard = "in_send_card" // 待递送卡
|
||||
ShareCardBillStateSentCard = "sent_card" // 已递送卡
|
||||
ShareCardBillStateCompleted = "completed" // 完成
|
||||
ShareCardBillStateCancel = "cancel" // 取消
|
||||
ShareCardBillStateAuditLose = "check_lose" // 审核失败
|
||||
|
@ -49,9 +52,11 @@ const (
|
|||
const (
|
||||
ShareCardStateInCheck = "in_check" // 待审核
|
||||
ShareCardStateInSendCard = "in_send_card" // 待递送卡
|
||||
ShareCardStateSentCard = "sent_card" // 已递送卡
|
||||
ShareCardStateSharing = "sharing" // 共享中
|
||||
ShareCardStateAuditLose = "check_lose" // 审核失败
|
||||
ShareCardStateCancel = "cancel" // 取消
|
||||
ShareCardStateRetrieve = "retrieve" // 收回
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
|
@ -65,6 +70,61 @@ type UserShareCard struct {
|
|||
GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"`
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
ShareCardBillGameId uint32 `json:"share_card_bill_game_id" gorm:"index"`
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
ProfitState uint32 `json:"profit_state"` // 1-未生效 2-生效
|
||||
TotalVm uint32 `json:"total_vm"` // 累计积分
|
||||
SerialNumberRetrieve string `json:"serial_number_retrieve" gorm:"index"` // 收卡编号
|
||||
GameCard GameCard `json:"game_card" gorm:"-"`
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
type ShareCardGameVm struct {
|
||||
Model
|
||||
GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
HoldCardCount uint32 `json:"hold_card_count"` //
|
||||
StockCardCount uint32 `json:"stock_card_count"` //
|
||||
TotalCardCount uint32 `json:"total_card_count"`
|
||||
CardProfit uint32 `json:"card_profit"`
|
||||
Vm uint32 `json:"vm"` // 发放积分
|
||||
ProvideVm uint32 `json:"provide_vm"` // 发放积分
|
||||
ProvideDate string `json:"provide_date" gorm:"index"`
|
||||
//share_card_game_vm
|
||||
}
|
||||
|
||||
// 用户卡积分记录
|
||||
// gen:qs
|
||||
type UserShareCardVm struct {
|
||||
Model
|
||||
ShareCardGameVmId uint32 `json:"share_card_game_vm_id" gorm:"index"`
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
SerialNumber string `json:"serial_number" gorm:"index"` // 编号
|
||||
BillSn string `json:"bill_sn" gorm:"index"`
|
||||
GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"`
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
CardProfit uint32 `json:"card_profit"`
|
||||
Vm uint32 `json:"vm"` // 发放积分
|
||||
ProvideDate string `json:"provide_date"`
|
||||
}
|
||||
|
||||
// 用户积分记录
|
||||
// gen:qs
|
||||
type ShareCardDateVm struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
Vm uint32 `json:"vm"` // 发放积分
|
||||
TotalVm uint32 `json:"total_vm"` // 用户累计获取积分
|
||||
ProvideDate string `json:"provide_date" gorm:"index"` // 收益日期
|
||||
}
|
||||
|
||||
// 总积分记录
|
||||
// gen:qs
|
||||
type ShareCardVmRecord struct {
|
||||
Model
|
||||
TotalVm uint32 `json:"total_vm"`
|
||||
ProvideVm uint32 `json:"provide_vm"` // 总发放积分
|
||||
ProvideDate string `json:"provide_date" gorm:"index"` // 发放收益时间
|
||||
//share_card_vm_record
|
||||
}
|
||||
|
||||
//type UserShareCardBillInfo struct {
|
||||
|
@ -72,7 +132,65 @@ type UserShareCard struct {
|
|||
// Count uint32 `json:"count"`
|
||||
//}
|
||||
|
||||
func GetUserShareCardBillList(uid uint32, page, pageSize int) ([]UserShareCardBill, int, error) {
|
||||
// 用户收回卡
|
||||
// gen:qs
|
||||
type ShareCardRetrieve struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
State string `json:"state" gorm:"index"` // 1-暂无库存 2-待发卡 3-待取卡 4-已发卡 5-已收卡 6-已取消
|
||||
RetrieveCardType uint32 `json:"retrieve_card_type" gorm:"index"` // 1-送卡 2-邮寄
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
ExpressCompany string `json:"express_company"` // 物流公司
|
||||
ExpressCompanyNo string `json:"express_company_no"` // 物流公司编号
|
||||
ExpressNo string `json:"express_no"` // 物流单号
|
||||
StockRemovalTime time.Time `json:"stock_removal_time"` // 出库时间
|
||||
StockTime time.Time `json:"stock_time"` // 入库时间
|
||||
Remark string `json:"remark"`
|
||||
|
||||
Store Store `json:"store" gorm:"-"`
|
||||
|
||||
//TotalVm uint32 `json:"total_vm"` // 累计积分
|
||||
//ShareCardBillGameId uint32 `json:"share_card_bill_game_id" gorm:"index"`
|
||||
//GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"`
|
||||
//UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
//BillSn string `json:"bill_sn" gorm:"index"`
|
||||
//GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
//SerialNumber string `json:"serial_number" gorm:"index"` // 编号
|
||||
//GameCard GameCard `json:"game_card" gorm:"-"`
|
||||
}
|
||||
|
||||
const (
|
||||
RetrieveStateOutStock = "out_stock" // 暂无库存
|
||||
RetrieveStateInSendCard = "in_send_card" // 待发卡
|
||||
RetrieveStateInPickCard = "in_pick_card" // 待取卡
|
||||
RetrieveStateSentCard = "sent_card" // 已发卡
|
||||
RetrieveStateReceivedCard = "received_card" // 已收卡
|
||||
RetrieveStateCancel = "cancel" // 取消
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type ShareCardRetrieveCard struct {
|
||||
Model
|
||||
ShareCardRetrieveId uint32 `json:"share_card_retrieve_id" gorm:"index"`
|
||||
UserShareCardId uint32 `json:"user_share_card_id" gorm:"index"` // 用户共享卡收回
|
||||
Uid uint32 `json:"uid" gorm:"index"`
|
||||
SerialNumber string `json:"serial_number" gorm:"index"` // 编号
|
||||
State string `json:"state" gorm:"index"` // 1-暂无库存 2-待发卡 3-待取卡 4-已发卡 5-已收卡 6-已取消
|
||||
BillSn string `json:"bill_sn" gorm:"index"`
|
||||
GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
RetrieveCardType uint32 `json:"retrieve_card_type" gorm:"index"` // 1-送卡 2-邮寄
|
||||
GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"`
|
||||
UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
Remark string `json:"remark"`
|
||||
GameCard GameCard `json:"game_card" gorm:"-"`
|
||||
Store Store `json:"store" gorm:"-"`
|
||||
|
||||
//TotalVm uint32 `json:"total_vm"` // 累计积分
|
||||
//ShareCardBillGameId uint32 `json:"share_card_bill_game_id" gorm:"index"`
|
||||
}
|
||||
|
||||
func GetUserShareCardBillList(uid uint32, page, pageSize int, state string) ([]UserShareCardBill, int, error) {
|
||||
page = page - 1
|
||||
if page < 0 {
|
||||
page = 0
|
||||
|
@ -82,7 +200,9 @@ func GetUserShareCardBillList(uid uint32, page, pageSize int) ([]UserShareCardBi
|
|||
}
|
||||
var shareCardBills []UserShareCardBill
|
||||
qs := NewUserShareCardBillQuerySet(DB).UidEq(uid)
|
||||
|
||||
if state != "" {
|
||||
qs = qs.StateEq(state)
|
||||
}
|
||||
count, err := qs.Count()
|
||||
if err != nil {
|
||||
logger.Error("user share card bill count err:", err)
|
||||
|
@ -101,6 +221,33 @@ func GetUserShareCardBillList(uid uint32, page, pageSize int) ([]UserShareCardBi
|
|||
return shareCardBills, totalPage, nil
|
||||
}
|
||||
|
||||
func GetUserShareCardBill(uid uint32, billId uint32) (UserShareCardBill, error) {
|
||||
var shareCardBill UserShareCardBill
|
||||
err := NewUserShareCardBillQuerySet(DB).IDEq(billId).One(&shareCardBill)
|
||||
if err != nil {
|
||||
logger.Error("user share card bill err:", err)
|
||||
return shareCardBill, err
|
||||
}
|
||||
|
||||
var store Store
|
||||
err = NewStoreQuerySet(DB).IDEq(shareCardBill.StoreId).One(&store)
|
||||
if err != nil {
|
||||
logger.Error("store err:", err)
|
||||
return shareCardBill, err
|
||||
}
|
||||
shareCardBill.Store = store
|
||||
list := []UserShareCardBill{shareCardBill}
|
||||
list = UserShareCardBillListSetGame(list)
|
||||
if len(list) == 0 {
|
||||
return shareCardBill, nil
|
||||
}
|
||||
err = list[0].SetShareCard()
|
||||
if err != nil {
|
||||
logger.Error("set share card err:", err)
|
||||
return shareCardBill, err
|
||||
}
|
||||
return list[0], nil
|
||||
}
|
||||
func UserShareCardBillListSetGame(list []UserShareCardBill) []UserShareCardBill {
|
||||
billIds := make([]uint32, 0, len(list))
|
||||
for i, _ := range list {
|
||||
|
@ -146,3 +293,241 @@ func UserShareCardBillListSetGame(list []UserShareCardBill) []UserShareCardBill
|
|||
|
||||
return list
|
||||
}
|
||||
|
||||
func (m *UserShareCardBill) SetShareCard() error {
|
||||
var userShareCards []UserShareCard
|
||||
err := NewUserShareCardQuerySet(DB).UserShareCardBillIdEq(m.ID).All(&userShareCards)
|
||||
if err != nil {
|
||||
logger.Error("user share card err:", err)
|
||||
return err
|
||||
}
|
||||
shareCardMap := make(map[uint32][]UserShareCard, 0)
|
||||
for i, _ := range userShareCards {
|
||||
shareCardMap[userShareCards[i].GameCardId] = append(shareCardMap[userShareCards[i].GameCardId], userShareCards[i])
|
||||
}
|
||||
if len(m.BillGames) == 0 {
|
||||
logger.Error("bill games is nil")
|
||||
return nil
|
||||
}
|
||||
for i, _ := range m.BillGames {
|
||||
v, ok := shareCardMap[m.BillGames[i].GameCardId]
|
||||
if ok {
|
||||
m.BillGames[i].ShareCards = v
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetUserShareCardMyCardList(uid uint32, page, pageSize int, state string) ([]UserShareCard, int, error) {
|
||||
page = page - 1
|
||||
if page < 0 {
|
||||
page = 0
|
||||
}
|
||||
if pageSize == 0 {
|
||||
pageSize = 10
|
||||
}
|
||||
states := []string{state}
|
||||
if state == "" {
|
||||
states = []string{ShareCardStateInCheck, ShareCardStateSharing, ShareCardStateRetrieve}
|
||||
}
|
||||
var shareCards []UserShareCard
|
||||
qs := NewUserShareCardQuerySet(DB).UidEq(uid).StateIn(states...)
|
||||
|
||||
count, err := qs.Count()
|
||||
if err != nil {
|
||||
logger.Error("user share card bill count err:", err)
|
||||
return shareCards, 0, err
|
||||
}
|
||||
totalPage := count/pageSize + 1
|
||||
err = qs.OrderDescByID().Offset(page * pageSize).Limit(pageSize).All(&shareCards)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("user share card bill err:", err)
|
||||
return shareCards, 0, err
|
||||
}
|
||||
if len(shareCards) == 0 {
|
||||
return shareCards, 0, nil
|
||||
}
|
||||
shareCards = UserShareCardListSetGame(shareCards)
|
||||
return shareCards, totalPage, nil
|
||||
}
|
||||
|
||||
func UserShareCardListSetGame(list []UserShareCard) []UserShareCard {
|
||||
gameIds := make([]uint32, 0, len(list))
|
||||
for i, _ := range list {
|
||||
gameIds = append(gameIds, list[i].GameCardId)
|
||||
}
|
||||
cardMap, err := GameCardMap(gameIds)
|
||||
if err != nil {
|
||||
logger.Error("game card map err:", err)
|
||||
return list
|
||||
}
|
||||
for i, _ := range list {
|
||||
v, ok := cardMap[list[i].GameCardId]
|
||||
if ok {
|
||||
list[i].GameCard = v
|
||||
}
|
||||
}
|
||||
|
||||
return list
|
||||
}
|
||||
|
||||
func GetUserShareCardVmList(uid uint32, page, pageSize int, goodsId uint32) ([]UserShareCardVm, int, error) {
|
||||
page = page - 1
|
||||
if page < 0 {
|
||||
page = 0
|
||||
}
|
||||
if pageSize == 0 {
|
||||
pageSize = 10
|
||||
}
|
||||
|
||||
var shareCardVms []UserShareCardVm
|
||||
qs := NewUserShareCardVmQuerySet(DB).UidEq(uid).GameCardGoodsIdEq(goodsId)
|
||||
|
||||
count, err := qs.Count()
|
||||
if err != nil {
|
||||
logger.Error("user share card bill count err:", err)
|
||||
return shareCardVms, 0, err
|
||||
}
|
||||
totalPage := count/pageSize + 1
|
||||
err = qs.OrderDescByID().Offset(page * pageSize).Limit(pageSize).All(&shareCardVms)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("user share card bill err:", err)
|
||||
return shareCardVms, 0, err
|
||||
}
|
||||
//if len(shareCardVms) == 0 {
|
||||
// return shareCardVms, 0, nil
|
||||
//}
|
||||
//shareCards = UserShareCardListSetGame(shareCards)
|
||||
return shareCardVms, totalPage, nil
|
||||
}
|
||||
|
||||
func GetUserShareCardDateVm(uid uint32) (ShareCardDateVm, error) {
|
||||
var cardDateVm ShareCardDateVm
|
||||
err := NewShareCardDateVmQuerySet(DB).UidEq(uid).ProvideDateEq(utils.ZeroDateFormat(-1)).One(&cardDateVm)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("share card date vm err:", err)
|
||||
}
|
||||
|
||||
return cardDateVm, nil
|
||||
}
|
||||
|
||||
type ShareCardRetrieveCreateReq struct {
|
||||
SerialNumbers []string `json:"serial_numbers"`
|
||||
StoreId uint32 `json:"store_id"` // 门店id
|
||||
RetrieveCardType uint32 `json:"retrieve_card_type"`
|
||||
Uid uint32 `json:"uid"`
|
||||
}
|
||||
|
||||
func (m *ShareCardRetrieveCreateReq) RetrieveCreate() error {
|
||||
var userShareCards []UserShareCard
|
||||
err := NewUserShareCardQuerySet(DB).SerialNumberIn(m.SerialNumbers...).All(&userShareCards)
|
||||
if err != nil {
|
||||
logger.Error("user share card err:", err)
|
||||
return err
|
||||
}
|
||||
gameIds := make([]uint64, 0)
|
||||
for i, _ := range userShareCards {
|
||||
gameIds = append(gameIds, uint64(userShareCards[i].GameCardId))
|
||||
}
|
||||
//var gameCardGoodsStocks []GameCardGoodsStock
|
||||
//err = NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(m.StoreId)).GameCardIdIn(gameIds...).All(&gameCardGoodsStocks)
|
||||
//if err != nil {
|
||||
// logger.Error("game card goods stock err:", err)
|
||||
// return err
|
||||
//}
|
||||
var gameGoods []GameCardGoods
|
||||
err = NewGameCardGoodsQuerySet(DB).GameCardIdIn(gameIds...).StatusEq(1).OrderAscByID().All(&gameGoods)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("game card goods err:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//state := RetrieveStateInSendCard
|
||||
//for i, _ := range gameGoods {
|
||||
// if gameGoods[i].Status == {
|
||||
// }
|
||||
//}
|
||||
|
||||
begin := DB.Begin()
|
||||
retrieve := &ShareCardRetrieve{
|
||||
Uid: m.Uid,
|
||||
RetrieveCardType: m.RetrieveCardType,
|
||||
StoreId: m.StoreId,
|
||||
}
|
||||
err = begin.Create(&retrieve).Error
|
||||
if err != nil {
|
||||
logger.Error("create share card retrieve err:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for i, _ := range userShareCards {
|
||||
ShareCardRetrieveCard{
|
||||
ShareCardRetrieveId: retrieve.ID,
|
||||
UserShareCardId: userShareCards[i].ID,
|
||||
Uid: m.Uid,
|
||||
SerialNumber: userShareCards[i].SerialNumber,
|
||||
State: "",
|
||||
BillSn: "",
|
||||
GameCardId: 0,
|
||||
RetrieveCardType: 0,
|
||||
GameCardGoodsId: 0,
|
||||
UserShareCardBillId: 0,
|
||||
StoreId: 0,
|
||||
Remark: "",
|
||||
GameCard: GameCard{},
|
||||
Store: Store{},
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetUserCardBySerialNumber(serialNumber string, list []GameCardGoods) (*GameCardGoods, bool) {
|
||||
for i, _ := range list {
|
||||
if list[i].SerialNumber == serialNumber {
|
||||
return &list[i], true
|
||||
}
|
||||
}
|
||||
return nil, false
|
||||
}
|
||||
|
||||
// 用户收回卡
|
||||
//// gen:qs
|
||||
//type ShareCardRetrieve struct {
|
||||
// Model
|
||||
// Uid uint32 `json:"uid" gorm:"index"`
|
||||
// State string `json:"state" gorm:"index"` // 1-暂无库存 2-待发卡 3-待取卡 4-已发卡 5-已收卡 6-已取消
|
||||
// RetrieveCardType uint32 `json:"retrieve_card_type" gorm:"index"` // 1-送卡 2-邮寄
|
||||
// StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
// ExpressCompany string `json:"express_company"` // 物流公司
|
||||
// ExpressCompanyNo string `json:"express_company_no"` // 物流公司编号
|
||||
// ExpressNo string `json:"express_no"` // 物流单号
|
||||
// StockRemovalTime time.Time `json:"stock_removal_time"` // 出库时间
|
||||
// StockTime time.Time `json:"stock_time"` // 入库时间
|
||||
// Remark string `json:"remark"`
|
||||
//
|
||||
// Store Store `json:"store" gorm:"-"`
|
||||
//}
|
||||
//
|
||||
//// gen:qs
|
||||
//type ShareCardRetrieveCard struct {
|
||||
// Model
|
||||
// ShareCardRetrieveId uint32 `json:"share_card_retrieve_id" gorm:"index"`
|
||||
// UserShareCardId uint32 `json:"user_share_card_id" gorm:"index"` // 用户共享卡收回
|
||||
// Uid uint32 `json:"uid" gorm:"index"`
|
||||
// SerialNumber string `json:"serial_number" gorm:"index"` // 编号
|
||||
// State string `json:"state" gorm:"index"` // 1-暂无库存 2-待发卡 3-待取卡 4-已发卡 5-已收卡 6-已取消
|
||||
// BillSn string `json:"bill_sn" gorm:"index"`
|
||||
// GameCardId uint32 `json:"game_card_id" gorm:"index"`
|
||||
// RetrieveCardType uint32 `json:"retrieve_card_type" gorm:"index"` // 1-送卡 2-邮寄
|
||||
// GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"`
|
||||
// UserShareCardBillId uint32 `json:"user_share_card_bill_id" gorm:"index"`
|
||||
// StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
|
||||
// Remark string `json:"remark"`
|
||||
// GameCard GameCard `json:"game_card" gorm:"-"`
|
||||
// Store Store `json:"store" gorm:"-"`
|
||||
//
|
||||
// //TotalVm uint32 `json:"total_vm"` // 累计积分
|
||||
// //ShareCardBillGameId uint32 `json:"share_card_bill_game_id" gorm:"index"`
|
||||
//}
|
||||
|
|
|
@ -187,8 +187,16 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
shareCard := api.Group("share_card")
|
||||
{
|
||||
shareCard.Use(auth.UserAccessAuth)
|
||||
shareCard.POST("bill/list", controller.UserShareCardBillList) // 详情
|
||||
shareCard.POST("bill/list", controller.UserShareCardBillList) // 共享单列表
|
||||
shareCard.POST("bill/add", controller.UserShareCardBillCreate) //
|
||||
shareCard.POST("bill/cancel", controller.UserShareCardBillCancel) //
|
||||
shareCard.POST("bill/send_card", controller.ShareCardBillSendCard) //
|
||||
shareCard.POST("bill/info", controller.UserShareCardBillInfo) // 共享单详情
|
||||
shareCard.POST("bill/my_card", controller.UserShareCardMyCard) // 我的共享卡
|
||||
shareCard.POST("user_card_vm", controller.UserShareCardVmRecord) // 我的共享卡积分记录
|
||||
|
||||
shareCard.POST("retrieve/add", controller.ShareCardRetrieveCreate) // 我的共享卡收回
|
||||
|
||||
//shoppingCart.POST("del", controller.ShoppingCartDel) //
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user