ArtificerService.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. /**
  3. * @Name
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2023/11/23 20:57
  7. */
  8. namespace App\Http\Services\Admin\User;
  9. use App\Http\Services\BaseService;
  10. use App\Models\Admin;
  11. use App\Models\Artificer;
  12. use App\Models\Menu;
  13. use App\Models\User;
  14. use Illuminate\Support\Facades\DB;
  15. class ArtificerService extends BaseService
  16. {
  17. public function index($data)
  18. {
  19. $model = User::query()->where('user_type', 3);
  20. if (!empty($data['phone'])) {
  21. $keyWhere = [
  22. // ['id', '=', $data['key'], 'or'],
  23. ['user_login', 'like', '%' . $data['phone'] . '%', 'or'],
  24. // ['user_nickname', 'like', '%' . $data['key'] . '%', 'or'],
  25. ['mobile', 'like', '%' . $data['phone'] . '%', 'or'],
  26. ];
  27. $model->where($keyWhere);
  28. }
  29. $model->with('artificer');
  30. if (isset($data['status']) && $data['status'] !== '' || !empty($data['key'])) {
  31. $model->whereHas('artificer', function ($query) use ($data) {
  32. if (isset($data['status']) && $data['status'] !== '') {
  33. $statusWhere = [];
  34. if ($data['status'] === '-1') {
  35. $statusWhere['apply_num'] = 0;
  36. $statusWhere['js_status'] = '0';
  37. } else {
  38. $statusWhere[] = ['apply_num', '>', 0];
  39. $statusWhere['js_status'] = $data['status'];
  40. }
  41. $query->where($statusWhere);
  42. }
  43. if (!empty($data['key'])) {
  44. $keyWhere = [
  45. ['id', '=', $data['key'], 'or'],
  46. ['name', 'like', '%' . $data['key'] . '%', 'or'],
  47. ['phone', 'like', '%' . $data['key'] . '%', 'or']
  48. ];
  49. $query->where($keyWhere);
  50. }
  51. });
  52. }
  53. $list = $model
  54. ->latest('id')
  55. ->paginate($data['pageSize'])
  56. ->toArray();
  57. return $this->apiSuccess('', [
  58. 'list' => $list['data'],
  59. 'total' => $list['total']
  60. ]);
  61. }
  62. public function store(array $data)
  63. {
  64. return $this->commonCreate(Menu::query(), $data);
  65. }
  66. public function detail($id)
  67. {
  68. $data = Menu::query()->find($id)->toArray();
  69. return $this->apiSuccess('', $data);
  70. }
  71. public function update(array $data)
  72. {
  73. return $this->commonUpdate(Menu::query(), $data['id'], $data);
  74. }
  75. public function all()
  76. {
  77. $list = Menu::query()->oldest('sort')
  78. ->select(['title', 'pid', 'id'])
  79. ->get()
  80. ->toArray();
  81. return $this->apiSuccess('', [
  82. 'list' => $list
  83. ]);
  84. }
  85. public function audit(array $data)
  86. {
  87. $update_data = [
  88. 'js_status' => $data['status']
  89. ];
  90. return $this->commonUpdate(Artificer::query(), $data['id'], $update_data);
  91. }
  92. }