Files
ntonpower/app/api/model/Investment.php
2026-10-14 14:00:29 +08:00

108 lines
4.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;
}
}