MetaRepository.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. use Illuminate\Support\Facades\Storage;
  16. use SimpleSoftwareIO\QrCode\Facades\QrCode;
  17. class MetaRepository {
  18. public function __construct(Meta $meta){
  19. $this->meta = $meta;
  20. }
  21. //列表
  22. public function index($request){
  23. $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
  24. $where = [];
  25. if(isset($request['patch_num']) && $request['patch_num']){
  26. $where[] = ['patch_num','like',"%".$request['patch_num']];
  27. }
  28. return $this->meta->where($where)->orderBy('id', 'desc')->paginate($perPage);
  29. }
  30. //详情
  31. public function view($request){
  32. return $this->meta->where(['id'=>$request['patch_num']])->first();
  33. }
  34. //创建
  35. public function create($request){
  36. $category = $this->meta->where(['patch_num'=>$request['patch_num']])->first();
  37. if($category){
  38. return Response::create([
  39. 'message' => '该批次已存在',
  40. 'status_code' => 500
  41. ]);
  42. }
  43. if(count($request['farm'])>10){
  44. return Response::create([
  45. 'message' => '农场图片不能超过10张',
  46. 'status_code' => 500
  47. ]);
  48. }
  49. $data = [
  50. 'patch_num' => $request['patch_num'],
  51. 'produce_date' => $request['produce_date'],
  52. 'variety' => $request['variety'],
  53. 'variety_img' => $request['variety_img'],
  54. 'age' => $request['age'],
  55. 'food' => $request['food'],
  56. 'food_img' => $request['food_img'],
  57. 'water' => $request['water'],
  58. 'water_img' => $request['water_img'],
  59. 'logistical' => $request['logistical']??'',
  60. 'farm' => \GuzzleHttp\json_encode($request['farm']),
  61. 'report' => $request['report'],
  62. ];
  63. DB::beginTransaction();
  64. try{
  65. $meta = $this->meta->create($data);
  66. DB::commit();
  67. Storage::put('chsy/qrcodes/'.$meta['patch_num'].'.png',QrCode::size(200)->generate("http://uptoyo.com/".$meta['id']));
  68. return Response::create();
  69. }catch (QueryException $exception){
  70. DB::rollBack();
  71. Log::debug('新增元数据失败:'.$exception->getMessage());
  72. return Response::create([
  73. 'message' => '新增元数据失败,请重试',
  74. 'error' => $exception->getMessage(),
  75. 'status_code' => 500
  76. ]);
  77. }
  78. }
  79. //修改
  80. public function update($request){
  81. $category = $this->meta->where('id', $request['id'])->first();
  82. if(isset($request['is_suggest']) && $request['is_suggest'] !== null){
  83. $category->is_suggest = $request['is_suggest'];
  84. }
  85. $res = $category->save();
  86. if($res){
  87. return Response::create();
  88. }
  89. }
  90. }