Classes.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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\admin\controller\educational;
  12. use app\admin\controller\AuthController;
  13. use service\JsonService as Json;
  14. use app\admin\model\educational\Classes as ClassesModel;
  15. use app\admin\model\educational\Teacher as TeacherModel;
  16. use app\admin\model\educational\Student as StudentModel;
  17. use app\admin\model\merchant\Merchant;
  18. use service\FormBuilder as Form;
  19. use think\Db;
  20. use think\Url;
  21. /**
  22. * 班级管理
  23. * Class Classes
  24. */
  25. class Classes extends AuthController
  26. {
  27. /**
  28. * 班级列表
  29. */
  30. public function index()
  31. {
  32. return $this->fetch();
  33. }
  34. /**
  35. * 获取班级列表
  36. */
  37. public function getClassesList()
  38. {
  39. $where = parent::getMore([
  40. ['page', 1],
  41. ['limit', 20],
  42. ['status', ''],
  43. ['title', ''],
  44. ]);
  45. return Json::successlayui(ClassesModel::getClassesLists($where));
  46. }
  47. /**
  48. * 老师列表
  49. */
  50. public function getTeacherList()
  51. {
  52. $list = TeacherModel::where(['is_del' => 0])->field('name,id')->order('sort desc,add_time desc')->select();
  53. $list = count($list) > 0 ? $list->toArray() : [];
  54. return Json::successful($list);
  55. }
  56. /**关联专题
  57. * @param int $id
  58. */
  59. public function relation($id = 0)
  60. {
  61. if (!$id) Json::fail('缺少参数');
  62. $questions = ClassesModel::get($id);
  63. if (!$questions) Json::fail('班级不存在');
  64. $mer_list = Merchant::getMerchantList();
  65. $this->assign(['id' => $id, 'relation_ids' => $questions['relation'],'mer_list' => $mer_list]);
  66. return $this->fetch('relation');
  67. }
  68. /**
  69. * 快速编辑
  70. * @param string $field 字段名
  71. * @param int $id 修改的主键
  72. * @param string value 修改后的值
  73. * @return json
  74. */
  75. public function set_value($field = '', $id = '', $value = '')
  76. {
  77. if (!$field || !$id || $value == '') Json::fail('缺少参数3');
  78. if ($field == 'sort' && bcsub($value, 0, 0) < 0) return Json::fail('排序不能为负数');
  79. $res = parent::getDataModification('classes', $id, $field, $value);
  80. if ($res)
  81. return Json::successful('保存成功');
  82. else
  83. return Json::fail('保存失败');
  84. }
  85. /**添加/编辑
  86. * @param int $id
  87. * @return mixed
  88. */
  89. public function create($id = 0)
  90. {
  91. $classes = $id > 0 ? ClassesModel::get($id) : [];
  92. $this->assign(['id' => $id, 'classes' => json_encode($classes)]);
  93. return $this->fetch();
  94. }
  95. /**添加/编辑班级
  96. * @param int $id
  97. */
  98. public function save_add($id = 0)
  99. {
  100. $data = parent::postMore([
  101. ['title', ''],
  102. ['status', 1],
  103. ['upper_limit', 0],
  104. ['teacher_id', ''],
  105. ['start_time', ''],
  106. ['end_time', ''],
  107. ['sort', 0]
  108. ]);
  109. if (!$data['title']) return Json::fail('请输入班级名称');
  110. if ($data['upper_limit'] <= 0) return Json::fail('请输入班级学员数量上限');
  111. if ($data['teacher_id'] == '') return Json::fail('请选择班级老师');
  112. if ($data['start_time'] == '') return Json::fail('请选择班级开班时间');
  113. if ($data['end_time'] == '') return Json::fail('请选择班级结班时间');
  114. $data['start_time'] = strtotime($data['start_time']);
  115. $data['end_time'] = strtotime($data['end_time']);
  116. if ($data['end_time'] <= $data['start_time']) return Json::fail('结班时间不能小于等于开班时间');
  117. if ($id) {
  118. if (ClassesModel::where(['title' => $data['title'], 'is_del' => 0])->where('id', '<>', $id)->count() >= 1) return Json::fail('班级名称已存在');
  119. $res = ClassesModel::edit($data, $id);
  120. } else {
  121. $data['add_time'] = time();
  122. if (!ClassesModel::be(['title' => $data['title'], 'is_del' => 0])) {
  123. $res = ClassesModel::set($data);
  124. } else {
  125. return Json::fail('班级已存在');
  126. }
  127. }
  128. if ($res) {
  129. return Json::successful('添加/编辑成功');
  130. } else {
  131. return Json::fail('添加/编辑失败');
  132. }
  133. }
  134. /**删除班级
  135. * @param int $id
  136. */
  137. public function delete($id = 0)
  138. {
  139. if (!$id) return Json::fail('参数错误');
  140. $classes = ClassesModel::get($id);
  141. if (!$classes) return Json::fail('要删除的班级不存在');
  142. $res = parent::getDataModification('classes', $id, 'is_del', 1);
  143. if ($res) {
  144. $count = StudentModel::where('classes_id', $classes['id'])->count();
  145. if ($count) StudentModel::where('classes_id', $classes['id'])->update(['is_del' => 1]);
  146. return Json::successful('删除成功');
  147. } else {
  148. return Json::fail('删除失败');
  149. }
  150. }
  151. }