117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
<?php
 | 
						|
 | 
						|
namespace app\model;
 | 
						|
 | 
						|
use Exception;
 | 
						|
use think\db\exception\DataNotFoundException;
 | 
						|
use think\db\exception\DbException;
 | 
						|
use think\db\exception\ModelNotFoundException;
 | 
						|
use think\facade\Db;
 | 
						|
use think\model\relation\HasOne;
 | 
						|
 | 
						|
class AccountRecord extends Base
 | 
						|
{
 | 
						|
    public const TYPE_CONTENT = 'content';//内容
 | 
						|
    public const TYPE_SPU     = 'spu';//商品
 | 
						|
    public const TYPE_OTHER   = 'other';//其他
 | 
						|
 | 
						|
    public const ACTION_COLLECT    = 'collect';//收藏
 | 
						|
    public const ACTION_LIKE       = 'like';//点赞
 | 
						|
    public const ACTION_SHARE      = 'share';//分享
 | 
						|
    public const ACTION_SEARCH     = 'search';//搜索
 | 
						|
    public const ACTION_VIEW       = 'view';//查看
 | 
						|
    public const ACTION_REGISTER   = 'register';//注册
 | 
						|
    public const ACTION_SHARE_VIEW = 'share_view';//分享内容被查看 记录的account_id为分享人ID
 | 
						|
 | 
						|
    public const COLLECTED = 1;
 | 
						|
    public const LIKED     = 1;
 | 
						|
 | 
						|
    /**
 | 
						|
     * 允许的类型
 | 
						|
     *
 | 
						|
     * @return string[]
 | 
						|
     */
 | 
						|
    public static function allowTypes(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::TYPE_CONTENT, self::TYPE_OTHER, self::TYPE_SPU
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 允许的操作
 | 
						|
     *
 | 
						|
     * @return string[]
 | 
						|
     */
 | 
						|
    public static function allowActions(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::ACTION_COLLECT, self::ACTION_LIKE, self::ACTION_SHARE,
 | 
						|
            self::ACTION_REGISTER, self::ACTION_VIEW, self::ACTION_SHARE_VIEW
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 内容表允许的操作
 | 
						|
     *
 | 
						|
     * @return string[]
 | 
						|
     */
 | 
						|
    public static function archivesActions(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::ACTION_COLLECT, self::ACTION_LIKE, self::ACTION_SHARE,
 | 
						|
            self::ACTION_VIEW
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 不可撤销的操作 即每次都新增记录 如 分享、咨询、注册
 | 
						|
     * 注意:可撤销操作需要防止撤销后重新操作导致的无限制增加统计 即刷数据 如收藏、点赞等
 | 
						|
     *
 | 
						|
     * @return string[]
 | 
						|
     */
 | 
						|
    public static function notUndoActions(): array
 | 
						|
    {
 | 
						|
        return [self::ACTION_SHARE, self::ACTION_REGISTER, self::ACTION_VIEW];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 操作对应字段
 | 
						|
     *
 | 
						|
     * @return string[]
 | 
						|
     */
 | 
						|
    public static function actionField(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::ACTION_REGISTER   => 'customer',
 | 
						|
            self::ACTION_COLLECT    => 'collects',
 | 
						|
            self::ACTION_LIKE       => 'likes',
 | 
						|
            self::ACTION_VIEW       => 'views',
 | 
						|
            self::ACTION_SHARE      => 'shares',
 | 
						|
            self::ACTION_SHARE_VIEW => 'views',//分享内容被查看 也增加views
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 概览操作对应字段
 | 
						|
     *
 | 
						|
     * @return string[]
 | 
						|
     */
 | 
						|
    public static function overviewField(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            self::ACTION_REGISTER   => 'customer',
 | 
						|
            self::ACTION_VIEW       => 'views',
 | 
						|
            self::ACTION_SHARE      => 'shares',
 | 
						|
            self::ACTION_SHARE_VIEW => 'views',//分享内容被查看 也增加views
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 模型关联:内容文档
 | 
						|
     */
 | 
						|
    public function archive(): HasOne
 | 
						|
    {
 | 
						|
        return $this->hasOne(Archives::class, 'id', 'relation_id');
 | 
						|
    }
 | 
						|
} |