201 lines
6.5 KiB
PHP
201 lines
6.5 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: Administrator
|
|
* Date: 2020/4/13
|
|
* Time: 15:27
|
|
*/
|
|
|
|
namespace app\api\model;
|
|
|
|
|
|
use think\Db;
|
|
use think\Log;
|
|
use think\Model;
|
|
|
|
class User extends Model
|
|
{
|
|
protected $table = 'users';
|
|
|
|
/*
|
|
* 用户登录并返回信息
|
|
* @param $data array 插入用户信息,并返回用户信息
|
|
* */
|
|
public static function addUserInfo($data){
|
|
|
|
$array = array();
|
|
$array['phone'] = $data['phone'];
|
|
$array['wenli'] = $data['subType'];
|
|
$array['chooseLevel'] = $data['chooseLevel'];
|
|
$array['mykemu'] = sortStr($data['mySub']);
|
|
$array['score'] = $data['score'];
|
|
$array['province'] = $data['province']*10000;
|
|
$array['add_time'] = time();
|
|
|
|
//默认普通高考,检测并返回高考类型
|
|
if($array['province']){
|
|
$array['provinceType'] = 3;
|
|
$proSubArr = config('setsub.diffProTest');
|
|
$provinceID = config('province.province')[$array['province']]['code'];
|
|
if(in_array($provinceID,$proSubArr[1])){
|
|
$array['provinceType'] = 1;
|
|
}elseif(in_array($provinceID,$proSubArr[2])){
|
|
$array['provinceType'] = 2;
|
|
}
|
|
|
|
}
|
|
|
|
//科目中文取
|
|
$array['subName'] = empty(($array['mykemu']))?'':changeSubString($array['mykemu']);
|
|
|
|
|
|
//手机号16进制转62进制并加随机两位数据生成昵称
|
|
$array['user_name'] = from10_to62($data['phone']).getRandChar(2);
|
|
unset($data['code']);
|
|
$resInfo = self::insertGetId($array);
|
|
|
|
if($resInfo){
|
|
//省份配置表
|
|
$proConfig = config('province.province');
|
|
$array['uid'] = $resInfo;
|
|
$array['phone'] = substr_replace($array['phone'],'****',3,4);
|
|
unset($array['add_time']);
|
|
unset($array['last_edit_gaokao']);
|
|
//文理科文字返回
|
|
if($array['wenli']){
|
|
$array['subTypeName'] = $array['wenli'] == 1 ? '文科' : '理科';
|
|
unset($array['subName']);
|
|
}
|
|
//省份code和文字获取
|
|
if($array['province']){
|
|
$array['proName'] = $proConfig[$array['province']]['title'];
|
|
$array['userPro'] = $proConfig[$array['province']]['code'];
|
|
}
|
|
return $array;
|
|
}else{
|
|
return api_return("操作失败");
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* 通过手机号查询用户信息
|
|
* */
|
|
public static function getUserInfoByPhone($telnum){
|
|
|
|
$result = self::field('id as uid,phone,user_name,score,wenli,province,mykemu,chooseLevel,subName,provinceType')->where('phone','=',$telnum)->find();
|
|
if($result){
|
|
$proConfig = config('province.province');
|
|
//文理科文字返回
|
|
if($result['wenli']){
|
|
$result['subTypeName'] = $result['wenli'] == 1 ? '文科' : '理科';
|
|
unset($result['subName']);
|
|
}
|
|
|
|
//省份code和文字获取
|
|
if($result['province']){
|
|
$result['proName'] = $proConfig[$result['province']]['title'];
|
|
$result['userPro'] = $proConfig[$result['province']]['code'];
|
|
}
|
|
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
/*
|
|
*通过手机号查询用户是否存在
|
|
* */
|
|
public static function checkUserByTelnum($telnum){
|
|
$count = self::where('phone','=',$telnum)->count();
|
|
return $count;
|
|
}
|
|
|
|
/*
|
|
* 修改用户信息
|
|
* */
|
|
public static function editUserInfo($data){
|
|
$array = array();
|
|
$array['wenli'] = $data['subType'];
|
|
$array['chooseLevel'] = $data['chooseLevel'];
|
|
$array['mykemu'] = sortStr($data['mySub']);
|
|
$array['province'] = $data['province']*10000;
|
|
$array['score'] = $data['score'];
|
|
$array['last_edit_gaokao'] = time();
|
|
|
|
//默认普通高考,检测并返回高考类型
|
|
$array['provinceType'] = 3;
|
|
$proSubArr = config('setsub.diffProTest');
|
|
$provinceID = config('province.province')[$array['province']]['code'];
|
|
if(in_array($provinceID,$proSubArr[1])){
|
|
$array['provinceType'] = 1;
|
|
}elseif(in_array($provinceID,$proSubArr[2])){
|
|
$array['provinceType'] = 2;
|
|
}
|
|
|
|
//科目中文取
|
|
$array['subName'] = empty(($array['mykemu']))?'':changeSubString($array['mykemu']);
|
|
|
|
$result = self::where('id','=',$data['user_id'])->update($array);
|
|
|
|
//返回数据给前端
|
|
if($result){
|
|
$resUser = self::field('id as uid,phone,user_name,score,wenli,province,mykemu,chooseLevel,subName,provinceType')->where('id','=',$data['user_id'])->find();
|
|
$proConfig = config('province.province');
|
|
$resUser['phone'] = substr_replace($resUser['phone'],'****',3,4);
|
|
$resUser['token'] = $data['token'];
|
|
|
|
//文理科文字返回
|
|
if($resUser['wenli']){
|
|
$resUser['subTypeName'] = $resUser['wenli']== 1 ? '文科' : '理科';
|
|
unset($resUser['subName']);
|
|
}
|
|
|
|
//省份code和文字获取
|
|
if($resUser['province']){
|
|
$resUser['proName'] = $proConfig[$resUser['province']]['title'];
|
|
$resUser['userPro'] = $proConfig[$resUser['province']]['code'];
|
|
}
|
|
}else{
|
|
$resUser = $result;
|
|
}
|
|
return $resUser;
|
|
}
|
|
|
|
/*
|
|
* 查看用户是否具有查询权限
|
|
* @param $type 权限类型
|
|
* */
|
|
public static function checkUserAuthByUserID($userID,$type,$province,$score,$subType = 0,$mySub = 0){
|
|
$result = Db::table('orders')->field('vip')->where([['user_id','=',$userID],['stu_yzy_province','=',$province],['score','=',$score],['status','=',1],
|
|
['wenli','=',$subType],['mykemu','=',$mySub],['vip','in',('1,2,3')]])
|
|
->select();
|
|
$resVip = array_column($result, 'vip');
|
|
$tips = 0;
|
|
switch ($type){
|
|
case 1:
|
|
if(!in_array($type,$resVip)){
|
|
$tips = 1;
|
|
}
|
|
break;
|
|
case 2:
|
|
if(!in_array(1,$resVip)){
|
|
$tips = 1;
|
|
}elseif(!in_array($type,$resVip)){
|
|
$tips = 2;
|
|
}
|
|
break;
|
|
case 3:
|
|
if(!in_array(1,$resVip)){
|
|
$tips = 1;
|
|
}elseif(!in_array($type,$resVip)){
|
|
$tips = 3;
|
|
}
|
|
break;
|
|
}
|
|
|
|
return $tips;
|
|
|
|
}
|
|
|
|
} |