コード例 #1
0
        public Alading.Entity.Consumer GetNewConsumer()
        {
            //TODO: (WXC) 将界面上的用户信息封装成对象
            Alading.Entity.Consumer consumer = new Alading.Entity.Consumer();
            //属性赋值...
            //第一组属性
            consumer.source = selectedSource;
            switch (selectedGrade)
            {
            case 0: consumer.vip = false; consumer.is_dealer = false; break;

            case 1: consumer.vip = true; consumer.is_dealer = false; break;

            case 2: consumer.vip = false; consumer.is_dealer = true; break;
            }
            consumer.nick   = txConsumerName.Text;
            consumer.alipay = txZhifubao.Text;
            consumer.score  = Convert.ToInt32(txJifen.Text);
            consumer.level  = cbLevel.SelectedIndex;
            //第二组属性
            consumer.buyer_name        = txBuyer.Text;
            consumer.location_city     = cbCity.Text;
            consumer.location_state    = cbProvince.Text;
            consumer.buyer_zip         = txZipcode.Text;
            consumer.location_district = cbCounty.Text;
            consumer.location_address  = txAddr.Text;
            //第三组属性
            consumer.mobilephone    = txMobile.Text;
            consumer.email          = txEmail.Text;
            consumer.phone          = txTel.Text;
            consumer.comments       = htDesc.PrintingRichEditControl.Text;
            consumer.buyer_wangwang = txWangwang.Text;
            return(consumer);
        }
コード例 #2
0
        private void BuildEmailRecord(Alading.Entity.Consumer consumer)
        {
            string content = BuildEmailContent(consumer, Shop);

            //databuffer.Rows.Add(
            //    0,                              //Id
            //    Guid.NewGuid().ToString(),      //VisitCode
            //    consumer.nick,                  //ConsumerNick
            //    "邮件",                        //Type
            //    EmailSubject,                   //Subject
            //    content,                        //Content
            //    DateTime.Now,                   //VisitTime
            //    consumer.email,                 //Receiver
            //    "待发送",                      //Status
            //    taskcode                        //TaskCode
            //    );

            System.Data.DataRow row = databuffer.NewRow();

            row["A30P1"] = Guid.NewGuid().ToString();
            row["A30P2"] = consumer.nick;
            row["A30P3"] = "邮件";
            row["A30P4"] = EmailSubject;
            row["A30P5"] = BuildEmailContent(consumer, Shop);
            row["A30P6"] = TaskStartTime;
            row["A30P7"] = consumer.email;
            row["A30P8"] = "待发送";
            row["A30P9"] = taskcode;

            databuffer.Rows.Add(row);

        }
コード例 #3
0
        public void RemoveItem(Alading.Entity.Consumer item)
        {
            int index = consumerList.FindIndex(c => c.nick == item.nick);

            if (index >= 0)
            {
                consumerList.RemoveAt(index);
            }
        }
コード例 #4
0
 public void StepNext()
 {
     if (Receivers.Count > 0 && currentIndex < Receivers.Count)
     {
         Alading.Entity.Consumer currentObject = Receivers[currentIndex];
         BuildEmailRecord(currentObject);
         currentIndex++;
     }
 }
コード例 #5
0
        private string BuildEmailContent(Alading.Entity.Consumer consumer, Alading.Entity.Shop shop)
        {
            StringBuilder sb = new StringBuilder(EmailContentTemplate);
            string addr = string.Format("{0} {1} {2} {3} {4}",
                consumer.location_country,
                consumer.location_state,
                consumer.location_city,
                consumer.location_district,
                consumer.location_address);

            sb.Replace("@收货人@", consumer.buyer_name);
            sb.Replace("@收货地址@", addr);
            sb.Replace("@邮政编码@", consumer.buyer_zip);
            sb.Replace("@联系电话@", consumer.phone);

            sb.Replace("@客户昵称@", consumer.nick);
            sb.Replace("@客户地址@", addr);
            sb.Replace("@客户邮编@", consumer.buyer_zip);
            sb.Replace("@客户电话@", consumer.phone);
            sb.Replace("@客户手机@", consumer.mobilephone);
            sb.Replace("@客户邮箱@", consumer.email);

            if (shop != null)
            {
                string shopAddr = string.Format("{0} {1} {2} {3} {4}",
                                    shop.seller_country,
                                    shop.seller_state,
                                    shop.seller_city,
                                    shop.seller_district,
                                    shop.seller_address);

                sb.Replace("@店主昵称@", shop.nick);
                sb.Replace("@店主地址@", shopAddr);
                sb.Replace("@店主邮编@", shop.seller_zip);
                sb.Replace("@店主电话@", shop.seller_tel);
                sb.Replace("@店主手机@", shop.seller_mobile);
                sb.Replace("@店铺名称@", shop.title);
            }
            else
            {
                sb.Replace("@店主昵称@", string.Empty);
                sb.Replace("@店主地址@", string.Empty);
                sb.Replace("@店主邮编@", string.Empty);
                sb.Replace("@店主电话@", string.Empty);
                sb.Replace("@店主手机@", string.Empty);
                sb.Replace("@店铺名称@", string.Empty);
            }

            sb.Replace("@系统日期@", DateTime.Today.ToShortDateString());
            sb.Replace("@系统时间@", DateTime.Now.ToLongTimeString());

            return sb.ToString();
        }
コード例 #6
0
        public void AddItem(Alading.Entity.Consumer item)
        {
            int index = consumerList.FindIndex(c => c.nick == item.nick);

            if (index >= 0)
            {
                consumerList[index] = item;
            }
            else
            {
                consumerList.Add(item);
            }
        }
コード例 #7
0
        private void btNewConsumer_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //TODO: (WXC) 添加客户
            ConsumerAdd consumerAdd = new ConsumerAdd();

            if (DialogResult.OK == consumerAdd.ShowDialog())
            {
                Alading.Entity.Consumer      consumer = consumerAdd.GetNewConsumer();
                Alading.Core.Enum.ReturnType result   = Alading.Business.ConsumerService.AddConsumer(consumer);
                if (result == Alading.Core.Enum.ReturnType.Success)
                {
                    LoadStrategy = new LoadAllConsumer();
                    LoadAllConsumer();
                }
                //do when insert data is failed
                else
                {
                    XtraMessageBox.Show("保存数据失败!");
                }
            }
        }
コード例 #8
0
        private void gvConsumerView_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            //选中客户
            int[] rows = gvConsumerView.GetSelectedRows();

            if (rows.Length > 0)
            {
                selectedConsumer = consumerList[rows[0]];

                btSave.Enabled     = true;
                btSendText.Enabled = true;
                btSendMail.Enabled = true;

                //加载用户基本信息
                FillConsumerInfo();

                //导入客户地址信息
                consumerAddressList   = Alading.Business.ConsumerAddressService.GetConsumerAddress(c => c.buyer_nick == selectedConsumer.nick);
                gcAddrGrid.DataSource = null;
                gcAddrGrid.DataSource = consumerAddressList;

                //导入客户交易记录
                consumerTradeList     = Alading.Business.TradeService.GetTrade(c => c.buyer_nick == selectedConsumer.nick);
                gcTradGrid.DataSource = null;
                gcTradGrid.DataSource = consumerTradeList;

                //导入客户回访记录
                consumerVisitList      = Alading.Business.ConsumerVisitService.GetConsumerVisit(c => c.ConsumerNick == selectedConsumer.nick);
                gcVisitGrid.DataSource = null;
                gcVisitGrid.DataSource = consumerVisitList;
            }
            else
            {
                btSave.Enabled     = false;
                btSendText.Enabled = false;
                btSendMail.Enabled = false;
            }
        }
コード例 #9
0
        void w_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            SycTaskArgs      task   = e.Argument as SycTaskArgs;

            foreach (var p in task.PageNoList)
            {
                #region get trade information
                //这里改成mainWorker,即主线程取消子线程工作全部停止
                if (mainWorker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }

                TradeReq request  = new TradeReq();
                TradeRsp response = null;
                request.Status       = null;
                request.PageSize     = task.PageSize;
                request.PageNo       = p;
                request.StartCreated = task.QueryBeginTime.ToString("yyyy-MM-dd HH:mm:ss");
                request.EndCreated   = task.QueryEndTime.ToString("yyyy-MM-dd HH:mm:ss");
                string sessionkey = SystemHelper.GetSessionKey(task.ShopNick);
                response = TopService.TradesSoldGet(sessionkey, request);

                #endregion

                #region if getting trade failed do next

                if (response == null || response.Trades == null)
                {
                    lock (vlock)
                    {
                        sub_done += task.PageSize;
                    }
                    continue;
                }

                #endregion

                foreach (var t in response.Trades.Trade)
                {
                    //if (worker.CancellationPending)
                    //这里改成mainWorker,即主线程取消子线程工作全部停止
                    if (mainWorker.CancellationPending)
                    {
                        e.Cancel = true;
                        return;
                    }

                    lock (vlock)
                    {
                        sub_done++;
                    }

                    TradeRsp fulltrade = TopService.TradeFullinfoGet(sessionkey, t.Tid);

                    #region if getting trade detail failed do next

                    if (fulltrade == null || fulltrade.Trade == null)
                    {
                        ReportState state = new ReportState
                        {
                            Total   = sub_total,
                            Current = sub_done,
                            Message = string.Format("同步客户 {0} 失败:无法获取交易信息!", t.BuyerNick),
                        };
                        worker.ReportProgress(0, state);
                        continue;
                    }

                    #endregion

                    UserRsp buyer = TopService.UserGet(sessionkey, fulltrade.Trade.BuyerNick, fulltrade.Trade.AlipayNo);

                    #region if getting buyer detail failed do next

                    if (buyer == null || buyer.User == null)
                    {
                        ReportState state = new ReportState
                        {
                            Total   = sub_total,
                            Current = sub_done,
                            Message = string.Format("同步客户 {0} 失败:无法获取买家信息!", t.BuyerNick),
                        };
                        worker.ReportProgress(0, state);
                        continue;
                    }

                    #endregion

                    Alading.Entity.Consumer consumer = Alading.Business.ConsumerService.GetConsumer(fulltrade.Trade.BuyerNick);

                    if (consumer == null)
                    {
                        #region Consumer is not existed and save it

                        consumer = new Alading.Entity.Consumer();

                        consumer.nick              = buyer.User.Nick;
                        consumer.sex               = buyer.User.Sex;
                        consumer.buyer_zip         = buyer.User.Location.Zip;
                        consumer.location_city     = buyer.User.Location.City;
                        consumer.location_state    = buyer.User.Location.State;
                        consumer.location_district = buyer.User.Location.District;
                        consumer.location_address  = buyer.User.Location.Address;
                        consumer.location_country  = buyer.User.Location.Address;
                        consumer.birthday          = buyer.User.Birthday;
                        consumer.credit            = buyer.User.BuyerCredit.ToString();
                        consumer.level             = buyer.User.BuyerCredit.Level;
                        consumer.score             = buyer.User.BuyerCredit.Score;
                        consumer.status            = buyer.User.Status;
                        consumer.created           = DateTime.Parse(buyer.User.Created);
                        consumer.last_visit        = buyer.User.LastVisit;
                        consumer.mobilephone       = fulltrade.Trade.ReceiverMobile;
                        consumer.phone             = fulltrade.Trade.ReceiverPhone;
                        consumer.email             = fulltrade.Trade.BuyerEmail;
                        consumer.buyer_name        = fulltrade.Trade.ReceiverName;
                        consumer.alipay            = fulltrade.Trade.AlipayNo;

                        ReturnType result = Alading.Business.ConsumerService.AddConsumer(consumer);

                        if (result == ReturnType.Success)
                        {
                            ReportState state = new ReportState
                            {
                                Total   = sub_total,
                                Current = sub_done,
                                Message = string.Format("同步客户 {0} 信息成功!", consumer.nick),
                            };
                            worker.ReportProgress(1, state);

                            Alading.Entity.ConsumerAddress addr = Alading.Business.ConsumerAddressService.GetConsumerAddress(
                                c => c.tid == fulltrade.Trade.Tid).FirstOrDefault();

                            if (addr == null)
                            {
                                addr = new Alading.Entity.ConsumerAddress
                                {
                                    buyer_nick        = fulltrade.Trade.BuyerNick,
                                    location_address  = fulltrade.Trade.ReceiverAddress,
                                    location_city     = fulltrade.Trade.ReceiverCity,
                                    location_country  = buyer.User.Location.Country,
                                    location_district = fulltrade.Trade.ReceiverDistrict,
                                    location_state    = fulltrade.Trade.ReceiverState,
                                    location_zip      = fulltrade.Trade.ReceiverZip,
                                    receiver_mobile   = fulltrade.Trade.ReceiverMobile,
                                    receiver_name     = fulltrade.Trade.ReceiverName,
                                    receiver_phone    = fulltrade.Trade.ReceiverPhone,
                                    receiver_zip      = fulltrade.Trade.ReceiverZip,
                                    tid = fulltrade.Trade.Tid,
                                };

                                result = Alading.Business.ConsumerAddressService.AddConsumerAddress(addr);

                                if (result == ReturnType.Success)
                                {
                                    state = new ReportState
                                    {
                                        Total   = sub_total,
                                        Current = sub_done,
                                        Message = string.Format("同步客户 {0} 地址信息成功!", consumer.nick),
                                    };
                                    worker.ReportProgress(1, state);
                                }
                                else
                                {
                                    state = new ReportState
                                    {
                                        Total   = sub_total,
                                        Current = sub_done,
                                        Message = string.Format("同步客户 {0} 地址信息失败:数据保存失败!", consumer.nick),
                                    };
                                    worker.ReportProgress(1, state);
                                }
                            }
                        }
                        else
                        {
                            ReportState state = new ReportState
                            {
                                Total   = sub_total,
                                Current = sub_done,
                                Message = string.Format("同步客户 {0} 信息失败:数据保存失败!", consumer.nick),
                            };
                            worker.ReportProgress(1, state);
                            continue;
                        }
                        #endregion
                    }
                    else
                    {
                        #region Consumer existed and update address information

                        ReportState state0 = new ReportState
                        {
                            Total   = sub_total,
                            Current = sub_done,
                            Message = string.Format("客户 {0} 已存在!", consumer.nick),
                        };
                        worker.ReportProgress(0, state0);

                        Alading.Entity.ConsumerAddress addr = Alading.Business.ConsumerAddressService.GetConsumerAddress(
                            c => c.tid == fulltrade.Trade.Tid).FirstOrDefault();

                        if (addr == null)
                        {
                            addr = new Alading.Entity.ConsumerAddress
                            {
                                buyer_nick        = fulltrade.Trade.BuyerNick,
                                location_address  = fulltrade.Trade.ReceiverAddress,
                                location_city     = fulltrade.Trade.ReceiverCity,
                                location_country  = buyer.User.Location.Country,
                                location_district = fulltrade.Trade.ReceiverDistrict,
                                location_state    = fulltrade.Trade.ReceiverState,
                                location_zip      = fulltrade.Trade.ReceiverZip,
                                receiver_mobile   = fulltrade.Trade.ReceiverMobile,
                                receiver_name     = fulltrade.Trade.ReceiverName,
                                receiver_phone    = fulltrade.Trade.ReceiverPhone,
                                receiver_zip      = fulltrade.Trade.ReceiverZip,
                                tid = fulltrade.Trade.Tid,
                            };

                            ReturnType result = Alading.Business.ConsumerAddressService.AddConsumerAddress(addr);

                            if (result == ReturnType.Success)
                            {
                                ReportState state = new ReportState
                                {
                                    Total   = sub_total,
                                    Current = sub_done,
                                    Message = string.Format("同步客户 {0} 地址信息成功!", consumer.nick),
                                };
                                worker.ReportProgress(1, state);
                            }
                            else
                            {
                                ReportState state = new ReportState
                                {
                                    Total   = sub_total,
                                    Current = sub_done,
                                    Message = string.Format("同步客户 {0} 地址信息失败:数据保存失败!", consumer.nick),
                                };
                                worker.ReportProgress(1, state);
                            }
                        }

                        #endregion
                    }
                }
            }
        }
コード例 #10
0
 public bool ContainItem(Alading.Entity.Consumer item)
 {
     return(consumerList.Find(c => c.nick == item.nick) != null);
 }