gdoo/app/Gdoo/Index/Services/ShareService.php

92 lines
2.2 KiB
PHP

<?php namespace Gdoo\Index\Services;
use Gdoo\Index\Models\Share;
use Gdoo\User\Models\User;
class ShareService
{
/**
* 获取分享数据
*/
public static function getItemsSourceBy(array $source_type, $user_id)
{
$user = User::find($user_id);
return Share::leftJoin('user', 'share.created_id', '=', 'user.id')
->permission('share.receive_id', $user)
->whereIn('share.source_type', $source_type)
->get(['share.*', 'user.name', 'user.username']);
}
/**
* 获取分享数据
*/
public static function getItemsCreatedBy(array $source_type, $user_id)
{
return Share::where('created_id', $user_id)
->whereIn('source_type', $source_type)
->get();
}
/**
* 添加分享数据
*/
public static function getItemsSourceId($source_type, $source_id)
{
return Share::where('source_id', $source_id)
->where('source_type', $source_type)
->get();
}
/**
* 添加分享数据
*/
public static function getItem($source_type, $source_id)
{
return Share::where('source_id', $source_id)
->where('source_type', $source_type)
->first();
}
/**
* 删除一条分享数据
*/
public static function removeItem($source_type, $source_id)
{
return Share::where('source_id', $source_id)
->where('source_type', $source_type)
->delete();
}
/**
* 添加分享数据
*/
public static function addItem($data)
{
if ($data['receive_id'] == '') {
return;
}
if (empty($data['source_id']) || empty($data['source_type'])) {
return;
}
Share::insert($data);
}
/**
* 编辑分享数据
*/
public static function editItem($source_type, $source_id, $data)
{
if ($data['receive_id'] == '') {
// 共享对象为空删除共享记录
static::removeItem($source_type, $source_id);
return;
}
if (empty($source_id) || empty($source_type)) {
return;
}
return Share::where('source_id', $source_id)
->where('source_type', $source_type)
->update($data);
}
}