Example #1
0
        /// <summary>
        /// 查询微信用户本地数据,来源自缓存
        /// </summary>
        /// <param name="paramQue"></param>
        /// <returns></returns>
        public List <WeChatUser> QueryWCUserList_Cache(Queue <QueryEntity> paramQue)
        {
            //从缓存中获取所有微信用户数据集合
            WCUserServiceLocal <WeChatUser> pUserService = new WCUserServiceLocal <WeChatUser>();
            List <WeChatUser> pList = pUserService.GetWXUsersCache();

            if (paramQue == null || paramQue.Count == 0)
            {
                return(pList);
            }

            //查询目标分组下的用户数据
            IQueryable <WeChatUser> pQueryable = CommonFunction.QueryEnumerable <WeChatUser>(pList, paramQue);

            pList = pQueryable.ToList <WeChatUser>();
            return(pList);
        }
Example #2
0
        /// <summary>
        /// 根据用户OpenID进行群发消息
        /// </summary>
        /// <param name="messageid"></param>
        /// <param name="groupId"></param>
        /// <param name="mediaId"></param>
        /// <param name="content"></param>
        /// <param name="messageType"></param>
        public void SendGroupMessageByOpenID(string messageid, string userId, string mediaId, string content, string messageType, string sex)
        {
            this.ExecuteTryCatch(() =>
            {
                if (string.IsNullOrEmpty(mediaId) && string.IsNullOrEmpty(content))
                {
                    EGExceptionOperator.ThrowX <Exception>("請輸入發送內容", EGActionCode.缺少必要参数);
                }
                //从缓存中读取微信用户缓存
                WCUserServiceLocal <WeChatUser> pUserService = new WCUserServiceLocal <WeChatUser>();
                List <WeChatUser> pList   = pUserService.GetWXUsersCache();
                List <string> pListOpenID = new List <string>();
                //筛选条件——以后扩展为动态条件,暂时只支持性别
                if (sex == "1" || sex == "2")
                {
                    int iSex = Convert.ToInt16(sex);
                    pList    = pList.Where(pEn => pEn.sex == iSex).ToList();
                }
                //
                foreach (WeChatUser pUser in pList)
                {
                    if (!pListOpenID.Contains(pUser.openid))
                    {
                        pListOpenID.Add(pUser.openid);
                    }
                }
                //转换为数组
                string[] pArray = pListOpenID.ToArray();
                //发送群发消息
                SendResult pResult = WeixinMessageSender.SendGroupMessageByOpenId(mediaId, content, messageType, pArray);
                if (!string.IsNullOrEmpty(pResult.errmsg) && pResult.errmsg != "send job submission success")
                {
                    EGExceptionOperator.ThrowX <Exception>(pResult.errmsg, pResult.errcode.ToString());
                }

                //发送完成后更新
                UpdateGsMessageAfterSend(messageid, userId, 1, string.Empty, pResult.errmsg);
            });
        }