init: 项目初始代码
This commit is contained in:
107
app/api/model/Investment.php
Normal file
107
app/api/model/Investment.php
Normal file
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
/**
|
||||
* 招商信息模型
|
||||
*/
|
||||
class Investment extends BaseModel
|
||||
{
|
||||
protected $schema = [
|
||||
'id' => 'int',
|
||||
'platform_id' => 'int',
|
||||
'language_id' => 'int',
|
||||
'site_id' => 'int',
|
||||
'country_id' => 'int',
|
||||
'province_id' => 'int',
|
||||
'city_id' => 'int',
|
||||
'from' => 'string',
|
||||
'area' => 'string',
|
||||
'phone' => 'string',
|
||||
'name' => 'string',
|
||||
'email' => 'string',
|
||||
'wechat' => 'string',
|
||||
'qq' => 'string',
|
||||
'desc' => 'string',
|
||||
'sort' => 'int',
|
||||
'is_open' => 'int',
|
||||
'create_time' => 'int',
|
||||
'update_time' => 'int'
|
||||
];
|
||||
|
||||
/**
|
||||
* 查看列表数据
|
||||
* @param int $page 分页页码
|
||||
* @param int $pageSize 分页类目数量
|
||||
* @param array $field 需要输入的字段,默认为全部输出,筛选表字段
|
||||
* @param array $vague 需要进行模糊查询的字段,如: a like %a%
|
||||
* @param array $focus 精确搜索条件,如a=1,b=2这种精确等于某个值的
|
||||
* @param array $order 排序字段,如:['id'=>'desc','sort'=>'desc']
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getIndexList(int $page,int $pageSize,array $field = [], array $vague = [],array $focus = [],array $order = []):array
|
||||
{
|
||||
$fields = array_keys($this->schema);
|
||||
$collection = $this->field($field)->where(function ($query) use ($fields,$focus) {
|
||||
//精准查询
|
||||
if (!empty($focus)) {
|
||||
foreach ($focus as $key => $item) {
|
||||
if (in_array($key,$fields)) {
|
||||
$query->where($key,$item);
|
||||
}
|
||||
}
|
||||
}
|
||||
})->where(function($query) use ($fields,$vague) {
|
||||
//模糊查询
|
||||
if (!empty($vague)) {
|
||||
$query->whereOr('phone','like',"%".$vague['keyword']."%");
|
||||
$query->whereOr('name','like',"%".$vague['keyword']."%");
|
||||
$query->whereOr('wechat','like',"%".$vague['keyword']."%");
|
||||
$query->whereOr('qq','like',"%".$vague['keyword']."%");
|
||||
$query->whereOr('email','like',"%".$vague['keyword']."%");
|
||||
}
|
||||
})->order($order);
|
||||
//判断是否需要分页
|
||||
if (0 == $page || 0 == $pageSize) {
|
||||
//不需要分页
|
||||
return $collection->select()->toArray();
|
||||
} else {
|
||||
//需要分布
|
||||
$totalNum = $collection->count();
|
||||
$data = $collection->page($page)->limit($pageSize)->select()->toArray();;
|
||||
return ['count'=>$totalNum,'data'=>$data];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过ID获取数据
|
||||
* @param $ids
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getExportData($ids): array
|
||||
{
|
||||
$result = $this->whereIn($this->pk,$ids['ids'])->order('create_time','desc')->select()->toArray();
|
||||
foreach ($result as &$item){
|
||||
$item['platform_id'] = $this->getPlatformName($item['platform_id']);
|
||||
$item['language_id'] = $item['site_id'] = $this->getLanguageName($item['site_id']);
|
||||
$item['country_id'] = '中国';
|
||||
$item['province_id'] = $this->getAreaNameById($item['province_id']);
|
||||
$item['city_id'] = $this->getAreaNameById($item['city_id']);
|
||||
$item['is_open'] = $item['is_open'] == 0 ? '同意同类厂家查看,以便获得更多产品代理机会' : '同意意向厂家查看';
|
||||
unset($item['area']);
|
||||
unset($item['qq']);
|
||||
unset($item['sort']);
|
||||
unset($item['update_time']);
|
||||
unset($item['email']);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user