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

78 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package service
import (
"strconv"
"xiawan/wx/api/req"
"xiawan/wx/api/vo"
"xiawan/wx/clientsdk/baseinfo"
"xiawan/wx/db"
"xiawan/wx/srv/wxface"
)
// GetMyQrCodeService 获取个人二维码
func GetMyQrCodeService(queryKey string, m req.GetQrCodeModel) vo.DTO {
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
wxAccount := iwxConnect.GetWXAccount()
loginState := wxAccount.GetLoginState()
//判断在线情况
if loginState == baseinfo.MMLoginStateNoLogin {
return vo.NewFail("该账号需要重新登录loginState == MMLoginStateNoLogin ")
} else if !iwxConnect.CheckOnLineStatus() {
return vo.NewFail("账号离线,自动上线失败loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
}
reqInvoker := iwxConnect.GetWXReqInvoker()
wxid := wxAccount.GetUserInfo().WxId
resp, err := reqInvoker.SendGetQrCodeRequest(wxid, m.Style)
if err != nil {
return vo.NewFail("GetQrCodeService err:" + err.Error())
}
return vo.NewSuccessObj(resp, "")
})
}
// 查看附近的人
func GetPeopleNearbyService(queryKey string, m req.PeopleNearbyModel) vo.DTO {
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
//取基本信息
wxAccount := iwxConnect.GetWXAccount()
loginState := wxAccount.GetLoginState()
//判断在线情况
if loginState == baseinfo.MMLoginStateNoLogin {
return vo.NewFail("该账号需要重新登录loginState == MMLoginStateNoLogin ")
} else if !iwxConnect.CheckOnLineStatus() {
return vo.NewFail("账号离线,自动上线失败loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
}
//获取请求管理器
reqInvoker := iwxConnect.GetWXReqInvoker()
resp, err := reqInvoker.SendGetPeopleNearbyResultRequest(m.Longitude, m.Latitude)
if err != nil {
return vo.NewFail("GetPeopleNearbyService" + err.Error())
}
return vo.NewSuccessObj(resp, "")
})
}
// 修改指令状态
func UpdateCmdStatusService(queryKey string, m req.ModifyCmdStatusModelNew) vo.DTO {
return checkExIdPerformNoCreateConnect(queryKey, func(wxConn wxface.IWXConnect, newIWXConnect bool) vo.DTO {
wxAccount := wxConn.GetWXAccount()
cache := wxConn.GetWXCache()
loginState := wxAccount.GetLoginState()
//判断在线情况
if !wxConn.CheckOnLineStatus() {
return vo.NewFail("你已退出登录")
} else if loginState == baseinfo.MMLoginStateNoLogin {
return vo.NewFail("该账号需要重新登录loginState == MMLoginStateNoLogin ")
}
db.UpdateCommand(queryKey, m.Key, m.Value, m.ValueStr)
query, err := db.QueryCommand(queryKey)
if err != nil {
return vo.NewFail("操作失败!")
}
cache.SendUsageByText()
return vo.NewSuccessObj(query, "操作成功!")
})
}