diff --git a/app/friend.go b/app/friend.go new file mode 100644 index 00000000..3b006873 --- /dev/null +++ b/app/friend.go @@ -0,0 +1,56 @@ +package app + +import ( + "github.com/gin-gonic/gin" + "log" + "net/http" +) + +// changeStatusParam +// @description: 修改状态用的参数集 +type changeStatusParam struct { + WxId string `json:"wxId" binding:"required"` + UserId string `json:"userId"` +} + +// ChangeEnableAiStatus +// @description: 修改是否开启AI +// @param ctx +func ChangeEnableAiStatus(ctx *gin.Context) { + var p changeStatusParam + if err := ctx.ShouldBindJSON(&p); err != nil { + ctx.String(http.StatusBadRequest, "参数错误") + return + } + log.Printf("待修改的微信Id:%s", p.WxId) + + ctx.String(http.StatusOK, "操作成功") +} + +// ChangeEnableGroupRankStatus +// @description: 修改是否开启水群排行榜 +// @param ctx +func ChangeEnableGroupRankStatus(ctx *gin.Context) { + var p changeStatusParam + if err := ctx.ShouldBindJSON(&p); err != nil { + ctx.String(http.StatusBadRequest, "参数错误") + return + } + log.Printf("待修改的群Id:%s", p.WxId) + + ctx.String(http.StatusOK, "操作成功") +} + +// ChangeSkipGroupRankStatus +// @description: 修改是否跳过水群排行榜 +// @param ctx +func ChangeSkipGroupRankStatus(ctx *gin.Context) { + var p changeStatusParam + if err := ctx.ShouldBindJSON(&p); err != nil { + ctx.String(http.StatusBadRequest, "参数错误") + return + } + log.Printf("待修改的群Id:%s -> %s", p.WxId, p.UserId) + + ctx.String(http.StatusOK, "操作成功") +} diff --git a/app/group.go b/app/group.go new file mode 100644 index 00000000..394443fa --- /dev/null +++ b/app/group.go @@ -0,0 +1,31 @@ +package app + +import ( + "github.com/gin-gonic/gin" + "go-wechat/client" + "go-wechat/entity" + "net/http" +) + +type getGroupUser struct { + GroupId string `json:"groupId" form:"groupId" binding:"required"` // 群Id +} + +// GetGroupUsers +// @description: 获取群成员列表 +// @param ctx +func GetGroupUsers(ctx *gin.Context) { + var p getGroupUser + if err := ctx.ShouldBind(&p); err != nil { + ctx.String(http.StatusBadRequest, "参数错误") + return + } + // 查询数据 + var users []entity.GroupUser + if err := client.MySQL.Where("group_id = ?", p.GroupId).Find(&users).Error; err != nil { + ctx.String(http.StatusInternalServerError, "查询数据失败") + return + } + // 暂时先就这样写着,跑通了再改 + ctx.JSON(http.StatusOK, users) +} diff --git a/common/types/datetime.go b/common/types/datetime.go index b6d99a89..7b5e8744 100644 --- a/common/types/datetime.go +++ b/common/types/datetime.go @@ -55,7 +55,7 @@ func (dt DateTime) Value() (dv driver.Value, err error) { // 用于 fmt.Println 和后续验证场景 func (dt DateTime) String() string { - return dt.Format(dateTimeFormat) + return dt.Format("2006-01-02 15:04:05") } // Format 格式化 diff --git a/main.go b/main.go index f4e4d638..5d73ec35 100644 --- a/main.go +++ b/main.go @@ -8,7 +8,10 @@ import ( "go-wechat/tasks" "go-wechat/tcpserver" "go-wechat/utils" + "html/template" "log" + "net/http" + "strings" "time" ) @@ -30,14 +33,32 @@ func main() { // 启动HTTP服务 app := gin.Default() + + // 自定义模板引擎函数 + app.SetFuncMap(template.FuncMap{ + "checkSwap": func(flag bool) string { + if flag { + return "swap-active" + } + return "" + }, + }) + app.LoadHTMLGlob("views/*.html") app.Static("/assets", "./views/static") app.StaticFile("/favicon.ico", "./views/wechat.ico") // 404返回数据 app.NoRoute(func(ctx *gin.Context) { + if strings.HasPrefix(ctx.Request.URL.Path, "/api") { + ctx.String(404, "接口不存在") + return + } // 404直接跳转到首页 ctx.Redirect(302, "/index.html") }) + app.NoMethod(func(ctx *gin.Context) { + ctx.String(http.StatusMethodNotAllowed, "不支持的请求方式") + }) // 初始化路由 router.Init(app) if err := app.Run(":8080"); err != nil { diff --git a/router/router.go b/router/router.go index e60eefb2..8e554e90 100644 --- a/router/router.go +++ b/router/router.go @@ -18,4 +18,11 @@ func Init(g *gin.Engine) { g.GET("/test.html", func(ctx *gin.Context) { ctx.HTML(200, "test.html", nil) }) + + // 接口 + api := g.Group("/api") + api.PUT("/ai/status", app.ChangeEnableAiStatus) // 修改是否开启AI状态 + api.PUT("/grouprank/status", app.ChangeEnableGroupRankStatus) // 修改是否开启水群排行榜状态 + api.PUT("/grouprank/skip", app.ChangeSkipGroupRankStatus) // 修改是否跳过水群排行榜状态 + api.GET("/group/users", app.GetGroupUsers) // 获取群成员列表 } diff --git a/views/index.html b/views/index.html index fc54e98a..4e925d26 100644 --- a/views/index.html +++ b/views/index.html @@ -5,7 +5,11 @@
微信Id | -微信号 | -昵称 | -最后活跃时间 | -是否在通讯录 | -是否启用AI | -是否启用水群排行榜 | -
---|---|---|---|---|---|---|
{{ .Wxid }} | -{{ .CustomAccount }} | -{{ .Nickname }} | -- {{ if eq .LastActiveTime.IsNil true }} - 无数据 - {{ else }} - {{ .LastActiveTime }} - {{ end }} - | -{{ .IsOk }} | -{{ .EnableAi }} | -{{ .EnableChatRank }} | -
微信Id | +微信号 | +昵称 | +最后活跃时间 | +是否在通讯录 | +是否启用AI | +
---|---|---|---|---|---|
{{ .Wxid }} | +{{ .CustomAccount }} | +{{ .Nickname }} | ++ {{ if eq .LastActiveTime.IsNil true }} + 无数据 + {{ else }} + {{ .LastActiveTime }} + {{ end }} + | +
+ {{ if eq .IsOk true }}
+
+ 是
+
+ {{ else }}
+
+ 否
+
+ {{ end }}
+ |
+ + + | +
群Id | -昵称 | -最后活跃时间 | -是否在通讯录 | -是否启用AI | -是否启用水群排行榜 | -
---|---|---|---|---|---|
{{ .Wxid }} | -{{ .Nickname }} | -- {{ if eq .LastActiveTime.IsNil true }} - 无数据 - {{ else }} - {{ .LastActiveTime }} - {{ end }} - | -{{ .IsOk }} | -{{ .EnableAi }} | -{{ .EnableChatRank }} | -
群Id | +昵称 | +最后活跃时间 | +是否在通讯录 | +是否启用AI | +是否启用水群排行榜 | +操作 | +
---|---|---|---|---|---|---|
{{ .Wxid }} | +{{ .Nickname }} | ++ {{ if eq .LastActiveTime.IsNil true }} + 无数据 + {{ else }} + {{ .LastActiveTime }} + {{ end }} + | +
+ {{ if eq .IsOk true }}
+
+ 是
+
+ {{ else }}
+
+ 否
+
+ {{ end }}
+ |
+ + + + | ++ + + | ++ + | +