| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- namespace addons\Store\common\services;
- use addons\ReservationService\common\models\ReservationServiceStoreGoods;
- use addons\Store\common\models\StoreGoods;
- use addons\Store\common\models\StoreGoodsReserve;
- use common\enums\GoodsTypeEnum;
- use common\enums\StatusEnum;
- class ReserveGoodsService extends BaseService
- {
- public $user_id = 0;
- public function customListByStore($params)
- {
- $gids = $this->getAssociationGoodsIds($params['id']);
- if (empty($gids)) return [];
- $goods = StoreGoods::lists([
- 'where' => [
- ['mall_id' => $this->mall_id],
- ['store_id' => $this->store_id],
- ['id' => $gids],
- ['status' => StatusEnum::ENABLED],
- ['is_on_sale' => StatusEnum::ENABLED],
- ['check_status' => StatusEnum::ENABLED],
- ],
- 'order' => 'id desc',
- 'select'=> 'id, goods_name, price, original_price, cover_pic, sales_num, virtual_sales, unit'
- ]);
- if (!empty(StoreGoods::getStaticError())) return StoreGoods::getStaticError();
- if (!empty($goods)) {
- foreach ($goods as &$good) {
- $good['sales_num'] += $good['virtual_sales'];
- unset($good['virtual_sales']);
- }
- }
- return $goods;
- }
- /**
- * 获取门店预约商品ID
- * @return array
- */
- public function getGoodsIds()
- {
- return StoreGoodsReserve::find()
- ->where(['mall_id' => $this->mall_id])
- ->andWhere(['store_id' => $this->store_id])
- // ->andWhere(['status' => StatusEnum::ENABLED])
- ->andWhere(['reserve_type' => StatusEnum::ENABLED])
- // ->andWhere(['is_on_sale' => StatusEnum::ENABLED])
- // ->andWhere(['check_status' => StatusEnum::ENABLED])
- ->select(['goods_id'])
- ->column();
- }
- public function getAssociationGoodsIds($staff_user_id)
- {
- $goods_ids = ReservationServiceStoreGoods::find()
- ->where(['mall_id' => $this->mall_id])
- ->andWhere(['store_id' => $this->store_id])
- ->andWhere(['user_id' => $staff_user_id,'status'=>StatusEnum::ENABLED])
- ->select(['goods_id'])
- ->column();
- $goods_ids = StoreGoods::find()
- ->where(['mall_id' => $this->mall_id])
- ->andWhere(['store_id' => $this->store_id])
- ->andWhere(['id' => $goods_ids])
- ->andWhere(['goods_type' => GoodsTypeEnum::GoodsTypeReserved])
- ->andWhere(['status' => StatusEnum::ENABLED])
- ->andWhere(['is_on_sale' => StatusEnum::ENABLED])
- ->andWhere(['check_status' => StatusEnum::ENABLED])
- ->select(['id'])
- ->column();
- return $goods_ids;
- }
- }
|