BaseService.php 2.58 KB
Newer Older
王源's avatar
王源 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<?php
/**
 * Created by PhpStorm.
 * User: 王源
 * Date: 2020/1/9
 * Time: 15:08
 */

namespace Meibuyu\Micro\Service;

use Exception;
use Hyperf\DbConnection\Model\Model;
use Meibuyu\Micro\Helper;

王源's avatar
王源 committed
15 16 17
/**
 * @deprecated 此类废弃,在之后的版本会被删除
 */
王源's avatar
王源 committed
18 19 20 21 22 23 24 25 26 27 28 29
class BaseService
{
    /**
     * @var Model
     */
    protected $model;

    /**
     * 查找一个数据
     * @param $id
     * @return Model | array
     */
王源's avatar
王源 committed
30
    protected function find($id)
王源's avatar
王源 committed
31 32 33 34 35
    {
        $model = $this->model->find($id);
        return $model;
    }

王源's avatar
王源 committed
36 37 38 39 40
    public function all(array $columns = ['*'], array $relations = []): array
    {
        return $this->model->with($relations)->get($columns)->toArray();
    }

王源's avatar
王源 committed
41 42
    /**
     * 获取一条数据
王源's avatar
王源 committed
43 44 45 46
     * @param int $id
     * @param array $columns
     * @param array $relations
     * @return mixed
王源's avatar
王源 committed
47
     */
王源's avatar
王源 committed
48
    public function get(int $id, array $columns = ['*'], array $relations = [])
王源's avatar
王源 committed
49
    {
王源's avatar
王源 committed
50
        return $this->model->with($relations)->find($id, $columns);
王源's avatar
王源 committed
51 52 53 54
    }

    /**
     * 插入一条数据
王源's avatar
王源 committed
55
     * @param array $params
王源's avatar
王源 committed
56 57
     * @return array
     */
王源's avatar
王源 committed
58
    public function insert($params)
王源's avatar
王源 committed
59 60
    {
        try {
王源's avatar
王源 committed
61
            $res = $this->model->insert($params);
王源's avatar
王源 committed
62 63 64 65 66 67 68 69
            return Helper::success($res);
        } catch (Exception $e) {
            return Helper::fail('', $e->getMessage());
        }
    }

    /**
     * 新增一条数据
王源's avatar
王源 committed
70
     * @param array $params
王源's avatar
王源 committed
71 72
     * @return array
     */
王源's avatar
王源 committed
73
    public function create($params)
王源's avatar
王源 committed
74 75
    {
        try {
王源's avatar
王源 committed
76
            $model = $this->model->newInstance($params);
王源's avatar
王源 committed
77 78 79 80 81 82 83 84 85 86
            $model->save();
            return Helper::success($model);
        } catch (Exception $e) {
            return Helper::fail('', $e->getMessage());
        }
    }

    /**
     * 更新数据
     * @param $id
王源's avatar
王源 committed
87
     * @param array $params
王源's avatar
王源 committed
88 89
     * @return array
     */
王源's avatar
王源 committed
90
    public function update($id, $params)
王源's avatar
王源 committed
91 92 93
    {
        try {
            $model = $this->find($id);
王源's avatar
王源 committed
94
            $model->fill($params);
王源's avatar
王源 committed
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
            $model->save();
            return Helper::success($model);
        } catch (Exception $e) {
            return Helper::fail('', $e->getMessage());
        }
    }

    /**
     * 删除数据
     * @param $id
     * @return array
     */
    public function delete($id)
    {
        try {
            $model = $this->find($id);
            $res = $model->delete();
            if ($res) {
                return Helper::success($res, '删除成功');
            } else {
                return Helper::fail($res, '删除失败');
            }
        } catch (Exception $e) {
            return Helper::fail('', $e->getMessage());
        }
    }
}