public ActionResult CreateMenuQY(Senparc.Weixin.QY.GetMenuResultFull resultFull)
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            string token = model.AccessToken;

            try
            {
                QyJsonResult result = null;
                //普通接口
                Senparc.Weixin.QY.Entities.Menu.ButtonGroup buttonGroup = Senparc.Weixin.QY.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull).menu;
                result = Senparc.Weixin.QY.CommonAPIs.CommonApi.CreateMenu(token, Convert.ToInt32(model.OfficalId), buttonGroup);

                var json = new
                {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。普通自定义菜单接口"
                };
                return(Json(json));
            }
            catch (Exception ex)
            {
                var json = new { Success = false, Message = string.Format("更新失败:{0}。普通自定义菜单接口", ex.Message) };
                return(Json(json));
            }
        }
Exemple #2
0
 public static QyCallResult ToQyCallResult(this QyJsonResult result)
 {
     return(new QyCallResult()
     {
         Code = (int)result.errcode,
         CodeRemark = result.errcode.ToString(),
         Msg = result.errmsg
     });
 }
Exemple #3
0
        public QyJsonResult WX_DelUser(string strUserName)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.DeleteMember(GetToken(), strUserName);
            }
            return(Ret);
        }
Exemple #4
0
        public QyJsonResult WX_DelMenu(int agentId)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = CommonApi.DeleteMenu(GetToken(agentId.ToString()), agentId);
            }
            return(Ret);
        }
Exemple #5
0
        public QyJsonResult WX_DelTag(int strBQCode)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.DeleteTag(GetToken(), strBQCode);
            }
            return(Ret);
        }
Exemple #6
0
        public QyJsonResult WX_CreateTag(JH_Auth_Role Model)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.CreateTag(GetToken(), Model.RoleName, Model.WXBQCode);
            }
            return(Ret);
        }
Exemple #7
0
        public QyJsonResult WX_DelBranch(string strDeptCode)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.DeleteDepartment(GetToken(), strDeptCode);
            }
            return(Ret);
        }
Exemple #8
0
        public QyJsonResult WX_GetDepartmentList()
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.GetDepartmentList(GetToken());
            }
            return(Ret);
        }
Exemple #9
0
        public QyJsonResult WX_DelTagMember(int strBQCode, string[] userList)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.DelTagMember(GetToken(), strBQCode, userList);
            }
            return(Ret);
        }
Exemple #10
0
        public QyJsonResult WX_CreateMenu(int agentId, Senparc.Weixin.QY.Entities.Menu.ButtonGroup buttonData)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = CommonApi.CreateMenu(GetToken(agentId.ToString()), agentId, buttonData);
            }
            return(Ret);
        }
Exemple #11
0
        public QyJsonResult WX_GetDepartmentMember(int depid)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = MailListApi.GetDepartmentMember(GetToken(), depid, 1, 0);
            }
            return(Ret);
        }
Exemple #12
0
        public QyJsonResult WX_UpdateTag(JH_Auth_Role Model)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                int bqid = Int32.Parse(Model.WXBQCode.ToString());
                Ret = MailListApi.UpdateTag(GetToken(), bqid, Model.RoleName);
            }
            return(Ret);
        }
Exemple #13
0
        public QyJsonResult WX_AddTagMember(JH_Auth_UserRole Model)
        {
            var          role = new JH_Auth_RoleB().GetEntity(p => p.RoleCode == Model.RoleCode);
            QyJsonResult Ret  = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                string[] userList = { Model.UserName };
                int      bqid     = Int32.Parse(role.WXBQCode.ToString());
                Ret = MailListApi.AddTagMember(GetToken(), bqid, userList, null);
            }
            return(Ret);
        }
Exemple #14
0
        public QyJsonResult WX_UpdateBranch(JH_Auth_Branch Model)
        {
            QyJsonResult Ret = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                int pid = 0;
                var bm  = new JH_Auth_BranchB().GetEntity(p => p.DeptCode == Model.DeptRoot && p.ComId == Model.ComId);
                if (bm != null)
                {
                    pid = Int32.Parse(bm.WXBMCode.ToString());
                }
                Ret = MailListApi.UpdateDepartment(GetToken(), Model.WXBMCode.ToString(), Model.DeptName, pid, Model.DeptShort);
            }
            return(Ret);
        }
Exemple #15
0
        public ActionResult UpdateUser(QyUserModel model)
        {
            #region 校验
            var account = GetAccount(model.corpid);
            if (account == null)
            {
                LogWriter.Info(string.Format("corpid为“{0}”的GetUser获取失败,原因:企业号不存在", model.corpid));
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = "企业号不存在",
                }));
            }

            if (!ValidateAccessToken(account, model.accesstoken))
            {
                LogWriter.Info(string.Format("corpid为“{0}”的GetUser获取失败,原因:accesstoken错误", model.corpid));
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = "非法访问",
                }));
            }
            #endregion

            #region 获取用户信息
            var wxFO = Formula.FormulaHelper.CreateFO <WxFO>();

            QyJsonResult userinfo = null;

            try
            {
                userinfo = wxFO.UpdateUser(model.corpid, model.userid, model.name, model.department, model.position, model.mobile, model.email, model.weixinid, model.enable, null, model.gender, model.avatar_mediaid, model.extattr);
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = ex.Message,
                }));
            }
            #endregion

            return(Json(userinfo));
        }
Exemple #16
0
        public ActionResult UpdateDepartment(QyOrgModel model)
        {
            #region 校验
            var account = GetAccount(model.corpid);
            if (account == null)
            {
                LogWriter.Info(string.Format("corpid为“{0}”的UpdateDepartment获取失败,原因:企业号不存在", model.corpid));
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = "企业号不存在",
                }));
            }

            if (!ValidateAccessToken(account, model.accesstoken))
            {
                LogWriter.Info(string.Format("corpid为“{0}”的UpdateDepartment获取失败,原因:accesstoken错误", model.corpid));
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = "非法访问",
                }));
            }
            #endregion

            #region 获取用户信息
            var wxFO = Formula.FormulaHelper.CreateFO <WxFO>();

            QyJsonResult userinfo = null;

            try
            {
                userinfo = wxFO.UpdateDepartment(model.corpid, (model.id ?? -1).ToString(), model.name, model.parentid, model.order);
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = ex.Message,
                }));
            }
            #endregion

            return(Json(userinfo));
        }
Exemple #17
0
        public ActionResult DeleteUser(QyUserModel model)
        {
            #region 校验
            var account = GetAccount(model.corpid);
            if (account == null)
            {
                LogWriter.Info(string.Format("corpid为“{0}”的GetUser获取失败,原因:企业号不存在", model.corpid));
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = "企业号不存在",
                }));
            }

            if (!ValidateAccessToken(account, model.accesstoken))
            {
                LogWriter.Info(string.Format("corpid为“{0}”的GetUser获取失败,原因:accesstoken错误", model.corpid));
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = "非法访问",
                }));
            }
            #endregion

            #region 获取用户信息
            var wxFO = Formula.FormulaHelper.CreateFO <WxFO>();

            QyJsonResult userinfo = null;

            try
            {
                userinfo = wxFO.DeleteUser(model.corpid, model.userid);
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    errorcode = "500",
                    errormsg = ex.Message,
                }));
            }
            #endregion

            return(Json(userinfo));
        }
Exemple #18
0
        /// <summary>
        /// 删除成员
        /// </summary>
        /// <param name="QyID">企业ID</param>
        /// <param name="userId">员工UserID。必须企业内唯一</param>
        /// <returns></returns>
        public QyJsonResult DeleteUser(string QyID, string userId)
        {
            QyJsonResult result = null;

            try
            {
                result = MailListApi.DeleteMember(GetAccessToken(QyID), userId);
            }
            catch (Exception ex)
            {
                LogWriter.Error(ex, string.Format("删除QyID为{0}的成员失败", QyID));
                result = MailListApi.DeleteMember(GetAccessToken(QyID, true), userId);
            }
            if (result.errcode != ReturnCode_QY.请求成功)
            {
                LogWriter.Info(string.Format("删除QyID为{0}的成员失败,原因:{1}", QyID, result.errmsg));
            }
            return(result);
        }
Exemple #19
0
        /// <summary>
        /// 更新组织
        /// </summary>
        /// <param name="QyID">企业ID</param>
        /// <param name="id">部门id</param>
        /// <param name="name">更新的部门名称。长度限制为0~64个字符。修改部门名称时指定该参数</param>
        /// <param name="parentId">父亲部门id。根部门id为1 </param>
        /// <param name="order">在父部门中的次序。从1开始,数字越大排序越靠后</param>
        /// <returns></returns>
        public QyJsonResult UpdateDepartment(string QyID, string id, string name, int parentId, int order = 1)
        {
            QyJsonResult result = null;

            try
            {
                result = MailListApi.UpdateDepartment(GetAccessToken(QyID), id, name, parentId, order);
            }
            catch (Exception ex)
            {
                LogWriter.Error(ex, string.Format("更新QyID为{0}的部门失败", QyID));
                result = MailListApi.UpdateDepartment(GetAccessToken(QyID, true), id, name, parentId, order);
            }
            if (result.errcode != ReturnCode_QY.请求成功)
            {
                LogWriter.Info(string.Format("更新QyID为{0}的部门失败,原因:{1}", QyID, result.errmsg));
            }
            return(result);
        }
Exemple #20
0
        /// <summary>
        /// 更新成员
        /// </summary>
        /// <param name="QyID">企业ID</param>
        /// <param name="userId">员工UserID。必须企业内唯一</param>
        /// <param name="name">成员名称。长度为1~64个字符</param>
        /// <param name="department">成员所属部门id列表。注意,每个部门的直属员工上限为1000个</param>
        /// <param name="position">职位信息。长度为0~64个字符</param>
        /// <param name="mobile">手机号码。必须企业内唯一</param>
        /// <param name="tel">办公电话。长度为0~64个字符</param>
        /// <param name="email">邮箱。长度为0~64个字符。必须企业内唯一</param>
        /// <param name="weixinId">微信号。必须企业内唯一</param>
        /// <returns></returns>
        public QyJsonResult UpdateUser(string QyID, string userId, string name, int[] department = null,
                                       string position = null, string mobile     = null, string email    = null, string weixinId = null, int enable = 1, string tel = null,
                                       int gender      = 0, string avatarMediaid = null, Extattr extattr = null)
        {
            QyJsonResult result = null;

            try
            {
                result = MailListApi.UpdateMember(GetAccessToken(QyID), userId, name, department, position, mobile, email, weixinId, enable, tel, gender, avatarMediaid, extattr);
            }
            catch (Exception ex)
            {
                LogWriter.Error(ex, string.Format("更新QyID为{0}的成员失败", QyID));
                result = MailListApi.UpdateMember(GetAccessToken(QyID, true), userId, name, department, position, mobile, email, weixinId, enable, tel, gender, avatarMediaid, extattr);
            }
            if (result.errcode != ReturnCode_QY.请求成功)
            {
                LogWriter.Info(string.Format("更新QyID为{0}的成员失败,原因:{1}", QyID, result.errmsg));
            }
            return(result);
        }
Exemple #21
0
 public QyJsonResult WX_CreateUser(JH_Auth_User Model)
 {
     try
     {
         QyJsonResult Ret = new QyJsonResult();
         if (Qyinfo.IsUseWX == "Y")
         {
             int[] Branch = { new JH_Auth_BranchB().GetEntity(d => d.DeptCode == Model.BranchCode).WXBMCode.Value };
             Ret = MailListApi.CreateMember(GetToken(), Model.UserName, Model.UserRealName, Branch, Model.zhiwu, Model.mobphone, Model.mailbox, Model.weixinnum);
         }
         return(Ret);
     }
     catch (Exception ex)
     {
         QyJsonResult Ret = new QyJsonResult();
         new QJY.API.JH_Auth_LogB().Insert(new QJY.Data.JH_Auth_Log()
         {
             CRDate = DateTime.Now, LogContent = Model.UserName + "新增错误:" + ex.ToString()
         });
         return(Ret);
     }
 }
Exemple #22
0
        public QyJsonResult WX_WxCreateMenuNew(int agentId, string ModelCode, ref List <Senparc.Weixin.QY.Entities.Menu.BaseButton> lm)
        {
            string       strMenuURL = Qyinfo.WXUrl.TrimEnd('/') + "/View_Mobile/UI/UI_COMMON.html";
            QyJsonResult Ret        = new QyJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                var list = new JH_Auth_CommonB().GetEntities(p => p.ModelCode == ModelCode && p.TopID == 0 && p.Type == "1").OrderBy(p => p.Sort);

                foreach (var l in list)
                {
                    string url = string.Empty;
                    string key = string.Empty;
                    if (string.IsNullOrEmpty(l.MenuCode))
                    {
                        url = strMenuURL + "?funcode=" + l.ModelCode + "&corpId=" + Qyinfo.corpId;
                        key = l.ModelCode;
                    }
                    else
                    {
                        url = strMenuURL + "?funcode=" + l.ModelCode + "_" + l.MenuCode + "&corpId=" + Qyinfo.corpId;
                        key = l.ModelCode + "_" + l.MenuCode;
                    }

                    var list1 = new JH_Auth_CommonB().GetEntities(p => p.ModelCode == ModelCode && p.TopID == l.ID && p.Type == "1").OrderBy(p => p.Sort);
                    if (list1.Count() == 0)
                    {
                        lm.Add(GetButton(l.Type, l.MenuName, url, key));
                    }
                    else
                    {
                        Senparc.Weixin.QY.Entities.Menu.SubButton scb = new Senparc.Weixin.QY.Entities.Menu.SubButton();
                        scb.name = l.MenuName;

                        foreach (var l1 in list1)
                        {
                            string url1 = string.Empty;
                            string key1 = string.Empty;
                            if (string.IsNullOrEmpty(l1.MenuCode))
                            {
                                url1 = strMenuURL + "?funcode=" + l1.ModelCode + "&corpId=" + Qyinfo.corpId;
                                key1 = l1.ModelCode;
                            }
                            else
                            {
                                url1 = strMenuURL + "?funcode=" + l1.ModelCode + "_" + l1.MenuCode + "&corpId=" + Qyinfo.corpId;
                                key1 = l1.ModelCode + "_" + l1.MenuCode;
                            }

                            switch (l1.Type)
                            {
                            case "1":     //跳转URL
                                Senparc.Weixin.QY.Entities.Menu.SingleViewButton svb = new Senparc.Weixin.QY.Entities.Menu.SingleViewButton();
                                svb.name = l1.MenuName;
                                svb.type = "view";
                                svb.url  = url1;

                                scb.sub_button.Add(svb);
                                break;

                            case "2":     //点击推事件
                                Senparc.Weixin.QY.Entities.Menu.SingleClickButton skb = new Senparc.Weixin.QY.Entities.Menu.SingleClickButton();
                                skb.name = l1.MenuName;
                                skb.type = "click";
                                skb.key  = key1;

                                scb.sub_button.Add(skb);
                                break;

                            case "3":    //扫码推事件
                                Senparc.Weixin.QY.Entities.Menu.SingleScancodePushButton spb = new Senparc.Weixin.QY.Entities.Menu.SingleScancodePushButton();
                                spb.name = l1.MenuName;
                                spb.type = "scancode_push";
                                spb.key  = key1;

                                scb.sub_button.Add(spb);
                                break;

                            case "4":    //扫码推事件且弹出“消息接收中”提示框
                                Senparc.Weixin.QY.Entities.Menu.SingleScancodeWaitmsgButton swb = new Senparc.Weixin.QY.Entities.Menu.SingleScancodeWaitmsgButton();
                                swb.name = l1.MenuName;
                                swb.type = "scancode_waitmsg";
                                swb.key  = key1;

                                scb.sub_button.Add(swb);
                                break;

                            case "5":    //弹出系统拍照发图
                                Senparc.Weixin.QY.Entities.Menu.SinglePicSysphotoButton ssb = new Senparc.Weixin.QY.Entities.Menu.SinglePicSysphotoButton();
                                ssb.name = l1.MenuName;
                                ssb.type = "pic_sysphoto";
                                ssb.key  = key1;

                                scb.sub_button.Add(ssb);
                                break;

                            case "6":    //弹出拍照或者相册发图
                                Senparc.Weixin.QY.Entities.Menu.SinglePicPhotoOrAlbumButton sab = new Senparc.Weixin.QY.Entities.Menu.SinglePicPhotoOrAlbumButton();
                                sab.name = l1.MenuName;
                                sab.type = "pic_photo_or_album";
                                sab.key  = key1;

                                scb.sub_button.Add(sab);
                                break;

                            case "7":    //弹出微信相册发图器
                                Senparc.Weixin.QY.Entities.Menu.SinglePicWeixinButton sxb = new Senparc.Weixin.QY.Entities.Menu.SinglePicWeixinButton();
                                sxb.name = l1.MenuName;
                                sxb.type = "pic_weixin";
                                sxb.key  = key1;

                                scb.sub_button.Add(sxb);
                                break;

                            case "8":    //弹出地理位置选择器
                                Senparc.Weixin.QY.Entities.Menu.SingleLocationSelectButton slb = new Senparc.Weixin.QY.Entities.Menu.SingleLocationSelectButton();
                                slb.name = l1.MenuName;
                                slb.type = "location_select";
                                slb.key  = key1;

                                scb.sub_button.Add(slb);
                                break;
                            }
                        }

                        lm.Add(scb);
                    }
                }
                if (lm.Count > 0)
                {
                    Senparc.Weixin.QY.Entities.Menu.ButtonGroup buttonData = new Senparc.Weixin.QY.Entities.Menu.ButtonGroup();
                    buttonData.button = lm;

                    //Ret = CommonApi.CreateMenu(accesstoken, agentId, buttonData);
                    Ret = WX_CreateMenu(agentId, buttonData);
                }
            }
            return(Ret);
        }