Exemplo n.º 1
0
        //add by brucezhang,2019-05-09,聊天时不用更新瓶子预览文案,页面的预览文案从聊天记录中直接取
        public ACT_ChatRecord Add(ACT_ChatRecord request)
        {
            try
            {
                var entity = commonDal.Add(request);
                if (entity != null && !string.IsNullOrEmpty(entity.ID))
                {
                    //聊天记录新增一条,对应瓶子列表的聊天预览文案也要更新
                    var bittleBiz = new BottleBiz();
                    var bottle    = bittleBiz.Query <ACT_Bottle>(request.BottleID);
                    if (request.ChatType == 1)
                    {
                        bottle.BottleDesc = "[图片消息]";
                    }
                    else if (request.ChatType == 2)
                    {
                        bottle.BottleDesc = "[语音消息]";
                    }
                    else if (request.ChatType == 3)
                    {
                        bottle.BottleDesc = "[视频消息]";
                    }
                    else
                    {
                        bottle.BottleDesc = request.ChatText;
                    }
                    bottle.UpdateTime   = DateTime.Now;
                    bottle.UpdateUserID = request.SenderID;
                    new BottleBiz().Update(bottle);
                }

                return(entity);
            }
            catch (Exception ex)
            {
                var message = $"ChatRecordBiz Add 出错 -> 错误信息:{ex.Message}, 堆栈信息:{ex.StackTrace}, 请求参数:{JsonConvert.SerializeObject(request)}";
                WriteLog(message);
                return(null);
            }
        }
Exemplo n.º 2
0
        public HttpResponseMessage Add(ACT_ChatRecord request)
        {
            //保存图片
            if (request.ChatType == 1)
            {
                if (string.IsNullOrEmpty(request.ChatText))
                {
                    return(ErrorToJson("未检测到图片"));
                }
                var fileFullPath = "";
                try
                {
                    var fileName     = DateTime.Now.Ticks + AppConst.ImgExtion;
                    var imgFolder    = AppConfig.ImgChatFolder + request.BottleID + "/";
                    var directFolder = AppConfig.ImgRootPath + imgFolder;
                    fileFullPath = directFolder + fileName;
                    var success = ImageUtil.SaveImageToLocal(request.ChatText, directFolder, fileName);
                    if (success)
                    {
                        request.ChatText = AppConfig.ImgRootUrl + imgFolder + fileName;
                    }
                }
                catch (Exception ex)
                {
                    var message = $"聊天图片保存 出错 -> 错误信息:{ex.Message}, 堆栈信息:{ex.StackTrace}, 物理地址:{fileFullPath}";
                    WriteLog(message);
                    return(ErrorToJson("发送图片失败"));
                }
            }

            request.ID            = Guid.NewGuid().ToString();
            request.UpdateTime    = DateTime.Now;
            request.CreatedTime   = DateTime.Now;
            request.CreatedUserID = request.SenderID;
            request.UpdateUserID  = request.SenderID;

            var entity = chatRecordBiz.Add(request);

            return(EntityToJson(entity));
        }
Exemplo n.º 3
0
        public HttpResponseMessage ThrowBottle(BottleRequest request)
        {
            if (request == null || string.IsNullOrEmpty(request.BottleDesc))
            {
                return(ErrorToJson("瓶子内容为空,请重试!"));
            }

            //ConvertBaseRequest(request);

            var bottleInfo = new ACT_Bottle
            {
                ThrowUserID   = request.ThrowUserID,
                BottleDesc    = request.BottleDesc,
                CreatedUserID = request.ThrowUserID,
                UpdateUserID  = request.ThrowUserID,
            };

            var bottleEntity = bottleBiz.Add(bottleInfo);

            //异步记录瓶子聊天记录和位置
            Task.Run(() =>
            {
                //插入第一条聊天记录
                var chatInfo = new ACT_ChatRecord
                {
                    ID            = Guid.NewGuid().ToString(),
                    BottleID      = bottleEntity.ID,
                    ChatText      = request.BottleDesc,
                    SenderID      = request.ThrowUserID,
                    Remark        = "扔瓶子时同步聊天记录",
                    CreatedTime   = DateTime.Now,
                    UpdateTime    = DateTime.Now,
                    CreatedUserID = request.ThrowUserID,
                    UpdateUserID  = request.ThrowUserID,
                };
                new ChatRecordBiz().Add(chatInfo);

                var positionInfo = new ACT_User_Position
                {
                    UserID        = request.ThrowUserID,
                    BottleID      = bottleEntity.ID,
                    Longitude     = request.Longitude,
                    Latitude      = request.Latitude,
                    CreatedUserID = request.ThrowUserID,
                    UpdateUserID  = request.ThrowUserID,
                    Province      = request.Province,
                    City          = request.City,
                    District      = request.District,
                    Street        = request.Street,
                    StreetNumber  = request.StreetNumber,
                    AddressDetail = request.AddressDetail,
                };
                new PositionBiz().Add(positionInfo);
            });

            if (bottleEntity == null)
            {
                commonBiz.WriteRequestLog(request.ThrowUserID, (int)EnumModel.LogType.Bottle_Throw, "", "扔瓶子失败");
                return(ErrorToJson("瓶子没扔出去,重新试下吧!"));
            }

            commonBiz.WriteRequestLog(request.ThrowUserID, (int)EnumModel.LogType.Bottle_Throw, bottleEntity.ID.ToString());
            return(EntityToJson(bottleEntity));
        }