first commit
This commit is contained in:
201
芳林公司项目/www.zhiyuanhelp.com/application/api/model/User.php
Normal file
201
芳林公司项目/www.zhiyuanhelp.com/application/api/model/User.php
Normal file
@@ -0,0 +1,201 @@
|
||||
<?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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user