Пример #1
0
        public ActionResult CreateActivityTaocan(ActivityTaocanModel model)
        {
            ActivityManagement activityMgr = null;

            if (ModelState.IsValid)
            {
                try
                {
                    activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());
                    Marketing_Activity_Taocan taocan = new Marketing_Activity_Taocan()
                    {
                        ActivityId = model.ActivityId, Price = model.Price, Quantity = model.Quantity, RouteId = model.RouteId
                    };
                    activityMgr.CreateActivityTaocan(taocan);
                    return(Redirect("/Agent/CustomerAcivities?customerId=" + model.CustomerId));
                }
                catch (KMBitException ex)
                {
                    ViewBag.Message = ex.Message;
                }

                finally { }
            }

            List <BAgentRoute> routes = activityMgr.FindAvailableAgentRoutes(User.Identity.GetUserId <int>(), model.CustomerId, model.ActivityId);

            ViewBag.Routes = new SelectList((from r in routes select new { Id = r.Route.Id, Name = r.Taocan.Taocan2.Name + " - 代理价格" + (r.Taocan.Taocan.Sale_price * r.Route.Discount).ToString("0.00") + "元" }), "Id", "Name");
            return(View(model));
        }
Пример #2
0
        public ActionResult EditCustomerActivity(int activityId, int customerId)
        {
            ActivityManagement    activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());
            List <BActivity>      activities  = activityMgr.FindActivities(activityId, User.Identity.GetUserId <int>(), customerId, out total, true, 1, 1);
            CustomerActivityModel model       = new CustomerActivityModel();

            if (activities.Count == 1)
            {
                BActivity activity = activities[0];
                model.Id          = activity.Activity.Id;
                model.CustomerId  = customerId;
                model.Description = activity.Activity.Description;
                model.Enable      = activity.Activity.Enabled;
                model.ExpiredTime = activity.Activity.ExpiredTime > 0 ? DateTimeUtil.ConvertToDateTime(activity.Activity.ExpiredTime).ToString("yyyy-M-dd") : "";
                model.Name        = activity.Activity.Name;
                model.ScanType    = activity.Activity.ScanType;
                model.StartTime   = activity.Activity.ExpiredTime > 0 ? DateTimeUtil.ConvertToDateTime(activity.Activity.StartedTime).ToString("yyyy-M-dd") : "";
            }
            else
            {
                ViewBag.Message = "不能修改不属于自己客户的活动";
                return(View("Error"));
            }

            List <DictionaryTemplate> scanTypes = StaticDictionary.GetScanTypeList();

            ViewBag.ScanTypes = new SelectList(from st in scanTypes select new { Id = st.Id, Name = st.Value }, "Id", "Name");
            return(View("CreateCustomerActivity", model));
        }
Пример #3
0
        public ActionResult CustomerAcivities(int customerId)
        {
            CustomerManagement customerMgr = new CustomerManagement(User.Identity.GetUserId <int>());
            List <BCustomer>   customers   = customerMgr.FindCustomers(User.Identity.GetUserId <int>(), customerId, out total);

            if (customers.Count == 0)
            {
                ViewBag.Message = string.Format("编号为:{0}的客户不是你的客户", customerId);
                return(View("Error"));
            }
            BCustomer          customer    = customers[0];
            ActivityManagement activityMgr = new ActivityManagement(customerMgr.CurrentLoginUser);
            int page     = 1;
            int pageSize = 20;

            int.TryParse(Request["page"], out page);
            page = page > 0 ? page : 1;
            List <BActivity>            activities = activityMgr.FindActivities(0, User.Identity.GetUserId <int>(), customerId, out total, true, page, pageSize);
            PageItemsResult <BActivity> result     = new PageItemsResult <BActivity>()
            {
                CurrentPage = page, EnablePaging = true, Items = activities, PageSize = pageSize, TotalRecords = total
            };

            KMBit.Grids.KMGrid <BActivity> grid = new Grids.KMGrid <BActivity>(result);
            ViewBag.Customer = customer;
            return(View("CustomerAcivities", grid));
        }
Пример #4
0
        public ActionResult ActivityTaocans(int activityId, int customerId)
        {
            ActivityManagement activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());

            try
            {
                List <BActivityTaocan>            taocans = activityMgr.FindActivityTaocans(activityId, customerId, User.Identity.GetUserId <int>());
                PageItemsResult <BActivityTaocan> result  = new PageItemsResult <BActivityTaocan>()
                {
                    CurrentPage = 1, EnablePaging = true, Items = taocans, PageSize = taocans.Count, TotalRecords = taocans.Count
                };
                KMBit.Grids.KMGrid <BActivityTaocan> grid = new Grids.KMGrid <BActivityTaocan>(result);
                return(View(grid));
            }catch (KMBitException ex)
            {
                ViewBag.Message = ex.Message;
                return(View("Error"));
            }
        }
Пример #5
0
        public ActionResult GetActivityCode(int activityId, int customerId)
        {
            AppSettings        settings    = AppSettings.GetAppSettings();
            ActivityManagement activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());

            try
            {
                string webroot  = settings.WebURL;
                string codePath = activityMgr.GenerateActivityQRCode(User.Identity.GetUserId <int>(), customerId, activityId);
                //string fullCodeUrl = webroot + "/QRCode/" + codePath;
                ViewBag.CodePath = settings.QRFolder + "/" + codePath;
                return(Redirect(webroot + "/" + settings.QRFolder + "/" + codePath));
                //return View();
            }
            catch (KMBitException ex)
            {
                ViewBag.Message = ex.Message;
                return(View("Error"));
            }
        }
Пример #6
0
        public ActionResult ActivityOrders(int activityId, int customerId)
        {
            ActivityManagement activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());

            try
            {
                List <BActivityOrder>            mOrders = activityMgr.FindMarketingOrders(User.Identity.GetUserId <int>(), customerId, activityId, 0, out total);
                PageItemsResult <BActivityOrder> result  = new PageItemsResult <BActivityOrder>()
                {
                    CurrentPage = 1, EnablePaging = true, Items = mOrders, PageSize = mOrders.Count, TotalRecords = mOrders.Count
                };
                KMBit.Grids.KMGrid <BActivityOrder> grid = new Grids.KMGrid <BActivityOrder>(result);
                return(View(grid));
            }
            catch (KMBitException ex)
            {
                ViewBag.Message = ex.Message;
                return(View("Error"));
            }
        }
Пример #7
0
        public ActionResult CreateActivityTaocan(int activityId, int customerId)
        {
            ActivityManagement activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());
            List <BActivity>   activities  = activityMgr.FindActivities(activityId, User.Identity.GetUserId <int>(), 0, out total);

            if (activities == null || activities.Count == 0)
            {
                ViewBag.Message = string.Format("编号为{0}的活动不是你的客户的活动", activityId);
                return(View("Error"));
            }

            List <BAgentRoute> routes = activityMgr.FindAvailableAgentRoutes(User.Identity.GetUserId <int>(), customerId, activityId);

            ViewBag.Routes = new SelectList((from r in routes select new { Id = r.Route.Id, Name = r.Taocan.Taocan2.Name + " - 代理价格" + (r.Taocan.Taocan.Sale_price * r.Route.Discount).ToString("0.00") + "元" }), "Id", "Name");
            ActivityTaocanModel model = new ActivityTaocanModel()
            {
                ActivityId = activityId, CustomerId = customerId
            };

            return(View(model));
        }
Пример #8
0
        public ApiMessage GetCodeIndirect()
        {
            ApiMessage message = new ApiMessage();

            try
            {
                this.IniRequest();
                ActivityManagement activityMgr = new ActivityManagement(0);
                string             spName      = string.Empty;
                string             openId      = string.Empty;
                int agentId    = 0;
                int customerId = 0;
                int activityId = 0;
                spName = request["sp"];
                string url = activityMgr.GetOneRandomMarketOrderQrCodeUrl(spName, openId, agentId, customerId, activityId);
            }catch (KMBitException kex)
            {
                message.Message = kex.Message;
                message.Status  = "ERROR";
            }
            return(message);
        }
Пример #9
0
        public Management(IApplicationProgrammableInterface service)
        {
            InitializeComponent();

            this.service = service;

            pManagement = new ProjectManagement(service);
            aManagement = new ActivityManagement(service);
            hManagement = new HourManagement(service);

            pManagement.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            aManagement.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            hManagement.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;

            service.SubScribe(pManagement);
            service.SubScribe(aManagement);
            service.SubScribe(hManagement);

            MainLayoutCount = MainLayout.Controls.Count;

            MenuSelectorView.ExpandAll();
        }
Пример #10
0
        public ActionResult CreateCustomerActivity(CustomerActivityModel model)
        {
            if (ModelState.IsValid)
            {
                ActivityManagement   activityMgr = new ActivityManagement(User.Identity.GetUserId <int>());
                Marketing_Activities activity    = new Marketing_Activities()
                {
                    AgentId     = User.Identity.GetUserId <int>(),
                    CreatedTime = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now),
                    CustomerId  = model.CustomerId,
                    Description = model.Description,
                    ScanType    = model.ScanType,
                    Enabled     = model.Enable,
                    Name        = model.Name,
                    Id          = model.Id
                };

                if (model.Id == 0)
                {
                    activity = activityMgr.CreateNewActivity(activity);
                    if (activity.Id > 0)
                    {
                        return(Redirect("/Agent/CustomerAcivities?customerId=" + model.CustomerId));
                    }
                }
                else
                {
                    activityMgr.UpdateActivity(activity);
                    return(Redirect("/Agent/CustomerAcivities?customerId=" + model.CustomerId));
                }
            }
            List <DictionaryTemplate> scanTypes = StaticDictionary.GetScanTypeList();

            ViewBag.ScanTypes = new SelectList(from st in scanTypes select new { Id = st.Id, Name = st.Value }, "Id", "Name");
            return(View(model));
        }
Пример #11
0
        public ActionResult DoSaoMa()
        {
            string p        = Request["p"];
            string number   = Request["mobile_number"];
            string spName   = Request["SPName"];
            string province = Request["Province"];
            string city     = Request["City"];

            if (string.IsNullOrEmpty(p))
            {
                ViewBag.Message = "参数错误,请正确扫码,输入手机号码点充值";
            }
            else
            {
                int    agentId         = 0;
                int    customerId      = 0;
                int    activityId      = 0;
                int    activityOrderId = 0;
                string parameters      = KMEncoder.Decode(p);
                if (!string.IsNullOrEmpty(parameters))
                {
                    string signature = string.Empty;
                    SortedDictionary <string, string> pvs = parseParameters(parameters, out signature);
                    if (string.IsNullOrEmpty(signature))
                    {
                        ViewBag.Message = "URL参数不正确,请重新扫码";
                        return(View("SaoMa"));
                    }
                    System.Text.StringBuilder pBuilder = new System.Text.StringBuilder();
                    if (pvs.Count > 0)
                    {
                        int count = 1;
                        foreach (KeyValuePair <string, string> pair in pvs)
                        {
                            pBuilder.Append(pair.Key);
                            pBuilder.Append("=");
                            pBuilder.Append(pair.Value);
                            if (count < pvs.Count)
                            {
                                pBuilder.Append("&");
                            }
                            count++;
                            switch (pair.Key)
                            {
                            case "agentId":
                                int.TryParse(pair.Value, out agentId);
                                break;

                            case "customerId":
                                int.TryParse(pair.Value, out customerId);
                                break;

                            case "activityId":
                                int.TryParse(pair.Value, out activityId);
                                break;

                            case "activityOrderId":
                                int.TryParse(pair.Value, out activityOrderId);
                                break;
                            }
                        }
                        CustomerManagement customerMgr = new CustomerManagement(0);
                        int total;
                        List <BCustomer> customers = customerMgr.FindCustomers(0, customerId, out total);
                        if (total <= 0 || total > 1)
                        {
                            ViewBag.Message = "URL参数不正确,请重新扫码";
                            return(View("SaoMa"));
                        }
                        pBuilder.Append("&key=");
                        pBuilder.Append(customers[0].Token);
                        string sign = UrlSignUtil.GetMD5(pBuilder.ToString());
                        if (sign != signature)
                        {
                            ViewBag.Message = "URL参数不正确,请重新扫码";
                            return(View("SaoMa"));
                        }
                        ActivityManagement activityMgr = new ActivityManagement(0);
                        BMarketOrderCharge order       = new BMarketOrderCharge()
                        {
                            ActivityId      = activityId,
                            ActivityOrderId = activityOrderId,
                            AgentId         = agentId,
                            CustomerId      = customerId,
                            City            = city,
                            Province        = province,
                            OpenId          = "",
                            Phone           = number,
                            SPName          = spName
                        };
                        KMBit.BL.Charge.ChargeResult result = activityMgr.MarketingCharge(order);
                        ViewBag.Message = result.Message;
                        //if(result.Status == ChargeStatus.FAILED)
                        //{
                        //    ViewBag.Paras = pvs;
                        //    //paras.Add("p", p);
                        //}
                    }
                }
                else
                {
                    ViewBag.Message = "不能重复扫码,或者修改扫码后的URL地址";
                }
            }

            return(View("SaoMa"));
        }
Пример #12
0
        public HttpResponseMessage GetCodeDirect()
        {
            this.IniRequest();
            var        resp       = new HttpResponseMessage(HttpStatusCode.OK);
            ApiMessage message    = new ApiMessage();
            string     openId     = string.Empty;
            string     openPublic = string.Empty;
            string     spName     = string.Empty;
            string     signature  = request["signature"];
            string     once       = request["nonce"];
            string     timestamp  = request["timestamp"];
            string     echostr    = request["echostr"];

            if (string.IsNullOrEmpty(signature) || string.IsNullOrEmpty(once) || string.IsNullOrEmpty(timestamp))
            {
                logger.Info("The request was not sent from weixin");
                resp.Content = new StringContent("false", System.Text.Encoding.UTF8, "text/plain");
                return(resp);
            }
            logger.Info(string.Format("signature:{0},nonce:{1},timestamp:{2},echostr:{3}", signature, once, timestamp, echostr));
            SortedSet <string> paras = new SortedSet <string>();

            paras.Add(weixinToken);
            paras.Add(once);
            paras.Add(timestamp);
            string strKey = "";

            logger.Info(string.Format("signature posted by weixin is {0}", signature));
            foreach (string v in paras)
            {
                strKey += v;
            }
            string sign = KMEncoder.SHA1_Hash(strKey);

            logger.Info(string.Format("signature calculated in platform is {0}", sign));
            if (signature != sign)
            {
                logger.Info("two signatures are different, The request was not sent from weixin");
                resp.Content = new StringContent("false", System.Text.Encoding.UTF8, "text/plain");
                return(resp);
            }
            //For weixin URL verification
            if (!string.IsNullOrEmpty(echostr))
            {
                resp.Content = new StringContent(echostr, System.Text.Encoding.UTF8, "text/plain");
                return(resp);
            }
            try
            {
                ActivityManagement activityMgr = new ActivityManagement(0);
                int agentId    = 0;
                int customerId = 0;
                int activityId = 0;
                int.TryParse(request["agentId"], out agentId);
                int.TryParse(request["customerId"], out customerId);
                int.TryParse(request["activityId"], out activityId);
                System.IO.Stream sream  = context.Request.InputStream;
                StreamReader     sr     = new StreamReader(sream);
                string           strXML = sr.ReadToEnd();
                sream.Close();
                //strXML = "<xml><ToUserName><![CDATA[gh_3f1c1268428a]]></ToUserName><FromUserName><![CDATA[oNEHRsogX4seVvYK5v3S-veFUkEk]]></FromUserName><CreateTime>1446455044</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[+联通]]></Content><MsgId>6212477109514836427</MsgId></xml>";
                logger.Info(string.Format("Message pushed by Weichat server:{0}", strXML));
                WeiChatReceivedContentMessage weiChatMessage = WeiChatMessageUtil.ParseWeichatXML(strXML, logger);
                if (weiChatMessage != null)
                {
                    if (weiChatMessage.Content != null)
                    {
                        spName = weiChatMessage.Content.Trim();
                    }
                    if (weiChatMessage.FromUserName != null)
                    {
                        openId = weiChatMessage.FromUserName;
                    }
                    if (weiChatMessage.ToUserName != null)
                    {
                        openPublic = weiChatMessage.ToUserName;
                    }
                }
                if (string.IsNullOrEmpty(spName))
                {
                    resp.Content = new StringContent("success", System.Text.Encoding.UTF8, "text/plain");
                    return(resp);
                }
                if (!spName.Contains("+联通") && !spName.Contains("+移动") && !spName.Contains("+电信"))
                {
                    resp.Content = new StringContent("success", System.Text.Encoding.UTF8, "text/plain");
                    return(resp);
                }
                string url = activityMgr.GetOneRandomMarketOrderQrCodeUrl(spName, openId, agentId, customerId, activityId);
                message.Item    = url;
                message.Status  = "OK";
                message.Message = "成功获取到二维码";
                logger.Info(url);
            }
            catch (KMBitException kex)
            {
                logger.Warn(kex);
                message.Message = kex.Message;
                message.Status  = "ERROR";
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                message.Message = "未知错误";
                message.Status  = "ERROR";
            }

            logger.Info(string.Format("GetOneRandomMarketOrderQrCodeUrl Status:{0}, Message:{1}", message.Status, message.Message));
            string returnXml = "";

            if (message.Status == "OK")
            {
                logger.Info("二维码获取成功,准备推送二维码到微信");
                WeiChatNewsMessage news = new WeiChatNewsMessage();
                news.ToUserName   = openId;
                news.FromUserName = openPublic;
                news.MsgType      = "news";
                List <WeiChatArticle> articles = new List <WeiChatArticle>();
                news.Articles = articles;
                WeiChatArticle article = new WeiChatArticle()
                {
                    Description = "",
                    Title       = "将二维码保存到相册,微信->发现->扫一扫->相册,选择刚刚保存的二维码",
                    PicUrl      = message.Item.ToString(),
                    Url         = message.Item.ToString()
                };
                articles.Add(article);
                returnXml = WeiChatMessageUtil.PrepareWeiChatNewsXml(news);
            }
            else
            {
                logger.Info("二维码获取失败");
                WeiChatContentMessage msg = new WeiChatContentMessage()
                {
                    Content      = message.Message,
                    CreateTime   = 0,
                    FromUserName = openPublic,
                    MsgType      = "text",
                    ToUserName   = openId
                };
                returnXml = WeiChatMessageUtil.PrepareWeiChatXml(msg);
            }
            //logger.Info(returnXml);
            resp.Content = new StringContent(returnXml, System.Text.Encoding.UTF8, "text/plain");
            return(resp);
        }