<?php namespace app\api\controller; use app\common\basics\Api; use app\common\model\Demand As thisModel; use app\common\model\DemandReport; use app\common\server\JsonServer; use think\facade\Validate; use think\response\Json; //需求相关 class Demand extends Api { public $like_not_need_login = ['lists', 'detail']; /*** * 列表 */ public function lists() { try { $page = input('page_size/d', 1); $limit = input('page_no/d', 10); $page = $page ?: 1; $limit = $limit ?: 10; $where = []; $order = [ 'id' => 'desc' ]; $count = thisModel::where($where)->count(); $list = thisModel::withCount(['reports'])->field(['id', 'name', 'create_time']) ->where($where) ->order($order) ->page($page,$limit) ->select() ->toArray(); $data = [ 'list' => $list, 'page_no' => $page, 'page_size' => $limit, 'count' => $count, ]; return JsonServer::success('获取成功', $data); } catch (\Exception $e) { return JsonServer::error('获取失败'); } } public function detail() { $id = input('id/d', 0); if (!$item = thisModel::withCount(['reports'])->where('id', $id)->find()) { return JsonServer::error('记录不存在'); } return JsonServer::success('获取成功', $item->toArray()); } public function report(): Json { $input = input('post.'); $rule = [ 'demand_id|需求' => 'require|number', 'name|姓名' => 'require|min:2|max:50', 'phone|手机' => 'require|mobile', // 'company|公司' => '', // 'price|报价' => '', ]; $validate = Validate::rule($rule); if (!$validate->check($input)) { return JsonServer::error($validate->getError()); } DemandReport::create([ 'demand_id' => $input['demand_id'], 'name' => $input['name'], 'phone' => $input['phone'], 'company' => $input['company'] ?? '', 'price' => $input['price'] ?? '', 'remarks' => $input['remarks'] ?? '', 'create_time' => time(), ]); return JsonServer::success('报名成功'); } }