diff --git a/addons/shopro/controller/zy/Activity.php b/addons/shopro/controller/zy/Activity.php index 008488d..f09d81c 100644 --- a/addons/shopro/controller/zy/Activity.php +++ b/addons/shopro/controller/zy/Activity.php @@ -47,22 +47,17 @@ class Activity extends Base } else { $query->where('pid', 0); } - if (isset($params['page'])) { - $pageSize = intval($params['pageSize'] ?? 10); - $offeset = (intval($params['page']) - 1) * $pageSize; - $query->limit($offeset, $pageSize); - } - $res = $query->select(); - foreach ($res as &$v) { + $res = $query->paginate($params['pageSize'] ?? 10); + $list = $res->items(); + foreach ($list as &$v) { $v['public_time'] = json_decode($v['public_time'] ?? '[]', true); $v['join_start_time'] = json_decode($v['join_start_time'] ?? '[]', true); $v['join_end_time'] = json_decode($v['join_end_time'] ?? '[]', true); $v['quit_time'] = json_decode($v['quit_time'] ?? '[]', true); $v['cost'] = json_decode($v['cost'] ?? '[]', true); - $v['referee'] = explode(',', $v['referee']); + $v['referee'] = explode(',', $v['referee'] ?? ''); } - - $this->success('Success', ['list' => $res, 'count' => $query->count()]); + $this->success('Success', ['list' => $list, 'count' => $res->total()]); } public function view() @@ -77,11 +72,61 @@ class Activity extends Base $model['join_end_time'] = json_decode($model['join_end_time'] ?? '[]', true); $model['quit_time'] = json_decode($model['quit_time'] ?? '[]', true); $model['cost'] = json_decode($model['cost'] ?? '[]', true); - $model['referee'] = explode(',', $model['referee']); + $model['referee'] = explode(',', $model['referee'] ?? ''); $this->success('Success', $model); } + public function add() + { + $result = false; + $params = $this->request->param(); + $params['public_time'] = json_encode($params['public_time'] ?? []); + $params['join_start_time'] = json_encode($params['join_start_time'] ?? []); + $params['join_end_time'] = json_encode($params['join_end_time'] ?? []); + $params['quit_time'] = json_encode($params['quit_time'] ?? []); + $params['cost'] = json_encode($params['cost'] ?? []); + Db::startTrans(); + try { + $result = $this->model->allowField(true)->save($params); + Db::commit(); + } catch (ValidateException | PDOException | Exception $e) { + Db::rollback(); + $this->error($e->getMessage()); + } + if ($result === false) { + $this->error('操作失败'); + } + $this->success('Success'); + } + + public function update() + { + $result = false; + $params = $this->request->param(); + $model = $this->model->get($params['id']); + if (empty($model)) { + $this->error(__('No rows were found')); + } + $params['public_time'] = json_encode($params['public_time'] ?? []); + $params['join_start_time'] = json_encode($params['join_start_time'] ?? []); + $params['join_end_time'] = json_encode($params['join_end_time'] ?? []); + $params['quit_time'] = json_encode($params['quit_time'] ?? []); + $params['cost'] = json_encode($params['cost'] ?? []); + Db::startTrans(); + try { + $result = $model->allowField(true)->save($params); + Db::commit(); + } catch (ValidateException | PDOException | Exception $e) { + Db::rollback(); + $this->error($e->getMessage()); + } + if ($result === false) { + $this->error('操作失败'); + } + $this->success('Success'); + } + // 启动周期性活动创建比赛任务 public function test() { diff --git a/addons/shopro/controller/zy/Circle.php b/addons/shopro/controller/zy/Circle.php index 16237f9..7274fee 100644 --- a/addons/shopro/controller/zy/Circle.php +++ b/addons/shopro/controller/zy/Circle.php @@ -54,19 +54,14 @@ class Circle extends Base $friend = Relation::where('user_id', $this->auth->id)->where('status', 'IN', explode(',', $params['friend']))->column('target_id'); $query->where('c.user_id', 'IN', $friend); } - if (isset($params['page'])) { - $pageSize = intval($params['pageSize'] ?? 10); - $offeset = (intval($params['page']) - 1) * $pageSize; - $query->limit($offeset, $pageSize); - } - $res = $query->select(); - foreach ($res as &$r) { + $res = $query->paginate($params['pageSize'] ?? 10); + $list = $res->items(); + foreach ($list as &$r) { $r['likes'] = json_decode($r['likes'], true); if (count($r['likes']) == 1 && empty($r['likes'][0]['id'])) $r['likes'] = []; $r['comment'] = buildTree(json_decode($r['comment'], true)); } - - $this->success('Success', ['list' => $res, 'count' => $query->count()]); + $this->success('Success', ['list' => $list, 'count' => $res->total()]); } public function view() diff --git a/addons/shopro/controller/zy/Club.php b/addons/shopro/controller/zy/Club.php index 38d22a0..4815fe8 100644 --- a/addons/shopro/controller/zy/Club.php +++ b/addons/shopro/controller/zy/Club.php @@ -33,14 +33,8 @@ class Club extends Base if (isset($params['gym_id'])) { $query->where('c.gym_id', $params['gym_id']); } - if (isset($params['page'])) { - $pageSize = intval($params['pageSize'] ?? 10); - $offeset = (intval($params['page']) - 1) * $pageSize; - $query->limit($offeset, $pageSize); - } - $res = $query->select(); - - $this->success('Success', ['list' => $res, 'count' => $query->count()]); + $res = $query->paginate($params['pageSize'] ?? 10); + $this->success('Success', ['list' => $res->items(), 'count' => $res->total()]); } public function add() diff --git a/addons/shopro/controller/zy/Game.php b/addons/shopro/controller/zy/Game.php index 6744f0f..7f36cd1 100644 --- a/addons/shopro/controller/zy/Game.php +++ b/addons/shopro/controller/zy/Game.php @@ -45,13 +45,12 @@ class Game extends Base $offeset = (intval($params['page']) - 1) * $pageSize; $query->limit($offeset, $pageSize); } - $res = $query->select(); - foreach ($res as &$v) { + $res = $query->paginate($params['pageSize'] ?? 10); + $list = $res->items(); + foreach ($list as &$v) { $v['cost'] = json_decode($v['cost'] ?? '[]', true); - $v['referee'] = explode(',', $v['referee']); } - - $this->success('Success', ['list' => $res, 'count' => $query->count()]); + $this->success('Success', ['list' => $list, 'count' => $res->total()]); } public function view() diff --git a/addons/shopro/controller/zy/Gym.php b/addons/shopro/controller/zy/Gym.php index 75b7efd..0860185 100644 --- a/addons/shopro/controller/zy/Gym.php +++ b/addons/shopro/controller/zy/Gym.php @@ -21,14 +21,7 @@ class Gym extends Base if (isset($params['name'])) { $query->where('name', 'like', '%' . $params['name'] . '%'); } - if (isset($params['page'])) { - $pageSize = intval($params['pageSize'] ?? 10); - $offeset = (intval($params['page']) - 1) * $pageSize; - $query->limit($offeset, $pageSize); - } - $res = $query->select(); - - - $this->success('Success', ['list' => $res, 'count' => $query->count()]); + $res = $query->paginate($params['pageSize'] ?? 10); + $this->success('Success', ['list' => $res->items(), 'count' => $res->total()]); } }