From 720ea2640e5fca4cf19b2350f2212bc85f48042b Mon Sep 17 00:00:00 2001 From: howell <2827207845@qq.com> Date: Wed, 16 Mar 2022 15:26:18 +0800 Subject: [PATCH] feat: vip end --- internal/v2/controller/app/vip/vip.go | 6 ++ internal/v2/controller/manage/jyy/vip.go | 36 ++++++++++ internal/v2/logic/manage/jyy/vip.go | 88 ++++++++++++++++++++++++ internal/v2/router/manage.go | 10 +++ 4 files changed, 140 insertions(+) create mode 100644 internal/v2/controller/manage/jyy/vip.go create mode 100644 internal/v2/logic/manage/jyy/vip.go diff --git a/internal/v2/controller/app/vip/vip.go b/internal/v2/controller/app/vip/vip.go index 601704a..a9a12dc 100644 --- a/internal/v2/controller/app/vip/vip.go +++ b/internal/v2/controller/app/vip/vip.go @@ -131,6 +131,12 @@ func (o Proxy) VipIsUsed(c *gin.Context) { if id == 0 { back.Fail(c, "用户不存在") } + var u1 user.Information + mysql.Db.First(&u1, "id = ?", id) + if u1.IsVip() { + back.Suc(c, "操作成功", gin.H{"is_used": true}) + return + } key2 := "user:actived:set" res := dbc.Rds.SIsMember(key2, id) back.Suc(c, "操作成功", gin.H{"is_used": res.Val()}) diff --git a/internal/v2/controller/manage/jyy/vip.go b/internal/v2/controller/manage/jyy/vip.go new file mode 100644 index 0000000..eac15e1 --- /dev/null +++ b/internal/v2/controller/manage/jyy/vip.go @@ -0,0 +1,36 @@ +package jyy + +import ( + "recook/internal/back" + "recook/internal/libs/bean" + "recook/internal/v2/logic/manage/jyy" + "recook/tools" + + "github.com/gin-gonic/gin" +) + +func (o Proxy) VipList(c *gin.Context) { + var args jyy.ArgsVipList + if err := tools.Params(&args, c); err != nil { + back.Fail(c, err.Error()) + return + } + data, total := jyy.Logic.VipList(args) + back.Suc(c, "ok", bean.ResultLists{ + Total: int(total), + List: data, + }) +} + +func (o Proxy) VipSummay(c *gin.Context) { + var args jyy.VipSummary + if err := tools.Params(&args, c); err != nil { + back.Fail(c, err.Error()) + return + } + data, total := jyy.Logic.VipSummay(args) + back.Suc(c, "ok", bean.ResultLists{ + Total: int(total), + List: data, + }) +} diff --git a/internal/v2/logic/manage/jyy/vip.go b/internal/v2/logic/manage/jyy/vip.go new file mode 100644 index 0000000..714bb10 --- /dev/null +++ b/internal/v2/logic/manage/jyy/vip.go @@ -0,0 +1,88 @@ +package jyy + +import ( + "fmt" + "recook/internal/libs/bean" + "recook/internal/model/user" + "time" + + "git.oa00.com/go/mysql" + "github.com/shopspring/decimal" +) + +type ArgsVipList struct { + bean.Page + Mobile string `json:"mobile"` + Level int `json:"level"` + Kind int `json:"kind"` + Start *time.Time `json:"start"` + End *time.Time `json:"end"` + ExpireStart *time.Time `json:"expire_start"` + ExpireEnd *time.Time `json:"expire_end"` + NickName string `json:"nickname"` + ShareID int `json:"share_id"` +} + +func (o logic) VipList(args ArgsVipList) (data []user.VipHistory, total int64) { + query := mysql.Db.Model(&user.VipHistory{}) + { + if args.Mobile != "" { + query = query.Where("mobile=?", args.Mobile) + } + if args.Level != 0 { + query = query.Where("level = ?", args.Level) + } + if args.Kind != 0 { + query = query.Where("kind = ?", args.Kind) + } + if args.Start != nil { + query = query.Where("start > ?", args.Start) + } + if args.End != nil { + query = query.Where("start < ?", args.End) + } + if args.ExpireStart != nil { + query = query.Where("end > ?", args.ExpireStart) + } + if args.ExpireEnd != nil { + query = query.Where("end < ?", args.ExpireEnd) + } + if args.NickName != "" { + query = query.Where("nickname like ?", fmt.Sprintf("%%%s%%", args.NickName)) + } + if args.ShareID != 0 { + query = query.Where("share_id = ?", args.ShareID) + } + } + query.Count(&total) + query.Limit(args.GetLimit()).Offset(args.GetStart()).Find(&data) + return +} + +type VipSummary struct { + bean.Page + Mobile string `json:"mobile"` + NickName string `json:"nickName"` +} + +type Summary struct { + UserID int `json:"user_id"` + Mobile string `json:"mobile"` + NickName string `json:"name"` + Count int `json:"count"` + Amount decimal.Decimal `json:"amount"` +} + +func (o logic) VipSummay(args VipSummary) (data []Summary, total int64) { + query := mysql.Db.Table("recook_order_info as a"). + Select("a.sharer_id as user_id, SUM(a.actual_total_amount) as amount, count(1) as count, b.nickname, b.mobile"). + Where("a.sharer_id <> a.user_id"). + Where("a.is_split = 1"). + Where("a.jcook_order_id = 0"). + Where("a.shama_order_id = 0"). + Group("a.sharer_id"). + Joins("JOIN recook_user_info as b on b.id = a.sharer_id") + query.Count(&total) + query.Limit(args.GetLimit()).Offset(args.GetStart()).Find(&data) + return +} diff --git a/internal/v2/router/manage.go b/internal/v2/router/manage.go index 8984ebf..cb09493 100644 --- a/internal/v2/router/manage.go +++ b/internal/v2/router/manage.go @@ -857,4 +857,14 @@ func routerManage(manageRouter *gin.RouterGroup) { } } } + { + vipRouter := manageRouter.Group("vip") + { + proxy := jyy.Proxy{} + { + vipRouter.POST("list", proxy.VipList) + vipRouter.POST("summary", proxy.VipSummay) + } + } + } }