From 1ed84cffbd8973ca2b2ac09fe5a4e3db3f67c1bc Mon Sep 17 00:00:00 2001 From: lijikun Date: Tue, 3 Feb 2026 16:29:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=8E=E8=82=A1=E8=90=BD=E5=9C=B0=E9=A1=B5?= =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90,?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/cover.go | 17 +++++++++++---- api/v1/member.go | 44 ++++++++++++++++++++++++++++++++------- internal/cmd/cmd.go | 13 ++++++------ internal/controller/cover.go | 14 +++++++------ internal/controller/member.go | 6 +++++- internal/logic/cover/cover.go | 17 ++++++++------- internal/logic/member/member.go | 46 ++++++++++++++++++++++++++++++----------- internal/service/cover.go | 15 +++++++++++--- internal/service/member.go | 12 +++++++++-- 9 files changed, 135 insertions(+), 49 deletions(-) diff --git a/api/v1/cover.go b/api/v1/cover.go index 4923c0e..339a37c 100644 --- a/api/v1/cover.go +++ b/api/v1/cover.go @@ -1,10 +1,19 @@ package v1 -type GetCoverImageReq struct { +// GetConfigReq 获取配置信息 +type GetConfigReq struct { Id int `json:"id" v:"required"` } -type UpdateCoverImageReq struct { - Id int `json:"id" v:"required"` - Url string `json:"url" v:"required"` +// GetConfigRes 获取配置信息 +type GetConfigRes struct { + ImgUrl string `json:"img_url"` + Video string `json:"video"` +} + +// UpdateConfigReq 更新配置信息 +type UpdateConfigReq struct { + Id int `json:"id" v:"required"` + Url string `json:"url" v:"required"` + Video string `json:"video"` } diff --git a/api/v1/member.go b/api/v1/member.go index ef844b2..1207ebe 100644 --- a/api/v1/member.go +++ b/api/v1/member.go @@ -1,25 +1,55 @@ package v1 +import "github.com/gogf/gf/v2/os/gtime" + +// InsertMemberReq 用户注册 type InsertMemberReq struct { - Name string `json:"name" v:"required#姓名不可为空!"` - Code string `json:"code" v:"required#国家/地区代码不可为空!"` - Tel string `json:"tel" v:"required#电话号码不可为空!"` - Type int `json:"type"` - Url string `json:"url"` - WeChat string `json:"weChat" v:"required#微信ID不可为空!"` - Email string `json:"email" v:"required#邮箱号不可为空!"` + Name string `json:"name" v:"required#姓名不可为空!"` + Code string `json:"code"` + Tel string `json:"tel" v:"required#电话号码不可为空!"` + Type int `json:"type"` + Url string `json:"url"` + WeChat string `json:"weChat"` + Email string `json:"email" v:"required#邮箱号不可为空!"` + Source int `json:"source" d:"0" dc:"数据来源, 0:原数据,现赢在美股导流部分 1:现DeepChart导流部分"` + BenefitIntention string `json:"benefit_intention" v:"required#请选择您希望优先获取的权益!" dc:"用户选择的优先获取的权益意向 1:DeepChart 2:夺宝奇兵 3:专题课 用英文逗号分割,不要带空格"` + //WeChat string `json:"weChat" v:"required#微信ID不可为空!"` + //Code string `json:"code" v:"required#国家/地区代码不可为空!"` } +// GetMemberListReq 获取用户信息 type GetMemberListReq struct { + Source int `json:"source" d:"0" dc:"数据来源, 0:原数据,现赢在美股导流部分 1:现DeepChart导流部分"` Page int `p:"page" d:"1"` PageSize int `p:"page_size" d:"20"` } +// GetMemberListRes 获取用户信息 +type GetMemberListRes struct { + Id int `json:"id" orm:"id" description:"主键id"` + Name string `json:"name" orm:"name" description:"姓名"` + Code string `json:"code" orm:"code" description:"国家/地区代码"` + Telephone string `json:"telephone" orm:"telephone" description:"电话号码"` + Wechat string `json:"wechat" orm:"wechat" description:"微信ID"` + Email string `json:"email" orm:"email" description:"邮箱"` + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"添加时间"` + Type int `json:"type" orm:"type" description:"注册来源(0其他,1视频,2直播,3帖子)"` + Url string `json:"url" orm:"url" description:"来源地址"` + UrlMd5 string `json:"urlMd5" orm:"url_md5" description:"来源地址(MD5加密)"` + IsRelated int `json:"isRelated" orm:"is_related" description:"是否联系"` + Note string `json:"note" orm:"note" description:"备注"` + Source int `json:"source" orm:"source" description:"数据来源, 0:原数据,现赢在美股导流部分 1:现DeepChart导流部分"` + BenefitIntention string `json:"benefit_intention" orm:"benefit_intention" description:"用户选择的优先获取的权益意向 1:DeepChart 2:夺宝奇兵 3:专题课 用英文逗号分割,不要带空格"` + RegistrationIntention string `json:"registration_intention" dc:"用户报名意向"` +} + +// UpdateStateReq 更新状态 type UpdateStateReq struct { Id int `json:"id" v:"required"` State int `json:"state" v:"required|integer|in:0,1"` } +// EditNoteReq 修改备注 type EditNoteReq struct { Id int `json:"id" v:"required"` Note string `json:"note"` diff --git a/internal/cmd/cmd.go b/internal/cmd/cmd.go index 8bbfd1d..e8fd9ce 100644 --- a/internal/cmd/cmd.go +++ b/internal/cmd/cmd.go @@ -21,13 +21,14 @@ var ( group.Middleware( service.Middleware().CORS, ) - group.POST("/member/getList", controller.Member.GetMmberList) - group.POST("/member/insert", controller.Member.InsertMember) - group.POST("/member/updateState", controller.Member.UpdateState) - group.POST("/member/editNote", controller.Member.EditNote) - group.POST("/cover/getImage", controller.Cover.GetCoverImage) - group.POST("/cover/updateImage", controller.Cover.UpdateCoverImage) + group.POST("/member/getList", controller.Member.GetMemberList) //获取用户信息 + group.POST("/member/insert", controller.Member.InsertMember) //用户注册 + group.POST("/member/updateState", controller.Member.UpdateState) //更新状态 + group.POST("/member/editNote", controller.Member.EditNote) //修改备注 + group.POST("/config/get", controller.Cover.GetConfig) //获取配置信息 + group.POST("/config/update", controller.Cover.UpdateConfig) //修改配置信息 }) + s.Run() return nil }, diff --git a/internal/controller/cover.go b/internal/controller/cover.go index 4cbbd3f..19b5c39 100644 --- a/internal/controller/cover.go +++ b/internal/controller/cover.go @@ -11,24 +11,26 @@ var Cover = cCover{} type cCover struct{} -func (c *cCover) GetCoverImage(r *ghttp.Request) { - var req *v1.GetCoverImageReq +// GetConfig 获取配置信息 +func (c *cCover) GetConfig(r *ghttp.Request) { + var req *v1.GetConfigReq if err := r.Parse(&req); err != nil { response.JsonExit(r, 400, err.Error()) } - res, err := service.Cover().GetCoverImage(req) + res, err := service.Cover().GetConfig(req) if err != nil { response.JsonExit(r, 400, err.Error()) } response.JsonExit(r, 200, "success", res) } -func (c *cCover) UpdateCoverImage(r *ghttp.Request) { - var req *v1.UpdateCoverImageReq +// UpdateConfig 更新配置信息 +func (c *cCover) UpdateConfig(r *ghttp.Request) { + var req *v1.UpdateConfigReq if err := r.Parse(&req); err != nil { response.JsonExit(r, 400, err.Error()) } - err := service.Cover().UpdateCoverImage(req) + err := service.Cover().UpdateConfig(req) if err != nil { response.JsonExit(r, 400, err.Error()) } diff --git a/internal/controller/member.go b/internal/controller/member.go index a32d448..c301931 100644 --- a/internal/controller/member.go +++ b/internal/controller/member.go @@ -12,6 +12,7 @@ var Member = cMember{} type cMember struct{} +// InsertMember 用户注册 func (c *cMember) InsertMember(r *ghttp.Request) { var req *v1.InsertMemberReq if err := r.Parse(&req); err != nil { @@ -24,7 +25,8 @@ func (c *cMember) InsertMember(r *ghttp.Request) { response.JsonExit(r, 200, "success") } -func (c *cMember) GetMmberList(r *ghttp.Request) { +// GetMemberList 获取用户信息 +func (c *cMember) GetMemberList(r *ghttp.Request) { var req *v1.GetMemberListReq if err := r.Parse(&req); err != nil { response.JsonExit(r, 400, err.Error()) @@ -39,6 +41,7 @@ func (c *cMember) GetMmberList(r *ghttp.Request) { }) } +// UpdateState 更新状态 func (c *cMember) UpdateState(r *ghttp.Request) { var req *v1.UpdateStateReq if err := r.Parse(&req); err != nil { @@ -51,6 +54,7 @@ func (c *cMember) UpdateState(r *ghttp.Request) { response.JsonExit(r, 200, "success") } +// EditNote 修改备注 func (c *cMember) EditNote(r *ghttp.Request) { var req *v1.EditNoteReq if err := r.Parse(&req); err != nil { diff --git a/internal/logic/cover/cover.go b/internal/logic/cover/cover.go index 3ac4bb1..3e6994d 100644 --- a/internal/logic/cover/cover.go +++ b/internal/logic/cover/cover.go @@ -4,7 +4,6 @@ import ( v1 "UserRegister/api/v1" "UserRegister/internal/service" "github.com/gogf/gf/v2/frame/g" - "github.com/gogf/gf/v2/util/gconv" ) type sCover struct{} @@ -17,19 +16,21 @@ func NewCover() *sCover { return &sCover{} } -func (s *sCover) GetCoverImage(req *v1.GetCoverImageReq) (res string, err error) { - result, err := g.Model("cover_img").Fields("url"). - WherePri(req.Id).Value() +// GetConfig 获取配置信息 +func (s *sCover) GetConfig(req *v1.GetConfigReq) (res v1.GetConfigRes, err error) { + err = g.Model("lp_config").Fields("img_url", "video"). + WherePri(req.Id).Scan(&res) if err != nil { return } - res = gconv.String(result) return } -func (s *sCover) UpdateCoverImage(req *v1.UpdateCoverImageReq) (err error) { - _, err = g.Model("cover_img").Data(g.Map{ - "url": req.Url, +// UpdateConfig 更新配置信息 +func (s *sCover) UpdateConfig(req *v1.UpdateConfigReq) (err error) { + _, err = g.Model("lp_config").Data(g.Map{ + "img_url": req.Url, + "video": req.Video, }).WherePri(req.Id).Update() if err != nil { return diff --git a/internal/logic/member/member.go b/internal/logic/member/member.go index 100a8e7..c78261d 100644 --- a/internal/logic/member/member.go +++ b/internal/logic/member/member.go @@ -2,11 +2,11 @@ package member import ( v1 "UserRegister/api/v1" - "UserRegister/internal/model/entity" "UserRegister/internal/service" "crypto/md5" "fmt" "github.com/gogf/gf/v2/frame/g" + "strings" ) type sMember struct{} @@ -19,16 +19,19 @@ func NewMember() *sMember { return &sMember{} } +// InsertMember 用户注册 func (s *sMember) InsertMember(req *v1.InsertMemberReq) (err error) { _, err = g.Model("member_info").Data(g.Map{ - "name": req.Name, - "code": req.Code, - "telephone": req.Tel, - "type": req.Type, - "url": req.Url, - "url_md5": fmt.Sprintf("%x", md5.Sum([]byte(req.Url))), - "wechat": req.WeChat, - "email": req.Email, + "name": req.Name, + "code": req.Code, + "telephone": req.Tel, + "type": req.Type, + "url": req.Url, + "url_md5": fmt.Sprintf("%x", md5.Sum([]byte(req.Url))), + "wechat": req.WeChat, + "email": req.Email, + "source": req.Source, + "benefit_intention": req.BenefitIntention, }).Insert() if err != nil { return @@ -36,18 +39,36 @@ func (s *sMember) InsertMember(req *v1.InsertMemberReq) (err error) { return } -func (s *sMember) GetMemberList(req *v1.GetMemberListReq) (res []entity.MemberInfo, total int, err error) { - err = g.Model("member_info").OrderDesc("created_at"). +// GetMemberList 获取用户信息 +func (s *sMember) GetMemberList(req *v1.GetMemberListReq) (res []v1.GetMemberListRes, total int, err error) { + err = g.Model("member_info").Where("source", req.Source).OrderDesc("created_at"). Page(req.Page, req.PageSize).ScanAndCount(&res, &total, false) if err != nil { return } if len(res) == 0 { - return []entity.MemberInfo{}, 0, nil + return []v1.GetMemberListRes{}, 0, nil + } + //! 处理RegistrationIntention + for i := range res { + str := "" + if res[i].BenefitIntention != "" { + if strings.Contains(res[i].BenefitIntention, "1") { + str = str + "DeepChart," + } + if strings.Contains(res[i].BenefitIntention, "2") { + str = str + "夺宝奇兵," + } + if strings.Contains(res[i].BenefitIntention, "3") { + str = str + "专题课" + } + } + res[i].RegistrationIntention = str } return } +// UpdateState 更新状态 func (s *sMember) UpdateState(req *v1.UpdateStateReq) (err error) { _, err = g.Model("member_info").Data(g.Map{ "is_related": req.State, @@ -58,6 +79,7 @@ func (s *sMember) UpdateState(req *v1.UpdateStateReq) (err error) { return } +// EditNote 修改备注 func (s *sMember) EditNote(req *v1.EditNoteReq) (err error) { _, err = g.Model("member_info").Data(g.Map{ "note": req.Note, diff --git a/internal/service/cover.go b/internal/service/cover.go index 78fc065..c90bf13 100644 --- a/internal/service/cover.go +++ b/internal/service/cover.go @@ -1,11 +1,20 @@ +// ================================================================================ +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// You can delete these comments if you wish manually maintain this interface file. +// ================================================================================ + package service -import v1 "UserRegister/api/v1" +import ( + v1 "UserRegister/api/v1" +) type ( ICover interface { - GetCoverImage(req *v1.GetCoverImageReq) (res string, err error) - UpdateCoverImage(req *v1.UpdateCoverImageReq) (err error) + // GetConfig 获取配置信息 + GetConfig(req *v1.GetConfigReq) (res v1.GetConfigRes, err error) + // UpdateConfig 更新配置信息 + UpdateConfig(req *v1.UpdateConfigReq) (err error) } ) diff --git a/internal/service/member.go b/internal/service/member.go index 0c72691..81381cf 100644 --- a/internal/service/member.go +++ b/internal/service/member.go @@ -1,15 +1,23 @@ +// ================================================================================ +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// You can delete these comments if you wish manually maintain this interface file. +// ================================================================================ + package service import ( v1 "UserRegister/api/v1" - "UserRegister/internal/model/entity" ) type ( IMember interface { + // InsertMember 用户注册 InsertMember(req *v1.InsertMemberReq) (err error) - GetMemberList(req *v1.GetMemberListReq) (res []entity.MemberInfo, total int, err error) + // GetMemberList 获取用户信息 + GetMemberList(req *v1.GetMemberListReq) (res []v1.GetMemberListRes, total int, err error) + // UpdateState 更新状态 UpdateState(req *v1.UpdateStateReq) (err error) + // EditNote 修改备注 EditNote(req *v1.EditNoteReq) (err error) } )