AddonQuick.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\system;
  11. use app\model\BaseModel;
  12. use app\model\system\Upgrade as UpgradeModel;
  13. class AddonQuick extends BaseModel
  14. {
  15. /**
  16. * 添加快捷方式
  17. * @param $data
  18. * @return array
  19. */
  20. public function addAddonQuickMode($data)
  21. {
  22. //判断是否已存在该插件
  23. $addon_count = model('addon_quick')->getCount([ [ 'name', '=', $data[ 'name' ] ] ]);
  24. if ($addon_count > 0) {
  25. return $this->error('', '该插件已添加快捷方式,请不要重复添加');
  26. }
  27. $data[ 'create_time' ] = time();
  28. $res = model('addon_quick')->add($data);
  29. return $this->success($res);
  30. }
  31. /**
  32. * 删除快捷方式
  33. * @param array $condition
  34. * @return array
  35. */
  36. public function deleteAddonQuickMode($condition = [])
  37. {
  38. $res = model('addon_quick')->delete($condition);
  39. return $this->success($res);
  40. }
  41. /**
  42. * 获取快捷方式信息
  43. * @param array $condition
  44. * @param string $field
  45. * @return array
  46. */
  47. public function getAddonQuickModeInfo($condition = [], $field = '*')
  48. {
  49. $info = model('addon_quick')->getInfo($condition, $field);
  50. return $this->success($info);
  51. }
  52. /**
  53. * 获取快捷方式类表
  54. * @param array $condition
  55. * @param int $page
  56. * @param int $page_size
  57. * @param string $order
  58. * @param string $field
  59. * @return array
  60. */
  61. public function getAddonQuickModeList($condition = [], $order = '', $field = '*')
  62. {
  63. $list = model('addon_quick')->getList($condition, $field, $order);
  64. return $this->success($list);
  65. }
  66. /**
  67. * 判断快捷方式插件是否已安装
  68. * @param $uninstall
  69. * @param $install
  70. * @return array
  71. */
  72. public function isInstallAddonQuick($uninstall, $install)
  73. {
  74. //未安装的插件
  75. $uninstall_name_arr = array_column($uninstall, 'name');
  76. //已安装的插件
  77. $install_name_arr = array_column($install, 'name');
  78. //获取快捷方式插件
  79. $addon_quick_list = $this->getAddonQuickModeList([], '', '*');
  80. if (empty($addon_quick_list[ 'data' ])) {
  81. return [
  82. 'uninstall' => $uninstall,
  83. 'install' => $install
  84. ];
  85. } else {
  86. foreach ($addon_quick_list[ 'data' ] as $k => $v) {
  87. //判断是否在已安装的插件中
  88. if (!in_array($v[ 'name' ], $install_name_arr)) {
  89. //判断是否在未安装的插件中
  90. if (empty($uninstall_name_arr) || !in_array($v[ 'name' ], $uninstall_name_arr)) {
  91. $v[ 'is_quick' ] = 1;
  92. $v[ 'download' ] = 1;
  93. $uninstall[] = $v;
  94. }
  95. }
  96. }
  97. return [
  98. 'uninstall' => $uninstall,
  99. 'install' => $install
  100. ];
  101. }
  102. }
  103. /**
  104. * 根据插件类型获取官网插件
  105. * @param $addon_list
  106. * @param $type
  107. * @return array
  108. */
  109. public function getAddonQuickByAddonType($addon_list, $type)
  110. {
  111. //获取官网所有插件
  112. $upgrade_model = new UpgradeModel();
  113. $website_addon_list = $upgrade_model->getPluginGoodsList();
  114. $arr = [];
  115. if (empty($website_addon_list)) {
  116. return $arr;
  117. } else {
  118. $addon_name_arr = array_column($addon_list, 'name');
  119. foreach ($website_addon_list as $k => $v) {
  120. if ($v[ 'type_mark' ] == $type) {
  121. if (empty($addon_list)) {
  122. $arr[] = $v;
  123. } else {
  124. //判断是否在插件中
  125. if (!in_array($v[ 'addon_goods_key' ], $addon_name_arr)) {
  126. $arr[] = $v;
  127. }
  128. }
  129. }
  130. }
  131. return $arr;
  132. }
  133. }
  134. }