checkToken(); if ($token['code'] < 0) return $this->response($token); $status = input('status', 'miaosha'); $condition = [ ['a.site_id','=',$this->site_id] ]; $futuresModel = new FuturesModel; switch($status){ case 'miaosha': $condition[] = ['a.status', '=', '2']; $times = $futuresModel->checkTimes($this->site_id, $this->member_id, 2); break; case 'jianlou': $condition[] = ['a.status', '=', '7']; $times = $futuresModel->checkTimes($this->site_id, $this->member_id, 7); break; default: return $this->response($this->error('','参数不合法')); break; } if($times['code'] != 0){ return $this->response($times); } // 获取内容 $field = [ 'seller.username as seller_username', 'seller.nickname as seller_nickname', 'seller.headimg as seller_headimg', 'g.goods_name', 'g.goods_image', 'a.id', 'a.total', 'a.unit_price', 'a.price', 'a.status', 'a.release_time', 'a.sell_time', 'a.created_time', 'a.take_time', ]; // 表关联 $join = [ ['member seller', 'seller.member_id = a.seller_uid', 'left'],// 获取卖家信息 ['goods g', 'g.goods_id = a.goods_id', 'left'],// 获取商品信息 ]; $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $list = $futuresModel->getPageList($condition, $page, $page_size, 'a.created_time desc,a.id desc', $field, 'a', $join); $list['data']['times'] = $times['data']; return $this->response($list); } /** * 个人中心列表 * @return false|string */ public function myList() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $status = input('status', 'all'); $condition = [ ['a.seller_uid', '=', $this->member_id], ['a.site_id','=',$this->site_id] ]; switch($status){ case 'stock': $condition[] = ['a.status', '=', '1']; break; case 'release': $condition[] = ['a.status', 'in', [2, 6, 7]]; break; case 'sold': $condition[] = ['a.status', '=', '3']; break; default: break; } // 获取内容 $field = [ 'seller.username as seller_username', 'seller.nickname as seller_nickname', 'seller.headimg as seller_headimg', 'g.goods_name', 'g.goods_image', 'a.id', 'a.total', 'a.unit_price', 'a.price', 'a.status', 'a.release_time', 'a.sell_time', 'a.created_time', 'a.take_time', ]; // 表关联 $join = [ ['member seller', 'seller.member_id = a.seller_uid', 'left'],// 获取卖家信息 ['goods g', 'g.goods_id = a.goods_id', 'left'],// 获取商品信息 ]; $futuresModel = new FuturesModel; $page = input('page', 1); $page_size = input('page_size', PAGE_LIST_ROWS); $list = $futuresModel->getPageList($condition, $page, $page_size, 'a.created_time desc,a.id desc', $field, 'a', $join); return $this->response($list); } /** * 发布 * @return false|string */ public function release() { $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $id = input('id', 0); $price = input('price', 0); $date = model('futures')->getInfo([['id', '=', $id],['seller_uid', '=', $this->member_id]]); if(empty($date)){ return $this->response($this->error('','发布失败')); } $futuresModel = new FuturesModel; $basicsConfig = $futuresModel->getBasicsConfig($this->site_id)['data']['value']; if($price < $date['unit_price'] * (1 + $basicsConfig['price_range']['min'] / 100) || $price >= $date['unit_price'] * (1 + $basicsConfig['price_range']['max'] / 100)){// 后台配置范围 return $this->response($this->error('','发布失败,价格不在允许范围内')); } //TODO 拆单 // $futuresInfo = $futuresModel->detail($date); return $this->response($futuresModel->release($id, $price)); } /** * 下架到库存 * @return false|string */ public function stock(){ $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $id = input('id', 0); $date = model('futures')->getInfo([['id', '=', $id],['seller_uid', '=', $this->member_id]]); if(empty($date)){ return $this->response($this->error('','下架失败')); } $futuresModel = new FuturesModel; return $this->response($futuresModel->stock($id)); } /** * 提货 * @return false|string * @throws \Psr\SimpleCache\InvalidArgumentException */ public function pickUp(){ $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $id = input('id', 0); $date = model('futures')->getInfo([['id', '=', $id],['seller_uid', '=', $this->member_id]]); if(empty($date)){ return $this->response($this->error('','提货失败')); } //TODO 提货用来减少用户买入限制 $futuresModel = new FuturesModel; return $this->response($futuresModel->pickUp($id)); } /** * 详情 * @return false|string */ public function detail(){ $token = $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $id = input('id', 0); $futuresModel = new FuturesModel; $detail = $futuresModel->detail($id, $this->site_id); $times = $futuresModel->checkTimes($this->site_id, $this->member_id, $detail['data']['status']); if($times['code'] != 0){ return $this->response($times); } $detail['data']['times'] = $times; return $this->response($detail); } /** * 获取设置 * @return false|string */ public function getBasicsConfig(){ $futuresModel = new FuturesModel; $basicsConfig = $futuresModel->getBasicsConfig($this->site_id)['data']['value']; $res = [ 'price_range' => $basicsConfig['price_range'] ]; return $this->response($this->success($res)); } }