glhcp/server/app/api/controller/Demand.php

92 lines
2.4 KiB
PHP

<?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'] ?: '',
'create_time' => time(),
]);
return JsonServer::success('报名成功');
}
}