Article.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace app\common\model;
  3. use think\Db;
  4. class Article extends Base
  5. {
  6. protected $createTime = 'create_time';
  7. protected $updateTime = 'update_time';
  8. public $table = 'article';
  9. protected $validateName = 'Article';
  10. public function updates(){
  11. $data = request()->post();
  12. $data['org_id'] =cur_org_id();
  13. $result = validate($this->validateName)->check($data,[],'');
  14. if(true !== $result){
  15. $this->error = validate($this->validateName)->getError();
  16. return false;
  17. }
  18. if($data['type'] == 1){ // pdf
  19. if(empty($data['path'])){
  20. $this->error = '文件不能为空';
  21. return false;
  22. }
  23. $s = explode('.',$data['path']);
  24. $a = $s[count($s)-1];
  25. if($a!='pdf'){
  26. $this->error = '只能上传pdf文件';
  27. return false;
  28. }
  29. }else if($data['type'] == 3){
  30. if(empty($data['video'])){
  31. $this->error = '文件不能为空';
  32. return false;
  33. }
  34. $s = explode('.',$data['video']);
  35. $a = $s[count($s)-1];
  36. if($a!='mp4'){
  37. $this->error = '只能上传mp4文件';
  38. return false;
  39. }
  40. }else if($data['type'] == 4){
  41. if(empty($data['audio'])){
  42. $this->error = '文件不能为空';
  43. return false;
  44. }
  45. $s = explode('.',$data['audio']);
  46. $a = $s[count($s)-1];
  47. if($a!='mp3'){
  48. $this->error = '只能上传mp3文件';
  49. return false;
  50. }
  51. }
  52. $id = $data['id'];
  53. unset($data['id']);
  54. if($id > 0){
  55. $data['update_time'] = date('Y-m-d H:i:s');
  56. $ret = $this->allowField(true)->save($data,['id'=>$id]);
  57. }else{
  58. $data['create_time'] = date('Y-m-d H:i:s');
  59. $data['create_yyyy'] = date('Y');
  60. $data['create_mm'] = date('d');
  61. $data['create_yyyymmdd'] = date('Ymd');
  62. $ret = $this->allowField(true)->save($data);
  63. }
  64. if(!$ret){
  65. $this->error = '操作失败';
  66. return false;
  67. }
  68. return true;
  69. }
  70. public function getList(){
  71. $list =$this
  72. ->where('org_id',cur_org_id())
  73. ->where('del',0)
  74. ->where('enable',1)
  75. ->select()
  76. ->toArray();
  77. return $list;
  78. }
  79. /*----------API-----------*/
  80. public function lists($page,$size,$orgId,$roleId,$token){
  81. $offset = ($page - 1) * $size;
  82. $map[] = ['org_id','=',$orgId];
  83. $map[] = ['del','=',0];
  84. $map[] = ['enable','=',1];
  85. $parentId = Db::name('roles')
  86. ->where('id',$roleId)
  87. ->find();
  88. if($parentId['parent_id'] >0){
  89. $roleId = $parentId['parent_id'];
  90. }
  91. $m1 = $map;
  92. $m1[] = ['','exp', Db::raw("FIND_IN_SET({$roleId},roles_ids)")];
  93. $m2 = $map;
  94. $m2[] = ['roles_ids','=',null];
  95. $m3 = $map;
  96. $m3[] = ['roles_ids','=',''];
  97. $ret = $this->field('id,title,view,create_time,path,description as descrip,cate_id,limit,org_id')
  98. ->whereOr([ $m1, $m2, $m3 ])
  99. ->limit($offset,$size)
  100. ->order(['sort'=>'desc','id'=>'desc'])
  101. ->select();
  102. $ret = $ret?$ret->toArray():[];
  103. $a = [];
  104. foreach ($ret as $k=>$v){
  105. $v['url']=getSite().'/h5/Index/article?id='.$v['id'].'&token='.$token.'&org_id='.$orgId;
  106. $a[] = formatArray(['id','title','url','descrip','limit','create_time']
  107. ,$v);
  108. }
  109. return $a;
  110. }
  111. }