Tag.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\model;
  4. use app\model\Base;
  5. class Tag extends Base
  6. {
  7. protected $pk = 'tagid';
  8. protected $schema = [
  9. "tagid" => "int",
  10. "tagname" => "varchar",
  11. "nums" => "int",
  12. "create_time" => "int",
  13. "update_time" => "int"
  14. ];
  15. public static function queryList($tagname)
  16. {
  17. return self::where('tagname','LIKE', '%'.$tagname.'%')->field('tagid, tagname')->select();
  18. }
  19. public static function saveTags(array $tags, int $infoid = 0, int $cid = 0)
  20. {
  21. foreach ($tags as $tagname) {
  22. $tag = self::where('tagname', $tagname)->find();
  23. if ($tag == null) {
  24. $tag = new static;
  25. $tag->tagname = $tagname;
  26. }
  27. $tag->nums += 1;
  28. $tag->save();
  29. TagArticle::create([
  30. 'infoid' => $infoid,
  31. 'cid' => $cid,
  32. 'tagid' => $tag->tagid
  33. ]);
  34. }
  35. }
  36. public static function decNums(array $tags, int $infoid=0)
  37. {
  38. foreach ($tags as $tagname) {
  39. $tag = self::where('tagname', $tagname)->find();
  40. if ($tag != null) {
  41. $tag->nums = $tag->nums - 1;
  42. $tag->save();
  43. TagArticle::where(['infoid'=>$infoid, 'tagid'=>$tag->tagid])->delete();
  44. }
  45. }
  46. }
  47. }