9
This commit is contained in:
@@ -8,6 +8,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 提现地址
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class AddressController extends BaseController{
|
||||
/**
|
||||
|
||||
@@ -56,13 +56,9 @@ class BaseController
|
||||
{
|
||||
return $this->json(1,$msg, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Apidoc\Title("上传")
|
||||
* @Apidoc\Method("POST")
|
||||
*/
|
||||
function upload(Request $request)
|
||||
protected function _upload($request)
|
||||
{
|
||||
|
||||
try{
|
||||
$user = \support\Jwt::getUser();
|
||||
}catch(\Exception $e){
|
||||
@@ -72,7 +68,7 @@ class BaseController
|
||||
$validate = Validate::rule('savePath', 'alphaNum');
|
||||
$data = ['savePath' => $savePath];
|
||||
if (!$validate->check($data)) {
|
||||
return $this->fail( '参数错误:'.$validate->getError());
|
||||
return '参数错误:'.$validate->getError();
|
||||
}
|
||||
$savePath = trim($savePath,'/');
|
||||
//$savePath = 'upload/'.$savePath.'/'.$user['id'];
|
||||
@@ -82,35 +78,43 @@ class BaseController
|
||||
$maxsize = Config('site.upload_maxsize')*1024*1024;
|
||||
//多文件上传
|
||||
$files = $request->file();
|
||||
try {
|
||||
$result = Storage::adapter('oss')
|
||||
->path($savePath)
|
||||
->size($maxsize)
|
||||
->extYes($mimetype)
|
||||
->uploads($files,0,$maxsize * count($files),false);
|
||||
$save_datas = [];
|
||||
foreach($result as $k=>$fileinfo){
|
||||
$save_datas[] = [
|
||||
'user_id' => $user['id'],
|
||||
'category' => 'default',
|
||||
'adapter' => $fileinfo->adapter,
|
||||
'origin_name' => $fileinfo->origin_name,
|
||||
'file_name' => $fileinfo->file_name,
|
||||
'size' => $fileinfo->size,
|
||||
'mime_type' => $fileinfo->mime_type,
|
||||
'extension' => $fileinfo->extension,
|
||||
'file_height' => $fileinfo->file_height,
|
||||
'file_width' => $fileinfo->file_width,
|
||||
'file_url' => $fileinfo->file_url,
|
||||
'sha1' => $fileinfo->storage_key ?:sha1_file(public_path($fileinfo->file_name)),
|
||||
'use_count' => 0,
|
||||
];
|
||||
}
|
||||
\app\model\Files::insertAll($save_datas);
|
||||
return $this->success(__('successful'),$result);
|
||||
}catch (\Exception $e){
|
||||
return $this->error($e->getMessage());
|
||||
$result = Storage::adapter('oss')
|
||||
->path($savePath)
|
||||
->size($maxsize)
|
||||
->extYes($mimetype)
|
||||
->uploads($files,0,$maxsize * count($files),false);
|
||||
$save_datas = [];
|
||||
foreach($result as $k=>$fileinfo){
|
||||
$save_datas[] = [
|
||||
'user_id' => $user['id'],
|
||||
'category' => 'default',
|
||||
'adapter' => $fileinfo->adapter,
|
||||
'origin_name' => $fileinfo->origin_name,
|
||||
'file_name' => $fileinfo->file_name,
|
||||
'size' => $fileinfo->size,
|
||||
'mime_type' => $fileinfo->mime_type,
|
||||
'extension' => $fileinfo->extension,
|
||||
'file_height' => $fileinfo->file_height,
|
||||
'file_width' => $fileinfo->file_width,
|
||||
'file_url' => $fileinfo->file_url,
|
||||
'sha1' => $fileinfo->storage_key ?:sha1_file(public_path($fileinfo->file_name)),
|
||||
'use_count' => 0,
|
||||
];
|
||||
}
|
||||
$res = \app\model\Files::saveAll($save_datas);
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* @Apidoc\Title("上传")
|
||||
* @Apidoc\Method("POST")
|
||||
*/
|
||||
function upload(Request $request,$return = false)
|
||||
{
|
||||
$res = $this->_upload($request);
|
||||
if(is_string($res)){
|
||||
return $this->fail( $res);
|
||||
}
|
||||
return $this->success(__('successful'),$res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 卡密模块
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class CardController extends BaseController{
|
||||
/**
|
||||
|
||||
@@ -46,7 +46,7 @@ class CommonController extends BaseController{
|
||||
'attachment_category','categorytype','cdkey_category','configgroup','flagtype',
|
||||
'languages','forbiddenip','fixedpage','admin_login_captcha',
|
||||
'upload_mimetype','upload_multipart','upload_multiple','upload_thumbstyle','upload_previewtpl','upload_timeout','upload_maxsize',
|
||||
'yeji_jicha_reward','suanli_rate','agent_expirs_retention','allow_currencys','allow_balance_log',
|
||||
'yeji_jicha_reward','suanli_rate','agent_expirs_retention','allow_currencys','allow_currency_logs',
|
||||
'agent_commission_total_rate','agent_commission_layer_rate','differential_commission_total_rate'
|
||||
];
|
||||
$config = array_diff_key($config, array_flip($disallowFields));
|
||||
@@ -153,7 +153,7 @@ class CommonController extends BaseController{
|
||||
'group_id' => 0,
|
||||
'region' => '86',
|
||||
'nickname' => input('nickname'),
|
||||
'avatar' => '/static/img/avatar.png',
|
||||
'avatar' => '/static/avatar/'.rand(0,17).'.png',
|
||||
];
|
||||
if ($invite_code) {
|
||||
if(strlen($invite_code) == 12){
|
||||
@@ -211,7 +211,7 @@ class CommonController extends BaseController{
|
||||
$mobile = input('mobile');
|
||||
$email = input('email');
|
||||
$password = input('password');
|
||||
$type = input(param: 'type');
|
||||
$type = input('type');
|
||||
if($type == 'mobile'){
|
||||
if (!$mobile ) {
|
||||
return $this->fail(__('Invalid username or password'));
|
||||
|
||||
@@ -34,26 +34,40 @@ class FriendCircleController extends BaseController{
|
||||
* @return void
|
||||
*/
|
||||
function info(Request $request): Response{
|
||||
$user = \support\Jwt::getUser();
|
||||
if (!$user) {
|
||||
return $this->fail('请先登录');
|
||||
$user_id = Input('user_id');
|
||||
if($user_id){
|
||||
$user_id = idDecode($user_id);
|
||||
$json= [
|
||||
'top_unread_items' =>[],
|
||||
'unread_item_ids' =>[],
|
||||
'unread_count' =>0,
|
||||
'settings' => Db::name('friend_circle_setting')->where('user_id',$user_id)->order('id','desc')->findOrEmpty()
|
||||
];
|
||||
return $this->success('ok',$json);
|
||||
}else{
|
||||
$user = \support\Jwt::getUser();
|
||||
if (!$user) {
|
||||
return $this->fail('请先登录');
|
||||
}
|
||||
$user_id = $user->id;
|
||||
$res = $this->newcount($request);
|
||||
$response = $res->rawBody();
|
||||
$json = json_decode($response,true);
|
||||
$json['data']['settings'] = Db::name('friend_circle_setting')->where('user_id',$user_id)->order('id','desc')->findOrEmpty();
|
||||
// [
|
||||
// 'bg' => '',
|
||||
// ];
|
||||
$top_unread_items = FriendCircleModel::whereIn('id',$json['data']['unread_item_ids'])
|
||||
->with(['user' => function($query) {
|
||||
$query->field('id,nickname,avatar');
|
||||
}])
|
||||
->order('id', 'desc')
|
||||
->limit(0,3)
|
||||
->select();
|
||||
$json['data']['top_unread_items'] = $top_unread_items ?: [];
|
||||
$res->withBody(json_encode($json));
|
||||
return $res;
|
||||
}
|
||||
$res = $this->newcount($request);
|
||||
$response = $res->rawBody();
|
||||
$json = json_decode($response,true);
|
||||
$json['data']['settings'] = [
|
||||
'bg' => '',
|
||||
];
|
||||
$top_unread_items = FriendCircleModel::whereIn('id',$json['data']['unread_item_ids'])
|
||||
->with(['user' => function($query) {
|
||||
$query->field('id,nickname,avatar');
|
||||
}])
|
||||
->order('id', 'desc')
|
||||
->limit(0,3)
|
||||
->select();
|
||||
$json['data']['top_unread_items'] = $top_unread_items ?: [];
|
||||
$res->withBody(json_encode($json));
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* @Apidoc\Title("列表")
|
||||
@@ -66,9 +80,12 @@ class FriendCircleController extends BaseController{
|
||||
{
|
||||
$current_user = \support\Jwt::getUser();
|
||||
$current_user_id = $current_user ? $current_user->id : 0;
|
||||
$page = (int)$request->get('page', 1);
|
||||
$limit = (int)$request->get('limit', 10);
|
||||
$user_id = $request->get('user_id', 0);
|
||||
$page = (int)Input('page', 1);
|
||||
$limit = (int)Input('limit', 10);
|
||||
$user_id = Input('user_id', 0);
|
||||
if($user_id){
|
||||
$user_id = idDecode($user_id);
|
||||
}
|
||||
|
||||
$query = FriendCircleModel::where('status', 1)
|
||||
->whereIn('user_id',$this->getFriendUserIds($current_user_id))
|
||||
@@ -86,16 +103,18 @@ class FriendCircleController extends BaseController{
|
||||
'list_rows' => $limit,
|
||||
'page' => $page,
|
||||
]);
|
||||
cache('circle_last_read_id',$list[0]['id']);
|
||||
if(!$user_id){
|
||||
cache('circle_last_read_id_'.$current_user_id,$list[0]['id']);
|
||||
}
|
||||
|
||||
|
||||
// 处理每条朋友圈数据
|
||||
$items = $list->items();
|
||||
$list->each(function($item) use ($current_user_id){
|
||||
// 获取点赞列表
|
||||
$likes = Db::name('friend_circle')->alias('f')
|
||||
$likes = Db::name('friend_circle_like')->alias('f')
|
||||
->join('user u','u.id=f.user_id')
|
||||
->where('f.id', $item->id)
|
||||
->where('f.circle_id', $item->id)
|
||||
->field('f.*,u.avatar,u.nickname')
|
||||
->order('f.created_at', 'desc')
|
||||
->limit(20)
|
||||
@@ -182,11 +201,11 @@ class FriendCircleController extends BaseController{
|
||||
if (!$user) {
|
||||
return $this->fail('请先登录');
|
||||
}
|
||||
|
||||
$circle_last_read_id = cache('circle_last_read_id') ?: 0;
|
||||
$user_id = $user->id;
|
||||
$circle_last_read_id = cache('circle_last_read_id_'.$user_id) ?: 0;
|
||||
// 统计从上次查看时间到现在新增的朋友圈数量
|
||||
$unread_item_ids = FriendCircleModel::where('status', 1)
|
||||
->whereIn('user_id',$this->getFriendUserIds($user->id))
|
||||
->whereIn('user_id',$this->getFriendUserIds($user_id))
|
||||
->where('id', '>', $circle_last_read_id)
|
||||
->order('id', 'desc')
|
||||
->column('id');
|
||||
@@ -250,7 +269,7 @@ class FriendCircleController extends BaseController{
|
||||
'status' => 1,
|
||||
]);
|
||||
|
||||
return $this->success('发布成功', ['id' => $circle->id]);
|
||||
return $this->success('发布成功', ['id' => $circle->id,'data' => $circle]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -371,15 +390,56 @@ class FriendCircleController extends BaseController{
|
||||
if (!$user_id) {
|
||||
return [];
|
||||
}
|
||||
$result = cache('friend_id_list') ?: [];
|
||||
$cache_key = 'friend_id_list_'.$user_id;
|
||||
$result = cache($cache_key) ?: [];
|
||||
if(count($result) === 0){
|
||||
$res = request()->IM->friend->getFriendList($user_id.'');
|
||||
$res = request()->IM->friend->getFriendList(idEncode($user_id));
|
||||
$friendsInfo = $res['friendsInfo'];
|
||||
foreach($friendsInfo as $k=>$v){
|
||||
array_push($result,$v['friendUser']['userID']);
|
||||
}
|
||||
cache('friend_id_list',$result,3600);
|
||||
cache($cache_key,$result,3600);
|
||||
}
|
||||
$result[] = $user_id;
|
||||
return $result;
|
||||
}
|
||||
function delete(Request $request): Response{
|
||||
$id = $request->post('id');
|
||||
$user = \support\Jwt::getUser();
|
||||
if (!$user) {
|
||||
return $this->fail('请先登录');
|
||||
}
|
||||
if($id){
|
||||
FriendCircleModel::where('id',$id)->where('user_id',$user->id)->delete();
|
||||
}
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
|
||||
function upload_bg(Request $request){
|
||||
try {
|
||||
$user = \support\Jwt::getUser();
|
||||
if (!$user) {
|
||||
return $this->fail('请先登录');
|
||||
}
|
||||
$res = $this->_upload($request);
|
||||
if(is_string($res)){
|
||||
return $this->fail( $res);
|
||||
}
|
||||
|
||||
Db::name('friend_circle_setting')->replace()->insert([
|
||||
'user_id' => $user->id,
|
||||
'bg' => $res[0]['file_name'],
|
||||
'allow_days'=>0,
|
||||
'created_at'=>0
|
||||
]);
|
||||
//$result->ss = cdnurl($result->url);
|
||||
//P($result);
|
||||
return $this->success(__('successful'),[
|
||||
'url'=>$res[0]['file_name']
|
||||
]);
|
||||
}catch (\Exception $e){
|
||||
return $this->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,6 +10,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 礼品模块
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class GiftController extends BaseController{
|
||||
/**
|
||||
|
||||
Executable
+129
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use hg\apidoc\annotation as Apidoc;
|
||||
use app\model\User;
|
||||
use app\model\Album as AlbumModel;
|
||||
|
||||
/**
|
||||
* 群组管理
|
||||
*/
|
||||
class GroupController extends BaseController
|
||||
{
|
||||
public $noNeedAuth = ['*'];
|
||||
public $noNeedLogin = [];
|
||||
/**
|
||||
* @Apidoc\Title("群相片列表")
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("group_id", type="string", require=true, desc="群ID")
|
||||
* @Apidoc\Param("page", type="int", require=true, desc="页码",default=1)
|
||||
* @Apidoc\Param("limit", type="int", require=true, desc="分页大小",default=10)
|
||||
*/
|
||||
function album_list(Request $request): Response
|
||||
{
|
||||
$user = \support\Jwt::getUser();
|
||||
$limit = $request->post('limit',10);
|
||||
$offset = $request->post('offset',0);
|
||||
$group_id = $request->post('groupID') ?:$request->post('group_id');
|
||||
//$ls = $this->get_user_in_group($group_id);
|
||||
//log_alert($ls);
|
||||
log_alert([$offset,$group_id,$limit]);
|
||||
$list = AlbumModel::where('group_id',$group_id)
|
||||
->where('id','<',$offset)
|
||||
->order('id','desc')
|
||||
->limit(0,$limit)
|
||||
->select();
|
||||
return $this->success('ok',$list);
|
||||
}
|
||||
/**
|
||||
* @Apidoc\Title("上传相片")
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("group_id", type="string", require=true, desc="群ID")
|
||||
* @Apidoc\Param("title", type="string", require=true, desc="标题")
|
||||
* @Apidoc\Param("url", type="string", require=true, desc="图片")
|
||||
*/
|
||||
function album_create(Request $request): Response
|
||||
{
|
||||
$user_id = \support\Jwt\JwtToken::getCurrentId();
|
||||
$res = $this->_upload($request);
|
||||
if(is_string($res)){
|
||||
return $this->fail( $res);
|
||||
}
|
||||
$groupID = $request->post('groupID');
|
||||
$insert_data = [];
|
||||
foreach($res as $item){
|
||||
$insert_data[] = [
|
||||
'user_id' => $user_id,
|
||||
'group_id' => $groupID,
|
||||
'title' => $item['origin_name'],
|
||||
'url' => $item['file_name'],
|
||||
];
|
||||
}
|
||||
$result = AlbumModel::saveAll($insert_data);
|
||||
return $this->success('ok',$result[0]);
|
||||
}
|
||||
/**
|
||||
* @Apidoc\Title("更新相片")
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("id", type="string", require=true, desc="ID")
|
||||
* @Apidoc\Param("title", type="string", require=true, desc="标题")
|
||||
* @Apidoc\Param("url", type="string", require=true, desc="图片")
|
||||
*/
|
||||
function album_update(Request $request): Response
|
||||
{
|
||||
$id = $request->input('id');
|
||||
$data = $request->input('data');
|
||||
$album = AlbumModel::find($id);
|
||||
$album->update($data);
|
||||
return $this->success('ok',$album);
|
||||
}
|
||||
/**
|
||||
* @Apidoc\Title("删除相片")
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("id", type="string", require=true, desc="ID")
|
||||
*/
|
||||
function album_delete(Request $request): Response
|
||||
{
|
||||
$ids = Input('ids');
|
||||
//$album = AlbumModel::whereIn('id',condition: $ids)->select();
|
||||
//$album->delete();
|
||||
AlbumModel::whereIn('id',condition: $ids)->delete();
|
||||
return $this->success('ok');
|
||||
}
|
||||
/**
|
||||
* 获取再群里的角色
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
private function get_user_in_group($group_id='',$user_id='')
|
||||
{
|
||||
$list = request()->IM->group->getGroupMemberList($group_id,$user_id);
|
||||
return $list;
|
||||
}
|
||||
/**
|
||||
* 头像上传
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("file", type="File", require=true, desc="文件")
|
||||
*/
|
||||
public function avatar(Request $request)
|
||||
{
|
||||
//单文件上传
|
||||
$groupID = $request->post('groupID');
|
||||
if(!$groupID){
|
||||
return $this->fail(__('参数错误'));
|
||||
}
|
||||
$res = $this->_upload($request);
|
||||
if(is_string($res)){
|
||||
return $this->fail( $res);
|
||||
}
|
||||
$data = [
|
||||
'groupID' => $groupID,
|
||||
'faceURL' => $res[0]['file_name'],
|
||||
];
|
||||
$list = request()->IM->group->setGroupInfo($data);
|
||||
return $this->success(__('successful'),$data);
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 消息控制器
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class MessageController extends BaseController{
|
||||
/**
|
||||
@@ -20,7 +22,7 @@ class MessageController extends BaseController{
|
||||
*/
|
||||
function delete(Request $request):Response{
|
||||
$im = $request->IM;
|
||||
$data = $im->message->sendBusinessNotification('system',100007,[
|
||||
$data = $im->message->sendBusinessNotification('system',idEncode(100007),[
|
||||
'contentType' => 101,
|
||||
'textElem' => [
|
||||
'content' => '欢迎使用4'.Config('site.name')
|
||||
|
||||
@@ -9,6 +9,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 产品模块
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class ProductController extends BaseController{
|
||||
/**
|
||||
|
||||
@@ -12,6 +12,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 问卷
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class QuestionnaireController extends BaseController{
|
||||
/**
|
||||
|
||||
@@ -10,6 +10,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 充值模块
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class RechargeController extends BaseController{
|
||||
/**
|
||||
|
||||
@@ -7,6 +7,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 用户角色
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class RoleController extends BaseController{
|
||||
/**
|
||||
|
||||
@@ -11,6 +11,8 @@ use Shopwwi\WebmanFilesystem\Facade\Storage;
|
||||
use hg\apidoc\annotation as Apidoc;
|
||||
/**
|
||||
* 签到模块
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
|
||||
class SigninController extends BaseController
|
||||
@@ -275,7 +277,7 @@ class SigninController extends BaseController
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("file", type="string",require=true, desc="文件")
|
||||
*/
|
||||
function upload(Request $request)
|
||||
function upload(Request $request,$return = false)
|
||||
{
|
||||
//多文件上传
|
||||
$files = $request->file();
|
||||
|
||||
@@ -159,12 +159,8 @@ class TeamController extends BaseController{
|
||||
//$result['data'][$k]['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
|
||||
$result['data'][$k]['total_count'] = UserTeamModel::where('ancestor_id',$item['id'])->where('status',1)->where('depth','>',0)->count('descendant_id');
|
||||
$result['data'][$k]['direct_total'] = cache('team_direct_total_'.$item['id'])??0;
|
||||
$performance = get_performance($item['id']);
|
||||
$result['data'][$k]['performance_large'] = $performance[0];
|
||||
$result['data'][$k]['performance_small'] = $performance[1];
|
||||
$result['data'][$k]['role'] = isset($role_arr[$item['role_id']]) ? $role_arr[$item['role_id']] : __('普通用户');
|
||||
$result['data'][$k]['level'] = get_user_level($item['id'],$item['performance_small']);
|
||||
$result['data'][$k]['questionnaire_count'] = WorkRecordModel::where('user_id',$item['id'])->count('id');
|
||||
//$result['data'][$k]['questionnaire_count'] = WorkRecordModel::where('user_id',$item['id'])->count('id');
|
||||
$result['data'][$k]['id'] = idEncode($item['id']);
|
||||
//return $item;
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ class UserController extends BaseController{
|
||||
$gender = input('gender',null);
|
||||
$faceURL = input('faceURL',null);
|
||||
$birth = input('birth',null);
|
||||
$bio = input('bio',null);
|
||||
$save_data =[];
|
||||
if($nickname){
|
||||
$save_data['nickname'] = $nickname;
|
||||
@@ -46,7 +47,10 @@ class UserController extends BaseController{
|
||||
$save_data['sex'] = $gender;
|
||||
}
|
||||
if($faceURL){
|
||||
$save_data['avatar'] = $faceURL;
|
||||
$save_data['faceURL'] = $faceURL;
|
||||
}
|
||||
if($bio){
|
||||
$save_data['bio'] = $bio;
|
||||
}
|
||||
if($birth){
|
||||
$save_data['birthday'] = datetime($birth/1000,'Y-m-d');
|
||||
@@ -133,21 +137,15 @@ class UserController extends BaseController{
|
||||
public function avatar(Request $request)
|
||||
{
|
||||
//单文件上传
|
||||
$file = $request->file('file0');
|
||||
try {
|
||||
$result = Storage::adapter('public')->path('upload/avatar')->size(1024*1024*5)->extYes(['image/jpeg','image/png'])->processUpload($file,function ($image){
|
||||
$image->resize(200,200);
|
||||
return $image;
|
||||
},true);
|
||||
\support\Jwt::getUser()->save([
|
||||
'avatar' => '/'.$result->file_name,
|
||||
]);
|
||||
//$result->ss = cdnurl($result->url);
|
||||
//P($result);
|
||||
return $this->success(__('successful'),$result);
|
||||
}catch (\Exception $e){
|
||||
return $this->error($e->getMessage());
|
||||
$res = $this->_upload($request);
|
||||
if(is_string($res)){
|
||||
return $this->fail( $res);
|
||||
}
|
||||
$data = [
|
||||
'avatar' => $res[0]['file_name'],
|
||||
];
|
||||
\support\Jwt::getUser()->save($data);
|
||||
return $this->success(__('successful'),$data);
|
||||
}
|
||||
function realname(Request $request): Response
|
||||
{
|
||||
@@ -198,7 +196,11 @@ class UserController extends BaseController{
|
||||
*/
|
||||
function find(Request $request): Response
|
||||
{
|
||||
$userIDs = Input('userIDs');
|
||||
$ids = Input('userIDs');
|
||||
if(is_string($ids)){
|
||||
$ids = explode(',',$ids);
|
||||
}
|
||||
$userIDs = array_map('idDecode',$ids);
|
||||
//$res = $request->IM->user->getUsersInfo($userIDs);
|
||||
$list = Db::name('user')->
|
||||
whereIn('id',$userIDs)
|
||||
@@ -240,12 +242,18 @@ class UserController extends BaseController{
|
||||
$searchtype = Input('searchtype');
|
||||
$fields = 'id,avatar,username,nickname,avatar,sex,email,mobile,birthday,bio';
|
||||
$model = Db::name('user')->field($fields)->where('status',1);
|
||||
if($searchtype =='id'){
|
||||
$model = $model->where('id',$keyword);
|
||||
}else{
|
||||
$model = $model->whereLike('username','%'.$keyword.'%');
|
||||
}
|
||||
$model = $model->where('id',idDecode($keyword));
|
||||
// if($searchtype =='id'){
|
||||
// $model = $model->where('id',$keyword);
|
||||
// }else{
|
||||
// $model = $model->whereLike('username|id','%'.$keyword.'%');
|
||||
// }
|
||||
$list = $model->paginate(Input('limit',10));
|
||||
$list->each(function ($item){
|
||||
$item['id'] = idEncode($item['id']);
|
||||
return $item;
|
||||
});
|
||||
//log_alert($list->toArray());
|
||||
return $this->success('ok',$list);
|
||||
}
|
||||
}
|
||||
@@ -23,11 +23,11 @@ class WalletController extends BaseController{
|
||||
*/
|
||||
public $noNeedLogin = [];
|
||||
/**
|
||||
* 用户调研币兑换问卷指标
|
||||
* 用户货币互换
|
||||
* @Apidoc\Method("POST")
|
||||
* @Apidoc\Param("currency", type="string",require=true, desc="货币money_to_score")
|
||||
* @Apidoc\Param("sendAmount", type="string",require=true, desc="调研币兑换数量")
|
||||
* @Apidoc\Param("receiveAmount", type="string",require=true, desc="问卷指标兑换数量")
|
||||
* @Apidoc\Param("sendAmount", type="string",require=true, desc="money兑换数量")
|
||||
* @Apidoc\Param("receiveAmount", type="string",require=true, desc="score兑换数量")
|
||||
* @Apidoc\Param("trade_password", type="string",require=true, desc="交易密码")
|
||||
* @Apidoc\Param("code", type="string",require=true, desc="图形验证码(event=exchange)")
|
||||
*/
|
||||
|
||||
@@ -11,6 +11,8 @@ use hg\apidoc\annotation as Apidoc;
|
||||
|
||||
/**
|
||||
* 提现模块
|
||||
* @Apidoc\NotParse()
|
||||
* @Apidoc\NotDebug()
|
||||
*/
|
||||
class WithdrawlController extends BaseController{
|
||||
/**
|
||||
|
||||
+33
-39
@@ -19,14 +19,14 @@ class Auth implements MiddlewareInterface
|
||||
*/
|
||||
public function process(Request $request, callable $next): Response
|
||||
{
|
||||
$headers = [
|
||||
'Access-Control-Allow-Credentials' => 'true',
|
||||
'Access-Control-Allow-Origin' => $request->header('origin', '*'),
|
||||
'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'),
|
||||
'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'),
|
||||
];
|
||||
if($request->method() == 'OPTIONS'){
|
||||
$headers = [
|
||||
'Access-Control-Allow-Credentials' => 'true',
|
||||
'Access-Control-Allow-Origin' => $request->header('origin', '*'),
|
||||
'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'),
|
||||
'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'),
|
||||
];
|
||||
$response = response('200',200,$headers);
|
||||
$response = response('',204,$headers);
|
||||
return $response;
|
||||
}
|
||||
$lang = $request->input('lang','zh-Hans');
|
||||
@@ -49,28 +49,29 @@ class Auth implements MiddlewareInterface
|
||||
//检测是否登录
|
||||
try {
|
||||
if (!\support\Jwt::isLogin()) {
|
||||
return json([
|
||||
return new Response(401,$headers,json_encode([
|
||||
"code"=>401,
|
||||
"data"=>[],
|
||||
"msg"=>__('Please login first')
|
||||
]);
|
||||
]));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return json([
|
||||
return new Response(401,$headers,json_encode([
|
||||
"code"=>401,
|
||||
"data"=>[],
|
||||
"msg"=>__('Please login first')
|
||||
]);
|
||||
]));
|
||||
}
|
||||
$user = \support\Jwt\JwtToken::getUser();
|
||||
if(!$user['status']){
|
||||
return json([
|
||||
return new Response(403,$headers,json_encode([
|
||||
"code"=>403,
|
||||
"data"=>[],
|
||||
"msg"=>__('Account is locked')
|
||||
]);
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
// $key = "debounce_" . $request->path() . "_" . ($user->id ?? 'guest');
|
||||
// $ttl = 1; // 防抖时间(秒)
|
||||
// $redishandler = new \Redis;
|
||||
@@ -91,27 +92,27 @@ class Auth implements MiddlewareInterface
|
||||
$actionname = strtolower(get_action_name());
|
||||
$path = str_replace('.', '/', $controllername) . '/' . $actionname;
|
||||
if (!\support\Jwt::check($path)) {
|
||||
return json([
|
||||
return new Response(405,$headers,json_encode([
|
||||
"code"=>405,
|
||||
"data"=>[],
|
||||
"msg"=>__('You have no permission')
|
||||
]);
|
||||
"msg"=>__('have no permission')
|
||||
]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($request->client!='web'){
|
||||
$data = $request->post('data');
|
||||
if($data){
|
||||
$data = str_replace('%3D','=',$data);
|
||||
$data = str_replace(' ','+',$data);
|
||||
//var_dump($data);
|
||||
$data = aesdecode($data);
|
||||
$data = json_decode($data,true);
|
||||
//var_dump($data);
|
||||
$request->withBody($data);
|
||||
}
|
||||
}
|
||||
// if($request->client!='web'){
|
||||
// $data = $request->post('data');
|
||||
// if($data){
|
||||
// $data = str_replace('%3D','=',$data);
|
||||
// $data = str_replace(' ','+',$data);
|
||||
// //var_dump($data);
|
||||
// $data = aesdecode($data);
|
||||
// $data = json_decode($data,true);
|
||||
// //var_dump($data);
|
||||
// $request->withBody($data);
|
||||
// }
|
||||
// }
|
||||
$config = Config('site');
|
||||
$config['debug'] = config('app.debug');
|
||||
$config['controller'] = $request->controller_name;
|
||||
@@ -126,13 +127,6 @@ class Auth implements MiddlewareInterface
|
||||
]);
|
||||
$request->IM = $IM;
|
||||
$response = $next($request);
|
||||
$headers = [
|
||||
'Access-Control-Allow-Credentials' => 'true',
|
||||
'Access-Control-Allow-Origin' => $request->header('origin', '*'),
|
||||
'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'),
|
||||
'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'),
|
||||
];
|
||||
$response->withHeaders($headers);
|
||||
//cp('auth');
|
||||
//\support\Log::alert('auth');
|
||||
$body = str_replace([
|
||||
@@ -140,10 +134,10 @@ class Auth implements MiddlewareInterface
|
||||
],[
|
||||
request()->path()
|
||||
],$response->rawBody());
|
||||
if($request->app=="api" && $request->client!='web'){
|
||||
$body = aesencode($body);
|
||||
}
|
||||
$response->withBody($body)->getStatusCode();
|
||||
// if($request->app=="api" && $request->client!='web'){
|
||||
// $body = aesencode($body);
|
||||
// }
|
||||
$response->withHeaders($headers)->withBody($body)->getStatusCode();
|
||||
$time = microtime() - $request->start_time;
|
||||
//echo("响应时间:".$request->uri().':'.$time.PHP_EOL);
|
||||
//$response = $next($request);
|
||||
|
||||
Reference in New Issue
Block a user