//用户试听课微信提醒 public IActionResult OnPostWxRemind(long Id) { ResultNormal result = new ResultNormal(); try { var trial = _CourseSrv.GetTrialLogById(Id); //微信发送 UserTrialRemindTemplate wxMessage = new UserTrialRemindTemplate(); wxMessage.data = wxMessage.GenerateData(trial.OpenId, trial); WXApi.SendTemplateMessage <UserTrialRemindTemplate>(wxMessage); if (result.IsSuccess) { _CourseSrv.AddTrialRemindCount(Id); } } catch (Exception ex) { result.ErrorMsg = ex.Message; } return(new JsonResult(result)); }
/// <summary> /// 发送奖励金 /// </summary> /// <param name="Id"></param> /// <returns></returns> public IActionResult OnPostSendReward(long invitelogId, string invitedOpenId, string ownOpenId) { ResultNormal result = new ResultNormal(); try { AmountTransType amountTransType = AmountTransType.Invited_TrialReward; EUserAccount ownAccount; bool needWx = _SalesSrv.CreateRewardTrans(invitelogId, ownOpenId, amountTransType, out ownAccount); if (ownAccount != null) { var ui = _UserSrv.GetUserInfo(invitedOpenId); NLogHelper.InfoTxt($"wxMessage:OpenId-{ownOpenId}"); //微信提醒 UserAccountChangeTemplate wxMessage = new UserAccountChangeTemplate(); wxMessage.data = wxMessage.GenerateData(ownOpenId, ui.Name, amountTransType, DateTime.Now, ownAccount.InviteRewards, GlobalSrv.GetRewardAmount(amountTransType) ); WXApi.SendTemplateMessage <UserAccountChangeTemplate>(wxMessage); } } catch (Exception ex) { result.ErrorMsg = ex.Message; } return(new JsonResult(result)); }
public void OnPostNewInvite() { Msg = "创建成功!"; try { //var trial = _CourseSrv.GetTrialLogById(172); //UserTrialRemindTemplate wxMessage = new UserTrialRemindTemplate(); //wxMessage.data = wxMessage.GenerateData(trial.OpenId, trial); //WXApi.SendTemplateMessage<UserTrialRemindTemplate>(wxMessage); NewUserJoinWXTemplate wxMessage = new NewUserJoinWXTemplate(); wxMessage.data = wxMessage.GenerateData("oh6cV1QhPLj6XPesheYUQ4XtuGTs", "jacky", DateTime.Now); WXApi.SendTemplateMessage <NewUserJoinWXTemplate>(wxMessage); //UserSignTemplate wxMessage = new UserSignTemplate(); //wxMessage.data = wxMessage.GenerateData("oh6cV1QhPLj6XPesheYUQ4XtuGTs", "Jacky", DateTime.Now.ToString("yyyy-MM-dd"), "Test", 0, 12, 0, 33); //WXApi.SendTemplateMessage<UserSignTemplate>(wxMessage); //UserAccountChangeTemplate wxMessage = new UserAccountChangeTemplate(); //wxMessage.data = wxMessage.GenerateData("oh6cV1QhPLj6XPesheYUQ4XtuGTs", // "jacky", // AmountTransType.Invited_TrialReward, // DateTime.Now, // 10, // GlobalSrv.GetRewardAmount(AmountTransType.Invited_TrialReward) // ); //WXApi.SendTemplateMessage<UserAccountChangeTemplate>(wxMessage); } catch (Exception ex) { Msg = ex.Message; } }
public IActionResult OnPostCourseLeave(List <EUserCourseLog> list) { ResultNormal result = new ResultNormal(); var us = base.GetUserSession(false); try { if (us != null) { _UserSrv.UpdateCourseLogToLeave(list, us.OpenId); //wx通知 var time = StaticDataSrv.CourseTime; UserLeaveTemplate wxMessage = new UserLeaveTemplate(); foreach (var c in list) { var ui = _UserSrv.GetUserInfo(us.OpenId); var cs = _CourseSrv.GetCourseSchedule(c.LessonCode); var desc = $"{cs.CourseName} | [{time[cs.Lesson].TimeRange}]"; var tec = _TecSrv.GetOpenIdByLessonCode(c.LessonCode, c.CourseDateTime); if (!string.IsNullOrEmpty(ui.SalesOpenId)) { wxMessage.data = wxMessage.GenerateData(ui.SalesOpenId, ui.ChildName, DateTime.Parse(c.CourseDateTime), desc); WXApi.SendTemplateMessage <UserLeaveTemplate>(wxMessage); } if (tec != null) { wxMessage.data = wxMessage.GenerateData(tec.UserOpenId, ui.ChildName, DateTime.Parse(c.CourseDateTime), desc, true); WXApi.SendTemplateMessage <UserLeaveTemplate>(wxMessage); } } } else { result.IntMsg = -1; result.ErrorMsg = "请重新登陆!"; } } catch (EduException eex) { result.ErrorMsg = eex.Message; } catch (Exception ex) { result.ErrorMsg = "请假失败,请联系工作人员"; if (us != null) { NLogHelper.ErrorTxt($"用户请假OpenId:{us.OpenId}"); } NLogHelper.ErrorTxt($"MyLeaveModel[OnPostCourseLeave]:{ex.Message}"); } return(new JsonResult(result)); }
public IActionResult OnPostSignForUser(string openId, string lessonCode, MemberType memberType, string date) { ResultNormal result = new ResultNormal(); try { var csType = _UserSrv.GetCurrentCourseScheduleType(openId, memberType); var us = GetUserSession(false); if (us != null) { DateTime signDate = DateTime.Parse(date); var log = _BusinessSrv.UpdateCourseLogToSigned(openId, memberType, csType, lessonCode, signDate, us.OpenId); //wx通知 --Begin var course = _CourseSrv.GetCourseSchedule(log.LessonCode); if (course == null) { result.ErrorMsg = "已签到,但未发送消息通知,请告知管理员!"; return(new JsonResult(result)); } var userAccount = _UserSrv.GetUserAccount(openId); if (userAccount.ReduceTime == 0) { userAccount.ReduceTime = 2; } var time = StaticDataSrv.CourseTime; UserSignTemplate wxMessage = new UserSignTemplate(); wxMessage.data = wxMessage.GenerateData(openId, log.SignName, $"{log.CourseDateTime} | {time[course.Lesson].TimeRange}", course.CourseName, userAccount.ReduceTime, userAccount.RemainCourseTime, userAccount.RemainSummerTime, userAccount.RemainWinterTime); WXApi.SendTemplateMessage <UserSignTemplate>(wxMessage); //wx通知 --End } else { result.IntMsg = -1; result.ErrorMsg = "请重新登陆"; } result.SuccessMsg = BaseEnumSrv.GetUserCourseLogStatusNameForTec(UserCourseLogStatus.SignIn); } catch (Exception ex) { result.ErrorMsg = ex.Message; } return(new JsonResult(result)); }
/// <summary> /// 发送模板消息(余额提醒) /// </summary> /// <param name="openId">openId</param> /// <param name="mobile">手机号</param> /// <param name="blanceMsg">消息</param> /// <param name="url">链接</param> /// <returns></returns> public static bool SendTemplateMessageBlance(string openId, string mobile, string blanceMsg, string url = "") { ///data 示例 ///{{first.DATA}} ///账号:{{keyword1.DATA}} ///当前余额:{{keyword2.DATA}} ///{{remark.DATA}} TemplateMessage msg = new TemplateMessage(); msg.template_id = ""; msg.touser = openId; msg.url = url; msg.data = new { first = new { value = string.Format("尊敬的{0},您当前账户余额不足,希望您尽快充值!", mobile) }, keyword1 = new { value = mobile }, keyword2 = new { value = blanceMsg }, remark = new { value = "感谢你的使用。" } }; return(WXApi.SendTemplateMessage(AccessToken, msg)); }
public IActionResult OnPostUpdateTrial(RTrialLog updateTrial) { ResultNormal result = new ResultNormal(); var times = StaticDataSrv.TrialTime; bool needWX = false; try { if (updateTrial.Id <= 0) { result.ErrorMsg = "没有找到试听课,无法保存!"; } else { ETrialLog origTrial = _CourseSrv.GetTrialLog(updateTrial.Id); origTrial.Lesson = updateTrial.Lesson; origTrial.TrialDateTime = updateTrial.TrialDateTime; origTrial.CourseCode = updateTrial.CourseCode; var cls = _CourseSrv.GetCourseInfoClass(origTrial.CourseCode); origTrial.TecCode = cls.TecCode; origTrial.TecName = cls.TecName; origTrial.CourseType = (int)cls.CourseType; origTrial.CourseName = cls.CourseName; var ui = _UserSrv.GetUserInfo(updateTrial.OpenId); ui.Phone = updateTrial.UserPhone; ui.SalesOpenId = updateTrial.SalesOpenId; if (origTrial.TrialLogStatus == (int)TrialLogStatus.UserApply) { needWX = true; origTrial.TrialLogStatus = (int)TrialLogStatus.TecConfirm; //返佣 } _CourseSrv.SaveChanges(); //微信发送 if (needWX) { TecTrialRemindTemplate wxMessage = new TecTrialRemindTemplate(); RTrialLog rTrialLog = new RTrialLog(); rTrialLog.InitFromETrialLog(origTrial); rTrialLog.SalesOpenId = updateTrial.SalesOpenId; rTrialLog.SalesName = updateTrial.SalesName; rTrialLog.TrialTimeStr = times[rTrialLog.Lesson].TimeRange; rTrialLog.UserRealName = ui.ChildName; var teacher = _TecSrv.Get(origTrial.TecCode); if (teacher != null) { // teacher.UserOpenId = "oh6cV1QhPLj6XPesheYUQ4XtuGTs"; wxMessage.data = wxMessage.GenerateData(teacher.UserOpenId, rTrialLog); result = WXApi.SendTemplateMessage <TecTrialRemindTemplate>(wxMessage); result.IntMsg = 10; } } } } catch (Exception ex) { result.ErrorMsg = ex.Message; } return(new JsonResult(result)); }