Пример #1
0
        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
            //... ...
        }
Пример #2
0
        public override DeleteNearCircleInfoResponseBody ExecuteCore()
        {
            DeleteNearCircleInfoResponseBody res = new DeleteNearCircleInfoResponseBody()
            {
                Status = ResultStatus.Failed
            };

            using (HWLEntities db = new HWLEntities())
            {
                t_near_circle model = db.t_near_circle.Where(l => l.id == this.request.NearCircleId && l.user_id == this.request.UserId).FirstOrDefault();
                if (model == null)
                {
                    //throw new Exception("要删除的数据不存在");
                    res.Status = ResultStatus.Success;
                    return(res);
                }

                bool succ = new Redis.NearCircleAction().DeleteNearCircleId(this.request.NearCircleId);
                //if (!succ) throw new Exception("删除失败");
                if (succ)
                {
                    //try
                    //{
                    var imgs = db.t_near_circle_image.Where(l => l.near_circle_id == this.request.NearCircleId).ToList();
                    if (imgs != null && imgs.Count > 0)
                    {
                        db.t_near_circle_image.RemoveRange(imgs);
                    }

                    var comments = db.t_near_circle_comment.Where(l => l.near_circle_id == this.request.NearCircleId).ToList();
                    if (comments != null && comments.Count > 0)
                    {
                        db.t_near_circle_comment.RemoveRange(comments);
                    }

                    var likes = db.t_near_circle_like.Where(l => l.near_circle_id == this.request.NearCircleId).ToList();
                    if (likes != null && likes.Count > 0)
                    {
                        db.t_near_circle_like.RemoveRange(likes);
                    }

                    //}
                    //catch (Exception)
                    //{
                    //    //可以忽略这个错误
                    //}
                }

                db.t_near_circle.Remove(model);
                db.SaveChanges();
                res.Status = ResultStatus.Success;
            }

            return(res);
        }
Пример #3
0
        public override DeleteNearCircleInfoResponseBody ExecuteCore()
        {
            DeleteNearCircleInfoResponseBody res = new DeleteNearCircleInfoResponseBody()
            {
                Status = ResultStatus.Failed
            };

            t_near_circle model = db.t_near_circle.Where(l => l.id == this.request.NearCircleId && l.user_id == this.request.UserId).FirstOrDefault();

            if (model == null)
            {
                res.Status = ResultStatus.Success;
                return(res);
            }

            bool succ = NearCircleStore.DeleteNearCircleId(this.request.NearCircleId);

            if (succ)
            {
                var comments = db.t_near_circle_comment.Where(l => l.near_circle_id == this.request.NearCircleId).ToList();
                if (comments != null && comments.Count > 0)
                {
                    db.t_near_circle_comment.RemoveRange(comments);
                }

                var likes = db.t_near_circle_like.Where(l => l.near_circle_id == this.request.NearCircleId).ToList();
                if (likes != null && likes.Count > 0)
                {
                    db.t_near_circle_like.RemoveRange(likes);
                }
            }

            db.t_near_circle.Remove(model);
            db.SaveChanges();
            res.Status = ResultStatus.Success;

            return(res);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }