GoodsService.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace addons\ValetOrder\common\service;
  3. use addons\ValetOrder\common\enums\ValetOrderEnum;
  4. use addons\ValetOrder\common\models\ValetOrderGoods;
  5. use common\enums\StatusEnum;
  6. use Yii;
  7. class GoodsService
  8. {
  9. public function save(array $params)
  10. {
  11. // 后台页面组件展示
  12. if ($params['type'] == 'show_component') {
  13. return [
  14. 'component' => 'com-valet-order-goods',
  15. 'path' => Yii::$app->basePath . '/../addons/ValetOrder/backend/views/components',
  16. ];
  17. } else {
  18. if (empty($params['setting'][ValetOrderEnum::ADDONS_NAME])) return true;
  19. $post = $params['setting'][ValetOrderEnum::ADDONS_NAME];
  20. $post['mall_id'] = $params['mall_id'];
  21. $mall_id = $params['mall_id'];
  22. $goods_id = $params['goods_id'];
  23. $status = $post['status'];
  24. $model = ValetOrderGoods::getOne([
  25. ['mall_id' => $mall_id],
  26. ['goods_id' => $goods_id]
  27. ]);
  28. if (empty($model)) {
  29. $model = new ValetOrderGoods();
  30. $model->mall_id = $mall_id;
  31. $model->goods_id = $goods_id;
  32. }
  33. $model->status = $status;
  34. if (!$model->save()) return $model->getErrorMessage();
  35. return true;
  36. }
  37. }
  38. /**
  39. * @param int $mall_id
  40. * @param int $goods_id
  41. * @return mixed|null
  42. */
  43. public function detail(int $mall_id, int $goods_id)
  44. {
  45. return ValetOrderGoods::getOne([
  46. ['mall_id' => $mall_id],
  47. ['goods_id' => $goods_id]
  48. ]);
  49. }
  50. /**
  51. * @param array $params
  52. * @return array
  53. */
  54. public function globalDetail(array $params)
  55. {
  56. // 判断插件是否开启状态
  57. $params['goods'][ValetOrderEnum::ORDER_IS_VALET_KEY] = StatusEnum::DISABLED;
  58. if (!empty(\Yii::$app->services->setting->addons->get($params['mall_id'], ValetOrderEnum::ADDONS_NAME, 'basic.is_enable'))) {
  59. $params['goods'][ValetOrderEnum::ORDER_IS_VALET_KEY] = ValetOrderGoods::getOne([
  60. ['goods_id' => $params['goods']['id']],
  61. ['status' => StatusEnum::ENABLED]
  62. ], true, [], null, 'id') ? StatusEnum::ENABLED : StatusEnum::DISABLED;
  63. // 返回代客下单配置
  64. $config = Yii::$app->services->setting->addons->get($params['mall_id'], ValetOrderEnum::ADDONS_NAME, 'basic');
  65. $params['goods']['addons_config'][ValetOrderEnum::ADDONS_NAME] = [
  66. 'is_show_valet_order_btn' => (new SettingService())->getIsShowValetOrderBtn($params['mall_id'], $params['user']->level ?? 0, $config), // 当前等级是否允许代客下单
  67. ];
  68. }
  69. return $params;
  70. }
  71. }