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, "操作成功!") }) }