//用户试听课微信提醒
        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));
        }
示例#3
0
        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;
            }
        }
示例#4
0
        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));
        }
示例#5
0
        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));
        }
示例#6
0
        /// <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));
        }
示例#7
0
        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));
        }