Merge pull request #14 from a54552239/dev

Dev
This commit is contained in:
vilson 2020-03-03 13:57:35 +08:00 committed by GitHub
commit c621f6db25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 57 additions and 2 deletions

View File

@ -2,6 +2,8 @@
namespace app\common\Model;
use think\Db;
/**
* 组织
* Class Organization
@ -84,4 +86,46 @@ class Organization extends CommonModel
$result = self::update($data, ['code' => $code]);
return $result;
}
public static function quitOrganization($memberCode, $orgCode)
{
if (!$orgCode) {
return error(201, '请选择组织');
}
$org = self::where(['code' => $orgCode])->field('id', true)->find();
if (!$org) {
return error(202, '该组织不存在');
}
$hasJoined = MemberAccount::where(['member_code' => $memberCode, 'organization_code' => $orgCode])->find();
if (!$hasJoined) {
return error(203, '尚未加入该组织');
}
Db::startTrans();
try {
$accountCode = $hasJoined['code'];
$hasJoined->delete();
//退出部门
$list = DepartmentMember::where(['account_code' => $accountCode])->select();
if ($list) {
$departmentMemberModel = new DepartmentMember();
foreach ($list as $item) {
$departmentMemberModel->removeMember($accountCode, $item['department_code']);
}
unset($item);
}
//退出项目
$projectMemberList = ProjectMember::alias('pm')->leftJoin('project p', 'p.code = pm.project_code')->where(['pm.member_code' => $memberCode, 'p.organization_code' => $orgCode])->select();
if ($projectMemberList) {
$projectMemberModel = new ProjectMember();
foreach ($projectMemberList as $item) {
$projectMemberModel->removeMember($memberCode, $item['project_code']);
}
}
} catch (\Exception $exception) {
Db::rollback();
return error($exception->getCode(), $exception->getMessage());
}
Db::commit();
return true;
}
}

View File

@ -118,4 +118,14 @@ class Organization extends BasicApi
$this->model->destroy(Request::post('id'));
$this->success('');
}
public function _quitOrganization(Request $request)
{
$organizationCode = $request::param('organizationCode');
$res = $this->model->quitOrganization(getCurrentMember()['code'], $organizationCode);
if (isError($res)) {
$this->error($res['msg']);
}
$this->success('');
}
}

View File

@ -69,7 +69,8 @@ class Auth
}
// 访问权限检查
if (!empty($access['is_auth']) && !auth($node, 'project')) {
return json(['code' => 403, 'msg' => '无权限操作资源,访问被拒绝']);
$nodeInfo = ProjectNode::where('node', $node)->find();
return json(['code' => 403, 'msg' => '无权限操作资源['. $nodeInfo['title'] . '],访问被拒绝']);
}
//第三资源初始化
$storageConfig = config('storage.');

View File

@ -6,7 +6,7 @@ return [
// 应用名称
'app_name' => 'pearProject',
// 应用版本
'app_version' => '2.8.11',
'app_version' => '2.8.12',
// 应用地址
'app_host' => '',
// 应用调试模式