package service import ( "strconv" "xiawan/wx/api/req" "xiawan/wx/api/vo" "xiawan/wx/clientsdk/baseinfo" "xiawan/wx/srv/wxface" "xiawan/wx/srv/wxtask" ) // SearchContactRequestService 搜索好友 func SearchContactRequestService(queryKey string, m req.SearchContactRequestModel) 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.SendSearchContactRequest(m.OpCode, m.FromScene, m.SearchScene, m.UserName) if err != nil { return vo.NewFail("SearchContactRequestService err:" + err.Error()) } return vo.NewSuccessObj(resp, "") }) } // 获取好友关系 func GetFriendRelationService(queryKey string, m req.GetFriendRelationModel) 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.SendGetFriendRelationRequest(m.UserName) if err != nil { return vo.NewFail("GetFriendRelationService err:" + err.Error()) } return vo.NewSuccessObj(resp, "") }) } // 查联系人详情 func GetContactContactService(queryKey string, m req.BatchGetContactModel) 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.SendGetContactRequestForList(m.UserNames, m.RoomWxIDList) if err != nil { return vo.NewFail("SearchContactRequestService err:" + err.Error()) } return vo.NewSuccessObj(resp, "") }) } // StartFriendTaskService 启动好友任务(1:检测僵死粉 2:清理僵死粉) func StartFriendTaskService(queryKey string, taskType int) 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()))) } // 创建好友任务并执行 friendTask := wxtask.NewWXFriendTask(iwxConnect) success := friendTask.StartFriendTask(taskType) if !success { return vo.NewFail("启动任务失败") } return vo.NewSuccessObj(nil, "任务启动成功") }) }