api/app/service/UserService.php
2019-06-22 22:03:22 +08:00

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