$this->mall_id], ['addons_name' => AddonsEnum::ADDONS_NAME_BLIND_BOX], ['status' => StatusEnum::ENABLED]]); return $this->success('', $data ?? []); } public function actionUserData() { $data = BlindBoxUser::getOne([ ['mall_id' => $this->mall_id], ['user_id' => $this->user_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]], ], true, [], false, 'frozen_commission,total_commission,remaining_pay_money'); return $this->success('', $data ?? ['frozen_commission'=>0,'total_commission'=>0,'remaining_pay_money'=>0]); } //奖金明细 public function actionBonusLog() { $params = \Yii::$app->request->get(); $params['where'][] = ['=', 'mall_id', $this->mall_id]; $params['where'][] = ['=', 'user_id', $this->user_id]; $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]]; $params['where'][] = ['is_feedback'=>BlindBoxEnum::NO_FEEDBACK]; $params['limit'] = 10; $params['order'] = 'id DESC'; $params['select'] = 'id,mall_id,user_id,order_no,total_times,divided_times,divided_money,created_at,contribution'; $pageData = BlindBoxBonusLog::listPage($params, false); if ($pageData === false) return $this->error(BlindBoxCate::getStaticError()); if (!empty($pageData['list'])) { $user_id = array_column($pageData['list'], 'user_id'); $user_list = User::lists(['where' => [['id' => $user_id]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']); foreach ($pageData['list'] as &$item) { $item['nickname'] = $item['avatar_url'] = $item['mobile'] = ''; if (isset($user_list[$item['user_id']])) { $item['nickname'] = $user_list[$item['user_id']]['nickname']; $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url']; $item['mobile'] = $user_list[$item['user_id']]['mobile']; } $item['type'] = $item['order_no']['0']; } } return $this->success('操作成功', $pageData); } //奖金详情 public function actionBonusLogDetail() { $params = \Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($params, [ [['bonus_log_id'], 'required', 'message' => '请选择具体分红记录'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['where'][] = ['mall_id' => $this->mall_id]; $params['where'][] = ['bonus_log_id' => $params['bonus_log_id']]; $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]]; $params['where'][] = ['is_feedback'=>BlindBoxEnum::NO_FEEDBACK]; $params['limit'] = 10; $params['order'] = 'id DESC'; $params['select'] = 'id,mall_id,user_id,order_no,bonus_log_id,total_contribution,contribution,total_bonus,order_bonus,is_settlement,created_at'; $pageData = BlindBoxBonusLogDetail::listPage($params, false); if ($pageData === false) return $this->error(BlindBoxCate::getStaticError()); if (!empty($pageData['list'])) { $user_id = array_column($pageData['list'], 'user_id'); $user_list = User::lists(['where' => [['id' => $user_id]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']); foreach ($pageData['list'] as &$item) { $item['nickname'] = $item['avatar_url'] = $item['mobile'] = ''; if (isset($user_list[$item['user_id']])) { $item['nickname'] = $user_list[$item['user_id']]['nickname']; $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url']; $item['mobile'] = $user_list[$item['user_id']]['mobile']; } } } $pageData['is_settlement_map'] = BlindBoxEnum::getIsSettlementMap(); return $this->success('操作成功', $pageData); } //通知列表 public function actionNoticeList() { $params = \Yii::$app->request->get(); $params['where'][] = ['mall_id' => $this->mall_id]; $params['where'][] = ['=', 'user_id', $this->user_id]; $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]]; $params['limit'] = 10; $params['order'] = 'id DESC'; $params['select'] = 'id,content,created_at'; $pageData = BlindBoxNotice::listPage($params, false); if ($pageData === false) return $this->error(BlindBoxCate::getStaticError()); return $this->success('操作成功', $pageData); } //商品列表 public function actionGoodsList() { $params = \Yii::$app->request->get(); $where[] = ['mall_id' => $this->mall_id]; $where[] = ['status' => StatusEnum::ENABLED]; if (!empty($params['cate_id'])) $where[] = ['cate_id' => $params['cate_id']]; $is_bool=false; $goods_id = []; if(!empty($params['goods_id'])){ $is_bool = true; $goods_id = explode(',',$params['goods_id']); if(!empty($goods_id)){ $list = Goods::lists(['where'=>[['mall_id'=>$this->mall_id],['status'=>StatusEnum::ENABLED],['id'=>$goods_id],['is_on_sale'=>1]]]); $goods_id = array_column($list,'id'); // $where[] = ['goods_id'=>$goods_id]; } } if(!empty($params['goods_name'])){ $list = Goods::lists(['where'=>[['mall_id'=>$this->mall_id],['status'=>StatusEnum::ENABLED],['like','goods_name',trim($params['goods_name'])],['is_on_sale'=>1]]]); $goods_ids = array_column($list,'id'); if($is_bool){ $goods_id = array_intersect($goods_id,$goods_ids); $where[] = ['goods_id'=>$goods_id]; }else{ $where[] = ['goods_id'=>$goods_ids]; } }else{ if($is_bool){ $where[] = ['goods_id'=>$goods_id]; } } $params['where'] = $where; $params['select'] = 'id,goods_id'; $params['with'] = ['goods' => function ($query) { $select = 'id,goods_name,price,cover_pic,bannar_pic,is_attr,attr_groups,attr_groups_format,is_on_sale,status'; $query->select($select)->with(['attr'=>function($query){ $select = 'id,goods_id ,name,sign_id,stock,price,original_price,goods_no,weight,pic_url'; $query->select($select); }]); }]; $params['order'] = 'id desc'; $list = BlindBoxGoods::listPage($params, false); // 剔除下架和删除的商品 $goods_list = array_values(array_filter($list['list'], function($item) { return $item['goods']['is_on_sale'] && $item['goods']['status']; })); $list['list'] = $goods_list; return $this->success('操作成功', $list); } }