49 lines
1.4 KiB
PHP
Executable File
49 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\common\Model;
|
|
|
|
|
|
/**
|
|
* 项目收藏
|
|
* Class ProjectMember
|
|
* @package app\common\Model
|
|
*/
|
|
class ProjectCollection extends CommonModel
|
|
{
|
|
protected $append = [];
|
|
|
|
/**
|
|
* @param $memberId
|
|
* @param $projectId
|
|
* @param string $type
|
|
* @return ProjectCollection|bool
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
* @throws \think\exception\DbException
|
|
*/
|
|
public function collect($memberCode, $projectCode, $type = 'collect')
|
|
{
|
|
$project = Project::where(['code' => $projectCode, 'deleted' => 0])->find();
|
|
if (!$project) {
|
|
throw new \Exception('该项目已失效', 1);
|
|
}
|
|
$hasCollected = self::where(['member_code' => $memberCode, 'project_code' => $projectCode])->find();
|
|
if ($type == 'collect') {
|
|
if ($hasCollected) {
|
|
throw new \Exception('该项目已收藏', 1);
|
|
}
|
|
$data = [
|
|
'member_code' => $memberCode,
|
|
'project_code' => $projectCode,
|
|
'create_time' => nowTime()
|
|
];
|
|
return self::create($data);
|
|
} else {
|
|
if (!$hasCollected) {
|
|
throw new \Exception('尚未收藏该项目', 1);
|
|
}
|
|
return self::where(['member_code' => $memberCode, 'project_code' => $projectCode])->delete();
|
|
}
|
|
}
|
|
}
|