示例#1
0
        public ActionResult Send(int?type)
        {
            ViewBag.UserGroupId = new SelectList(db.WeiChat_UserGroups.ToList(), "GroupId", "Name");
            var log = new WeiChat_GroupMessageLog();

            return(View(log));
        }
示例#2
0
        public ActionResult Send(WeiChat_GroupMessageLog model)
        {
            var res = new AjaxResponse
            {
                Success = true,
                Message = "发送成功!"
            };

            if (string.IsNullOrWhiteSpace(model.MediaId))
            {
                res.Success = false;
                res.Message = "请选择素材!";
            }
            else
            {
                try
                {
                    var messageType = GroupMessageType.image;
                    switch (model.MessageType)
                    {
                    case SendMessageTypes.Text:
                        messageType = GroupMessageType.text;
                        break;

                    case SendMessageTypes.Image:
                        messageType = GroupMessageType.image;
                        break;

                    case SendMessageTypes.Voice:
                        messageType = GroupMessageType.voice;
                        break;

                    case SendMessageTypes.Video:
                        messageType = GroupMessageType.video;
                        break;

                    case SendMessageTypes.News:
                        messageType = GroupMessageType.mpnews;
                        break;

                    default:
                        break;
                    }
                    var q = db.WeiChat_Users.AsQueryable();
                    if (model.SexType != SexTypes.All)
                    {
                        var sexType = (WeChatSexTypes)((int)model.SexType - 1);
                        q = q.Where(p => p.Sex == sexType);
                        if (!string.IsNullOrEmpty(model.UserGroupIds))
                        {
                            //var groupId = Convert.ToInt32(model.UserGroupIds);
                            //q = q.Where(p => p.GroupIds.Contains(groupId));
                            q = q.Where(p => p.GroupIds.Contains(model.UserGroupIds));
                        }
                    }
                    switch (model.MessageType)
                    {
                    case SendMessageTypes.Text:
                    case SendMessageTypes.Image:
                    case SendMessageTypes.Voice:
                    case SendMessageTypes.Video:
                    case SendMessageTypes.News:
                    {
                        SetModel(model, default(long));
                        if (model.SexType != SexTypes.All)
                        {
                            var openIds = q.Select(p => p.OpenId).ToArray();
                            if ((openIds == null) || (openIds.Length == 0))
                            {
                                res.Success = false;
                                res.Message = "没有找到符合该条件的粉丝,请手动同步粉丝后或者修改条件后再试!";
                            }
                            var result = GroupMessageApi.SendGroupMessageByOpenId(AccessToken, messageType,
                                                                                  model.MediaId, 10000, openIds);
                            if (result.errcode != ReturnCode.请求成功)
                            {
                                res.Success = false;
                                res.Message = "发送失败!" + result.errmsg;
                            }
                        }
                        else
                        {
                            var result = GroupMessageApi.SendGroupMessageByGroupId(AccessToken, model.UserGroupIds,
                                                                                   model.MediaId, messageType, true);
                            if (result.errcode != ReturnCode.请求成功)
                            {
                                res.Success = false;
                                res.Message = "发送失败!" + result.errmsg;
                            }
                        }
                        model.IsSuccess = res.Success;
                        model.Message   = res.Message;
                        db.WeiChat_GroupMessageLogs.Add(model);
                        db.SaveChanges();
                        break;
                    }

                    default:
                        break;
                    }
                }
                catch (Exception ex)
                {
                    res.Success     = false;
                    res.Message     = "发送失败!" + ex.Message;
                    model.IsSuccess = res.Success;
                    model.Message   = res.Message;
                    db.WeiChat_GroupMessageLogs.Add(model);
                    db.SaveChanges();
                }
            }
            return(Json(res));
        }