public override AddNearCircleInfoResponseBody ExecuteCore() { AddNearCircleInfoResponseBody res = new AddNearCircleInfoResponseBody(); using (HWLEntities db = new HWLEntities()) { t_near_circle model = new t_near_circle() { user_id = this.request.UserId, content_info = this.request.Content, content_type = GetContentType(), link_image = this.request.LinkImage, link_title = this.request.LinkTitle, link_url = this.request.LinkUrl, lat = this.request.Lat, lon = this.request.Lon, id = 0, pos_id = this.request.PosId, pos_desc = this.request.PosDesc, comment_count = 0, image_count = this.request.Images != null ? this.request.Images.Count : 0, like_count = 0, publish_time = DateTime.Now, update_time = DateTime.Now }; db.t_near_circle.Add(model); db.SaveChanges(); res.NearCircleId = model.id; res.ContentType = model.content_type; res.PublishTime = model.publish_time; //向redis中添加信息的位置数据 if (res.NearCircleId > 0) { bool succ = new NearCircleAction().CreateNearCirclePos(res.NearCircleId, this.request.Lon, this.request.Lat); if (!succ)//如果添加失败,则将数据库中已经添加的数据删除 { db.t_near_circle.Remove(model); db.SaveChanges(); throw new Exception("发布附近信息失败"); } else { if (this.request.Images != null && this.request.Images.Count > 0) { //添加图片 List <t_near_circle_image> imgModels = new List <t_near_circle_image>(); this.request.Images.ForEach((i) => { if (string.IsNullOrEmpty(i.Url)) { return; } imgModels.Add(new t_near_circle_image() { near_circle_id = model.id, near_circle_user_id = model.user_id, image_url = i.Url, height = i.Height, width = i.Width }); }); if (imgModels == null || imgModels.Count <= 0) { return(res); } try { db.t_near_circle_image.AddRange(imgModels); db.SaveChanges(); } catch (Exception) { //可以忽略这个错误 } } } } } return(res); }
public override GetNearCircleInfosResponseBody ExecuteCore() { GetNearCircleInfosResponseBody res = new GetNearCircleInfosResponseBody(); if (this.request.Lat < 0 && this.request.Lon < 0) { return(res); } List <int> geoIdList = new NearCircleAction().GetNearCircleIds(this.request.Lon, this.request.Lat); if (geoIdList == null || geoIdList.Count <= 0) { return(res); } List <int> ids = null; if (this.request.MinNearCircleId > 0) { ids = geoIdList.Where(g => g < this.request.MinNearCircleId).Take(this.request.Count).ToList(); } else { ids = geoIdList.Take(this.request.Count).ToList(); //ids = geoIdList.Skip((this.request.PageIndex - 1) * this.request.Count).Take(this.request.Count).ToList(); } //if (this.request.MaxNearCircleId > 0) //{ // ids = geoIdList.Where(g => g > this.request.MaxNearCircleId).Take(this.request.Count).ToList(); //} //else if (this.request.MinNearCircleId > 0) //{ // ids = geoIdList.Where(g => g < this.request.MinNearCircleId).Take(this.request.Count).ToList(); //} //else //{ // ids = geoIdList.Take(this.request.Count).ToList(); //} if (ids == null || ids.Count <= 0) { return(res); } db = new HWLEntities(); var list = db.t_near_circle.Where(c => ids.Contains(c.id)).OrderByDescending(c => c.id).ToList(); if (list == null || list.Count <= 0) { return(res); } if (this.request.NearCircleMatchInfos != null && this.request.NearCircleMatchInfos.Count > 0) { list.RemoveAll(r => this.request.NearCircleMatchInfos.Exists(c => c.NearCircleId == r.id && c.UpdateTime == GenericUtility.FormatDate2(r.update_time))); } res.NearCircleInfos = list.ConvertAll(c => new NearCircleInfo { NearCircleId = c.id, CommentCount = c.comment_count, Content = c.content_info, ContentType = c.content_type, PosDesc = c.pos_desc, //Images = null, LikeCount = c.like_count, LinkImage = c.link_image, LinkTitle = c.link_title, LinkUrl = c.link_url, PublishTime = GenericUtility.FormatDate(c.publish_time), UpdateTime = GenericUtility.FormatDate2(c.update_time), PublishUserId = c.user_id, }); BindInfo(res.NearCircleInfos); return(res); }