UID, ]; $category_model = new FireExpertCategory(); $dataList = $category_model->getAllData($where, '*', 'sort desc'); View::assign('dataList', $dataList); return View::fetch(); } /** * 添加分类 */ public function categoryAdd() { $category_model = new FireExpertCategory(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; $res = $category_model->dataUpdate($data); if (!$res) { return sendErrorMessage(); } return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $category_model->getOneData(['id' => $id]); View::assign('data', $data); return View::fetch('categoryadd'); } } /** * 修改分类 */ public function categoryUpdate() { return $this->categoryadd(); } /** * 专家列表 * @return string */ public function expert() { $search = input('get.'); autoSearch(['time', 'keyword','phone', 'category_id', 'status','is_publish'], $search); $order_model = new FireExpertOrder(); $follow_model = new FireExpertFollow(); $expert_model = new FireExpert(); $category_model = new FireExpertCategory(); $where = [['uid','=',UID]]; $hasWhere = []; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time','between time', [$time[0], $time[1]]]; } if ($search['keyword']) { $where[] = ['name','like', '%' . $search['keyword'] . '%']; } if ($search['is_publish'] !== '') { $where []= ['is_publish','=',$search['is_publish']]; } if ($search['category_id'] != '') { $where[] = ['category_id','=',$search['category_id']]; } if ($search['status'] != '') { $where[] = ['status','=',$search['status']]; } if ($search['phone']) { $hasWhere[] = ['mobile_phone','like', '%' . $search['phone'] . '%']; } $where = $expert_model->whereChange($where); session('where',$where); session('hasWhere',$hasWhere); $dataList = $expert_model::hasWhere('userPhone',$hasWhere)->with(['userPhone','expertCategory','expertCommission'])->where($where)->order('id desc') ->paginate([ 'list_rows' => 15, 'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1", 'query' => $search ], false)->each(function ($item, $key) use($order_model,$follow_model){ $item['order_number'] = $order_model->where([['expert_id','=',$item['id']],['status','in',[2,3,4]]])->count(); $item['follow_number'] = $follow_model->where([['expert_id','=',$item['id']]])->count(); $item['status_text'] = $item['status_text']; return $item; }); $categoryList = $category_model->getAllData(['uid' => UID], 'id,name', 'sort desc'); $attach = [ 'total_html' => [['总数', $dataList->total()]], ]; View::assign('attach', $attach); View::assign('search', $search); View::assign('dataList', $dataList); View::assign('categoryList', $categoryList); return View::fetch(); } /** * 专家列表导出 * @return mixed */ public function expertExport() { $where = session('where'); $hasWhere = session('hasWhere'); $order_model = new FireExpertOrder(); $follow_model = new FireExpertFollow(); $expert_model = new FireExpert(); $dataList = $expert_model::hasWhere('userPhone',$hasWhere) ->with(['userPhone','expertCategory','expertCommission']) ->where($where)->order('id desc')->select()->each(function ($item, $key) use($order_model,$follow_model){ $item['order_number'] = $order_model->where([['expert_id','=',$item['id']],['status','in',[2,3,4]]])->count(); $item['follow_number'] = $follow_model->where([['expert_id','=',$item['id']]])->count(); $item['status_text'] = $item['status_text']; return $item; }); foreach ($dataList as $key => $value) { $data[$key] = [ $value['id'], //ID $value['name'], //专家名称 $value['user_mobile_phone'], //专家手机号 $value['brief'], //简介 $value['introduce'], //介绍 $value['category_name'], //分类名称 $value['status_text'], //状态 $value['total_commission'], //累计收入 $value['commission'], //当前余额 $value['order_number'], //预约量 $value['follow_number'], //粉丝数 $value['is_publish'] == 1?"未发布":"已发布", //是否发布 $value['is_recommend'] == 1?"未推荐":"已推荐", //是否推荐 $value['create_time'], //创建时间 ]; }; $fileName = "专家列表"; $headArr = ["ID", "专家名称", '专家手机号', "简介", "介绍", "分类名称", "状态", "累计收入", "当前余额", "预约量", "粉丝数", "是否发布", "是否推荐", "创建时间"]; $msg = ''; $excel_class = new Excel(); $res = $excel_class->excelExport($fileName, $headArr, $data, $msg); return $res; } /** * 专家详情 * @return string */ public function expertDetail() { $expert_model = new FireExpert(); if (request()->isPost()) { $data = input('post.'); if ($data['name'] == "") { return sendErrorMessage(1,'请填写新闻标题'); } $data['uid'] = UID; Db::startTrans(); $news_id = $expert_model->dataUpdate($data); if (!$news_id) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $expert_model->with(['expertCategory'])->where(['id' => $id])->find(); View::assign('data', $data); return View::fetch('expertdetail'); } } /** * 专家审核通过 * @return \think\response\Json */ public function expertAdopt() { $id = input('param.id', 0); if (empty($id)) { return sendErrorMessage(1, '参数错误,审核状态变更失败!'); } $expert_model = new FireExpert(); Db::startTrans(); $res = $expert_model->where(['id'=>$id])->update(['status'=>2]); if ($res === false) { Db::rollback(); return json($res); } Db::commit(); $notice_logic = new Notice(); $expert = $expert_model->getOneData(['id'=>$id]); $notice_logic->examineNotice($expert['user_id'],1,2); return sendSuccessMessage('', '审核成功'); } /** * 专家审核拒绝 * @return \think\response\Json */ public function expertRefuse() { $expert_model = new FireExpert(); if (request()->isPost()) { $data = input(); $expert_model = new FireExpert(); Db::startTrans(); $res = $expert_model->where(['id'=>$data['id']])->update(['status'=>3,'examine_idea'=>$data['examine_idea']]); if ($res === false) { Db::rollback(); return sendErrorMessage(1, '审核失败'); } Db::commit(); $notice_logic = new Notice(); $expert = $expert_model->getOneData(['id'=>$data['id']]); $notice_logic->examineNotice($expert['user_id'],1,3); return sendSuccessMessage('', '审核拒绝成功'); } else { $id = input('param.id'); $data = $expert_model->getOneData(['id' => $id]); View::assign('data', $data); return View::fetch('expertrefuse'); } } /** * 订单列表 * @return string */ public function order() { $search = input('get.'); autoSearch(['time', 'status','expert_name', 'mobile_phone'], $search); $order_model = new FireExpertOrder(); $where = [['uid','=',UID]]; $hasWhere = []; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time','between time', [$time[0], $time[1]]]; } if ($search['status'] !== '') { $where []= ['status','=',$search['status']]; } if ($search['expert_name']) { $where[] = ['expert_name','like', '%' . $search['expert_name'] . '%']; } if ($search['mobile_phone']) { $hasWhere[] = ['mobile_phone','like', '%' . $search['mobile_phone'] . '%']; } $where = $order_model->whereChange($where); session('where',$where); session('hasWhere',$hasWhere); $dataList = $order_model::hasWhere('orderUserData',$hasWhere)->with(['orderUserData','orderUser'])->where($where)->order('id desc') ->paginate([ 'list_rows' => 15, 'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1", 'query' => $search ], false)->each(function ($item, $key) { $item['status_text'] = $item['status_text']; return $item; }); $attach = [ 'total_html' => [['总数', $dataList->total()]], ]; View::assign('attach', $attach); View::assign('search', $search); View::assign('dataList', $dataList); return View::fetch(); } public function orderExport() { $where = session('where'); $hasWhere = session('hasWhere'); $order_model = new FireExpertOrder(); $dataList = $order_model::hasWhere('orderUserData',$hasWhere)->with(['orderUserData','orderUser'])->where($where)->order('id desc') ->select()->each(function ($item, $key) { $item['status_text'] = $item['status_text']; return $item; }); foreach ($dataList as $key => $value) { $data[$key] = [ $value['id'], //ID $value['nick_name'].'-'.$value['mobile_phone'], //用户 $value['pay_money'], //价格 $value['expert_name'], //专家 $value['status_text'], //状态 $value['create_time'], //创建时间 ]; }; $fileName = "专家订单"; $headArr = ["ID", "用户", '价格', "专家", "状态", "创建时间"]; $msg = ''; $excel_class = new Excel(); $res = $excel_class->excelExport($fileName, $headArr, $data, $msg); return $res; } /** * 订单详情 * @return string */ public function orderDetail() { $order_model = new FireExpertOrder(); $order_ask_model = new FireExpertOrderAsk(); $order_review_model = new FireExpertOrderReview(); if (request()->isPost()) { $data = input('post.'); if ($data['name'] == "") { return sendErrorMessage(1,'请填写新闻标题'); } $data['uid'] = UID; Db::startTrans(); $news_id = $order_model->dataUpdate($data); if (!$news_id) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $order_model->with(['orderUserData'])->where(['id' => $id])->find(); $order_ask = $order_ask_model->where(['order_id'=>$id])->select(); $order_review = $order_review_model->with(['userInfo'])->where(['order_id'=>$id])->field('id,user_id,star,content,is_reply,reply,create_time')->find(); View::assign('order_ask', $order_ask); View::assign('order_review', $order_review); View::assign('data', $data); return View::fetch('orderdetail'); } } /** * 评价列表 * @return string */ public function review() { $search = input('get.'); autoSearch(['time', 'star','keyword'], $search); $review_model = new FireExpertOrderReview(); $where = [['uid','=',UID]]; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time','between time', [$time[0], $time[1]]]; } if ($search['star'] !== '') { $where []= ['star','=',$search['star']]; } if ($search['keyword']) { $where[] = ['content','like', '%' . $search['keyword'] . '%']; } $dataList = $review_model->with(['reviewOrder','userInfo'])->where($where)->order('id desc') ->paginate([ 'list_rows' => 15, 'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1", 'query' => $search ], false)->each(function ($item, $key) { $item['status_text'] = $item['status_text']; return $item; }); View::assign('search', $search); View::assign('dataList', $dataList); return View::fetch(); } /** * 评价详情 * @return string */ public function reviewDetail() { $order_review_model = new FireExpertOrderReview(); if (request()->isPost()) { $data = input('post.'); if ($data['name'] == "") { return sendErrorMessage(1,'请填写新闻标题'); } $data['uid'] = UID; Db::startTrans(); $news_id = $order_review_model->dataUpdate($data); if (!$news_id) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $order_review_model->with(['userInfo','reviewOrder'])->where(['id' => $id])->find(); View::assign('data', $data); return View::fetch('reviewdetail'); } } }