MetaRepository.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-10
  6. * Time: 17:40
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Meta;
  10. use Dingo\Api\Http\Response;
  11. use Illuminate\Support\Carbon;
  12. use Illuminate\Support\Facades\DB;
  13. use Illuminate\Database\QueryException;
  14. use Illuminate\Support\Facades\Log;
  15. class MetaRepository {
  16. public function __construct(Meta $meta){
  17. $this->meta = $meta;
  18. }
  19. //列表
  20. public function index($request){
  21. $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
  22. $where = [];
  23. if(isset($request['patch_num']) && $request['patch_num']){
  24. $where = ['patch_num','like',"%".$request['patch_num']];
  25. }
  26. return $this->meta->where($where)->orderBy('id', 'desc')->paginate($perPage);
  27. }
  28. //详情
  29. public function view($request){
  30. return $this->meta->where(['patch_num'=>$request['patch_num']])->first();
  31. }
  32. //创建
  33. public function create($request){
  34. $category = $this->meta->where(['patch_num'=>$request['patch_num']])->first();
  35. if($category){
  36. return Response::create([
  37. 'message' => '该批次已存在',
  38. 'status_code' => 500
  39. ]);
  40. }
  41. if(count($request['farm'])>10){
  42. return Response::create([
  43. 'message' => '农场图片不能超过10张',
  44. 'status_code' => 500
  45. ]);
  46. }
  47. $data = [
  48. 'patch_num' => $request['patch_num'],
  49. 'produce_date' => $request['produce_date'],
  50. 'variety' => $request['variety'],
  51. 'variety_img' => $request['variety_img'],
  52. 'age' => $request['age'],
  53. 'food' => $request['food'],
  54. 'food_img' => $request['food_img'],
  55. 'water' => $request['water'],
  56. 'water_img' => $request['water_img'],
  57. 'logistical' => $request['logistical']??'',
  58. 'farm' => \GuzzleHttp\json_encode($request['farm']),
  59. 'report' => $request['report'],
  60. ];
  61. DB::beginTransaction();
  62. try{
  63. $meta = $this->meta->create($data);
  64. DB::commit();
  65. return Response::create();
  66. }catch (QueryException $exception){
  67. DB::rollBack();
  68. Log::debug('新增元数据失败:'.$exception->getMessage());
  69. return Response::create([
  70. 'message' => '新增元数据失败,请重试',
  71. 'error' => $exception->getMessage(),
  72. 'status_code' => 500
  73. ]);
  74. }
  75. }
  76. //修改
  77. public function update($request){
  78. $category = $this->meta->where('id', $request['id'])->first();
  79. if(isset($request['is_suggest']) && $request['is_suggest'] !== null){
  80. $category->is_suggest = $request['is_suggest'];
  81. }
  82. $res = $category->save();
  83. if($res){
  84. return Response::create();
  85. }
  86. }
  87. }