| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- <?php
 
- namespace App\Http\Controllers;
 
- use App\Http\Models\ReferralLog;
 
- use App\Http\Models\SensitiveWords;
 
- use App\Http\Models\UserBalanceLog;
 
- use Exception;
 
- use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
 
- use Illuminate\Foundation\Bus\DispatchesJobs;
 
- use Illuminate\Foundation\Validation\ValidatesRequests;
 
- use Illuminate\Routing\Controller as BaseController;
 
- class Controller extends BaseController
 
- {
 
- 	use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 
- 	// 生成随机密码
 
- 	public function makePasswd()
 
- 	{
 
- 		exit(makeRandStr());
 
- 	}
 
- 	// 生成VmessId
 
- 	public function makeVmessId()
 
- 	{
 
- 		exit(createGuid());
 
- 	}
 
- 	// 生成网站安全码
 
- 	public function makeSecurityCode()
 
- 	{
 
- 		exit(strtolower(makeRandStr(8)));
 
- 	}
 
- 	// 类似Linux中的tail命令
 
- 	public function tail($file, $n, $base = 5)
 
- 	{
 
- 		$fileLines = $this->countLine($file);
 
- 		if($fileLines < 15000){
 
- 			return FALSE;
 
- 		}
 
- 		$fp = fopen($file, "r+");
 
- 		assert($n > 0);
 
- 		$pos = $n+1;
 
- 		$lines = [];
 
- 		while(count($lines) <= $n){
 
- 			try{
 
- 				fseek($fp, -$pos, SEEK_END);
 
- 			} catch(Exception $e){
 
- 				fseek(0);
 
- 				break;
 
- 			}
 
- 			$pos *= $base;
 
- 			while(!feof($fp)){
 
- 				array_unshift($lines, fgets($fp));
 
- 			}
 
- 		}
 
- 		return array_slice($lines, 0, $n);
 
- 	}
 
- 	/**
 
- 	 * 计算文件行数
 
- 	 */
 
- 	public function countLine($file)
 
- 	{
 
- 		$fp = fopen($file, "r");
 
- 		$i = 0;
 
- 		while(!feof($fp)){
 
- 			//每次读取2M
 
- 			if($data = fread($fp, 1024*1024*2)){
 
- 				//计算读取到的行数
 
- 				$num = substr_count($data, "\n");
 
- 				$i += $num;
 
- 			}
 
- 		}
 
- 		fclose($fp);
 
- 		return $i;
 
- 	}
 
- 	/**
 
- 	 * 记录余额操作日志
 
- 	 *
 
- 	 * @param int    $userId 用户ID
 
- 	 * @param string $oid    订单ID
 
- 	 * @param int    $before 记录前余额
 
- 	 * @param int    $after  记录后余额
 
- 	 * @param int    $amount 发生金额
 
- 	 * @param string $desc   描述
 
- 	 *
 
- 	 * @return int
 
- 	 */
 
- 	public function addUserBalanceLog($userId, $oid, $before, $after, $amount, $desc = '')
 
- 	{
 
- 		$log = new UserBalanceLog();
 
- 		$log->user_id = $userId;
 
- 		$log->order_id = $oid;
 
- 		$log->before = $before;
 
- 		$log->after = $after;
 
- 		$log->amount = $amount;
 
- 		$log->desc = $desc;
 
- 		$log->created_at = date('Y-m-d H:i:s');
 
- 		return $log->save();
 
- 	}
 
- 	/**
 
- 	 * 添加返利日志
 
- 	 *
 
- 	 * @param int $userId    用户ID
 
- 	 * @param int $refUserId 返利用户ID
 
- 	 * @param int $oid       订单ID
 
- 	 * @param int $amount    发生金额
 
- 	 * @param int $refAmount 返利金额
 
- 	 *
 
- 	 * @return int
 
- 	 */
 
- 	public function addReferralLog($userId, $refUserId, $oid, $amount, $refAmount)
 
- 	{
 
- 		$log = new ReferralLog();
 
- 		$log->user_id = $userId;
 
- 		$log->ref_user_id = $refUserId;
 
- 		$log->order_id = $oid;
 
- 		$log->amount = $amount;
 
- 		$log->ref_amount = $refAmount;
 
- 		$log->status = 0;
 
- 		return $log->save();
 
- 	}
 
- 	// 获取敏感词
 
- 	public function sensitiveWords($type)
 
- 	{
 
- 		return SensitiveWords::query()->where('type',$type)->get()->pluck('words')->toArray();
 
- 	}
 
- 	// 将Base64图片转换为本地图片并保存
 
- 	function base64ImageSaver($base64_image_content)
 
- 	{
 
- 		// 匹配出图片的格式
 
- 		if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
 
- 			$type = $result[2];
 
- 			$directory = date('Ymd');
 
- 			$path = '/assets/images/qrcode/'.$directory.'/';
 
- 			if(!file_exists(public_path($path))){ // 检查是否有该文件夹,如果没有就创建,并给予最高权限
 
- 				mkdir(public_path($path), 0755, TRUE);
 
- 			}
 
- 			$fileName = makeRandStr(18, TRUE).".{$type}";
 
- 			if(file_put_contents(public_path($path.$fileName), base64_decode(str_replace($result[1], '', $base64_image_content)))){
 
- 				chmod(public_path($path.$fileName), 0744);
 
- 				return $path.$fileName;
 
- 			}else{
 
- 				return '';
 
- 			}
 
- 		}else{
 
- 			return '';
 
- 		}
 
- 	}
 
- }
 
 
  |