Browse Source

2026-04-09 17:30

完成港股市场落地页
master
majun 4 days ago
parent
commit
9b234774aa
  1. 47
      api/v1/hk_member.go
  2. 1
      hack/config.yaml
  3. 7
      internal/cmd/cmd.go
  4. 64
      internal/controller/hk_member.go
  5. 52
      internal/dao/internal/member_info.go
  6. 59
      internal/logic/hk_member/hk_member.go
  7. 1
      internal/logic/logic.go
  8. 28
      internal/model/do/member_info.go
  9. 26
      internal/model/entity/member_info.go
  10. 34
      internal/service/hk_member.go

47
api/v1/hk_member.go

@ -0,0 +1,47 @@
package v1
import "github.com/gogf/gf/v2/os/gtime"
// GetHKMemberListReq 获取用户信息
type GetHKMemberListReq struct {
Page int `p:"page" d:"1"`
PageSize int `p:"page_size" d:"20"`
}
// GetHKMemberListRes 获取用户信息
type GetHKMemberListRes 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:"邮箱"`
FeedbackType int `json:"feedback_type" orm:"feedback_type" description:"反馈类型(1:功能建议 2:问题反馈 3:体验优化 4:其他建议)"`
FeedbackContent string `json:"feedback_content" orm:"feedback_content" description:"反馈内容"`
IsRelated int `json:"isRelated" orm:"is_related" description:"是否联系"`
Note string `json:"note" orm:"note" description:"备注"`
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"添加时间"`
}
// InsertHKMemberReq 用户注册
type InsertHKMemberReq struct {
Name string `p:"name" v:"required#姓名不可为空!"`
Code string `p:"code" v:"required#请选取国家地区!"`
Tel string `p:"tel" v:"required#电话号码不可为空!"`
WeChat string `p:"weChat"`
Email string `p:"email" v:"required#邮箱号不可为空!"`
FeedbackType int `p:"feedback_type"`
FeedbackContent string `p:"feedback_content" v:"required-with:FeedbackType#请填写反馈内容!"`
}
// UpdateHKStateReq 更新状态
type UpdateHKStateReq struct {
Id int `json:"id" v:"required"`
State int `json:"state" v:"required|integer|in:0,1"`
}
// EditHKNoteReq 修改备注
type EditHKNoteReq struct {
Id int `json:"id" v:"required"`
Note string `json:"note" v:"required"`
}

1
hack/config.yaml

@ -16,3 +16,4 @@ gfcli:
- link: "mysql:hcdbqb:xrZthbSyNpcseEsN@tcp(54.255.212.181:3306)/hcdbqb" - link: "mysql:hcdbqb:xrZthbSyNpcseEsN@tcp(54.255.212.181:3306)/hcdbqb"
descriptionTag: true descriptionTag: true
noModelComment: true noModelComment: true
tables: ""

7
internal/cmd/cmd.go

@ -29,6 +29,13 @@ var (
group.POST("/cover/updateImage", controller.Cover.UpdateCoverImage) //原修改图片 group.POST("/cover/updateImage", controller.Cover.UpdateCoverImage) //原修改图片
group.POST("/config/get", controller.Cover.GetConfig) //获取配置信息 group.POST("/config/get", controller.Cover.GetConfig) //获取配置信息
group.POST("/config/update", controller.Cover.UpdateConfig) //修改配置信息 group.POST("/config/update", controller.Cover.UpdateConfig) //修改配置信息
group.Group("/hk", func(group *ghttp.RouterGroup) {
group.POST("/member/getList", controller.HKMember.GetMemberList) //获取用户信息
group.POST("/member/insert", controller.HKMember.InsertMember) //用户注册
group.POST("/member/updateState", controller.HKMember.UpdateState) //更新状态
group.POST("/member/editNote", controller.HKMember.EditNote) //修改备注
})
}) })
s.Run() s.Run()

64
internal/controller/hk_member.go

@ -0,0 +1,64 @@
package controller
import (
v1 "UserRegister/api/v1"
"UserRegister/internal/service"
"UserRegister/utility/response"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
var HKMember = cHKMember{}
type cHKMember struct{}
func (c *cHKMember) GetMemberList(r *ghttp.Request) {
var req *v1.GetHKMemberListReq
if err := r.Parse(&req); err != nil {
response.JsonExit(r, 400, err.Error())
}
res, total, err := service.HKMember().GetMemberList(req)
if err != nil {
response.JsonExit(r, 400, err.Error())
}
response.JsonExit(r, 200, "success", g.Map{
"list": res,
"total": total,
})
}
func (c *cHKMember) InsertMember(r *ghttp.Request) {
var req *v1.InsertHKMemberReq
if err := r.Parse(&req); err != nil {
response.JsonExit(r, 400, err.Error())
}
err := service.HKMember().InsertMember(req)
if err != nil {
response.JsonExit(r, 400, err.Error())
}
response.JsonExit(r, 200, "success")
}
func (c *cHKMember) UpdateState(r *ghttp.Request) {
var req *v1.UpdateHKStateReq
if err := r.Parse(&req); err != nil {
response.JsonExit(r, 400, err.Error())
}
err := service.HKMember().UpdateState(req)
if err != nil {
response.JsonExit(r, 400, err.Error())
}
response.JsonExit(r, 200, "success")
}
func (c *cHKMember) EditNote(r *ghttp.Request) {
var req *v1.EditHKNoteReq
if err := r.Parse(&req); err != nil {
response.JsonExit(r, 400, err.Error())
}
err := service.HKMember().EditNote(req)
if err != nil {
response.JsonExit(r, 400, err.Error())
}
response.JsonExit(r, 200, "success")
}

52
internal/dao/internal/member_info.go

@ -20,34 +20,38 @@ type MemberInfoDao struct {
// MemberInfoColumns defines and stores column names for table member_info. // MemberInfoColumns defines and stores column names for table member_info.
type MemberInfoColumns struct { type MemberInfoColumns struct {
Id string // 主键id
Name string // 姓名
Code string // 国家/地区代码
Telephone string // 电话号码
Wechat string // 微信ID
Email string // 邮箱
CreatedAt string // 添加时间
Type string // 注册来源(0其他,1视频,2直播,3帖子)
Url string // 来源地址
UrlMd5 string // 来源地址(MD5加密)
IsRelated string // 是否联系
Note string // 备注
Id string // 主键id
Name string // 姓名
Code string // 国家/地区代码
Telephone string // 电话号码
Wechat string // 微信ID
Email string // 邮箱
CreatedAt string // 添加时间
Type string // 注册来源(0其他,1视频,2直播,3帖子)
Url string // 来源地址
UrlMd5 string // 来源地址(MD5加密)
IsRelated string // 是否联系 1是 0否
Note string // 备注
Source string // 数据来源, 0:原数据,现赢在美股导流部分 1:现DeepChart导流部分
BenefitIntention string // 用户选择的优先获取的权益意向 1:DeepChart 2:夺宝奇兵 3:专题课 用英文逗号分割
} }
// memberInfoColumns holds the columns for table member_info. // memberInfoColumns holds the columns for table member_info.
var memberInfoColumns = MemberInfoColumns{ var memberInfoColumns = MemberInfoColumns{
Id: "id",
Name: "name",
Code: "code",
Telephone: "telephone",
Wechat: "wechat",
Email: "email",
CreatedAt: "created_at",
Type: "type",
Url: "url",
UrlMd5: "url_md5",
IsRelated: "is_related",
Note: "note",
Id: "id",
Name: "name",
Code: "code",
Telephone: "telephone",
Wechat: "wechat",
Email: "email",
CreatedAt: "created_at",
Type: "type",
Url: "url",
UrlMd5: "url_md5",
IsRelated: "is_related",
Note: "note",
Source: "source",
BenefitIntention: "benefit_intention",
} }
// NewMemberInfoDao creates and returns a new DAO object for table data access. // NewMemberInfoDao creates and returns a new DAO object for table data access.

59
internal/logic/hk_member/hk_member.go

@ -0,0 +1,59 @@
package hk_member
import (
v1 "UserRegister/api/v1"
"UserRegister/internal/service"
"github.com/gogf/gf/v2/frame/g"
)
type sHKMember struct{}
func init() {
service.RegisterHKMember(NewHKMember())
}
func NewHKMember() *sHKMember {
return &sHKMember{}
}
func (s *sHKMember) GetMemberList(req *v1.GetHKMemberListReq) (res []v1.GetHKMemberListRes, total int, err error) {
err = g.Model("hk_member_info").OrderDesc("created_at").
Page(req.Page, req.PageSize).ScanAndCount(&res, &total, false)
return
}
func (s *sHKMember) InsertMember(req *v1.InsertHKMemberReq) (err error) {
_, err = g.Model("hk_member_info").Data(g.Map{
"name": req.Name,
"code": req.Code,
"telephone": req.Tel,
"wechat": req.WeChat,
"email": req.Email,
"feedback_type": req.FeedbackType,
"feedback_content": req.FeedbackContent,
}).Insert()
if err != nil {
return
}
return
}
func (s *sHKMember) UpdateState(req *v1.UpdateHKStateReq) (err error) {
_, err = g.Model("hk_member_info").Data(g.Map{
"is_related": req.State,
}).WherePri(req.Id).Update()
if err != nil {
return
}
return
}
func (s *sHKMember) EditNote(req *v1.EditHKNoteReq) (err error) {
_, err = g.Model("hk_member_info").Data(g.Map{
"note": req.Note,
}).WherePri(req.Id).Update()
if err != nil {
return
}
return
}

1
internal/logic/logic.go

@ -6,6 +6,7 @@ package logic
import ( import (
_ "UserRegister/internal/logic/cover" _ "UserRegister/internal/logic/cover"
_ "UserRegister/internal/logic/hk_member"
_ "UserRegister/internal/logic/member" _ "UserRegister/internal/logic/member"
_ "UserRegister/internal/logic/middleware" _ "UserRegister/internal/logic/middleware"
) )

28
internal/model/do/member_info.go

@ -11,17 +11,19 @@ import (
// MemberInfo is the golang structure of table member_info for DAO operations like Where/Data. // MemberInfo is the golang structure of table member_info for DAO operations like Where/Data.
type MemberInfo struct { type MemberInfo struct {
g.Meta `orm:"table:member_info, do:true"`
Id interface{} // 主键id
Name interface{} // 姓名
Code interface{} // 国家/地区代码
Telephone interface{} // 电话号码
Wechat interface{} // 微信ID
Email interface{} // 邮箱
CreatedAt *gtime.Time // 添加时间
Type interface{} // 注册来源(0其他,1视频,2直播,3帖子)
Url interface{} // 来源地址
UrlMd5 interface{} // 来源地址(MD5加密)
IsRelated interface{} // 是否联系
Note interface{} // 备注
g.Meta `orm:"table:member_info, do:true"`
Id interface{} // 主键id
Name interface{} // 姓名
Code interface{} // 国家/地区代码
Telephone interface{} // 电话号码
Wechat interface{} // 微信ID
Email interface{} // 邮箱
CreatedAt *gtime.Time // 添加时间
Type interface{} // 注册来源(0其他,1视频,2直播,3帖子)
Url interface{} // 来源地址
UrlMd5 interface{} // 来源地址(MD5加密)
IsRelated interface{} // 是否联系 1是 0否
Note interface{} // 备注
Source interface{} // 数据来源, 0:原数据,现赢在美股导流部分 1:现DeepChart导流部分
BenefitIntention interface{} // 用户选择的优先获取的权益意向 1:DeepChart 2:夺宝奇兵 3:专题课 用英文逗号分割
} }

26
internal/model/entity/member_info.go

@ -10,16 +10,18 @@ import (
// MemberInfo is the golang structure for table member_info. // MemberInfo is the golang structure for table member_info.
type MemberInfo struct { type MemberInfo 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:"备注"`
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:"是否联系 1是 0否"`
Note string `json:"note" orm:"note" description:"备注"`
Source int `json:"source" orm:"source" description:"数据来源, 0:原数据,现赢在美股导流部分 1:现DeepChart导流部分"`
BenefitIntention string `json:"benefitIntention" orm:"benefit_intention" description:"用户选择的优先获取的权益意向 1:DeepChart 2:夺宝奇兵 3:专题课 用英文逗号分割"`
} }

34
internal/service/hk_member.go

@ -0,0 +1,34 @@
// ================================================================================
// 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"
)
type (
IHKMember interface {
GetMemberList(req *v1.GetHKMemberListReq) (res []v1.GetHKMemberListRes, total int, err error)
InsertMember(req *v1.InsertHKMemberReq) (err error)
UpdateState(req *v1.UpdateHKStateReq) (err error)
EditNote(req *v1.EditHKNoteReq) (err error)
}
)
var (
localHKMember IHKMember
)
func HKMember() IHKMember {
if localHKMember == nil {
panic("implement not found for interface IHKMember, forgot register?")
}
return localHKMember
}
func RegisterHKMember(i IHKMember) {
localHKMember = i
}
Loading…
Cancel
Save