UserShare

This commit is contained in:
2024-12-01 15:44:47 +08:00
parent 85afcd0f95
commit 158fc445e6
4 changed files with 240 additions and 19 deletions

View File

@ -2,6 +2,8 @@
namespace plugin\ticket\controller;
use plugin\points_mall\service\UserPointService;
use plugin\ticket\model\TicketTicket;
use plugin\ticket\model\TicketType;
use plugin\ticket\model\TicketUserShare;
use think\admin\Controller;
@ -49,6 +51,52 @@ class UserShare extends Controller
]);
$this->vo = TicketUserShare::mk()->where($where)->with(['linked_ticket'])->findOrEmpty();
if ($this->vo->isEmpty()) $this->error('用户随手拍不存在!');
if (!$this->vo->linked_ticket_id) {
$this->ticket_list = TicketTicket::mk()->scope(['avail'])->select();
} else {
$this->ticket_list = [];
}
$this->type_list = TicketType::getList();
$this->user_list = [];
$this->fetch('detail');
}
public function link()
{
$basic_data = $this->_vali([
'id.require' => '随手拍ID不能为空',
'_type.require' => '类型不能为空',
'content.require' => '回复内容不能为空',
'point_aware.require' => '奖励积分不能为空',
'point_aware.number' => '奖励积分必须为数字',
]);
$userShare = TicketUserShare::mk()->where(['id' => $basic_data['id']])->findOrEmpty();
if ($userShare->isEmpty()) $this->error('用户随手拍不存在!');
if ($userShare->status !== 0) $this->error('用户随手拍已处理!');
$ticket_id = null;
switch ($basic_data['_type']) {
case 'new':
$data = $this->_vali([
'type_id.require' => '类型不能为空',
'user_id.require' => '请选择处理人员',
]);
break;
case 'exist':
$data = $this->_vali([
'ticket_id.require' => '请选择处理工单',
]);
$ticket_id = $data['ticket_id'];
$ticket = TicketTicket::mk()->where(['id' => $data['ticket_id']])->findOrEmpty();
if ($ticket->isEmpty()) $this->error('工单不存在!');
break;
default:
$this->error('参数错误');
}
$userShare->linked_ticket_id = $ticket_id;
$userShare->response = $basic_data['content'];
$userShare->point_aware = $basic_data['point_aware'];
UserPointService::addUserPoint($userShare->user_id, $basic_data['point_aware'], '用户随手拍奖励积分');
$userShare->status = 1;
$userShare->save();
}
}