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("完成")); }
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)); }
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)); }
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)); }
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); }
public List <string> GetAllRealName() { OtaCrmModel db = new OtaCrmModel(); var q = (from p in db.AspNetUsers select p.TrueName).ToList(); return(q); }
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("删除重复完成。")); }
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); }
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); }
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(); } }
public ActionResult DelCompanyCmsData() { OtaCrmModel db = new OtaCrmModel(); string sql = "Delete From CompanyCmsData"; db.Database.ExecuteSqlCommand(sql, null); string result = "成功删除."; return(Content(result)); }
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(); } }
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())); }
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); }
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); }
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())); }
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())); }
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); }
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("更新完成.")); }
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)); }
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); }
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("完成")); }
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)); }
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("完成")); }
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)); }
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)); }
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)); }
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())); }
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)); }