AddonsLinkService.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace services\common;
  3. use common\models\common\AddonsLink;
  4. use Yii;
  5. use yii\helpers\Json;
  6. use common\components\Service;
  7. use common\helpers\ArrayHelper;
  8. /**
  9. *
  10. * APP链接service
  11. * Class AddonsLinkService
  12. * @Author: lun
  13. * @DateTime: 2021/10/14 0014 14:15
  14. * @Copyright: copyright (c) 2021 广东七件事集团
  15. * @package services\common
  16. */
  17. class AddonsLinkService extends Service
  18. {
  19. /**
  20. * 创建链接菜单
  21. * @Author: lun
  22. * @DateTime: 2021/10/14 0014 14:16
  23. * @Copyright: copyright (c) 2021 广东七件事集团
  24. * @param string $addons_name
  25. * @param array $links
  26. * @throws \yii\db\Exception
  27. */
  28. public function create(string $addons_name, array $linksMenu)
  29. {
  30. if (empty($linksMenu)) return;
  31. AddonsLink::deleteAll(['addons_name' => $addons_name]);
  32. // 重组数组
  33. foreach ($linksMenu as $key => $menu) {
  34. $allMenu[$key] = ArrayHelper::regroupMapToArr($menu);
  35. }
  36. $time = time();
  37. foreach ($allMenu as $key => $item) {
  38. foreach ($item as $k => $value) {
  39. $row = [];
  40. $row['title'] = $value['title'] ?? '';
  41. $row['route'] = $value['route'] ?? '';
  42. $row['icon'] = $value['icon'] ?? '';
  43. $row['params'] = $value['params'] ?? [];
  44. $row['app_id'] = $key;
  45. $row['addons_name'] = $addons_name;
  46. $row['params'] = Json::encode($value['params']);
  47. $row['created_at'] = $time;
  48. $row['updated_at'] = $time;
  49. $rows[] = $row;
  50. }
  51. }
  52. $field = ['title', 'route', 'icon', 'params', 'app_id', 'addons_name', 'created_at', 'updated_at'];
  53. // 批量插入数据
  54. !empty($rows) && Yii::$app->db->createCommand()->batchInsert(AddonsLink::tableName(), $field, $rows)->execute();
  55. }
  56. }