&$item) { if ($item['quota'] > 0) { $quota = StoreProductAttrValue::where('product_id', $item['id'])->where('type', 5)->value('SUM(quota)'); $percent = (int)bcmul(bcdiv(bcsub($item['quota'], $quota), $item['quota'], 2), 100, 0); $item['percent'] = $percent; $item['stock'] = $quota; } else { $item['percent'] = 100; $item['stock'] = 0; } } } return app('json')->successful($seckillInfo); } /** * 秒杀产品详情 * @param Request $request * @param $id * @return mixed */ public function detail(Request $request, $id, $time = 0) { if (!$id || !($storeInfo = StoreExchange::getValidProduct($id))) return app('json')->fail('商品不存在或已下架!'); $storeInfo = $storeInfo->hidden(['cost', 'add_time', 'is_del'])->toArray(); $siteUrl = sys_config('site_url'); $storeInfo['image'] = set_file_url($storeInfo['image'], $siteUrl); $storeInfo['image_base'] = set_file_url($storeInfo['image'], $siteUrl); $storeInfo['code_base'] = QrcodeService::getWechatQrcodePath($id . '_exchange_detail_wap.jpg', '/activity/exchange_detail/' . $id . '/' . $time); $uid = $request->uid(); $storeInfo['userLike'] = StoreProductRelation::isProductRelation($id, $uid, 'like', 'product_exchange'); $storeInfo['like_num'] = StoreProductRelation::productRelationNum($id, 'like', 'product_exchange'); $storeInfo['userCollect'] = StoreProductRelation::isProductRelation($storeInfo['product_id'], $uid, 'collect'); $storeInfo['uid'] = $uid; $storeInfo['description'] = htmlspecialchars_decode(StoreDescription::getDescription($id, 5)); $data['storeInfo'] = $storeInfo; StoreVisit::setView($uid, $id, $storeInfo['product_id'], 'viwe'); $data['reply'] = StoreProductReply::getRecProductReply($storeInfo['product_id']); $data['replyCount'] = StoreProductReply::productValidWhere()->where('product_id', $storeInfo['product_id'])->count(); if ($data['replyCount']) { $goodReply = StoreProductReply::productValidWhere()->where('product_id', $storeInfo['product_id'])->where('product_score', 5)->count(); $data['replyChance'] = $goodReply; if ($goodReply) { $data['replyChance'] = bcdiv($goodReply, $data['replyCount'], 2); $data['replyChance'] = bcmul($data['replyChance'], 100, 3); } } else $data['replyChance'] = 0; list($productAttr, $productValue) = StoreProductAttr::getProductAttrDetail($id, $uid, 0, 5); foreach ($productValue as $k => $v) { $productValue[$k]['product_stock'] = StoreProductAttrValue::where('product_id', $storeInfo['product_id'])->where('suk', $v['suk'])->where('type', 0)->value('stock'); } $data['productAttr'] = $productAttr; $data['productValue'] = $productValue; return app('json')->successful($data); } /** * 订单列表 * @param Request $request * @return mixed */ public function order_lst(Request $request) { list($type, $page, $limit, $search) = UtilService::getMore([ ['type', ''], ['page', 0], ['limit', ''], ['search', ''], ], $request, true); return app('json')->successful(StoreExchangeOrder::getUserOrderSearchList($request->uid(), $type, $page, $limit, $search)); } public function gift($id, Request $request) { // list($uid) = UtilService::postMore([['uid', 0]], $request, true); // if (!$uid) return app('json')->fail('请选择要赠送的用户'); // if (!User::get($uid)) return app('json')->fail('用户不存在'); // if ($uid == $request->uid()) return app('json')->fail('不能赠送给自己'); $info = StoreExchangeOrder::where('id', $id) // ->where('uid', ,$request->uid()) ->where('refund_status', 0) ->where('status', 0) ->where('gift_uid', 0) ->find(); if (!$info) return app('json')->fail('兑换券已经被领取啦'); if ($info['uid'] == $request->uid()) return app('json')->fail('不能接受自己的赠送'); $res = StoreExchangeOrder::where('id', $id)->update(['gift_uid' => $request->uid(), 'gift_time' => time()]); if ($res) return app('json')->success('领取成功'); else return app('json')->fail('领取失败'); } }