├── .dockerignore
├── .env.example
├── .github
└── SECURITY.md
├── .gitignore
├── ADDITIONAL_TERMS.md
├── CHANGELOG.md
├── Dockerfile
├── LICENSE
├── README.md
├── compose.yml
├── docker
├── nginx
│ └── default.conf
└── php
│ ├── php-fpm.conf
│ ├── php-fpm.d
│ ├── docker.conf
│ ├── www.conf
│ └── zz-docker.conf
│ └── php.ini
├── xyz.meedu.admin
├── .env.example
├── .gitignore
├── README.md
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
│ ├── favicon.png
│ ├── js
│ │ ├── aliyun-vod
│ │ │ ├── aliyun-oss-sdk-5.2.0.min.js
│ │ │ └── aliyun-upload-sdk-1.4.0.min.js
│ │ ├── highlight
│ │ │ ├── a11y-dark.min.css
│ │ │ └── highlight-9.18.5.min.js
│ │ ├── katex
│ │ │ ├── contrib
│ │ │ │ └── auto-render.min.js
│ │ │ ├── fonts
│ │ │ │ ├── KaTeX_AMS-Regular.ttf
│ │ │ │ ├── KaTeX_AMS-Regular.woff
│ │ │ │ ├── KaTeX_AMS-Regular.woff2
│ │ │ │ ├── KaTeX_Caligraphic-Bold.ttf
│ │ │ │ ├── KaTeX_Caligraphic-Bold.woff
│ │ │ │ ├── KaTeX_Caligraphic-Bold.woff2
│ │ │ │ ├── KaTeX_Caligraphic-Regular.ttf
│ │ │ │ ├── KaTeX_Caligraphic-Regular.woff
│ │ │ │ ├── KaTeX_Caligraphic-Regular.woff2
│ │ │ │ ├── KaTeX_Fraktur-Bold.ttf
│ │ │ │ ├── KaTeX_Fraktur-Bold.woff
│ │ │ │ ├── KaTeX_Fraktur-Bold.woff2
│ │ │ │ ├── KaTeX_Fraktur-Regular.ttf
│ │ │ │ ├── KaTeX_Fraktur-Regular.woff
│ │ │ │ ├── KaTeX_Fraktur-Regular.woff2
│ │ │ │ ├── KaTeX_Main-Bold.ttf
│ │ │ │ ├── KaTeX_Main-Bold.woff
│ │ │ │ ├── KaTeX_Main-Bold.woff2
│ │ │ │ ├── KaTeX_Main-BoldItalic.ttf
│ │ │ │ ├── KaTeX_Main-BoldItalic.woff
│ │ │ │ ├── KaTeX_Main-BoldItalic.woff2
│ │ │ │ ├── KaTeX_Main-Italic.ttf
│ │ │ │ ├── KaTeX_Main-Italic.woff
│ │ │ │ ├── KaTeX_Main-Italic.woff2
│ │ │ │ ├── KaTeX_Main-Regular.ttf
│ │ │ │ ├── KaTeX_Main-Regular.woff
│ │ │ │ ├── KaTeX_Main-Regular.woff2
│ │ │ │ ├── KaTeX_Math-BoldItalic.ttf
│ │ │ │ ├── KaTeX_Math-BoldItalic.woff
│ │ │ │ ├── KaTeX_Math-BoldItalic.woff2
│ │ │ │ ├── KaTeX_Math-Italic.ttf
│ │ │ │ ├── KaTeX_Math-Italic.woff
│ │ │ │ ├── KaTeX_Math-Italic.woff2
│ │ │ │ ├── KaTeX_SansSerif-Bold.ttf
│ │ │ │ ├── KaTeX_SansSerif-Bold.woff
│ │ │ │ ├── KaTeX_SansSerif-Bold.woff2
│ │ │ │ ├── KaTeX_SansSerif-Italic.ttf
│ │ │ │ ├── KaTeX_SansSerif-Italic.woff
│ │ │ │ ├── KaTeX_SansSerif-Italic.woff2
│ │ │ │ ├── KaTeX_SansSerif-Regular.ttf
│ │ │ │ ├── KaTeX_SansSerif-Regular.woff
│ │ │ │ ├── KaTeX_SansSerif-Regular.woff2
│ │ │ │ ├── KaTeX_Script-Regular.ttf
│ │ │ │ ├── KaTeX_Script-Regular.woff
│ │ │ │ ├── KaTeX_Script-Regular.woff2
│ │ │ │ ├── KaTeX_Size1-Regular.ttf
│ │ │ │ ├── KaTeX_Size1-Regular.woff
│ │ │ │ ├── KaTeX_Size1-Regular.woff2
│ │ │ │ ├── KaTeX_Size2-Regular.ttf
│ │ │ │ ├── KaTeX_Size2-Regular.woff
│ │ │ │ ├── KaTeX_Size2-Regular.woff2
│ │ │ │ ├── KaTeX_Size3-Regular.ttf
│ │ │ │ ├── KaTeX_Size3-Regular.woff
│ │ │ │ ├── KaTeX_Size3-Regular.woff2
│ │ │ │ ├── KaTeX_Size4-Regular.ttf
│ │ │ │ ├── KaTeX_Size4-Regular.woff
│ │ │ │ ├── KaTeX_Size4-Regular.woff2
│ │ │ │ ├── KaTeX_Typewriter-Regular.ttf
│ │ │ │ ├── KaTeX_Typewriter-Regular.woff
│ │ │ │ └── KaTeX_Typewriter-Regular.woff2
│ │ │ ├── katex.min.css
│ │ │ └── katex.min.js
│ │ └── player
│ │ │ ├── DPlayer.min.js
│ │ │ └── hls-1.4.10.min.js
│ └── template
│ │ ├── 学员批量导入模板.xlsx
│ │ ├── 试题批量导入模板.xlsx
│ │ └── 课时批量导入模板.xlsx
├── src
│ ├── App.scss
│ ├── App.tsx
│ ├── AutoTop.ts
│ ├── api
│ │ ├── admin-role.ts
│ │ ├── administrator.ts
│ │ ├── comment.ts
│ │ ├── course.ts
│ │ ├── home.ts
│ │ ├── index.ts
│ │ ├── internal
│ │ │ ├── httpClient.ts
│ │ │ └── prehttpClient.ts
│ │ ├── login.ts
│ │ ├── media.ts
│ │ ├── member.ts
│ │ ├── order.ts
│ │ ├── pre.ts
│ │ ├── promocode.ts
│ │ ├── role.ts
│ │ ├── stats.ts
│ │ ├── system.ts
│ │ ├── user.ts
│ │ ├── video-category.ts
│ │ ├── viewBlock.ts
│ │ └── wechat.ts
│ ├── assets
│ │ ├── common
│ │ │ └── iconfont
│ │ │ │ ├── iconfont.css
│ │ │ │ ├── iconfont.ttf
│ │ │ │ ├── iconfont.woff
│ │ │ │ └── iconfont.woff2
│ │ ├── home
│ │ │ ├── favicon.ico
│ │ │ ├── logo.png
│ │ │ └── selected.png
│ │ ├── images
│ │ │ ├── config
│ │ │ │ ├── ali.png
│ │ │ │ ├── camera.png
│ │ │ │ ├── clicklogin.png
│ │ │ │ ├── coursetime.png
│ │ │ │ ├── credict.png
│ │ │ │ ├── h5.png
│ │ │ │ ├── icon-option.png
│ │ │ │ ├── icon-sign in.png
│ │ │ │ ├── import.png
│ │ │ │ ├── live.png
│ │ │ │ ├── login.png
│ │ │ │ ├── message.png
│ │ │ │ ├── payment.png
│ │ │ │ ├── pic.png
│ │ │ │ ├── player.png
│ │ │ │ ├── role.png
│ │ │ │ ├── search.png
│ │ │ │ ├── sendvip.png
│ │ │ │ ├── system.png
│ │ │ │ ├── tecent.png
│ │ │ │ ├── topic.png
│ │ │ │ ├── video.png
│ │ │ │ ├── webview.png
│ │ │ │ ├── wechat.png
│ │ │ │ └── weixin.png
│ │ │ ├── decoration
│ │ │ │ └── h5
│ │ │ │ │ ├── blank.png
│ │ │ │ │ ├── book-back.png
│ │ │ │ │ ├── code.png
│ │ │ │ │ ├── course-back.png
│ │ │ │ │ ├── default-grid-nav.png
│ │ │ │ │ ├── default-slider.png
│ │ │ │ │ ├── empty-image.png
│ │ │ │ │ ├── grid-nav.png
│ │ │ │ │ ├── h5-book-v1.png
│ │ │ │ │ ├── h5-edit.png
│ │ │ │ │ ├── h5-gognzhoanghao-v1.png
│ │ │ │ │ ├── h5-vod-v1.png
│ │ │ │ │ ├── icon-announce.png
│ │ │ │ │ ├── icon-banner.png
│ │ │ │ │ ├── icon-link.png
│ │ │ │ │ ├── icon-nav.png
│ │ │ │ │ ├── image-group-1-2-active.png
│ │ │ │ │ ├── image-group-1-2.png
│ │ │ │ │ ├── image-group-1-active.png
│ │ │ │ │ ├── image-group-1.png
│ │ │ │ │ ├── image-group-2-active.png
│ │ │ │ │ ├── image-group-2.png
│ │ │ │ │ ├── image-group-3-active.png
│ │ │ │ │ ├── image-group-3.png
│ │ │ │ │ ├── image-group-4-active.png
│ │ │ │ │ ├── image-group-4.png
│ │ │ │ │ ├── image-group.png
│ │ │ │ │ ├── mp-wechat-icon.png
│ │ │ │ │ ├── mp-wechat.png
│ │ │ │ │ ├── none-img.png
│ │ │ │ │ ├── pc-edit.png
│ │ │ │ │ ├── pc-edit2.png
│ │ │ │ │ ├── search-bar.png
│ │ │ │ │ ├── slider.png
│ │ │ │ │ └── status-bar.png
│ │ │ ├── stats
│ │ │ │ └── icon.png
│ │ │ └── upload-video
│ │ │ │ └── empty.png
│ │ ├── img
│ │ │ ├── ali-pay.png
│ │ │ ├── card.png
│ │ │ ├── close.png
│ │ │ ├── default-vip.png
│ │ │ ├── focus-device.png
│ │ │ ├── icon-back-n.png
│ │ │ ├── icon-back.png
│ │ │ ├── icon-close-h.png
│ │ │ ├── icon-close.png
│ │ │ ├── icon-filter-h.png
│ │ │ ├── icon-filter.png
│ │ │ ├── icon-handin.png
│ │ │ └── wepay.png
│ │ └── login
│ │ │ ├── loginleft_banner.png
│ │ │ └── yuyan@2x.png
│ ├── components
│ │ ├── back-bar
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── close-icon
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── day-week-month
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── duration-text
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── footer
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── h5-link
│ │ │ ├── components
│ │ │ │ └── courses
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── vod-comp.tsx
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── header
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── helper-text
│ │ │ └── index.tsx
│ │ ├── index.ts
│ │ ├── input-duration
│ │ │ └── index.tsx
│ │ ├── keep-alive
│ │ │ └── index.tsx
│ │ ├── left-menu
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── option-bar
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── option-single-bar
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── pc-link
│ │ │ └── index.tsx
│ │ ├── permission-button
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── quill-editor
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── select-image
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── select-resources
│ │ │ ├── components
│ │ │ │ ├── multiVip.tsx
│ │ │ │ ├── multiVod.tsx
│ │ │ │ ├── video.tsx
│ │ │ │ ├── vip.tsx
│ │ │ │ └── vod.tsx
│ │ │ ├── index.tsx
│ │ │ └── multiIndex.tsx
│ │ ├── student-device
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── tags-tooltip
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── thumb-bar
│ │ │ ├── index.moduel.scss
│ │ │ └── index.tsx
│ │ ├── tree-category
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── upload-image-button
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ └── upload-image-sub
│ │ │ │ └── index.tsx
│ │ ├── upload-video-item
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── upload-video
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── user-add
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── user-import
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── user-single-add
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ └── vhtml-tooltip
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ ├── config
│ │ └── permissions.ts
│ ├── index.scss
│ ├── js
│ │ ├── config.ts
│ │ └── htmlToPdf.ts
│ ├── main.tsx
│ ├── meedu.d.ts
│ ├── pages
│ │ ├── administrator
│ │ │ └── change-password
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ ├── comments
│ │ │ └── index.tsx
│ │ ├── course
│ │ │ ├── attach
│ │ │ │ ├── create.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── category
│ │ │ │ └── index.tsx
│ │ │ ├── chapter
│ │ │ │ └── index.tsx
│ │ │ ├── components
│ │ │ │ ├── category-create.tsx
│ │ │ │ ├── category-update.tsx
│ │ │ │ ├── chapter-create.tsx
│ │ │ │ ├── chapter-update.tsx
│ │ │ │ ├── sub-users.tsx
│ │ │ │ ├── watch-records-detail.tsx
│ │ │ │ └── watch-records.tsx
│ │ │ ├── create.tsx
│ │ │ ├── index.tsx
│ │ │ ├── update.tsx
│ │ │ ├── users.tsx
│ │ │ └── video
│ │ │ │ ├── create.tsx
│ │ │ │ ├── import.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── subscribe.tsx
│ │ │ │ ├── update.tsx
│ │ │ │ └── watch-records.tsx
│ │ ├── dashboard
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── decoration
│ │ │ ├── components
│ │ │ │ ├── h5
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── blank.module.scss
│ │ │ │ │ │ ├── blank.tsx
│ │ │ │ │ │ ├── code.module.scss
│ │ │ │ │ │ ├── code.tsx
│ │ │ │ │ │ ├── grid-nav.module.scss
│ │ │ │ │ │ ├── grid-nav.tsx
│ │ │ │ │ │ ├── gzh-v1.module.scss
│ │ │ │ │ │ ├── gzh-v1.tsx
│ │ │ │ │ │ ├── image-group.module.scss
│ │ │ │ │ │ ├── image-group.tsx
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── slider.module.scss
│ │ │ │ │ │ ├── slider.tsx
│ │ │ │ │ │ ├── vod-v1.module.scss
│ │ │ │ │ │ └── vod-v1.tsx
│ │ │ │ │ ├── render-blank
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── render-grid-nav
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── render-gzh-v1
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── render-image-group
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── render-mp-wechat
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── render-sliders
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── render-vod
│ │ │ │ │ │ ├── index.module.scss
│ │ │ │ │ │ └── index.tsx
│ │ │ │ └── pc
│ │ │ │ │ ├── render-code
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── render-links
│ │ │ │ │ ├── create.tsx
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── list.tsx
│ │ │ │ │ └── update.tsx
│ │ │ │ │ ├── render-navs
│ │ │ │ │ ├── create.tsx
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── list.tsx
│ │ │ │ │ └── update.tsx
│ │ │ │ │ ├── render-notice
│ │ │ │ │ ├── create.tsx
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── list.tsx
│ │ │ │ │ └── update.tsx
│ │ │ │ │ ├── render-sliders
│ │ │ │ │ ├── create.tsx
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── list.tsx
│ │ │ │ │ └── update.tsx
│ │ │ │ │ └── render-vod
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ ├── h5.module.scss
│ │ │ ├── h5.tsx
│ │ │ ├── pc.module.scss
│ │ │ └── pc.tsx
│ │ ├── edit-config
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── error
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ └── no-sevice.tsx
│ │ ├── index.ts
│ │ ├── init
│ │ │ └── index.tsx
│ │ ├── layouts
│ │ │ ├── with-header-without-footer
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ └── without-header-without-footer
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ ├── loading
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── login
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── member
│ │ │ ├── components
│ │ │ │ ├── config-update.tsx
│ │ │ │ ├── create.tsx
│ │ │ │ ├── credit-dialog.tsx
│ │ │ │ ├── message-send.tsx
│ │ │ │ ├── my-profile.module.scss
│ │ │ │ ├── my-profile.tsx
│ │ │ │ ├── remark-dailog.tsx
│ │ │ │ ├── tags-dialog.tsx
│ │ │ │ ├── update.tsx
│ │ │ │ └── video-table-dialog.tsx
│ │ │ ├── detail.module.scss
│ │ │ ├── detail.tsx
│ │ │ ├── detail
│ │ │ │ ├── credit1.tsx
│ │ │ │ ├── orders.tsx
│ │ │ │ ├── video-watch-records.tsx
│ │ │ │ └── vod-watch-records.tsx
│ │ │ ├── import.tsx
│ │ │ ├── index.tsx
│ │ │ ├── profile.module.scss
│ │ │ ├── profile.tsx
│ │ │ └── tags
│ │ │ │ ├── create.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── update.tsx
│ │ ├── order
│ │ │ ├── components
│ │ │ │ └── refund-dailog
│ │ │ │ │ └── index.tsx
│ │ │ ├── detail.tsx
│ │ │ ├── index.tsx
│ │ │ └── refund.tsx
│ │ ├── promocode
│ │ │ ├── components
│ │ │ │ ├── create-multi.tsx
│ │ │ │ └── create.tsx
│ │ │ ├── create-multi.tsx
│ │ │ ├── create.tsx
│ │ │ ├── import.module.scss
│ │ │ ├── import.tsx
│ │ │ └── index.tsx
│ │ ├── resource
│ │ │ ├── images
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ └── videos
│ │ │ │ ├── compenents
│ │ │ │ ├── create.module.less
│ │ │ │ ├── create.tsx
│ │ │ │ ├── update.module.less
│ │ │ │ ├── update.tsx
│ │ │ │ └── video-update.tsx
│ │ │ │ └── index.tsx
│ │ ├── role
│ │ │ ├── components
│ │ │ │ ├── create.tsx
│ │ │ │ └── update.tsx
│ │ │ ├── create.tsx
│ │ │ ├── index.tsx
│ │ │ └── update.tsx
│ │ ├── stats
│ │ │ ├── content
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ ├── member
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ └── transaction
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ └── system
│ │ │ ├── administrator
│ │ │ ├── create.tsx
│ │ │ ├── index.tsx
│ │ │ └── update.tsx
│ │ │ ├── adminroles
│ │ │ ├── create.tsx
│ │ │ ├── index.tsx
│ │ │ └── update.tsx
│ │ │ ├── application
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ │ ├── config
│ │ │ ├── config.tsx
│ │ │ ├── creditSignConfig.tsx
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ ├── messageConfig.tsx
│ │ │ ├── mp_wechatConfig.tsx
│ │ │ ├── paymentConfig.tsx
│ │ │ ├── playerConfig.tsx
│ │ │ ├── saveFilesConfig.tsx
│ │ │ └── videoSaveConfig.tsx
│ │ │ └── systemLog
│ │ │ ├── components
│ │ │ ├── admin-log
│ │ │ │ └── index.tsx
│ │ │ ├── runtime-log
│ │ │ │ └── index.tsx
│ │ │ ├── upload-images-log
│ │ │ │ └── index.tsx
│ │ │ └── user-login-log
│ │ │ │ └── index.tsx
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ ├── routes
│ │ └── index.tsx
│ ├── store
│ │ ├── enabledAddons
│ │ │ └── enabledAddonsConfigSlice.ts
│ │ ├── index.ts
│ │ ├── system
│ │ │ └── systemConfigSlice.ts
│ │ └── user
│ │ │ └── loginUserSlice.ts
│ ├── types
│ │ ├── index.d.ts
│ │ └── permission.ts
│ ├── utils
│ │ ├── index.ts
│ │ └── permissionUtil.ts
│ └── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
├── xyz.meedu.api
├── .env.example
├── .env.install
├── .gitattributes
├── .gitignore
├── .php-cs-fixer.php
├── README.md
├── addons
│ └── .gitignore
├── apidoc.json
├── app
│ ├── Bus
│ │ ├── AdminPermissionBus.php
│ │ ├── AliVodBus.php
│ │ ├── AuthBus.php
│ │ ├── CourseAttachDownloadBus.php
│ │ ├── MediaVideoCategoryBindBus.php
│ │ ├── MemberBus.php
│ │ ├── RefundBus.php
│ │ ├── TencentVodBus.php
│ │ ├── UniPayBus.php
│ │ ├── UploadBus.php
│ │ ├── VideoBus.php
│ │ └── WechatScanBusV2.php
│ ├── Businesses
│ │ └── BusinessState.php
│ ├── Console
│ │ ├── Commands
│ │ │ ├── AddonsProviderMapGenrator.php
│ │ │ ├── ApplicationInstallCommand.php
│ │ │ ├── FullSearchRebuildCommand.php
│ │ │ ├── InstallLockCommand.php
│ │ │ ├── MeEduUpgradeCommand.php
│ │ │ ├── OrderTimeoutHandlerCommand.php
│ │ │ ├── PublishedCoursesIndexBuildSearchCommand.php
│ │ │ ├── RefundQueryCommand.php
│ │ │ ├── UserDeleteJobRunCommand.php
│ │ │ └── UserRoleExpireHandlerCommand.php
│ │ └── Kernel.php
│ ├── Constant
│ │ ├── ApiV2Constant.php
│ │ ├── BackendApiConstant.php
│ │ ├── BusConstant.php
│ │ ├── CacheConstant.php
│ │ ├── ConfigConstant.php
│ │ ├── FrontendConstant.php
│ │ ├── HookConstant.php
│ │ ├── SystemConstant.php
│ │ └── TableConstant.php
│ ├── Events
│ │ ├── AliyunVodCallbackAddLiveRecordVideoCompleteEvent.php
│ │ ├── AliyunVodCallbackDeleteMediaCompleteEvent.php
│ │ ├── AliyunVodCallbackFileUploadCompleteEvent.php
│ │ ├── AliyunVodCallbackMediaBaseChangeCompleteEvent.php
│ │ ├── AliyunVodCallbackTranscodeCompleteEvent.php
│ │ ├── AliyunVodCallbackVideoAnalysisCompleteEvent.php
│ │ ├── AppConfigSavedEvent.php
│ │ ├── CourseAttachDownloadEvent.php
│ │ ├── CourseCommentEvent.php
│ │ ├── FullSearchDataRebuildEvent.php
│ │ ├── LinkUpdateEvent.php
│ │ ├── NavUpdateEvent.php
│ │ ├── OrderCancelEvent.php
│ │ ├── OrderRefundCreated.php
│ │ ├── OrderRefundProcessed.php
│ │ ├── PaymentSuccessEvent.php
│ │ ├── PublishedCoursesSearchIndexBuildEvent.php
│ │ ├── SliderUpdateEvent.php
│ │ ├── TencentVodCallbackFileDeletedEvent.php
│ │ ├── TencentVodCallbackNewFileUploadEvent.php
│ │ ├── TencentVodCallbackProcedureStateChangedEvent.php
│ │ ├── TencentVodCallbackTranscodeCompleteEvent.php
│ │ ├── UserCourseWatchedEvent.php
│ │ ├── UserDeleteCancelEvent.php
│ │ ├── UserDeleteSubmitEvent.php
│ │ ├── UserDeletedEvent.php
│ │ ├── UserLoginEvent.php
│ │ ├── UserLogoutEvent.php
│ │ ├── UserNotificationReadEvent.php
│ │ ├── UserRegisterEvent.php
│ │ ├── UserVerifyFaceSuccessEvent.php
│ │ ├── UserVideoWatchedEvent.php
│ │ ├── VideoCommentEvent.php
│ │ ├── VodCourseCreatedEvent.php
│ │ ├── VodCourseDestroyedEvent.php
│ │ ├── VodCourseUpdatedEvent.php
│ │ ├── VodVideoCreatedEvent.php
│ │ ├── VodVideoDestroyedEvent.php
│ │ └── VodVideoUpdatedEvent.php
│ ├── Exceptions
│ │ ├── Backend
│ │ │ └── ValidateException.php
│ │ ├── Handler.php
│ │ ├── ServiceException.php
│ │ └── SystemException.php
│ ├── Hooks
│ │ ├── CommentStoreCheck
│ │ │ ├── VodCourseCommentHook.php
│ │ │ └── VodCourseVideoCommentHook.php
│ │ ├── OrderStore
│ │ │ ├── OrderStoreCourseHook.php
│ │ │ └── OrderStoreRoleHook.php
│ │ └── ViewBlock
│ │ │ └── Data
│ │ │ └── VodV1DataHook.php
│ ├── Http
│ │ ├── Controllers
│ │ │ ├── Api
│ │ │ │ ├── Media
│ │ │ │ │ ├── AliVodCallbackController.php
│ │ │ │ │ └── TencentVodCallbackController.php
│ │ │ │ ├── V2
│ │ │ │ │ ├── AnnouncementController.php
│ │ │ │ │ ├── BaseController.php
│ │ │ │ │ ├── CaptchaController.php
│ │ │ │ │ ├── CourseCategoryController.php
│ │ │ │ │ ├── CourseController.php
│ │ │ │ │ ├── LinkController.php
│ │ │ │ │ ├── LoginController.php
│ │ │ │ │ ├── MemberController.php
│ │ │ │ │ ├── NavController.php
│ │ │ │ │ ├── OrderController.php
│ │ │ │ │ ├── OtherController.php
│ │ │ │ │ ├── PasswordController.php
│ │ │ │ │ ├── PromoCodeController.php
│ │ │ │ │ ├── RegisterController.php
│ │ │ │ │ ├── RoleController.php
│ │ │ │ │ ├── SearchController.php
│ │ │ │ │ ├── SliderController.php
│ │ │ │ │ ├── Traits
│ │ │ │ │ │ └── ResponseTrait.php
│ │ │ │ │ ├── UploadController.php
│ │ │ │ │ ├── VideoController.php
│ │ │ │ │ └── ViewBlockController.php
│ │ │ │ ├── V3
│ │ │ │ │ ├── CommentController.php
│ │ │ │ │ ├── CourseController.php
│ │ │ │ │ ├── LoginController.php
│ │ │ │ │ ├── MemberController.php
│ │ │ │ │ ├── OrderController.php
│ │ │ │ │ ├── OtherController.php
│ │ │ │ │ ├── SearchController.php
│ │ │ │ │ ├── SystemController.php
│ │ │ │ │ └── WechatScanLoginController.php
│ │ │ │ └── Wechat
│ │ │ │ │ ├── RefundController.php
│ │ │ │ │ └── ServerController.php
│ │ │ ├── Backend
│ │ │ │ └── Api
│ │ │ │ │ ├── V1
│ │ │ │ │ ├── AdFromController.php
│ │ │ │ │ ├── AddonsController.php
│ │ │ │ │ ├── AdministratorController.php
│ │ │ │ │ ├── AdministratorPermissionController.php
│ │ │ │ │ ├── AdministratorRoleController.php
│ │ │ │ │ ├── AnnouncementController.php
│ │ │ │ │ ├── BaseController.php
│ │ │ │ │ ├── CaptchaController.php
│ │ │ │ │ ├── CommentController.php
│ │ │ │ │ ├── CourseAttachController.php
│ │ │ │ │ ├── CourseCategoryController.php
│ │ │ │ │ ├── CourseCategoryTrait.php
│ │ │ │ │ ├── CourseChapterController.php
│ │ │ │ │ ├── CourseController.php
│ │ │ │ │ ├── CourseVideoController.php
│ │ │ │ │ ├── DashboardController.php
│ │ │ │ │ ├── LinkController.php
│ │ │ │ │ ├── LogController.php
│ │ │ │ │ ├── LoginController.php
│ │ │ │ │ ├── MediaImageController.php
│ │ │ │ │ ├── MediaVideoCategoryController.php
│ │ │ │ │ ├── MediaVideoController.php
│ │ │ │ │ ├── MemberController.php
│ │ │ │ │ ├── MemberTagController.php
│ │ │ │ │ ├── NavController.php
│ │ │ │ │ ├── OrderController.php
│ │ │ │ │ ├── PromoCodeController.php
│ │ │ │ │ ├── RoleController.php
│ │ │ │ │ ├── SettingController.php
│ │ │ │ │ ├── SliderController.php
│ │ │ │ │ ├── VideoUploadController.php
│ │ │ │ │ └── ViewBlockController.php
│ │ │ │ │ └── V2
│ │ │ │ │ ├── BaseController.php
│ │ │ │ │ ├── MemberController.php
│ │ │ │ │ ├── StatsController.php
│ │ │ │ │ └── SystemController.php
│ │ │ ├── BaseController.php
│ │ │ ├── Controller.php
│ │ │ └── Frontend
│ │ │ │ ├── FrontendController.php
│ │ │ │ ├── IndexController.php
│ │ │ │ └── PaymentController.php
│ │ ├── Kernel.php
│ │ ├── Middleware
│ │ │ ├── Api
│ │ │ │ ├── DeprecatedApiGuardMiddleware.php
│ │ │ │ ├── LoginStatusCheckMiddleware.php
│ │ │ │ └── UserFaceVerifyLimitMiddleware.php
│ │ │ ├── Backend
│ │ │ │ ├── BackendPermissionCheckMiddleware.php
│ │ │ │ └── BackendSensitiveDataMaskMiddleware.php
│ │ │ ├── EncryptCookies.php
│ │ │ ├── PreventRequestsDuringMaintenance.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustProxies.php
│ │ │ └── VerifyCsrfToken.php
│ │ └── Requests
│ │ │ ├── ApiV2
│ │ │ ├── AvatarChangeRequest.php
│ │ │ ├── BaseRequest.php
│ │ │ ├── CommentRequest.php
│ │ │ ├── InviteBalanceWithdrawRequest.php
│ │ │ ├── MobileChangeRequest.php
│ │ │ ├── MobileLoginRequest.php
│ │ │ ├── NicknameChangeRequest.php
│ │ │ ├── PasswordChangeRequest.php
│ │ │ ├── PasswordLoginRequest.php
│ │ │ ├── RegisterRequest.php
│ │ │ ├── RegisterSmsRequest.php
│ │ │ ├── SmsRequest.php
│ │ │ └── UploadImageRequest.php
│ │ │ ├── ApiV3
│ │ │ ├── CommentRequest.php
│ │ │ └── SocialiteLoginRequest.php
│ │ │ ├── Backend
│ │ │ ├── AdFromRequest.php
│ │ │ ├── Administrator
│ │ │ │ ├── AdministratorRequest.php
│ │ │ │ └── EditPasswordRequest.php
│ │ │ ├── AdministratorRoleRequest.php
│ │ │ ├── AnnouncementRequest.php
│ │ │ ├── BaseRequest.php
│ │ │ ├── CourseAttachRequest.php
│ │ │ ├── CourseCategoryRequest.php
│ │ │ ├── CourseChapterRequest.php
│ │ │ ├── CourseRequest.php
│ │ │ ├── CourseVideoRequest.php
│ │ │ ├── ImageUploadRequest.php
│ │ │ ├── LinkRequest.php
│ │ │ ├── LoginRequest.php
│ │ │ ├── MediaVideoCategoryRequest.php
│ │ │ ├── MemberRequest.php
│ │ │ ├── MpWechatMessageReplyRequest.php
│ │ │ ├── NavRequest.php
│ │ │ ├── PromoCodeGeneratorRequest.php
│ │ │ ├── PromoCodeRequest.php
│ │ │ ├── RoleRequest.php
│ │ │ └── SliderRequest.php
│ │ │ └── ThrottleRequests.php
│ ├── Listeners
│ │ ├── AliyunVodCallbackDeleteMediaCompleteEvent
│ │ │ └── DeleteMediaVideoListener.php
│ │ ├── AliyunVodCallbackFileUploadCompleteEvent
│ │ │ ├── UpdateMediaVideoListener.php
│ │ │ └── VideoVisibilityToggleListener.php
│ │ ├── AliyunVodCallbackMediaBaseChangeCompleteEvent
│ │ │ └── StoreUploadVideoListener.php
│ │ ├── AliyunVodCallbackVideoAnalysisCompleteEvent
│ │ │ └── UpdateMediaVideoListener.php
│ │ ├── AppConfigSavedEvent
│ │ │ ├── AliyunPlayDomainConfigSyncListener.php
│ │ │ ├── AliyunVodCallbackUrlListener.php
│ │ │ ├── TencentPlayKeySyncListener.php
│ │ │ └── TencentVodCallbackUrlListener.php
│ │ ├── CourseAttachDownloadEvent
│ │ │ └── IncDownloadTimesListener.php
│ │ ├── FullSearchDataRebuildEvent
│ │ │ ├── VodRebuildListener.php
│ │ │ └── VodVideoRebuildListener.php
│ │ ├── LinkUpdateEvent
│ │ │ └── CacheClearListener.php
│ │ ├── NavUpdateEvent
│ │ │ └── CacheClearListener.php
│ │ ├── OrderCancelEvent
│ │ │ └── PromoCodeResumeListener.php
│ │ ├── OrderRefundProcessed
│ │ │ ├── OrderRefundStatusChange.php
│ │ │ └── UserNotify.php
│ │ ├── PaymentSuccessEvent
│ │ │ ├── Credit1RewardListener.php
│ │ │ ├── OrderPaidDeliverListener.php
│ │ │ ├── OrderPaidNotificationListener.php
│ │ │ └── OrderPaidStatusChangeListener.php
│ │ ├── PublishedCoursesSearchIndexBuildEvent
│ │ │ ├── VodCourseListener.php
│ │ │ └── VodCourseVideoListener.php
│ │ ├── SliderUpdateEvent
│ │ │ └── CacheClearListener.php
│ │ ├── TencentVodCallbackFileDeletedEvent
│ │ │ └── DeleteMediaVideoListener.php
│ │ ├── TencentVodCallbackNewFileUploadEvent
│ │ │ └── StoreUploadVideoListener.php
│ │ ├── UserCourseWatchedEvent
│ │ │ ├── UserCourseWatchedCredit1RewardListener.php
│ │ │ └── UserCourseWatchedListener.php
│ │ ├── UserDeleteCancelEvent
│ │ │ └── UserNotify.php
│ │ ├── UserDeletedEvent
│ │ │ └── ClearCommentListener.php
│ │ ├── UserLoginEvent
│ │ │ ├── LoginRecordListener.php
│ │ │ └── UserDeleteCancelListener.php
│ │ ├── UserLogoutEvent
│ │ │ └── LoginRecordUpdateListener.php
│ │ ├── UserNotificationReadEvent
│ │ │ └── NotificationCountCacheUpdateListener.php
│ │ ├── UserRegisterEvent
│ │ │ ├── RegisterCredit1RewardListener.php
│ │ │ ├── RegisterIpRecordListener.php
│ │ │ ├── RegisterSendVipListener.php
│ │ │ └── WelcomeMessageListener.php
│ │ ├── UserVerifyFaceSuccessEvent
│ │ │ ├── UserNotifyListener.php
│ │ │ └── UserProfileUpdateListener.php
│ │ ├── UserVideoWatchedEvent
│ │ │ ├── UserVideoWatchedCredit1RewardListener.php
│ │ │ └── UserVideoWatchedListener.php
│ │ ├── VodCourseCreatedEvent
│ │ │ └── SearchRecordNotify.php
│ │ ├── VodCourseDestroyedEvent
│ │ │ ├── ClearCommentListener.php
│ │ │ └── SearchRecordNotify.php
│ │ ├── VodCourseUpdatedEvent
│ │ │ └── SearchRecordNotify.php
│ │ ├── VodVideoCreatedEvent
│ │ │ └── SearchRecordNotify.php
│ │ ├── VodVideoDestroyedEvent
│ │ │ ├── ClearCommentListener.php
│ │ │ ├── SearchRecordNotify.php
│ │ │ └── UserWatchedRecordClear.php
│ │ └── VodVideoUpdatedEvent
│ │ │ └── SearchRecordNotify.php
│ ├── Meedu
│ │ ├── Addons.php
│ │ ├── AddonsProvider.php
│ │ ├── Aliyun
│ │ │ └── Vod.php
│ │ ├── Cache
│ │ │ ├── Impl
│ │ │ │ ├── AliVodPlayCache.php
│ │ │ │ ├── CommentStoreLimitCache.php
│ │ │ │ ├── CourseAttachDownloadCache.php
│ │ │ │ ├── LinkCache.php
│ │ │ │ ├── NavCache.php
│ │ │ │ ├── SliderCache.php
│ │ │ │ ├── TencentVodPlayCache.php
│ │ │ │ ├── UserNotificationCountCache.php
│ │ │ │ └── ViewBlockCache.php
│ │ │ ├── Inc
│ │ │ │ ├── Inc.php
│ │ │ │ ├── IncItem.php
│ │ │ │ └── VideoViewIncItem.php
│ │ │ └── MemoryCache.php
│ │ ├── Core
│ │ │ ├── HashID.php
│ │ │ ├── Upgrade.php
│ │ │ └── UpgradeLog
│ │ │ │ ├── UpgradeV400.php
│ │ │ │ ├── UpgradeV420.php
│ │ │ │ ├── UpgradeV450.php
│ │ │ │ ├── UpgradeV454.php
│ │ │ │ ├── UpgradeV460.php
│ │ │ │ ├── UpgradeV480.php
│ │ │ │ ├── UpgradeV4910.php
│ │ │ │ ├── UpgradeV4911.php
│ │ │ │ ├── UpgradeV4912.php
│ │ │ │ ├── UpgradeV4913.php
│ │ │ │ ├── UpgradeV4914.php
│ │ │ │ ├── UpgradeV4915.php
│ │ │ │ ├── UpgradeV4917.php
│ │ │ │ ├── UpgradeV4920.php
│ │ │ │ ├── UpgradeV4922.php
│ │ │ │ ├── UpgradeV493.php
│ │ │ │ ├── UpgradeV494.php
│ │ │ │ └── UpgradeV498.php
│ │ ├── Factory.php
│ │ ├── Hooks
│ │ │ ├── Constant
│ │ │ │ └── PositionConstant.php
│ │ │ ├── HookContainer.php
│ │ │ ├── HookParams.php
│ │ │ ├── HookRun.php
│ │ │ └── HookRuntimeInterface.php
│ │ ├── MeEdu.php
│ │ ├── MeEduCloud.php
│ │ ├── Payment
│ │ │ ├── Alipay
│ │ │ │ └── AlipayRefund.php
│ │ │ └── Wechat
│ │ │ │ └── WechatRefund.php
│ │ ├── Schedule
│ │ │ └── ScheduleContainer.php
│ │ ├── ServiceProxy
│ │ │ ├── Cache
│ │ │ │ └── CacheInfo.php
│ │ │ ├── Limiter
│ │ │ │ └── LimiterInfo.php
│ │ │ ├── Lock
│ │ │ │ └── LockInfo.php
│ │ │ └── ServiceProxy.php
│ │ ├── ServiceV2
│ │ │ ├── Dao
│ │ │ │ ├── CommentDao.php
│ │ │ │ ├── CommentDaoInterface.php
│ │ │ │ ├── CourseDao.php
│ │ │ │ ├── CourseDaoInterface.php
│ │ │ │ ├── OrderDao.php
│ │ │ │ ├── OrderDaoInterface.php
│ │ │ │ ├── OtherDao.php
│ │ │ │ ├── OtherDaoInterface.php
│ │ │ │ ├── UserDao.php
│ │ │ │ └── UserDaoInterface.php
│ │ │ ├── Models
│ │ │ │ ├── AppConfig.php
│ │ │ │ ├── Comment.php
│ │ │ │ ├── Course.php
│ │ │ │ ├── CourseAttach.php
│ │ │ │ ├── CourseAttachDownloadRecord.php
│ │ │ │ ├── CourseCategory.php
│ │ │ │ ├── CourseChapter.php
│ │ │ │ ├── CourseUserRecord.php
│ │ │ │ ├── CourseVideo.php
│ │ │ │ ├── MediaVideo.php
│ │ │ │ ├── Order.php
│ │ │ │ ├── OrderGoods.php
│ │ │ │ ├── OrderPaidRecord.php
│ │ │ │ ├── PromoCode.php
│ │ │ │ ├── Role.php
│ │ │ │ ├── SearchRecord.php
│ │ │ │ ├── Socialite.php
│ │ │ │ ├── User.php
│ │ │ │ ├── UserCourse.php
│ │ │ │ ├── UserDeleteJob.php
│ │ │ │ ├── UserFaceVerifyTencentRecord.php
│ │ │ │ ├── UserLoginRecord.php
│ │ │ │ ├── UserProfile.php
│ │ │ │ ├── UserUploadImage.php
│ │ │ │ └── UserVideoWatchRecord.php
│ │ │ ├── README.md
│ │ │ ├── ServiceInit.php
│ │ │ └── Services
│ │ │ │ ├── CommentService.php
│ │ │ │ ├── CommentServiceInterface.php
│ │ │ │ ├── ConfigService.php
│ │ │ │ ├── ConfigServiceInterface.php
│ │ │ │ ├── CourseService.php
│ │ │ │ ├── CourseServiceInterface.php
│ │ │ │ ├── FullSearchService.php
│ │ │ │ ├── FullSearchServiceInterface.php
│ │ │ │ ├── OrderService.php
│ │ │ │ ├── OrderServiceInterface.php
│ │ │ │ ├── OtherService.php
│ │ │ │ ├── OtherServiceInterface.php
│ │ │ │ ├── UserService.php
│ │ │ │ └── UserServiceInterface.php
│ │ ├── Setting.php
│ │ ├── Sms
│ │ │ ├── Aliyun.php
│ │ │ ├── SmsInterface.php
│ │ │ └── Tencent.php
│ │ ├── Tencent
│ │ │ ├── Face.php
│ │ │ ├── Vod.php
│ │ │ └── WechatMp.php
│ │ ├── Utils
│ │ │ ├── AppRedirect.php
│ │ │ ├── IP.php
│ │ │ └── SensitiveDataMask.php
│ │ ├── Verify.php
│ │ └── ViewBlock
│ │ │ ├── Constant.php
│ │ │ └── Render.php
│ ├── Models
│ │ ├── Administrator.php
│ │ ├── AdministratorLog.php
│ │ ├── AdministratorMenu.php
│ │ ├── AdministratorPermission.php
│ │ ├── AdministratorRole.php
│ │ ├── MediaImage.php
│ │ └── MediaVideoCategory.php
│ ├── Providers
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── BroadcastServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ ├── HooksRegisterProvider.php
│ │ └── RouteServiceProvider.php
│ ├── Services
│ │ ├── Base
│ │ │ ├── Interfaces
│ │ │ │ ├── CacheServiceInterface.php
│ │ │ │ └── ConfigServiceInterface.php
│ │ │ ├── Model
│ │ │ │ └── AppConfig.php
│ │ │ ├── Providers
│ │ │ │ └── BaseServiceRegisterProvider.php
│ │ │ └── Services
│ │ │ │ ├── CacheService.php
│ │ │ │ └── ConfigService.php
│ │ ├── Course
│ │ │ ├── Interfaces
│ │ │ │ ├── CourseCategoryServiceInterface.php
│ │ │ │ ├── CourseServiceInterface.php
│ │ │ │ └── VideoServiceInterface.php
│ │ │ ├── Models
│ │ │ │ ├── Base.php
│ │ │ │ ├── Course.php
│ │ │ │ ├── CourseAttach.php
│ │ │ │ ├── CourseCategory.php
│ │ │ │ ├── CourseChapter.php
│ │ │ │ ├── CourseComment.php
│ │ │ │ ├── CourseUserRecord.php
│ │ │ │ ├── MediaVideo.php
│ │ │ │ ├── Video.php
│ │ │ │ └── VideoComment.php
│ │ │ ├── Providers
│ │ │ │ └── CourseServiceRegisterProvider.php
│ │ │ ├── Proxies
│ │ │ │ ├── CourseServiceProxy.php
│ │ │ │ └── VideoServiceProxy.php
│ │ │ └── Services
│ │ │ │ ├── CourseCategoryService.php
│ │ │ │ ├── CourseService.php
│ │ │ │ └── VideoService.php
│ │ ├── Member
│ │ │ ├── Interfaces
│ │ │ │ ├── CreditServiceInterface.php
│ │ │ │ ├── DeliverServiceInterface.php
│ │ │ │ ├── NotificationServiceInterface.php
│ │ │ │ ├── RoleServiceInterface.php
│ │ │ │ ├── SocialiteServiceInterface.php
│ │ │ │ ├── UserInviteBalanceServiceInterface.php
│ │ │ │ └── UserServiceInterface.php
│ │ │ ├── Models
│ │ │ │ ├── Role.php
│ │ │ │ ├── Socialite.php
│ │ │ │ ├── User.php
│ │ │ │ ├── UserCourse.php
│ │ │ │ ├── UserCreditRecord.php
│ │ │ │ ├── UserInviteBalanceRecord.php
│ │ │ │ ├── UserInviteBalanceWithdrawOrder.php
│ │ │ │ ├── UserJoinRoleRecord.php
│ │ │ │ ├── UserLikeCourse.php
│ │ │ │ ├── UserProfile.php
│ │ │ │ ├── UserRemark.php
│ │ │ │ ├── UserTag.php
│ │ │ │ ├── UserTagRelation.php
│ │ │ │ ├── UserVideo.php
│ │ │ │ ├── UserVideoWatchRecord.php
│ │ │ │ └── UserWatchStat.php
│ │ │ ├── Notifications
│ │ │ │ └── SimpleMessageNotification.php
│ │ │ ├── Providers
│ │ │ │ └── MemberServiceRegisterProvider.php
│ │ │ ├── Proxies
│ │ │ │ ├── UserInviteBalanceServiceProxy.php
│ │ │ │ └── UserServiceProxy.php
│ │ │ └── Services
│ │ │ │ ├── CreditService.php
│ │ │ │ ├── DeliverService.php
│ │ │ │ ├── NotificationService.php
│ │ │ │ ├── RoleService.php
│ │ │ │ ├── SocialiteService.php
│ │ │ │ └── UserService.php
│ │ ├── Order
│ │ │ ├── Interfaces
│ │ │ │ ├── OrderServiceInterface.php
│ │ │ │ └── PromoCodeServiceInterface.php
│ │ │ ├── Models
│ │ │ │ ├── Order.php
│ │ │ │ ├── OrderGoods.php
│ │ │ │ ├── OrderPaidRecord.php
│ │ │ │ ├── OrderRefund.php
│ │ │ │ └── PromoCode.php
│ │ │ ├── Providers
│ │ │ │ └── OrderServiceRegisterProvider.php
│ │ │ └── Services
│ │ │ │ ├── OrderService.php
│ │ │ │ └── PromoCodeService.php
│ │ ├── Other
│ │ │ ├── Interfaces
│ │ │ │ ├── AnnouncementServiceInterface.php
│ │ │ │ ├── LinkServiceInterface.php
│ │ │ │ ├── NavServiceInterface.php
│ │ │ │ ├── SliderServiceInterface.php
│ │ │ │ ├── SmsServiceInterface.php
│ │ │ │ └── ViewBlockServiceInterface.php
│ │ │ ├── Models
│ │ │ │ ├── AdFrom.php
│ │ │ │ ├── AdFromNumber.php
│ │ │ │ ├── Announcement.php
│ │ │ │ ├── Link.php
│ │ │ │ ├── Nav.php
│ │ │ │ ├── Slider.php
│ │ │ │ ├── SmsRecord.php
│ │ │ │ └── ViewBlock.php
│ │ │ ├── Providers
│ │ │ │ └── OtherServiceRegisterProvider.php
│ │ │ └── Services
│ │ │ │ ├── AnnouncementService.php
│ │ │ │ ├── LinkService.php
│ │ │ │ ├── NavService.php
│ │ │ │ ├── SliderService.php
│ │ │ │ ├── SmsService.php
│ │ │ │ └── ViewBlockService.php
│ │ └── README.md
│ └── helper.php
├── artisan
├── bootstrap
│ ├── app.php
│ └── cache
│ │ └── .gitignore
├── composer.json
├── composer.lock
├── config
│ ├── app.php
│ ├── auth.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── captcha.php
│ ├── cors.php
│ ├── database.php
│ ├── filesystems.php
│ ├── hashing.php
│ ├── jwt.php
│ ├── logging.php
│ ├── mail.php
│ ├── meedu.php
│ ├── pay.php
│ ├── purifier.php
│ ├── queue.php
│ ├── s3.php
│ ├── scout.php
│ ├── services.php
│ ├── session.php
│ ├── sms.php
│ ├── tencent.php
│ ├── throttle.php
│ ├── trustedproxy.php
│ └── view.php
├── database
│ ├── .gitignore
│ ├── factories
│ │ ├── AdministratorFactory.php
│ │ ├── AdministratorRoleFactory.php
│ │ ├── Meedu
│ │ │ └── ServiceV2
│ │ │ │ └── Models
│ │ │ │ ├── UserDeleteJobFactory.php
│ │ │ │ └── UserFactory.php
│ │ └── Services
│ │ │ ├── Course
│ │ │ └── Models
│ │ │ │ ├── CourseCategoryFactory.php
│ │ │ │ ├── CourseChapterFactory.php
│ │ │ │ ├── CourseCommentFactory.php
│ │ │ │ ├── CourseFactory.php
│ │ │ │ ├── CourseUserRecordFactory.php
│ │ │ │ ├── VideoCommentFactory.php
│ │ │ │ └── VideoFactory.php
│ │ │ ├── Member
│ │ │ └── Models
│ │ │ │ ├── RoleFactory.php
│ │ │ │ ├── SocialiteFactory.php
│ │ │ │ ├── UserCourseFactory.php
│ │ │ │ ├── UserCreditRecordFactory.php
│ │ │ │ ├── UserFactory.php
│ │ │ │ ├── UserJoinRoleRecordFactory.php
│ │ │ │ ├── UserLikeCourseFactory.php
│ │ │ │ ├── UserSocialiteFactory.php
│ │ │ │ └── UserVideoFactory.php
│ │ │ ├── Order
│ │ │ └── Models
│ │ │ │ ├── OrderFactory.php
│ │ │ │ ├── OrderGoodsFactory.php
│ │ │ │ ├── OrderPaidRecordFactory.php
│ │ │ │ └── PromoCodeFactory.php
│ │ │ └── Other
│ │ │ └── Models
│ │ │ ├── AdFromFactory.php
│ │ │ ├── AdFromNumberFactory.php
│ │ │ ├── AnnouncementFactory.php
│ │ │ ├── LinkFactory.php
│ │ │ ├── NavFactory.php
│ │ │ └── SliderFactory.php
│ ├── migrations
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ ├── 2018_06_10_093350_create_course_table.php
│ │ ├── 2018_06_10_093941_create_video_table.php
│ │ ├── 2018_06_11_140429_create_administrators_table.php
│ │ ├── 2018_06_11_140557_create_administrator_roles_table.php
│ │ ├── 2018_06_11_140702_create_administrator_role_relation_tbale.php
│ │ ├── 2018_06_11_140936_create_administrator_permissions_table.php
│ │ ├── 2018_06_11_141132_create_administrator_role_permission_relation_table.php
│ │ ├── 2018_06_24_055643_add_charge_column_for_videos_table.php
│ │ ├── 2018_08_24_111310_create_sms_records_table.php
│ │ ├── 2018_08_25_122014_create_course_comments_table.php
│ │ ├── 2018_08_25_122026_create_video_comments_table.php
│ │ ├── 2018_08_28_194051_create_user_course_table.php
│ │ ├── 2018_08_28_201555_create_roles_table.php
│ │ ├── 2018_08_28_201633_add_role_id_column_for_users_table.php
│ │ ├── 2018_08_28_202328_create_user_join_role_records_table.php
│ │ ├── 2018_08_29_202834_create_notifications_table.php
│ │ ├── 2018_08_29_203905_create_jobs_table.php
│ │ ├── 2018_08_30_200622_add_charge_column_for_user_course_table.php
│ │ ├── 2018_08_30_202222_create_user_video_table.php
│ │ ├── 2018_09_03_202544_create_orders_table.php
│ │ ├── 2018_09_16_110336_create_email_subscriptions_table.php
│ │ ├── 2018_09_16_113005_create_announcements_table.php
│ │ ├── 2018_10_07_101347_add_aliyun_video_id_column_for_videos.php
│ │ ├── 2018_10_23_101556_create_administrator_menus_table.php
│ │ ├── 2018_10_26_102622_create_order_goods_table.php
│ │ ├── 2018_10_26_102656_adjust_orders_table.php
│ │ ├── 2018_11_22_194642_create_ad_froms_table.php
│ │ ├── 2018_11_22_194828_create_ad_from_number_table.php
│ │ ├── 2018_11_24_205824_create_links_table.php
│ │ ├── 2018_12_06_082850_create_course_chapter_table.php
│ │ ├── 2018_12_06_192345_add_sort_column_for_course_chapter_table.php
│ │ ├── 2018_12_06_192755_add_chapter_id_for_videos_table.php
│ │ ├── 2018_12_12_214600_create_navs_table.php
│ │ ├── 2018_12_12_221538_create_socialite_table.php
│ │ ├── 2018_12_22_112124_add_duration_column_for_videos_table.php
│ │ ├── 2018_12_25_222045_add_is_show_column_for_roles_table.php
│ │ ├── 2019_02_19_200047_add_payment_column_for_orders_table.php
│ │ ├── 2019_02_23_130633_create_failed_jobs_table.php
│ │ ├── 2019_03_26_222210_add_tencent_video_id_column_for_videos.php
│ │ ├── 2019_12_22_120342_change_course_comment_content_field.php
│ │ ├── 2019_12_22_120357_change_video_comment_content_field.php
│ │ ├── 2019_12_22_121813_change_course_description_field.php
│ │ ├── 2019_12_22_121825_change_video_description_field.php
│ │ ├── 2019_12_27_194525_alter_order_goods_table.php
│ │ ├── 2020_01_08_121811_add_invite_column_for_users.php
│ │ ├── 2020_01_08_122439_create_promo_codes_table.php
│ │ ├── 2020_01_08_145811_create_order_paid_records_table.php
│ │ ├── 2020_01_08_161753_create_user_invite_balance_records_table.php
│ │ ├── 2020_01_11_162610_create_course_categories_table.php
│ │ ├── 2020_01_11_165825_add_category_id_for_course_table.php
│ │ ├── 2020_01_15_122836_create_invite_balance_withdraw_records_table.php
│ │ ├── 2020_01_30_170310_create_cache_table.php
│ │ ├── 2020_02_05_164322_add_is_recom_column_for_courses_table.php
│ │ ├── 2020_02_21_145619_create_sliders_table.php
│ │ ├── 2020_02_21_152347_add_title_column_for_announcement_table.php
│ │ ├── 2020_02_24_140733_add_user_count_column_for_course_table.php
│ │ ├── 2020_02_24_140813_create_course_user_records_table.php
│ │ ├── 2020_02_28_145527_add_is_password_set_column_for_users_table.php
│ │ ├── 2020_03_02_095800_add_is_set_nickname_column_for_users_table.php
│ │ ├── 2020_03_04_133129_create_user_like_courses_table.php
│ │ ├── 2020_03_07_175130_create_index_banners_table.php
│ │ ├── 2020_05_02_112023_create_user_video_watch_records_table.php
│ │ ├── 2020_05_02_112648_add_is_watched_column_for_user_course_records_table.php
│ │ ├── 2020_05_10_161748_add_is_free_column_courses_table.php
│ │ ├── 2020_05_10_161807_add_is_ban_sell_column_videos_table.php
│ │ ├── 2020_05_21_110416_add_is_used_promo_code_column_for_users.php
│ │ ├── 2020_05_21_135128_add_register_ip_column_for_users.php
│ │ ├── 2020_05_24_221058_add_progress_column_for_course_user_records_table.php
│ │ ├── 2020_06_08_153953_add_column_administrator_tables.php
│ │ ├── 2020_06_08_154009_add_column_adm_permissions_tables.php
│ │ ├── 2020_06_17_195229_create_user_credit_records_table.php
│ │ ├── 2020_06_20_001804_create_course_attach_tables.php
│ │ ├── 2020_06_24_123756_create_webconfig_table.php
│ │ ├── 2020_06_25_223639_add_comment_status_column_for_courses_table.php
│ │ ├── 2020_06_26_132235_add_some_field_for_videos_table.php
│ │ ├── 2020_06_26_223017_modify_adm_menus_table.php
│ │ ├── 2020_06_29_172741_add_is_show_column_for_app_config.php
│ │ ├── 2020_07_23_121253_create_user_login_records.php
│ │ ├── 2020_07_23_121304_add_login_info_column_for_users.php
│ │ ├── 2020_07_24_135656_add_active_routes_for_navs.php
│ │ ├── 2020_07_27_151657_add_platform_column_for_sliders.php
│ │ ├── 2020_08_31_095138_add_goods_column_for_order_goods_table.php
│ │ ├── 2020_09_02_163437_create_user_tags_table.php
│ │ ├── 2020_09_02_163441_create_user_tag_table.php
│ │ ├── 2020_09_03_111458_create_user_remarks_table.php
│ │ ├── 2020_09_04_130615_create_mp_wechat_message_reply_table.php
│ │ ├── 2020_09_24_222925_add_platform_column_for_navs_table.php
│ │ ├── 2020_09_25_162213_create_user_watch_stat_table.php
│ │ ├── 2020_10_28_132558_create_user_profiles_table.php
│ │ ├── 2020_12_10_155045_add_blank_column_for_navs_table.php
│ │ ├── 2021_04_18_170446_add_unique_id_column_for_socialites.php
│ │ ├── 2021_07_13_122433_create_media_images_table.php
│ │ ├── 2021_07_15_143114_create_view_blocks_table.php
│ │ ├── 2021_07_21_100433_create_media_videos_table.php
│ │ ├── 2021_09_07_211221_add_uuid_column_for_failed_job.php
│ │ ├── 2021_09_08_162928_create_search_records_table.php
│ │ ├── 2021_10_12_105950_delete_comment_status_for_courses.php
│ │ ├── 2021_10_12_105953_delete_comment_status_for_videos.php
│ │ ├── 2021_10_12_110006_delete_player_column__for_videos.php
│ │ ├── 2022_02_19_202550_add_is_open_for_media_videos.php
│ │ ├── 2022_03_27_151503_create_order_refund_table.php
│ │ ├── 2022_03_27_152819_add_refund_column_for_orders.php
│ │ ├── 2022_07_01_112543_remove_is_used_promo_code_for_users.php
│ │ ├── 2022_07_31_102135_create_admin_logs.php
│ │ ├── 2022_08_04_100621_create_user_delete_jobs.php
│ │ ├── 2022_08_08_103539_create_user_upload_images.php
│ │ ├── 2022_08_08_135018_change_user_login_records.php
│ │ ├── 2022_08_22_144416_modify_media_videos_size_column.php
│ │ ├── 2022_11_16_094116_add_is_verify_for_user_profile.php
│ │ ├── 2023_02_01_102307_create_user_face_verify_tencent_records.php
│ │ ├── 2023_09_18_141926_add_ip_for_course_comment.php
│ │ ├── 2023_09_18_141932_add_ip_for_video_comment.php
│ │ ├── 2024_07_01_141659_create_course_attach_download_records_table.php
│ │ ├── 2024_07_11_110645_add_is_hidden_for_media_videos_table.php
│ │ ├── 2024_12_06_111625_add_scene_and_is_hide_and_category_id_for_media_images_table.php
│ │ ├── 2025_01_09_100614_create_media_video_categories_table.php
│ │ ├── 2025_01_09_100820_add_category_id_for_media_video_table.php
│ │ ├── 2025_01_13_092001_add_is_check_for_video_comments_table.php
│ │ ├── 2025_01_13_092010_add_is_check_for_course_comments_table.php
│ │ ├── 2025_01_13_104203_add_is_allow_comment_column_for_courses_table.php
│ │ ├── 2025_01_13_104213_add_is_allow_comment_column_for_videos_table.php
│ │ └── 2025_02_22_233300_create_comments_table.php
│ └── seeders
│ │ ├── AdministratorPermissionSeeder.php
│ │ ├── AdministratorSuperSeeder.php
│ │ ├── AppConfigSeeder.php
│ │ ├── CourseVideoSeeder.php
│ │ ├── DatabaseSeeder.php
│ │ └── UserSeeder.php
├── phpunit.xml
├── public
│ ├── .htaccess
│ ├── addons
│ │ └── .gitignore
│ ├── favicon.ico
│ ├── images
│ │ ├── default_avatar.jpg
│ │ ├── icons
│ │ │ └── qq.svg
│ │ ├── logo.png
│ │ ├── pay
│ │ │ ├── ali.svg
│ │ │ ├── card.svg
│ │ │ └── wechat.svg
│ │ └── player-thumb.png
│ ├── index.php
│ ├── install.php
│ ├── robots.txt
│ └── templates
│ │ └── .gitignore
├── resources
│ ├── lang
│ │ ├── en.json
│ │ ├── en
│ │ │ ├── auth.php
│ │ │ ├── pagination.php
│ │ │ ├── passwords.php
│ │ │ └── validation.php
│ │ ├── zh.json
│ │ └── zh
│ │ │ ├── auth.php
│ │ │ ├── pagination.php
│ │ │ ├── passwords.php
│ │ │ └── validation.php
│ └── views
│ │ ├── errors
│ │ └── 404.blade.php
│ │ ├── index
│ │ ├── aboutus.blade.php
│ │ ├── face_verify_success.blade.php
│ │ ├── user_private_protocol.blade.php
│ │ ├── user_protocol.blade.php
│ │ └── vip_protocol.blade.php
│ │ ├── payment
│ │ ├── error.blade.php
│ │ ├── index.blade.php
│ │ ├── success.blade.php
│ │ └── wechat-jsapi.blade.php
│ │ └── wechat_scan_login
│ │ ├── fail.blade.php
│ │ ├── index.blade.php
│ │ └── success.blade.php
├── routes
│ ├── backend-v1.php
│ ├── backend-v2.php
│ ├── channels.php
│ ├── frontend-v2.php
│ ├── frontend-v3.php
│ ├── frontend.php
│ └── web.php
├── server.php
├── storage
│ ├── app
│ │ ├── .gitignore
│ │ ├── public
│ │ │ └── .gitignore
│ │ └── templates
│ │ │ └── .gitignore
│ ├── framework
│ │ ├── .gitignore
│ │ ├── cache
│ │ │ ├── .gitignore
│ │ │ └── data
│ │ │ │ └── .gitignore
│ │ ├── sessions
│ │ │ └── .gitignore
│ │ ├── testing
│ │ │ └── .gitignore
│ │ └── views
│ │ │ └── .gitignore
│ ├── logs
│ │ └── .gitignore
│ └── private
│ │ └── .gitignore
└── tests
│ ├── Commands
│ ├── AddonsProviderMapGeneratorTest.php
│ ├── ApplicationInstallCommandTest.php
│ ├── InstallLockCommandTest.php
│ ├── MeEduUpgradeCommandTest.php
│ ├── MemberRoleExpiredHandlerCommandTest.php
│ ├── OrderPayTimeoutCommandTest.php
│ ├── RefundQueryCommandTest.php
│ └── UserDeleteJobRunCommandTest.php
│ ├── CreatesApplication.php
│ ├── Feature
│ ├── Api
│ │ ├── Bus
│ │ │ └── LoginLimitTest.php
│ │ ├── V2
│ │ │ ├── Base.php
│ │ │ ├── CaptchaImageTest.php
│ │ │ ├── CaptchaSmsTest.php
│ │ │ ├── CourseCategoriesTest.php
│ │ │ ├── CourseTest.php
│ │ │ ├── LoginTest.php
│ │ │ ├── MemberTest.php
│ │ │ ├── PasswordTest.php
│ │ │ ├── PromoCodeTest.php
│ │ │ ├── RegisterTest.php
│ │ │ ├── RoleTest.php
│ │ │ └── VideoTest.php
│ │ └── V3
│ │ │ ├── CommentTest.php
│ │ │ ├── LoginTest.php
│ │ │ └── MemberTest.php
│ └── BackendApi
│ │ ├── AdFromTest.php
│ │ ├── AdministratorTest.php
│ │ ├── AnnouncementTest.php
│ │ ├── Base.php
│ │ ├── CourseCategoryTest.php
│ │ ├── DashboardTest.php
│ │ ├── LinkTest.php
│ │ ├── LoginTest.php
│ │ ├── NavTest.php
│ │ ├── PromoCodeTest.php
│ │ ├── RoleTest.php
│ │ ├── SliderTest.php
│ │ └── UserTest.php
│ ├── OriginalTestCase.php
│ ├── ServiceV2
│ ├── Dao
│ │ └── CommentDaoTest.php
│ └── Service
│ │ ├── CommentServiceTest.php
│ │ └── UserServiceTest.php
│ ├── Services
│ ├── Course
│ │ ├── CourseCategoryServiceTest.php
│ │ ├── CourseServiceTest.php
│ │ └── VideoServiceTest.php
│ ├── Member
│ │ ├── CreditServiceTest.php
│ │ ├── DeliverServiceTest.php
│ │ ├── NotificationServiceTest.php
│ │ ├── RoleServiceTest.php
│ │ ├── SocialiteServiceTest.php
│ │ └── UserServiceTest.php
│ ├── Order
│ │ ├── OrderServiceTest.php
│ │ └── PromoCodeServiceTest.php
│ └── Other
│ │ ├── AnnouncementServiceTest.php
│ │ ├── LinkServiceTest.php
│ │ ├── NavServiceTest.php
│ │ ├── SliderServiceTest.php
│ │ └── SmsServiceTest.php
│ ├── TestCase.php
│ └── Unit
│ ├── Bus
│ ├── AdminPermissionBusTest.php
│ ├── AuthBusTest.php
│ ├── BusinessStateTest.php
│ └── RefundBusTest.php
│ ├── Events
│ ├── OrderCancelEventTest.php
│ └── UserRegisterEventTest.php
│ ├── HelperTest.php
│ └── Meedu
│ ├── MemoryCacheTest.php
│ └── ServiceProxy
│ ├── CacheInfoTest.php
│ ├── LimitInfoTest.php
│ ├── LockInfoTest.php
│ └── ServiceProxyTest.php
├── xyz.meedu.h5
├── .env.example
├── .gitignore
├── README.md
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
│ ├── favicon.ico
│ └── js
│ │ ├── DPlayer.min.js
│ │ └── jweixin-1.6.0.js
├── src
│ ├── App.scss
│ ├── App.tsx
│ ├── AutoTop.ts
│ ├── api
│ │ ├── comment.ts
│ │ ├── course.ts
│ │ ├── index.ts
│ │ ├── internal
│ │ │ └── httpClient.ts
│ │ ├── login.ts
│ │ ├── order.ts
│ │ ├── role.ts
│ │ ├── search.ts
│ │ ├── system.ts
│ │ ├── user.ts
│ │ └── viewBlock.ts
│ ├── assets
│ │ └── img
│ │ │ ├── Spinload.gif
│ │ │ ├── VIPcenter@2x.png
│ │ │ ├── attach-icon.png
│ │ │ ├── circle.png
│ │ │ ├── close.png
│ │ │ ├── collect-active.png
│ │ │ ├── collect.png
│ │ │ ├── default-vip.png
│ │ │ ├── default_avatar.png
│ │ │ ├── dianbo@2x.png
│ │ │ ├── dianzishu@2x.png
│ │ │ ├── faceSuccess.png
│ │ │ ├── icon-adopt.png
│ │ │ ├── icon-answer-card.png
│ │ │ ├── icon-back-n.png
│ │ │ ├── icon-back.png
│ │ │ ├── icon-balance@2x.png
│ │ │ ├── icon-card.png
│ │ │ ├── icon-check-h.png
│ │ │ ├── icon-check-n.png
│ │ │ ├── icon-clock.png
│ │ │ ├── icon-delete-h.png
│ │ │ ├── icon-delete.png
│ │ │ ├── icon-error.png
│ │ │ ├── icon-exam@2x.png
│ │ │ ├── icon-exchange@2x.png
│ │ │ ├── icon-favorite-n.png
│ │ │ ├── icon-favorite.png
│ │ │ ├── icon-filter.png
│ │ │ ├── icon-handin.png
│ │ │ ├── icon-history@2x.png
│ │ │ ├── icon-home-h@2x.png
│ │ │ ├── icon-home-n@2x.png
│ │ │ ├── icon-info@2x.png
│ │ │ ├── icon-last.png
│ │ │ ├── icon-list@2x.png
│ │ │ ├── icon-me-h@2x.png
│ │ │ ├── icon-me-n@2x.png
│ │ │ ├── icon-message@2x.png
│ │ │ ├── icon-mock@2x.png
│ │ │ ├── icon-money@2x.png
│ │ │ ├── icon-next.png
│ │ │ ├── icon-point@2x.png
│ │ │ ├── icon-practice@2x.png
│ │ │ ├── icon-prev.png
│ │ │ ├── icon-qq.png
│ │ │ ├── icon-search.png
│ │ │ ├── icon-setting@2x.png
│ │ │ ├── icon-study-h@2x.png
│ │ │ ├── icon-study-n@2x.png
│ │ │ ├── icon-wexinpay.png
│ │ │ ├── icon-wrongbook@2x.png
│ │ │ ├── img-placeholder.png
│ │ │ ├── kaoshi@2x.png
│ │ │ ├── lujing@2x.png
│ │ │ ├── miaosha@2x.png
│ │ │ ├── new
│ │ │ ├── VIP.png
│ │ │ ├── agree.png
│ │ │ ├── back.png
│ │ │ ├── back@2x.png
│ │ │ ├── banner.png
│ │ │ ├── close.png
│ │ │ ├── message.png
│ │ │ ├── order.png
│ │ │ └── setting.png
│ │ │ ├── payali.png
│ │ │ ├── payhand.png
│ │ │ ├── paywechat.png
│ │ │ ├── play.gif
│ │ │ ├── practice.png
│ │ │ ├── qq.png
│ │ │ ├── selected.png
│ │ │ ├── test.png
│ │ │ ├── topright.png
│ │ │ ├── tuwen@2x.png
│ │ │ ├── unselected.png
│ │ │ ├── virtual-test.png
│ │ │ ├── watermark@2x.png
│ │ │ ├── wechat.png
│ │ │ ├── wenda@2x.png
│ │ │ ├── work-weixin.png
│ │ │ ├── wrong-book.png
│ │ │ └── zhibo@2x.png
│ ├── components
│ │ ├── captcha-dialog
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── confirm-login
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── copyright
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── count-down
│ │ │ └── index.tsx
│ │ ├── course-comments
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── duration
│ │ │ └── index.tsx
│ │ ├── empty
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── footer-bar
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── index.ts
│ │ ├── nav-header
│ │ │ └── index.tsx
│ │ ├── none
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── private-route
│ │ │ └── index.tsx
│ │ ├── protocol
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── search-box
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── show-model
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── tech-support
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── thumb-bar
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ └── vod-course-item
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ ├── index.tsx
│ ├── js
│ │ ├── config.ts
│ │ └── wechat-share.ts
│ ├── main.scss
│ ├── main.tsx
│ ├── meedu.d.ts
│ ├── pages
│ │ ├── bind-mobile
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── code-bind-mobile
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── course
│ │ │ ├── compenents
│ │ │ │ ├── attach-box
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── filter-box1
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ └── tabs
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ ├── detail.module.scss
│ │ │ ├── detail.tsx
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ ├── video.module.scss
│ │ │ └── video.tsx
│ │ ├── error
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── faceSuccess
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── index.ts
│ │ ├── index
│ │ │ ├── compenents
│ │ │ │ ├── blank
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── grid-nav
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── gzh-v1
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── image-group
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── index-slider
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ │ └── vod-v1
│ │ │ │ │ ├── index.module.scss
│ │ │ │ │ └── index.tsx
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── init
│ │ │ └── index.tsx
│ │ ├── layouts
│ │ │ ├── with-footer
│ │ │ │ └── index.tsx
│ │ │ └── without-footer
│ │ │ │ └── index.tsx
│ │ ├── loading
│ │ │ └── index.tsx
│ │ ├── login
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ ├── login-error.module.scss
│ │ │ ├── login-error.tsx
│ │ │ ├── login-password.module.scss
│ │ │ └── login-password.tsx
│ │ ├── member
│ │ │ ├── components
│ │ │ │ ├── newmobile.module.scss
│ │ │ │ └── newmobile.tsx
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ ├── mobile.module.scss
│ │ │ ├── mobile.tsx
│ │ │ ├── mobileVerify.module.scss
│ │ │ ├── mobileVerify.tsx
│ │ │ ├── order.module.scss
│ │ │ ├── order.tsx
│ │ │ ├── password.module.scss
│ │ │ ├── password.tsx
│ │ │ ├── profile.module.scss
│ │ │ ├── profile.tsx
│ │ │ ├── setting.module.scss
│ │ │ └── setting.tsx
│ │ ├── messages
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── order
│ │ │ ├── index.module.scss
│ │ │ ├── index.tsx
│ │ │ ├── success.module.scss
│ │ │ └── success.tsx
│ │ ├── role
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── search
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ └── study
│ │ │ ├── compenents
│ │ │ ├── course-item.module.scss
│ │ │ └── course-item.tsx
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ ├── routes
│ │ └── index.tsx
│ ├── store
│ │ ├── index.ts
│ │ ├── system
│ │ │ └── systemConfigSlice.ts
│ │ └── user
│ │ │ └── loginUserSlice.ts
│ ├── utils
│ │ └── index.ts
│ └── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
└── xyz.meedu.pc
├── .env.example
├── .gitignore
├── README.md
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
├── favicon.png
└── js
│ ├── aliyun-rts
│ └── aliyun-rts-sdk-2.2.9.js
│ ├── highlight
│ ├── a11y-dark.min.css
│ └── highlight-9.18.5.min.js
│ ├── katex
│ ├── contrib
│ │ └── auto-render.min.js
│ ├── fonts
│ │ ├── KaTeX_AMS-Regular.ttf
│ │ ├── KaTeX_AMS-Regular.woff
│ │ ├── KaTeX_AMS-Regular.woff2
│ │ ├── KaTeX_Caligraphic-Bold.ttf
│ │ ├── KaTeX_Caligraphic-Bold.woff
│ │ ├── KaTeX_Caligraphic-Bold.woff2
│ │ ├── KaTeX_Caligraphic-Regular.ttf
│ │ ├── KaTeX_Caligraphic-Regular.woff
│ │ ├── KaTeX_Caligraphic-Regular.woff2
│ │ ├── KaTeX_Fraktur-Bold.ttf
│ │ ├── KaTeX_Fraktur-Bold.woff
│ │ ├── KaTeX_Fraktur-Bold.woff2
│ │ ├── KaTeX_Fraktur-Regular.ttf
│ │ ├── KaTeX_Fraktur-Regular.woff
│ │ ├── KaTeX_Fraktur-Regular.woff2
│ │ ├── KaTeX_Main-Bold.ttf
│ │ ├── KaTeX_Main-Bold.woff
│ │ ├── KaTeX_Main-Bold.woff2
│ │ ├── KaTeX_Main-BoldItalic.ttf
│ │ ├── KaTeX_Main-BoldItalic.woff
│ │ ├── KaTeX_Main-BoldItalic.woff2
│ │ ├── KaTeX_Main-Italic.ttf
│ │ ├── KaTeX_Main-Italic.woff
│ │ ├── KaTeX_Main-Italic.woff2
│ │ ├── KaTeX_Main-Regular.ttf
│ │ ├── KaTeX_Main-Regular.woff
│ │ ├── KaTeX_Main-Regular.woff2
│ │ ├── KaTeX_Math-BoldItalic.ttf
│ │ ├── KaTeX_Math-BoldItalic.woff
│ │ ├── KaTeX_Math-BoldItalic.woff2
│ │ ├── KaTeX_Math-Italic.ttf
│ │ ├── KaTeX_Math-Italic.woff
│ │ ├── KaTeX_Math-Italic.woff2
│ │ ├── KaTeX_SansSerif-Bold.ttf
│ │ ├── KaTeX_SansSerif-Bold.woff
│ │ ├── KaTeX_SansSerif-Bold.woff2
│ │ ├── KaTeX_SansSerif-Italic.ttf
│ │ ├── KaTeX_SansSerif-Italic.woff
│ │ ├── KaTeX_SansSerif-Italic.woff2
│ │ ├── KaTeX_SansSerif-Regular.ttf
│ │ ├── KaTeX_SansSerif-Regular.woff
│ │ ├── KaTeX_SansSerif-Regular.woff2
│ │ ├── KaTeX_Script-Regular.ttf
│ │ ├── KaTeX_Script-Regular.woff
│ │ ├── KaTeX_Script-Regular.woff2
│ │ ├── KaTeX_Size1-Regular.ttf
│ │ ├── KaTeX_Size1-Regular.woff
│ │ ├── KaTeX_Size1-Regular.woff2
│ │ ├── KaTeX_Size2-Regular.ttf
│ │ ├── KaTeX_Size2-Regular.woff
│ │ ├── KaTeX_Size2-Regular.woff2
│ │ ├── KaTeX_Size3-Regular.ttf
│ │ ├── KaTeX_Size3-Regular.woff
│ │ ├── KaTeX_Size3-Regular.woff2
│ │ ├── KaTeX_Size4-Regular.ttf
│ │ ├── KaTeX_Size4-Regular.woff
│ │ ├── KaTeX_Size4-Regular.woff2
│ │ ├── KaTeX_Typewriter-Regular.ttf
│ │ ├── KaTeX_Typewriter-Regular.woff
│ │ └── KaTeX_Typewriter-Regular.woff2
│ ├── katex.min.css
│ └── katex.min.js
│ ├── player
│ ├── DPlayer.min.js
│ └── hls-1.4.10.min.js
│ └── tcplayer
│ ├── tcplayer.min.css
│ └── tcplayer.v4.8.0.min.js
├── src
├── App.scss
├── App.tsx
├── AutoTop.ts
├── api
│ ├── comment.ts
│ ├── course.ts
│ ├── home.ts
│ ├── index.ts
│ ├── internal
│ │ └── httpClient.ts
│ ├── login.ts
│ ├── order.ts
│ ├── role.ts
│ ├── search.ts
│ ├── study.ts
│ ├── system.ts
│ ├── user.ts
│ └── viewBlock.ts
├── assets
│ ├── iconfont
│ │ ├── iconfont.css
│ │ ├── iconfont.ttf
│ │ ├── iconfont.woff
│ │ └── iconfont.woff2
│ └── img
│ │ ├── back@2x.png
│ │ ├── commen
│ │ ├── VIP-top.png
│ │ ├── banner2.jpg
│ │ ├── bg-VIP.png
│ │ ├── bg-zhibo.png
│ │ ├── collect-paper.png
│ │ ├── default-article.png
│ │ ├── default-avatar.jpg
│ │ ├── default-banner.png
│ │ ├── default-ebook.png
│ │ ├── default-lesson.png
│ │ ├── default-live.png
│ │ ├── default-paper.png
│ │ ├── default-steps.png
│ │ ├── default-video.png
│ │ ├── default-vip.png
│ │ ├── empty-data.png
│ │ ├── faceSuccess.png
│ │ ├── footlink.png
│ │ ├── icon-VIP.png
│ │ ├── icon-adopt.png
│ │ ├── icon-back-h.png
│ │ ├── icon-back.png
│ │ ├── icon-backtop.png
│ │ ├── icon-camera-h@2x.png
│ │ ├── icon-camera-n@2x.png
│ │ ├── icon-camera.png
│ │ ├── icon-card.png
│ │ ├── icon-close.png
│ │ ├── icon-collect-h.png
│ │ ├── icon-collect-n.png
│ │ ├── icon-crad.png
│ │ ├── icon-delete.png
│ │ ├── icon-forward-h.png
│ │ ├── icon-forward.png
│ │ ├── icon-guidepost.png
│ │ ├── icon-learning.png
│ │ ├── icon-like-h.png
│ │ ├── icon-like.png
│ │ ├── icon-lock.png
│ │ ├── icon-market.png
│ │ ├── icon-market@2x.png
│ │ ├── icon-member.png
│ │ ├── icon-message.png
│ │ ├── icon-mobile.png
│ │ ├── icon-play.png
│ │ ├── icon-qq.png
│ │ ├── icon-question.png
│ │ ├── icon-search.png
│ │ ├── icon-sign-n.png
│ │ ├── icon-top.png
│ │ ├── icon-unlock.png
│ │ ├── icon-video@2x.png
│ │ ├── icon-vote-h.png
│ │ ├── icon-vote-n.png
│ │ ├── icon-wechat.png
│ │ ├── icon-weibo.png
│ │ ├── icon-weixin.png
│ │ ├── icon-wepay.png
│ │ ├── icon-wexinpay.png
│ │ ├── icon-zfb.png
│ │ ├── icon-zfb@2x.png
│ │ ├── img-placeholder.png
│ │ ├── img-wrong.png
│ │ ├── login-banner.png
│ │ ├── logo@2x.png
│ │ ├── no-facecheck.png
│ │ ├── practice.png
│ │ ├── qq.svg
│ │ ├── share-wechat.png
│ │ ├── storehouse.png
│ │ ├── test.png
│ │ ├── tips-400.png
│ │ ├── tips-500.png
│ │ ├── upload.png
│ │ ├── virtual-test.png
│ │ └── wrong-book.png
│ │ ├── icon-back-n.png
│ │ ├── icon-back.png
│ │ ├── icon-delete-h.png
│ │ ├── icon-delete.png
│ │ ├── icon-handin.png
│ │ ├── member
│ │ ├── mock.png
│ │ ├── practice-collects.png
│ │ ├── practice.png
│ │ └── test.png
│ │ └── study
│ │ ├── banner.png
│ │ └── icon-mystudy.png
├── components
│ ├── back-top
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── code-login-bind-mobile
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── count-down
│ │ └── index.tsx
│ ├── course-comments
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── course-video-comments
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── duration
│ │ └── index.tsx
│ ├── empty
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── filter-categories
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── filter-scenes
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── footer
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── forget-password-dialog
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── header
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── image-preview
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── index.ts
│ ├── login-dailog
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── nav-member
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── page-box
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── private-route
│ │ └── index.tsx
│ ├── register-dialog
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── tencent-face-check
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── thumb-bar
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── vod-course-item
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── weixin-bind-mobile-dialog
│ │ ├── index.module.scss
│ │ └── index.tsx
│ └── weixin-login-dailog
│ │ ├── index.module.scss
│ │ └── index.tsx
├── index.scss
├── js
│ ├── address.ts
│ └── config.ts
├── main.tsx
├── meedu.d.ts
├── pages
│ ├── announcement
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── auth
│ │ ├── bindMobile.module.scss
│ │ ├── bindMobile.tsx
│ │ ├── faceCheck.module.scss
│ │ ├── faceCheck.tsx
│ │ └── loading.tsx
│ ├── error
│ │ ├── 404.tsx
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── index
│ │ ├── components
│ │ │ └── vod-v1
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── init
│ │ └── index.tsx
│ ├── layouts
│ │ ├── with-header-with-footer
│ │ │ └── index.tsx
│ │ ├── with-header-without-footer
│ │ │ └── index.tsx
│ │ ├── without-header-with-footer
│ │ │ └── index.tsx
│ │ └── without-header-without-footer
│ │ │ └── index.tsx
│ ├── loading
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── login
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── member
│ │ ├── components
│ │ │ ├── bind-mobile
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ ├── bind-new-mobile
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ ├── bind-weixin
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ ├── change-password
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ ├── destroy-user
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ ├── mobile-verify-dialog
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ └── profile
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ ├── credit1-free
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── index.module.scss
│ │ ├── index.tsx
│ │ ├── messages
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ └── orders
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ ├── order
│ │ ├── index.module.scss
│ │ ├── index.tsx
│ │ ├── pay.module.scss
│ │ ├── pay.tsx
│ │ ├── success.module.scss
│ │ └── success.tsx
│ ├── role
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── search
│ │ ├── index.module.scss
│ │ └── index.tsx
│ ├── study
│ │ ├── components
│ │ │ ├── course-item
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ └── detail-dialog
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ ├── index.module.scss
│ │ └── index.tsx
│ └── vod
│ │ ├── components
│ │ ├── detail
│ │ │ ├── video-chapter-list
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ │ └── video-list
│ │ │ │ ├── index.module.scss
│ │ │ │ └── index.tsx
│ │ └── video
│ │ │ ├── video-chapter-list
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ │ └── video-list
│ │ │ ├── index.module.scss
│ │ │ └── index.tsx
│ │ ├── detail.module.scss
│ │ ├── detail.tsx
│ │ ├── index.module.scss
│ │ ├── index.tsx
│ │ ├── video.module.scss
│ │ └── video.tsx
├── routes
│ └── index.tsx
├── store
│ ├── index.ts
│ ├── nav-menu
│ │ └── navMenuConfigSlice.ts
│ ├── system
│ │ └── systemConfigSlice.ts
│ └── user
│ │ └── loginUserSlice.ts
├── utils
│ └── index.ts
└── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.dockerignore:
--------------------------------------------------------------------------------
1 | /xyz.meedu.h5/node_modules/
2 | /xyz.meedu.h5/dist/
3 | /xyz.meedu.h5/README.md
4 |
5 | /xyz.meedu.pc/node_modules/
6 | /xyz.meedu.pc/dist/
7 | /xyz.meedu.pc/README.md
8 |
9 | /xyz.meedu.admin/node_modules/
10 | /xyz.meedu.admin/dist/
11 | /xyz.meedu.admin/README.md
12 |
13 | /xyz.meedu.api/vendor/
14 | /xyz.meedu.api/.env
15 | /xyz.meedu.api/.phpunit.result.cache
16 | /xyz.meedu.api/.php-cs-fixer.php
17 | /xyz.meedu.api/apidoc/
18 | /xyz.meedu.api/apidoc.json
19 | /xyz.meedu.api/README.md
20 | /xyz.meedu.api/.env.testing
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | # MySQL数据库配置
2 | DB_HOST=mysql
3 | DB_PORT=3306
4 | DB_USERNAME=root
5 | DB_PASSWORD=meeduxyz
6 | DB_DATABASE=meedu
7 |
8 | # Redis配置
9 | REDIS_HOST=redis
10 | REDIS_PASSWORD=F9nO2FzJ*%uDX58!
11 | REDIS_PORT=6379
12 |
13 | # MeEdu配置
14 | APP_KEY=base64:s9M5EmBWLWerXU/udZ8biH8GYGKBAEtatGNI2XnzEVM=
15 | JWT_SECRET=26tpIiNHtYE0YsXeDge837qfIXVmlOES8l9M2u9OTrCZ9NASZcqJdYXBaOSPeLsh
16 | QUEUE_DRIVER=sync
17 |
18 | # MeiliSearch配置
19 | MEILISEARCH_HOST=http://meilisearch:7700
20 | MEILISEARCH_KEY=
--------------------------------------------------------------------------------
/.github/SECURITY.md:
--------------------------------------------------------------------------------
1 |
2 | If you have feedback regarding a security vulnerability in meedu, please contact:
3 |
4 | Contact Name: Yongzhi Teng
5 | Contact Email: tengyongzhi@meedu.vip
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | *.log
3 | /.idea/
4 | /.vscode/
5 | LOCAL-TEST.md
6 | .env
--------------------------------------------------------------------------------
/docker/php/php-fpm.d/docker.conf:
--------------------------------------------------------------------------------
1 | [global]
2 | error_log = /proc/self/fd/2
3 |
4 | ; https://github.com/docker-library/php/pull/725#issuecomment-443540114
5 | log_limit = 8192
6 |
7 | [www]
8 | ; if we send this to /proc/self/fd/1, it never appears
9 | access.log = /proc/self/fd/2
10 |
11 | clear_env = no
12 |
13 | ; Ensure worker stdout and stderr are sent to the main error log.
14 | catch_workers_output = yes
15 | decorate_workers_output = no
16 |
--------------------------------------------------------------------------------
/docker/php/php-fpm.d/zz-docker.conf:
--------------------------------------------------------------------------------
1 | [global]
2 | daemonize = no
3 |
4 | [www]
5 | listen = 9000
6 |
--------------------------------------------------------------------------------
/xyz.meedu.admin/.env.example:
--------------------------------------------------------------------------------
1 | VITE_APP_URL=
--------------------------------------------------------------------------------
/xyz.meedu.admin/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
26 | package-lock.json
27 | yarn.lock
28 |
29 | .env.production
30 | .env.development
31 | .env
32 |
33 | template.php
34 |
35 | deploy-test.sh
36 | deploy-demo.sh
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/favicon.png
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_AMS-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Bold.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Fraktur-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Bold.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-BoldItalic.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Italic.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Main-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-BoldItalic.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Math-Italic.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Bold.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Italic.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_SansSerif-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Script-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size1-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size2-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size3-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Size4-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.ttf
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/js/katex/fonts/KaTeX_Typewriter-Regular.woff2
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/template/学员批量导入模板.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/template/学员批量导入模板.xlsx
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/template/试题批量导入模板.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/template/试题批量导入模板.xlsx
--------------------------------------------------------------------------------
/xyz.meedu.admin/public/template/课时批量导入模板.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qsnh/meedu/92c7e7944c01241937a3b788e493cc433d281617/xyz.meedu.admin/public/template/课时批量导入模板.xlsx
--------------------------------------------------------------------------------
/xyz.meedu.admin/src/App.scss:
--------------------------------------------------------------------------------
1 | #root {
2 | width: 100%;
3 | margin: 0 auto;
4 | text-align: center;
5 | }
6 |
7 | ::selection {
8 | background-color: #3ca7fa;
9 | color: white;
10 | }
--------------------------------------------------------------------------------
/xyz.meedu.admin/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { useRoutes } from "react-router-dom";
2 | import routes from "./routes";
3 | import "./App.scss";
4 | import { Suspense } from "react";
5 | import LoadingPage from "./pages/loading";
6 |
7 | function App() {
8 | const Views = () => useRoutes(routes);
9 |
10 | return (
11 |