235 lines
9.1 KiB
PHP
235 lines
9.1 KiB
PHP
<?php
|
|
|
|
namespace app\controller;
|
|
|
|
use app\model\SmsApp;
|
|
use app\model\SmsContent;
|
|
use app\model\User;
|
|
use app\model\UsersToken;
|
|
use support\Request;
|
|
use support\View;
|
|
|
|
class SmsController
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录');
|
|
View::assign(["nickname" => session('nickname', "未登录")]);
|
|
View::assign([
|
|
"header" => view('common/header')->rawBody(),
|
|
"footer" => view('common/footer')->rawBody()
|
|
]);
|
|
|
|
$sms_app = SmsApp::where('user_id', session('user_id'))->get();
|
|
|
|
// 获取短信内容
|
|
$smsContent = SmsContent::select()->where('user_id', session('user_id'));
|
|
|
|
// 根据应用名称获取短信内容
|
|
if (!empty($request->get('app_name'))) {
|
|
$smsContent->where('app_name', $request->get('app_name'));
|
|
}
|
|
|
|
// 根据UUID获取短信内容
|
|
if (!empty($request->get('app_uuid'))) {
|
|
$smsContent->where('app_uuid', $request->get('app_uuid'));
|
|
}
|
|
|
|
// 根据手机号获取短信内容
|
|
if (!empty($request->get('from'))) {
|
|
$smsContent->whereLike('from', "%" . $request->get('from') . "%");
|
|
}
|
|
|
|
// 根据IP获取短信内容
|
|
if (!empty($request->get('ip'))) {
|
|
$smsContent->whereLike('ip', "%" . $request->get('ip') . "%");
|
|
}
|
|
|
|
// 根据内容获取短信内容
|
|
if (!empty($request->get('content'))) {
|
|
$smsContent->whereLike('content', "%" . $request->get('content') . "%");
|
|
}
|
|
|
|
|
|
// 根据接收时间获取短信内容
|
|
if (!empty($request->get('receive_time'))) {
|
|
$rt = $request->get('receive_time');
|
|
if (count($rt) === 2) {
|
|
if (!empty($rt[0]) && !empty($rt[1])) {
|
|
$smsContent->whereBetween('created_at', $request->get('receive_time'));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// 倒序
|
|
$smsContent->orderBy('id', 'desc');
|
|
|
|
$smsContentPaginate = $smsContent->paginate($request->get('limit', 10));
|
|
|
|
return view('sms/index', ['get' => $request->get(), 'smsContent' => $smsContentPaginate, 'sms_app' => $sms_app]);
|
|
}
|
|
|
|
public function s(Request $request, string $uuid)
|
|
{
|
|
// token是否存在
|
|
$token = $request->get('token', '');
|
|
if (!$token) $token = $request->post('token', '');
|
|
if (!$token) {
|
|
return json(['code' => 1, 'msg' => 'token不存在']);
|
|
}
|
|
$tokenExist = UsersToken::where('token', $token)->first();
|
|
if (!$tokenExist) {
|
|
return json(['code' => 2, 'msg' => 'token不存在']);
|
|
}
|
|
$user_id = $tokenExist->user_id;
|
|
$sms_app = SmsApp::where('app_uuid', $uuid)->first();
|
|
if (!$sms_app) {
|
|
return json(['code' => 3, 'msg' => '应用不存在']);
|
|
}
|
|
if ($sms_app->user_id !== $user_id) {
|
|
return json(['code' => 4, 'msg' => '应用不存在']);
|
|
}
|
|
|
|
$smsContent = new SmsContent();
|
|
$smsContent->user_id = $user_id;
|
|
$smsContent->app_name = $sms_app->app_name;
|
|
$smsContent->app_uuid = $uuid;
|
|
$smsContent->headers = json_encode($request->header());
|
|
$smsContent->original = json_encode($request->all());
|
|
$smsContent->from = $request->input('from', '');
|
|
$smsContent->content = $request->input('content', '');
|
|
$smsContent->ip = $request->getRemoteIp() . ":" . $request->getRemotePort();
|
|
$smsContent->save();
|
|
return json(['code' => 0, 'msg' => 'ok']);
|
|
}
|
|
|
|
public function app(Request $request)
|
|
{
|
|
if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录');
|
|
View::assign(["nickname" => session('nickname', "未登录")]);
|
|
View::assign([
|
|
"header" => view('common/header')->rawBody(),
|
|
"footer" => view('common/footer')->rawBody()
|
|
]);
|
|
|
|
$user = User::where('id', session('user_id'))->first();
|
|
if (!$user) {
|
|
session(['nickname' => null, 'user_id' => null]);
|
|
return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录");
|
|
}
|
|
$sms_app = SmsApp::where('user_id', $user->id)->get();
|
|
View::assign([
|
|
'sms_app' => $sms_app
|
|
]);
|
|
|
|
return view('sms/app');
|
|
}
|
|
|
|
public function createApp(Request $request)
|
|
{
|
|
if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录');
|
|
View::assign(["nickname" => session('nickname', "未登录")]);
|
|
View::assign([
|
|
"header" => view('common/header')->rawBody(),
|
|
"footer" => view('common/footer')->rawBody()
|
|
]);
|
|
|
|
$user = User::where('id', session('user_id'))->first();
|
|
if (!$user) {
|
|
session(['nickname' => null, 'user_id' => null]);
|
|
return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录");
|
|
}
|
|
|
|
return view('sms/create_app');
|
|
}
|
|
|
|
public function appStore(Request $request)
|
|
{
|
|
if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录');
|
|
View::assign(["nickname" => session('nickname', "未登录")]);
|
|
View::assign([
|
|
"header" => view('common/header')->rawBody(),
|
|
"footer" => view('common/footer')->rawBody()
|
|
]);
|
|
|
|
$user = User::where('id', session('user_id'))->first();
|
|
if (!$user) {
|
|
session(['nickname' => null, 'user_id' => null]);
|
|
return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录");
|
|
}
|
|
if (empty($request->post('app_name', ''))) {
|
|
return msg('请输入应用名称', "请输入应用名称后继续。", "/sms/create-app", "返回");
|
|
}
|
|
|
|
$appName = $request->post('app_name', '');
|
|
if (strlen($appName) > 255) {
|
|
return msg('应用名称过长', "请输入255个字符内名称后继续。", "/sms/create-app", "返回");
|
|
}
|
|
|
|
$appNameExist = SmsApp::where('app_name', $appName)->first();
|
|
if ($appNameExist) {
|
|
return msg('应用名称已存在', "请重新创建。", "/sms/create-app", "返回");
|
|
}
|
|
|
|
$uuid = uniqid('', true);
|
|
$uuid = md5($uuid);
|
|
$uuid = substr($uuid, 0, 8) . '-' . substr($uuid, 8, 4) . '-' . substr($uuid, 12, 4) . '-' . substr($uuid, 16, 4) . '-' . substr($uuid, 20, 12);
|
|
|
|
$uuidExist = SmsApp::where('app_uuid', $uuid)->first();
|
|
if ($uuidExist) {
|
|
return msg('UUID已存在', "请重新创建。", "/sms/create-app", "返回");
|
|
}
|
|
|
|
$sms_app = new SmsApp();
|
|
$sms_app->user_id = $user->id;
|
|
$sms_app->app_name = $request->post('app_name', '');
|
|
$sms_app->app_uuid = $uuid;
|
|
$sms_app->save();
|
|
return msg('创建成功', "请使用个人密钥访问此应用。", "/sms/app", "返回");
|
|
}
|
|
|
|
public function deleteApp(Request $request)
|
|
{
|
|
if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录');
|
|
View::assign(["nickname" => session('nickname', "未登录")]);
|
|
View::assign([
|
|
"header" => view('common/header')->rawBody(),
|
|
"footer" => view('common/footer')->rawBody()
|
|
]);
|
|
|
|
$user = User::where('id', session('user_id'))->first();
|
|
if (!$user) {
|
|
session(['nickname' => null, 'user_id' => null]);
|
|
return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录");
|
|
}
|
|
$sms_app = SmsApp::where('id', $request->get('id', ''))->where('user_id', $user->id)->first();
|
|
if (!$sms_app) {
|
|
return msg('应用不存在', "删除失败", "/sms/app", "返回");
|
|
}
|
|
$sms_app->delete();
|
|
return msg('删除成功', "删除成功", "/sms/app", "返回");
|
|
}
|
|
|
|
public function delete(Request $request)
|
|
{
|
|
if (session('nickname', "未登录") === "未登录") return msg('请先登录', "请登录后继续。", "/user/login", '立即登录');
|
|
View::assign(["nickname" => session('nickname', "未登录")]);
|
|
View::assign([
|
|
"header" => view('common/header')->rawBody(),
|
|
"footer" => view('common/footer')->rawBody()
|
|
]);
|
|
|
|
$user = User::where('id', session('user_id'))->first();
|
|
if (!$user) {
|
|
session(['nickname' => null, 'user_id' => null]);
|
|
return msg('用户不存在', "请重新登录后继续。", "/user/login", "登录");
|
|
}
|
|
$sms_content = SmsContent::where('id', $request->get('id', ''))->where('user_id', $user->id)->first();
|
|
if (!$sms_content) {
|
|
return msg('短信不存在', "删除失败", "/sms/index", "返回");
|
|
}
|
|
$sms_content->delete();
|
|
return msg('删除成功', "删除成功", "/sms", "返回");
|
|
}
|
|
} |