public Stream GetNotice(string LastGetTime) { try { var notices = EFHelper.GetAll <Notice>(); if (string.IsNullOrEmpty(LastGetTime)) { var query = notices.OrderByDescending(t => t.NoticeTime) .Where(t => t.NoticeStatus == 1) .Select(t => new { t.NoticeID, t.NoticeType, t.OccurTime, t.OccurAddress, t.NoticeDetail, CheckTime = t.CheckTime?.ToString("yyyy-MM-dd HH:mm:ss") }) .ToList(); return(ResponseHelper.Success(query)); } else { var query = notices.Where(t => t.NoticeTime > Convert.ToDateTime(LastGetTime) && t.NoticeStatus == 1) .OrderByDescending(t => t.NoticeTime) .Select(t => new { t.NoticeID, t.NoticeType, t.OccurTime, t.OccurAddress, t.NoticeDetail, CheckTime = t.CheckTime?.ToString("yyyy-MM-dd HH:mm:ss") }) .ToList(); return(ResponseHelper.Success(query)); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream SearchVisitor(string SearchKey) { if (string.IsNullOrEmpty(SearchKey)) { return(ResponseHelper.Failure("关键字信息不完全!")); } try { var visitors = EFHelper.GetAll <Visitor>(); var query = visitors.Where(t => t.Name == SearchKey); if (query.Count() > 0) { return(ResponseHelper.Success(query.Select(t => new { t.VisitorID, t.Name }).ToList())); } query = visitors.Where(t => t.VisitorID == SearchKey); return(ResponseHelper.Success(query.Select(t => new { t.VisitorID, t.Name }).ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
/// <summary> /// 获取卡充值、退款记录 /// </summary> /// <param name="VisitorID">游客ID</param> /// <returns></returns> public Stream CardRecord(string VisitorID) { try { using (var db = new EFDbContext()) { var record = from v2o in db.Visitor2Orders where v2o.VisitorID == VisitorID join p in db.Payments on v2o.OrderID equals p.OrderID select new { v2o.OrderID, p.PaymentAmount, p.PaymentType, p.PaymentTime }; var query = from r in record join o in db.Orders on r.OrderID equals o.OrderID where o.CommodityType == 3 //卡相关 select new { o.OrderID, o.OrderState, r.PaymentAmount, r.PaymentType, r.PaymentTime }; var result = query.OrderByDescending(s => s.PaymentTime); return(ResponseHelper.Success(result.ToList()));//返回OrderID } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream DeleteCards(string CardID) { try { if (EFHelper.Delete(new Card() { CardID = CardID })) { return(ResponseHelper.Success(null)); } else { return(ResponseHelper.Failure("删除失败!")); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
/// <summary> /// 获取我发布的通知 /// </summary> /// <param name="VisitorID">游客ID,如果Admin代表管理员</param> /// <returns></returns> public Stream GetMyNotice(string VisitorID) { try { using (var db = new EFDbContext()) { var query = from q in db.Notices.Where(n => n.VisitorID == VisitorID) select new { q.NoticeID, q.NoticeType, q.OccurTime, q.OccurAddress, q.NoticeDetail, q.NoticeStatus, q.Remarks }; if (query.Count() == 0) { return(ResponseHelper.Success(query.ToList())); } return(ResponseHelper.Success(query.ToList())); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
/// <summary> /// 获取所有给定日期的通知信息 /// </summary> /// <param name="Date">日期数组 [‘YY-MM-DD hh:mm:ss’,’ YY-MM-DD hh:mm:ss’]</param> /// <returns></returns> public Stream GetAllNotice(string[] Date) { List <Notice> result = new List <Notice>(); //var result ; for (int i = 0; i < Date.Length; i++) { DateTime date = Convert.ToDateTime(Date[i]); DateTime enddate = Convert.ToDateTime(Date[i]).AddDays(1); try { using (var db = new EFDbContext()) { //var today = db.Notices.Where(n => n.NoticeTime > date && n.NoticeTime<enddate); var today = db.Notices.Where(n => n.NoticeTime > date && n.NoticeTime < enddate); result.AddRange(today); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } } return(ResponseHelper.Success(result.OrderByDescending(t => t.NoticeTime).ToList())); //return ResponseHelper.Success(result); }
public Stream Refuse(string VisitorID, string InviterID) { if (string.IsNullOrEmpty(VisitorID) || string.IsNullOrEmpty(VisitorID)) { return(ResponseHelper.Failure("VisitorID或InviterID信息不完全!")); } try { var groups = EFHelper.GetAll <Group>().Where(t => t.VisitorID == VisitorID); if (groups.Count() == 0) { return(ResponseHelper.Failure("该游客没有邀请记录!")); } var query = groups.Where(t => t.InviterID == InviterID); if (query.Count() == 0) { return(ResponseHelper.Failure("没有该条邀请记录!")); } EFHelper.Delete(query.Single()); return(ResponseHelper.Success(null)); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GrossProfit(string Date) { try { DateTime time = Convert.ToDateTime(Date); var query = from o in EFHelper.GetAll <Order>() where o.OrderState == 1 join p in EFHelper.GetAll <Payment>() on o.OrderID equals p.OrderID where p.PaymentTime.ToShortDateString() == time.ToShortDateString() select p; double profit = query.Sum(t => t.PaymentAmount); return(ResponseHelper.Success(new List <double> { profit })); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetApplication(string VisitorID) { if (string.IsNullOrEmpty(VisitorID)) { return(ResponseHelper.Failure("游客ID不能为空!")); } try { var groups = EFHelper.GetAll <Group>(); var visitors = EFHelper.GetAll <Visitor>(); var query = from g in groups where g.VisitorID == VisitorID && g.InviteeState == 0 join v in visitors on g.InviterID equals v.VisitorID select new { g.InviterID, InviterName = v.Name }; return(ResponseHelper.Success(query.ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream Exit(string VisitorID) { if (string.IsNullOrEmpty(VisitorID)) { return(ResponseHelper.Failure("游客ID不能为空!")); } try { var group = EFHelper.GetAll <Group>().Where(t => t.VisitorID == VisitorID && t.InviteeState == 1); if (group.Count() == 0) { return(ResponseHelper.Failure("没有该游客的组队信息!")); } EFHelper.Delete(group.Single()); return(ResponseHelper.Success(null)); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GroupLocation(string GroupID) { if (string.IsNullOrEmpty(GroupID)) { return(ResponseHelper.Failure("队伍ID不能为空!")); } try { var visitors = EFHelper.GetAll <Visitor>().ToList(); var groups = EFHelper.GetAll <Group>().ToList(); var locators = EFHelper.GetAll <Locator>().ToList(); var team = from g in groups where g.GroupID == GroupID && g.InviteeState == 1 join v in visitors on g.VisitorID equals v.VisitorID join l in locators on v.VisitorID equals l.VisitorID where l.LocatorState == 1 select new { v.VisitorID, v.Name, l.LocatorID }; if (team.Count() == 0) { return(ResponseHelper.Failure("该队伍没有定位信息!")); } var localsense = new LocalSense(); localsense.Run(); Thread.Sleep(500); new Thread(() => { localsense.Stop(); }).Start(); var location = new List <Location>(); foreach (var t in team) { location.Add(localsense.locations.Where(q => q.ID == t.LocatorID).OrderByDescending(q => q.Timestamp).FirstOrDefault()); } var query = from t in team join l in location on t.LocatorID equals l.ID orderby t.VisitorID select new { t.VisitorID, t.Name, l.X, l.Y }; if (query.Count() == 0) { return(ResponseHelper.Failure("没有查询到位置信息!")); } else { return(ResponseHelper.Success(query.ToList())); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream Login(Visitor visitor) { if (visitor == null || string.IsNullOrEmpty(visitor.VisitorID) || string.IsNullOrEmpty(visitor.Password)) { return(ResponseHelper.Failure("游客ID与密码缺失!")); } try { using (var db = new EFDbContext()) { var query = db.Visitors.Where(t => t.VisitorID == visitor.VisitorID); if (query.Count() == 0) { return(ResponseHelper.Failure("游客不存在!")); } Visitor result = query.Single(); if (result.Password != visitor.Password) { return(ResponseHelper.Failure("密码错误!")); } if (DateTime.Now < result.PlayTime) { return(ResponseHelper.Failure("未到游玩时间!")); } if (DateTime.Now > result.PlayTime.AddDays(1)) { return(ResponseHelper.Failure("已超过游玩时间!")); } result.Name = visitor.Name; result.Age = visitor.Age; result.Gender = visitor.Gender; result.UID = visitor.UID; db.SaveChanges(); return(ResponseHelper.Success(new List <int>() { result.VisitorState })); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
/// <summary> /// 审核拒绝申请 /// </summary> /// <param name="NoticeID">通知ID</param> /// <param name="Remarks">审核备注(可以为空)</param> /// <returns></returns> public Stream RefuseNotice(string NoticeID, string Remarks) { Notice Pass = new Notice(); try { using (var db = new EFDbContext()) { var query = db.Notices.Where(n => n.NoticeID == NoticeID); //合法性检查 if (query.Count() == 0) { return(ResponseHelper.Failure("未找到此通知!")); } if (query.Single().NoticeStatus == 3) { return(ResponseHelper.Failure("此通知已失效!")); } if (query.Single().NoticeStatus == 2) { return(ResponseHelper.Failure("此通知已被拒绝,无需重复操作!")); } if (query.Single().NoticeStatus == 1) { return(ResponseHelper.Failure("此通知已通过审核!")); } //修改通知状态为拒绝并记录审核时间和备注 Pass = query.Single(); Pass.NoticeStatus = 2; //拒绝申请 Pass.CheckTime = DateTime.Now; //记录审核拒绝的时间 Pass.Remarks = Remarks; //记录审核备注 //提交数据库修改 EFHelper.Update <Notice>(Pass); return(ResponseHelper.Success(new List <string>() { "经审核,拒绝发布申请!" })); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetAllLocators() { try { return(ResponseHelper.Success(EFHelper.GetAll <Locator>())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetUser2OrdersByKey(string OrderID) { try { return(ResponseHelper.Success(EFHelper.GetAll <User2Order>().Where(t => t.OrderID == OrderID).ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetGroupsByKey(string GroupID) { try { return(ResponseHelper.Success(EFHelper.GetAll <Group>().Where(t => t.GroupID == GroupID).ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetProjectRecordsByKey(string ProjectID) { try { return(ResponseHelper.Success(EFHelper.GetAll <ProRecord>().Where(t => t.ProjectID == ProjectID).ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetCommoditiesByKey(string CommodityID) { try { return(ResponseHelper.Success(EFHelper.GetAll <Commodity>().Where(t => t.CommodityID == CommodityID).ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetVisitor2CardsByKey(string VisitorID) { try { return(ResponseHelper.Success(EFHelper.GetAll <Visitor2Card>().Where(t => t.VisitorID == VisitorID).ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream UnavailCommodity(string VisitorID) { if (string.IsNullOrEmpty(VisitorID)) { return(ResponseHelper.Failure("游客ID不能为空!")); } try { var v2os = EFHelper.GetAll <Visitor2Order>().Where(t => t.VisitorID == VisitorID).ToList(); if (v2os.Count() == 0) { return(ResponseHelper.Success(null)); } var orders = EFHelper.GetAll <Order>().ToList(); var stores = EFHelper.GetAll <Store>().ToList(); var commodies = EFHelper.GetAll <Commodity>().ToList(); var query = from v2o in v2os join o in orders on v2o.OrderID equals o.OrderID where o.CommodityType == 2 && o.DoneTime != null join c in commodies on o.CommodityID equals c.CommodityID join s in stores on c.StoreID equals s.StoreID select new { o.OrderID, o.CommodityID, o.CommodityNum, c.CommodityName, CommodityPrice = c.CommodityPrice * o.CommodityNum, c.CommodityInfo, c.CommodityPic, c.StoreID, s.StoreName }; return(ResponseHelper.Success(query.ToList())); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
/// <summary> /// 发布通知接口 /// </summary> /// <param name="VisitorID">游客ID,如果Admin代表管理员</param> /// <param name="NoticeType"></param> /// <param name="OccurTime"></param> /// <param name="OccurAddress"></param> /// <param name="NoticeDetail"></param> /// <returns></returns> public Stream PublishNotice(string VisitorID, int NoticeType, string OccurTime, string OccurAddress, string NoticeDetail) { if (VisitorID != "Admin" && NoticeType == 2)//合法性检查 { return(ResponseHelper.Failure("只有管理员可以发布活动通知!")); } string id = IDHelper.getNextNoticeID(DateTime.Now); Notice notice = new Notice() { NoticeID = id, VisitorID = VisitorID, NoticeType = NoticeType, NoticeTime = DateTime.Now, OccurTime = OccurTime, OccurAddress = OccurAddress, NoticeDetail = NoticeDetail, NoticeStatus = 0, Remarks = "", CheckTime = null }; if (VisitorID == "Admin") { notice.NoticeStatus = 1; notice.CheckTime = DateTime.Now; } try { EFHelper.Add <Notice>(notice); //通知信息提交数据库 return(ResponseHelper.Success(new List <string>() { "发布成功,等待审核!" })); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream GetLocation(string VisitorID) { if (string.IsNullOrEmpty(VisitorID)) { return(ResponseHelper.Failure("游客ID不能为空!")); } try { var locators = EFHelper.GetAll <Locator>().Where(t => t.VisitorID == VisitorID && t.LocatorState == 1); if (locators.Count() == 0) { return(ResponseHelper.Failure("该游客没有定位信息!")); } var localsense = new LocalSense(); localsense.Run(); Thread.Sleep(100); new Thread(() => { localsense.Stop(); }).Start(); var locator = locators.Single(); var query = localsense.locations .Where(t => t.ID == locator.LocatorID) .OrderByDescending(t => t.Timestamp) .Select(t => new { t.X, t.Y }).First(); if (query == null) { return(ResponseHelper.Failure("没有查询到位置信息!")); } else { return(ResponseHelper.Success(new List <dynamic> { query })); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream TotalNumber() { try { int num = EFHelper.GetAll <Visitor2Card>().Count(); return(ResponseHelper.Success(new List <int> { num })); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream TotalWait() { try { int num = EFHelper.GetAll <Operation>().Where(t => t.PlayState == 0).Count(); return(ResponseHelper.Success(new List <int> { num })); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
/// <summary> /// 绑定LocalSense /// </summary> /// <param name="VisitorID">游客ID</param> /// <param name="LocatorID">LocalSense定位设备的ID</param> /// <returns>绑定结果</returns> public Stream BindingLocators(string VisitorID, string LocatorID) { if (string.IsNullOrEmpty(VisitorID) || string.IsNullOrEmpty(LocatorID)) { return(ResponseHelper.Failure("游客ID或定位设备ID不能为空")); } if (EFHelper.GetAll <Visitor>().Where(t => t.VisitorID == VisitorID && t.VisitorState == 1).Count() == 0) { return(ResponseHelper.Failure("找不到该游客或未激活!")); } try { using (var db = new EFDbContext()) { var locators = db.Locators.Where(t => t.LocatorID == LocatorID); if (locators.Count() == 0) { return(ResponseHelper.Failure("找不到该定位设备!")); } if (locators.Single().LocatorState == 1) { return(ResponseHelper.Failure("该定位设备已进行过绑定!")); } locators.Single().LocatorState = 1; locators.Single().VisitorID = VisitorID; db.SaveChanges(); } return(ResponseHelper.Success(null)); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream Agree(string VisitorID, string InviterID) { if (string.IsNullOrEmpty(VisitorID) || string.IsNullOrEmpty(VisitorID)) { return(ResponseHelper.Failure("VisitorID或InviterID信息不完全!")); } try { using (var db = new EFDbContext()) { var groups = db.Groups.Where(t => t.VisitorID == VisitorID); if (groups.Count() == 0) { return(ResponseHelper.Failure("该游客没有邀请记录!")); } if (groups.Where(t => t.InviterID == InviterID).Count() == 0) { return(ResponseHelper.Failure("没有该条邀请记录!")); } if (groups.Where(t => t.InviteeState == 1).Count() > 0) { return(ResponseHelper.Failure("该游客已拥有队伍!")); } var query = db.Groups.Where(t => t.VisitorID == VisitorID && t.InviterID == InviterID).Single(); query.InviteeState = 1; db.SaveChanges(); } return(ResponseHelper.Success(null)); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream ReturnCommodity(Order order) { if (string.IsNullOrEmpty(order.OrderID)) { return(ResponseHelper.Failure("订单ID不能为空!")); } if (string.IsNullOrEmpty(order.CommodityID)) { return(ResponseHelper.Failure("退货商品信息不全!")); } try { using (var db = new EFDbContext()) { var orders = db.Orders.Where(t => t.OrderID == order.OrderID); if (orders.Count() == 0) { return(ResponseHelper.Failure("该订单不存在!")); } var v2o = db.Visitor2Orders.First(t => t.OrderID == order.OrderID); var v2c = db.Visitor2Cards.First(t => t.VisitorID == v2o.VisitorID); var query = db.Payments.Where(t => t.OrderID == order.OrderID).Select(t => new { t.PaymentAmount, t.PaymentType }).ToList(); //修改数据库中相关记录 orders.Single().OrderState = -1; v2c.Balance += query.Single().PaymentAmount; db.SaveChanges(); return(ResponseHelper.Success(query)); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream AddCommodity(Commodity commodity) { try { if (EFHelper.Add(commodity)) { return(ResponseHelper.Success(null)); } else { return(ResponseHelper.Failure("添加失败!")); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream AddChargeProject(ChargeProject chargeProject) { try { if (EFHelper.Add(chargeProject)) { return(ResponseHelper.Success(null)); } else { return(ResponseHelper.Failure("添加失败!")); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }
public Stream AddLocator(Locator locator) { try { if (EFHelper.Add(locator)) { return(ResponseHelper.Success(null)); } else { return(ResponseHelper.Failure("添加失败!")); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(ResponseHelper.Failure(ex.Message)); } }