78 lines
2.8 KiB
Go
78 lines
2.8 KiB
Go
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, "操作成功!")
|
||
})
|
||
}
|