增加日程功能
This commit is contained in:
parent
e3bdb8b207
commit
0fb76d6037
110
application/common/Model/Events.php
Normal file
110
application/common/Model/Events.php
Normal file
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\Model;
|
||||
|
||||
use think\Db;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
use think\Exception;
|
||||
use think\exception\DbException;
|
||||
use think\exception\PDOException;
|
||||
use think\facade\Hook;
|
||||
|
||||
class Events extends CommonModel
|
||||
{
|
||||
protected $pk = 'id';
|
||||
|
||||
|
||||
public function myList($projectCode, $memberCode = '', $page = 1, $pageSize = 10, $sortType = '', $sort = 'desc')
|
||||
{
|
||||
if ($page < 1) {
|
||||
$page = 1;
|
||||
}
|
||||
$offset = ($page - 1) * $pageSize;
|
||||
$limit = $pageSize;
|
||||
$prefix = config('database.prefix');
|
||||
$sql = "select *,p.id as id,p.name as name,p.code as code,p.create_time as create_time,p.end_time as end_time,p.qc,p.get_expected,p.plain_finish from {$prefix}events_member join {$prefix}project as p as pm on p.code = pm.project_code where pm.member_code = '{$memberCode}'";
|
||||
$sql .= "group by p.id ";
|
||||
if ($sortType) {
|
||||
$sql .= " order by {$sortType} {$sort} ";
|
||||
} else {
|
||||
$sql .= ' order by pc.id desc, p.id desc';
|
||||
}
|
||||
$total = Db::query($sql);
|
||||
$total = count($total);
|
||||
$sql .= " limit {$offset},{$limit}";
|
||||
$list = Db::query($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建日程
|
||||
* @param $projectCode
|
||||
* @param $title
|
||||
* @param $description
|
||||
* @param $position
|
||||
* @param $allDay
|
||||
* @param $organizationCode
|
||||
* @param $beginTime
|
||||
* @param $endTime
|
||||
* @return array
|
||||
* @throws DataNotFoundException
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function createData($projectCode, $title, $description, $position, $allDay, $organizationCode, $beginTime, $endTime, $createdBy)
|
||||
{
|
||||
if (!$title) {
|
||||
return error(1, '请填写日程名称');
|
||||
}
|
||||
|
||||
$project = Project::where(['code' => $projectCode])->field('id')->find();
|
||||
if (!$project) {
|
||||
return error(3, '该日程已失效');
|
||||
}
|
||||
$data = [
|
||||
'create_time' => nowTime(),
|
||||
'code' => createUniqueCode('ProjectVersion'),
|
||||
'project_code' => $projectCode,
|
||||
'begin_time' => $beginTime,
|
||||
'end_time' => $endTime,
|
||||
'position' => $position,
|
||||
'all_day' => $allDay,
|
||||
'description' => $description,
|
||||
'organization_code' => $organizationCode,
|
||||
'created_by' => $createdBy,
|
||||
'title' => trim($title),
|
||||
];
|
||||
return self::create($data)->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除日程
|
||||
* @param $eventsCode
|
||||
* @return array|bool
|
||||
*/
|
||||
public function deleteEvents($eventsCode)
|
||||
{
|
||||
if (!$eventsCode) {
|
||||
return error(1, '请选择一个日程');
|
||||
}
|
||||
self::eventsHook(getCurrentMember()['code'], $eventsCode, 'delete');
|
||||
self::update(['deleted' => 1, 'deleted_time' => nowTime()], ['code' => $eventsCode]);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 变动钩子
|
||||
* @param $memberCode
|
||||
* @param $eventsCode
|
||||
* @param string $type
|
||||
* @param string $remark
|
||||
* @param string $content
|
||||
* @param array $data
|
||||
* @param string $tag
|
||||
*/
|
||||
public static function eventsHook($memberCode, $eventsCode, $type = 'create', $remark = '', $content = '', $data = [], $tag = 'events')
|
||||
{
|
||||
$data = ['memberCode' => $memberCode, 'eventsCode' => $eventsCode, 'remark' => $remark, 'type' => $type, 'content' => $content, 'data' => $data, 'tag' => $tag];
|
||||
Hook::listen($tag, $data);
|
||||
}
|
||||
}
|
8
application/common/Model/EventsLog.php
Normal file
8
application/common/Model/EventsLog.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\Model;
|
||||
|
||||
class EventsLog extends CommonModel
|
||||
{
|
||||
protected $pk = 'id';
|
||||
}
|
98
application/common/Model/EventsMember.php
Normal file
98
application/common/Model/EventsMember.php
Normal file
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\Model;
|
||||
|
||||
|
||||
use Exception;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
use think\exception\DbException;
|
||||
|
||||
/**
|
||||
* 日程成员
|
||||
* Class EventsMember
|
||||
* @package app\common\Model
|
||||
*/
|
||||
class EventsMember extends CommonModel
|
||||
{
|
||||
protected $append = ['memberInfo'];
|
||||
|
||||
/**
|
||||
* @param $memberCode
|
||||
* @param $eventCode
|
||||
* @param int $isOwner
|
||||
* @param int $status
|
||||
* @return EventsMember|array|bool
|
||||
* @throws DataNotFoundException
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public static function inviteMember($memberCode, $eventCode, $isOwner = 0, $status = 0)
|
||||
{
|
||||
$event = Events::where(['code' => $eventCode, 'deleted' => 0])->find();
|
||||
if (!$event) {
|
||||
return error(4, '该日程已失效');
|
||||
}
|
||||
$hasJoined = self::where(['member_code' => $memberCode, 'events_code' => $eventCode])->find();
|
||||
if ($hasJoined) {
|
||||
return error(4, '该成员已加入日程');
|
||||
}
|
||||
$data = [
|
||||
'member_code' => $memberCode,
|
||||
'events_code' => $eventCode,
|
||||
'project_code' => $event->project_code,
|
||||
'is_owner' => $isOwner,
|
||||
'status' => $isOwner ? 1 : $status,
|
||||
'join_time' => nowTime()
|
||||
];
|
||||
$result = self::create($data);
|
||||
Events::eventsHook(getCurrentMember()['code'], $eventCode, 'inviteMember', '', '', ['memberCode' => $memberCode]);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function removeMember($memberCode, $eventCode)
|
||||
{
|
||||
$event = Events::where(['code' => $eventCode, 'deleted' => 0])->find();
|
||||
if (!$event) {
|
||||
return error(4, '该日程已失效');
|
||||
}
|
||||
$hasJoined = self::where(['member_code' => $memberCode, 'events_code' => $eventCode])->find();
|
||||
if (!$hasJoined) {
|
||||
return error(4, '该成员尚未加入日程');
|
||||
}
|
||||
if ($hasJoined['is_owner']) {
|
||||
return error(4, '不能移除创建者');
|
||||
}
|
||||
$result = $hasJoined->delete();
|
||||
Events::eventsHook(getCurrentMember()['code'], $eventCode, 'removeMember', '', '', ['memberCode' => $memberCode]);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function confirmJoin($memberCode, $eventCode, $status)
|
||||
{
|
||||
$event = Events::where(['code' => $eventCode, 'deleted' => 0])->find();
|
||||
if (!$event) {
|
||||
return error(4, '该日程已失效');
|
||||
}
|
||||
$hasJoined = self::where(['member_code' => $memberCode, 'events_code' => $eventCode])->find();
|
||||
if (!$hasJoined) {
|
||||
return error(4, '尚未加入日程');
|
||||
}
|
||||
$result = self::where(['member_code' => $memberCode, 'events_code' => $eventCode])->update(['status' => $status, 'confirm_time' => nowTime()]);
|
||||
if ($status == 1) {
|
||||
$type = 'agreeJoin';
|
||||
} else {
|
||||
$type = 'refuseJoin';
|
||||
}
|
||||
Events::eventsHook(getCurrentMember()['code'], $eventCode, $type, '', '', ['memberCode' => $memberCode]);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getMemberInfoAttr($value, $data)
|
||||
{
|
||||
if (empty($data['member_code'])) {
|
||||
$data['member_code'] = 0;
|
||||
}
|
||||
return Member::where('code', $data['member_code'])->field('name,avatar')->find();
|
||||
}
|
||||
}
|
138
application/project/behavior/Events.php
Normal file
138
application/project/behavior/Events.php
Normal file
@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
namespace app\project\behavior;
|
||||
|
||||
|
||||
use app\common\Model\EventsLog;
|
||||
use app\common\Model\Member;
|
||||
use app\common\Model\Notify;
|
||||
use service\MessageService;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
use think\exception\DbException;
|
||||
|
||||
class Events
|
||||
{
|
||||
/**
|
||||
* 日程操作钩子
|
||||
* @param $data
|
||||
* @throws DataNotFoundException
|
||||
* @throws ModelNotFoundException
|
||||
* @throws DbException
|
||||
*/
|
||||
public function run($data)
|
||||
{
|
||||
$logData = ['member_code' => $data['memberCode'], 'source_code' => $data['eventsCode'], 'remark' => $data['remark'], 'type' => $data['type'], 'content' => $data['content'], 'data' => $data['data'], 'create_time' => nowTime(), 'code' => createUniqueCode('eventsLog')];
|
||||
$events = \app\common\Model\Events::where(['code' => $data['eventsCode']])->find();
|
||||
$logData['project_code'] = $events['project_code'];
|
||||
$remark = '';
|
||||
$content = '';
|
||||
$notifyData = [
|
||||
'title' => '',
|
||||
'content' => '',
|
||||
'type' => 'message',
|
||||
'action' => 'events',
|
||||
'terminal' => 'project',
|
||||
'source_code' => $data['eventsCode'],
|
||||
];
|
||||
|
||||
$member = Member::where(['code' => $data['memberCode']])->find();
|
||||
$toMember = [];
|
||||
if (isset($data['data']['memberCode'])) {
|
||||
$toMember = Member::where(['code' => $data['data']['memberCode']])->find();
|
||||
}
|
||||
switch ($data['type']) {
|
||||
case 'create':
|
||||
$icon = 'plus';
|
||||
$remark = '创建了日程 ';
|
||||
$content = $events['title'];
|
||||
break;
|
||||
case 'title':
|
||||
$icon = 'edit';
|
||||
$remark = '更新了日程名 ';
|
||||
$content = $events['title'];
|
||||
break;
|
||||
case 'content':
|
||||
$icon = 'file-text';
|
||||
$remark = '更新了备注 ';
|
||||
$content = $events['description'];
|
||||
break;
|
||||
case 'clearContent':
|
||||
$icon = 'file-text';
|
||||
$remark = '清空了备注 ';
|
||||
break;
|
||||
case 'setBeginTime':
|
||||
$icon = 'calendar';
|
||||
$remark = '更新开始时间为 ' . date('m月d日 H:i', strtotime($events['begin_time']));
|
||||
break;
|
||||
case 'clearBeginTime':
|
||||
$icon = 'calendar';
|
||||
$remark = '清除了开始时间 ';
|
||||
break;
|
||||
case 'setEndTime':
|
||||
$icon = 'calendar';
|
||||
$remark = '更新截止时间为 ' . date('m月d日 H:i', strtotime($events['end_time']));
|
||||
break;
|
||||
case 'clearEndTime':
|
||||
$icon = 'calendar';
|
||||
$remark = '清除了截止时间 ';
|
||||
break;
|
||||
case 'delete':
|
||||
$icon = 'delete';
|
||||
$remark = '删除了日程 ';
|
||||
break;
|
||||
case 'agreeJoin':
|
||||
$icon = 'user-add';
|
||||
$remark = $member['name'] . ' 确认加入日程';
|
||||
$content = $member['name'];
|
||||
break;
|
||||
case 'refuseJoin':
|
||||
$icon = 'user-add';
|
||||
$remark = $member['name'] . ' 拒绝加入日程';
|
||||
$content = $member['name'];
|
||||
break;
|
||||
case 'inviteMember':
|
||||
$icon = 'user-add';
|
||||
$remark = '将 ' . $toMember['name'] . ' 添加到日程';
|
||||
$content = $toMember['name'];
|
||||
$notifyData['title'] = "{$member['name']} 邀请你加入日程";
|
||||
$notifyData['content'] = $events['title'];
|
||||
break;
|
||||
case 'removeMember':
|
||||
$icon = 'user-delete';
|
||||
$remark = '将 ' . $toMember['name'] . ' 从日程中移出';
|
||||
$content = $toMember['name'];
|
||||
$notifyData['title'] = "{$member['name']} 将你从日程中移出";
|
||||
$notifyData['content'] = $events['title'];
|
||||
break;
|
||||
default:
|
||||
$icon = 'plus';
|
||||
$remark = ' 创建了日程 ';
|
||||
break;
|
||||
}
|
||||
$logData['icon'] = $icon;
|
||||
if (!$data['remark']) {
|
||||
$logData['remark'] = $remark;
|
||||
}
|
||||
if (!$data['content']) {
|
||||
$logData['content'] = $content;
|
||||
}
|
||||
EventsLog::create($logData);
|
||||
|
||||
$notifyActions = ['inviteMember', 'removeMember'];
|
||||
$socketAction = $notifyData['action'];
|
||||
if (in_array($data['type'], $notifyActions)) {
|
||||
if ($toMember['code'] != $member['code']) {
|
||||
$messageService = new MessageService();
|
||||
$notifyModel = new Notify();
|
||||
$notifyData['avatar'] = $member['avatar'];
|
||||
$result = $notifyModel->add($notifyData['title'], $notifyData['content'], $notifyData['type'], $member['code'], $toMember['code'], $notifyData['action'], [], $notifyData['terminal'], $notifyData['avatar']);
|
||||
if (isOpenNoticePush()) {
|
||||
$socketMessage = $socketGroupMessage = ['content' => $notifyData['content'], 'title' => $notifyData['title'], 'data' => ['organizationCode' => getCurrentOrganizationCode(), 'projectCode' => $events['project_code'], 'eventsCode' => $events['code']]];
|
||||
$socketMessage['notify'] = $result;
|
||||
$messageService->sendToUid($toMember['code'], $socketMessage, $socketAction);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
338
application/project/controller/Events.php
Normal file
338
application/project/controller/Events.php
Normal file
@ -0,0 +1,338 @@
|
||||
<?php
|
||||
|
||||
namespace app\project\controller;
|
||||
|
||||
use app\common\Model\EventsMember;
|
||||
use app\common\Model\Member;
|
||||
use app\common\Model\EventsLog;
|
||||
use controller\BasicApi;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
use think\Exception;
|
||||
use think\exception\DbException;
|
||||
use think\exception\PDOException;
|
||||
use think\facade\Request;
|
||||
|
||||
/**
|
||||
*/
|
||||
class Events extends BasicApi
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
if (!$this->model) {
|
||||
$this->model = new \app\common\Model\Events();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示资源日程
|
||||
* @return void
|
||||
* @throws DataNotFoundException
|
||||
* @throws ModelNotFoundException
|
||||
* @throws DbException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$where = [];
|
||||
$code = Request::post('projectCode');
|
||||
if ($code) {
|
||||
$where[] = ['project_code', '=', $code];
|
||||
}
|
||||
$where[] = ['deleted', '=', 0];
|
||||
$list = $this->model->_list($where);
|
||||
// $eventMember = new EventsMember();
|
||||
// $list = $eventMember->_list($where);
|
||||
if ($list['list']) {
|
||||
foreach ($list['list'] as &$item) {
|
||||
$item['memberList'] = [];
|
||||
$item['projectName'] = '';
|
||||
$members = EventsMember::where(['events_code' => $item['code']])->order('is_owner desc, status desc, id asc')->all();
|
||||
if ($members) {
|
||||
$item['memberList'] = $members;
|
||||
}
|
||||
$project = \app\common\Model\Project::where('code', $item['project_code'])->field('name')->find();
|
||||
if ($project) {
|
||||
$item['projectName'] = $project['name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->success('', $list);
|
||||
}
|
||||
|
||||
public function myList()
|
||||
{
|
||||
$where = [];
|
||||
$code = Request::post('projectCode');
|
||||
if ($code) {
|
||||
$where[] = ['project_code', '=', $code];
|
||||
}
|
||||
$status = Request::post('status', -1);
|
||||
$where[] = ['deleted', '=', 0];
|
||||
$memberWhere = [['member_code', '=', getCurrentMember()['code']]];
|
||||
if ($status != -1) {
|
||||
$memberWhere[] = ['status', '=', $status];
|
||||
} else {
|
||||
$memberWhere[] = ['status', '<>', 2];
|
||||
}
|
||||
$memberCode = getCurrentMember()['code'];
|
||||
$eventCodes = EventsMember::where($memberWhere)->column('events_code');
|
||||
$where[] = ['code', 'in', $eventCodes];
|
||||
$list = $this->model->_list($where);
|
||||
if ($list['list']) {
|
||||
foreach ($list['list'] as &$item) {
|
||||
$item['memberList'] = [];
|
||||
$item['projectName'] = '';
|
||||
$item['waitConfirm'] = 1;
|
||||
$waitConfirm = EventsMember::where(['events_code' => $item['code'], 'member_code' => $memberCode, 'status' => 0])->find();
|
||||
if (!$waitConfirm) {
|
||||
$item['waitConfirm'] = 0;
|
||||
}
|
||||
$members = EventsMember::where(['events_code' => $item['code']])->order('is_owner desc, status desc, id asc')->all();
|
||||
if ($members) {
|
||||
$item['memberList'] = $members;
|
||||
}
|
||||
$project = \app\common\Model\Project::where('code', $item['project_code'])->field('name')->find();
|
||||
if ($project) {
|
||||
$item['projectName'] = $project['name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->success('', $list);
|
||||
}
|
||||
|
||||
public function confirmList()
|
||||
{
|
||||
$where = [];
|
||||
$code = Request::post('projectCode');
|
||||
if ($code) {
|
||||
$where[] = ['project_code', '=', $code];
|
||||
}
|
||||
$where[] = ['deleted', '=', 0];
|
||||
$eventCodes = EventsMember::where(['status' => 0, 'member_code' => getCurrentMember()['code']])->column('events_code');
|
||||
$where[] = ['code', 'in', $eventCodes];
|
||||
$list = $this->model->_list($where);
|
||||
if ($list['list']) {
|
||||
foreach ($list['list'] as &$item) {
|
||||
$item['memberList'] = [];
|
||||
$item['projectName'] = '';
|
||||
$members = EventsMember::where(['events_code' => $item['code']])->all();
|
||||
if ($members) {
|
||||
$item['memberList'] = $members;
|
||||
}
|
||||
$project = \app\common\Model\Project::where('code', $item['project_code'])->field('name')->find();
|
||||
if ($project) {
|
||||
$item['projectName'] = $project['name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->success('', $list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @param Request $request
|
||||
* @return void
|
||||
* @throws DataNotFoundException
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function save(Request $request)
|
||||
{
|
||||
$data = $request::only('project_code,title,description,begin_time,end_time,all_day,position');
|
||||
if (!$request::post('title')) {
|
||||
$this->error("请填写日程名称");
|
||||
}
|
||||
$result = $this->model->createData($data['project_code'], $data['title'], $data['description'], $data['position'], $data['all_day'], getCurrentOrganizationCode(), $data['begin_time'], $data['end_time'], getCurrentMember()['code']);
|
||||
if (!isError($result)) {
|
||||
\app\common\Model\Events::eventsHook(getCurrentMember()['code'], $result['code'], 'create');
|
||||
$memberList = $request::post('member_list', "");
|
||||
if ($memberList) {
|
||||
$memberCode = getCurrentMember()['code'];
|
||||
$memberList = json_decode($memberList, JSON_UNESCAPED_UNICODE);
|
||||
foreach ($memberList as $item) {
|
||||
EventsMember::inviteMember($item, $result['code'], $item == $memberCode ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
$this->success('添加成功', $result);
|
||||
}
|
||||
$this->error($result['msg']);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
* @param Request $request
|
||||
* @return void
|
||||
* @throws DataNotFoundException
|
||||
* @throws ModelNotFoundException
|
||||
* @throws DbException
|
||||
*/
|
||||
public function edit(Request $request)
|
||||
{
|
||||
$data = $request::only('project_code,title,description,begin_time,end_time,all_day,position');
|
||||
$eventsCode = $request::param('code');
|
||||
if (isset($data['title']) && !$data['title']) {
|
||||
$this->error("请填写日程名称");
|
||||
}
|
||||
if (!$eventsCode) {
|
||||
$this->error("请选择一个日程");
|
||||
}
|
||||
$events = $this->model->where(['code' => $eventsCode])->field('id,project_code')->find();
|
||||
if (!$events) {
|
||||
$this->error("该日程已失效");
|
||||
}
|
||||
$result = $this->model->_edit($data, ['code' => $eventsCode]);
|
||||
if ($result) {
|
||||
$eventsMemberCodes = EventsMember::where(['events_code' => $eventsCode])->column('member_code');
|
||||
$memberList = $request::post('member_list', "");
|
||||
if ($memberList) {
|
||||
$memberCode = getCurrentMember()['code'];
|
||||
$memberList = json_decode($memberList, JSON_UNESCAPED_UNICODE);
|
||||
foreach ($memberList as $item) {
|
||||
if (!in_array($item, $eventsMemberCodes)) {
|
||||
EventsMember::inviteMember($item, $eventsCode, $item == $memberCode ? 1 : 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($eventsMemberCodes) {
|
||||
foreach ($eventsMemberCodes as $item) {
|
||||
if (!in_array($item, $memberList)) {
|
||||
EventsMember::removeMember($item, $eventsCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$member = getCurrentMember();
|
||||
$type = 'title';
|
||||
if (isset($data['title'])) {
|
||||
$type = 'title';
|
||||
}
|
||||
if (isset($data['description'])) {
|
||||
$type = 'content';
|
||||
if (!$data['description']) {
|
||||
$type = 'clearContent';
|
||||
}
|
||||
}
|
||||
if (isset($data['begin_time'])) {
|
||||
$type = 'setBeginTime';
|
||||
if (!$data['begin_time']) {
|
||||
$type = 'clearBeginTime';
|
||||
}
|
||||
}
|
||||
if (isset($data['end_time'])) {
|
||||
$type = 'setEndTime';
|
||||
if (!$data['end_time']) {
|
||||
$type = 'clearEndTime';
|
||||
}
|
||||
}
|
||||
\app\common\Model\Events::eventsHook($member['code'], $eventsCode, $type);
|
||||
$this->success('');
|
||||
}
|
||||
$this->error("操作失败,请稍候再试!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @throws DataNotFoundException
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function read()
|
||||
{
|
||||
$code = Request::post('eventsCode');
|
||||
$events = $this->model->where(['code' => $code])->field('id', true)->find();
|
||||
if ($events) {
|
||||
$events['memberList'] = [];
|
||||
$members = EventsMember::where(['events_code' => $events['code']])->all();
|
||||
if ($members) {
|
||||
$events['memberList'] = $members;
|
||||
}
|
||||
}
|
||||
$this->success('', $events);
|
||||
}
|
||||
|
||||
public function confirmJoin()
|
||||
{
|
||||
$eventsCode = Request::post('eventsCode');
|
||||
$status = Request::post('status');
|
||||
$memberCode = getCurrentMember()['code'];
|
||||
$result = EventsMember::confirmJoin($memberCode, $eventsCode, $status);
|
||||
if (isError($result)) {
|
||||
$this->error($result['msg'], $result['errno']);
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
|
||||
public function removeMember()
|
||||
{
|
||||
$eventsCode = Request::post('eventsCode');
|
||||
$memberCode = Request::post('memberCode');
|
||||
$result = EventsMember::removeMember($memberCode, $eventsCode);
|
||||
if (isError($result)) {
|
||||
$this->error($result['msg'], $result['errno']);
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
|
||||
public function inviteMember()
|
||||
{
|
||||
$eventsCode = Request::post('eventsCode');
|
||||
$memberCode = Request::post('memberCode');
|
||||
$result = EventsMember::inviteMember($memberCode, $eventsCode, 0);
|
||||
if (isError($result)) {
|
||||
$this->error($result['msg'], $result['errno']);
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 日程日志
|
||||
* @throws DataNotFoundException
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function _getEventsLog()
|
||||
{
|
||||
$code = Request::post('eventsCode');
|
||||
$showAll = Request::post('all', 0);
|
||||
$where = [];
|
||||
$where[] = ['source_code', '=', $code];
|
||||
$eventsModel = new EventsLog();
|
||||
if ($showAll) {
|
||||
$list = [];
|
||||
$list['list'] = $eventsModel->where($where)->order('id asc')->select()->toArray();
|
||||
$list['total'] = count($list['list']);
|
||||
} else {
|
||||
$list = $eventsModel->_list($where, 'id desc');
|
||||
if ($list['list']) {
|
||||
$list['list'] = array_reverse($list['list']);
|
||||
}
|
||||
}
|
||||
if ($list['list']) {
|
||||
foreach ($list['list'] as &$item) {
|
||||
$member = Member::where(['code' => $item['member_code']])->field('id,name,avatar,code')->find();
|
||||
!$member && $member = [];
|
||||
$item['member'] = $member;
|
||||
}
|
||||
}
|
||||
$this->success('', $list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除日程
|
||||
* @return void
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$code = Request::post('eventsCode');
|
||||
if (!$code) {
|
||||
$this->error("请选择一个日程");
|
||||
}
|
||||
$result = $this->model->deleteEvents($code);
|
||||
if (isError($result)) {
|
||||
$this->error($result['msg'], $result['errno']);
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
}
|
@ -9,4 +9,7 @@ return [
|
||||
'version' => [
|
||||
'app\\project\\behavior\\Version'
|
||||
],
|
||||
'events' => [
|
||||
'app\\project\\behavior\\Events'
|
||||
],
|
||||
];
|
||||
|
Loading…
x
Reference in New Issue
Block a user