<?php

namespace Service\Lib;

use Dever;

class Like
{
    # 获取当前用户是否点赞
    public function get($uid, $id, $type)
    {
        $where['uid'] = $uid;
        $where['type'] = $type;
        $where['data_id'] = $id;
        $where['state'] = 1;
        $info = Dever::db('service/like')->one($where);

        if ($info) {
            return 1;
        } else {
            return 2;
        }
    }

    # 获取当前用户的点赞列表
    public function getList($uid)
    {
        $where['uid'] = $uid;
        $where['type'] = 1;
        $info = Dever::db('service/like')->getAll($where);

        return $info;
    }

    # 点赞+喜欢
    public function submit($uid, $id, $type)
    {
        $where['uid'] = $uid;
        $where['data_id'] = $id;
        $where['type'] = $type;
        $info = Dever::db('service/like')->one($where);
        if (!$info) {
            Dever::db('service/like')->insert($where);
        } else {
            if ($info['state'] == 1) {
                Dever::db('service/like')->update(array('where_id' => $info['id'], 'state' => 2));
            } else {
                Dever::db('service/like')->update(array('where_id' => $info['id'], 'state' => 1));
            }
        }

        # 更新点赞数
        $where = array();
        $where['data_id'] = $id;
        $where['type'] = $type;
        $where['state'] = 1;
        $total = Dever::db('service/like')->total($where);
        $table = Dever::config('base')->type_table[$type];
        Dever::db($table)->update(array('where_id' => $id, 'num_up' => $total));

        Dever::score($uid, 'submit_like', '收藏');

        return true;
    }
}