Comment.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. +-----------------------------------------------------------------------------------------------
  4. * GouGuOPEN [ 左手研发,右手开源,未来可期!]
  5. +-----------------------------------------------------------------------------------------------
  6. * @Copyright (c) 2021~2024 http://www.gouguoa.com All rights reserved.
  7. +-----------------------------------------------------------------------------------------------
  8. * @Licensed 勾股OA,开源且可免费使用,但并不是自由软件,未经授权许可不能去除勾股OA的相关版权信息
  9. +-----------------------------------------------------------------------------------------------
  10. * @Author 勾股工作室 <hdm58@qq.com>
  11. +-----------------------------------------------------------------------------------------------
  12. */
  13. declare (strict_types = 1);
  14. namespace app\api\model;
  15. use think\facade\Db;
  16. use think\Model;
  17. class Comment extends Model
  18. {
  19. //列表
  20. function datalist($param=[],$where=[]) {
  21. $rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
  22. $order = empty($param['order']) ? 'id desc' : $param['order'];
  23. try {
  24. $list = self::where($where)
  25. ->order($order)
  26. ->paginate(['list_rows'=> $rows])
  27. ->each(function ($item, $key) use($param){
  28. $item['create_times'] = time_trans($item['create_time']);
  29. if($item['update_time']>0){
  30. $item['update_times'] = ',最后编辑时间:'.time_trans($item['update_time']);
  31. }
  32. else{
  33. $item['update_times'] = '';
  34. }
  35. $item['thumb'] = Db::name('Admin')->where(['id' => $item['admin_id']])->value('thumb');
  36. $item['name'] = Db::name('Admin')->where(['id' => $item['admin_id']])->value('name');
  37. $to_names = Db::name('Admin')->where([['id', 'in', $item['to_uids']]])->column('name');
  38. if (empty($to_names)) {
  39. $item['to_names'] = '-';
  40. } else {
  41. $item['to_names'] = implode(',', $to_names);
  42. }
  43. $item['read'] = 0;
  44. if($item['admin_id'] == $param['admin_id']){
  45. $item['read'] = 2;
  46. }
  47. else{
  48. $count = Db::name('CommentRead')->where(['comment_id' => $item['id'],'admin_id' => $param['admin_id']])->count();
  49. if($count>0){
  50. $item['read'] = 1;
  51. }
  52. }
  53. if($item['pid']>0){
  54. $pcomment = Db::name('Comment')->where('id','=',$item['pid'])->find();
  55. $padmin_id =$pcomment['admin_id'];
  56. $item['padmin'] =Db::name('Admin')->where('id','=',$padmin_id)->value('name');
  57. $item['ptimes'] =time_trans($pcomment['create_time']);
  58. $item['pcontent'] = $pcomment['content'];
  59. }
  60. return $item;
  61. });
  62. return $list;
  63. } catch(\Exception $e) {
  64. return ['code' => 1, 'data' => [], 'msg' => $e->getMessage()];
  65. }
  66. }
  67. }