Relation.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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\merchant\model\questions;
  12. use traits\ModelTrait;
  13. use basic\ModelBasic;
  14. use service\UtilService as Util;
  15. use app\merchant\model\questions\Certificate;
  16. use app\merchant\model\user\User;
  17. use app\merchant\model\special\Special;
  18. use app\merchant\model\questions\TestPaper;
  19. use app\merchant\model\download\DataDownload;
  20. /**
  21. * 关联记录 Model
  22. * Class Relation
  23. * @package app\admin\model\questions
  24. */
  25. class Relation extends ModelBasic
  26. {
  27. use ModelTrait;
  28. public static function setWhere($relationship = 0, $relationship_id = 0)
  29. {
  30. return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $relationship_id]);
  31. }
  32. public static function getSpecialJion($relationship_id, $relationship)
  33. {
  34. return 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. ->field('s.type,s.title,s.is_light,s.light_type,s.image,s.id,r.sort,r.id as rid,r.relationship,r.relationship_id');
  37. }
  38. /**获取试题关联的专题
  39. * @param $id
  40. */
  41. public static function getQuestionsRelationSpecial($relationship_id, $relationship)
  42. {
  43. $data = self::getSpecialJion($relationship_id, $relationship)->order('r.sort DESC,rid DESC')->select();
  44. $data = count($data) > 0 ? $data->toArray() : [];
  45. $count = self::getSpecialJion($relationship_id, $relationship)->count();
  46. return compact('data', 'count');
  47. }
  48. /**关联
  49. * @param $id
  50. * @param $special_ids
  51. * @param $relationship
  52. */
  53. public static function setRelations($id, $ids, $relationship)
  54. {
  55. $ids = explode(',', $ids);
  56. if (count($ids) <= 0) return false;
  57. foreach ($ids as $key => $value) {
  58. $data['relationship'] = $relationship;
  59. $data['relationship_id'] = $id;
  60. $data['relation_id'] = $value;
  61. if (self::be($data)) continue;
  62. $data['add_time'] = time();
  63. self::set($data);
  64. }
  65. return true;
  66. }
  67. /**修改排序
  68. * @param $id
  69. * @param $special_id
  70. * @param $value
  71. */
  72. public static function updateRelationSort($id, $special_id, $relationship, $value)
  73. {
  74. return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $id, 'relation_id' => $special_id])->update(['sort' => $value]);
  75. }
  76. /**
  77. * @param $id
  78. * @param $special_id
  79. * @param $relationship
  80. */
  81. public static function delRelation($id, $special_id, $relationship)
  82. {
  83. return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $id, 'relation_id' => $special_id])->delete();
  84. }
  85. public static function getTestPaperJion($relationship_id, $relationship)
  86. {
  87. return self::alias('r')->join('TestPaper t', 'r.relation_id=t.id')
  88. ->where(['r.is_del' => 0, 't.is_show' => 1, 't.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
  89. ->field('t.type,t.title,t.id,r.sort,r.id as rid,r.relationship,r.relationship_id');
  90. }
  91. /**获取专题关联的考试或练习
  92. * @param $id
  93. * @param $relationship
  94. */
  95. public static function getRelationTestPaper($id, $relationship, $page, $limit)
  96. {
  97. $data = self::getTestPaperJion($id, $relationship)->page($page, $limit)->order('r.sort DESC,rid DESC')->select();
  98. $data = count($data) > 0 ? $data->toArray() : [];
  99. foreach ($data as $key => &$value) {
  100. if ($value['type'] == 1) {
  101. $value['types'] = '练习';
  102. } else {
  103. $value['types'] = '考试';
  104. }
  105. }
  106. $count = self::getTestPaperJion($id, $relationship)->count();
  107. return compact('data', 'count');
  108. }
  109. public static function getDataDownloadJion($relationship_id, $relationship)
  110. {
  111. return self::alias('r')->join('DataDownload d', 'r.relation_id=d.id')
  112. ->where(['r.is_del' => 0, 'd.is_show' => 1, 'd.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
  113. ->field('d.title,d.id,r.sort,r.id as rid,r.relationship,r.relationship_id');
  114. }
  115. /**获取专题关联的资料
  116. * @param $id
  117. * @param $relationship
  118. */
  119. public static function getRelationDataDownload($id, $relationship, $page, $limit)
  120. {
  121. $data = self::getDataDownloadJion($id, $relationship)->page($page, $limit)->order('r.sort DESC,rid DESC')->select();
  122. $data = count($data) > 0 ? $data->toArray() : [];
  123. $count = self::getDataDownloadJion($id, $relationship)->count();
  124. return compact('data', 'count');
  125. }
  126. }