예제 #1
0
        /// <summary>
        /// 购买力度搜索结果设置标签
        /// </summary>
        /// <param name="ids"></param>
        /// <param name="labelids"></param>
        /// <returns></returns>
        public JsonResult SetAllMembersLabel(MemberPowerQuery query, string labels)
        {
            var lids = labels.Split(',').Select(s => long.Parse(s));

            //  MemberApplication.SetMembersLabel(query, lids);
            return(Json(new { Success = true }));
        }
예제 #2
0
        public JsonResult SendAllCoupon(MemberPowerQuery query, string couponIds)
        {
            var cIds = couponIds.Split(',').Select(s => long.Parse(s));

            if (cIds.Count() == 0)
            {
                throw new MallException("请选择优惠券!");
            }
            CouponApplication.SendCoupon(query, cIds);
            return(Json(new Result {
                success = true, msg = "发送成功!"
            }));
        }
예제 #3
0
        /// <summary>
        /// 发送短信,根据搜索条件
        /// </summary>
        /// <param name="query"></param>
        /// <param name="couponIds"></param>
        public static void SendMsg(MemberPowerQuery query, string sendCon, string labelinfos = "会员分组")
        {
            var messagePlugin = PluginsManagement.GetPlugin <IMessagePlugin>("Himall.Plugin.Message.SMS");
            int result        = 0;

            //循环执行发送
            for (int i = 0; i < int.MaxValue; i++)
            {
                query.PageNo   = i + 1;
                query.PageSize = 1000;
                var members = MemberApplication.GetPurchasingPowerMember(query);

                string[]      dests  = members.Models.Select(e => e.CellPhone).ToArray();
                List <string> phones = new List <string>();
                foreach (var dest in dests)
                {
                    if (messagePlugin.Biz.CheckDestination(dest))
                    {
                        phones.Add(dest);
                        result++;
                    }
                }

                messagePlugin.Biz.SendMessages(phones.ToArray(), sendCon);

                if (members.Models.Count == 0)
                {
                    break;
                }
            }

            //记录发送历史
            if (result > 0)
            {
                var sendRecord = new Himall.Model.SendMessageRecordInfo
                {
                    ContentType = Himall.CommonModel.WXMsgType.wxcard,
                    MessageType = Himall.CommonModel.MsgType.Coupon,
                    SendContent = "",
                    SendState   = 1,
                    SendTime    = DateTime.Now,
                    ToUserLabel = labelinfos                     //"会员分组"
                };
                WXMsgTemplateApplication.AddSendRecord(sendRecord);
            }
            else
            {
                throw new HimallException("此标签下无符发送的会员;");
            }
        }
예제 #4
0
        /// <summary>
        /// 指定用户发送微信消息
        /// </summary>
        /// <param name="userIds"></param>
        /// <param name="msgtype"></param>
        /// <param name="mediaid"></param>
        /// <param name="msgcontent"></param>
        public static void SendWeiMessage(MemberPowerQuery query, string msgtype, string mediaid = "", string msgcontent = "")
        {
            Himall.CommonModel.WXMsgType type;
            if (Enum.TryParse <Himall.CommonModel.WXMsgType>(msgtype, out type))
            {
                List <string> allopenIds = new List <string>();
                //循环执行发送
                for (int i = 0; i < int.MaxValue; i++)
                {
                    query.PageNo   = i + 1;
                    query.PageSize = 1000;
                    var members = MemberApplication.GetPurchasingPowerMember(query);
                    var userIds = members.Models.Select(p => p.Id).ToArray();
                    var openIds = _iMemberService.GetOpenIdByUserIds(userIds);
                    foreach (var item in openIds)
                    {
                        allopenIds.Add(item);
                    }
                    if (members.Models.Count == 0)
                    {
                        break;
                    }
                }

                var set    = SiteSettingApplication.GetSiteSettings();
                var result = WXMsgTemplateApplication.SendWXMsg(allopenIds, type, msgcontent, mediaid, set.WeixinAppId, set.WeixinAppSecret);
                if (result.errCode == "0" || result.errMsg.Contains("success"))
                {
                    SendMessageRecordInfo sendRecord = new SendMessageRecordInfo()
                    {
                        ContentType = type,
                        MessageType = MsgType.WeiXin,
                        SendContent = msgcontent,
                        SendTime    = DateTime.Now,
                        ToUserLabel = "会员分组",
                        SendState   = 1
                    };
                    WXMsgTemplateApplication.AddSendRecord(sendRecord);
                }
                else
                {
                    throw new HimallException(result.errCode);
                }
            }
        }
예제 #5
0
        public JsonResult MemberPowerList(MemberPowerQuery query)
        {
            var result = MemberApplication.GetPurchasingPowerMember(query);

            var models = result.Models.Select(item =>
                                              new
            {
                Id                  = item.Id,
                UserName            = item.UserName,
                CellPhone           = item.CellPhone,
                GradeName           = item.GradeName,
                NetAmount           = item.NetAmount,
                OrderNumber         = item.OrderNumber,
                LastConsumptionTime = item.LastConsumptionTime.HasValue ? item.LastConsumptionTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
                CategoryNames       = item.CategoryNames,
            }
                                              );

            var model = new { rows = models, total = result.Total, ids = string.Join(",", models.Select(p => p.Id)) };

            return(Json(model, true));
        }
예제 #6
0
        /// <summary>
        /// 会员购买力列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public static QueryPageModel <DTO.MemberPurchasingPower> GetPurchasingPowerMember(MemberPowerQuery query)
        {
            var result = _iMemberService.GetPurchasingPowerMember(query);
            QueryPageModel <DTO.MemberPurchasingPower> model = new QueryPageModel <MemberPurchasingPower>();

            model.Total  = result.Total;
            model.Models = AutoMapper.Mapper.Map <List <DTO.MemberPurchasingPower> >(result.Models);

            var userIds = model.Models.Select(p => p.Id).ToArray();

            var memberCategorys = _iMemberService.GetMemberBuyCategoryByUserIds(userIds);

            var grades = MemberGradeApplication.GetMemberGradeList();

            var integrals = MemberIntegralApplication.GetMemberIntegrals(userIds);

            foreach (var item in model.Models)
            {
                var intergral = integrals.Where(a => a.MemberId == item.Id).Select(a => a.HistoryIntegrals).FirstOrDefault();
                //填充等级数据
                item.GradeName = MemberGradeApplication.GetMemberGradeByIntegral(grades, intergral).GradeName;

                //填充分类数据
                var categoryNames = memberCategorys.Where(p => p.UserId == item.Id).Select(p => p.CategoryName).Take(3).ToArray();
                if (categoryNames.Length == 0)
                {
                    continue;
                }
                item.CategoryNames = string.Join(",", categoryNames);
            }

            return(model);
        }
예제 #7
0
        /// <summary>
        /// 结果发送微信消息
        /// </summary>
        /// <param name="ids"></param>
        /// <param name="msgtype"></param>
        /// <param name="mediaid"></param>
        /// <param name="msgcontent"></param>
        /// <returns></returns>
        public JsonResult SendAllWXGroupMessage(MemberPowerQuery query, string msgtype, string mediaid = "", string msgcontent = "")
        {
            MemberApplication.SendWeiMessage(query, msgtype, mediaid, msgcontent);

            return(Json(new { success = true, msg = "发送成功!" }));
        }
예제 #8
0
 public JsonResult SendAllSms(MemberPowerQuery query, string sendCon)
 {
     MemberApplication.SendMsg(query, sendCon);
     return(Json(new { Success = true }, true));
 }
예제 #9
0
        /// <summary>
        /// 发送优惠券,根据搜索条件
        /// </summary>
        /// <param name="query"></param>
        /// <param name="couponIds"></param>
        public static void SendCoupon(MemberPowerQuery query, IEnumerable <long> couponIds, string labelinfos = "")
        {
            var     siteName = SiteSettingApplication.GetSiteSettings().SiteName;
            decimal price    = 0;
            string  result   = "";

            //会员领取优惠券记录ID
            //   List<long> memberCouponIds = new List<long>();
            // dictResult = new Dictionary<string, int>();

            query.PageSize = 500;
            query.PageNo   = 1;

            var pageMode = MemberApplication.GetPurchasingPowerMember(query);

            if (pageMode.Total > 0)
            {
                var mUserMember = new List <MemberPurchasingPower>();
                while (pageMode.Models.Count() > 0)//循环批量获取用户信息
                {
                    //   string[] dests = pageMode.Models.Select(e => e.).ToArray();
                    foreach (var item in pageMode.Models)
                    {
                        mUserMember.Add(item);
                    }
                    query.PageNo += 1;
                    pageMode      = MemberApplication.GetPurchasingPowerMember(query);
                }


                var model = _iCouponService.GetCouponInfo(couponIds.ToArray());//获取所选优惠券集合

                //查询优惠券领取状况
                var mCouponRecord = _iCouponService.GetCouponRecordTotal(couponIds.ToArray());

                List <SendmessagerecordCouponInfo> lsendInfo = new List <SendmessagerecordCouponInfo>();
                //验证优惠券是否充足
                foreach (var item in model)
                {
                    price += item.Price;
                    lsendInfo.Add(new SendmessagerecordCouponInfo()
                    {
                        CouponId = item.Id
                    });
                    if ((item.Num - item.Himall_CouponRecord.Count()) < mUserMember.Count)
                    {
                        result = item.CouponName + "优惠券的数量不足,无法赠送";
                        break;
                    }
                }
                if (result == "")
                {
                    //发送优惠券
                    bool alTotal = false;
                    for (int i = 0; i < mUserMember.Count; i++)
                    {
                        bool suTotal = false;//会员发送优惠券成功数
                        foreach (var item in model)
                        {
                            //判断会员领取限制,是否可领取此优惠券
                            bool isf = true;
                            if (item.PerMax > 0)
                            {
                                int total = mCouponRecord.Where(p => p.UserId == mUserMember[i].Id && p.CouponId == item.Id).ToList().Count;
                                if (item.PerMax <= total)
                                {
                                    isf = false;
                                }
                            }

                            if (isf)
                            {
                                suTotal = true;
                                alTotal = true;

                                CouponRecordInfo info = new CouponRecordInfo();
                                info.UserId   = mUserMember[i].Id;
                                info.UserName = mUserMember[i].UserName;
                                info.ShopId   = item.ShopId;
                                info.CouponId = item.Id;
                                _iCouponService.AddCouponRecord(info);
                            }
                        }

                        if (suTotal)
                        {
                            MessageCouponInfo info = new MessageCouponInfo();
                            info.Money    = price;
                            info.SiteName = siteName;
                            info.UserName = mUserMember[i].UserName;
                            MessageApplication.SendMessageOnCouponSuccess(mUserMember[i].Id, info);
                        }
                    }

                    Log.Debug("sendCoupon:" + alTotal);
                    //查看成功发送会员数
                    if (alTotal)
                    {
                        //记录发送历史
                        var sendRecord = new Himall.Model.SendMessageRecordInfo
                        {
                            ContentType = WXMsgType.wxcard,
                            MessageType = MsgType.Coupon,
                            SendContent = "",
                            SendState   = 1,
                            SendTime    = DateTime.Now,
                            ToUserLabel = labelinfos == null ? "" : labelinfos,
                            Himall_SendmessagerecordCoupon = lsendInfo
                        };
                        WXMsgTemplateApplication.AddSendRecord(sendRecord);
                    }
                    else
                    {
                        result = "此标签下无符合领取此优惠券的会员";
                    }
                }
            }
            else
            {
                result = "该标签下无任何会员";
            }


            if (!string.IsNullOrWhiteSpace(result))
            {
                throw new HimallException(result);
            }
        }