thinkphp點贊功能和實體設計

thinkphp點贊功能實現和實體表設計 實體表設計: id,category_id,all_ids,user_id,create_time這五個字段,分別是主鍵,分類ID,點贊ID,用戶ID,建立時間。這裏的分類ID是用於有多個點贊需求的設計,例如文章,商品,視頻等。php

/**
     * Created by .
     * User: 周洪亮
     * Date: 2017/3/31
     * Time: 10:30
     * 點贊方法
     */
     public function add()
    {
        $uid              = $_SESSION['uid'];
        $article_id       = I('article_id');//文章ID
        $initial_quantity = C('THANKED_INITIAL_QUANTITY');//點贊初始數量
        $customer_logic=new CustomerLogic();
        $result           = $customer_logic->addLogic($uid, $article_id);//點贊邏輯方法
        if ($result['status'] == -1) {
            exit(json_encode($result));
        }
        if ($result['status'] == -2) {
            $data            = $result['result'];
            $del_where['id'] = $data['id'];
            $del             = $this->db->where($del_where)->delete();//刪除
            if ($del) {
                $thanked_number = ThankedCount($article_id, 1, $initial_quantity);
                exit(json_encode(array('status' => 2, 'msg' => '取消點同意功', 'thanked_number' => $thanked_number)));
            }
        }
        if ($article_id != null) {
            $db_data['all_ids']     = $article_id;
            $db_data['category_id'] = 3;
        }
        $db_data['user_id']     = $uid;
        $db_data['create_time'] = date('Y-m-d H:i:s');
        $add                    = $this->db->data($db_data)->add();
        if ($add) {
            $thanked_number = ThankedCount($article_id, 1, $initial_quantity);
            exit(json_encode(array('status' => 1, 'msg' => '點同意功', 'thanked_number' => $thanked_number)));
        } else {
            exit(json_encode(array('status' => -404, 'msg' => '您的網絡出現故障或咱們服務器正在維修')));
        }
    }
     /**
     * Created by .
     * User: 周宏亮
     * Date: 2017/3/30
     * Time: 18:46
     * 點贊邏輯方法
     * @param $uid 用戶惟一標識
     * @param $shop_id 店鋪惟一ID
     * @param $goods_id 商品惟一標識
     */
    public function addLogic($uid, $article_id = '')
    {
        if ($uid == '') {
            return array('status' => -1, 'msg' => '登陸後在點贊');
        }
        if ($article_id != null) {
            $article_find = ThankedFind($uid, $article_id, 3);//查詢方法
            if ($article_find != '') {
                return array('status' => -2, 'msg' => '已點贊', 'result' => $article_find);
            }
        }
    }
    
/**
 * Created by .
 * User: 周宏亮
 * Date: 2017/3/31
 * Time: 11:07
 * 點贊,查詢是否已點贊
 */
function ThankedFind($uid, $all_ids, $category)
{
    $where['user_id']     = $uid;
    $where['all_ids']     = $all_ids;
    $where['category_id'] = $category;//3是文章,1是商品,店鋪2
    $find                 = M('Thanked')->where($where)->find();
    
    return $find;
}
function ThankedCount($id, $category, $initial_quantity)
{
    $where['all_ids']     = $id;
    $where['category_id'] = $category;
    $count                = M('Thanked')->where($where)->count();
    $number               = $count + $initial_quantity;
    
    return $number;
}

博客地址:zhouhongliang.cn複製代碼
相關文章
相關標籤/搜索