php点赞功能设计,thinkphp点赞功能和实体设计

实体表设计:

id,category_id,all_ids,user_id,create_time这五个字段,分别是主键,分类ID,点赞ID,用户ID,创建时间。这里的分类ID是用于有多个点赞需求的设计,例如文章,商品,视频等。/**

* 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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值