82 lines
2.3 KiB
PHP
82 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: home
|
|
* Date: 2019/6/21
|
|
* Time: 14:13
|
|
*/
|
|
|
|
namespace app\service;
|
|
|
|
|
|
use app\model\UserDetail;
|
|
use app\model\UserInfo;
|
|
use app\util\ListCountData;
|
|
use think\facade\Config;
|
|
|
|
class UserService
|
|
{
|
|
const AllData = -1;
|
|
|
|
|
|
public static function search(
|
|
int $isFirst = -1, int $gender = -1, int $province = -1, int $city = -1, string $name = null, int $page = 1, int $pageSize = 20
|
|
)
|
|
{
|
|
$userDetail = new UserDetail();
|
|
$userInfo = new UserInfo();
|
|
|
|
$model = $userDetail->db()->alias('d')
|
|
->join($userInfo->getTableName() . ' u', 'u.id = d.uid');
|
|
|
|
// 首次进藏
|
|
if ($isFirst != self::AllData) {
|
|
$model->where('is_first_to_tibet', $isFirst);
|
|
}
|
|
// 性别
|
|
if ($gender != self::AllData) {
|
|
$model->where('gender', $gender);
|
|
}
|
|
// 性别
|
|
if ($province != self::AllData) {
|
|
$model->where('province', $province);
|
|
}
|
|
// 性别
|
|
if ($city != self::AllData) {
|
|
$model->where('city', $city);
|
|
}
|
|
if (!empty($name)) {
|
|
//, ['name' => ""]
|
|
$model->where("(u.nickname LIKE '%{$name}%' OR d.realname LIKE '%{$name}%')");
|
|
}
|
|
|
|
$dataArray = $model->limit(($page - 1) & $pageSize, $pageSize)// 分页
|
|
->field('u.nickname,u.open_id,u.avatar,d.*')// 查询字段
|
|
->select()->toArray(); // 获取结果
|
|
$count = $userInfo->count(); // 查询总数
|
|
self::parseArray($dataArray);
|
|
|
|
return ListCountData::Create($count, $dataArray);
|
|
}
|
|
|
|
private static function parseArray(&$dataArray)
|
|
{
|
|
$userData = Config::get('app.user.subject');
|
|
foreach ($dataArray as $key => &$item) {
|
|
// $item['is_first_to_tibet'] = $item['is_first_to_tibet'] == 1 ? '是' : '否';
|
|
$item['smoke'] = $userData['smoke'][$item['smoke']];
|
|
$item['medical_history'] = empty($item['medical_history']) ?[]: self::getDataFromArray(
|
|
$userData['medical_history'],
|
|
explode(',', $item['medical_history'])
|
|
);
|
|
}
|
|
}
|
|
|
|
private static function getDataFromArray(array $datas, array $keys)
|
|
{
|
|
foreach ($keys as $key => $v) {
|
|
$keys[$key] = $datas[$v];
|
|
}
|
|
return $keys;
|
|
}
|
|
} |