Books.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Gold
  5. * Date: 2024/1/15
  6. * Time: 14:50
  7. */
  8. namespace app\api\controller;
  9. use app\admin\model\books\Books as BookModel; //教材
  10. use app\admin\model\books\BooksLevel; //教材级别
  11. use app\admin\model\books\BooksArrangement; //教学层次
  12. use app\admin\model\books\BooksSpeciality; //专业类型
  13. use app\admin\model\books\BooksSeries; //教材系列
  14. use app\admin\model\books\Contribute; //投稿
  15. use app\admin\model\books\SampleApply; //样书申请
  16. use app\common\controller\Api;
  17. class Books extends Api
  18. {
  19. // protected $noNeedLogin = ['*'];
  20. protected $noNeedRight = ['addContribute','addSampleApply'];
  21. /**
  22. * 首页
  23. *
  24. */
  25. public function index()
  26. {
  27. $this->success('请求成功');
  28. }
  29. /**
  30. * 获取教材级别
  31. *
  32. * api/books/getBooksLevel
  33. */
  34. public function getBooksLevel(){
  35. $BooksLevel = new BooksLevel();
  36. $list = $BooksLevel->where('is_deleted',1)->where('status',0)->order('sort desc,id desc')->select();
  37. $this->success('操作成功',$list);
  38. }
  39. /**
  40. * 获取教学层次
  41. *
  42. * api/books/getBooksArrangement
  43. */
  44. public function getBooksArrangement(){
  45. $BooksArrangement = new BooksArrangement();
  46. $list = $BooksArrangement->where('is_deleted',1)->where('status',0)->order('sort desc,id desc')->select();
  47. $this->success('操作成功',$list);
  48. }
  49. /**
  50. * 获取专业类型
  51. *
  52. * api/books/getBooksSpeciality
  53. */
  54. public function getBooksSpeciality(){
  55. $BooksSpeciality = new BooksSpeciality();
  56. $list = $BooksSpeciality->where('is_deleted',1)->where('status',0)->order('sort desc,id desc')->select();
  57. $this->success('操作成功',$list);
  58. }
  59. /**
  60. * 教材列表
  61. *
  62. * api/books/getBooksList
  63. */
  64. public function getBooksList(){
  65. $data = input();
  66. $where = [];
  67. $BookModel = new BookModel();
  68. if(!isset($data['page']) || $data['page'] == '' || $data['page'] == null){
  69. $page = 1;
  70. }else{
  71. $page = $data['page'];
  72. }
  73. if(!isset($data['limit']) || $data['limit'] == '' || $data['limit'] == null){
  74. $limit = 20;
  75. }else{
  76. $limit = $data['limit'];
  77. }
  78. //教材级别
  79. if(isset($data['level_id']) && $data['level_id'] && $data['level_id']!= '' && $data['level_id'] != null){
  80. $where['level_id'] = $data['level_id'];
  81. }
  82. //教学层次
  83. if(isset($data['arrangement_id']) && $data['arrangement_id'] && $data['arrangement_id']!= '' && $data['arrangement_id'] != null){
  84. $where['arrangement_id'] = $data['arrangement_id'];
  85. }
  86. //专业类型
  87. if(isset($data['speciality_id']) && $data['speciality_id'] && $data['speciality_id']!= '' && $data['speciality_id'] != null){
  88. $where['speciality_id'] = $data['speciality_id'];
  89. }
  90. //教材类型 0纸质书 1电子书
  91. if(isset($data['book_type']) && $data['book_type'] && $data['book_type']!= '' && $data['book_type'] != null){
  92. $where['book_type'] = $data['book_type'];
  93. }
  94. //是否新书推荐 0是 1否
  95. if(isset($data['is_new_recommend']) && $data['is_new_recommend']!= '' && $data['is_new_recommend'] != null){
  96. $where['is_new_recommend'] = $data['is_new_recommend'];
  97. }
  98. //是否获奖教材 0是 1否
  99. if(isset($data['is_awards']) && $data['is_awards']!= '' && $data['is_awards'] != null){
  100. $where['is_awards'] = $data['is_awards'];
  101. }
  102. //关键字
  103. if ( isset($data['keywords']) && $data['keywords'] != '' && $data['keywords'] != null){
  104. $where['title'] = ['like','%'.$data['keywords'].'%'];
  105. }
  106. $where['is_deleted'] = 1;
  107. $list = $BookModel->where($where)->order('id desc')->field('id,title,image,book_type,is_new_recommend,author,is_awards,price,entity_price,createtime,updatetime,level_id,arrangement_id,speciality_id,series_id,is_series')->paginate([
  108. 'list_rows'=> $limit,
  109. 'page' => $page,
  110. ]);
  111. $this->success('操作成功',$list);
  112. }
  113. /**
  114. * 教材详情
  115. *
  116. * api/books/getBookInfo
  117. */
  118. public function getBookInfo(){
  119. $data = input();
  120. $BookModel = new BookModel();
  121. if(!isset($data['id']) || !$data['id']){
  122. $this->error('参数错误');
  123. }
  124. $id = $data['id'];
  125. $list = $BookModel->where('id',$id)->where('is_deleted',1)->with(['courseware_file','resource_file','package_file','specimen_file'])->find();
  126. if(!$list){
  127. $this->error('教材不存在或已删除');
  128. }
  129. $this->success('操作成功',$list);
  130. }
  131. /**
  132. * 获取系列相关教材
  133. *
  134. * api/books/getSeriesBooks
  135. */
  136. public function getSeriesBooks(){
  137. $data = input();
  138. $BookModel = new BookModel();
  139. if(!isset($data['series_id']) || !$data['series_id']){
  140. $this->error('参数错误');
  141. }
  142. $series_id = $data['series_id'];
  143. $list = $BookModel->where('series_id',$series_id)
  144. ->where('is_deleted',1)
  145. ->where('is_series',0)
  146. ->field('id,title,image,book_type,is_new_recommend,author,is_awards,price,entity_price,createtime,updatetime,level_id,arrangement_id,speciality_id,series_id,is_series')
  147. ->select();
  148. $this->success('操作成功',$list);
  149. }
  150. /**
  151. * 投稿
  152. *
  153. * api/books/addContribute
  154. */
  155. public function addContribute(){
  156. $data = input();
  157. $uid = $this->auth->id;
  158. $data['user_id'] = $uid;
  159. $Contribute = new Contribute();
  160. $save = $Contribute->save($data);
  161. if($save){
  162. $this->success('操作成功');
  163. }else{
  164. $this->success('操作失败');
  165. }
  166. }
  167. /**
  168. * 样书申请
  169. *
  170. * api/books/addContribute
  171. */
  172. public function addSampleApply(){
  173. $data = input();
  174. $uid = $this->auth->id;
  175. $data['user_id'] = $uid;
  176. $SampleApply = new SampleApply();
  177. $save = $SampleApply->save($data);
  178. if($save){
  179. $this->success('操作成功');
  180. }else{
  181. $this->success('操作失败');
  182. }
  183. }
  184. }