TestPaper.php 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 app\admin\model\questions\TestPaperCategory as TestPaperCategoryModel;
  15. use app\merchant\model\questions\TestPaperObtain;
  16. /**
  17. * 试卷列表 Model
  18. * Class TestPaper
  19. * @package app\admin\model\questions
  20. */
  21. class TestPaper extends ModelBasic
  22. {
  23. use ModelTrait;
  24. public static function setWhere($where)
  25. {
  26. $model = self::order('sort desc,add_time desc')->where(['is_del' => 0]);
  27. if (isset($where['pid']) && $where['pid']) $model = $model->where('tid', $where['pid']);
  28. if (isset($where['type']) && $where['type']) $model = $model->where('type', $where['type']);
  29. if (isset($where['is_show']) && $where['is_show'] != '') $model = $model->where('is_show', $where['is_show']);
  30. if (isset($where['title']) && $where['title'] != '') $model = $model->where('title', 'like', "%$where[title]%");
  31. if (isset($where['mer_id']) && $where['mer_id']) $model = $model->where('mer_id', $where['mer_id']);
  32. return $model;
  33. }
  34. /**试卷列表
  35. * @param $where
  36. */
  37. public static function testPaperExercisesList($where)
  38. {
  39. $data = self::setWhere($where)->page($where['page'], $where['limit'])->select();
  40. foreach ($data as $key => &$value) {
  41. $value['cate'] = TestPaperCategoryModel::where('id', $value['tid'])->value('title');
  42. $value['types'] = $value['type'] == 1 ? '练习' : '考试';
  43. }
  44. $count = self::setWhere($where)->count();
  45. return compact('data', 'count');
  46. }
  47. /**试卷列表
  48. * @param $type
  49. * @return false|\PDOStatement|string|\think\Collection
  50. * @throws \think\db\exception\DataNotFoundException
  51. * @throws \think\db\exception\ModelNotFoundException
  52. * @throws \think\exception\DbException
  53. */
  54. public static function testPaperList($type,$mer_id)
  55. {
  56. return self::order('sort desc,add_time desc')->where(['is_del' => 0,'mer_id' => $mer_id, 'type' => $type])->field('id,title')
  57. ->select();
  58. }
  59. /**获取练习、试卷
  60. * @param $where
  61. */
  62. public static function testPaperLists($where, $source)
  63. {
  64. $data = self::setWhere($where)->where('id', 'not in', $source)->page($where['page'], $where['limit'])->select();
  65. $count = self::setWhere($where)->where('id', 'not in', $source)->count();
  66. return compact('data', 'count');
  67. }
  68. public static function getUserWhere($where)
  69. {
  70. return self::alias('t')->join('TestPaperObtain o', 't.id=o.test_id')
  71. ->where(['o.uid' => $where['uid'], 't.is_del' => 0, 'o.is_del' => 0, 'o.source' => 3])
  72. ->field('t.title,t.type,t.id');
  73. }
  74. /**已获得试卷
  75. * @param $where
  76. * @return array
  77. * @throws \think\Exception
  78. */
  79. public static function getUserTestPaperList($where)
  80. {
  81. $data = self::getUserWhere($where)->page($where['page'], $where['limit'])->select();
  82. foreach ($data as $key => &$value) {
  83. $value['types'] = $value['type'] == 1 ? '练习' : '考试';
  84. }
  85. $count = self::getUserWhere($where)->count();
  86. return compact('data', 'count');
  87. }
  88. }