/**
* 添加评论
* content 评论内容
* addtime 评论时间
* uid 评论作品
*/
public function padd(){
$param=input('param.');
$param['pid']=session('tid');
if(empty($param['uid'])){
return json(['code'=>2,'message'=>'uid不能为空']);
}

$data=db('comments')->insertGetId(['uid'=>$param['uid'],'content'=>$param['content'],'addtime'=>$param['addtime'],'pid'=>$param['pid']]);
if($data){
return json(['code'=>1,'message'=>'评论成功']);
}else{
return json(['code'=>2,'message'=>'评论失败']);
}
}

/**
* 评论展示
* uid comments表
* page 页数
* num 条数
*/
public function comment(){
$param=input('param.');
$param['pid']=session('tid');//用户id
if(empty($param['page'])){
$param['page']=1;
}

if(empty($param['num'])){
$param['num']=5;
}
if(empty($param['uid'])){
return json(['code'=>2,'message'=>'uid不能为空']);
}

$data=db('comments')->where('uid',$param['uid'])->page($param['page'],$param['num'])->select();

$commentslike=db('commentslike');
$people=db('people');
foreach ($data as $k=>$value) {
//查看评论点赞表的状态
$state=$commentslike->where(['pid'=>$param['pid'],'uid'=>$param['uid'],'cid'=>$value['data']])->value('state');
if(empty($state)){
$state = '还未点赞';
}
$data[$k]['state']=$state;

//获取评论人的手机号
$people=$people->where('id',$value['pid'])->value('tel');
$data[$k]['tel']=$people;

//把二级评论添加到数组数据中
if($value['rpid'] !== 0){
// $r_pid = $commentslike->where(['id'=>$value['rpid']])->value('pid');
$r_tel = $people->where('id',$value['rpid'])->value('tel');
$data[$k]['r_tel'] = $r_tel;
}else{
$data[$k]['r_tel'] = '';
}

}
return json(['code'=>1,'data'=>$data]);
}

/**
* 评论点赞
* uid 作品id
*/
public function commentslike(){
$param=input('param.');
$param['pid']=session::get('tid');

if(empty($param['uid'])){
return json(['code'=>2,'message'=>'uid不能为空']);
}
//判断该作品有没有评论
$comments=db('comments')->where('uid',$param['uid'])->select();
if(!empty($comments)){
//判断他有没有点赞
$data=db('commentslike')->where(['uid'=>$param['uid'],'pid'=>$param['pid'],'cid'=>$comments['id']])->find();
if(empty($data)){
$like=db('commentslike')->insertGetId(['uid'=>$param['uid'],'pid'=>$param['pid'],'cid'=>$comments['id'],$param['state']=>'点赞']);
if($like){
return json(['code'=>1,'message'=>'点赞成功']);
}else{
return json(['code'=>1,'message'=>'点赞失败']);
}
}else{
if($data['state']=='取消点赞'){
$like=db('commentslike')->where(['uid'=>$param['uid'],'pid'=>$param['pid'],'cid'=>$comments['id']])->update([$param['state']=>'点赞']);
}elseif($data['state']=='点赞'){
$like=db('commentslike')->where(['uid'=>$param['uid'],'pid'=>$param['pid'],'cid'=>$comments['id']])->update([$param['state']=>'取消点赞']);
}
}

}else{
return json(['code'=>2,'message'=>'此作品还未评论']);
}
}

/**
* 回复评论
* uid 作品id
* content 回复内容
* cid 这条评论的id
* uid 作品id pid 评论人id
*/
public function reply(){
$param['pid'] = session('tid');
$param = input('param.');
//被评论的id $param['cid']
$data = db('comments')->where(['id'=>$param['rid']])->find();
if($data['rid'] !== 0){
$param['rid'] = $data['rid'];//被回复人的pid.
}
$param['rid'] = $data['id'];//被回复人的pid.

$param['rpid'] = $data['pid'];

//评论内容 $param['content']
//作品id $param['uid']
$param['addtime'] = date('Y-m-d H:i:s');
$id = db('comments')->insertGetId(['uid'=>$param['uid'],'content'=>$param['content'],'addtime'=>$param['addtime'],'pid'=>$param['pid'],'rid'=>$param['rid']]);
if($id){
return json(['code'=>1,'messgae'=>'回复成功']);
}else{
return json(['code'=>2,'message'=>'回复失败']);
}
}

/**
* 查看二级评论
* uid 作品id
* rid 这条评论的id
*/
public function GetRCommtens($value='')
{
$data = db('comments')->where(['rid'=>$param['rid']])->select();
}

PHP后台评论 接口的更多相关文章

  1. 使用Asp.net WebAPI 快速构建后台数据接口

    现在的互联网应用,无论是web应用,还是移动APP,基本都需要实现非常多的数据访问接口.其实对一些轻应用来说Asp.net WebAPI是一个很快捷简单并且易于维护的后台数据接口框架.下面我们来快速构 ...

  2. QQ18年,解密8亿月活的QQ后台服务接口隔离技术

    作者:shane,腾讯后台开发高级工程师 QQ18年 1999年2月10日,腾讯QQ横空出世.光阴荏苒,那个在你屏幕右下角频频闪动的企鹅已经度过了18个年头.随着QQ一同成长的你,还记得它最初的摸样吗 ...

  3. 解决Ajax请求后台Servlet接口拿不到JSON数据问题

    前端Ajax请求代码如下: window.onload=function() { var url='http://127.0.0.1:8080/testpj/ErrorlogServlet'; $.a ...

  4. 在vue-cli搭建的项目中在后台mock接口中支持req.body和req.cookies

    在<vue-cli搭建的项目中增加后台mock接口>中实现了后台mock,但是前端post的t数据都要在mock的后台接口中使用req的接收数据事件获取http协议body中的数据. re ...

  5. WordPress 后台评论如何自定义搜索条件

    大家都知道WordPress 作为一个非常成熟的博客系统,功能可以说是非常强大,几乎整个网站都可以进行定制开发,已经不算是一个博客系统了而应该是一个成熟的开发框架 最近就用WP给客户开发了一个网站,但 ...

  6. c#后台访问接口

    直接上代码 后台代码 //接口地址string url = "http://spherefg.topsmoon.com:6666/restapi/Comment/SubmitCommentF ...

  7. 年轻人不讲武德,竟然重构出这么优雅后台 API 接口

    Hello,早上好,我是楼下小黑哥~ 最近偶然间在看到 Spring 官方文档的时候,新学到一个注解 @ControllerAdvice,并且成功使用这个注解重构我们项目的对外 API 接口,去除繁琐 ...

  8. 电商管理后台 API 接口文档

    1. 电商管理后台 API 接口文档 1.1. API V1 接口说明 接口基准地址:http://127.0.0.1:8888/api/private/v1/ 服务端已开启 CORS 跨域支持 AP ...

  9. Mock模拟后台数据接口--再也不用等后端的API啦

    ok,在开发中经常需要从后台获取数据,那么有时候后台的数据接口并没有写好,所以这时候,就需要自己模拟数据接口,来实现前端逻辑, 今天数的就是阿里巴巴的一款mock产品,很好用的哦!!!! ok!这是我 ...

随机推荐

  1. GitHub上Markdown语法的高级应用

    高级语法格式 本篇的内容来源于Github使用高级格式写作.如果在观看时有什么问题,可以直接查阅源文件.另外需要说明的是Git对Markdown的支持增加了一些扩展功能,因此在Git上可以渲染的Mar ...

  2. VS2010错误

    1.用VS2010生成C++程序时,链接器工具错误 LNK1123: fatal error LNK1123: failure during conversion to COFF: file inva ...

  3. Java Http协议处理类

    public class HttpRequest { public static String doGet(String url,String params) throws Exception{ re ...

  4. Spring 注解原理(一)组件注册

    Spring 注解原理(一)组件注册 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 当我们需要使用 Spring 提供的 ...

  5. sqlserver 数据迁移

    转载地址: 1.https://blog.csdn.net/yh_zeng2/article/details/72901892 2.https://www.cnblogs.com/jpfss/p/91 ...

  6. 在Eclipse中运行JAVA代码远程操作HBase的示例

    在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...

  7. windows 8 update to windows 8.1

    可以参考以下几个链接: http://blogs.windows.com/windows/b/appbuilder/archive/2013/07/24/windows-8-to-windows-8- ...

  8. 第一个C#语言

    第一个C#程序 .NET和C#的区别 1.  C#只是.NET的一部分,.NET不止包含C# 2.  C#是一种程序语言,.NET是一个平台.框架 IDE环境:vs 2012 VS2012的窗口结构 ...

  9. 27、Label 自适应文本 xib

    第一步: 第二步: 第三步: 第四步:

  10. Python开课复习-10/16

    import random # random 随机数模块 # print(random.random()) #----float 大于0且小于1之间的小数# print(random.choice([ ...