InfoController.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use Illuminate\Support\Facades\DB;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Auth;
  6. use App\Http\Controllers\Controller;
  7. use Illuminate\Support\Facades\Validator;
  8. class InfoController extends Controller
  9. {
  10. public function __construct()
  11. {
  12. }
  13. /* 添加公告信息*/
  14. public function addInfo(Request $request){
  15. $input=$request->all();
  16. $rules=[
  17. 'title'=>'required|max:32',
  18. 'contents'=>'required'
  19. ];
  20. $messages=[
  21. 'title.required'=>'公告名称不能为空.',
  22. 'title.max'=>'公告名称不能超过 :max 个字符.',
  23. 'contents.required'=>'公告内容不能为空.',
  24. ];
  25. $validator = Validator::make($input, $rules,$messages);
  26. if($validator->fails()){
  27. return response()->json([
  28. 'error_code'=>'41113',
  29. 'msg'=>$validator->errors()->first()
  30. ]);
  31. }
  32. $data['title']=$input['title'];
  33. $data['contents']=$input['contents'];
  34. $data['adminid']=Auth::guard('admin')->user()->id;
  35. $data['added_on']=date("Y-m-d H:i:s");
  36. $data['is_top']=0;
  37. $data['updated_at']=date("Y-m-d H:i:s");
  38. $row=DB::table('infos')->insert($data);
  39. if($row){
  40. return response()->json([
  41. 'error_code' => 200,
  42. 'msg' => '添加成功'
  43. ]);
  44. } else {
  45. return response()->json([
  46. 'error_code' => 0,
  47. 'msg' => '添加失败'
  48. ]);
  49. }
  50. }
  51. /* 获取公告信息*/
  52. public function getInfoList(Request $request){
  53. $search_name = $request->search_name;
  54. $page_size = $request->page_size;
  55. $page_index = $request->page_index;
  56. $num = ($page_index - 1) * $page_size;
  57. $count = DB::table('infos')
  58. ->where('title', 'like', '%' . $search_name . '%')
  59. ->count();
  60. if ($count > 0) {
  61. $list = DB::table('infos')
  62. ->where('title', 'like', '%' . $search_name . '%')
  63. ->orderBy('is_top','desc')
  64. ->orderBy('top_at','desc')
  65. ->orderBy('id','desc')
  66. ->skip($num)->take($page_size)->get();
  67. if ($list) {
  68. return response()->json([
  69. 'error_code' => 200,
  70. 'msg' => '获取公告信息成功',
  71. 'list' => $list,
  72. 'count' => $count
  73. ]);
  74. } else {
  75. return response()->json([
  76. 'error_code' => 0,
  77. 'msg' => '获取公告信息失败'
  78. ]);
  79. }
  80. } else {
  81. return response()->json([
  82. 'error_code' => 200,
  83. 'msg' => '没有公告信息',
  84. 'list' => [],
  85. 'count' => $count
  86. ]);
  87. }
  88. }
  89. /* 公告置顶 */
  90. public function setInfoTop(Request $request){
  91. $input=$request->all();
  92. $is_top=$input['is_top'];
  93. $isTop=($is_top==1)?1:0;//
  94. $row=DB::table('infos')->where('id',$input['id'])->update([
  95. 'is_top'=>$isTop,
  96. 'top_at'=>date("Y-m-d H:i:s"),
  97. ]);
  98. if($row){
  99. return response()->json([
  100. 'error_code' => 200,
  101. 'msg' => '操作成功'
  102. ]);
  103. } else {
  104. return response()->json([
  105. 'error_code' => 0,
  106. 'msg' => '操作失败'
  107. ]);
  108. }
  109. }
  110. /*删除公告信息*/
  111. public function deleteInfo(Request $request){
  112. $input=$request->all();
  113. $row=DB::table('infos')->where('id',$input['id'])->delete();
  114. if($row){
  115. return response()->json([
  116. 'error_code' => 200,
  117. 'msg' => '删除成功'
  118. ]);
  119. } else {
  120. return response()->json([
  121. 'error_code' => 0,
  122. 'msg' => '删除失败'
  123. ]);
  124. }
  125. }
  126. /*获取公告信息*/
  127. public function getInfoContent(Request $request){
  128. $input=$request->all();
  129. $data=DB::table('infos')->where('id',$input['id'])->first();
  130. if($data){
  131. return response()->json([
  132. 'error_code' => 200,
  133. 'msg' => '获取成功',
  134. 'data' =>$data
  135. ]);
  136. } else {
  137. return response()->json([
  138. 'error_code' => 0,
  139. 'msg' => '获取失败'
  140. ]);
  141. }
  142. }
  143. /*修改公告信息*/
  144. public function updateInfoContent(Request $request){
  145. $input=$request->all();
  146. $rules=[
  147. 'title'=>'required|max:32',
  148. 'contents'=>'required'
  149. ];
  150. $messages=[
  151. 'title.required'=>'公告名称不能为空.',
  152. 'title.max'=>'公告名称不能超过 :max 个字符.',
  153. 'contents.required'=>'公告内容不能为空.',
  154. ];
  155. $validator = Validator::make($input, $rules,$messages);
  156. if($validator->fails()){
  157. return response()->json([
  158. 'error_code'=>'41113',
  159. 'msg'=>$validator->errors()->first()
  160. ]);
  161. }
  162. $data['title']=$input['title'];
  163. $data['contents']=$input['contents'];
  164. $data['adminid']=Auth::guard('admin')->user()->id;;
  165. $data['updated_at']=date("Y-m-d H:i:s");
  166. $row=DB::table('infos')->where('id',$input['id'])->update($data);
  167. if($row){
  168. return response()->json([
  169. 'error_code' => 200,
  170. 'msg' => '修改成功',
  171. ]);
  172. } else {
  173. return response()->json([
  174. 'error_code' => 0,
  175. 'msg' => '修改失败'
  176. ]);
  177. }
  178. }
  179. /* 意见反馈*/
  180. public function getOptionsInfo(Request $request){
  181. $search_name = $request->search_name;
  182. $page_size = $request->page_size;
  183. $page_index = $request->page_index;
  184. $num = ($page_index - 1) * $page_size;
  185. $count = DB::table('options')
  186. ->where(function ($query) use ($search_name) {
  187. $query->where('users.name', 'like', '%' . $search_name . '%')
  188. ->orWhere('users.telphone', 'like', '%' . $search_name . '%')
  189. ->orWhere('users.cre_num', 'like', '%' . $search_name . '%');
  190. })
  191. ->join('users','users.id','=','options.uid')
  192. ->count();
  193. if ($count > 0) {
  194. $list = DB::table('options')
  195. ->join('users','users.id','=','options.uid')
  196. ->where(function ($query) use ($search_name) {
  197. $query->where('users.name', 'like', '%' . $search_name . '%')
  198. ->orWhere('users.telphone', 'like', '%' . $search_name . '%')
  199. ->orWhere('users.cre_num', 'like', '%' . $search_name . '%');
  200. })
  201. ->orderBy('options.id','desc')
  202. ->skip($num)->take($page_size)->get();
  203. if ($list) {
  204. return response()->json([
  205. 'error_code' => 200,
  206. 'msg' => '获取意见反馈成功',
  207. 'list' => $list,
  208. 'count' => $count
  209. ]);
  210. } else {
  211. return response()->json([
  212. 'error_code' => 0,
  213. 'msg' => '获取意见反馈失败'
  214. ]);
  215. }
  216. } else {
  217. return response()->json([
  218. 'error_code' => 200,
  219. 'msg' => '没有意见反馈',
  220. 'list' => [],
  221. 'count' => $count
  222. ]);
  223. }
  224. }
  225. }