AdminService.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace app\api\service;
  3. use app\common\model\AdminModel;
  4. use app\common\model\StoreModel;
  5. class AdminService extends \app\BaseService
  6. {
  7. private $adminModel;
  8. private $storeModel;
  9. public function __construct()
  10. {
  11. $this->adminModel = new AdminModel();
  12. $this->storeModel = new StoreModel();
  13. }
  14. public function search($text = null) {
  15. $admins = $this->adminModel->findAdmins($text)->toArray();
  16. $store_ids = [];
  17. foreach ($admins as &$admin) {
  18. $admin['store_ids'] = $admin['store_ids'] ? explode(',', $admin['store_ids']) : [];
  19. $store_ids = array_unique(array_merge($store_ids, $admin['store_ids']));
  20. }
  21. $stores = $this->storeModel->findByIds($store_ids)->toArray();
  22. $fmt_stores = [];
  23. foreach ($stores as $store) {
  24. $fmt_stores[$store['id']] = $store;
  25. }
  26. foreach ($admins as &$admin) {
  27. $now_stores = array_map(function ($store_id) use ($fmt_stores){
  28. return $fmt_stores[$store_id];
  29. }, $admin['store_ids']);
  30. $admin['stores'] = $now_stores;
  31. }
  32. return $admins;
  33. }
  34. }