Files
wechat_ipad_pro/api/controller/friendController.go
2026-02-17 13:06:23 +08:00

231 lines
6.4 KiB
Go

package controller
import (
"net/http"
"strings"
"xiawan/wx/api/req"
"xiawan/wx/api/service"
"xiawan/wx/api/vo"
"github.com/gin-gonic/gin"
)
// GetContactListApi 获取全部联系人
func GetContactListApi(ctx *gin.Context) {
reqModel := new(req.GetContactListModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.GetContactListService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// GetFriendListApi 获取好友列表
func GetFriendListApi(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.GetFriendListService(queryKey)
ctx.JSON(http.StatusOK, result)
}
// GetGroupListApi 获取保存的群聊列表
func GetGroupListApi(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.GetGroupListService(queryKey)
ctx.JSON(http.StatusOK, result)
}
// GetGHListApi 获取关注的公众号列表
func GetGHListApi(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.GetGHListService(queryKey)
ctx.JSON(http.StatusOK, result)
}
// FollowGHApi 关注公众号
func FollowGHApi(ctx *gin.Context) {
reqModel := new(req.FollowGHModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.FollowGHService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// UploadMContactApi 上传手机通讯录好友
func UploadMContactApi(ctx *gin.Context) {
reqModel := new(req.UploadMContactModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.UploadMContactService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// GetMFriendApi 获取手机通讯录好友
func GetMFriendApi(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.GetMFriendService(queryKey)
ctx.JSON(http.StatusOK, result)
}
// GetContactContactApi 获取联系人详情
func GetContactContactApi(ctx *gin.Context) {
reqModel := new(req.BatchGetContactModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.GetContactContactService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// GetFriendRelationApi 获取好友关系
func GetFriendRelationApi(ctx *gin.Context) {
reqModel := new(req.GetFriendRelationModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.GetFriendRelationService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// SearchContactRequestApi 搜索联系人
func SearchContactRequestApi(ctx *gin.Context) {
reqModel := new(req.SearchContactRequestModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.SearchContactRequestService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// VerifyUserRequestApi 验证好友/添加好友
func VerifyUserRequestApi(ctx *gin.Context) {
reqModel := new(req.VerifyUserRequestModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.VerifyUserRequestService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// AgreeAddApi 同意好友请求
func AgreeAddApi(ctx *gin.Context) {
reqModel := new(req.VerifyUserRequestModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
if reqModel.Scene == 0 {
reqModel.Scene = 0x06
}
result := service.VerifyUserRequestService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// DetectDeadFans 检测僵死粉
func DetectDeadFans(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.StartFriendTaskService(queryKey, 1) // 1表示检测僵死粉任务
ctx.JSON(http.StatusOK, result)
}
// CleanDeadFans 清理僵死粉
func CleanDeadFans(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.StartFriendTaskService(queryKey, 2) // 2表示清理僵死粉任务
ctx.JSON(http.StatusOK, result)
}