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); }
/// <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); }
/// <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); }
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) { } }
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(','); } }
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) { } }
/// <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); }
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); }
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); }
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) { } }
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("请输入手机号码。")); } }
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); }
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); }
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); }
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); }
/// <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; } } }
/// <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); }
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); }
/// <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); }
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>()); }
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); }