request->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($get,[ [['keyword'], 'safe'], [['limit'],'default','value' => '100'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where = []; if($get['keyword']) $where[] = ['like', 'name', $get['keyword']]; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['>', 'status', StatusEnum::DISABLED]; $order = 'sort,created_at desc'; $params = array('where' => $where, 'order'=>$order, 'limit' => $get['limit'],'select' =>'id,mall_id,sort,name'); $list = AddonsXhsCate::listPage($params, false, true); //获取配置 $data = Yii::$app->services->setting->addons->get($this->mall_id, XhsEnum::ADDONS_NAME, 'basic'); $result_array = explode(',',$data['user_level_limit']); $config = Yii::$app->services->setting->addons->get($this->mall_id,XhsEnum::ADDONS_NAME , 'basic'); if(in_array($this->user['level'],$result_array)||empty($data['user_level_limit'])) { $config['is_publish'] = '1'; } else { $config['is_publish'] = '0'; } return $this->success('操作成功',compact('list','config')); } } /** * @Author: ltm * 详细 * @DateTime: 2022/1/7 0007 18:06 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return string */ public function actionDetail(){ if (\Yii::$app->request->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($get,[ [['id'], 'required'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['>=', 'status', StatusEnum::DISABLED]; $where[] = ['=', 'id', $get['id']]; $comment = AddonsXhsComment::lists([['content_id' => $get['id']]]); $detail = AddonsXhsContent::getOne($where, true,['goods','user']); $detail['source'] = json_decode($detail['source']); $like = AddonsXhsUserLike::getOne([['content_id' => $get['id']],['user_id' => $this->user_id]]); if($like && $like['is_likes'] == StatusEnum::ENABLED) { $detail['is_likes'] = StatusEnum::ENABLED; }else { $detail['is_likes'] = StatusEnum::DISABLED; } $follow = UserFollow::getOne([['follow_id' => $detail['user_id']],['user_id' => $this->user_id]]); if($follow && $follow['status'] == StatusEnum::ENABLED) { $detail['follow'] = StatusEnum::ENABLED; }else { $detail['follow'] = StatusEnum::DISABLED; } return $this->success('操作成功',compact('detail','comment')); } } /** * ltm * 2022/01/05 14:39 * 获取小红书列表 * @return string */ public function actionGetList() { $retuest = Yii::$app->request; if ($retuest->isPost) { $post = Yii::$app->request->post(); //检查提交的参数 $res = Yii::$app->services->validate->validate($post,[ [['id'], 'integer'], [['keyword','check_status','date_end','date_start','user_id','cate_id','page'], 'safe'], [['limit'],'default','value' => '15'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $post = AddonsXhsContent::exceptNullVal($post); // 根据搜索会员昵称查询用户id if (!empty($post['user_name'])) { $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'nickname', $post['user_name'] . '%', false])->asArray()->column(); $where[] = ['or',['in', 'user_id', $user_ids],['like','user_name',$post['user_name']]]; } if($post['date_start'] && $post['date_end']) $where[] = ['between', 'created_at', strtotime($post['date_start']),strtotime($post['date_end'])]; $where[] = ['=', 'mall_id', $this->mall_id]; if($post['keyword']) $where[] = ['or',['like','title',$post['keyword']],['like', 'main_text', $post['keyword']]]; if($post['cate_id']) $where[] = ['=', 'cate_id', $post['cate_id']]; if($post['user_id']) $where[] = ['=', 'user_id', $post['user_id']]; if($post['user_id'] != $this->user_id) { $where[] = ['=', 'check_status', StatusEnum::ENABLED]; $order = 'id desc'; }else{ $order = 'is_top desc, check_status asc, id desc'; } $where[] = ['>','status',StatusEnum::DISABLED]; $params = array('where' => $where, 'order'=>$order,'limit' => $post['limit']); $params['with'] = ['user','like' => function ($query) { $query->where(['user_id' => $this->user_id]); }]; $list = AddonsXhsContent::listPage($params, false, true); if($list['list']) foreach ($list['list'] as $k => $v) { if($v['source']) $list['list'][$k]['source'] = json_decode($v['source']); if($v['like']['user_id'] == $this->user_id && $v['like']['is_likes'] == StatusEnum::ENABLED) { $list['list'][$k]['is_likes'] = StatusEnum::ENABLED; } else { $list['list'][$k]['is_likes'] = StatusEnum::DISABLED; } } $this->success('获取成功', $list); } } /** * @Author: ltm * @DateTime: 2022/1/10 0010 17:53 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return String */ public function actionGetVideoList() { $retuest = Yii::$app->request; if ($retuest->isPost) { $post = Yii::$app->request->post(); //检查提交的参数 $res = Yii::$app->services->validate->validate($post,[ [['id'], 'required'], [['title','page'], 'safe'], [['limit'],'default','value' => '15'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $post = AddonsXhsContent::exceptNullVal($post); if($post['title']) $where[] = ['=', 'title', $post['title']]; if($post['user_id'] != $this->user_id) { $where[] = ['=', 'check_status', StatusEnum::ENABLED]; $order = 'id desc'; }else{ $order = 'check_status,id desc'; } $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['>','status',StatusEnum::DISABLED]; $where[] = ['>=','content_type','2']; $where[] = ['<=','id',$post['id']]; $params = array('where' => $where, 'order'=>$order, 'limit' => $post['limit']); $params['with'] = ['user','goods','like' => function ($query) { $query->where(['user_id' => $this->user_id]); }]; $list = AddonsXhsContent::listPage($params, false, true); if($list['list']) foreach ($list['list'] as $k => $v) { if($v['source']) $list['list'][$k]['source'] = json_decode($v['source']); if($list['list'][$k]['user']){ unset($list['list'][$k]['user']['id']); $list['list'][$k] = array_merge($list['list'][$k],$list['list'][$k]['user']); unset($list['list'][$k]['user']); } if($list['list'][$k]['goods']) { $list['list'][$k]['goods']['name'] = $list['list'][$k]['goods']['goods_name']; $list['list'][$k]['goods_list'] = $list['list'][$k]['goods']; unset($list['list'][$k]['goods']); } $list['list'][$k]['related_type'] = 1;//判断商品是否显示 //配合前端修改数据结构,获取点赞数 $list['list'][$k]['share_num'] = $list['list'][$k]['shares_count']; unset($list['list'][$k]['shares_count']); $list['list'][$k]['comment_num'] = $list['list'][$k]['discuss_count']; unset($list['list'][$k]['discuss_count']); $list['list'][$k]['like_num'] = $list['list'][$k]['stars_count']; unset($list['list'][$k]['stars_count']); if($v['like']['user_id'] == $this->user_id && $v['like']['is_likes'] == StatusEnum::ENABLED) { $list['list'][$k]['is_likes'] = StatusEnum::ENABLED; } else { $list['list'][$k]['is_likes'] = StatusEnum::DISABLED; } // 判断当前用户是否对发布视频用户进行关注 $followExists = UserFollow::find() ->where(['user_id' => $this->user_id, 'follow_id' => $v['user_id'], 'status' => StatusEnum::ENABLED, 'mall_id' => $this->mall_id]) ->exists(); if ($followExists) { $list['list'][$k]['is_follow'] = StatusEnum::ENABLED; } else { $list['list'][$k]['is_follow'] = StatusEnum::DISABLED; } } $this->success('获取成功', $list); } } /** * ltm * 2021/01/05 14:39 * 提交小红书 * @return string */ public function actionEdit() { if (\Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['cate_id','title','main_text'], 'required'], [['goods_id','id','source','content_type'],'safe'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params = AddonsXhsContent::exceptNullVal($params); //var_dump($params['source']);die; if($params['source']['source'] && $params['source']['type'] == StatusEnum::ENABLED) $params['source']['cover'] = $params['source']['source'][0]; $params['source'] = json_encode($params['source']); $config = Yii::$app->services->setting->addons->get($this->mall_id, XhsEnum::ADDONS_NAME, 'basic'); if($config['is_audit']== StatusEnum::DISABLED){ //开启不需要审核 $params['check_status'] = StatusEnum::ENABLED; }else{ $params['check_status'] = StatusEnum::DISABLED; } $params['status'] = StatusEnum::ENABLED; //判断后台是否开启会员等级限制 $result_array = explode(',',$config['user_level_limit']); if($this->user['level']&&!in_array($this->user['level'],$result_array)&&$config['user_level_limit']) return $this->error('暂无权限发布'); if($params['id']) $params['updated_at'] = time(); else $params['create_at'] = time();//更新时间 $params['user_id'] = $this->user_id; $params['mall_id'] = $this->mall_id; //验证标题内容是否有敏感词汇 if ($config['is_filter'] == StatusEnum::ENABLED) { $common = new SensitiveWords(); $textStatus = $common->getTextStatus($params['main_text'],$this->mall_id); $titleStatus = $common->getTextStatus($params['title'],$this->mall_id); if ($textStatus['status'] != 0 || $titleStatus['status'] != 0 ) { $msg = $textStatus['msg'] ? $textStatus['msg'] : $titleStatus['msg']; return $this->error('敏感词过滤报错:'.$msg); } }; if($params['pic_url']) $params['pic_url'] = json_encode($params['pic_url']); $res = AddonsXhsContent::setData($params); if ($res === false) throw new Exception(AddonsXhsContent::getStaticError()); if(!$params['id']){ AddonsXhsContent::handle($this->mall_id,'','push_count',$this->user_id); } return $this->success('操作成功'); } } /** * ltm * 2021/01/06 14:39 * 用户操作,点赞,浏览商品,访问 * @return string */ public function actionHandle() { if (\Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id','type'], 'required'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $res = AddonsXhsContent::handle($this->mall_id,$params['id'],$params['type'],$this->user_id); if ($res === false) throw new Exception(AddonsXhsStatistics::getStaticError()); return $this->success('操作成功'); } } /** * ltm * 2021/01/05 14:39 * 删除 * @return string */ public function actionDel() { if (\Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id'],'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['status'] = '-1'; $params['mall_id'] = $this->mall_id; $params['updated_at'] = time(); $params['user_id'] = $this->user_id; //var_dump($params);die; $find = AddonsXhsContent::getOne([['id'=>$params['id']]],true); if($find['user_id'] != $this->user_id) return $this->error('操作失败,你无权限操作'); $res = AddonsXhsContent::setData($params); //var_dump($res); if ($res === false) throw new Exception(AddonsXhsContent::getStaticError()); return $this->success('操作成功'); } } /** * ltm * 2021/01/06 14:39 * 评论 * @return string */ public function actionComment() { if (\Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['content_id','content','is_anonymous'],'required'], [['id','score'],'safe'], ]); $params = AddonsXhsComment::exceptNullVal($params); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['user_id'] = $this->user_id; $params['mall_id'] = $this->mall_id; $config = Yii::$app->services->setting->addons->get($this->mall_id, XhsEnum::ADDONS_NAME, 'basic'); //验证标题内容是否有敏感词汇 if ($config['is_filter'] == StatusEnum::ENABLED) { $common = new SensitiveWords(); $textStatus = $common->getTextStatus($params['content'],$this->mall_id); if ($textStatus['status'] != 0) { $msg = $textStatus['msg']; return $this->error('敏感词过滤报错:'.$msg); } }; $trans = Yii::$app->db->beginTransaction(); try { if($params['id']) { $find = AddonsXhsComment::getOne([['id'=>$params['id']]],true); if($find['user_id'] != $this->user_id) return $this->error('操作失败,你无权限操作'); } $find_content = AddonsXhsContent::getOne([['id' => $params['content_id']]],true); if($find_content['check_status'] == StatusEnum::DISABLED) return $this->error('审核中不可以评论,操作失败'); $res = AddonsXhsComment::setData($params); AddonsXhsContent::handle($this->mall_id,$params['content_id'],'discuss', $this->user_id); $trans->commit(); } catch (\Exception $e) { $trans->rollBack(); $exception = FormatHelper::exception($e, "小红书点评论,访问统计操作失败"); Yii::error($exception); } if ($res === false) return $this->success('操作失败'); $data = data_to_array($res); $data['user']['avatar_url'] = $this->user['avatar_url']; $data['user']['id'] = $this->user['id']; $data['user']['nickname'] = $this->user['nickname']; return $this->success('操作成功',$data); } } /** * @Author: ltm * @DateTime: 2022/1/10 0010 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return bool */ public function actionCommentList(){ if (\Yii::$app->request->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($get,[ [['id'], 'required'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['where'][] = ['content_id' => $get['id'],'status'=>StatusEnum::ENABLED]; $params['with'] = ['user']; $params['order'] = 'is_top desc,id desc'; $comment = AddonsXhsComment::listPage($params); if($comment['list']){ foreach ($comment['list'] as $k => $v){ $comment['list'][$k]['created_at'] = date('Y-m-d H:i:s',$v['created_at']); $comment['list'][$k]['updated_at'] = date('Y-m-d H:i:s',$v['updated_at']); } } return $this->success('操作成功',$comment); } } /** * 用户点赞过数据 * @return void */ public function actionLink() { // 获取用户提交数据 $page = Yii::$app->request->post('page', 1); $limit = Yii::$app->request->post('limit', 15); //检查提交的参数 if (!is_numeric($page) || !is_numeric($limit)) { return $this->error('分页参数必须为数字'); } $user_id = $this->user_id; $mall_id = $this->mall_id; try { // 获取用户点赞过的数据 $contentIds = AddonsXhsUserLike::getLikeContentIds($user_id, $mall_id); $contentIds = array_column($contentIds, 'content_id'); // 根据点赞过的数据ID,获取点赞过的数据 $where = [ ['>', 'status', StatusEnum::DISABLED], ['in', 'id', $contentIds], ]; $order = 'check_status asc,id desc'; $params = compact('where', 'order', 'limit'); $params['with'] = [ 'user', 'like' => function ($query) use ($user_id) { $query->where(['user_id' => $user_id]); }, ]; $params['page'] = $page; $contentList = AddonsXhsContent::listPage($params, false, true); if ($contentList['list']) { foreach ($contentList['list'] as &$value) { if ($value['source']) { $value['source'] = json_decode($value['source'], true); } } unset($value); } return $this->success('请求成功', $contentList); } catch (\Exception $e) { return $this->error('请求失败'); } } // 置顶 public function actionPinned(){ if (\Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id','is_top'],'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $params['updated_at'] = time(); $params['user_id'] = $this->user_id; $find = AddonsXhsContent::getOne([['id'=>$params['id']]],true); if($find['user_id'] != $this->user_id) return $this->error('操作失败,你无权限操作'); $res = AddonsXhsContent::setData($params); if ($res === false) throw new Exception(AddonsXhsContent::getStaticError()); return $this->success('操作成功'); } } }