This commit is contained in:
root 2019-12-13 17:07:46 +08:00
parent 025f96cae5
commit ccdf9462cf
4 changed files with 65 additions and 7 deletions

View File

@ -7,7 +7,7 @@ use App\Http\Controllers\Controller;
use App\Models\User; use App\Models\User;
use App\Models\Ticket; use App\Models\Ticket;
use App\Models\TicketMessage; use App\Models\TicketMessage;
use Illuminate\Support\Facades\Redis; use Illuminate\Support\Facades\DB;
class TicketController extends Controller class TicketController extends Controller
{ {
@ -29,7 +29,6 @@ class TicketController extends Controller
$ticket['user'] = User::select([ $ticket['user'] = User::select([
'email' 'email'
])->find($ticket->user_id); ])->find($ticket->user_id);
$ticket['avatar_url'] = 'https://cdn.v2ex.com/gravatar/' . md5($ticket['user']->email) . '?s=64&d=identicon';
return response([ return response([
'data' => $ticket 'data' => $ticket
]); ]);
@ -52,14 +51,18 @@ class TicketController extends Controller
if (!$ticket) { if (!$ticket) {
abort(500, '工单不存在'); abort(500, '工单不存在');
} }
DB::beginTransaction();
$ticketMessage = TicketMessage::create([ $ticketMessage = TicketMessage::create([
'user_id' => $request->session()->get('id'), 'user_id' => $request->session()->get('id'),
'ticket_id' => $ticket->id, 'ticket_id' => $ticket->id,
'message' => $request->input('message') 'message' => $request->input('message')
]); ]);
if (!$ticketMessage) { $ticket->last_reply_user_id = $request->session()->get('id');
if (!$ticketMessage || !$ticket->save()) {
DB::rollback();
abort(500, '工单回复失败'); abort(500, '工单回复失败');
} }
DB::commit();
return response([ return response([
'data' => true 'data' => true
]); ]);

View File

@ -45,7 +45,8 @@ class TicketController extends Controller
'subject', 'subject',
'level' 'level'
]), [ ]), [
'user_id' => $request->session()->get('id') 'user_id' => $request->session()->get('id'),
'last_reply_user_id' => $request->session()->get('id')
])); ]));
if (!$ticket) { if (!$ticket) {
DB::rollback(); DB::rollback();
@ -82,14 +83,18 @@ class TicketController extends Controller
if ($request->session()->get('id') == $this->getLastMessage($ticket->id)->user_id) { if ($request->session()->get('id') == $this->getLastMessage($ticket->id)->user_id) {
abort(500, '请等待技术支持回复'); abort(500, '请等待技术支持回复');
} }
DB::beginTransaction();
$ticketMessage = TicketMessage::create([ $ticketMessage = TicketMessage::create([
'user_id' => $request->session()->get('id'), 'user_id' => $request->session()->get('id'),
'ticket_id' => $ticket->id, 'ticket_id' => $ticket->id,
'message' => $request->input('message') 'message' => $request->input('message')
]); ]);
if (!$ticketMessage) { $ticket->last_reply_user_id = $request->session()->get('id');
if (!$ticketMessage || !$ticket->save()) {
DB::rollback();
abort(500, '工单回复失败'); abort(500, '工单回复失败');
} }
DB::commit();
return response([ return response([
'data' => true 'data' => true
]); ]);

View File

@ -22,6 +22,7 @@ CREATE TABLE `v2_notice` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL, `title` varchar(255) NOT NULL,
`content` text NOT NULL, `content` text NOT NULL,
`img_url` varchar(255) DEFAULT NULL,
`created_at` int(11) NOT NULL, `created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
@ -110,6 +111,31 @@ CREATE TABLE `v2_server_log` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `v2_ticket`;
CREATE TABLE `v2_ticket` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`subject` varchar(255) NOT NULL,
`level` tinyint(1) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `v2_ticket_message`;
CREATE TABLE `v2_ticket_message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`message` varchar(255) NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `v2_user`; DROP TABLE IF EXISTS `v2_user`;
CREATE TABLE `v2_user` ( CREATE TABLE `v2_user` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
@ -144,4 +170,4 @@ CREATE TABLE `v2_user` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 2019-12-12 05:40:39 -- 2019-12-13 08:54:25

View File

@ -25,4 +25,28 @@ CREATE TABLE `v2_notice` (
`content` text NOT NULL, `content` text NOT NULL,
`created_at` int(11) NOT NULL, `created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL `updated_at` int(11) NOT NULL
); );
CREATE TABLE `v2_ticket` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`subject` varchar(255) NOT NULL,
`level` tinyint(1) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `v2_ticket_message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`message` varchar(255) NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `v2_ticket`
ADD `status` tinyint(1) NOT NULL DEFAULT '0' AFTER `level`;