private void AddNearCircle() { var db = HWLDBContext.GetDBContext(ShareConfiguration.DBConnectionString); t_near_circle model = new t_near_circle() { user_id = this.userId, content_info = this.messageModel.Content, content_type = CustomerEnumDesc.GetCircleContentType(this.messageModel.Content, null, null, this.messageModel.ImageUrls?.Count ?? 0), lat = this.positionModel.Lat, lon = this.positionModel.Lon, pos_desc = this.positionModel.PosDetails, pos_id = 0, image_urls = CircleImageParser.GetImageString(this.messageModel.ImageUrls), comment_count = 0, image_count = 0, like_count = 0, publish_time = DateTime.Now, update_time = DateTime.Now }; db.t_near_circle.Add(model); db.SaveChanges(); NearCircleStore.CreateNearCirclePos(model.id, model.lon, model.lat); //send im message to near users //... ... }
public override GetCircleDetailResponseBody ExecuteCore() { GetCircleDetailResponseBody res = new GetCircleDetailResponseBody(); var model = db.t_circle.Where(c => c.id == this.request.CircleId).FirstOrDefault(); if (model == null) { return(res); } if (this.request.UpdateTime != null && this.request.UpdateTime == GenericUtility.FormatDate2(model.update_time)) { return(res); } res.CircleInfo = new CircleInfo() { CircleId = model.id, CommentCount = model.comment_count, CircleContent = model.content_info, ContentType = model.content_type, PosDesc = model.pos_desc, Images = CircleImageParser.GetImages(model.image_urls), ImageCount = model.image_count, LikeCount = model.like_count, LinkImage = model.link_image, LinkTitle = model.link_title, LinkUrl = model.link_url, PublishTime = GenericUtility.FormatDate(model.publish_time), UpdateTime = GenericUtility.FormatDate2(model.update_time), PublishUserId = model.user_id, CommentInfos = CircleUtility.GetComments(db, this.request.UserId, model.id), LikeInfos = CircleUtility.GetLikes(this.request.UserId, model.id) }; BindInfo(res.CircleInfo); return(res); }
public override GetNearCircleInfosResponseBody ExecuteCore() { GetNearCircleInfosResponseBody res = new GetNearCircleInfosResponseBody(); if (this.request.Lat < 0 && this.request.Lon < 0) { return(res); } List <int> geoIdList = Redis.NearCircleStore.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); } 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 = CircleImageParser.GetImages(c.image_urls), 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); }
public override AddNearCircleInfoResponseBody ExecuteCore() { AddNearCircleInfoResponseBody res = new AddNearCircleInfoResponseBody(); t_near_circle model = new t_near_circle() { user_id = this.request.UserId, content_info = this.request.Content, content_type = CustomerEnumDesc.GetCircleContentType(this.request.Content, this.request.LinkUrl, this.request.LinkTitle, this.request.Images?.Count ?? 0), 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, image_urls = CircleImageParser.GetImageString(this.request.Images), 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 = Redis.NearCircleStore.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 GetUserCircleInfosResponseBody ExecuteCore() { GetUserCircleInfosResponseBody res = new GetUserCircleInfosResponseBody(); var postUser = db.t_user.Where(u => u.id == this.request.ViewUserId).FirstOrDefault(); if (postUser == null) { throw new Exception("用户不存在"); } res.ViewUserId = postUser.id; res.ViewUserImage = postUser.head_image; res.ViewUserName = postUser.name; //res.CircleBackImage = postUser.circle_back_image; //res.LifeNotes = postUser.life_notes; IQueryable <t_circle> query = db.t_circle.OrderByDescending(r => r.id); if (this.request.ViewUserId > 0) { query = query.Where(q => q.user_id == this.request.ViewUserId); } if (this.request.MinCircleId > 0) { query = query.Where(q => q.id < this.request.MinCircleId).Take(this.request.Count); } if (this.request.Count > 0) { query = query.Take(this.request.Count); } var list = query.ToList(); if (list == null || list.Count <= 0) { return(res); } if (this.request.CircleMatchInfos != null && this.request.CircleMatchInfos.Count > 0) { list.RemoveAll(r => this.request.CircleMatchInfos.Exists(c => c.CircleId == r.id && c.UpdateTime == GenericUtility.FormatDate2(r.update_time))); } res.CircleInfos = list.ConvertAll(q => new CircleInfo { CircleId = q.id, ContentType = q.content_type, CircleContent = q.content_info, CommentCount = q.comment_count, ImageCount = q.image_count, Lat = q.lat, LikeCount = q.like_count, LinkImage = q.link_image, LinkTitle = q.link_title, LinkUrl = q.link_url, Lon = q.lon, Images = CircleImageParser.GetImages(q.image_urls), PublishUserId = q.user_id, PublishTime = GenericUtility.FormatDate(q.publish_time), UpdateTime = GenericUtility.FormatDate2(q.update_time), //IsLike = false, //CommentInfos = null, //LikeUserInfos = null, //PostUserInfo = null, }); GetCircleInfos.BindCircleInfos(db, this.request.ViewUserId, res.CircleInfos); return(res); }
public override AddCircleInfoResponseBody ExecuteCore() { AddCircleInfoResponseBody res = new AddCircleInfoResponseBody(); t_circle model = new t_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, image_urls = CircleImageParser.GetImageString(this.request.Images), 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_circle.Add(model); db.SaveChanges(); res.CircleId = model.id; res.ContentType = model.content_type; res.PublishTime = model.publish_time; //if (res.CircleId > 0) //{ // if (this.request.Images != null && this.request.Images.Count > 0) // { // List<t_circle_image> imgModels = new List<t_circle_image>(); // this.request.Images.ForEach((i) => // { // if (string.IsNullOrEmpty(i.Url)) return; // imgModels.Add(new t_circle_image() // { // circle_id = model.id, // 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_circle_image.AddRange(imgModels); // db.SaveChanges(); // } // catch (Exception) // { // } // } //} return(res); }