request->isAjax) { if (\Yii::$app->request->isGet) { //商品列表筛选 $params = Yii::$app->request->get(); $params['where'] = [['mall_id' => $this->mall_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]]; if (isset($params['comment_type'])) { switch ($params['comment_type']) { case 1: $params['where'][]=['in','score',[0,1]]; break; case 2: $params['where'][]=['in','score',[2,3]]; break; case 3: $params['where'][]=['in','score',[4,5]]; break; default: break; } } if (isset($params['type'])&&!empty($params['keyword'])) { switch ($params['type']) { case 1: //昵称 $user_list = User::findAll(['nickname'=>$params['keyword']]); $user_id_arr = array_column($user_list,'id'); $params['where'][]=['or',['in','user_id',$user_id_arr],['like','virtual_user',$params['keyword']]]; break; case 2: //商品名称 $goodsIds = Goods::find()->where(['like', 'goods_name', $params['keyword']]) ->andWhere(['status' => [StatusEnum::DISABLED, StatusEnum::ENABLED]]) ->select('id')->asArray()->column(); if (MallAddons::isInstall($this->mall_id, 'Store')) { $storeGoodsIds = StoreGoods::find()->where(['like', 'goods_name', $params['keyword']]) ->andWhere(['status' => [StatusEnum::DISABLED, StatusEnum::ENABLED]]) ->select('id')->asArray()->column(); $goodsIds = array_merge($goodsIds, $storeGoodsIds); } $params['where'][]=['in', 'goods_id', $goodsIds]; break; case 3: //内容 $params['where'][]=['like','content',$params['keyword']]; break; default: break; } } $params['with'] = [ 'goods' => function ($query) { $query->select('id,goods_name,cover_pic'); }, 'order' => function ($query) { $query->select('id, order_no'); }, 'users' => function ($query) { $query->select('id,nickname'); }]; $params['order'] = ['created_at' => SORT_DESC]; $page_data = OrderComments::listPage($params); /* 因为评论列表并未区分所评论的商品是门店还是平台商品。所以这里需要处理获取对应商品名称 */ if (!empty($page_data['list'])) { foreach ($page_data['list'] as &$item) { $item['goodsSource'] = 1; if (!empty($item['store_id'])) { // 门店 $item['goods'] = StoreGoods::find() ->select('id, goods_name, cover_pic') ->where(['id' => $item['goods_id'], 'store_id' => $item['store_id'], 'status' => [StatusEnum::DISABLED, StatusEnum::ENABLED]])->asArray()->one(); $item['goodsSource'] = 2; } if (!empty($item['mch_id'])) { $item['goodsSource'] = 3; } } unset($item); } if ($page_data === false) return $this->error(OrderComments::getStaticError()); return $this->success('操作成功', $page_data); } } return $this->render($this->action->id); } /** * 置顶 * @Author: hua * @DateTime: 2021/10/7 16:27 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionUpdateTop() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['id', 'is_top'], 'required'], [['id', 'is_top'], 'integer'] ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['field'] = ['is_top' => $params['is_top']]; $res = OrderComments::updateData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } } /** * 隐藏/显示 * @Author: hua * @DateTime: 2021/10/7 16:27 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionShow() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['id', 'is_show'], 'required'], [['id', 'is_show'], 'integer'] ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['field'] = [ 'status' => $params['is_show'] ]; $res = OrderComments::updateData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } } /** * 删除 * @Author: hua * @DateTime: 2021/10/7 16:53 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void * @throws Exception */ public function actionDestroy() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['id'], 'required'], [['id'], 'integer'] ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['field'] = [ 'status' => StatusEnum::DELETE ]; $res = OrderComments::updateData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } } /** * 商家回复 * @Author: hua * @DateTime: 2021/10/7 16:59 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void * @throws Exception */ public function actionBatchReply() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['batch_ids'], 'required'], [['template_id', 'reply_type', 'reply_text'], 'safe'] ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); if ($params['reply_type'] == 1) { $params['field'] = [ 'reply_content' => $params['reply_text'] ]; } if ($params['reply_type'] == 2) { $result = OrderCommentsTemplates::findOne($params['template_id']); if(empty($result) ) return $this->error('模板id无效'); $params['field'] = [ 'reply_content' => $result->content, ]; } $params['id'] = $params['batch_ids']; $res = OrderComments::updateData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } } /** * 批量删除 * @Author: hua * @DateTime: 2021/10/7 17:20 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void * @throws Exception */ public function actionBatchDestroy() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['batch_ids'], 'required'], ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['field'] = [ 'status' => StatusEnum::DELETE ]; $params['id'] = $params['batch_ids']; $res = OrderComments::updateData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } } /** * 批量隐藏 * @Author: hua * @DateTime: 2021/10/7 17:22 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void * @throws Exception */ public function actionBatchUpdateStatus() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['batch_ids'], 'required'], ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['field'] = [ 'status' => StatusEnum::DISABLED ]; $params['id'] = $params['batch_ids']; $res = OrderComments::updateData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } } /** * 编辑 * @Author: hua * @DateTime: 2021/10/7 18:40 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void * @throws \yii\db\Exception */ public function actionEdit() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->post(); $rules = [ [['virtual_user', 'goods_id', 'goods_name','virtual_time','score'], 'required'], [['id','status','virtual_avatar','pic_url','content'], 'safe'] ]; $res = Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $params['is_virtual'] = 1; $params['pic_url'] = $params['pic_url']??[]; $res = OrderComments::setData($params); if ($res === false) return $this->error(OrderComments::getStaticError()); return $this->success(); } return $this->render($this->action->id); } /** * 商品搜索 * @Author: hua * @DateTime: 2021/10/7 18:42 * @Copyright: copyright (c) 2021 广东七件事集团 * @return \yii\web\Response */ public function actionGoodsSearch() { if (\Yii::$app->request->isAjax) { $params = Yii::$app->request->get(); $where = [['mall_id' => $this->mall_id], ['status' => [StatusEnum::ENABLED]],['is_on_sale'=>1]]; if(!empty($params['keyword'])){ $where[]=['like','goods_name',$params['keyword']]; } unset($params['keyword']); $params['where'] = $where; $params['limit'] = 100; $params['order'] = 'sort ASC,id DESC'; $list = Goods::listPage($params); if(!empty($list['list'])){ foreach ($list['list'] as &$v){ $v['name'] = $v['goods_name']; } } return $this->success('',$list); } } }