From f565e68e43bc4024c94f753850f690094789c0b4 Mon Sep 17 00:00:00 2001 From: xiaochong0302 Date: Mon, 30 Mar 2020 19:35:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E8=B1=A1AuthUser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Caches/CourseRelatedList.php | 4 +- app/Caches/SectionConfig.php | 41 +++++++++ .../Admin/Controllers/CategoryController.php | 8 +- .../Admin/Controllers/ChapterController.php | 10 +-- .../Admin/Controllers/CommentController.php | 6 +- .../Admin/Controllers/ConfigController.php | 20 ++--- .../Admin/Controllers/ConsultController.php | 6 +- app/Http/Admin/Controllers/Controller.php | 4 +- .../Admin/Controllers/CourseController.php | 8 +- app/Http/Admin/Controllers/HelpController.php | 8 +- app/Http/Admin/Controllers/NavController.php | 8 +- .../Admin/Controllers/OrderController.php | 4 +- .../Admin/Controllers/PackageController.php | 8 +- app/Http/Admin/Controllers/PageController.php | 8 +- .../Admin/Controllers/PublicController.php | 10 +-- .../Admin/Controllers/RefundController.php | 2 +- .../Admin/Controllers/ReviewController.php | 6 +- app/Http/Admin/Controllers/RoleController.php | 8 +- .../Admin/Controllers/SessionController.php | 6 +- .../Admin/Controllers/SlideController.php | 8 +- .../Admin/Controllers/StudentController.php | 4 +- app/Http/Admin/Controllers/TestController.php | 28 +++---- .../Admin/Controllers/TopicController.php | 8 +- .../Admin/Controllers/TradeController.php | 4 +- .../Admin/Controllers/UploadController.php | 8 +- app/Http/Admin/Controllers/UserController.php | 4 +- app/Http/Admin/Controllers/VodController.php | 4 +- .../Admin/Controllers/XmCourseController.php | 4 +- app/Http/Admin/Module.php | 4 +- app/Http/Admin/Services/Config.php | 5 ++ app/Http/Admin/Services/Session.php | 7 +- app/Http/Admin/Views/public/login.volt | 2 +- app/Http/Api/Controllers/Controller.php | 4 + app/Http/Api/Module.php | 6 ++ app/Http/Api/Services/Service.php | 60 +------------- .../Home/Controllers/AccountController.php | 8 +- app/Http/Home/Controllers/Controller.php | 4 +- .../Home/Controllers/CourseController.php | 8 +- app/Http/Home/Controllers/ErrorController.php | 6 +- app/Http/Home/Controllers/MyController.php | 4 +- app/Http/Home/Controllers/OrderController.php | 4 +- .../Home/Controllers/PaymentController.php | 8 +- .../Home/Controllers/PublicController.php | 10 +-- .../Home/Controllers/ReviewController.php | 2 +- app/Http/Home/Module.php | 4 +- app/Http/Home/Services/Service.php | 36 +------- app/Library/Util/Verification.php | 43 ---------- app/Models/Account.php | 6 ++ app/Models/Config.php | 8 -- app/Repos/Order.php | 10 ++- app/Services/AuthUser.php | 16 ++++ .../AuthUser/Admin.php} | 52 ++++++------ app/Services/AuthUser/Api.php | 82 ++++++++++++++++++ .../AuthUser/Home.php} | 10 +-- app/Services/Frontend/Account/Login.php | 28 +++++++ app/Services/Frontend/Account/Logout.php | 20 +++++ .../{AccountCreate.php => Register.php} | 4 +- app/Services/Frontend/Course/CourseInfo.php | 4 +- app/Services/Frontend/Course/CourseList.php | 9 +- app/Services/Frontend/Course/PackageList.php | 8 +- app/Services/Frontend/Order/OrderCreate.php | 2 +- .../{TeacherCourseList.php => CourseList.php} | 6 +- app/Services/Frontend/Teacher/TeacherInfo.php | 52 ++++++++++++ app/Services/Mailer/Verify.php | 8 +- app/Services/Service.php | 6 +- app/Services/Smser/Verify.php | 6 +- app/Services/Verification.php | 83 +++++++++++++++++++ app/Traits/Ajax.php | 38 --------- app/Traits/Auth.php | 33 ++++++-- app/Traits/Client.php | 16 +++- app/Traits/Response.php | 69 +++++++++++++++ app/Traits/Security.php | 36 ++++++-- app/Validators/Order.php | 5 +- app/Validators/Security.php | 19 ++++- bootstrap/HttpErrorHandler.php | 2 +- 75 files changed, 710 insertions(+), 400 deletions(-) create mode 100644 app/Caches/SectionConfig.php delete mode 100644 app/Library/Util/Verification.php create mode 100644 app/Services/AuthUser.php rename app/{Http/Admin/Services/AuthUser.php => Services/AuthUser/Admin.php} (89%) create mode 100644 app/Services/AuthUser/Api.php rename app/{Http/Home/Services/AuthUser.php => Services/AuthUser/Home.php} (83%) create mode 100644 app/Services/Frontend/Account/Login.php create mode 100644 app/Services/Frontend/Account/Logout.php rename app/Services/Frontend/Account/{AccountCreate.php => Register.php} (91%) rename app/Services/Frontend/Teacher/{TeacherCourseList.php => CourseList.php} (88%) create mode 100644 app/Services/Frontend/Teacher/TeacherInfo.php create mode 100644 app/Services/Verification.php delete mode 100644 app/Traits/Ajax.php create mode 100644 app/Traits/Response.php diff --git a/app/Caches/CourseRelatedList.php b/app/Caches/CourseRelatedList.php index 8d75adff..6a4788ea 100644 --- a/app/Caches/CourseRelatedList.php +++ b/app/Caches/CourseRelatedList.php @@ -57,8 +57,8 @@ class CourseRelatedList extends Cache 'title' => $course->title, 'cover' => $course->cover, 'summary' => $course->summary, - 'market_price' => $course->market_price, - 'vip_price' => $course->vip_price, + 'market_price' => (float)$course->market_price, + 'vip_price' => (float)$course->vip_price, 'model' => $course->model, 'level' => $course->level, ]; diff --git a/app/Caches/SectionConfig.php b/app/Caches/SectionConfig.php new file mode 100644 index 00000000..8a158f77 --- /dev/null +++ b/app/Caches/SectionConfig.php @@ -0,0 +1,41 @@ +lifetime; + } + + public function getKey($id = null) + { + return "section_config:{$id}"; + } + + public function getContent($id = null) + { + $configRepo = new ConfigRepo(); + + $items = $configRepo->findAll(['section' => $id]); + + if ($items->count() == 0) { + return []; + } + + $result = []; + + foreach ($items as $item) { + $result[$item->item_key] = $item->item_value; + } + + return $result; + } + +} diff --git a/app/Http/Admin/Controllers/CategoryController.php b/app/Http/Admin/Controllers/CategoryController.php index 0462a8b7..fe5f6b9f 100644 --- a/app/Http/Admin/Controllers/CategoryController.php +++ b/app/Http/Admin/Controllers/CategoryController.php @@ -60,7 +60,7 @@ class CategoryController extends Controller 'msg' => '创建分类成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -96,7 +96,7 @@ class CategoryController extends Controller 'msg' => '更新分类成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -115,7 +115,7 @@ class CategoryController extends Controller 'msg' => '删除分类成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -134,7 +134,7 @@ class CategoryController extends Controller 'msg' => '还原分类成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/ChapterController.php b/app/Http/Admin/Controllers/ChapterController.php index d050cd72..57638299 100644 --- a/app/Http/Admin/Controllers/ChapterController.php +++ b/app/Http/Admin/Controllers/ChapterController.php @@ -75,7 +75,7 @@ class ChapterController extends Controller 'msg' => '创建章节成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -148,7 +148,7 @@ class ChapterController extends Controller 'msg' => '更新章节成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -167,7 +167,7 @@ class ChapterController extends Controller 'msg' => '删除章节成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -186,7 +186,7 @@ class ChapterController extends Controller 'msg' => '删除章节成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -212,7 +212,7 @@ class ChapterController extends Controller 'msg' => '更新课时内容成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/CommentController.php b/app/Http/Admin/Controllers/CommentController.php index 5271ec20..03d5b392 100644 --- a/app/Http/Admin/Controllers/CommentController.php +++ b/app/Http/Admin/Controllers/CommentController.php @@ -76,7 +76,7 @@ class CommentController extends Controller 'msg' => '更新评论成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -95,7 +95,7 @@ class CommentController extends Controller 'msg' => '删除评论成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } @@ -115,7 +115,7 @@ class CommentController extends Controller 'msg' => '还原评论成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/ConfigController.php b/app/Http/Admin/Controllers/ConfigController.php index 9682a3b1..4de95123 100644 --- a/app/Http/Admin/Controllers/ConfigController.php +++ b/app/Http/Admin/Controllers/ConfigController.php @@ -25,7 +25,7 @@ class ConfigController extends Controller $configService->updateSectionConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -50,7 +50,7 @@ class ConfigController extends Controller $configService->updateStorageConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -75,7 +75,7 @@ class ConfigController extends Controller $configService->updateStorageConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -100,7 +100,7 @@ class ConfigController extends Controller $configService->updateVodConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -125,7 +125,7 @@ class ConfigController extends Controller $configService->updateLiveConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -153,7 +153,7 @@ class ConfigController extends Controller $configService->updateSectionConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -180,7 +180,7 @@ class ConfigController extends Controller $configService->updateSmserConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -208,7 +208,7 @@ class ConfigController extends Controller $configService->updateSectionConfig($section, $data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { @@ -238,7 +238,7 @@ class ConfigController extends Controller 'msg' => '更新配置成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } else { @@ -261,7 +261,7 @@ class ConfigController extends Controller $configService->updateVipConfig($data); - return $this->ajaxSuccess(['msg' => '更新配置成功']); + return $this->jsonSuccess(['msg' => '更新配置成功']); } else { diff --git a/app/Http/Admin/Controllers/ConsultController.php b/app/Http/Admin/Controllers/ConsultController.php index 94524ea3..ae1e39a2 100644 --- a/app/Http/Admin/Controllers/ConsultController.php +++ b/app/Http/Admin/Controllers/ConsultController.php @@ -64,7 +64,7 @@ class ConsultController extends Controller 'msg' => '更新咨询成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -83,7 +83,7 @@ class ConsultController extends Controller 'msg' => '删除咨询成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -102,7 +102,7 @@ class ConsultController extends Controller 'msg' => '还原咨询成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/Controller.php b/app/Http/Admin/Controllers/Controller.php index 3e40ab3c..510ee9f2 100644 --- a/app/Http/Admin/Controllers/Controller.php +++ b/app/Http/Admin/Controllers/Controller.php @@ -3,7 +3,7 @@ namespace App\Http\Admin\Controllers; use App\Models\Audit as AuditModel; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; use App\Traits\Security as SecurityTrait; use Phalcon\Mvc\Dispatcher; @@ -12,7 +12,7 @@ class Controller extends \Phalcon\Mvc\Controller protected $authUser; - use AjaxTrait, SecurityTrait; + use ResponseTrait, SecurityTrait; public function beforeExecuteRoute(Dispatcher $dispatcher) { diff --git a/app/Http/Admin/Controllers/CourseController.php b/app/Http/Admin/Controllers/CourseController.php index 23fe8a4d..8e0612f9 100644 --- a/app/Http/Admin/Controllers/CourseController.php +++ b/app/Http/Admin/Controllers/CourseController.php @@ -61,7 +61,7 @@ class CourseController extends Controller 'msg' => '创建课程成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -97,7 +97,7 @@ class CourseController extends Controller $content = ['msg' => '更新课程成功']; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -114,7 +114,7 @@ class CourseController extends Controller 'msg' => '删除课程成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -131,7 +131,7 @@ class CourseController extends Controller 'msg' => '还原课程成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** diff --git a/app/Http/Admin/Controllers/HelpController.php b/app/Http/Admin/Controllers/HelpController.php index ccbb1e27..42ced0e3 100644 --- a/app/Http/Admin/Controllers/HelpController.php +++ b/app/Http/Admin/Controllers/HelpController.php @@ -46,7 +46,7 @@ class HelpController extends Controller 'msg' => '创建帮助成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -77,7 +77,7 @@ class HelpController extends Controller 'msg' => '更新帮助成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -96,7 +96,7 @@ class HelpController extends Controller 'msg' => '删除帮助成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -115,7 +115,7 @@ class HelpController extends Controller 'msg' => '还原帮助成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/NavController.php b/app/Http/Admin/Controllers/NavController.php index a06922d2..ea29112a 100644 --- a/app/Http/Admin/Controllers/NavController.php +++ b/app/Http/Admin/Controllers/NavController.php @@ -60,7 +60,7 @@ class NavController extends Controller 'msg' => '创建导航成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -96,7 +96,7 @@ class NavController extends Controller 'msg' => '更新导航成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -115,7 +115,7 @@ class NavController extends Controller 'msg' => '删除导航成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -134,7 +134,7 @@ class NavController extends Controller 'msg' => '还原导航成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/OrderController.php b/app/Http/Admin/Controllers/OrderController.php index 8e3bbf9d..ae85b4da 100644 --- a/app/Http/Admin/Controllers/OrderController.php +++ b/app/Http/Admin/Controllers/OrderController.php @@ -66,7 +66,7 @@ class OrderController extends Controller 'msg' => '关闭订单成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -87,7 +87,7 @@ class OrderController extends Controller 'msg' => '订单退款成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/PackageController.php b/app/Http/Admin/Controllers/PackageController.php index 864b7814..5850ae87 100644 --- a/app/Http/Admin/Controllers/PackageController.php +++ b/app/Http/Admin/Controllers/PackageController.php @@ -65,7 +65,7 @@ class PackageController extends Controller 'msg' => '创建套餐成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -93,7 +93,7 @@ class PackageController extends Controller $content = ['msg' => '更新套餐成功']; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -110,7 +110,7 @@ class PackageController extends Controller 'msg' => '删除套餐成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -127,7 +127,7 @@ class PackageController extends Controller 'msg' => '还原套餐成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/PageController.php b/app/Http/Admin/Controllers/PageController.php index 6d4f7bd1..be0c4364 100644 --- a/app/Http/Admin/Controllers/PageController.php +++ b/app/Http/Admin/Controllers/PageController.php @@ -46,7 +46,7 @@ class PageController extends Controller 'msg' => '创建单页成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -77,7 +77,7 @@ class PageController extends Controller 'msg' => '更新单页成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -96,7 +96,7 @@ class PageController extends Controller 'msg' => '删除单页成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -115,7 +115,7 @@ class PageController extends Controller 'msg' => '还原单页成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/PublicController.php b/app/Http/Admin/Controllers/PublicController.php index dbceb597..f991137e 100644 --- a/app/Http/Admin/Controllers/PublicController.php +++ b/app/Http/Admin/Controllers/PublicController.php @@ -2,7 +2,7 @@ namespace App\Http\Admin\Controllers; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; /** * @RoutePrefix("/admin") @@ -10,7 +10,7 @@ use App\Traits\Ajax as AjaxTrait; class PublicController extends \Phalcon\Mvc\Controller { - use AjaxTrait; + use ResponseTrait; /** * @Route("/auth", name="admin.auth") @@ -18,7 +18,7 @@ class PublicController extends \Phalcon\Mvc\Controller public function authAction() { if ($this->request->isAjax()) { - return $this->ajaxError(['msg' => '会话已过期,请重新登录']); + return $this->jsonError(['msg' => '会话已过期,请重新登录']); } $this->response->redirect(['for' => 'admin.login']); @@ -30,7 +30,7 @@ class PublicController extends \Phalcon\Mvc\Controller public function robotAction() { if ($this->request->isAjax()) { - return $this->ajaxError(['msg' => '疑似机器人请求']); + return $this->jsonError(['msg' => '疑似机器人请求']); } } @@ -40,7 +40,7 @@ class PublicController extends \Phalcon\Mvc\Controller public function forbiddenAction() { if ($this->request->isAjax()) { - return $this->ajaxError(['msg' => '无相关操作权限']); + return $this->jsonError(['msg' => '无相关操作权限']); } } diff --git a/app/Http/Admin/Controllers/RefundController.php b/app/Http/Admin/Controllers/RefundController.php index 26e66a20..7901929a 100644 --- a/app/Http/Admin/Controllers/RefundController.php +++ b/app/Http/Admin/Controllers/RefundController.php @@ -66,7 +66,7 @@ class RefundController extends Controller 'msg' => '审核退款成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/ReviewController.php b/app/Http/Admin/Controllers/ReviewController.php index 456ccd29..e8375ca8 100644 --- a/app/Http/Admin/Controllers/ReviewController.php +++ b/app/Http/Admin/Controllers/ReviewController.php @@ -64,7 +64,7 @@ class ReviewController extends Controller 'msg' => '更新评价成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -83,7 +83,7 @@ class ReviewController extends Controller 'msg' => '删除评价成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -102,7 +102,7 @@ class ReviewController extends Controller 'msg' => '还原评价成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/RoleController.php b/app/Http/Admin/Controllers/RoleController.php index 9f5845b4..df2979f3 100644 --- a/app/Http/Admin/Controllers/RoleController.php +++ b/app/Http/Admin/Controllers/RoleController.php @@ -49,7 +49,7 @@ class RoleController extends Controller 'msg' => '创建角色成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -82,7 +82,7 @@ class RoleController extends Controller 'msg' => '更新角色成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -101,7 +101,7 @@ class RoleController extends Controller 'msg' => '删除角色成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -120,7 +120,7 @@ class RoleController extends Controller 'msg' => '还原角色成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/SessionController.php b/app/Http/Admin/Controllers/SessionController.php index d1e8ec9f..734af793 100644 --- a/app/Http/Admin/Controllers/SessionController.php +++ b/app/Http/Admin/Controllers/SessionController.php @@ -4,7 +4,7 @@ namespace App\Http\Admin\Controllers; use App\Http\Admin\Services\Config as ConfigService; use App\Http\Admin\Services\Session as SessionService; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; use App\Traits\Security as SecurityTrait; /** @@ -13,7 +13,7 @@ use App\Traits\Security as SecurityTrait; class SessionController extends \Phalcon\Mvc\Controller { - use AjaxTrait; + use ResponseTrait; use SecurityTrait; /** @@ -37,7 +37,7 @@ class SessionController extends \Phalcon\Mvc\Controller $location = $this->url->get(['for' => 'admin.index']); - return $this->ajaxSuccess(['location' => $location]); + return $this->jsonSuccess(['location' => $location]); } $configService = new ConfigService(); diff --git a/app/Http/Admin/Controllers/SlideController.php b/app/Http/Admin/Controllers/SlideController.php index 342c12ad..8369c875 100644 --- a/app/Http/Admin/Controllers/SlideController.php +++ b/app/Http/Admin/Controllers/SlideController.php @@ -49,7 +49,7 @@ class SlideController extends Controller 'msg' => '创建轮播成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -80,7 +80,7 @@ class SlideController extends Controller 'msg' => '更新轮播成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -99,7 +99,7 @@ class SlideController extends Controller 'msg' => '删除轮播成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -118,7 +118,7 @@ class SlideController extends Controller 'msg' => '还原轮播成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/StudentController.php b/app/Http/Admin/Controllers/StudentController.php index 1244d99e..38da8553 100644 --- a/app/Http/Admin/Controllers/StudentController.php +++ b/app/Http/Admin/Controllers/StudentController.php @@ -76,7 +76,7 @@ class StudentController extends Controller 'msg' => '添加学员成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -113,7 +113,7 @@ class StudentController extends Controller 'msg' => '更新学员成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** diff --git a/app/Http/Admin/Controllers/TestController.php b/app/Http/Admin/Controllers/TestController.php index 59411b6e..1d95ac89 100644 --- a/app/Http/Admin/Controllers/TestController.php +++ b/app/Http/Admin/Controllers/TestController.php @@ -29,9 +29,9 @@ class TestController extends Controller $result = $storageService->uploadTestFile(); if ($result) { - return $this->ajaxSuccess(['msg' => '上传文件成功,请到控制台确认']); + return $this->jsonSuccess(['msg' => '上传文件成功,请到控制台确认']); } else { - return $this->ajaxError(['msg' => '上传文件失败,请检查相关配置']); + return $this->jsonError(['msg' => '上传文件失败,请检查相关配置']); } } @@ -45,9 +45,9 @@ class TestController extends Controller $result = $vodService->test(); if ($result) { - return $this->ajaxSuccess(['msg' => '接口返回成功']); + return $this->jsonSuccess(['msg' => '接口返回成功']); } else { - return $this->ajaxError(['msg' => '接口返回失败,请检查相关配置']); + return $this->jsonError(['msg' => '接口返回失败,请检查相关配置']); } } @@ -107,9 +107,9 @@ class TestController extends Controller $response = $smserService->handle($phone); if ($response) { - return $this->ajaxSuccess(['msg' => '发送短信成功,请到收件箱确认']); + return $this->jsonSuccess(['msg' => '发送短信成功,请到收件箱确认']); } else { - return $this->ajaxError(['msg' => '发送短信失败,请查看短信日志']); + return $this->jsonError(['msg' => '发送短信失败,请查看短信日志']); } } @@ -125,9 +125,9 @@ class TestController extends Controller $result = $mailerService->handle($email); if ($result) { - return $this->ajaxSuccess(['msg' => '发送邮件成功,请到收件箱确认']); + return $this->jsonSuccess(['msg' => '发送邮件成功,请到收件箱确认']); } else { - return $this->ajaxError(['msg' => '发送邮件失败,请检查配置']); + return $this->jsonError(['msg' => '发送邮件失败,请检查配置']); } } @@ -148,10 +148,10 @@ class TestController extends Controller $configService->updateSectionConfig('captcha', ['enabled' => 1]); - return $this->ajaxSuccess(['msg' => '后台验证成功']); + return $this->jsonSuccess(['msg' => '后台验证成功']); } else { - return $this->ajaxError(['msg' => '后台验证失败']); + return $this->jsonError(['msg' => '后台验证失败']); } } @@ -200,7 +200,7 @@ class TestController extends Controller $status = $alipayTestService->status($tradeSn); - return $this->ajaxSuccess(['status' => $status]); + return $this->jsonSuccess(['status' => $status]); } /** @@ -214,7 +214,7 @@ class TestController extends Controller $alipayTestService->cancel($tradeSn); - return $this->ajaxSuccess(['msg' => '取消订单成功']); + return $this->jsonSuccess(['msg' => '取消订单成功']); } /** @@ -253,7 +253,7 @@ class TestController extends Controller $status = $wxpayTestService->status($tradeSn); - return $this->ajaxSuccess(['status' => $status]); + return $this->jsonSuccess(['status' => $status]); } /** @@ -267,7 +267,7 @@ class TestController extends Controller $wxpayTestService->cancel($tradeSn); - return $this->ajaxSuccess(['msg' => '取消订单成功']); + return $this->jsonSuccess(['msg' => '取消订单成功']); } } diff --git a/app/Http/Admin/Controllers/TopicController.php b/app/Http/Admin/Controllers/TopicController.php index 1c94ef80..02d08f30 100644 --- a/app/Http/Admin/Controllers/TopicController.php +++ b/app/Http/Admin/Controllers/TopicController.php @@ -49,7 +49,7 @@ class TopicController extends Controller 'msg' => '创建话题成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -77,7 +77,7 @@ class TopicController extends Controller $content = ['msg' => '更新话题成功']; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -94,7 +94,7 @@ class TopicController extends Controller 'msg' => '删除话题成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -111,7 +111,7 @@ class TopicController extends Controller 'msg' => '还原话题成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/TradeController.php b/app/Http/Admin/Controllers/TradeController.php index d180abb8..44ec58d8 100644 --- a/app/Http/Admin/Controllers/TradeController.php +++ b/app/Http/Admin/Controllers/TradeController.php @@ -66,7 +66,7 @@ class TradeController extends Controller 'msg' => '关闭交易成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -85,7 +85,7 @@ class TradeController extends Controller 'msg' => '申请退款成功,请到退款管理中审核确认', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/UploadController.php b/app/Http/Admin/Controllers/UploadController.php index 196c098f..f9af86e5 100644 --- a/app/Http/Admin/Controllers/UploadController.php +++ b/app/Http/Admin/Controllers/UploadController.php @@ -22,9 +22,9 @@ class UploadController extends Controller $url = $storageService->getCiImageUrl($key); if ($url) { - return $this->ajaxSuccess(['data' => ['src' => $url, 'title' => '']]); + return $this->jsonSuccess(['data' => ['src' => $url, 'title' => '']]); } else { - return $this->ajaxError(['msg' => '上传文件失败']); + return $this->jsonError(['msg' => '上传文件失败']); } } @@ -38,9 +38,9 @@ class UploadController extends Controller $url = $storageService->uploadContentImage(); if ($url) { - return $this->ajaxSuccess(['data' => ['src' => $url, 'title' => '']]); + return $this->jsonSuccess(['data' => ['src' => $url, 'title' => '']]); } else { - return $this->ajaxError(['msg' => '上传文件失败']); + return $this->jsonError(['msg' => '上传文件失败']); } } diff --git a/app/Http/Admin/Controllers/UserController.php b/app/Http/Admin/Controllers/UserController.php index 51011de7..84a6ccdc 100644 --- a/app/Http/Admin/Controllers/UserController.php +++ b/app/Http/Admin/Controllers/UserController.php @@ -70,7 +70,7 @@ class UserController extends Controller 'msg' => '新增用户成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } /** @@ -111,7 +111,7 @@ class UserController extends Controller 'msg' => '更新用户成功', ]; - return $this->ajaxSuccess($content); + return $this->jsonSuccess($content); } } diff --git a/app/Http/Admin/Controllers/VodController.php b/app/Http/Admin/Controllers/VodController.php index 0f63c89c..9b7db5af 100644 --- a/app/Http/Admin/Controllers/VodController.php +++ b/app/Http/Admin/Controllers/VodController.php @@ -22,7 +22,7 @@ class VodController extends Controller $signature = $vodService->getUploadSignature(); - return $this->ajaxSuccess(['signature' => $signature]); + return $this->jsonSuccess(['signature' => $signature]); } /** @@ -59,7 +59,7 @@ class VodController extends Controller $syncerService->addItem($learning, $query['timeout']); - return $this->ajaxSuccess(); + return $this->jsonSuccess(); } } diff --git a/app/Http/Admin/Controllers/XmCourseController.php b/app/Http/Admin/Controllers/XmCourseController.php index d470bb0e..b186843c 100644 --- a/app/Http/Admin/Controllers/XmCourseController.php +++ b/app/Http/Admin/Controllers/XmCourseController.php @@ -19,7 +19,7 @@ class XmCourseController extends Controller $pager = $xmCourseService->getAllCourses(); - return $this->ajaxSuccess([ + return $this->jsonSuccess([ 'count' => $pager->total_items, 'data' => $pager->items, ]); @@ -34,7 +34,7 @@ class XmCourseController extends Controller $pager = $xmCourseService->getPaidCourses(); - return $this->ajaxSuccess([ + return $this->jsonSuccess([ 'count' => $pager->total_items, 'data' => $pager->items, ]); diff --git a/app/Http/Admin/Module.php b/app/Http/Admin/Module.php index c7e46068..c083f249 100644 --- a/app/Http/Admin/Module.php +++ b/app/Http/Admin/Module.php @@ -2,7 +2,7 @@ namespace App\Http\Admin; -use App\Http\Admin\Services\AuthUser; +use App\Services\AuthUser\Admin as AdminAuthUser; use Phalcon\DiInterface; use Phalcon\Mvc\ModuleDefinitionInterface; use Phalcon\Mvc\View; @@ -27,7 +27,7 @@ class Module implements ModuleDefinitionInterface }); $di->setShared('auth', function () { - $authUser = new AuthUser(); + $authUser = new AdminAuthUser(); return $authUser; }); } diff --git a/app/Http/Admin/Services/Config.php b/app/Http/Admin/Services/Config.php index e33ae55b..c2f5a59e 100644 --- a/app/Http/Admin/Services/Config.php +++ b/app/Http/Admin/Services/Config.php @@ -2,6 +2,7 @@ namespace App\Http\Admin\Services; +use App\Caches\SectionConfig as SectionConfigCache; use App\Repos\Config as ConfigRepo; use App\Repos\Vip as VipRepo; @@ -36,6 +37,10 @@ class Config extends Service $item->update(); } } + + $cache = new SectionConfigCache(); + + $cache->rebuild($section); } public function updateStorageConfig($section, $config) diff --git a/app/Http/Admin/Services/Session.php b/app/Http/Admin/Services/Session.php index b022988b..846eafee 100644 --- a/app/Http/Admin/Services/Session.php +++ b/app/Http/Admin/Services/Session.php @@ -2,6 +2,7 @@ namespace App\Http\Admin\Services; +use App\Services\AuthUser as AuthUserService; use App\Validators\Account as AccountValidator; use App\Validators\Security as SecurityValidator; @@ -9,7 +10,7 @@ class Session extends Service { /** - * @var AuthUser + * @var AuthUserService */ protected $auth; @@ -39,12 +40,12 @@ class Session extends Service $securityValidator->checkCaptchaCode($post['ticket'], $post['rand']); } - $this->auth->setAuthInfo($user); + $this->auth->saveAuthInfo($user); } public function logout() { - $this->auth->removeAuthInfo(); + $this->auth->clearAuthInfo(); } } diff --git a/app/Http/Admin/Views/public/login.volt b/app/Http/Admin/Views/public/login.volt index 2021b0c0..c1f68508 100644 --- a/app/Http/Admin/Views/public/login.volt +++ b/app/Http/Admin/Views/public/login.volt @@ -40,7 +40,7 @@ diff --git a/app/Http/Api/Controllers/Controller.php b/app/Http/Api/Controllers/Controller.php index 68757f2d..51a59722 100644 --- a/app/Http/Api/Controllers/Controller.php +++ b/app/Http/Api/Controllers/Controller.php @@ -2,9 +2,13 @@ namespace App\Http\Api\Controllers; +use App\Traits\Response as ResponseTrait; + class Controller extends \Phalcon\Mvc\Controller { + use ResponseTrait; + public function initialize() { diff --git a/app/Http/Api/Module.php b/app/Http/Api/Module.php index 1df5f68e..49f43c50 100644 --- a/app/Http/Api/Module.php +++ b/app/Http/Api/Module.php @@ -2,6 +2,7 @@ namespace App\Http\Api; +use App\Services\AuthUser\Home as ApiAuthUser; use Phalcon\DiInterface; use Phalcon\Mvc\ModuleDefinitionInterface; use Phalcon\Mvc\View; @@ -21,5 +22,10 @@ class Module implements ModuleDefinitionInterface $view->disable(); return $view; }); + + $di->setShared('auth', function () { + $authUser = new ApiAuthUser(); + return $authUser; + }); } } diff --git a/app/Http/Api/Services/Service.php b/app/Http/Api/Services/Service.php index 57662528..f2575fb4 100644 --- a/app/Http/Api/Services/Service.php +++ b/app/Http/Api/Services/Service.php @@ -2,68 +2,12 @@ namespace App\Http\Api\Services; -use App\Models\User as UserModel; -use App\Repos\User as UserRepo; -use App\Validators\Filter as BaseFilter; +use App\Traits\Auth as AuthTrait; use Phalcon\Mvc\User\Component; - class Service extends Component { - public function getCurrentUser() - { - $token = $this->getAuthToken(); - - return $token ? $this->getUser($token) : $this->getGuest(); - } - - public function getLoggedUser() - { - $token = $this->getAuthToken(); - - $filter = new BaseFilter(); - - $filter->checkAuthToken($token); - - $user = $this->getUser($token); - - $filter->checkAuthUser($user); - - return $user; - } - - private function getAuthToken() - { - $token = null; - - if ($this->cookies->has('token')) { - - $cookie = $this->cookies->get('token'); - - $token = $cookie->getValue(); - } - - return $token; - } - - private function getGuest() - { - $guest = new UserModel(); - - $guest->id = 0; - $guest->name = 'guest'; - - return $guest; - } - - private function getUser($token) - { - $userRepo = new UserRepo(); - - $user = $userRepo->findById($token); - - return $user; - } + use AuthTrait; } diff --git a/app/Http/Home/Controllers/AccountController.php b/app/Http/Home/Controllers/AccountController.php index 26239a9b..928dbc05 100644 --- a/app/Http/Home/Controllers/AccountController.php +++ b/app/Http/Home/Controllers/AccountController.php @@ -59,7 +59,7 @@ class AccountController extends Controller $service->resetPassword(); - return $this->ajaxSuccess(); + return $this->jsonSuccess(); } /** @@ -71,7 +71,7 @@ class AccountController extends Controller $service->updateMobile(); - return $this->ajaxSuccess(); + return $this->jsonSuccess(); } /** @@ -83,7 +83,7 @@ class AccountController extends Controller $service->updatePassword(); - return $this->ajaxSuccess(); + return $this->jsonSuccess(); } /** @@ -95,7 +95,7 @@ class AccountController extends Controller $service->sendCaptcha(); - return $this->ajaxSuccess(); + return $this->jsonSuccess(); } } diff --git a/app/Http/Home/Controllers/Controller.php b/app/Http/Home/Controllers/Controller.php index 013a4beb..e2f9e10d 100644 --- a/app/Http/Home/Controllers/Controller.php +++ b/app/Http/Home/Controllers/Controller.php @@ -4,7 +4,7 @@ namespace App\Http\Home\Controllers; use App\Caches\Config as ConfigCache; use App\Caches\NavTreeList as NavTreeListCache; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; use App\Traits\Security as SecurityTrait; use Phalcon\Mvc\Dispatcher; @@ -15,7 +15,7 @@ class Controller extends \Phalcon\Mvc\Controller protected $navList; protected $authUser; - use AjaxTrait, SecurityTrait; + use ResponseTrait, SecurityTrait; public function beforeExecuteRoute(Dispatcher $dispatcher) { diff --git a/app/Http/Home/Controllers/CourseController.php b/app/Http/Home/Controllers/CourseController.php index 9a815fd2..613d6e25 100644 --- a/app/Http/Home/Controllers/CourseController.php +++ b/app/Http/Home/Controllers/CourseController.php @@ -23,7 +23,7 @@ class CourseController extends Controller $pager = $courseListService->getCourses(); - return $this->ajaxSuccess(['pager' => $pager]); + return $this->jsonSuccess(['pager' => $pager]); $this->view->setVar('pager', $pager); } @@ -37,7 +37,7 @@ class CourseController extends Controller $course = $courseService->getCourse($id); - return $this->ajaxSuccess(['course' => $course]); + return $this->jsonSuccess(['course' => $course]); $this->view->setVar('course', $course); } @@ -51,7 +51,7 @@ class CourseController extends Controller $courses = $relatedService->getRelated($id); - return $this->ajaxSuccess(['courses' => $courses]); + return $this->jsonSuccess(['courses' => $courses]); $this->view->setVar('course', $course); } @@ -65,7 +65,7 @@ class CourseController extends Controller $pager = $reviewService->getReviews($id); - return $this->ajaxSuccess(['pager' => $pager]); + return $this->jsonSuccess(['pager' => $pager]); $this->view->setVar('pager', $pager); } diff --git a/app/Http/Home/Controllers/ErrorController.php b/app/Http/Home/Controllers/ErrorController.php index ff05bbfe..ffcde76e 100644 --- a/app/Http/Home/Controllers/ErrorController.php +++ b/app/Http/Home/Controllers/ErrorController.php @@ -2,7 +2,7 @@ namespace App\Http\Home\Controllers; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; use Phalcon\Mvc\View; /** @@ -11,7 +11,7 @@ use Phalcon\Mvc\View; class ErrorController extends \Phalcon\Mvc\Controller { - use AjaxTrait; + use ResponseTrait; public function initialize() { @@ -50,7 +50,7 @@ class ErrorController extends \Phalcon\Mvc\Controller $this->response->setStatusCode(404); if ($this->request->isAjax()) { - return $this->ajaxError(['code' => 'sys.uri_not_found']); + return $this->jsonError(['code' => 'sys.uri_not_found']); } } diff --git a/app/Http/Home/Controllers/MyController.php b/app/Http/Home/Controllers/MyController.php index 416c0a2a..972aa403 100644 --- a/app/Http/Home/Controllers/MyController.php +++ b/app/Http/Home/Controllers/MyController.php @@ -58,8 +58,8 @@ class MyController extends Controller $orders = $service->getOrders(); $this->view->orders = $orders; - - return $this->ajaxSuccess($orders); + + return $this->jsonSuccess($orders); } /** diff --git a/app/Http/Home/Controllers/OrderController.php b/app/Http/Home/Controllers/OrderController.php index 3774077b..7bc080a3 100644 --- a/app/Http/Home/Controllers/OrderController.php +++ b/app/Http/Home/Controllers/OrderController.php @@ -78,7 +78,7 @@ class OrderController extends Controller $this->view->order = $order; $this->view->orderItems = $orderItems; - return $this->ajaxSuccess($order->toArray()); + return $this->jsonSuccess($order->toArray()); } /** @@ -136,7 +136,7 @@ class OrderController extends Controller $order = $service->cancel(); - return $this->ajaxSuccess($order->toArray()); + return $this->jsonSuccess($order->toArray()); } } diff --git a/app/Http/Home/Controllers/PaymentController.php b/app/Http/Home/Controllers/PaymentController.php index a5105e77..0266c938 100644 --- a/app/Http/Home/Controllers/PaymentController.php +++ b/app/Http/Home/Controllers/PaymentController.php @@ -4,12 +4,12 @@ namespace App\Http\Home\Controllers; use App\Services\Payment\Alipay as AlipayService; use App\Services\Payment\Wxpay as WxpayService; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; class PaymentController extends \Phalcon\Mvc\Controller { - use AjaxTrait; + use ResponseTrait; /** * @Post("/alipay/notify", name="home.alipay.notify") @@ -54,7 +54,7 @@ class PaymentController extends \Phalcon\Mvc\Controller $status = $alipayService->status($sn); - return $this->ajaxSuccess(['status' => $status]); + return $this->jsonSuccess(['status' => $status]); } /** @@ -68,7 +68,7 @@ class PaymentController extends \Phalcon\Mvc\Controller $status = $wxpayService->status($sn); - return $this->ajaxSuccess(['status' => $status]); + return $this->jsonSuccess(['status' => $status]); } } diff --git a/app/Http/Home/Controllers/PublicController.php b/app/Http/Home/Controllers/PublicController.php index 14af4b9a..9f2b2f17 100644 --- a/app/Http/Home/Controllers/PublicController.php +++ b/app/Http/Home/Controllers/PublicController.php @@ -4,13 +4,13 @@ namespace App\Http\Home\Controllers; use App\Models\ContentImage as ContentImageModel; use App\Services\Storage as StorageService; -use App\Traits\Ajax as AjaxTrait; +use App\Traits\Response as ResponseTrait; use PHPQRCode\QRcode; class PublicController extends \Phalcon\Mvc\Controller { - use AjaxTrait; + use ResponseTrait; /** * @Route("/auth", name="home.auth") @@ -18,7 +18,7 @@ class PublicController extends \Phalcon\Mvc\Controller public function authAction() { if ($this->request->isAjax()) { - return $this->ajaxError(['msg' => '会话已过期,请重新登录']); + return $this->jsonError(['msg' => '会话已过期,请重新登录']); } $this->response->redirect(['for' => 'home.login']); @@ -30,7 +30,7 @@ class PublicController extends \Phalcon\Mvc\Controller public function robotAction() { if ($this->request->isAjax()) { - return $this->ajaxError(['msg' => '疑似机器人请求']); + return $this->jsonError(['msg' => '疑似机器人请求']); } } @@ -40,7 +40,7 @@ class PublicController extends \Phalcon\Mvc\Controller public function forbiddenAction() { if ($this->request->isAjax()) { - return $this->ajaxError(['msg' => '无相关操作权限']); + return $this->jsonError(['msg' => '无相关操作权限']); } } diff --git a/app/Http/Home/Controllers/ReviewController.php b/app/Http/Home/Controllers/ReviewController.php index 8a15c34a..2e4e2572 100644 --- a/app/Http/Home/Controllers/ReviewController.php +++ b/app/Http/Home/Controllers/ReviewController.php @@ -21,7 +21,7 @@ class ReviewController extends Controller $data = $service->getReview($review->id); - return $this->ajaxSuccess($data); + return $this->jsonSuccess($data); } /** diff --git a/app/Http/Home/Module.php b/app/Http/Home/Module.php index 646fe4ca..780c73fc 100644 --- a/app/Http/Home/Module.php +++ b/app/Http/Home/Module.php @@ -2,7 +2,7 @@ namespace App\Http\Home; -use App\Http\Home\Services\AuthUser; +use App\Services\AuthUser\Home as HomeAuthUser; use Phalcon\DiInterface; use Phalcon\Mvc\ModuleDefinitionInterface; use Phalcon\Mvc\View; @@ -27,7 +27,7 @@ class Module implements ModuleDefinitionInterface }); $di->setShared('auth', function () { - $authUser = new AuthUser(); + $authUser = new HomeAuthUser(); return $authUser; }); } diff --git a/app/Http/Home/Services/Service.php b/app/Http/Home/Services/Service.php index 8794c66a..e0f91438 100644 --- a/app/Http/Home/Services/Service.php +++ b/app/Http/Home/Services/Service.php @@ -2,44 +2,12 @@ namespace App\Http\Home\Services; -use App\Models\User as UserModel; -use App\Validators\Validator as AppValidator; +use App\Traits\Auth as AuthTrait; use Phalcon\Mvc\User\Component; class Service extends Component { - public function getCurrentUser() - { - $authUser = $this->getAuthUser(); - - if ($authUser) { - $user = UserModel::findFirst($authUser->id); - } else { - $user = new UserModel(); - } - - return $user; - } - - public function getLoginUser() - { - $authUser = $this->getAuthUser(); - - $validator = new AppValidator(); - - $validator->checkAuthUser($authUser); - - $user = UserModel::findFirst($authUser->id); - - return $user; - } - - public function getAuthUser() - { - $auth = $this->getDI()->get('auth'); - - return $auth->getAuthInfo(); - } + use AuthTrait; } diff --git a/app/Library/Util/Verification.php b/app/Library/Util/Verification.php deleted file mode 100644 index f290e4b7..00000000 --- a/app/Library/Util/Verification.php +++ /dev/null @@ -1,43 +0,0 @@ -get('cache'); - - $code = Text::random(Text::RANDOM_NUMERIC, 6); - - $cache->save(self::getKey($key), $code, $lifetime); - - return $code; - } - - public static function checkCode($key, $code) - { - /** - * @var Redis $cache - */ - $cache = Di::getDefault()->get('cache'); - - $value = $cache->get(self::getKey($key)); - - return $code == $value; - } - - public static function getKey($key) - { - return "verify:{$key}"; - } - -} diff --git a/app/Models/Account.php b/app/Models/Account.php index 890d6067..e490f818 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -84,14 +84,18 @@ class Account extends Model public function beforeCreate() { $this->salt = Password::salt(); + $this->password = Password::hash($this->password, $this->salt); + $this->created_at = time(); } public function beforeUpdate() { if (!empty($this->password)) { + $this->salt = Password::salt(); + $this->password = Password::hash($this->password, $this->salt); } @@ -101,8 +105,10 @@ class Account extends Model public function afterCreate() { $user = new User(); + $user->id = $this->id; $user->name = "user_{$this->id}"; + $user->create(); } diff --git a/app/Models/Config.php b/app/Models/Config.php index 5274ee6f..777f4af2 100644 --- a/app/Models/Config.php +++ b/app/Models/Config.php @@ -2,8 +2,6 @@ namespace App\Models; -use App\Caches\Config as ConfigCache; - class Config extends Model { @@ -40,10 +38,4 @@ class Config extends Model return 'kg_config'; } - public function afterUpdate() - { - $configCache = new ConfigCache(); - $configCache->rebuild(); - } - } diff --git a/app/Repos/Order.php b/app/Repos/Order.php index 5e369c26..72202f6e 100644 --- a/app/Repos/Order.php +++ b/app/Repos/Order.php @@ -106,7 +106,7 @@ class Order extends Repository * @param string $itemType * @return OrderModel|Model|bool */ - public function findFinishedUserOrder($userId, $itemId, $itemType) + public function findUserLastFinishedOrder($userId, $itemId, $itemType) { $status = OrderModel::STATUS_FINISHED; @@ -125,11 +125,13 @@ class Order extends Repository * @param string $itemType * @return OrderModel|Model|bool */ - public function findLastUserOrder($userId, $itemId, $itemType) + public function findUserLastPendingOrder($userId, $itemId, $itemType) { + $status = OrderModel::STATUS_PENDING; + $result = OrderModel::findFirst([ - 'conditions' => 'user_id = ?1 AND item_id = ?2 AND item_type = ?3', - 'bind' => [1 => $userId, 2 => $itemId, 3 => $itemType], + 'conditions' => 'user_id = ?1 AND item_id = ?2 AND item_type = ?3 AND status= ?4', + 'bind' => [1 => $userId, 2 => $itemId, 3 => $itemType, 4 => $status], 'order' => 'id DESC', ]); diff --git a/app/Services/AuthUser.php b/app/Services/AuthUser.php new file mode 100644 index 00000000..cb297c04 --- /dev/null +++ b/app/Services/AuthUser.php @@ -0,0 +1,16 @@ +getAuthInfo(); - - if ($authUser->root) { - return true; - } - - if (in_array($route, $authUser->routes)) { - return true; - } - - return false; - } - /** * 写入会话 * * @param UserModel $user */ - public function setAuthInfo(UserModel $user) + public function saveAuthInfo(UserModel $user) { $roleRepo = new RoleRepo(); @@ -60,7 +39,7 @@ class AuthUser extends Component /** * 清除会话 */ - public function removeAuthInfo() + public function clearAuthInfo() { $authKey = $this->getAuthKey(); @@ -89,4 +68,25 @@ class AuthUser extends Component return 'admin_info'; } + /** + * 判断权限 + * + * @param string $route + * @return bool + */ + public function hasPermission($route) + { + $authUser = $this->getAuthInfo(); + + if ($authUser->root) { + return true; + } + + if (in_array($route, $authUser->routes)) { + return true; + } + + return false; + } + } diff --git a/app/Services/AuthUser/Api.php b/app/Services/AuthUser/Api.php new file mode 100644 index 00000000..65d904b0 --- /dev/null +++ b/app/Services/AuthUser/Api.php @@ -0,0 +1,82 @@ +id = $user->id; + $authUser->name = $user->name; + $authUser->avatar = $user->avatar; + $authUser->admin_role = $user->admin_role; + $authUser->edu_role = $user->edu_role; + + $authToken = $this->getRandToken($user->id); + + $cacheKey = $this->getCacheKey($authToken); + + $cache = $this->getCache(); + + $cache->save($cacheKey, $authUser); + } + + public function clearAuthInfo() + { + $authToken = $this->getAuthToken(); + + $cacheKey = $this->getCacheKey($authToken); + + $cache = $this->getCache(); + + $cache->delete($cacheKey); + } + + public function getAuthInfo() + { + $authToken = $this->getAuthToken(); + + $cacheKey = $this->getCacheKey($authToken); + + $cache = $this->getCache(); + + return $cache->get($cacheKey); + } + + public function getAuthToken() + { + $authToken = $this->request->getHeader('Authorization'); + + return $authToken; + } + + public function getCacheKey($token) + { + return "token:{$token}"; + } + + public function getRandToken($userId) + { + $token = md5($userId . time() . rand(1000, 9999)); + + return $token; + } + + /** + * @return RedisCache + */ + public function getCache() + { + $cache = $this->getDI()->get('cache'); + + return $cache; + } + +} diff --git a/app/Http/Home/Services/AuthUser.php b/app/Services/AuthUser/Home.php similarity index 83% rename from app/Http/Home/Services/AuthUser.php rename to app/Services/AuthUser/Home.php index 9ebf015a..721b4856 100644 --- a/app/Http/Home/Services/AuthUser.php +++ b/app/Services/AuthUser/Home.php @@ -1,11 +1,11 @@ getAuthKey(); @@ -31,7 +31,7 @@ class AuthUser extends Component /** * 清除会话 */ - public function removeAuthInfo() + public function clearAuthInfo() { $authKey = $this->getAuthKey(); diff --git a/app/Services/Frontend/Account/Login.php b/app/Services/Frontend/Account/Login.php new file mode 100644 index 00000000..ecac97f9 --- /dev/null +++ b/app/Services/Frontend/Account/Login.php @@ -0,0 +1,28 @@ +checkUserLogin($account, $password); + + return $user; + } + + public function loginByVerify($account, $code) + { + $validator = new SecurityValidator(); + + $validator->checkVerifyCode($account, $code); + } + +} diff --git a/app/Services/Frontend/Account/Logout.php b/app/Services/Frontend/Account/Logout.php new file mode 100644 index 00000000..b742d60e --- /dev/null +++ b/app/Services/Frontend/Account/Logout.php @@ -0,0 +1,20 @@ +request->getPost(); diff --git a/app/Services/Frontend/Course/CourseInfo.php b/app/Services/Frontend/Course/CourseInfo.php index 5224bf52..0ae6e163 100644 --- a/app/Services/Frontend/Course/CourseInfo.php +++ b/app/Services/Frontend/Course/CourseInfo.php @@ -78,8 +78,8 @@ class CourseInfo extends Service 'summary' => $course->summary, 'details' => $course->details, 'keywords' => $course->keywords, - 'market_price' => $course->market_price, - 'vip_price' => $course->vip_price, + 'market_price' => (float)$course->market_price, + 'vip_price' => (float)$course->vip_price, 'study_expiry' => $course->study_expiry, 'refund_expiry' => $course->refund_expiry, 'score' => $course->score, diff --git a/app/Services/Frontend/Course/CourseList.php b/app/Services/Frontend/Course/CourseList.php index fd99ed4f..61179c5a 100644 --- a/app/Services/Frontend/Course/CourseList.php +++ b/app/Services/Frontend/Course/CourseList.php @@ -1,10 +1,11 @@ $course['id'], 'title' => $course['title'], 'cover' => $course['cover'], 'summary' => $course['summary'], - 'market_price' => $course['market_price'], - 'vip_price' => $course['vip_price'], + 'market_price' => (float)$course['market_price'], + 'vip_price' => (float)$course['vip_price'], 'model' => $course['model'], 'level' => $course['level'], - 'attrs' => $course['attrs'], 'user_count' => $course['user_count'], 'lesson_count' => $course['lesson_count'], 'review_count' => $course['review_count'], diff --git a/app/Services/Frontend/Course/PackageList.php b/app/Services/Frontend/Course/PackageList.php index 9c3cd28e..609b74e9 100644 --- a/app/Services/Frontend/Course/PackageList.php +++ b/app/Services/Frontend/Course/PackageList.php @@ -43,8 +43,8 @@ class PackageList extends Service $result[] = [ 'id' => $package->id, 'title' => $package->title, - 'market_price' => $package->market_price, - 'vip_price' => $package->vip_price, + 'market_price' => (float)$package->market_price, + 'vip_price' => (float)$package->vip_price, 'courses' => $courses, ]; } @@ -71,8 +71,8 @@ class PackageList extends Service 'title' => $course->title, 'cover' => $course->cover, 'summary' => $course->summary, - 'market_price' => $course->market_price, - 'vip_price' => $course->vip_price, + 'market_price' => (float)$course->market_price, + 'vip_price' => (float)$course->vip_price, 'model' => $course->model, 'level' => $course->level, ]; diff --git a/app/Services/Frontend/Order/OrderCreate.php b/app/Services/Frontend/Order/OrderCreate.php index 5cb497e5..3b7d4aa4 100644 --- a/app/Services/Frontend/Order/OrderCreate.php +++ b/app/Services/Frontend/Order/OrderCreate.php @@ -34,7 +34,7 @@ class OrderCreate extends Service $orderRepo = new OrderRepo(); - $order = $orderRepo->findLastUserOrder($user->id, $post['item_id'], $post['item_type']); + $order = $orderRepo->findUserLastPendingOrder($user->id, $post['item_id'], $post['item_type']); /** * 存在新鲜的未支付订单直接返回(减少订单记录) diff --git a/app/Services/Frontend/Teacher/TeacherCourseList.php b/app/Services/Frontend/Teacher/CourseList.php similarity index 88% rename from app/Services/Frontend/Teacher/TeacherCourseList.php rename to app/Services/Frontend/Teacher/CourseList.php index c08e795c..1e40f1ae 100644 --- a/app/Services/Frontend/Teacher/TeacherCourseList.php +++ b/app/Services/Frontend/Teacher/CourseList.php @@ -1,13 +1,15 @@ checkUser($id); + + return $this->handleUser($user); + } + + /** + * @param UserModel $user + * @return array + */ + protected function handleUser($user) + { + $user->avatar = kg_img_url($user->avatar); + $user->vip = $user->vip == 1; + $user->locked = $user->locked == 1; + + $result = [ + 'id' => $user->id, + 'name' => $user->name, + 'avatar' => $user->avatar, + 'title' => $user->title, + 'about' => $user->about, + 'location' => $user->location, + 'gender' => $user->gender, + 'vip' => $user->vip, + 'locked' => $user->locked, + 'vip_expiry_time' => $user->vip_expiry_time, + 'lock_expiry_time' => $user->lock_expiry_time, + 'edu_role' => $user->edu_role, + 'admin_role' => $user->admin_role, + 'notice_count' => $user->notice_count, + 'msg_count' => $user->msg_count, + ]; + + return $result; + } + +} diff --git a/app/Services/Mailer/Verify.php b/app/Services/Mailer/Verify.php index ce7839cc..f496dae3 100644 --- a/app/Services/Mailer/Verify.php +++ b/app/Services/Mailer/Verify.php @@ -2,8 +2,8 @@ namespace App\Services\Mailer; -use App\Library\Util\Verification; use App\Services\Mailer; +use App\Services\Verification; class Verify extends Mailer { @@ -14,11 +14,13 @@ class Verify extends Mailer $message = $this->manager->createMessage(); - $subject = '邮件验证码'; + $verification = new Verification(); $minutes = 5; - $code = Verification::code($email, 60 * $minutes); + $code = $verification->getSmsCode($email, 60 * $minutes); + + $subject = '邮件验证码'; $content = $this->formatContent($code, $minutes); diff --git a/app/Services/Service.php b/app/Services/Service.php index 68957836..e012149b 100644 --- a/app/Services/Service.php +++ b/app/Services/Service.php @@ -2,7 +2,7 @@ namespace App\Services; -use App\Caches\Config as ConfigCache; +use App\Caches\SectionConfig as SectionConfigCache; use App\Library\Logger as AppLogger; use Phalcon\Logger\Adapter\File as FileLogger; use Phalcon\Mvc\User\Component; @@ -33,9 +33,9 @@ class Service extends Component */ public function getSectionConfig($section) { - $configCache = new ConfigCache(); + $cache = new SectionConfigCache(); - $result = $configCache->getSectionConfig($section); + $result = $cache->get($section); return $result; } diff --git a/app/Services/Smser/Verify.php b/app/Services/Smser/Verify.php index 9b181dc5..e40a96bf 100644 --- a/app/Services/Smser/Verify.php +++ b/app/Services/Smser/Verify.php @@ -2,8 +2,8 @@ namespace App\Services\Smser; -use App\Library\Util\Verification; use App\Services\Smser; +use App\Services\Verification; class Verify extends Smser { @@ -12,9 +12,11 @@ class Verify extends Smser public function handle($phone) { + $verifyCode = new Verification(); + $minutes = 5; - $code = Verification::code($phone, 60 * $minutes); + $code = $verifyCode->getSmsCode($phone, 60 * $minutes); $templateId = $this->getTemplateId($this->templateCode); diff --git a/app/Services/Verification.php b/app/Services/Verification.php new file mode 100644 index 00000000..698a18a2 --- /dev/null +++ b/app/Services/Verification.php @@ -0,0 +1,83 @@ +cache = $this->getDI()->get('cache'); + } + + public function sendSmsCode($phone) + { + $smser = new VerifySmser(); + + $smser->handle($phone); + } + + public function sendMailCode($email) + { + $mailer = new VerifyMailer(); + + $mailer->handle($email); + } + + public function getSmsCode($phone, $lifetime = 300) + { + $key = $this->getSmsCacheKey($phone); + + $code = Text::random(Text::RANDOM_NUMERIC, 6); + + $this->cache->save($key, $code, $lifetime); + } + + public function getMailCode($email, $lifetime = 300) + { + $key = $this->getSmsCacheKey($email); + + $code = Text::random(Text::RANDOM_NUMERIC, 6); + + $this->cache->save($key, $code, $lifetime); + } + + public function checkSmsCode($phone, $code) + { + $key = $this->getSmsCacheKey($phone); + + $value = $this->cache->get($key); + + return $code == $value; + } + + public function checkMailCode($email, $code) + { + $key = $this->getMailCacheKey($email); + + $value = $this->cache->get($key); + + return $code == $value; + } + + protected function getMailCacheKey($email) + { + return "verify:mail:{$email}"; + } + + protected function getSmsCacheKey($phone) + { + return "verify:sms:{$phone}"; + } + +} diff --git a/app/Traits/Ajax.php b/app/Traits/Ajax.php deleted file mode 100644 index a86fab82..00000000 --- a/app/Traits/Ajax.php +++ /dev/null @@ -1,38 +0,0 @@ -response->setStatusCode(200); - $this->response->setJsonContent($content); - - return $this->response; - } - - public function ajaxError($content = []) - { - $content['code'] = $content['code'] ?? 1; - $content['msg'] = $content['msg'] ?? $this->getErrorMessage($content['code']); - - $this->response->setJsonContent($content); - - return $this->response; - } - - public function getErrorMessage($code) - { - $errors = require config_path() . '/errors.php'; - - $message = $errors[$code] ?? $code; - - return $message; - } - -} \ No newline at end of file diff --git a/app/Traits/Auth.php b/app/Traits/Auth.php index 364e3fa7..cea0842e 100644 --- a/app/Traits/Auth.php +++ b/app/Traits/Auth.php @@ -3,7 +3,9 @@ namespace App\Traits; use App\Models\User as UserModel; -use App\Validators\Validator; +use App\Repos\User as UserRepo; +use App\Services\AuthUser as AuthUserService; +use App\Validators\Validator as AppValidator; trait Auth { @@ -12,12 +14,14 @@ trait Auth { $authUser = $this->getAuthUser(); - if ($authUser) { - $user = UserModel::findFirst($authUser->id); - } else { - $user = new UserModel(); + if (!$authUser) { + return $this->getGuestUser(); } + $userRepo = new UserRepo(); + + $user = $userRepo->findById($authUser->id); + return $user; } @@ -25,17 +29,32 @@ trait Auth { $authUser = $this->getAuthUser(); - $validator = new Validator(); + $validator = new AppValidator(); $validator->checkAuthUser($authUser); - $user = UserModel::findFirst($authUser->id); + $userRepo = new UserRepo(); + + $user = $userRepo->findById($authUser->id); + + return $user; + } + + public function getGuestUser() + { + $user = new UserModel(); + + $user->id = 0; + $user->name = 'guest'; return $user; } public function getAuthUser() { + /** + * @var AuthUserService $auth + */ $auth = $this->getDI()->get('auth'); return $auth->getAuthInfo(); diff --git a/app/Traits/Client.php b/app/Traits/Client.php index 51759474..17fb5991 100644 --- a/app/Traits/Client.php +++ b/app/Traits/Client.php @@ -2,6 +2,8 @@ namespace App\Traits; +use Phalcon\Di; +use Phalcon\Http\Request; use WhichBrowser\Parser as BrowserParser; trait Client @@ -9,14 +11,24 @@ trait Client public function getClientIp() { - $clientIp = $this->request->getClientAddress(); + /** + * @var Request $request + */ + $request = Di::getDefault()->get('request'); + + $clientIp = $request->getClientAddress(); return $clientIp; } public function getClientType() { - $userAgent = $this->request->getServer('HTTP_USER_AGENT'); + /** + * @var Request $request + */ + $request = Di::getDefault()->get('request'); + + $userAgent = $request->getServer('HTTP_USER_AGENT'); $result = new BrowserParser($userAgent); diff --git a/app/Traits/Response.php b/app/Traits/Response.php new file mode 100644 index 00000000..d85ac0c2 --- /dev/null +++ b/app/Traits/Response.php @@ -0,0 +1,69 @@ +get('response'); + + $response->setStatusCode(200); + + $response->setJsonContent($content); + + return $response; + } + + public function jsonError($content = []) + { + $content['code'] = $content['code'] ?? 1; + + $content['msg'] = $content['msg'] ?? $this->getErrorMessage($content['code']); + + /** + * @var HttpResponse $response + */ + $response = Di::getDefault()->get('response'); + + $response->setJsonContent($content); + + return $response; + } + + public function jsonPaginate($paginate) + { + $items = $paginate->items ?? []; + $totalItems = $paginate->total_items ?? 0; + $totalPages = $paginate->total_pages ?? 0; + + $content = [ + 'items' => $items, + 'total_items' => $totalItems, + 'total_pages' => $totalPages, + ]; + + return $this->jsonSuccess($content); + } + + public function getErrorMessage($code) + { + $errors = require config_path() . '/errors.php'; + + $message = $errors[$code] ?? $code; + + return $message; + } + +} \ No newline at end of file diff --git a/app/Traits/Security.php b/app/Traits/Security.php index 0592f275..babd8e1b 100644 --- a/app/Traits/Security.php +++ b/app/Traits/Security.php @@ -2,30 +2,54 @@ namespace App\Traits; +use Phalcon\Di; +use Phalcon\Http\Request; + trait Security { public function checkCsrfToken() { - $tokenKey = $this->request->getHeader('X-Csrf-Token-Key'); - $tokenValue = $this->request->getHeader('X-Csrf-Token-Value'); - $checkToken = $this->security->checkToken($tokenKey, $tokenValue); + /** + * @var Request $request ; + */ + $request = Di::getDefault()->get('request'); + + $tokenKey = $request->getHeader('X-Csrf-Token-Key'); + $tokenValue = $request->getHeader('X-Csrf-Token-Value'); + + /** + * @var \App\Library\Security $security + */ + $security = Di::getDefault()->get('security'); + + $checkToken = $security->checkToken($tokenKey, $tokenValue); return $checkToken; } public function checkHttpReferer() { - $httpHost = parse_url($this->request->getHttpReferer(), PHP_URL_HOST); + /** + * @var Request $request ; + */ + $request = Di::getDefault()->get('request'); - $checkHost = $httpHost == $this->request->getHttpHost(); + $httpHost = parse_url($request->getHttpReferer(), PHP_URL_HOST); + + $checkHost = $httpHost == $request->getHttpHost(); return $checkHost; } public function isNotSafeRequest() { - $method = $this->request->getMethod(); + /** + * @var Request $request ; + */ + $request = Di::getDefault()->get('request'); + + $method = $request->getMethod(); $list = ['post', 'put', 'patch', 'delete']; diff --git a/app/Validators/Order.php b/app/Validators/Order.php index 0ad46aa5..47776f05 100644 --- a/app/Validators/Order.php +++ b/app/Validators/Order.php @@ -112,9 +112,10 @@ class Order extends Validator $itemType = OrderModel::ITEM_PACKAGE; - $order = $orderRepo->findFinishedUserOrder($userId, $courseId, $itemType); + $order = $orderRepo->findUserLastFinishedOrder($userId, $courseId, $itemType); if ($order) { + /** * @var array $itemInfo */ @@ -132,7 +133,7 @@ class Order extends Validator $itemType = OrderModel::ITEM_PACKAGE; - $order = $orderRepo->findFinishedUserOrder($userId, $packageId, $itemType); + $order = $orderRepo->findUserLastFinishedOrder($userId, $packageId, $itemType); if ($order) { throw new BadRequestException('order.has_bought_package'); diff --git a/app/Validators/Security.php b/app/Validators/Security.php index 9451ed8c..13d70295 100644 --- a/app/Validators/Security.php +++ b/app/Validators/Security.php @@ -3,24 +3,35 @@ namespace App\Validators; use App\Exceptions\BadRequest as BadRequestException; -use App\Library\Util\Verification as VerifyUtil; +use App\Library\Validator\Common as CommonValidator; use App\Services\Captcha as CaptchaService; +use App\Services\Verification as VerificationService; class Security extends Validator { public function checkVerifyCode($key, $code) { - if (!VerifyUtil::checkCode($key, $code)) { + $verification = new VerificationService(); + + $result = false; + + if (CommonValidator::email($key)) { + $result = $verification->checkMailCode($key, $code); + } elseif (CommonValidator::phone($key)) { + $result = $verification->checkSmsCode($key, $code); + } + + if (!$result) { throw new BadRequestException('security.invalid_verify_code'); } } public function checkCaptchaCode($ticket, $rand) { - $captchaService = new CaptchaService(); + $captcha = new CaptchaService(); - $result = $captchaService->verify($ticket, $rand); + $result = $captcha->verify($ticket, $rand); if (!$result) { throw new BadRequestException('security.invalid_captcha_code'); diff --git a/bootstrap/HttpErrorHandler.php b/bootstrap/HttpErrorHandler.php index 2052f5b3..b1a548cf 100644 --- a/bootstrap/HttpErrorHandler.php +++ b/bootstrap/HttpErrorHandler.php @@ -39,7 +39,7 @@ class HttpErrorHandler extends Component if ($this->router->getModuleName() == 'api') { $this->apiError($e); } else if ($this->isAjax()) { - $this->ajaxError($e); + $this->jsonError($e); } else { $this->pageError($e); }