UpgradeRepository.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-08-21
  6. * Time: 10:26
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Upgrade;
  10. use Illuminate\Support\Facades\DB;
  11. use Dingo\Api\Http\Response;
  12. class UpgradeRepository {
  13. public function __construct(Upgrade $upgrade) {
  14. $this->upgrade = $upgrade;
  15. }
  16. //列表
  17. public function index($request){
  18. $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
  19. $where = [];
  20. if(isset($request['os'])){
  21. $where[] = ['os', $request['os']];
  22. }
  23. return $this->upgrade->where($where)->orderBy('id', 'desc')->paginate($perPage);
  24. }
  25. //详情
  26. public function view($request){
  27. return $this->upgrade->where(['id'=>$request['id']])->first();
  28. }
  29. //创建
  30. public function create($request){
  31. $upgrade = $this->upgrade->where(['os'=>$request['os'],'version'=>$request['version']])->first();
  32. if($upgrade){
  33. return Response::create([
  34. 'message' => '该版本已存在',
  35. 'status_code' => 500
  36. ]);
  37. }
  38. $data = [
  39. 'os' => $request['os'],
  40. 'version' => $request['version'],
  41. 'version_code' => $request['version_code'],
  42. 'url' => $request['url'],
  43. 'title' => $request['title'],
  44. 'content' => $request['content'],
  45. 'is_forced_update' => $request['is_forced_update'],
  46. ];
  47. DB::beginTransaction();
  48. try{
  49. $this->upgrade->create($data);
  50. DB::commit();
  51. return Response::create();
  52. }catch (QueryException $exception){
  53. DB::rollBack();
  54. Log::debug('新增版本:'.$exception->getMessage());
  55. return Response::create([
  56. 'message' => '新增升级版本失败,请重试',
  57. 'error' => $exception->getMessage(),
  58. 'status_code' => 500
  59. ]);
  60. }
  61. }
  62. }