55 lines
1.3 KiB
PHP
55 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace app\ticket\service;
|
|
|
|
use app\ticket\logic\AttachmentLogic;
|
|
use app\ticket\logic\TicketLogic;
|
|
use app\ticket\model\Ticket;
|
|
use support\Db;
|
|
use support\exception\BusinessException;
|
|
use support\Log;
|
|
|
|
class TicketService
|
|
{
|
|
public function list($params)
|
|
{
|
|
$res = (new TicketLogic())->list($params);
|
|
return $res;
|
|
}
|
|
|
|
public function add(array $data)
|
|
{
|
|
try {
|
|
$attachment = $data['attachment']??[];
|
|
$logic = new TicketLogic();
|
|
$result = $logic->add($data);
|
|
if(!empty($attachment)){
|
|
(new AttachmentLogic())->adds($attachment, $result->id, $data['user_id']);
|
|
}
|
|
return $result;
|
|
} catch (\Throwable $e) {
|
|
Db::rollback();
|
|
throw $e;
|
|
}
|
|
}
|
|
|
|
public function edit(array $data)
|
|
{
|
|
try {
|
|
Db::beginTransaction();
|
|
$attachment = $data['attachment']??[];
|
|
$logic = new TicketLogic();
|
|
$result = $logic->edit($data);
|
|
|
|
if(!empty($attachment)){
|
|
(new AttachmentLogic())->edit($attachment, $result->id, $data['user_id']);
|
|
}
|
|
Db::commit();
|
|
return $result;
|
|
} catch (\Throwable $e) {
|
|
Db::rollback();
|
|
throw $e;
|
|
}
|
|
}
|
|
}
|