Пример #1
0
        public ActionResult UpdateSalesName(string paramdata)
        {
            string[] lines = paramdata.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            Dictionary <string, string> companyDict = new Dictionary <string, string>();

            foreach (string line in lines)
            {
                string[] fields      = line.Split(new char[] { '\t' });
                string   companyName = fields[0].Trim();
                string   salesName   = fields[1].Trim();
                if (!companyDict.ContainsKey(companyName))
                {
                    companyDict.Add(companyName, salesName);
                }
            }
            OtaCrmModel db = new OtaCrmModel();
            var         q  = from p in db.OtaCompany
                             select p;
            List <OtaCompany> cList = q.ToList();

            foreach (OtaCompany item in cList)
            {
                if (companyDict.ContainsKey(item.CompanyName))
                {
                    item.SalesUserName = companyDict[item.CompanyName];
                }
            }
            db.SaveChangesAsync();

            return(Content("完成"));
        }
Пример #2
0
        public async Task <ActionResult> EditUser(EditUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var Db   = new ApplicationDbContext();
                var user = Db.Users.First(u => u.UserName == model.UserName);
                user.TrueName        = model.TrueName;
                user.QQ              = model.QQ;
                user.Email           = model.Email;
                user.PhoneNumber     = model.PhoneNumber;
                Db.Entry(user).State = System.Data.Entity.EntityState.Modified;
                await Db.SaveChangesAsync();

                //保存区域
                OtaCrmModel crmdb     = new OtaCrmModel();
                var         serveArea = crmdb.ServeArea.FirstOrDefault(p => p.UserName == model.UserName);
                if (serveArea == null)
                {
                    ServeArea newItem = new ServeArea();
                    newItem.UserName      = model.UserName;
                    newItem.ServeAreaName = model.ServeAreaName;
                    crmdb.ServeArea.Add(newItem);
                }
                else
                {
                    serveArea.ServeAreaName = model.ServeAreaName;
                }
                crmdb.SaveChanges();

                return(RedirectToAction("UserList"));
            }
            return(View(model));
        }
Пример #3
0
        public PartialViewResult GetCompanyCountChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.Height      = 500;
            chartModel.ContainerId = "companyCountChart";
            chartModel.Title       = "客户数量";
            chartModel.SeriesList  = new List <YSeries>();

            YSeries series = new YSeries();

            series.YSeriesList = new List <object>();
            series.YName       = "数量";

            chartModel.YTitle      = DateTime.Today.ToString("yyyy-MM-dd");
            chartModel.ValueSuffix = "个";
            //读取公司的表,group by 销售名
            OtaCrmModel db = new OtaCrmModel();
            var         ss = from i in db.OtaCompany
                             group i by i.SalesUserName
                             into g
                             select new { count = g.Count(), userName = g.Key };

            foreach (var item in ss)
            {
                chartModel.XList.Add(item.userName);
                series.YSeriesList.Add(item.count);
            }
            chartModel.SeriesList.Add(series);

            DotNet.Highcharts.Highcharts chart = GetChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Пример #4
0
        public PartialViewResult GetCompanyStatusChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ChartType   = DotNet.Highcharts.Enums.ChartTypes.Pie;
            chartModel.ContainerId = "companyStatusChart";
            chartModel.Title       = "客户状态";

            YSeries series = new YSeries();

            series.YName = "数量";

            chartModel.ValueSuffix = "个";
            //读取公司的表,group by 销售名
            OtaCrmModel db = new OtaCrmModel();
            var         ss = from i in db.OtaCompany
                             where i.BusinessStatus != null
                             group i by i.BusinessStatus
                             into g
                             select new { count = g.Count(), businessStatus = g.Key };
            List <object[]> pieDataList = new List <object[]>();

            foreach (var item in ss)
            {
                object[] pieData = new object[] { item.businessStatus, item.count };
                pieDataList.Add(pieData);
            }
            chartModel.pieDataList = pieDataList;

            DotNet.Highcharts.Highcharts chart = GetPieChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Пример #5
0
        public List <SelectListItem> GetServeAreaList(string defaultValue)
        {
            List <SelectListItem> result = new List <SelectListItem>();

            SelectListItem defaultItem = new SelectListItem();

            defaultItem.Text  = "";
            defaultItem.Value = "";
            if (string.IsNullOrEmpty(defaultValue))
            {
                defaultItem.Selected = true;
            }
            result.Add(defaultItem);

            OtaCrmModel db = new OtaCrmModel();
            var         q  = from p in db.ParamDict
                             where p.ParamName == "销售区域"
                             select p;

            foreach (var item in q)
            {
                SelectListItem newItem = new SelectListItem();
                newItem.Text  = item.SubItemName;
                newItem.Value = item.SubItemName;
                if (item.SubItemName == defaultValue)
                {
                    newItem.Selected = true;
                }
                result.Add(newItem);
            }

            return(result);
        }
        public JsonResult GetCompanyJson()
        {
            var         res  = new JsonResult();
            OtaCrmModel db   = new OtaCrmModel();
            var         list = from p in db.OtaCompany
                               where p.RealAddress != null
                               select new
            {
                id        = p.Id,
                name      = p.CompanyName,
                address   = p.RealAddress,
                salesname = p.SalesUserName
            };

            //记得这里要select new 否则会报错:序列化类型 System.Data.Entity.DynamicProxies XXXXX 的对象时检测到循环引用。
            //不select new 也行的加上这句 //db.ContextOptions.ProxyCreationEnabled = false;
            res.Data = list;//返回列表

            //var name = "小华";
            //var age = "12";
            //var name1 = "小华";
            //var age1 = "12";
            //res.Data = new object[] { new { name, age }, new { name1, age1 } };//返回一个自定义的object数组

            //var person = new { Name = "小明", Age = 22, Sex = "男" };
            //res.Data = person;//返回单个对象;

            //res.Data = "这是个字符串";//返回一个字符串,意义不大;

            res.JsonRequestBehavior = JsonRequestBehavior.AllowGet;//允许使用GET方式获取,否则用GET获取是会报错。
            return(res);
        }
Пример #7
0
        public List <string> GetAllRealName()
        {
            OtaCrmModel db = new OtaCrmModel();
            var         q  = (from p in db.AspNetUsers
                              select p.TrueName).ToList();

            return(q);
        }
Пример #8
0
        public ActionResult DeleteSameAgentGrade()
        {
            OtaCrmModel db  = new OtaCrmModel();
            string      sql = "delete from AgentGradeOperation where id not in (select max(id) from AgentGradeOperation group by agentDomain,statDate)";

            db.Database.ExecuteSqlCommandAsync(sql);
            return(Content("删除重复完成。"));
        }
Пример #9
0
        public string GetRealName(string userName)
        {
            OtaCrmModel db = new OtaCrmModel();
            var         q  = (from p in db.AspNetUsers
                              where p.UserName == userName
                              select p.TrueName).FirstOrDefault();

            return(q);
        }
Пример #10
0
        public string FindUserNameByMobileNum(string mobileNum)
        {
            OtaCrmModel db = new OtaCrmModel();
            var         q  = (from p in db.AspNetUsers
                              where p.PhoneNumber == mobileNum
                              select p.UserName).FirstOrDefault();

            return(q);
        }
Пример #11
0
 public void InsertCompanyCms(List <CompanyCmsData> itemList, string md5Key)
 {
     if (md5Key == GetMd5Str(DateTime.Now.ToString("yyyyMMddHHmm00") + md5hashstr))
     {
         OtaCrmModel db = new OtaCrmModel();
         db.CompanyCmsData.AddRange(itemList);
         db.SaveChangesAsync();
     }
 }
Пример #12
0
        public ActionResult DelCompanyCmsData()
        {
            OtaCrmModel db  = new OtaCrmModel();
            string      sql = "Delete From CompanyCmsData";

            db.Database.ExecuteSqlCommand(sql, null);
            string result = "成功删除.";

            return(Content(result));
        }
Пример #13
0
 public void InsertAgentGradeOprations(List <AgentGradeOperation> itemList, string md5Key)
 {
     if (md5Key == GetMd5Str(DateTime.Now.ToString("yyyyMMddHHmm00") + md5hashstr))
     {
         //计算每一条具体的当天票量,用当前的减去比它日期早一天的票量
         OtaCrmModel db = new OtaCrmModel();
         db.AgentGradeOperation.AddRange(itemList);
         db.SaveChangesAsync();
     }
 }
Пример #14
0
        public ActionResult ImportCompanyFromAgentGrade()
        {
            OtaCrmModel db       = new OtaCrmModel();
            var         cityList = (from cc in db.ChinaCity select cc).ToList();

            var           exsitNames    = (from c in db.OtaCompany select c.CompanyName).Distinct();
            List <string> exsitNameList = exsitNames.ToList();

            var q = (from p in db.AgentGradeOperation
                     select p.agentName).Distinct();
            int count = 0;

            foreach (string companyName in q)
            {
                if (string.IsNullOrEmpty(companyName) || exsitNameList.Contains(companyName))
                {
                    continue;
                }
                OtaCompany newItem = new OtaCompany();
                newItem.BossBackground   = "";
                newItem.BossBusinessDesp = "";
                newItem.BossIdNo         = "";
                newItem.CompanyName      = companyName;
                newItem.CreateTime       = DateTime.Now;
                newItem.BossName         = "";
                newItem.BusinessRange    = "国内";
                newItem.BusinessStatus   = "在线";
                newItem.CapitalAsserts   = "";
                newItem.CityName         = "";

                foreach (var city in cityList)
                {
                    if (companyName.Contains(city.CityName.Replace("市", "")))
                    {
                        newItem.CityName = city.ProvinceName + "-" + city.CityName;
                        break;
                    }
                }

                newItem.LegalPerson      = "未知";
                newItem.LegalPersonIdNo  = "";
                newItem.LegalPersonPhone = "";
                newItem.OfficeNo         = "";
                newItem.OtherInvest      = "";
                newItem.RealAddress      = "";
                newItem.RegisterAddress  = "";
                newItem.SalesUserName    = "******";

                db.OtaCompany.Add(newItem);
                count++;
            }
            db.SaveChanges();

            return(Content("导入成功:" + count.ToString()));
        }
Пример #15
0
        public string GetServeAreaName(string userName)
        {
            string      result = "";
            OtaCrmModel db     = new OtaCrmModel();
            var         item   = db.ServeArea.FirstOrDefault(p => p.UserName == userName);

            if (item != null)
            {
                result = item.ServeAreaName;
            }

            return(result);
        }
Пример #16
0
        public string GetAndSaveMobilePassword(string mobileNum)
        {
            string         password = GetRandomPassword(6);
            OtaCrmModel    db       = new OtaCrmModel();
            MobilePassword item     = new MobilePassword();

            item.CreateTime = DateTime.Now;
            item.MobileNum  = mobileNum;
            item.Password   = password;
            db.MobilePassword.Add(item);
            db.SaveChanges();

            return(password);
        }
Пример #17
0
        public ActionResult GetSalesName()
        {
            StringBuilder sb = new StringBuilder("公司名\t法人\t销售\r\n");
            OtaCrmModel   db = new OtaCrmModel();
            var           q  = from p in db.OtaCompany
                               select p;
            List <OtaCompany> cList = q.ToList();

            foreach (OtaCompany item in cList)
            {
                sb.Append(item.CompanyName).Append("\t").Append(item.LegalPerson).Append("\t").Append(item.SalesUserName).Append("\r\n");
            }
            return(Content(sb.ToString()));
        }
Пример #18
0
        public ActionResult GetCms()
        {
            StringBuilder sb = new StringBuilder();
            OtaCrmModel   db = new OtaCrmModel();
            var           q  = from p in db.CompanyCmsData
                               select p;
            List <CompanyCmsData> cList = q.ToList();

            foreach (CompanyCmsData item in cList)
            {
                sb.Append(item.CompanyName).Append("\t").Append(item.LegalPerson).Append("\t").Append(item.TTSStatusDesp).Append("\r\n");
            }
            return(Content(sb.ToString()));
        }
Пример #19
0
        public string SavePersonCompanyTicketChart(string userName, int reportId, DateTime startDate, DateTime endDate)
        {
            AccountController ac       = new AccountController();
            string            realName = ac.GetRealName(userName);
            //读取两周的数据,自己客户的票量,按照日期展示曲线图
            OtaCrmModel db           = new OtaCrmModel();
            var         companyNames = from c in db.OtaCompany
                                       where c.SalesUserName == realName
                                       select c.CompanyName;

            var q = from p in db.AgentGradeOperation
                    where p.statDate.Value >= startDate && p.statDate.Value <= endDate && companyNames.Contains(p.agentName)
                    group p by p.statDate
                    into g
                    orderby g.Key
                    select new { ticketSum = g.Sum(b => b.CurDateTicketCount.Value), ticketDay = g.Key };

            List <string> dateList      = new List <string>();
            List <int>    ticketSumList = new List <int>();

            foreach (var item in q)
            {
                dateList.Add(item.ticketDay.Value.ToString("yyyyMMdd"));
                ticketSumList.Add(item.ticketSum);
            }

            System.Web.Helpers.Chart chart = new System.Web.Helpers.Chart(width: 500, height: 300, theme: ChartTheme.Blue, themePath: null);
            chart.AddTitle(text: userName + "客户票量统计", name: userName + "_CompanyTicketSum");
            chart.AddSeries(name: "票量"
                            , chartType: "Column"
                            , chartArea: ""
                            , axisLabel: "张"
                            , legend: "票量合计"
                            , markerStep: 1
                            , xValue: dateList
                            , xField: "日期"
                            , yValues: ticketSumList
                            , yFields: "票量");

            string filePath = Server.MapPath("~/CompanyImages/Reports/" + reportId.ToString());
            CompanyBusinessDailyPhotoesController cbd = new CompanyBusinessDailyPhotoesController();

            cbd.CreateFolderIfNeeded(filePath);
            string fileName = userName + "_CompanyTicketSum_" + startDate.ToString("yyyyMMdd") + "_" + endDate.ToString("yyyyMMdd") + ".jpg";

            chart.Save(path: Path.Combine(filePath, fileName), format: "jpeg");

            return(fileName);
        }
Пример #20
0
        public ActionResult UpdateCompanyStatus()
        {
            OtaCrmModel db = new OtaCrmModel();
            var         q  = from p in db.OtaCompany
                             select p;

            foreach (OtaCompany item in q)
            {
                if (string.IsNullOrEmpty(item.LegalPerson) || item.LegalPerson == "未知")
                {
                    item.LegalPerson = "空";
                }
            }
            db.SaveChangesAsync();
            return(Content("更新完成."));
        }
Пример #21
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.UserName, Email = model.Email, TrueName = model.TrueName, QQ = model.QQ, PhoneNumber = model.PhoneNumber
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // 有关如何启用帐户确认和密码重置的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=320771
                    // 发送包含此链接的电子邮件
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "确认你的帐户", "请通过单击 <a href=\"" + callbackUrl + "\">這裏</a>来确认你的帐户");

                    var roleName = "Guest";
                    if (RoleManager.RoleExists(roleName) == false)
                    {
                        var role = new ApplicationRole(roleName, "访客", "");
                        await RoleManager.CreateAsync(role);
                    }
                    await UserManager.AddToRoleAsync(user.Id, roleName);

                    //加入区域
                    if (string.IsNullOrEmpty(model.ServeAreaName))
                    {
                        ServeArea serveArea = new ServeArea();
                        serveArea.UserName      = model.UserName;
                        serveArea.ServeAreaName = model.ServeAreaName;
                        OtaCrmModel db = new OtaCrmModel();
                        db.ServeArea.Add(serveArea);
                        db.SaveChanges();
                    }

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(View(model));
        }
Пример #22
0
        public bool IsMobilePasswordValid(string mobileNum, string password)
        {
            bool result = false;
            //取最近的,3分钟有效的密码
            DateTime    lastCreateTime = DateTime.Now.AddMinutes(-3);
            OtaCrmModel db             = new OtaCrmModel();
            var         q = (from p in db.MobilePassword
                             where p.MobileNum == mobileNum && p.CreateTime > lastCreateTime
                             orderby p.CreateTime descending
                             select p.Password).FirstOrDefault();

            if (!string.IsNullOrEmpty(q))
            {
                result = password == q;
            }
            return(result);
        }
Пример #23
0
        public ActionResult Update(string paramdata)
        {
            string[] fields  = paramdata.Split(new char[] { '-' });
            string   OrgName = fields[0];
            string   curName = fields[1];
            //
            OtaCrmModel db = new OtaCrmModel();
            var         q  = from p in db.OtaCompany
                             where p.SalesUserName == OrgName
                             select p;

            foreach (OtaCompany item in q)
            {
                item.SalesUserName = curName;
            }
            db.SaveChangesAsync();

            return(Content("完成"));
        }
Пример #24
0
        public PartialViewResult GetMeetCountChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ContainerId = "meetChart";
            chartModel.Title       = "沟通频率";

            chartModel.SeriesList = new List <YSeries>();

            YSeries series = new YSeries();

            series.YSeriesList = new List <object>();
            series.YName       = "次数";

            chartModel.ValueSuffix = "次";
            //读取meeting表,按照时间为上一周
            DateTime startWeek = DateTime.Now.AddDays(1 - Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d")));

            startWeek = startWeek.AddDays(-7);
            DateTime endWeek = startWeek.AddDays(6);

            chartModel.YTitle = startWeek.ToString("yyyyMMdd") + "-" + endWeek.ToString("yyyyMMdd");

            OtaCrmModel db = new OtaCrmModel();
            var         ss = from i in db.CompanyMeeting
                             where i.MeetDate >= startWeek && i.MeetDate <= endWeek
                             group i by i.CreateUserName
                             into g
                             select new { count = g.Count(), userName = g.Key };
            AccountController ac = new AccountController();

            foreach (var item in ss)
            {
                chartModel.XList.Add(ac.GetRealName(item.userName));
                series.YSeriesList.Add(item.count);
            }
            chartModel.SeriesList.Add(series);

            DotNet.Highcharts.Highcharts chart = GetChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Пример #25
0
        public ActionResult UpdateLegal()
        {
            OtaCrmModel db = new OtaCrmModel();

            var companycmss = from p in db.CompanyCmsData
                              select p;
            Dictionary <string, string> cmsDict = new Dictionary <string, string>();

            foreach (CompanyCmsData cmsItem in companycmss)
            {
                if (!cmsDict.ContainsKey(cmsItem.CompanyName))
                {
                    cmsDict.Add(cmsItem.CompanyName, cmsItem.LegalPerson);
                }
            }

            db = new OtaCrmModel();
            var q = from o in db.OtaCompany
                    select o;
            List <OtaCompany> otacompanys = q.ToList();

            foreach (OtaCompany cItem in otacompanys)
            {
                if (string.IsNullOrEmpty(cItem.LegalPerson) || cItem.LegalPerson == "未知")
                {
                    if (cmsDict.ContainsKey(cItem.CompanyName))
                    {
                        cItem.LegalPerson = cmsDict[cItem.CompanyName];
                    }
                }

                if (string.IsNullOrEmpty(cItem.LegalPerson) || cItem.LegalPerson == "ww")
                {
                    cItem.LegalPerson = "未知";
                }
            }
            db.SaveChangesAsync();
            return(Content("完成"));
        }
Пример #26
0
        public ActionResult GetQunarSMS(string userName)
        {
            //            type 申请的 发送类型,这里使用qunar_xx
            //date 发送时 间,为null则立即发送,定时发送则使用 yyyy/ MM / dd HH: mm: ss格式
            //     prenums   国家区号 比如  86   多个用,分隔 与 所传 mobiles 一一对应
            //  mobiles 发 送的手机号码数组,发送到多个手机请使用,分隔
            //  message 发 送消息的内容,长度请确保在60个字符以内,否则将拆分多条发送,计费多倍
            //  groupid 可 为null,发送的消息类型名,建议输入,可供统计使用。如:酒店团购
            //  //由欧阳泉于2014年3月7日添加 支持国际短信(目前支持244个国家或地区),不传递该参数时只支持国内,
            //  inter    国际手机号 传字符串 true
            ////关于手机号有效性及归属地的判断 详见http://wiki.corp.qunar.com/pages/viewpage.action?pageId=52070424
            //            编码格式:UTF - 8
            //返回结果:String 型, 为0则发送成功
            //    public final static int OK = 0;//成功
            //public final static int ERR_TYPE = 101;// 主账户不存在
            //public final static int ERR_MESSAGE = 102;//发送短信内容为空
            //public final static int ERR_MOBILE = 103; // 号码错误
            //public final static int ERR_SERVICE_URL = 104;//配置短信网关地址错误
            //public final static int ERR_INTER_SUPPORT = 107; //该主账户不支持国际短信
            //public final static int ERR_FORBIDDEN_REQUEST = 201;//IP不在白名单中
            //public final static int ERR_RESPONSE = 202;//http response解析错误
            //public final static int ERR_BLACKLIST = 302;//号码在黑名单中
            //public final static int ERR_UNKNOWN = 401;//调用者本地错误
            //public final static int ERR_MAINACCOUNT_NOTACTIVE = 600;// 主账户未激活
            //public final static int ERR_SUBACCOUNT_NOTAVAILABLE = 601;// 没有可用的子账户
            //public final static int ERR_LOW_BALANCE = 602;// 余额不足
            //public final static int ERR_MMS_BIG = 603;// 彩信内容过大
            //public final static int ERR_CONTEXT_PHONE = 604;// 相同号码、内容已经发送

            //根据userName获取手机号
            ApplicationUser user      = UserManager.FindByName(userName);
            string          mobileNum = user.PhoneNumber;
            string          result    = "";

            if (!string.IsNullOrEmpty(mobileNum))
            {
                //限制使用的频率。1分钟只能一个验证码。不能多次发送
                DateTime    lastCreateTime = DateTime.Now.AddMinutes(-1);
                OtaCrmModel db             = new OtaCrmModel();
                var         todayCount     = (from p in db.MobilePassword
                                              where p.MobileNum == mobileNum && p.CreateTime > DateTime.Today
                                              select p).Count();
                if (todayCount > 30)
                {
                    result = "今天发送短信超过30次,已经屏蔽.";
                }
                else
                {
                    var q = (from p in db.MobilePassword
                             where p.MobileNum == mobileNum && p.CreateTime > lastCreateTime
                             orderby p.CreateTime descending
                             select p.Password).FirstOrDefault();

                    result = "一分钟只能发一次";
                    if (string.IsNullOrEmpty(q))
                    {
                        string password = GetAndSaveMobilePassword(mobileNum);  //保存到数据库,然后验证的时候取最近的一条
                        string url      = "http://sms1.f.cn1.qunar.com/mon/req";
                        string type     = "qs_fland_sstm";
                        string postData = "type=" + type + "&date=&prenums=86&mobiles=" + mobileNum + "&message=" + password + "-OtaCrmPassword&groupid=otacrm&inter=false";
                        string response = PostDataToUrl(postData, url);

                        switch (response)
                        {
                        case "0":
                            result = "成功";
                            break;

                        case "101":
                            result = "主账户不存在";
                            break;

                        case "102":
                            result = "发送短信内容为空";
                            break;

                        case "103":
                            result = "号码错误";
                            break;

                        case "104":
                            result = "配置短信网关地址错误";
                            break;

                        case "107":
                            result = "该主账户不支持国际短信";
                            break;

                        case "201":
                            result = "IP不在白名单中";
                            break;

                        case "202":
                            result = "http response解析错误";
                            break;

                        case "302":
                            result = "号码在黑名单中";
                            break;

                        case "401":
                            result = "调用者本地错误";
                            break;

                        case "600":
                            result = "主账户未激活";
                            break;

                        case "601":
                            result = "没有可用的子账户";
                            break;

                        case "602":
                            result = "余额不足";
                            break;

                        case "603":
                            result = "彩信内容过大";
                            break;

                        case "604":
                            result = "相同号码、内容已经发送";
                            break;

                        default:
                            result = response;
                            break;
                        }
                    }
                }
            }
            else
            {
                result = "该账户不存在手机号";
            }

            return(Content(result));
        }
Пример #27
0
        public PartialViewResult GetCompanyTicketRangeChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ContainerId = "companyTicketRangeChart";
            chartModel.ChartType   = DotNet.Highcharts.Enums.ChartTypes.Pie;
            chartModel.Title       = "客户票量级别";
            chartModel.SeriesList  = new List <YSeries>();

            YSeries series = new YSeries();

            series.YName           = "数量";
            chartModel.ValueSuffix = "个";

            string level0 = "零";
            string level1 = "1_50";
            string level2 = "50_200";
            string level3 = "200_500";
            string level4 = "500_1000";
            string level5 = "1000以上";

            //读取公司的表,group by 销售名
            OtaCrmModel db        = new OtaCrmModel();
            DateTime    startDate = DateTime.Parse(DateTime.Today.ToString("yyyy-MM-01"));
            DateTime    endDate   = db.AgentGradeOperation.Max(p => p.statDate).Value;
            TimeSpan    ts        = endDate - startDate;
            int         days      = ts.Days;

            if (days == 0)
            {
                days = 1;
            }

            var q = from p in db.AgentGradeOperation
                    where p.statDate == endDate
                    group p by p.agentName
                    into g
                    select new { sum = g.Sum(i => i.totalTicketNum.Value), company = g.Key };
            //按照公司名,分组,然后求平均值,应该先算日期的天数
            int countLevel0 = 0;
            int countLevel1 = 0;
            int countLevel2 = 0;
            int countLevel3 = 0;
            int countLevel4 = 0;
            int countLevel5 = 0;

            foreach (var item in q)
            {
                int everageNum = item.sum / days;
                if (everageNum == 0)
                {
                    countLevel0++;
                }
                if (everageNum > 0 && everageNum < 50)
                {
                    countLevel1++;
                }
                if (everageNum >= 50 && everageNum < 200)
                {
                    countLevel2++;
                }
                if (everageNum >= 200 && everageNum < 500)
                {
                    countLevel3++;
                }
                if (everageNum >= 500 && everageNum < 1000)
                {
                    countLevel4++;
                }
                if (everageNum >= 1000)
                {
                    countLevel5++;
                }
            }
            List <object[]> pieDataList = new List <object[]>();

            object[] pieData0 = new object[] { level0, countLevel0 };
            if (countLevel0 > 0)
            {
                pieDataList.Add(pieData0);
            }
            object[] pieData1 = new object[] { level1, countLevel1 };
            if (countLevel1 > 0)
            {
                pieDataList.Add(pieData1);
            }
            object[] pieData2 = new object[] { level2, countLevel2 };
            if (countLevel2 > 0)
            {
                pieDataList.Add(pieData2);
            }
            object[] pieData3 = new object[] { level3, countLevel3 };
            if (countLevel3 > 0)
            {
                pieDataList.Add(pieData3);
            }
            object[] pieData4 = new object[] { level4, countLevel4 };
            if (countLevel4 > 0)
            {
                pieDataList.Add(pieData4);
            }
            object[] pieData5 = new object[] { level5, countLevel5 };
            if (countLevel5 > 0)
            {
                pieDataList.Add(pieData5);
            }

            chartModel.pieDataList = pieDataList;

            DotNet.Highcharts.Highcharts chart = GetPieChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Пример #28
0
        public PartialViewResult GetCompanyTicketCountChart(string companyName)
        {
            //调用30天的数据
            DateTime    startDate = DateTime.Today.AddMonths(-1);
            OtaCrmModel db        = new OtaCrmModel();
            var         a         = from b in db.AgentGradeOperation
                                    where b.agentName == companyName && b.statDate >= startDate
                                    orderby b.statDate, b.agentDomain
            select b;

            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ChartType   = DotNet.Highcharts.Enums.ChartTypes.Line;
            chartModel.Width       = 600;
            chartModel.ContainerId = "companyTicketChart";
            chartModel.Title       = "票量";

            chartModel.SeriesList = new List <YSeries>();

            //分开域名,
            Dictionary <string, int> agoTicketCountDict = new Dictionary <string, int>();
            List <string>            domainList         = new List <string>();

            foreach (AgentGradeOperation item in a)
            {
                if (!domainList.Contains(item.agentDomain))
                {
                    domainList.Add(item.agentDomain);
                }
                string key = item.agentDomain + item.statDate.Value.ToString("yyyyMMdd");
                if (!agoTicketCountDict.ContainsKey(key))
                {
                    agoTicketCountDict.Add(key, item.CurDateTicketCount.Value);
                }
            }

            TimeSpan ts = DateTime.Today - startDate;

            for (int i = 0; i < ts.Days; i++)
            {
                DateTime curDate = startDate.AddDays(i);
                string   xValue  = curDate.ToString("MMdd");
                chartModel.XList.Add(xValue);
            }
            //每个域名按天统计数据,加入series
            foreach (string agentDomain in domainList)
            {
                YSeries series = new YSeries();
                series.YSeriesList = new List <object>();
                series.YName       = agentDomain;
                for (int i = 0; i < ts.Days; i++)
                {
                    DateTime curDate     = startDate.AddDays(i);
                    string   xValue      = curDate.ToString("yyyyMMdd");
                    string   key         = agentDomain + xValue;
                    int      ticketCount = 0;
                    if (agoTicketCountDict.ContainsKey(key))
                    {
                        ticketCount = agoTicketCountDict[key];
                    }
                    series.YSeriesList.Add(ticketCount);
                }
                chartModel.SeriesList.Add(series);
            }

            chartModel.ValueSuffix = "张";

            DotNet.Highcharts.Highcharts chart = GetChart(chartModel);

            return(PartialView("_PartialChartView", chart));
        }
Пример #29
0
        public ActionResult ImportCompanyFromCms()
        {
            OtaCrmModel db       = new OtaCrmModel();
            var         cityList = (from cc in db.ChinaCity select cc).ToList();

            var           exsitNames    = (from c in db.OtaCompany select c.CompanyName).Distinct();
            List <string> exsitNameList = exsitNames.ToList();

            var q = (from p in db.CompanyCmsData
                     select p);
            int count = 0;

            foreach (CompanyCmsData cmsItem in q)
            {
                string companyName = cmsItem.CompanyName;
                if (string.IsNullOrEmpty(companyName) || exsitNameList.Contains(companyName))
                {
                    continue;
                }
                OtaCompany newItem = new OtaCompany();
                newItem.BossBackground   = cmsItem.BossBackground;
                newItem.BossBusinessDesp = "";
                newItem.BossIdNo         = "";
                newItem.CompanyName      = companyName;
                newItem.CreateTime       = DateTime.Now;
                newItem.BossName         = cmsItem.ContactPerson;
                string businessRange = "";
                if (!string.IsNullOrEmpty(cmsItem.GuojiWebName))
                {
                    businessRange = "国内";
                }
                if (!string.IsNullOrEmpty(cmsItem.GuojiWebName))
                {
                    businessRange = "国际";
                }
                if (!string.IsNullOrEmpty(cmsItem.GuojiWebName) && !string.IsNullOrEmpty(cmsItem.GuojiWebName))
                {
                    businessRange = "国内,国际";
                }
                newItem.BusinessRange = businessRange;
                string businessStatus = "在线";
                if (!string.IsNullOrEmpty(cmsItem.TTSStatusDesp) && cmsItem.TTSStatusDesp.Contains("终止"))
                {
                    businessStatus = "终止";
                }
                newItem.BusinessStatus = businessStatus;
                newItem.CapitalAsserts = "";
                newItem.CityName       = "";

                foreach (var city in cityList)
                {
                    if (!string.IsNullOrEmpty(cmsItem.RealAddress) && cmsItem.RealAddress.Contains(city.CityName.Replace("市", "")))
                    {
                        newItem.CityName = city.ProvinceName + "-" + city.CityName;
                        break;
                    }
                }

                newItem.LegalPerson      = string.IsNullOrEmpty(cmsItem.LegalPerson) ? "未知" : cmsItem.LegalPerson;
                newItem.LegalPersonIdNo  = "";
                newItem.LegalPersonPhone = cmsItem.ContactPhone;
                newItem.OfficeNo         = "";
                newItem.OtherInvest      = "";
                newItem.RealAddress      = cmsItem.RealAddress;
                newItem.RegisterAddress  = cmsItem.RegisterAddress;
                newItem.SalesUserName    = cmsItem.SalesName;

                db.OtaCompany.Add(newItem);
                count++;
            }
            db.SaveChanges();

            return(Content("导入成功:" + count.ToString()));
        }
Пример #30
0
        public ActionResult UpdateOtaCompany()
        {
            OtaCrmModel db = new OtaCrmModel();

            var companycmss = from p in db.CompanyCmsData
                              select p;
            Dictionary <string, CompanyCmsData> cmsDict = new Dictionary <string, CompanyCmsData>();

            foreach (CompanyCmsData cmsItem in companycmss)
            {
                if (!cmsDict.ContainsKey(cmsItem.CompanyName))
                {
                    cmsDict.Add(cmsItem.CompanyName, cmsItem);
                }
            }
            var q = from o in db.OtaCompany
                    select o;
            List <OtaCompany> otacompanys = q.ToList();

            int  updateCount = 0;
            bool isUpdate    = false;

            foreach (OtaCompany cItem in otacompanys)
            {
                if (cmsDict.ContainsKey(cItem.CompanyName))
                {
                    CompanyCmsData cmsItem = cmsDict[cItem.CompanyName];
                    //需要修改得地方是这些
                    if (!string.IsNullOrEmpty(cmsItem.SalesName))
                    {
                        cItem.SalesUserName = cmsItem.SalesName;
                    }
                    if (string.IsNullOrEmpty(cItem.RegisterAddress) && !string.IsNullOrEmpty(cmsItem.RegisterAddress))
                    {
                        isUpdate = true;
                        cItem.RegisterAddress = cmsItem.RegisterAddress;
                    }
                    if (string.IsNullOrEmpty(cItem.RealAddress) && !string.IsNullOrEmpty(cmsItem.RealAddress))
                    {
                        isUpdate          = true;
                        cItem.RealAddress = cmsItem.RealAddress;
                    }
                    if (string.IsNullOrEmpty(cItem.BossBackground) && !string.IsNullOrEmpty(cmsItem.BossBackground))
                    {
                        isUpdate             = true;
                        cItem.BossBackground = cmsItem.BossBackground;
                    }
                    if (string.IsNullOrEmpty(cItem.BossName) && !string.IsNullOrEmpty(cmsItem.ContactPerson))
                    {
                        isUpdate       = true;
                        cItem.BossName = cmsItem.ContactPerson;
                    }
                    if (string.IsNullOrEmpty(cItem.BusinessStatus) && !string.IsNullOrEmpty(cmsItem.TTSStatusDesp))
                    {
                        isUpdate             = true;
                        cItem.BusinessStatus = cmsItem.TTSStatusDesp;
                    }
                    if (string.IsNullOrEmpty(cItem.LegalPerson) && !string.IsNullOrEmpty(cmsItem.LegalPerson))
                    {
                        isUpdate          = true;
                        cItem.LegalPerson = cmsItem.LegalPerson;
                    }
                    if (string.IsNullOrEmpty(cItem.LegalPersonPhone) && !string.IsNullOrEmpty(cmsItem.ContactPhone))
                    {
                        isUpdate = true;
                        cItem.LegalPersonPhone = cmsItem.ContactPhone;
                    }
                    if (isUpdate)
                    {
                        updateCount++;
                    }
                }
                isUpdate = false;
            }
            db.SaveChangesAsync();

            string result = "成功更新:" + updateCount.ToString();

            return(Content(result));
        }