This commit is contained in:
2025-12-24 16:59:05 +08:00
parent b52a51c09b
commit b68946fe79
218 changed files with 10790 additions and 3878 deletions
+124 -88
View File
@@ -12,6 +12,7 @@ use Shopwwi\WebmanFilesystem\FilesystemFactory;
use Shopwwi\WebmanFilesystem\Facade\Storage;
use hg\apidoc\annotation as Apidoc;
use think\facade\Db;
/**
* 公共接口
*/
@@ -34,7 +35,7 @@ class CommonController extends BaseController{
*
* @Apidoc\Query("version", type="string", require=true, desc="版本号")
*/
public function init()
public function init(Request $request)
{
$lang = input('lang','en-US');
locale( $lang);
@@ -42,9 +43,9 @@ class CommonController extends BaseController{
$disallowFields = [
'api_token','reward_time_limit',
'mail_type','mail_smtp_host','mail_smtp_port','mail_smtp_user','mail_smtp_pass','mail_verify_type','mail_from',
'attachmentcategory','categorytype','cdkey_category','configgroup','flagtype',
'attachment_category','categorytype','cdkey_category','configgroup','flagtype',
'languages','forbiddenip','fixedpage','admin_login_captcha',
'mimetype','multipart','multiple','chunksize','classname','thumbstyle','previewtpl','timeout','maxsize','container',
'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',
'agent_commission_total_rate','agent_commission_layer_rate','differential_commission_total_rate'
];
@@ -58,13 +59,30 @@ class CommonController extends BaseController{
$config['server_status_list'] = \app\enum\ServerStatus::toArray();
return $this->success(__('successful'), $config);
}
/**
* test
* @Apidoc\Query("lang", type="string",require=true, desc="邮箱")
* @Apidoc\Method ("GET")
* 验证是否升级
*/
function test(){
return $this->error(__('Invalid parameters'));
public function checkUpgrade(Request $request)
{
$field = 'id,type,force,source,version,content';
$verUpdate = new \app\model\Version;
$version = Input('version');
$platform = Input('platform');
$version_wgt = Input('version_wgt');
// 查询整包、外链数据
$update_data = $verUpdate->where(['type'=>['in', '0,2'], 'status'=>1, 'version'=>['>', $version], 'platform'=>$platform])->field($field)->order('id desc')->find();
if($update_data) {
return $this->success('',$update_data);
}
// 查询WGT数据
$update_wgt_data = $verUpdate->where(['type'=>1, 'status'=>1, 'version_wgt'=>['>', $version_wgt], 'platform'=>$platform])->field($field)->order('id desc')->find();
if($update_wgt_data) {
return $this->success('',$update_wgt_data);
}
return $this->success('',[]);
}
/**
* 注册会员
@@ -84,65 +102,72 @@ class CommonController extends BaseController{
$username = input('username');
$mobile = input('mobile');
$invite_code = input('invite_code');
if ($email && !Validate::is($email, "email")) {
return $this->error(__('Email is incorrect'));
$type = input('type');
if (!in_array($type,Config('site.user_register_way')) ) {
return $this->error(__('Unknown register way'));
}
if ($mobile && !Validate::regex($mobile, "^1\d{10}$")) {
return $this->error(__('Mobile is incorrect'));
}
if(Config('site.user_register_way') == 'mobile'){
if (!$mobile) {
return $this->error(__('Invalid parameters'));
}
$username = $mobile;
captcha_verfiy('mobile','register',$mobile);
}else if(Config('site.user_register_way') == 'email'){
if (!$email) {
return $this->error(__('Invalid parameters'));
}
if ($email && !Validate::is($email, "email")) {
if ($type == 'email') {
if(!$email || !Validate::is($email, "email")){
return $this->error(__('Email is incorrect'));
}
$username = $email;
captcha_verfiy('email','register',$email);
}else{
if (!$username) {
return $this->error(__('Invalid parameters'));
unset($mobile);
//captcha_verfiy('email','register',$email,false);
}
if ($type == 'mobile') {
if(!$mobile || !Validate::regex($mobile, "^1\d{10}$")){
return $this->error(__('Mobile is incorrect'));
}
$username = $mobile;
unset($email);
//captcha_verfiy('mobile','register',$mobile,false);
}
if ($type == 'username') {
if(!$email || !Validate::is($email, "email")){
return $this->error(__('Username is incorrect'));
}
}
if (!$password) {
return $this->error(__('Invalid parameters'));
}
$extends = [
'role_id' => 0,
'group' => 0,
'avatar' => '/static/img/avatar.png',
];
// if (!$trade_password) {
// return $this->error(__('Invalid trade password'));
// }else{
// $extends['trade_password'] = \plugin\admin\app\common\Util::passwordHash($trade_password);
// }
//邀请码
if(!$invite_code){
return $this->error(__('Invalid invite code'));
}
if(strlen($invite_code) == 12){
//系统生产的一次性推荐吗
$inviteModel = \app\model\Invitecode::where('code',$invite_code)->find();
if(!$inviteModel){
return $this->error(__('错误的邀请码'));
if ($invite_code)
{
if(strlen($invite_code) == 12){
//系统生产的一次性推荐吗
$inviteModel = \app\model\Invitecode::where('code',$invite_code)->find();
if(!$inviteModel){
return $this->error(__('错误的邀请码'));
}
$extends['group'] = 2;
$extends['role_id'] = 1;
$extends['parent_id'] = 0;
}else{
$inviter_user = UserModel::where('invite_code',$invite_code)->field('group,id')->find();
if(!$inviter_user){
return $this->error(__('Invalid invite code'));
}
$extends['parent_id'] = $inviter_user['id'];
}
$extends['group'] = 2;
$extends['role_id'] = 1;
$extends['parent_id'] = 0;
}else{
$inviter_user = UserModel::where('invite_code',$invite_code)->field('group,id')->find();
if(!$inviter_user){
return $this->error(__('Invalid invite code'));
}
$extends['parent_id'] = $inviter_user['id'];
//return $this->error(__('Invalid invite code'));
}
$extends = [
'role_id' => 0,
'group_id' => 0,
'avatar' => '/static/img/avatar.png',
];
// validate(\app\validate\User::class)
// ->scene('edit')
// ->check([
// 'name' => 'thinkphp',
// 'email' => 'thinkphp@qq.com',
// ]);
try {
$user = \support\Jwt::register($username, $password, $email, $mobile, $extends);
if($inviteModel){
@@ -150,8 +175,15 @@ class CommonController extends BaseController{
$inviteModel->save();
}
$data = ['userinfo' => $user];
// if ($type == 'email') {
// captcha_verfiy('email','register',$email,true);
// }else if ($type == 'mobile') {
// captcha_verfiy('mobile','register',$mobile,true);
// }else{
// captcha_verfiy('image','register',$mobile,true);
// }
return $this->success(__('Sign up successful'), $data);
} catch (\Throwable $e) {
} catch (\Exception $e) {
return $this->error($e->getMessage());
}
}
@@ -163,12 +195,30 @@ class CommonController extends BaseController{
*/
public function login(Request $request){
$username = input('username');
$mobile = input('mobile');
$email = input('email');
$password = input('password');
if (!$username || !$password) {
return $this->fail(__('Invalid username or password'));
$type = input(param: 'type');
if (!$password) {
return $this->fail(__('Invalid username or password').'0');
}
if($type == 'mobile'){
if (!$mobile ) {
return $this->fail(__('Invalid username or password').'1');
}
$username = $mobile;
}else if($type == 'email'){
if (!$email ) {
return $this->fail(__('Invalid username or password').'2');
}
$username = $email;
}else{
if (!$username ) {
return $this->fail(__('Invalid username or password').'3');
}
}
try{
$user = \support\Jwt::login($username, $password,'username');
$user = \support\Jwt::login($username, $password,$type);
if($user === false){
return $this->fail(\support\Jwt::getError());
}
@@ -218,15 +268,15 @@ class CommonController extends BaseController{
$user = false;
}
if($user){
captcha_verfiy('mobile','reset_trade_pwd',$user->mobile);
captcha_verfiy('mobile','reset_pwd',$user->mobile);
}
}else{
if ($email && Validate::is($email, "email")) {
captcha_verfiy('email','reset_trade_pwd',$email);
captcha_verfiy('email','reset_pwd',$email);
$user = UserModel::getByEmail($email);
}
if ($mobile && Validate::regex($mobile, "^1\d{10}$")) {
captcha_verfiy('mobile','reset_trade_pwd',$mobile);
captcha_verfiy('mobile','reset_pwd',$mobile);
$user = UserModel::getByMobile($mobile);
}
}
@@ -309,6 +359,7 @@ class CommonController extends BaseController{
* @Apidoc\Param("email", type="string",require=true, desc="邮箱,可选")
*/
public function captcha(Request $request){
$debug = true;
$request->input('type');
$type = $request->input('type');
$event = $request->input('event');
@@ -331,17 +382,19 @@ class CommonController extends BaseController{
return $this->fail(__('Only one verification code can be sent within %second% seconds',['%second%'=>$expris]));
}
}
$code =\support\Random::numeric(4);
$code =\support\Random::numeric(6);
$list[$code] = time();
cache($key,$list);
cache('exp_'.$key,time());
addJob([
'email' => $email,
'title' => __("Mt email code"),
'event' => $event,
'code' => $code
],'Email');
return $this->success(__('Email sent successfully'));
// addJob([
// 'email' => $email,
// 'title' => __("Mt email code"),
// 'event' => $event,
// 'code' => $code
// ],'Email');
return $this->success(__('Email sent successfully'),[
'code'=> $debug ? $code : ''
]);
}elseif($type == 'mobile'){
$mobile = $request->input('mobile');
if(!$mobile){
@@ -364,7 +417,7 @@ class CommonController extends BaseController{
return $this->fail(__('Only one verification code can be sent within %second% seconds',['%second%'=>$expris]));
}
}
$code =\support\Random::numeric(4);
$code =\support\Random::numeric(6);
$list[$code] = time();
cache($key,$list);
cache('exp_'.$key,time());
@@ -373,7 +426,9 @@ class CommonController extends BaseController{
'event' => $event,
'code' => $code
],'Sms');
return $this->success(__('SMS sent successfully'));
return $this->success(__('SMS sent successfully'),[
'code'=> $debug ? $code : ''
]);
}else{
//TODO 图像验证码没有唯一的KEY
$key = 'captcha_'.$event.'_';
@@ -406,13 +461,14 @@ class CommonController extends BaseController{
*/
public function verify_captcha(Request $request): Response
{
$type = $request->input('type');
$email = $request->post('email');
$mobile = $request->input('mobile');
$event = $request->post('event');
try {
if($email){
if($type == 'email'){
$result = captcha_verfiy('email', $event , $email,false);
}elseif($mobile){
}elseif($type == 'mobile'){
$result = captcha_verfiy('mobile', $event , $mobile,false);
}else{
$result = captcha_verfiy('image', $event , '',false);
@@ -425,24 +481,4 @@ class CommonController extends BaseController{
}
return $this->success(__('successful'));
}
/**
* @Apidoc\Title("上传")
* @Apidoc\Method("POST")
*/
function upload(Request $request)
{
//多文件上传
$files = $request->file();
try {
$result = Storage::adapter('public')
->path('upload/files')
->size(1024*1024*10)
->extYes(['image/jpeg','image/png'])
->uploads($files,0,1024*1024*100,false);
return $this->success(__('successful'),$result);
}catch (\Exception $e){
return $this->error($e->getMessage());
}
}
}