where($params['where']); } else { if (!empty($params['keyword'])) { switch ($params['type']) { case 1 : $this->where(['a.title' => ['LIKE', '%' . $params['keyword'] . '%']]); break; case 2 : $this->where(['b.nickname' => ['LIKE', '%' . $params['keyword'] . '%']]); break; case 3 : $this->where(['b.mobile' => ['LIKE', '%' . $params['keyword'] . '%']]); break; case 4 : $this->where(['c.title' => ['LIKE', '%' . $params['keyword'] . '%']]); break; } } if (!empty($params['is_use'])) { $this->where('a.is_use', '=', $params['is_use']); } if (!empty($params['is_rob'])) { $this->where('a.is_rob', '=', $params['is_rob']); } if (!empty($params['user_id'])) { $this->where('a.user_id', '=', $params['user_id']); } if (!empty($params['activity_id'])) { $this->where('a.activity_id', '=', $params['activity_id']); } // 时间范围查询 if (!empty($params['start_time'])) { $this->where('a.create_time', '>=', strtotime($params['start_time'])); } if (!empty($params['end_time'])) { $this->where('a.create_time', '<=', strtotime($params['end_time'])); } } // 排序 $order = !empty($params['order']) ? $params['order'] : 'a.id DESC'; $result = $this ->alias('a') ->join('user b', 'a.user_id = b.id') ->join('shopro_goods c', 'a.goods_id = c.id') ->field($fields) ->order($order) ->paginate($rows, false, [ 'page' => $page ]); $arr = [ 'list' => [], 'total' => 0, 'page' => 1, 'pageSize' => $rows, 'totalSize' => 0 ]; // 格式化数据信息 if (!$result->isEmpty()) { $arr = [ 'list' => $result->items(), 'total' => $result->total(), 'page' => $result->currentPage(), 'pageSize' => $result->listRows(), 'totalSize' => $result->lastPage() ]; if (!empty($arr['list'])) { foreach ($arr['list'] as &$v) { if (!empty($v['activity_id'])) { $endTime = Activity::where(['id' => $v['activity_id']]) ->value('endtime'); // 获取状态 $statusText = '已预约'; if ($endTime < time()) { $statusText = $v->is_rob == 1 ? '获得抢购资格' : '未获得抢购资格'; if ($v->is_rob == 1 && $v->is_use == 1) { $statusText = '已下单'; } } $v->status_text = $statusText; } } } } return $arr; } /** * 预约 * @param $user * @param $data * @return array */ public static function add($user, $data) { // 是否已预约过了 $id = self:: where(['user_id' => $user->id, 'activity_id' => $data['id'], 'goods_id' => $data['goods_id']]) ->value('id'); if (!empty($id)) { return [ 'code' => 703, 'msg' => '您已经预约过了' ]; } $order = [ 'user_id' => $user->id, 'activity_id' => $data['id'], 'goods_id' => $data['goods_id'], 'title' => $data['title'], 'activity_price' => $data['price'], 'create_time' => time() ]; if (self::insertGetId($order)) { return [ 'code' => 200, 'msg' => '预约成功' ]; } else { return [ 'code' => 700, 'msg' => '预约失败,请重试。' ]; } } /** * 获取某条记录 * @param $where * @return array|bool|false|\PDOStatement|string|Model * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function getItem($where, $fields = '*') { if (empty($where)) { $this->error = '参数不正确。'; return false; } if (floor($where) > 0) { $where = ['id' => $where]; } return $this->where($where)->field($fields)->find(); } /** * 编辑 * @param $data * @return bool */ public function edit($data) { if (empty($data) || !is_array($data)) { $this->error = '参数不正确'; return false; } if ($this->update($data)) { return true; } else { $this->error = '编辑出错了,请重新尝试。'; return false; } } // 删除 public function del($where) { if (empty($where)) { $this->error = '参数不正确'; return false; } if ($this->where($where)->delete()) { return true; } else { $this->error = '删除出错了,请重新尝试。'; return false; } } }