ActivitiesRepository.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-12
  6. * Time: 16:30
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Activities;
  10. use Dingo\Api\Http\Response;
  11. use Illuminate\Support\Facades\DB;
  12. use Illuminate\Database\QueryException;
  13. use Illuminate\Support\Facades\Log;
  14. class ActivitiesRepository {
  15. public function __construct(Activities $activities) {
  16. $this->activities = $activities;
  17. }
  18. //列表
  19. public function index($request){
  20. $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
  21. $where = [];
  22. if(isset($request['name'])){
  23. $where[] = ['name', 'like', "%{$request['name']}%"];
  24. }
  25. return $this->activities->where($where)->paginate($perPage);
  26. }
  27. //详情
  28. public function view($request){
  29. return $this->activities->where(['id'=>$request['id']])->first();
  30. }
  31. //创建
  32. public function create($request){
  33. $activities = $this->activities->where(['name'=>$request['name']])->first();
  34. if($activities){
  35. return Response::create([
  36. 'message' => '该活动已存在',
  37. 'status_code' => 500
  38. ]);
  39. }
  40. $data = [
  41. 'name' => $request['name'],
  42. 'content' => $request['content'],
  43. ];
  44. DB::beginTransaction();
  45. try{
  46. $this->activities->create($data);
  47. DB::commit();
  48. return Response::create();
  49. }catch (QueryException $exception){
  50. DB::rollBack();
  51. Log::debug('新增活动:'.$exception->getMessage());
  52. return Response::create([
  53. 'message' => '新增活动失败,请重试',
  54. 'error' => $exception->getMessage(),
  55. 'status_code' => 500
  56. ]);
  57. }
  58. }
  59. public function edit($request){
  60. $activities = $this->activities->where(['id'=>$request['id']])->first();
  61. if(!$activities){
  62. return Response::create([
  63. 'message' => '该活动不存在',
  64. 'status_code' => 500
  65. ]);
  66. }
  67. $activities->content = $request['content'];
  68. $activities->name = $request['name'];
  69. DB::beginTransaction();
  70. try{
  71. $activities->save();
  72. DB::commit();
  73. return Response::create();
  74. }catch (QueryException $exception){
  75. DB::rollBack();
  76. Log::debug('编辑活动:'.$exception->getMessage());
  77. return Response::create([
  78. 'message' => '编辑活动失败,请重试',
  79. 'error' => $exception->getMessage(),
  80. 'status_code' => 500
  81. ]);
  82. }
  83. }
  84. }