4
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
namespace app\model;
|
||||
|
||||
/**
|
||||
* 朋友圈动态模型
|
||||
* @property integer $id 主键(ID)
|
||||
* @property integer $user_id 用户ID
|
||||
* @property string $body 内容
|
||||
* @property string $files 图片列表(JSON)
|
||||
* @property integer $like_count 点赞数
|
||||
* @property integer $comment_count 评论数
|
||||
* @property integer $created_at 创建时间
|
||||
* @property integer $updated_at 更新时间
|
||||
* @property integer $status 状态(0:隐藏 1:正常)
|
||||
*/
|
||||
class FriendCircle extends Base
|
||||
{
|
||||
protected $name = 'friend_circle';
|
||||
|
||||
protected function getOptions(): array
|
||||
{
|
||||
return array_merge(parent::getOptions(), [
|
||||
'insert' => [
|
||||
'status' => 1,
|
||||
'like_count' => 0,
|
||||
'comment_count' => 0,
|
||||
],
|
||||
]);
|
||||
}
|
||||
public static function onAfterInsert($row){
|
||||
$changeData = $row->getChangedData();
|
||||
if(isset($changeData['files'])) {
|
||||
$files = json_decode($changeData['files'],true);
|
||||
Files::whereIn('path',$files)->inc('use_count');
|
||||
};
|
||||
}
|
||||
|
||||
public static function onAfterUpdate($row){
|
||||
$OrgData = $row->getOrigin();
|
||||
$changeData = $row->getChangedData();
|
||||
if(isset($OrgData['files'])) {
|
||||
if(is_array($OrgData['files'])){
|
||||
\support\Log::alert('OrgData array');
|
||||
}else{
|
||||
\support\Log::info('OrgData string');
|
||||
$files = json_decode($OrgData['files'],true);
|
||||
Files::whereIn('path',$files)->dec('use_count');
|
||||
}
|
||||
};
|
||||
if(isset($changeData['files'])) {
|
||||
if(is_array($changeData['files'])){
|
||||
\support\Log::alert('changeData array');
|
||||
}else{
|
||||
\support\Log::info('changeData string');
|
||||
$files = json_decode($changeData['files'],true);
|
||||
Files::whereIn('path',$files)->inc('use_count');
|
||||
}
|
||||
};
|
||||
}
|
||||
/**
|
||||
* 关联用户
|
||||
*/
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo('\\app\\model\\User', 'user_id', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 关联点赞
|
||||
*/
|
||||
public function likes()
|
||||
{
|
||||
return $this->hasMany('\\app\\model\\FriendCircleLike', 'circle_id', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 关联评论
|
||||
*/
|
||||
public function comments()
|
||||
{
|
||||
return $this->hasMany('\\app\\model\\FriendCircleComment', 'circle_id', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图片列表
|
||||
*/
|
||||
public function getFilesAttr($value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return [];
|
||||
}
|
||||
if(is_array($value)){
|
||||
return $value;
|
||||
}
|
||||
$files = json_decode($value, true);
|
||||
return is_array($files) ? $files : [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置图片列表
|
||||
*/
|
||||
public function setFilesAttr($value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return '[]';
|
||||
}
|
||||
if (is_array($value)) {
|
||||
return json_encode($value, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
/**
|
||||
* 获取图片列表
|
||||
*/
|
||||
public function getAddressAttr($value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return [];
|
||||
}
|
||||
$files = json_decode($value, true);
|
||||
return is_array($files) ? $files : [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置图片列表
|
||||
*/
|
||||
public function setAddressAttr($value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return '{"chooseFlag":false}';
|
||||
}
|
||||
if (is_array($value)) {
|
||||
return json_encode($value, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user