init: 项目初始代码

This commit is contained in:
2026-10-14 14:00:29 +08:00
commit cc434cf89f
464 changed files with 66984 additions and 0 deletions

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