Relation.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\wap\model\topic;
  12. use traits\ModelTrait;
  13. use basic\ModelBasic;
  14. use app\wap\model\special\Special;
  15. use app\wap\model\topic\TestPaper;
  16. use app\wap\model\material\DataDownload;
  17. /**关联表
  18. * Class Relation
  19. * @package app\wap\model\topic
  20. */
  21. class Relation extends ModelBasic
  22. {
  23. use ModelTrait;
  24. public static function setWhere($relationship = 0, $relationship_id = 0)
  25. {
  26. return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $relationship_id]);
  27. }
  28. /**获取试题关联的专题
  29. * @param int $relationship
  30. * @param int $relationship_id
  31. */
  32. public static function getRelationSpecial($relationship = 0, $relationship_id = 0, $page = false, $limit = false)
  33. {
  34. $model = self::alias('r')->join('Special s', 'r.relation_id=s.id')
  35. ->where(['r.is_del' => 0, 's.is_show' => 1, 's.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id]);
  36. if ($page) {
  37. $model = $model->page((int)$page, !$limit ? 20 : (int)$limit);
  38. }
  39. $data = $model->field('s.id,s.title,s.is_light,s.light_type,s.image,s.label,s.money,s.type,r.id as rid,r.sort')
  40. ->order('r.sort DESC,rid DESC')->select();
  41. $data = count($data) > 0 ? $data->toArray() : [];
  42. return $data;
  43. }
  44. public static function getRelationTestPaper($relationship = 0, $relationship_id = 0)
  45. {
  46. $data = self::alias('r')->join('TestPaper t', 'r.relation_id=t.id')
  47. ->where(['r.is_del' => 0, 't.is_show' => 1, 't.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
  48. ->field('t.id,t.title,r.id as rid,r.sort')->order('r.sort DESC,rid DESC')->select();
  49. $data = count($data) > 0 ? $data->toArray() : [];
  50. return $data;
  51. }
  52. public static function getRelationDataDownload($relationship = 0, $relationship_id = 0)
  53. {
  54. $data = self::alias('r')->join('DataDownload d', 'r.relation_id=d.id')
  55. ->where(['r.is_del' => 0, 'd.is_show' => 1, 'd.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
  56. ->field('d.id,d.title,r.id as rid,r.sort')->order('r.sort DESC,rid DESC')->select();
  57. $data = count($data) > 0 ? $data->toArray() : [];
  58. return $data;
  59. }
  60. }