예제 #1
0
        ////[SupportFilter]
        public JsonResult Create(WC_Group model)
        {
            WC_OfficalAccounts wcmodel = account_BLL.GetCurrentAccount();

            model.OfficalAccountId = wcmodel.Id.ToString();
            model.Count            = "0";
            if (model != null)
            {
                if (m_BLL.m_Rep.Create(model))
                {
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",Name" + model.Name, "成功", "添加", "WC_Group");
                    return(Json(JsonHandler.CreateMessage(1, Resource.Create)));
                }
                else
                {
                    string ErrorCol = errors.Error;
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",Name" + model.Name + "," + ErrorCol, "失败", "添加", "WC_Group");
                    return(Json(JsonHandler.CreateMessage(0, Resource.Create + ErrorCol)));
                }
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(0, Resource.Create)));
            }
        }
        public virtual WC_OfficalAccountsModel GetById(string id)
        {
            if (IsExists(id))
            {
                WC_OfficalAccounts      entity = m_Rep.GetById(id);
                WC_OfficalAccountsModel model  = new WC_OfficalAccountsModel();
                model.Id           = entity.Id;
                model.OfficalId    = entity.OfficalId;
                model.OfficalName  = entity.OfficalName;
                model.OfficalCode  = entity.OfficalCode;
                model.OfficalPhoto = entity.OfficalPhoto;
                model.OfficalKey   = entity.OfficalKey;
                model.ApiUrl       = entity.ApiUrl;
                model.Token        = entity.Token;
                model.AppId        = entity.AppId;
                model.AppSecret    = entity.AppSecret;
                model.AccessToken  = entity.AccessToken;
                model.Remark       = entity.Remark;
                model.Enable       = entity.Enable;
                model.IsDefault    = entity.IsDefault;
                model.Category     = entity.Category;
                model.CreateTime   = entity.CreateTime;
                model.CreateBy     = entity.CreateBy;
                model.ModifyTime   = entity.ModifyTime;
                model.ModifyBy     = entity.ModifyBy;

                return(model);
            }
            else
            {
                return(null);
            }
        }
 ////[SupportFilter]
 public JsonResult Create(WC_OfficalAccounts model)
 {
     if (model != null)
     {
         model.CreateTime = ResultHelper.NowTime.ToString("yyyy-MM-dd HH:mm:ss");
         model.CreateBy   = GetUserId();
         model.ModifyTime = ResultHelper.NowTime.ToString("yyyy-MM-dd HH:mm:ss");
         model.ModifyBy   = GetUserId();
         if (m_BLL.m_Rep.Create(model))
         {
             model.ApiUrl = WebChatPara.ApiUrl + model.Id;
             m_BLL.m_Rep.Update(model);
             if (model.IsDefault == "true")
             {
                 m_BLL.SetDefault(model.Id);
             }
             LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalName" + model.OfficalName, "成功", "创建", "WC_OfficalAccounts");
             return(Json(JsonHandler.CreateMessage(1, Resource.InsertSucceed)));
         }
         else
         {
             string ErrorCol = errors.Error;
             LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalName" + model.OfficalName + "," + ErrorCol, "失败", "创建", "WC_OfficalAccounts");
             return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail + ErrorCol)));
         }
     }
     else
     {
         return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail)));
     }
 }
        ////[SupportFilter]
        public JsonResult Delete(string id)
        {
            if (!string.IsNullOrWhiteSpace(id))
            {
                WC_OfficalAccounts model = m_BLL.m_Rep.Find(Convert.ToInt32(id));
                if (model.IsDefault == "true")
                {
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + id + "删除失败,因为当前公众号为默认公众号", "失败", "删除", "WC_OfficalAccounts");
                    return(Json(JsonHandler.CreateMessage(0, Resource.DeleteFail + ",因为当前公众号为默认公众号")));
                }

                if (m_BLL.m_Rep.Delete(model) > 0)
                {
                    LogHandler.WriteServiceLog(GetUserId(), "Id:" + id, "成功", "删除", "WC_OfficalAccounts");
                    return(Json(JsonHandler.CreateMessage(1, Resource.DeleteSucceed)));
                }
                else
                {
                    string ErrorCol = errors.Error;
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + id + "," + ErrorCol, "失败", "删除", "WC_OfficalAccounts");
                    return(Json(JsonHandler.CreateMessage(0, Resource.DeleteFail + ErrorCol)));
                }
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(0, Resource.DeleteFail)));
            }
        }
예제 #5
0
        /// <summary>
        /// 获得自动回复的列表
        /// </summary>
        /// <param name="pager">分页</param>
        /// <param name="queryStr">查询条件</param>
        /// <param name="messageRule">类型</param>
        /// <param name="matchKey">关键字</param>
        /// <param name="category">规则</param>
        /// <returns></returns>
        public JsonResult GetList(GridPager pager, string queryStr, int messageRule, string matchKey, int?category = 0)
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
            //组合查询条件
            var predicate = PredicateBuilder.True <WC_MessageResponse>();

            predicate = predicate.And(x => string.Equals(x.OfficalAccountId, model.Id.ToString(), StringComparison.OrdinalIgnoreCase));
            predicate = predicate.And(x => x.MessageRule == messageRule.ToString());

            if (category != 0)
            {
                predicate = predicate.And(x => x.Category == category.ToString());
            }

            if (!string.IsNullOrEmpty(matchKey))
            {
                predicate = predicate.And(x => x.MatchKey == matchKey);
            }

            List <WC_MessageResponse>     list = m_BLL.GetList(ref pager, predicate, queryStr);
            GridRows <WC_MessageResponse> grs  = new GridRows <WC_MessageResponse>();

            grs.rows  = list;
            grs.total = pager.totalRows;
            return(Json(grs));
        }
예제 #6
0
        ////[SupportFilter]
        public ActionResult Index()
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();

            ViewBag.CurrentOfficalAcount = model.OfficalName;
            return(View());
        }
예제 #7
0
        public WC_OfficalAccountsModel GetCurrentAccount()
        {
            WC_OfficalAccounts entity = m_Rep.GetCurrentAccount();

            if (entity == null)
            {
                return(new WC_OfficalAccountsModel());
            }

            WC_OfficalAccountsModel model = new WC_OfficalAccountsModel();

            model.Id           = entity.Id;
            model.OfficalName  = entity.OfficalName;
            model.OfficalCode  = entity.OfficalCode;
            model.OfficalPhoto = entity.OfficalPhoto;
            model.ApiUrl       = entity.ApiUrl;
            model.Token        = entity.Token;
            model.AppId        = entity.AppId;
            model.AppSecret    = entity.AppSecret;
            model.AccessToken  = entity.AccessToken;
            model.Remark       = entity.Remark;
            model.Enable       = entity.Enable;
            model.IsDefault    = entity.IsDefault;
            model.Category     = entity.Category;
            model.CreateTime   = entity.CreateTime;
            model.CreateBy     = entity.CreateBy;
            model.ModifyTime   = entity.ModifyTime;
            model.ModifyBy     = entity.ModifyBy;
            return(model);
        }
예제 #8
0
        ////[SupportFilter(ActionName = "Edit")]
        public JsonResult PostData(WC_MessageResponse model)
        {
            WC_OfficalAccounts accountModel = account_BLL.GetCurrentAccount();

            //if (string.IsNullOrEmpty(model.Id))
            //{
            //    model.Id = ResultHelper.NewId;
            //}

            model.CreateBy         = GetUserId();
            model.CreateTime       = ResultHelper.NowTime.ToString("yyyy-MM-dd HH:mm:ss");
            model.ModifyBy         = GetUserId();
            model.ModifyTime       = ResultHelper.NowTime.ToString("yyyy-MM-dd HH:mm:ss");
            model.OfficalAccountId = accountModel.Id.ToString();
            model.Enable           = "true";
            model.IsDefault        = "true";
            if (m_BLL.PostData(ref errors, model))
            {
                LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalAccountId" + model.OfficalAccountId, "成功", "保存", "WC_MessageResponse");
                return(Json(JsonHandler.CreateMessage(1, Resource.SaveSucceed)));
            }
            else
            {
                string ErrorCol = errors.Error;
                LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalAccountId" + model.OfficalAccountId + "," + ErrorCol, "失败", "保存", "WC_MessageResponse");
                return(Json(JsonHandler.CreateMessage(0, Resource.SaveFail + ErrorCol)));
            }
        }
예제 #9
0
        ////[SupportFilter(ActionName = "Edit")]
        public ActionResult MoveUser(string id)
        {
            ViewBag.UserIds = id.ToString();
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
            List <WC_Group>    list  = group_BLL.m_Rep.FindList(a => a.OfficalAccountId == model.Id.ToString()).ToList();

            return(View(list));
        }
예제 #10
0
 public int Create(WC_OfficalAccounts entity)
 {
     using (AppsDBEntities db = new AppsDBEntities())
     {
         db.WC_OfficalAccounts.Add(entity);
         return(db.SaveChanges());
     }
 }
예제 #11
0
 public int Edit(WC_OfficalAccounts entity)
 {
     using (AppsDBEntities db = new AppsDBEntities())
     {
         db.WC_OfficalAccounts.Attach(entity);
         db.Entry <WC_OfficalAccounts>(entity).State = EntityState.Modified;
         //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
         return(db.SaveChanges());
     }
 }
예제 #12
0
        public WC_OfficalAccounts GetCurrentAccount()
        {
            WC_OfficalAccounts entity = m_Rep.Find(p => p.IsDefault == "true");

            if (entity == null)
            {
                return(new WC_OfficalAccounts());
            }
            return(entity);
        }
예제 #13
0
 public int Delete(string id)
 {
     using (AppsDBEntities db = new AppsDBEntities())
     {
         WC_OfficalAccounts entity = db.WC_OfficalAccounts.SingleOrDefault(a => a.Id == id);
         if (entity != null)
         {
             db.WC_OfficalAccounts.Remove(entity);
         }
         return(db.SaveChanges());
     }
 }
예제 #14
0
        ////[SupportFilter(ActionName = "Edit")]
        public ActionResult GetMenu()
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
            string             token = model.AccessToken;
            var result = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenu(token);

            if (result == null)
            {
                return(Json(new { error = "菜单不存在或验证失败!" }, JsonRequestBehavior.AllowGet));
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #15
0
 public bool IsExist(string id)
 {
     using (AppsDBEntities db = new AppsDBEntities())
     {
         WC_OfficalAccounts entity = GetById(id);
         if (entity != null)
         {
             return(true);
         }
         return(false);
     }
 }
예제 #16
0
        public virtual async Task <Tuple <ValidationErrors, bool> > CreateAsync(WC_OfficalAccountsModel model)
        {
            ValidationErrors errors = new ValidationErrors();

            try
            {
                WC_OfficalAccounts entity = await m_Rep.GetByIdAsync(model.Id);

                if (entity != null)
                {
                    errors.Add(Resource.PrimaryRepeat);
                    return(new Tuple <ValidationErrors, bool>(errors, false));
                }
                entity              = new WC_OfficalAccounts();
                entity.Id           = model.Id;
                entity.OfficalId    = model.OfficalId;
                entity.OfficalName  = model.OfficalName;
                entity.OfficalCode  = model.OfficalCode;
                entity.OfficalPhoto = model.OfficalPhoto;
                entity.OfficalKey   = model.OfficalKey;
                entity.ApiUrl       = model.ApiUrl;
                entity.Token        = model.Token;
                entity.AppId        = model.AppId;
                entity.AppSecret    = model.AppSecret;
                entity.AccessToken  = model.AccessToken;
                entity.Remark       = model.Remark;
                entity.Enable       = model.Enable;
                entity.IsDefault    = model.IsDefault;
                entity.Category     = model.Category;
                entity.CreateTime   = model.CreateTime;
                entity.CreateBy     = model.CreateBy;
                entity.ModifyTime   = model.ModifyTime;
                entity.ModifyBy     = model.ModifyBy;


                if (await m_Rep.CreateAsync(entity))
                {
                    return(new Tuple <ValidationErrors, bool>(errors, true));
                }
                else
                {
                    errors.Add(Resource.InsertFail);
                    return(new Tuple <ValidationErrors, bool>(errors, false));
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(new Tuple <ValidationErrors, bool>(errors, false));
            }
        }
예제 #17
0
        /// <summary>
        /// OAuthScope.snsapi_base方式回调
        /// </summary>
        /// <param name="code"></param>
        /// <param name="state"></param>
        /// <param name="returnUrl">用户最初尝试进入的页面</param>
        /// <returns></returns>
        public ActionResult BaseCallback(string code, string state, string returnUrl)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(Content("您拒绝了授权!"));
            }

            if (state != Session["State"] as string)
            {
                //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下,
                //建议用完之后就清空,将其一次性使用
                //实际上可以存任何想传递的数据,比如用户ID,并且需要结合例如下面的Session["OAuthAccessToken"]进行验证
                return(Content("验证失败!请从正规途径进入!"));
            }
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
            //通过,用code换取access_token
            var result = OAuthApi.GetAccessToken(model.AppId, model.AppSecret, code);

            if (result.errcode != ReturnCode.请求成功)
            {
                return(Content("错误:" + result.errmsg));
            }

            //下面2个数据也可以自己封装成一个类,储存在数据库中(建议结合缓存)
            //如果可以确保安全,可以将access_token存入用户的cookie中,每一个人的access_token是不一样的
            Session["OAuthAccessTokenStartTime"] = DateTime.Now;
            Session["OAuthAccessToken"]          = result;

            //因为这里还不确定用户是否关注本微信,所以只能试探性地获取一下
            OAuthUserInfo userInfo = null;

            try
            {
                //已关注,可以得到详细信息
                userInfo = OAuthApi.GetUserInfo(result.access_token, result.openid);

                if (!string.IsNullOrEmpty(returnUrl))
                {
                    return(Redirect(returnUrl));
                }


                ViewData["ByBase"] = true;
                return(View("UserInfoCallback", userInfo));
            }
            catch (ErrorJsonResultException ex)
            {
                //未关注,只能授权,无法得到详细信息
                //这里的 ex.JsonResult 可能为:"{\"errcode\":40003,\"errmsg\":\"invalid openid\"}"
                return(Content("用户已授权,授权Token:" + result));
            }
        }
예제 #18
0
        /// <summary>
        /// OAuthScope.snsapi_userinfo方式回调
        /// </summary>
        /// <param name="code"></param>
        /// <param name="state"></param>
        /// <param name="returnUrl">用户最初尝试进入的页面</param>
        /// <returns></returns>
        public ActionResult UserInfoCallback(string code, string state, string returnUrl)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(Content("您拒绝了授权!"));
            }

            if (state != Session["State"] as string)
            {
                //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下,
                //建议用完之后就清空,将其一次性使用
                //实际上可以存任何想传递的数据,比如用户ID,并且需要结合例如下面的Session["OAuthAccessToken"]进行验证
                return(Content("验证失败!请从正规途径进入!"));
            }

            OAuthAccessTokenResult result = null;

            //通过,用code换取access_token
            try
            {
                WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
                result = OAuthApi.GetAccessToken(model.AppId, model.AppSecret, code);
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
            if (result.errcode != ReturnCode.请求成功)
            {
                return(Content("错误:" + result.errmsg));
            }
            //下面2个数据也可以自己封装成一个类,储存在数据库中(建议结合缓存)
            //如果可以确保安全,可以将access_token存入用户的cookie中,每一个人的access_token是不一样的
            Session["OAuthAccessTokenStartTime"] = DateTime.Now;
            Session["OAuthAccessToken"]          = result;

            //因为第一步选择的是OAuthScope.snsapi_userinfo,这里可以进一步获取用户详细信息
            try
            {
                if (!string.IsNullOrEmpty(returnUrl))
                {
                    return(Redirect(returnUrl));
                }

                OAuthUserInfo userInfo = OAuthApi.GetUserInfo(result.access_token, result.openid);
                return(View(userInfo));
            }
            catch (ErrorJsonResultException ex)
            {
                return(Content(ex.Message));
            }
        }
예제 #19
0
        public JsonResult GetCurrentAcountState()
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();

            if (string.IsNullOrEmpty(model.AppId) || string.IsNullOrEmpty(model.AppSecret) || string.IsNullOrEmpty(model.AccessToken))
            {
                return(Json(JsonHandler.CreateMessage(0, "当前公众号没有编辑按钮功能!")));
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(1, model.AccessToken)));
            }
        }
        public virtual bool Edit(ref ValidationErrors errors, WC_OfficalAccountsModel model)
        {
            try
            {
                WC_OfficalAccounts entity = m_Rep.GetById(model.Id);
                if (entity == null)
                {
                    errors.Add(Resource.Disable);
                    return(false);
                }
                entity.Id           = model.Id;
                entity.OfficalId    = model.OfficalId;
                entity.OfficalName  = model.OfficalName;
                entity.OfficalCode  = model.OfficalCode;
                entity.OfficalPhoto = model.OfficalPhoto;
                entity.OfficalKey   = model.OfficalKey;
                entity.ApiUrl       = model.ApiUrl;
                entity.Token        = model.Token;
                entity.AppId        = model.AppId;
                entity.AppSecret    = model.AppSecret;
                entity.AccessToken  = model.AccessToken;
                entity.Remark       = model.Remark;
                entity.Enable       = model.Enable;
                entity.IsDefault    = model.IsDefault;
                entity.Category     = model.Category;
                entity.CreateTime   = model.CreateTime;
                entity.CreateBy     = model.CreateBy;
                entity.ModifyTime   = model.ModifyTime;
                entity.ModifyBy     = model.ModifyBy;



                if (m_Rep.Edit(entity))
                {
                    return(true);
                }
                else
                {
                    errors.Add(Resource.NoDataChange);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(false);
            }
        }
예제 #21
0
        public bool SetDefault(int id)
        {
            WC_OfficalAccounts model = m_Rep.Find(id);

            if (model == null)
            {
                return(false);
            }
            else
            {
                //更新所有为不默认0
                //设置当前为默认1
                model.IsDefault = "true";
                return(m_Rep.Update(model));
            }
        }
예제 #22
0
 public bool Create(ref ValidationErrors errors, WC_OfficalAccountsModel model)
 {
     try
     {
         WC_OfficalAccounts entity = m_Rep.GetById(model.Id);
         if (entity != null)
         {
             errors.Add(Suggestion.PrimaryRepeat);
             return(false);
         }
         entity              = new WC_OfficalAccounts();
         entity.AccessToken  = model.AccessToken;
         entity.ApiUrl       = model.ApiUrl;
         entity.AppId        = model.AppId;
         entity.AppSecret    = model.AppSecret;
         entity.Category     = model.Category;
         entity.CreateBy     = model.CreateBy;
         entity.CreateTime   = model.CreateTime;
         entity.Enable       = model.Enable;
         entity.Id           = model.Id;
         entity.IsDefault    = model.IsDefault;
         entity.ModifyBy     = model.ModifyBy;
         entity.ModifyTime   = model.ModifyTime;
         entity.OfficalCode  = model.OfficalCode;
         entity.OfficalId    = model.OfficalId;
         entity.OfficalKey   = model.OfficalKey;
         entity.OfficalName  = model.OfficalName;
         entity.OfficalPhoto = model.OfficalPhoto;
         entity.Remark       = model.Remark;
         entity.Token        = model.Token;
         if (m_Rep.Create(entity) == 1)
         {
             return(true);
         }
         else
         {
             errors.Add(Suggestion.InsertFail);
             return(false);
         }
     }
     catch (Exception ex)
     {
         errors.Add(ex.Message);
         ExceptionHander.WriteException(ex);
         return(false);
     }
 }
예제 #23
0
        public JsonResult GetListProperty(GridPager pager, int messageRule)
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
            //组合查询条件
            var predicate = PredicateBuilder.True <WC_MessageResponse>();

            predicate = predicate.And(x => string.Equals(x.OfficalAccountId, model.Id.ToString(), StringComparison.OrdinalIgnoreCase));
            predicate = predicate.And(x => x.MessageRule == messageRule.ToString());


            List <WC_MessageResponse>     list = m_BLL.GetListProperty(ref pager, predicate);
            GridRows <WC_MessageResponse> grs  = new GridRows <WC_MessageResponse>();

            grs.rows  = list;
            grs.total = pager.totalRows;
            return(Json(grs));
        }
예제 #24
0
        ////[SupportFilter(ActionName = "Index")]
        public JsonResult GetNetList()
        {
            WC_OfficalAccounts model     = account_BLL.GetCurrentAccount();
            GroupsJson         groupjson = GroupsApi.Get(model.AccessToken);

            foreach (var item in groupjson.groups)
            {
                WC_Group entity = new WC_Group();
                if (m_BLL.m_Rep.Find(item.id) == null)
                {
                    entity.Name             = item.name;
                    entity.Count            = item.count.ToString();
                    entity.OfficalAccountId = model.Id.ToString();
                    m_BLL.m_Rep.Create(entity);
                }
            }
            return(Json(JsonHandler.CreateMessage(1, "获取成功")));
        }
예제 #25
0
        ////[SupportFilter]
        public JsonResult SyncUser(string id, string officeId)
        {
            if (!string.IsNullOrWhiteSpace(id))
            {
                //填充数据
                string[] arrs = id.Split(',');
                List <BatchGetUserInfoData> list = new List <BatchGetUserInfoData>();
                foreach (var m in arrs)
                {
                    list.Add(new BatchGetUserInfoData()
                    {
                        openid = m
                    });
                }

                //批量同步数据
                WC_OfficalAccounts accountModel = account_BLL.m_Rep.Find(Convert.ToInt32(officeId));
                var batchList = Senparc.Weixin.MP.AdvancedAPIs.UserApi.BatchGetUserInfo(accountModel.AccessToken, list);
                foreach (var info in batchList.user_info_list)
                {
                    WC_User userModel = m_BLL.m_Rep.Find(a => a.OpenId == info.openid);
                    if (userModel != null)
                    {
                        userModel.City       = info.city;
                        userModel.OpenId     = info.openid;
                        userModel.OpenId     = info.openid;
                        userModel.HeadImgUrl = info.headimgurl;
                        userModel.Language   = info.language;
                        userModel.NickName   = info.nickname;
                        userModel.Province   = info.province;
                        userModel.Sex        = info.sex.ToString();
                        m_BLL.m_Rep.Update(userModel);
                    }
                }

                LogHandler.WriteServiceLog(GetUserId(), "Ids:" + id, "成功", "删除", "WC_User");
                return(Json(JsonHandler.CreateMessage(1, Resource.SaveSucceed)));
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(0, Resource.SaveFail)));
            }
        }
예제 #26
0
        public ActionResult CreateMenu(GetMenuResultFull resultFull, MenuMatchRule menuMatchRule)
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
            string             token = model.AccessToken;
            var useAddCondidionalApi = menuMatchRule != null && !menuMatchRule.CheckAllNull();
            var apiName = string.Format("使用接口:{0}。", (useAddCondidionalApi ? "个性化菜单接口" : "普通自定义菜单接口"));

            try
            {
                //重新整理按钮信息
                WxJsonResult     result      = null;
                IButtonGroupBase buttonGroup = null;
                if (useAddCondidionalApi)
                {
                    //个性化接口
                    buttonGroup = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull, new ConditionalButtonGroup()).menu;

                    var addConditionalButtonGroup = buttonGroup as ConditionalButtonGroup;
                    addConditionalButtonGroup.matchrule = menuMatchRule;
                    result   = Senparc.Weixin.MP.CommonAPIs.CommonApi.CreateMenuConditional(token, addConditionalButtonGroup);
                    apiName += string.Format("menuid:{0}。", (result as CreateMenuConditionalResult).menuid);
                }
                else
                {
                    //普通接口
                    buttonGroup = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                    result      = Senparc.Weixin.MP.CommonAPIs.CommonApi.CreateMenu(token, buttonGroup);
                }

                var json = new
                {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。" + apiName
                };
                return(Json(json));
            }
            catch (Exception ex)
            {
                var json = new { Success = false, Message = string.Format("更新失败:{0}。{1}", ex.Message, apiName) };
                return(Json(json));
            }
        }
예제 #27
0
 ////[SupportFilter(ActionName = "Delete")]
 public ActionResult DeleteMenu()
 {
     try
     {
         WC_OfficalAccounts model = account_BLL.GetCurrentAccount();
         string             token = model.AccessToken;
         var result = Senparc.Weixin.MP.CommonAPIs.CommonApi.DeleteMenu(token);
         var json   = new
         {
             Success = result.errmsg == "ok",
             Message = result.errmsg
         };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         var json = new { Success = false, Message = ex.Message };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
 }
예제 #28
0
        ////[SupportFilter]
        // GET: WC/MenuSetting
        public ActionResult Index()
        {
            WC_OfficalAccounts model = account_BLL.GetCurrentAccount();

            ViewBag.CurrentOfficalAcount = model;
            GetMenuResult result = new GetMenuResult(new ButtonGroup());

            //初始化
            for (int i = 0; i < 3; i++)
            {
                var subButton = new SubButton();
                for (int j = 0; j < 5; j++)
                {
                    var singleButton = new SingleClickButton();
                    subButton.sub_button.Add(singleButton);
                }
            }

            return(View(result));
        }
예제 #29
0
        /// <summary>
        /// 处理语音请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnVoiceRequest(RequestMessageVoice requestMessage)
        {
            WC_OfficalAccountsBLL account_BLL = new WC_OfficalAccountsBLL()
            {
                m_Rep = new WC_OfficalAccountsRepository()
            };

            //获得当前公众号
            WC_OfficalAccounts account = account_BLL.m_Rep.Find(Convert.ToInt32(Id));
            var responseMessage        = CreateResponseMessage <ResponseMessageMusic>();
            //上传缩略图
            var uploadResult = Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryMedia(account.AccessToken, UploadMediaFileType.image,
                                                                                            Server.GetMapPath("~/Images/Logo.jpg"));

            //设置音乐信息
            responseMessage.Music.Title        = "天籁之音";
            responseMessage.Music.Description  = "播放您上传的语音";
            responseMessage.Music.MusicUrl     = "http://sdk.weixin.senparc.com/Media/GetVoice?mediaId=" + requestMessage.MediaId;
            responseMessage.Music.HQMusicUrl   = "http://sdk.weixin.senparc.com/Media/GetVoice?mediaId=" + requestMessage.MediaId;
            responseMessage.Music.ThumbMediaId = uploadResult.media_id;
            return(responseMessage);
        }
예제 #30
0
        /// <summary>
        /// 保存数据
        /// </summary>
        public virtual void SaveImportData(IEnumerable <WC_OfficalAccountsModel> list)
        {
            try
            {
                using (DBContainer db = new DBContainer())
                {
                    foreach (var model in list)
                    {
                        WC_OfficalAccounts entity = new WC_OfficalAccounts();
                        entity.Id           = ResultHelper.NewId;
                        entity.OfficalId    = model.OfficalId;
                        entity.OfficalName  = model.OfficalName;
                        entity.OfficalCode  = model.OfficalCode;
                        entity.OfficalPhoto = model.OfficalPhoto;
                        entity.OfficalKey   = model.OfficalKey;
                        entity.ApiUrl       = model.ApiUrl;
                        entity.Token        = model.Token;
                        entity.AppId        = model.AppId;
                        entity.AppSecret    = model.AppSecret;
                        entity.AccessToken  = model.AccessToken;
                        entity.Remark       = model.Remark;
                        entity.Enable       = model.Enable;
                        entity.IsDefault    = model.IsDefault;
                        entity.Category     = model.Category;
                        entity.CreateTime   = ResultHelper.NowTime;
                        entity.CreateBy     = model.CreateBy;
                        entity.ModifyTime   = model.ModifyTime;
                        entity.ModifyBy     = model.ModifyBy;

                        db.WC_OfficalAccounts.Add(entity);
                    }
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }