diff --git a/api/proto/vas/proto/vas.go b/api/proto/vas/proto/vas.go index 3dd62c63..fb74b455 100644 --- a/api/proto/vas/proto/vas.go +++ b/api/proto/vas/proto/vas.go @@ -304,23 +304,13 @@ type IncomePageReq struct { base.BaseRequest } -type WeekDashboardSt struct { - Date string `json:"date"` // 日期 x轴 - Income int64 `json:"income"` // 收入 y轴 -} - -type IncomeFromDashboardSt struct { - Desc string `json:"desc"` // 描述 - Income int64 `json:"income"` // 收入 -} - type IncomePageData struct { - Diamonds int64 `json:"diamonds"` // 当前钻石 - WithdrawDiamonds int64 `json:"withdraw_diamonds"` // 待提现钻石 - TodayIncome int64 `json:"today_income"` // 今日收益钻石 - WaitDealIncome int64 `json:"wait_deal_income"` // 待结算钻石 - WeekDashboard []WeekDashboardSt `json:"week_dashboard"` // 周收益看板 - IncomeFromDashboard []IncomeFromDashboardSt `json:"income_from_dashboard"` // 收益来源看板 + Diamonds int64 `json:"diamonds"` // 当前钻石 + WithdrawDiamonds int64 `json:"withdraw_diamonds"` // 待提现钻石 + TodayIncome int64 `json:"today_income"` // 今日收益钻石 + WaitDealIncome int64 `json:"wait_deal_income"` // 待结算钻石 + WeekDashboard []dbstruct.WeekDashboardSt `json:"week_dashboard"` // 周收益看板 + IncomeFromDashboard []dbstruct.IncomeFromDashboardSt `json:"income_from_dashboard"` // 收益来源看板 } type IncomePageResp struct { diff --git a/app/mix/controller/init.go b/app/mix/controller/init.go index ce8f7e3e..8c6b7328 100644 --- a/app/mix/controller/init.go +++ b/app/mix/controller/init.go @@ -291,7 +291,7 @@ func Init(r *gin.Engine) { vasPayGroup.POST("deal_one_coin_order", middleware.JSONParamValidator(vasproto.DealOneCoinOrderReq{}), DealOneCoinOrder) vasPayGroup.POST("deal_one_order", middleware.JSONParamValidator(vasproto.DealOneOrderReq{}), DealOneOrder) vasPayGroup.POST("moment_order_list", middleware.JSONParamValidator(vasproto.ZoneMomentOrderListReq{}), ZoneMomentOrderList) - //vasPayGroup.POST("income_page", middleware.JSONParamValidator(vasproto.IncomePageReq{}), nil) + vasPayGroup.POST("income_page", middleware.JSONParamValidator(vasproto.IncomePageReq{}), IncomePage) extVasPayGroup := r.Group("/ext/vas") extVasPayGroup.POST("alipay_callback", AlipayCallback) diff --git a/app/mix/controller/vas.go b/app/mix/controller/vas.go index 683a2286..7bb14ca9 100644 --- a/app/mix/controller/vas.go +++ b/app/mix/controller/vas.go @@ -408,3 +408,18 @@ func RefundCoinOrder(ctx *gin.Context) { } ReplyOk(ctx, nil) } + +func IncomePage(ctx *gin.Context) { + req := ctx.MustGet("client_req").(*vasproto.IncomePageReq) + data, ec, err := service.DefaultService.VasIncomePage(ctx, req) + if ec != errcode.ErrCodeVasSrvOk { + logger.Error("RefundCoinOrder fail, req: %v, ec: %v", util.ToJson(req), ec) + if err != nil { + ReplyErrorMsg(ctx, err.Error()) + return + } + ReplyErrCodeMsg(ctx, ec) + return + } + ReplyOk(ctx, data) +} diff --git a/app/mix/dao/mongo.go b/app/mix/dao/mongo.go index 8373aa40..27edad59 100644 --- a/app/mix/dao/mongo.go +++ b/app/mix/dao/mongo.go @@ -80,6 +80,7 @@ const ( COLZoneVas = "zone_vas" COLZoneMomentPrice = "zone_moment_price" COLZoneMomentStat = "zone_moment_stat" + COLUserIncome = "user_income" DBCatalog = "catalog" COLCatalog = "catalog" @@ -240,6 +241,11 @@ func (m *Mongo) getColZoneMomentStat() *qmgo.Collection { return m.clientMix.Database(DBVas).Collection(COLZoneMomentStat) } +// 用户收入看板 +func (m *Mongo) getColUserIncome() *qmgo.Collection { + return m.clientMix.Database(DBVas).Collection(COLUserIncome) +} + // 订单操作记录 func (m *Mongo) getColOplogOrder(orderId string) *qmgo.Collection { orderIdInt64, _ := strconv.ParseInt(orderId[:13], 10, 64) diff --git a/app/mix/dao/mongo_vas.go b/app/mix/dao/mongo_vas.go index 67581eec..8df57ba9 100644 --- a/app/mix/dao/mongo_vas.go +++ b/app/mix/dao/mongo_vas.go @@ -263,3 +263,21 @@ func (m *Mongo) GetZoneMomentStatByIds(ctx *gin.Context, momentIds []int64) ([]* } return list, nil } + +// 获取收入看板 +func (m *Mongo) GetZoneUserIncome(ctx *gin.Context, mid int64) (*dbstruct.UserIncome, error) { + doc := new(dbstruct.UserIncome) + col := m.getColUserIncome() + query := qmgo.M{ + "_id": mid, + } + err := col.Find(ctx, query).One(&doc) + if err == qmgo.ErrNoSuchDocuments { + err = nil + return nil, nil + } + if err != nil { + return nil, err + } + return doc, nil +} diff --git a/app/mix/dao/mysql.go b/app/mix/dao/mysql.go index b7a88c6a..380c5cc3 100644 --- a/app/mix/dao/mysql.go +++ b/app/mix/dao/mysql.go @@ -1262,3 +1262,31 @@ func (m *Mysql) GetRefundRateGroupByMid(ctx *gin.Context, tx *sqlx.Tx) ([]*dbstr } return list, nil } + +// 获取今日收入 +func (m *Mysql) GetTodayIncome(ctx *gin.Context, tx *sqlx.Tx, mid int64) (int64, error) { + type S struct { + Income int64 `json:"income"` + } + var ( + err error + s = S{} + et = util.GetTodayZeroTime().Unix() + st = et - 86400 + ) + sqlStr := fmt.Sprintf("select sum(`change`) as income from %s where mid=? and ct>=? and ct