/// <summary> /// 移动用户 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="openID">OpenID</param> /// <param name="groupID">分组ID</param> /// <returns>操作结果</returns> public OperateStatus MoveUser(Guid accountID, string openID, string groupID) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } var func = FunctionFactory.GetFunctionInstance<IGroup>(); OperateStatus status = func.MoveUser(account, openID, groupID); return status; }
/// <summary> /// 使用Code获取OpenID /// </summary> /// <param name="accountID">账号ID</param> /// <param name="code">Code</param> /// <returns>操作结果</returns> public OperateStatus GetOpenIDByCode(Guid accountID, string code) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } var func = FunctionFactory.GetFunctionInstance<IOAuth>(); var result = func.GetOpenIDByCode(account, code); return new OperateStatus { ResultSign = ResultSign.Success, ReturnValue = result }; }
/// <summary> /// 获取认证用Url /// </summary> /// <param name="accountID">账号ID</param> /// <param name="redirectUrl">重定向Url</param> /// <param name="getAuthType">获取认证的类型</param> /// <returns>操作结果</returns> public OperateStatus GetAuthUrl(Guid accountID, string redirectUrl, EnumGetAuthType getAuthType) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } var func = FunctionFactory.GetFunctionInstance<IOAuth>(); var result = func.GetAuthUrl(account, redirectUrl, getAuthType); return new OperateStatus {ResultSign = ResultSign.Success, ReturnValue = result}; }
/// <summary> /// 根据用户ID获取用户信息 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="userID">用户ID</param> /// <returns>操作结果,CorpUserInfo</returns> public OperateStatus GetUserByID(Guid accountID, string userID) { AccountServiceModel model = new AccountServiceModel(); var currentAccount = model.GetById(accountID); if (currentAccount == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账号不存在" }; } var func = FunctionFactory.GetFunctionInstance<IUserGetByID>(); OperateStatus status = func.GetByID(currentAccount, userID); return status; }
/// <summary> /// 根据部门信息获取用户 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="departmentID">部门ID</param> /// <param name="fetchChild">查询分支</param> /// <param name="enumStatus">查询用户状态</param> /// <param name="getDetail">获取详情</param> /// <returns>操作结果</returns> public OperateStatus GetUserByDeparment(Guid accountID, string departmentID, bool fetchChild, int enumStatus, bool getDetail) { AccountServiceModel model = new AccountServiceModel(); var currentAccount = model.GetById(accountID); if (currentAccount == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账号不存在" }; } var func = FunctionFactory.GetFunctionInstance<IUserGetByDepartment>(); OperateStatus status = func.GetByDepartment(currentAccount, departmentID, fetchChild, enumStatus, getDetail); return status; }
/// <summary> /// 创建用户 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="userInfo">用户信息</param> /// <returns>操作结果</returns> public OperateStatus CreateUser(Guid accountID, CorpUserInfo userInfo) { AccountServiceModel model = new AccountServiceModel(); var currentAccount = model.GetById(accountID); if (currentAccount == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账号不存在" }; } var func = FunctionFactory.GetFunctionInstance<IUserCreate>(); OperateStatus status = func.Create(currentAccount, userInfo); return status; }
/// <summary> /// 发送内容消息 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="target">发送目标信息</param> /// <param name="message">消息内容</param> /// <returns>操作结果</returns> public OperateStatus SendTextMessage(Guid accountID, SendMessageTarget target, string message) { AccountServiceModel model = new AccountServiceModel(); var currentAccount = model.GetById(accountID); if (currentAccount == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账号不存在" }; } var func = FunctionFactory.GetFunctionInstance<ISend>(); OperateStatus status = func.SendTextMessage(currentAccount, target, message); return status; }
/// <summary> /// 根据OpenID获取用户信息 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="openID">OpenID</param> /// <returns>操作结果,UserInfo信息</returns> public OperateStatus GetByOpenID(Guid accountID, string openID) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } var func = FunctionFactory.GetFunctionInstance<IGetUserBaseInfo>(); var userInfo = func.GetByOpenID(account, openID); var jsonResult = JsonConvert.SerializeObject(userInfo); return new OperateStatus { ResultSign = ResultSign.Success, ReturnValue = jsonResult }; }
/// <summary> /// 通过Code获取用户信息 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="code">Code</param> /// <returns>操作结果</returns> public OperateStatus GetUserInfoByCode(Guid accountID, string code) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } UserInfo userInfo; if (account.IsCorp) { var func = FunctionFactory.GetFunctionInstance<Extentions.IFunction.Corp.Authenticate.IOAuth>(); userInfo = func.GetUserInfoByCode(account, code); } else { var func = FunctionFactory.GetFunctionInstance<IOAuth>(); userInfo = func.GetUserInfoByCode(account, code); } var jsonResult = JsonConvert.SerializeObject(userInfo); return new OperateStatus { ResultSign = ResultSign.Success, ReturnValue = jsonResult }; }
/// <summary> /// 获取JS请求所需数据 /// </summary> /// <param name="accountID">账号ID</param> /// <param name="currentUrl">当前页面的Url</param> /// <returns>操作结果,WeiXinJsData</returns> public OperateStatus GetJsData(Guid accountID, string currentUrl) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } OperateStatus status; if (account.IsCorp) { var func = FunctionFactory.GetFunctionInstance<IJsSDK>(); status = func.GetJsData(account, currentUrl); } else { var func = FunctionFactory.GetFunctionInstance<Extentions.IFunction.Normal.JsSDK.IJsSDK>(); status = func.GetJsData(account, currentUrl); } return status; }
public OperateStatus CreateMenus(Guid accountID, IList<CustomMenu> menus) { AccountServiceModel model = new AccountServiceModel(); var account = model.GetById(accountID); if (account == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账户不存在" }; } OperateStatus status; if (account.IsCorp) { var func = FunctionFactory.GetFunctionInstance<ICreate>(); status = func.Create(account, menus); } else { var func = FunctionFactory.GetFunctionInstance<Extentions.IFunction.Normal.CustomMenu.ICreate>(); status = func.Create(account, menus); } return status; }
/// <summary> /// 模板消息发送(只支持非企业号) /// </summary> /// <param name="accountID">账号ID</param> /// <param name="templateMsgParams">发送参数</param> /// <param name="parameters">模板参数</param> /// <returns>操作结果</returns> public OperateStatus TemplateMsg(Guid accountID, TemplateMsgParams templateMsgParams, IList<TemplateParameter> parameters) { AccountServiceModel model = new AccountServiceModel(); var currentAccount = model.GetById(accountID); if (currentAccount == null) { return new OperateStatus { ResultSign = ResultSign.Failed, Message = "账号不存在" }; } var func = FunctionFactory.GetFunctionInstance<ITemplateMsg>(); OperateStatus status = func.SendTemplateMsg(currentAccount, templateMsgParams, parameters); return status; }