This commit is contained in:
2026-03-01 21:05:19 +08:00
parent 0a45a8fbb9
commit 92948fa856
39 changed files with 594 additions and 269 deletions
+3 -3
View File
@@ -21,7 +21,7 @@ class ArticleController extends BaseController{
$limit = (int)input('limit',10);
$category_id = (int)input('category_id',0);
$model = ArchivesModel::where('status','1')->where('type','article');
$model = ArchivesModel::where('status','normal')->where('type','article');
if($category_id){
$model = $model->where('category_id',$category_id);
}
@@ -29,7 +29,7 @@ class ArticleController extends BaseController{
$user_id=0;
try {
$user_id = \support\Jwt\JwtToken::getCurrentId();
} catch (\Throwable $th) {
} catch (\Exception $e) {
}
$list->each(function($item)use($user_id){
if(!$user_id){
@@ -51,7 +51,7 @@ class ArticleController extends BaseController{
$limit = (int)input('limit',10);
$model = ArchivesModel::alias('a')
->join('content c', 'a.id = c.id')
->where('a.status','1')
->where('a.status','normal')
->where('a.type','article')
->where('a.category_id',9);
$list = $model->Field('a.title,a.id,c.content')->order('a.id','desc')->paginate($limit);
+1 -1
View File
@@ -39,7 +39,7 @@ class BalanceLogController extends BaseController{
$list->each(function($item)use($BalanceTypeList){
if($item->type == \app\enum\BalanceType::TRANSFER->value && $item->memo){
$item['target'] = UserModel::where('id',$item->memo)->value('username');
$item->memo = idEncode($item->memo);
$item->memo = \support\Encrypt::userIDencode($item->memo);
}
$item->_type= $item->type;
$item->type= $BalanceTypeList[$item->type];
-3
View File
@@ -284,7 +284,6 @@ class CommonController extends BaseController{
try{
$user = \support\Jwt::getUser();
}catch(\Exception $e){
//log_alert($e->getMessage());
$user = false;
}
if($user){
@@ -341,7 +340,6 @@ class CommonController extends BaseController{
try{
$user = \support\Jwt::getUser();
}catch(\Exception $e){
log_alert($e->getMessage());
$user = false;
}
if($user){
@@ -362,7 +360,6 @@ class CommonController extends BaseController{
//模拟一次登录,需不需要充值登录信息?????
//\support\Jwt::direct($user->id);
try{
log_alert($user->id.' 重置交易密码'.$newpassword);
UserModel::where('id',$user->id)->save([
'trade_password' => \plugin\admin\app\common\Util::passwordHash($newpassword)
]);
+2 -8
View File
@@ -31,7 +31,7 @@ class ContactController extends BaseController{
{
$current_user = \support\Jwt::getUser();
$user_id = $current_user->id;
$userID = idEncode($user_id);
$userID = \support\Encrypt::userIDencode($user_id);
$res = $request->IM->friend()->getFriendList($userID,1,10000);
return $this->success('ok',$res['data']['friendsInfo']);
}
@@ -46,8 +46,7 @@ class ContactController extends BaseController{
if(!$userID){
return $this->error('UserID is Empty');
}
$userID = idDecode($userID);
$res = \app\model\User::where('id',$userID)->find();
$res = \app\model\User::where('userID',$userID)->find();
return $this->success('ok',$res);
}
/**
@@ -61,11 +60,6 @@ class ContactController extends BaseController{
if(!$userIDs){
return $this->error('UserID is Empty');
}
//$userIDs = explode(',',$userIDs);
//$userIDs = idDecode($userIDs);
//$current_user = \support\Jwt::getUser();
//$user_id = $current_user->id;
//$userID = idEncode($user_id);
$res = \app\model\User::whereIn('userID',$userIDs)->select();
return $this->success('ok',$res);
}
@@ -36,7 +36,7 @@ class FriendCircleController extends BaseController{
function info(Request $request): Response{
$user_id = Input('user_id');
if($user_id){
$user_id = idDecode($user_id);
$user_id = \support\Encrypt::userIDDecode($user_id);
$json= [
'top_unread_items' =>[],
'unread_item_ids' =>[],
@@ -84,7 +84,7 @@ class FriendCircleController extends BaseController{
$limit = (int)Input('limit', 10);
$user_id = Input('user_id', 0);
if($user_id){
$user_id = idDecode($user_id);
$user_id = \support\Encrypt::userIDDecode($user_id);
}
$query = FriendCircleModel::where('status', 1)
@@ -393,7 +393,7 @@ class FriendCircleController extends BaseController{
$cache_key = 'friend_id_list_'.$user_id;
$result = cache($cache_key) ?: [];
if(count($result) === 0){
$res = request()->IM->friend->getFriendList(idEncode($user_id));
$res = request()->IM->friend->getFriendList(\support\Encrypt::userIDencode($user_id));
$friendsInfo = $res['friendsInfo'];
foreach($friendsInfo as $k=>$v){
array_push($result,$v['friendUser']['userID']);
-2
View File
@@ -29,8 +29,6 @@ class GroupController extends BaseController
$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')
+1 -1
View File
@@ -22,7 +22,7 @@ class MessageController extends BaseController{
*/
function delete(Request $request):Response{
$im = $request->IM;
$data = $im->message->sendBusinessNotification('system',idEncode(100007),[
$data = $im->message->sendBusinessNotification('system',\support\Encrypt::userIDencode(100007),[
'contentType' => 101,
'textElem' => [
'content' => '欢迎使用4'.Config('site.name')
+2 -2
View File
@@ -114,7 +114,7 @@ class RechargeController extends BaseController{
return $this->error(__('Failed to create recharge order, please try again later'));
}
}else{
$sign = aesencode(json_encode($data));
$sign = \support\Encrypt::aesencode(json_encode($data));
return $this->success(__('successful'),[
'order' => [
'id' => 0,
@@ -306,7 +306,7 @@ class RechargeController extends BaseController{
* @Apidoc\NotDebug()
*/
public function notify(){
$data = aesdecode(input('data'));
$data = \support\Encrypt::aesdecode(input('data'));
$data = json_decode($data,true);
/** @var RechargeModel $vo */
$vo = RechargeModel::where('id',$data['out_trade_no'])->find();
+2 -3
View File
@@ -120,7 +120,7 @@ class TeamController extends BaseController{
->join('user_extend ue', 'u.id = ue.user_id')
->where('u.parent_id', $user['id'])
//->where('ue.active', 1)
->field('u.id, u.username,u.money,u.score,u.role_id, u.group,u.avatar, u.created_at')
->field('u.id,u.userID, u.username,u.money,u.score,u.role_id, u.group,u.avatar, u.created_at')
->order('u.created_at desc');
if($kw){
$model = $model->whereLike("u.username",'%'.$kw.'%');
@@ -161,7 +161,6 @@ class TeamController extends BaseController{
$result['data'][$k]['direct_total'] = cache('team_direct_total_'.$item['id'])??0;
$result['data'][$k]['role'] = isset($role_arr[$item['role_id']]) ? $role_arr[$item['role_id']] : __('普通用户');
//$result['data'][$k]['questionnaire_count'] = WorkRecordModel::where('user_id',$item['id'])->count('id');
$result['data'][$k]['id'] = idEncode($item['id']);
//return $item;
}
return $this->success(__('successful'),$result);
@@ -176,7 +175,7 @@ class TeamController extends BaseController{
$user = \support\Jwt::getUser();
$id = $request->post('id');
$level = $request->post('level');
$id = idDecode($id);
$id = \support\Encrypt::userIDDecode($id);
if(!$id || !$level){
return $this->error(__('Invalid parameters'));
}
+6 -7
View File
@@ -160,7 +160,6 @@ class UserController extends BaseController{
'idcard' => Input('idcard'),
'user_id' => $user->id,
];
log_alert($data);
if(!$data['realname'] || !$data['idcard']){
return $this->error(__('Incoret param'));
}
@@ -201,12 +200,13 @@ class UserController extends BaseController{
if(is_string($ids)){
$ids = explode(',',$ids);
}
$userIDs = array_map('idDecode',$ids);
//$userIDs = array_map('\support\Encrypt::userIDDecode',$ids);
//$res = $request->IM->user->getUsersInfo($userIDs);
$list = Db::name('user')->
whereIn('id',$userIDs)
whereIn('userID',$ids)
->paginate(Input('limit',10));
$list->each(function($user){
$user['id'] = $user['userID'];
unset($user['password']);
unset($user['trade_password']);
//unset($user['avatar']);
@@ -241,9 +241,9 @@ class UserController extends BaseController{
{
$keyword = Input('keyword');
$searchtype = Input('searchtype');
$fields = 'id,avatar,username,nickname,avatar,sex,email,mobile,birthday,bio';
$fields = 'userID,avatar,username,nickname,avatar,sex,email,mobile,birthday,bio';
$model = Db::name('user')->field($fields)->where('status',1);
$model = $model->where('id',idDecode($keyword));
$model = $model->where('userID',$keyword);
// if($searchtype =='id'){
// $model = $model->where('id',$keyword);
// }else{
@@ -251,10 +251,9 @@ class UserController extends BaseController{
// }
$list = $model->paginate(Input('limit',10));
$list->each(function ($item){
$item['id'] = idEncode($item['id']);
$item['id'] = $item['userID'];
return $item;
});
//log_alert($list->toArray());
return $this->success('ok',$list);
}
}
+1 -1
View File
@@ -88,7 +88,7 @@ class WalletController extends BaseController{
if(str_contains($username,'@')){
$to_user = UserModel::where('username',$username)->find();
}else{
$to_user_id = idDecode($username);
$to_user_id = \support\Encrypt::userIDDecode($username);
$to_user = UserModel::where('id',$to_user_id)->find();
}
+1 -1
View File
@@ -163,7 +163,7 @@ class WithdrawlController extends BaseController{
* @Apidoc\NotDebug()
*/
public function notify(){
$data = aesdecode(input('data',''));
$data = \support\Encrypt::aesdecode(input('data',''));
$data = json_decode($data,true);
/** @var WithdrawlModel $vo */
$vo = WithdrawlModel::where('id',$data['out_trade_no'])->find();
+2 -2
View File
@@ -107,7 +107,7 @@ class Auth implements MiddlewareInterface
// $data = str_replace('%3D','=',$data);
// $data = str_replace(' ','+',$data);
// //var_dump($data);
// $data = aesdecode($data);
// $data = \support\Encrypt::aesdecode($data);
// $data = json_decode($data,true);
// //var_dump($data);
// $request->withBody($data);
@@ -135,7 +135,7 @@ class Auth implements MiddlewareInterface
request()->path()
],$response->rawBody());
// if($request->app=="api" && $request->client!='web'){
// $body = aesencode($body);
// $body = \support\Encrypt::aesencode($body);
// }
$response->withHeaders($headers)->withBody($body)->getStatusCode();
$time = microtime() - $request->start_time;
+1 -1
View File
@@ -44,7 +44,7 @@ class OpenIm extends Command
private function change_user(InputInterface $input, OutputInterface $output):int{
$im = $this->getSdk();
$data = $im->user->updateUserInfo(idEncode('100006'),['userInfo'=>['userId'=>'wx100001']]);
$data = $im->user->updateUserInfo(\support\Encrypt::userIDencode('100006'),['userInfo'=>['userId'=>'wx100001']]);
cp($data);
return self::SUCCESS;
}
+1 -1
View File
@@ -43,7 +43,7 @@ class User extends Command
return false;
}
$user = \support\Jwt::direct($user_id);
$imToken = $IM->auth->getUserToken(idEncode($user['id']),2);
$imToken = $IM->auth->getUserToken($user['userID'],2);
cp('userID:' . $user['id']);
cp('nickname:' . $user['nickname']);
cp('token:' . $user['token']);
-1
View File
@@ -59,7 +59,6 @@ class GitController
$script_fn = 'wjb_cdkey.sh';
}
}
//log_alert($script_fn);
if(!$script_fn){
return response('Not main branch', 200);
}
+4 -1
View File
@@ -179,6 +179,7 @@ class HookController{
//执行顺序,callbackBeforeCreateGroupCommand -> callbackBeforeMembersJoinGroupCommand -> callbackAfterCreateGroupCommand
public function callbackbeforeCreateGroupCommand(Request $request): Response
{
return $this->success();
$groupID = Input('groupID');
$creatorUserID = Input('creatorUserID');
$key = 'user_'.$creatorUserID.'_create_group_count';
@@ -244,7 +245,7 @@ class HookController{
//群成员进群之前的回调
public function callbackBeforeMembersJoinGroupCommand(Request $request):Response
{
log_alert(Input());
return $this->success();
$groupID = Input('groupID');
$memberList = Input('memberList');
$ownerID = $this->getGroupOwner($groupID);
@@ -294,6 +295,7 @@ class HookController{
//执行顺序,callbackBeforeInviteJoinGroupCommand -> callbackBeforeMembersJoinGroupCommand
public function callbackBeforeInviteJoinGroupCommand(Request $request):Response
{
return $this->success();
$groupID = Input('groupID');
$invitedUserIDs = Input('invitedUserIDs');
//获取群组当前用户数量
@@ -313,6 +315,7 @@ class HookController{
//申请加入群组之前的回调
public function callbackBeforeJoinGroupCommand(Request $request):Response
{
return $this->success();
$groupID = Input('groupID');
$applyID = Input('applyID');
//获取群组当前用户数量
+2 -2
View File
@@ -139,13 +139,13 @@ class Product{
if($this->debug){
return print_r($str);
}
\support\Log::channel('product_buy')->alert($str);
log_alert($str);
}else{
$str = json_encode($args);
if($this->debug){
return print_r($str);
}
\support\Log::channel('product_buy')->alert($str);
log_alert($str);
}
}
}
+1 -1
View File
@@ -9,7 +9,7 @@ class User{
cache_add('statistics_register_'.$date,1);
$saveData = [
'invite_code' => build_invite_code($user->id),
'userID' => idEncode($user->id)
'userID' => \support\Encrypt::userIDencode($user->id)
];
//管理直推人数和团队人数
if($user->parent_id){
+1 -117
View File
@@ -185,34 +185,6 @@ if (!function_exists('captcha_verfiy')) {
return true;
}
}
if (!function_exists('aesencode')) {
function aesencode($str, $key = '')
{
if (!$key) {
$key = Config('pay.api_token');
}
if (is_array($str) || is_object($str)) {
$str = json_encode($str, JSON_UNESCAPED_UNICODE);
}
$key = hash('sha256', $key, true);
$iv = substr($key, 0, 16);
$encrypted = openssl_encrypt($str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encrypted);
}
}
if (!function_exists('aesdecode')) {
function aesdecode($str, $key = '')
{
if (!$key) {
$key = Config('pay.api_token');
}
$key = hash('sha256', $key, true);
$iv = substr($key, 0, 16);
$encrypted = base64_decode($str);
$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
return $decrypted;
}
}
if (!function_exists('cdnurl')) {
function cdnurl($path = '')
{
@@ -233,73 +205,6 @@ if (!function_exists('abort')) {
throw new \support\exception\BusinessException($msg, $code);
}
}
if (!function_exists('idEncode')) {
function idEncode($id = '')
{
if($id<=100234){return $id.'';}
return id_encode($id);
}
}
if (!function_exists('idDecode')) {
function idDecode($id = '')
{
$_id= intval($id);
if($_id == $id){return $id;}
return id_decode($id);
}
}
/**
* 生成可逆的邀请码(8位,含校验位)
* @param int $id 用户ID(需≥1000
* @return string 大写字母+数字组合
*/
if (!function_exists('base62Encode')) {
function base62Encode(int $id,$secret='your_secret_salt'): string {
// 添加校验位(防止篡改)
$hash = crc32($id . $secret) % 1000;
$code_num = $id * 1000 + $hash;
// Base62 编码(0-9A-Za-z
$base62 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$code = '';
while ($code_num > 0) {
$code = $base62[$code_num % 62] . $code;
$code_num = (int)($code_num / 62);
}
// 补全到8位
return str_pad($code, 8, '0', STR_PAD_LEFT);
}
}
/**
* 从邀请码解析用户ID
* @return int|false 成功返回id,失败返回false
*/
if (!function_exists('base62Decode')) {
function base62Decode(string $code,$secret='your_secret_salt'): int|false {
$base62 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$code_num = 0;
// Base62 解码
for ($i = 0; $i < strlen($code); $i++) {
$pos = strpos($base62, $code[$i]);
if ($pos === false) return false;
$code_num = $code_num * 62 + $pos;
}
// 分离校验位
$id = (int)($code_num / 1000);
$hash = $code_num % 1000;
// 校验
if (crc32($id . $secret) % 1000 != $hash) {
return false;
}
return $id;
}
}
if (!function_exists('P')) {
function P()
@@ -614,22 +519,6 @@ if (!function_exists('build_invite_code')) {
}
}
if (!function_exists('layun_auth')) {
function layun_auth($type = "url", $version = 1)
{
if ($type == 'url') {
$key = "";
$sercet = "2RxmtM";
if ($version == 1) {
$time = time();
$hash = md5($time . '_' . md5($time . '_' . $sercet));
} else {
}
}
}
}
if (!function_exists('get_parent_id')) {
function get_parent_id($user_id)
{
@@ -712,12 +601,7 @@ if(!function_exists('enum_dir')){
return $list ;
}
}
if(!function_exists('generateShortUniqueID')){
function generateShortUniqueID($length = 8) {
// 生成指定长度的随机字节,转为 Base64 编码并去除不必要字符
return substr(bin2hex(random_bytes($length / 2)), 0, $length);
}
}
if(!function_exists('get_user_rights')){
function get_user_rights($user_id):array{
$user_id = idDecode($user_id);
-1
View File
@@ -23,7 +23,6 @@ class ActionHook implements MiddlewareInterface
$response = response('',204,$headers);
return $response;
}
log_alert($request->controller);
// 禁止直接访问beforeAction afterAction
if (substr($request->action,0,9) === '__before_' || substr($request->action,0,8) === '__after_') {
$callback = Route::getFallback() ?? function () {
+4 -4
View File
@@ -77,7 +77,7 @@ class User extends Base
{
//use \think\model\concern\SoftDelete;
public static function onAfterInsert($row){
$res = request()->IM->user->userRegister(idEncode($row->id),$row->nickname,cdnurl($row->avatar));
$res = request()->IM->user->userRegister(\support\Encrypt::userIDencode($row->id),$row->nickname,cdnurl($row->avatar));
}
public static function onAfterUpdate($row){
$changeData = $row->getChangedData();
@@ -87,10 +87,10 @@ class User extends Base
'nickname' => $row->nickname,
'faceURL' => cdnurl($row->avatar)
];
request()->IM->user->updateUserInfo(idEncode($row->id),$sdata);
request()->IM->user->updateUserInfo(\support\Encrypt::userIDencode($row->id),$sdata);
}
if(isset($changeData['status']) || $changeData['status'] == '0'){
request()->IM->user->forceLogout(idEncode($row->id));
request()->IM->user->forceLogout(\support\Encrypt::userIDencode($row->id));
}
if(isset($changeData['expire_at']) || isset($changeData['role_id'])){
cache('user_rights_'.$row->id,null);
@@ -107,7 +107,7 @@ class User extends Base
foreach(Config('site.allow_currencys') as $currency){
(new \app\model\BalanceLog)->setSuffix('_'.$currency)->where('user_id',(int)$row->id)->delete();
}
request()->IM->user->forceLogout(idEncode($row->id));
request()->IM->user->forceLogout(\support\Encrypt::userIDencode($row->id));
}
public function role()
{
-1
View File
@@ -36,7 +36,6 @@ class Sms implements Consumer
);
try {
$res = get($url);
log_alert($res.$statusStr[$res]);
\support\Log::channel('mail')->alert($data['email']."短信已经发送");
} catch (\Throwable $th) {
\support\Log::channel('mail')->alert('发送短信出错:'.$th->getMessage());