From 6172f453b3768636197807a7ae7badc918c6ee33 Mon Sep 17 00:00:00 2001 From: sunday <153788231@q.com> Date: Tue, 2 May 2023 10:40:14 +0800 Subject: [PATCH] x --- addon/futures/api/controller/Futures.php | 3 +- addon/futures/model/Futures.php | 26 ++++++++---------- addon/futures/model/User.php | 35 +++++++++++------------- 3 files changed, 29 insertions(+), 35 deletions(-) diff --git a/addon/futures/api/controller/Futures.php b/addon/futures/api/controller/Futures.php index 6861982e..028206af 100644 --- a/addon/futures/api/controller/Futures.php +++ b/addon/futures/api/controller/Futures.php @@ -4,7 +4,6 @@ namespace addon\futures\api\controller; use app\api\controller\BaseApi; use addon\futures\model\Futures as FuturesModel; use app\model\system\Document; - class Futures extends BaseApi{ /** * 售卖列表 @@ -29,7 +28,7 @@ class Futures extends BaseApi{ } break; case 'jianlou': - $condition[] = ['a.status', '=', '7']; + $condition[] = ['a.status', '=', 7]; $times = $futuresModel->checkTimes($this->site_id, $this->member_id, 7); if($times['code'] != 0){ $times['message'] = '未到捡漏时间'; diff --git a/addon/futures/model/Futures.php b/addon/futures/model/Futures.php index a9f3004f..17292949 100644 --- a/addon/futures/model/Futures.php +++ b/addon/futures/model/Futures.php @@ -1,8 +1,5 @@ get('addon_futures_' . $id)){ + return $this->error('', '你太慢了已被抢购'); + } $date = model('futures')->getInfo([['id', '=', $id]]); if (empty($date) || ($date['status'] !== 2 && $date['status'] !== 7)) { return $this->error($date, '下单失败-1001'); } -// if (!Cache::store('redis_concurrent')->delete('addon_futures_' . $id)) { -// return $this->error('', '下单失败-1002'); -// } - if(Cache::store('redis_concurrent')->get('addon_futures_' . $id)){ - return $this->error('', '你太慢了已被抢购'); - } model('futures')->update( [ 'status' => 6, @@ -274,7 +267,7 @@ class Futures extends BaseModel 'total_business_num' => Db::raw('total_business_num +1'), ]); (new Message())->addMessage($date['site_id'], '订单创建', 1, $member_id, $id); - Cache::store('redis_concurrent')->set('addon_futures_' . $id, '1'); + Cache::store('redis_concurrent')->tag('addon_futures_goods')->set('addon_futures_' . $id, '1'); return $this->success(); } @@ -333,6 +326,11 @@ class Futures extends BaseModel public function orderClose($id) { $date = model('futures')->getInfo([['id', '=', $id]]); + ///将未被抢购方法抢购区 +// model('futures')->update(['status' => 7], [ +// ['status', '=', 2], +// ['release_time', '<', time()], +// ]); if (empty($date) || $date['status'] !== 6) { return $this->error($date, '取消失败'); } @@ -340,9 +338,7 @@ class Futures extends BaseModel // return $this->error('','取消失败'); // } // Cache::store('redis_concurrent')->delete('addon_futures_pay_' . $id); - model('futures')->update(['status' => 7], [['id', '=', $id]]); - Cache::store('redis_concurrent')->set('addon_futures_' . $id, '1'); - (new Message())->addMessage($date['site_id'], '订单取消', 1, $date['member_id'], $id); + model('futures')->update(['status' => 7,'member_id'=>$date['seller_uid']], [['id', '=', $id]]); // 订单取消后 添加违规次数 Db::name('futures_user') ->where('member_id', $date['member_id']) @@ -381,6 +377,8 @@ class Futures extends BaseModel ]); } } + Cache::store('redis_concurrent')->tag('addon_futures_goods')->clear();//删除缓存 + (new Message())->addMessage($date['site_id'], '订单取消', 1, $date['member_id'], $id); return $this->success(); } diff --git a/addon/futures/model/User.php b/addon/futures/model/User.php index c26f108a..2ed63556 100644 --- a/addon/futures/model/User.php +++ b/addon/futures/model/User.php @@ -6,7 +6,7 @@ use app\model\BaseModel; use app\model\system\Pay as PayModel; use think\Exception; use think\facade\Db; - +use think\facade\Cache; class User extends BaseModel{ protected int $site_id; @@ -139,11 +139,7 @@ class User extends BaseModel{ $nowTime = time() - strtotime("today"); $futuresModel = new Futures(); $basics = $futuresModel->getBasicsConfig($this->site_id)['data']['value']; - if($basics['auto_buyback'] == 0){ - return $this->success('未达开启回购'); - } $status = 0; - foreach($basics['times'] as $times){ if($nowTime <= $times['jianlou_end_time'] && $nowTime >= $times['jianlou_end_time'] - $basics['auto_buyback_time'] * 60){// 配置在结束时间前多久开始回购 $status = 7; //捡漏 @@ -162,6 +158,16 @@ class User extends BaseModel{ ['status', '=', $status], ['release_time', '<', time()] ]); + if($basics['auto_buyback'] == 0){ + //未回购继续卖 + foreach ($futuresList as $key=>$item){ + model('futures')->update([ + 'status' => 2, + 'member_id'=>$item['seller_uid'] + ],[['id', '=', $item['id']]]); + } + return $this->success('未达开启回购'); + } $log = []; foreach($futuresList as $futures){ //创建订单 @@ -194,28 +200,22 @@ class User extends BaseModel{ 'sku_id' => '', 'pay_password' => $basics['pay_password'], //回购账号密码 ]; - $res = $order_create->create($data); + $res = $order_create->create($data,true); //支付订单 $pay_type = 'wechatpay'; $out_trade_no = $res['data']; $app_type = 'weapp'; - if($out_trade_no){ + if(!is_array($out_trade_no)){ $scene = 0; $is_balance = 1; $hb_fq_num = 0; $pay = new PayModel(); $info = $pay->pay($pay_type, $out_trade_no, $app_type, $menberList[0]['member_id'], null, $is_balance, $scene, $hb_fq_num); - $log[] = [ - 'create_order' => $res, - 'pay' => $info - ]; + Cache::store('redis_concurrent')->delete('addon_futures_' . $futures[ 'id' ]); + $log[] = $futures[ 'id' ]; } } - return $this->success([ - 'member_list' => $menberList, - 'futures_list' => $futuresList, - 'log' => $log??'' - ]); + return $this->success($log); } /** * Common: 获取违规记录 @@ -253,9 +253,6 @@ class User extends BaseModel{ ]; return $this->success($list); } - return $this->success(); } - - } \ No newline at end of file