Пример #1
0
        public JsonResult GetReceiveMassTextingJsonList(int id, int pageIndex)
        {
            PageResultModel model = new PageResultModel();

            var Owner    = GetCurrentUser();
            var PlaceIds = GetVerifiedPlaceIds();

            Expression <Func <T_SocialCircleMassTexting, bool> > where = m => m.SocialCircleId == id && PlaceIds.Contains(m.SocialCircle.PlaceId) &&
                                                                         m.UserSocialCircleMassTextings.Count(um => um.UserId == Owner.Id) > 0;

            //获取指定圈子的发送给当前用户的所有群发消息
            ISocialCircleMassTextingBLL socialCircleMassTextingBll = BLLFactory <ISocialCircleMassTextingBLL> .GetBLL("SocialCircleMassTextingBLL");

            var list = socialCircleMassTextingBll.GetPageList(where, "ChatTime", false, pageIndex, 5).Select(c => new SocialCircleMassTextingModel
            {
                Name     = c.SocialCircle.Creater.UserName + ":",
                HeadPath = string.IsNullOrEmpty(c.SocialCircle.Creater.HeadPath) ? "/Images/Weixin/header_default.png" : c.SocialCircle.Creater.HeadPath,
                Content  = c.Content,
                Img      = c.Img,
                ChatTime = c.ChatTime.ToString("yyyy/MM/dd HH:mm:ss"),
            }).ToList();

            for (int i = 0; i < list.Count - 1; i++)
            {
                list[i].LastTime = list[i + 1].ChatTime;
            }
            model.Result = list;
            model.Total  = socialCircleMassTextingBll.Count(where);

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public JsonResult GetSocialCircleMassTextingJsonList(int id, int pageIndex)
        {
            PageResultModel model = new PageResultModel();

            //获取指定圈子的群发消息
            ISocialCircleMassTextingBLL massTextingBLL = BLLFactory <ISocialCircleMassTextingBLL> .GetBLL("SocialCircleMassTextingBLL");

            var list = massTextingBLL.GetPageList(m => m.SocialCircleId == id, "ChatTime", false, pageIndex, 5).ToList().Select(m => new SocialCircleMassTextingModel()
            {
                Id          = m.Id,
                Content     = m.Content,
                Img         = m.Img,
                ChatTime    = m.ChatTime.ToString("yyyy/MM/dd HH:mm:ss"),
                MemberIds   = MemberIdsToStr(m.UserSocialCircleMassTextings.Select(um => um.UserId).ToArray()),
                MemberNames = MemberNamesToStr(m.UserSocialCircleMassTextings.Select(um => um.User.UserName).ToArray()),
                MemberCount = m.UserSocialCircleMassTextings.Count
            }).ToList();

            for (int i = 1; i < list.Count; i++)
            {
                list[i].LastTime = list[i - 1].ChatTime;
            }
            model.Result = list;
            model.Total  = massTextingBLL.Count(m => m.SocialCircleId == id);

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public JsonResult SendImg(int id, string memberIds, string imgs)
        {
            JsonResultModel jm = new JsonResultModel();

            try
            {
                var returnImgs = GetMultimedia(ConstantParam.SOCIAL_CIRCLE_CHAT_DIR, imgs);
                foreach (var img in returnImgs.Split(';'))
                {
                    ISocialCircleMassTextingBLL socialCircleMassTextingBll = BLLFactory <ISocialCircleMassTextingBLL> .GetBLL("SocialCircleMassTextingBLL");

                    T_SocialCircleMassTexting socialCircleMassTexting = new T_SocialCircleMassTexting()
                    {
                        SocialCircleId = id,//所属圈子id
                        ChatTime       = DateTime.Now,
                        Img            = img
                    };
                    foreach (var memberId in memberIds.Split(','))
                    {
                        if (!string.IsNullOrEmpty(memberId))
                        {
                            socialCircleMassTexting.UserSocialCircleMassTextings.Add(new R_UserSocialCircleMassTexting()
                            {
                                UserId   = Convert.ToInt32(memberId),
                                IsNoRead = true
                            });
                        }
                    }
                    socialCircleMassTextingBll.Save(socialCircleMassTexting);
                }

                try
                {
                    if (!AccessTokenContainer.CheckRegistered(ConstantParam.AppId))
                    {
                        AccessTokenContainer.Register(ConstantParam.AppId, ConstantParam.AppSecret);
                    }
                    var accessToken = AccessTokenContainer.GetAccessToken(ConstantParam.AppId, true);

                    //发送模板消息
                    foreach (var memberId in memberIds.Split(','))
                    {
                        if (!string.IsNullOrEmpty(memberId))
                        {
                            int      userId  = Convert.ToInt32(memberId);
                            IUserBLL userBll = BLLFactory <IUserBLL> .GetBLL("UserBLL");

                            var user = userBll.GetEntity(u => u.Id == userId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);
                            if (user != null && !string.IsNullOrEmpty(user.WeixinOpenId))
                            {
                                SendTemplateMessage(id, user.WeixinOpenId, accessToken);
                            }
                        }
                    }
                }
                catch
                {
                    jm.Msg = "消息提醒发生异常";
                }
                jm.Result = new
                {
                    MassImgPaths = returnImgs.Split(';'),
                    ChatTime     = DateTime.Now.ToString("MM/dd HH:mm"),
                };
            }
            catch
            {
                jm.Msg = "发送失败";
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }