ActivitiesRepository.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. DB::beginTransaction();
  69. try{
  70. $activities->save();
  71. DB::commit();
  72. return Response::create();
  73. }catch (QueryException $exception){
  74. DB::rollBack();
  75. Log::debug('编辑活动:'.$exception->getMessage());
  76. return Response::create([
  77. 'message' => '编辑活动失败,请重试',
  78. 'error' => $exception->getMessage(),
  79. 'status_code' => 500
  80. ]);
  81. }
  82. }
  83. }