/// <summary>
        /// 获取余额退费订单的打印收据详情
        /// <para>作    者:郭伟佳</para>
        /// <para>创建时间:2018-11-28</para>
        /// </summary>
        /// <param name="orderId">余额退费订单id</param>
        /// <returns>余额退费打印信息</returns>
        public BalanceRefundReceiptDetailResponse GetPrintReceiptDetail(long orderId)
        {
            var result = new BalanceRefundReceiptDetailResponse();
            //获取余额退费订单信息
            var refundInfo = _viewBalanceRepository.Value.GetBalanceRefundByOrderId(orderId);

            if (refundInfo != null)
            {
                //获取余额退费的打印序号
                var printNo = PrintCounterService.Print(base._schoolId, PrintBillType.BalanceRefund);
                //获取其他费用(扣款合计)
                var refundAmountTypeList = CostService.GetCosts(Dto.TypeCode.BALANCE_FEE);
                var costList             = _tblOdrRefundOrderCost.Value.GetrefundOrderIdByCost(orderId).Select(x => new CostDetail
                {
                    CostName = refundAmountTypeList.FirstOrDefault(k => k.CostId == x.CostId)?.CostName,
                    Amount   = x.Amount
                }).ToList();
                result = new BalanceRefundReceiptDetailResponse
                {
                    OrderNo           = refundInfo.OrderNo,
                    StudentId         = refundInfo.StudentId,
                    PrintNo           = printNo,
                    CreatorName       = refundInfo.CreatorName,
                    Amount            = refundInfo.Amount,
                    TotalDeductAmount = refundInfo.TotalDeductAmount,
                    RealRefundAmount  = refundInfo.RealRefundAmount,
                    RefundDate        = refundInfo.RefundDate,
                    Remark            = refundInfo.Remark,
                    CostList          = costList,
                    SchoolName        = OrgService.GetSchoolBySchoolId(refundInfo.SchoolId)?.SchoolName
                };
            }

            return(result);
        }
        /// <summary>
        /// 微信通知
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2019-03-15</para>
        /// </summary>
        private void PushWeChatNotice(string className, string classTime, string classRoom, DateTime attendTime)
        {
            string title = string.Format(ClientConfigManager.HssConfig.WeChatTemplateTitle.ArrivalNotice,
                                         this.Student.StudentName);

            var schoolName = OrgService.GetSchoolBySchoolId(_schoolId)?.SchoolName ?? string.Empty;

            WxNotifyProducerService wxNotifyProducerService = WxNotifyProducerService.Instance;
            WxNotifyInDto           wxNotify = new WxNotifyInDto
            {
                Data = new List <WxNotifyItemInDto> {
                    new WxNotifyItemInDto {
                        DataKey = "first", Value = title
                    },
                    new WxNotifyItemInDto {
                        DataKey = "keyword1", Value = $"{attendTime:yyyy.MM.dd HH:mm}"
                    },
        /// <summary>
        /// 微信通知
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2019-03-15</para>
        /// </summary>
        private void PushWeChatNotice()
        {
            var stuInfo  = StudentService.GetStudentInfo(_request.StudentId);
            var inLesson = this._inLessonList.FirstOrDefault();

            string pushClassTime = this._outLessonList
                                   .Select(x => DateTime.Parse(x.ClassDate.ToString("yyyy-MM-dd") + " " + x.ClassBeginTime))
                                   .Min().ToString("yyyy.MM.dd HH:mm");

            //first={0}家长,您好!因{1}于{2}请假,为了保证孩子的学习效果,我们特别为孩子安排了补课,具体时间如下:
            string title =
                string.Format(
                    ClientConfigManager.HssConfig.WeChatTemplateTitle.MakeupNotice,
                    stuInfo.StudentName, stuInfo.StudentName, pushClassTime);

            //keyword1=上课时间
            var    classTimeList = this._inLessonList.Select(x => x.ClassBeginTime + "-" + x.ClassEndTime);
            string classTime     = $"{inLesson.ClassDate.ToString("yyyy.MM.dd")} {string.Join("、", classTimeList)}";

            //keyword2=班级名称
            string className = CourseService.GetByCourseId(inLesson.CourseId)?.ClassCnName ?? string.Empty;

            //keyword3=教室
            string classRoom = new ClassRoomService(inLesson.ClassRoomId)?.ClassRoomInfo?.RoomNo ?? string.Empty;

            //keyword4=老师名称
            string teacherName = TeachService.GetTeacher(inLesson.TeacherId)?.TeacherName ?? string.Empty;

            //remark=校区名称
            string schoolName = OrgService.GetSchoolBySchoolId(_schoolId)?.SchoolName ?? string.Empty;

            WxNotifyProducerService wxNotifyProducerService = WxNotifyProducerService.Instance;
            WxNotifyInDto           wxNotify = new WxNotifyInDto
            {
                Data = new List <WxNotifyItemInDto> {
                    new WxNotifyItemInDto {
                        DataKey = "first", Value = title
                    },
                    new WxNotifyItemInDto {
                        DataKey = "keyword1", Value = classTime
                    },
                    new WxNotifyItemInDto {
                        DataKey = "keyword2", Value = className
                    },
                    new WxNotifyItemInDto {
                        DataKey = "keyword3", Value = classRoom
                    },
                    new WxNotifyItemInDto {
                        DataKey = "keyword4", Value = teacherName
                    },
                    new WxNotifyItemInDto {
                        DataKey = "remark", Value = schoolName
                    }
                },
                ToUser     = StudentService.GetWxOpenId(stuInfo),
                TemplateId = WeChatTemplateConstants.MakeupNotice,
                Url        = string.Empty
            };

            wxNotifyProducerService.Publish(wxNotify);
        }