UserLevel.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\controller\adminapi\user;
  3. use app\extra\basic\Base;
  4. use app\extra\service\user\UserLevelService;
  5. use app\middleware\AuthMiddleware;
  6. use app\validate\adminapi\user\UserLevelValidate;
  7. use DI\Attribute\Inject;
  8. use LinFly\Annotation\Route\Controller;
  9. use LinFly\Annotation\Route\Middleware;
  10. use LinFly\Annotation\Route\Route;
  11. use support\Request;
  12. use support\Response;
  13. #[Controller(prefix: "/adminapi/user/level"),Middleware(AuthMiddleware::class)]
  14. class UserLevel extends Base
  15. {
  16. #[Inject]
  17. protected UserLevelService $service;
  18. #[Inject]
  19. protected UserLevelValidate $validate;
  20. #[Route(path: "list",methods: "get")]
  21. public function getList(Request $request): Response
  22. {
  23. try {
  24. $param = $request->get();
  25. $list = $this->service->getList($param,'*',$param['page']??0,$param['limit']??0);
  26. return successTrans("success.data",$list);
  27. } catch (\Throwable $throwable) {
  28. return error($throwable->getMessage());
  29. }
  30. }
  31. #[Route(path: "save[/{id}]",methods: "post")]
  32. public function save(Request $request,$id = 0): Response
  33. {
  34. try {
  35. $param = $request->post();
  36. if (!$this->validate->check($param)) return error($this->validate->getError());
  37. $param = $this->validate->checked($param);
  38. $level = $this->service->getOne(['grade'=>$param['grade'],'is_del'=>0]);
  39. if(!$level->isEmpty() && (!$id || $level->id != $id)){
  40. return errorTrans("该等级已存在");
  41. }
  42. $level = $this->service->getOne([['grade','<',$param['grade']],['is_del','=',0]],'*','grade desc');
  43. if(!$level->isEmpty() && $level['exp_num'] >= $param['exp_num']){
  44. return errorTrans("经验值必须大于上一级别,上级经验值为:{$level['exp_num']}");
  45. }
  46. $level = $this->service->getOne([['grade','>',$param['grade']],['is_del','=',0]],'*','exp_num asc');
  47. if(!$level->isEmpty() && $level['exp_num'] <= $param['exp_num']){
  48. return errorTrans("经验值必须小于下一级别,下级经验值为:{$level['exp_num']}");
  49. }
  50. if($id){
  51. $state = $this->service->update($id,$param);
  52. }else{
  53. $state = $this->service->save($param);
  54. }
  55. if (!$state) return errorTrans("empty.error");
  56. return successTrans("success.data");
  57. } catch (\Throwable $throwable) {
  58. return error($throwable->getMessage());
  59. }
  60. }
  61. #[Route(path: "info/{id}",methods: "get")]
  62. public function info($id): Response
  63. {
  64. try {
  65. $take = $this->service->getOne(["id"=>$id,'is_del'=>0]);
  66. if ($take->isEmpty()) return errorTrans("empty.error");
  67. return successTrans("success.data",$take->toArray());
  68. } catch (\Throwable $throwable) {
  69. return error($throwable->getMessage());
  70. }
  71. }
  72. #[Route(path: "set_show/{id}/{show}",methods: "get")]
  73. public function set_show($id,$show): Response
  74. {
  75. try {
  76. $state = $this->service->update($id,['is_show'=>$show]);
  77. if (!$state) return errorTrans("empty.error");
  78. return successTrans($show?'显示成功':'禁用成功');
  79. } catch (\Throwable $throwable) {
  80. return error($throwable->getMessage());
  81. }
  82. }
  83. #[Route(path: "del/{id}",methods: "delete")]
  84. public function delete($id): Response
  85. {
  86. try {
  87. $state = $this->service->update($id,['is_del'=>1]);
  88. if (!$state) return errorTrans("empty.error");
  89. return successTrans('删除成功');
  90. } catch (\Throwable $throwable) {
  91. return error($throwable->getMessage());
  92. }
  93. }
  94. }