Exemplo n.º 1
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <GetGameListFilter> >(request);
            var cmd = CommandHelper.CreateProcedure <Game>(text: "sp_GetGameList");

            cmd.Params.Add(CommandHelper.CreateParam("@clubId", req.Filter.ClubId));
            cmd.Params.Add(CommandHelper.CreateParam("@cityId", req.Filter.CityId));
            cmd.Params.Add(CommandHelper.CreateParam("@gameName", req.Filter.GameName));
            cmd.Params.Add(CommandHelper.CreateParam("@isOnlySelf", req.Filter.IsOnlySelf));
            cmd.Params.Add(CommandHelper.CreateParam("@state", req.Filter.State));
            cmd.CreateParamPager(req.Filter);
            cmd.CreateParamUser(req.Filter.UserId);

            var result = DbContext.GetInstance().Execute(cmd);

            result.SetRowCount();
            var user = UserHelper.GetUserById(req.Filter.UserId);

            if (user != null)
            {
                result.Tag = user.PetName;
            }
            if (result.Entities.IsNotNullOrEmpty())
            {
                foreach (Game obj in result.Entities)
                {
                    GameHelper.SetGameTeamList(obj);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据课程类型返回正在操作的课程名称
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private static string GetCourseName(CoachCourse obj)
        {
            string courseName = string.Empty;

            if (obj.Type == CoachDic.BigCourse)
            {
                string sql = "";
                sql = @"SELECT * FROM dbo.CoachBigCourseInfo WHERE id=@bigCourseId";
                var cmd = CommandHelper.CreateText <CoachBigCourseInfo>(FetchType.Fetch, sql);
                cmd.Params.Add("@bigCourseId", obj.BigCourseId);
                var result = DbContext.GetInstance().Execute(cmd);
                var data   = result.Entities.FirstOrDefault() as CoachBigCourseInfo;
                if (data != null)
                {
                    courseName = data.Name;
                }
            }
            else if (obj.Type == CoachDic.PrivateCourse)
            {
                User user = UserHelper.GetUserById(obj.CoachId);
                if (user != null)
                {
                    courseName = user.PetName + "(私教)的课程";
                }
                else
                {
                    courseName = "私教的课程";
                }
            }
            return(courseName);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取对应课程SMS 接收人电话(分教练或学员)
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="personType"></param>
        /// <returns></returns>
        private static string GetTelNo(User current, CoachCourse obj, CoursePersonType personType)
        {
            string userid = "";
            string telno  = string.Empty;

            switch (personType)
            {
            case CoursePersonType.Student:
                if (string.IsNullOrEmpty(current.Id))
                {
                    userid = obj.CreatorId;
                }
                else
                {
                    userid = current.Id;
                }
                break;

            case CoursePersonType.Coacher:
                userid = obj.CoachId;
                break;
            }
            User user = UserHelper.GetUserById(userid);

            if (user != null)
            {
                telno = user.Mobile;
            }
            return(telno);
        }
Exemplo n.º 4
0
        public Response GetBootcampAddStudentSelectList(Request <GetUserListFilter> req)
        {
            var cmd = CommandHelper.CreateProcedure <User>(text: "sp_GetBootcampAddStudentSelectList");

            cmd.Params.Add(CommandHelper.CreateParam("@keywords", req.Filter.Keywords));
            cmd.Params.Add(CommandHelper.CreateParam("@CoachBootcampId", req.Filter.CoachBootcampId));

            cmd.CreateParamPager(req.Filter);
            var result = DbContext.GetInstance().Execute(cmd);

            result.SetRowCount();
            var userList = result.Entities.ToList <EntityBase, User>();
            // 将这个时间段被其他教练已选的学员标记出来
            var selectedUserList = GetOtherCoachArrangeStudentList(req);

            foreach (var selectedUser in selectedUserList)
            {
                var obj = userList.Where(e => e.Id == selectedUser.Id).FirstOrDefault();
                if (obj != null)
                {
                    obj.IsCanNotSelect = true;
                    var    coach     = UserHelper.GetUserById(selectedUser.CoachId);
                    string coachName = "";
                    if (coach != null)
                    {
                        coachName = UserHelper.GetUserName(coach);
                    }
                    obj.CanNotSelectReason = string.Format("[{0}]学员已经被[{1}]教练选择了", obj.CardName, coachName);
                }
            }
            return(result);
        }
        public void SendJG(string reserveId, string coachId, string courseId, string currentUserId)
        {
            try
            {
                var user        = UserHelper.GetUserById(reserveId);
                var studentName = UserHelper.GetUserName(user);

                //教学管理员, 给学员和教练都发系统消息
                //发给教练
                string message = string.Format("[教学管理员]修改了你的课程预约, 请查看");
                Dictionary <string, object> extrasToCoach = new Dictionary <string, object>();
                extrasToCoach.Add("Type", SystemMessageType.CoachReservedCourseDetail);
                extrasToCoach.Add("BusinessId", courseId);
                extrasToCoach.Add("Message", message);
                JPushHelper.SendCourseSystemMessage(extrasToCoach, coachId);
                //发给学员
                Dictionary <string, object> extrasToStudent = new Dictionary <string, object>();
                extrasToStudent.Add("Type", SystemMessageType.StudentReservedCourseDetail);
                extrasToStudent.Add("BusinessId", courseId);
                extrasToStudent.Add("Message", message);
                JPushHelper.SendCourseSystemMessage(extrasToStudent, reserveId);
            }
            catch (Exception)
            {
            }
        }
Exemplo n.º 6
0
        public static void GetUserHeadUrl(GameLoopMap item)
        {
            //获取 user1HeadUrl
            if (item.User1Id != null)
            {
                string[] user1IdList = item.User1Id.Split(',');
                foreach (var user1Id in user1IdList)
                {
                    item.User1HeadUrl += UserHelper.GetUserById(user1Id).HeadUrl + ",";
                }
                item.User1HeadUrl = item.User1HeadUrl.Trim(',');
            }

            //获取 user2HeadUrl
            if (item.User2Id != null)
            {
                string[] user2IdList = item.User2Id.Split(',');

                foreach (var user2Id in user2IdList)
                {
                    item.User2HeadUrl += UserHelper.GetUserById(user2Id).HeadUrl + ",";
                }
                item.User2HeadUrl = item.User2HeadUrl.Trim(',');
            }
        }
Exemplo n.º 7
0
 public void SendJG(string reserveId, string coachId, string currentUserId)
 {
     try
     {
         var user        = UserHelper.GetUserById(reserveId);
         var studentName = UserHelper.GetUserName(user);
         if (currentUserId != SystemDic.SystemManagerId)//普通用户
         {
             //普通用户, 给教练 发系统消息
             Dictionary <string, object> extras = new Dictionary <string, object>();
             extras.Add("Type", SystemMessageType.DoNotJump);
             extras.Add("Message", string.Format("[{0}]取消了对你课程的预约", studentName));
             JPushHelper.SendCourseSystemMessage(extras, coachId);
         }
         else if (currentUserId == SystemDic.SystemManagerId)
         {
             //系统管理员, 给学员和教练都发系统消息
             //发给教练
             string message = string.Format("[系统管理员]取消了你课程的预约");
             Dictionary <string, object> extrasToCoach = new Dictionary <string, object>();
             extrasToCoach.Add("Type", SystemMessageType.DoNotJump);
             extrasToCoach.Add("Message", message);
             JPushHelper.SendCourseSystemMessage(extrasToCoach, coachId);
             //发给学员
             Dictionary <string, object> extrasToStudent = new Dictionary <string, object>();
             extrasToStudent.Add("Type", SystemMessageType.DoNotJump);
             extrasToStudent.Add("Message", message);
             JPushHelper.SendCourseSystemMessage(extrasToStudent, reserveId);
         }
     }
     catch (Exception)
     {
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// 检查直播状态(设置直播状态)
        /// </summary>
        /// <param name="liveRoom"></param>
        /// <param name="IsSet">默认不设置直播状态</param>
        /// <returns></returns>
        public static bool CheckLiveIsNotPush(LiveRoom liveRoom, bool IsSet = false)
        {
            string interface_str = "Live_Channel_GetStatus";//腾讯API直播状态查询接口

            if (IsSet)
            {
                interface_str = "Live_Channel_SetStatus";//腾讯API直播状态设置接口
            }
            //有效时间
            DateTime expireTime     = DateTime.Now.AddMinutes(10);
            var      epoch          = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            var      txTime         = (expireTime.ToUniversalTime() - epoch).TotalSeconds;
            long     expireUnixTime = Convert.ToInt64(txTime);

            //安全签名
            string apikey = ConfigurationManager.AppSettings["live_apikey"].ToString();
            string input  = apikey + expireUnixTime.ToString();
            string sign   = CreateMD5(input);

            //拼接查询直播状态的url
            string appid          = ConfigurationManager.AppSettings["live_appid"].ToString();
            User   user           = UserHelper.GetUserById(liveRoom.AnchorId);
            string userCode       = user != null ? user.Code : "";
            string bizid          = ConfigurationManager.AppSettings["live_bizid"].ToString();;
            string streamId       = bizid + "_" + userCode + "_" + (liveRoom.IsThirdparty?"1":"0"); //直播码
            string baseUrl        = "http://fcgi.video.qcloud.com";
            string queryStringUrl = string.Format(@"?appid={0}&interface={1}&Param.s.channel_id={2}&t={3}&sign={4}"
                                                  , appid, interface_str, streamId, expireUnixTime, sign);

            if (IsSet)
            {
                queryStringUrl = queryStringUrl + @"&Param.n.status=1";//增加设置状态参数
            }
            //判断是否在推流
            var  reqRest   = new RestRequest("common_access", Method.GET);
            var  rsp       = RestApiHelper.SendLiveRequest <LiveState>(reqRest, baseUrl, queryStringUrl);
            var  obj       = rsp.Data;
            bool isNotPush = false;

            if (obj != null && obj.output.Count > 0)
            {
                if (obj.output[0].status != 1)//0:断流;1:开启;3:关闭
                {
                    isNotPush = true;
                }
            }
            else
            {
                isNotPush = true;
            }

            return(isNotPush);
        }
Exemplo n.º 9
0
        public Response Execute(string request)
        {
            var req = JsonConvert.DeserializeObject <Request <GetUserRelatedFilter> >(request);
            //首先判断手机号是否绑定
            var user = UserHelper.GetUserById(req.Filter.UserId);

            if (string.IsNullOrEmpty(user.Mobile))
            {
                //提示用户先绑定手机(这是重要基础数据)
                return(ResultHelper.Fail("请先绑定手机"));
            }

            //如果有WeiXinTempCode 就获取 unionId
            if (!string.IsNullOrEmpty(req.Filter.WeiXinTempCode))
            {
                //获取WeiXinUnionId
                var weiXinUser = SystemHelper.Instance.getWeiXinUserInfo(req.Filter.WeiXinTempCode);
                if (weiXinUser.unionid == null)
                {
                    weiXinUser.unionid = "";
                }
                req.Filter.WeiXinUnionId = weiXinUser.unionid;
            }

            //检查此qq或微信是否和已有账户绑定
            var result = getUserByQQWeiXinId(req);

            if (result.Entities.Count == 0)
            {
                //不存在就绑定到传来的账户上
                if (!string.IsNullOrEmpty(req.Filter.QQOpenId)) //qq绑定
                {
                    result = updateUserSetOpenId(req);
                }
                else if (!string.IsNullOrEmpty(req.Filter.WeiXinUnionId))//微信绑定
                {
                    result = updateUserSetUnionId(req);
                }
            }
            else
            {
                //存在就提示用户去解除绑定
                return(ResultHelper.Fail("已绑定其他账号,绑定失败"));
            }

            return(result);
        }
Exemplo n.º 10
0
        public Response Execute(string request)
        {
            var req    = JsonConvert.DeserializeObject <Request <GetUserRelatedFilter> >(request);
            var user   = UserHelper.GetUserById(req.Filter.UserId);
            var result = new Response();

            if (req.Filter.UnBindType == "QQ")
            {
                result = UnBindQQ(req, user);
            }
            else if (req.Filter.UnBindType == "WeiXin")
            {
                result = UnBindWeiXin(req, user);
            }

            return(result);
        }
Exemplo n.º 11
0
        public void SendJG(string reserveId, string coachId, string courseId)
        {
            try
            {
                var user        = UserHelper.GetUserById(reserveId);
                var studentName = UserHelper.GetUserName(user);
                Dictionary <string, object> extras = new Dictionary <string, object>();
                extras.Add("Type", SystemMessageType.CoachReservedCourseDetail);
                extras.Add("BusinessId", courseId);
                extras.Add("Message", string.Format("[{0}]学员预约了你的课程, 请查看", studentName));

                JPushHelper.SendCourseSystemMessage(extras, coachId);
            }
            catch (Exception)
            {
            }
        }
Exemplo n.º 12
0
        public Response Execute(string request)
        {
            var req = JsonConvert.DeserializeObject <Request <User> >(request);

            if (req.Filter.Id.IsNotNullOrEmpty() && req.Filter.Mobile.IsNullOrEmpty())
            {
                User temp = UserHelper.GetUserById(req.Filter.Id);
                if (temp != null)
                {
                    req.Filter.Mobile = temp.Mobile;
                }
            }

            if (req.Filter.Mobile.IsNotNullOrEmpty())
            {
                ValCode val  = new ValCode();
                string  code = val.CreateValidateCode(4);

                var cmd = CommandHelper.CreateProcedure(FetchType.Execute, "sp_UpdateValCode");
                cmd.Params.Add("@mobile", req.Filter.Mobile);
                cmd.Params.Add("@code", code);
                var result = DbContext.GetInstance().Execute(cmd);

                if (!result.IsSuccess)
                {
                    return(ResultHelper.Fail("发送验证码失败。"));
                }


                var sendResult = SmsHelper.SendValCode(req.Filter.Mobile, code);
                if (sendResult.result == 0)
                {
                    return(ResultHelper.Success("发送成功。"));
                }
                else
                {
                    return(ResultHelper.Fail(string.Format("发送验证码失败,错误代码:{0}。", sendResult.errMsg)));
                }
            }
            else
            {
                return(ResultHelper.Fail("请输入手机号码。"));
            }
        }
Exemplo n.º 13
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <ClubUser> >(request);
            var obj = req.Entities.FirstOrDefault();

            obj.ClubId = obj.ClubId.GetId();
            obj.UserId = obj.UserId.GetId();
            obj.SetNewEntity();
            //验证是否是俱乐部成员,存在则直接返回
            if (ClubHelper.HasClubMember(obj.ClubId, obj.UserId))
            {
                return(ResultHelper.Fail("已经是俱乐部成员。"));
            }
            var cmd    = CommandHelper.CreateSave(req.Entities);
            var result = DbContext.GetInstance().Execute(cmd);

            if (result.IsSuccess)
            {
                ClubHelper.Instance.ImportToIMGroup(obj.ClubId, UserHelper.GetUserById(obj.UserId).Code);
            }
            return(result);
        }
Exemplo n.º 14
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <CoachCourse> >(request);
            Response rsp = ResultHelper.CreateResponse();
            var      obj = req.FirstEntity();

            //获取课程信息
            var coachCourse = GetCoachCourse(obj);

            if (coachCourse == null)
            {
                //如果不存在, 说明是首次通过集训模板课程创建实际课程的情况, 那就去创建一个实际课程
                coachCourse = CreateActualCoachCourse(obj);
            }
            obj.Id = coachCourse.Id;//补全Id

            //删除之前的学员列表并返还次数
            DeleteOldStudentList(obj);
            //如果学员列表为空就删除此课程
            if (obj.CoursePersonInfoList.Count == 0)
            {
                return(DeleteCoachCourse(obj));
            }
            //保存新的学员列表
            foreach (var personInfo in obj.CoursePersonInfoList)
            {
                personInfo.CourseId = obj.Id;
                User user = UserHelper.GetUserById(personInfo.YdlUserId);
                personInfo.StudentName   = UserHelper.GetUserName(user);
                personInfo.StudentMobile = user.Mobile;
                //插入一个学员
                SystemHelper.Instance.InsertEntity(personInfo);
                //扣除一次学员的集训余额
                CoachHelper.Instance.SubBootcampBalanceOne(personInfo.YdlUserId, obj.CoachBootcampId);
            }
            rsp.Tag = obj.Id;
            return(rsp);
        }
Exemplo n.º 15
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            //先获取教练有哪些学员
            var cmd = CommandHelper.CreateProcedure <CoachStudentMoney>(text: "GetCoachStudentList");

            cmd.Params.Add("@CoachId", req.Filter.CoachId);//(不传教练Id是获取所有学员)
            cmd.Params.Add("@Name", req.Filter.StudentName);
            cmd.CreateParamPager(req.Filter);

            var result = DbContext.GetInstance().Execute(cmd);

            result.SetRowCount();

            List <CoachStudent> studentList = new List <CoachStudent>();

            foreach (var item in result.Entities)
            {
                CoachStudent coachStudent  = new CoachStudent();
                var          StudentUserId = (item as CoachStudentMoney).StudentUserId;
                //获取学员的基本信息
                var user = UserHelper.GetUserById(StudentUserId);
                if (user == null)
                {
                    continue;
                }
                coachStudent.HeadUrl = user.HeadUrl;
                coachStudent.Name    = UserHelper.GetUserName(user);
                coachStudent.Sex     = user.Sex;
                coachStudent.Id      = StudentUserId;
                //获取学员的余额信息
                GetBalance(coachStudent, StudentUserId, req.Filter.CoachId);
                studentList.Add(coachStudent);
            }
            result.Entities.Clear();
            result.Entities.AddRange(studentList);
            return(result);
        }
Exemplo n.º 16
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <GetLiveRelatedFilter> >(request);
            var cmd = CommandHelper.CreateProcedure <LiveRoom>(text: "sp_GetLiveRoomList");

            cmd.Params.Add(CommandHelper.CreateParam("@GameId", req.Filter.GameId));
            cmd.CreateParamPager(req.Filter);

            var result = DbContext.GetInstance().Execute(cmd);

            result.SetRowCount();
            foreach (var item in result.Entities)
            {
                var obj = item as LiveRoom;
                if (!string.IsNullOrEmpty(obj.VsGameLoopId))
                {
                    obj.VSDetail = LiveHelper.Instance.GetVSDetail(obj.VsOrderId, obj.VsGameLoopId);
                }


                //假如是点播视频,则PlayUrl变为对应的点播视频地址
                if (obj.IsVod)//点播更改地址
                {
                    obj.PlayUrl = obj.VodPlayUrl;
                }
                else
                {
                    User user = UserHelper.GetUserById(obj.AnchorId);
                    if (user != null)
                    {
                        string play = LiveHelper.Instance.GetPlayUrl(user.Code, obj.IsThirdparty);
                        obj.PlayUrl = play.Substring(0, play.IndexOf('?')) + @".flv";//直播地址
                        //obj.SharePlayUrl = LiveHelper.Instance.GetShareUrl(obj.PlayUrl);//获取直播分享地址
                    }
                }
            }
            return(result);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 如果此用户是ydl用户 就设置相关余额等信息
        /// </summary>
        public void SetPersonInfo(CoachCoursePersonInfo item, CoachCourse coachCourse)
        {
            //获取基本信息
            var user = UserHelper.GetUserById(item.YdlUserId);

            if (user != null)
            {
                item.HeadUrl = user.HeadUrl;
                item.Sex     = user.Sex;
                //item.StudentName = UserHelper.GetUserName(user);
            }
            //获取余额信息
            GetBalance(coachCourse, item);
            //如果私教有训练计划的话就赋私教的训练计划内容
            if (coachCourse.Type == CoachDic.PrivateCourse)
            {
                var plan = CoachHelper.Instance.GetTrainingPlan(coachCourse.CoachId, item.YdlUserId);
                if (plan != null && !string.IsNullOrEmpty(plan.TrainingPlanContent))
                {
                    item.CourseContent = plan.TrainingPlanContent;
                }
            }
        }
Exemplo n.º 18
0
        /// <summary>
        /// 获取约课人姓名
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="personType"></param>
        /// <returns></returns>
        private static string GetCourseOrderPerson(User current, CoachCourse obj, CoursePersonType personType)
        {
            string username = "******";

            if (personType == CoursePersonType.Coacher)
            {
                string userid = string.Empty;
                if (string.IsNullOrEmpty(current.Id))
                {
                    userid = obj.CreatorId;
                }
                else
                {
                    userid = current.Id;
                }
                User user = UserHelper.GetUserById(userid);
                if (user != null)
                {
                    username = user.PetName;
                }
            }
            return(username);
        }
Exemplo n.º 19
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            Response rsp = new Response();
            //附近的一个场馆
            CoachCourse coachCourse = new CoachCourse();

            coachCourse.Venue = GetVenue(req);
            //课时列表
            List <SysDic> list = new List <SysDic>();

            list.Add(new SysDic()
            {
                CourseCount = 10
            });
            list.Add(new SysDic()
            {
                CourseCount = 30
            });
            list.Add(new SysDic()
            {
                CourseCount = 50
            });
            coachCourse.CourseCountList = list;
            rsp.IsSuccess = true;
            rsp.Entities.Add(coachCourse);
            //个人信息
            coachCourse.StudentName = UserHelper.GetUserName(currentUser);
            var user = UserHelper.GetUserById(currentUser.Id);

            if (user != null)
            {
                coachCourse.StudentMobile = user.Mobile;
            }

            return(rsp);
        }
Exemplo n.º 20
0
        /// <summary>
        /// 审核入群用户
        /// </summary>
        /// <param name="currentUser"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <ClubRequest> >(request);
            var obj = req.Entities.FirstOrDefault();

            var cmd = CommandHelper.CreateProcedure(FetchType.Execute, "sp_AuditClubRequest");

            cmd.Params.Add("@requestId", obj.Id);
            cmd.Params.Add("@level", obj.Level, DataType.Int32);
            cmd.Params.Add("@state", obj.State.GetId());
            cmd.Params.Add("@auditorId", obj.AuditorId.GetId());
            cmd.CreateParamMsg();

            var result = DbContext.GetInstance().Execute(cmd);

            //审核结果通知本人
            if (result.IsSuccess)
            {
                try
                {
                    var club   = ClubHelper.GetClub(obj.ClubId);
                    var admins = new List <string> {
                        obj.CreatorId.GetId()
                    };
                    var msg = string.Format("您的入群请求[{0}]{1}。", club.Name, obj.State.GetId() == ClubRequestState.PASS.Id ? "已通过" : "被拒绝");
                    JPushHelper.SendNotify(MasterType.CLUB.Id, obj.ClubId, msg, admins);
                }
                catch (Exception)
                {
                }

                //同步加入IM群
                ClubHelper.Instance.ImportToIMGroup(obj.ClubId, UserHelper.GetUserById(obj.CreatorId.GetId()).Code);
            }

            return(result);
        }
Exemplo n.º 21
0
        public Coach GetCoach(string userId)
        {
            var sql = @"
SELECT 
	*
FROM dbo.Coach WHERE Id=@userId
 ";
            var cmd = CommandHelper.CreateText <Coach>(FetchType.Fetch, sql);

            cmd.Params.Add("@userId", userId);
            var result = DbContext.GetInstance().Execute(cmd);
            var obj    = result.FirstEntity <Coach>();

            if (obj != null)
            {
                User user = UserHelper.GetUserById(obj.Id);
                if (user != null)
                {
                    obj.Name = UserHelper.GetUserName(user);
                }
            }

            return(result.FirstEntity <Coach>());
        }
Exemplo n.º 22
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <LiveRoom> >(request);
            var obj = req.FirstEntity();

            List <EntityBase> entites = new List <EntityBase>();

            entites.Add(obj);

            if (obj.RowState != RowState.Deleted)
            {
                if (obj.IsThirdparty)
                {
                    obj.State = LiveDic.Active;
                }
                else
                {
                    obj.State = LiveDic.UnActive;
                }

                //判断此人的直播间是否存在
                var sql = @"SELECT * FROM LiveRoom WHERE AnchorId=@userId;";
                var cmd = CommandHelper.CreateText <LiveRoom>(FetchType.Fetch, sql);
                cmd.Params.Add("@userId", obj.AnchorId);
                var existResult = DbContext.GetInstance().Execute(cmd);
                var existObj    = existResult.FirstEntity <LiveRoom>();
                if (existObj != null)
                {
                    obj.RowState = RowState.Modified;
                    obj.Id       = existObj.Id;
                    if (!obj.IsThirdparty)
                    {
                        obj.State = existObj.State;//假如是修改,直播状态以上传的为准
                    }
                    obj.SetCreateDate();
                }
                else
                {
                    obj.RowState = RowState.Added;
                    obj.TrySetNewEntity();
                }


                //注意以下两行代码要一起拷贝, 不然会出现莫名其妙的图片问题
                //处理头像
                obj.ModifyHeadIcon();
                //获取将要保存的图片列表
                obj.GetWillSaveFileList(entites);
            }



            var result = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));

            if (obj.RowState != RowState.Deleted)
            {
                result.Tag = LiveHelper.Instance.GetPushUrl(currentUser.Code, obj.IsThirdparty);//直播推流URL
                User user = UserHelper.GetUserById(obj.AnchorId);
                if (user != null)
                {
                    string playUrl      = LiveHelper.Instance.GetPlayUrl(user.Code, obj.IsThirdparty);
                    string liveShareUrl = string.IsNullOrEmpty(ConfigurationManager.AppSettings["LIVE_SHARE_URL"])? "https://lvbs.cloud.tencent.com/live/play.html" : ConfigurationManager.AppSettings["LIVE_SHARE_URL"];
                    string m3u8ShareUrl = LiveHelper.Instance.GetShareUrl(playUrl, 1);            //m3u8播放地址
                    string flvShareUrl  = LiveHelper.Instance.GetShareUrl(playUrl, 2);            //flv播放地址
                    //obj.SharePlayUrl=LiveHelper.Instance.GetShareUrl(playUrl);//获取直播分享地址
                    result.Tag1 = liveShareUrl + "?url=" + m3u8ShareUrl + "&url1=" + flvShareUrl; //获取直播分享地址
                }

                result.Entities.Add(obj);
            }
            return(result);
        }