Compare commits
2 Commits
6ceda1e5f1
...
4d5e63bfa0
| Author | SHA1 | Date |
|---|---|---|
|
|
4d5e63bfa0 | |
|
|
ea66c01647 |
|
|
@ -155,6 +155,7 @@ class Futures extends BaseApi{
|
|||
|
||||
$id = input('id', 0);
|
||||
$price = input('price', 0);
|
||||
$agree_split_order = input('agree_split_order', 0);
|
||||
|
||||
$date = model('futures')->getInfo([['id', '=', $id],['seller_uid', '=', $this->member_id]]);
|
||||
if(empty($date)){
|
||||
|
|
@ -163,13 +164,13 @@ class Futures extends BaseApi{
|
|||
|
||||
$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('','发布失败,价格不在允许范围内'));
|
||||
if(!($price > sprintf('%.2f',$date['unit_price'] * (1 + $basicsConfig['price_range']['min'] / 100)) && $price <= sprintf('%.2f',$date['unit_price'] * (1 + $basicsConfig['price_range']['max'] / 100)))){// 后台配置范围
|
||||
return $this->response($this->error('','发布失败,价格不在允许范围内'.sprintf('%.2f',$date['unit_price'] * (1 + $basicsConfig['price_range']['min'] / 100)).'-'.sprintf('%.2f',$date['unit_price'] * (1 + $basicsConfig['price_range']['max'] / 100))));
|
||||
}
|
||||
|
||||
//TODO 限制发布时间
|
||||
|
||||
return $this->response($futuresModel->release($id, $price));
|
||||
return $this->response($futuresModel->release($id, $price, $agree_split_order));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -261,4 +262,8 @@ class Futures extends BaseApi{
|
|||
}
|
||||
return $this->response($detail);
|
||||
}
|
||||
|
||||
public function testBuyBack(){
|
||||
return $this->response(event('BuyBack'));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace addon\futures\api\controller;
|
||||
use app\api\controller\BaseApi;
|
||||
|
||||
class User extends BaseApi{
|
||||
public function info(){
|
||||
$token = $this->checkToken();
|
||||
if ($token['code'] < 0) return $this->response($token);
|
||||
|
||||
return $this->response($this->success(model('futures_user')->getInfo([['member_id', '=', $this->member_id]])));
|
||||
}
|
||||
}
|
||||
|
|
@ -19,14 +19,16 @@ return [
|
|||
],
|
||||
'OrderClose' => [
|
||||
'addon\futures\event\OrderClose',
|
||||
],
|
||||
//回购
|
||||
'BuyBack' => [
|
||||
'addon\futures\event\BuyBack',
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
],
|
||||
|
||||
'subscribe' => [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
namespace addon\futures\event;
|
||||
use addon\futures\model\User;
|
||||
|
||||
class BuyBack{
|
||||
|
||||
public function handle($param){
|
||||
$userModel = new User(1);
|
||||
return $userModel->buyBack();
|
||||
}
|
||||
}
|
||||
|
|
@ -53,6 +53,7 @@ class Futures extends BaseModel{
|
|||
'a.id',
|
||||
'a.total',
|
||||
'a.unit_price',
|
||||
'a.order_id',
|
||||
'a.price',
|
||||
'a.status',
|
||||
'a.release_time',
|
||||
|
|
@ -93,7 +94,7 @@ class Futures extends BaseModel{
|
|||
* @return array
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function release($id, $price){
|
||||
public function release($id, $price, $agree_split_order = 0){
|
||||
$date = model('futures')->getInfo([['id', '=', $id]]);
|
||||
if(empty($date) || $date['status'] !== 1){
|
||||
return $this->error('','发布失败');
|
||||
|
|
@ -110,6 +111,11 @@ class Futures extends BaseModel{
|
|||
if($price >= $futuresInfo['market_price'] * $futuresInfo['total']){
|
||||
$futuresInfo['total'] *= 2;
|
||||
if($futuresInfo['total'] > pow(2,3)){//TODO 配置单订单商品最大裂变次数
|
||||
if($agree_split_order == 0){
|
||||
model('futures')->rollback();
|
||||
Cache::store('redis_concurrent')->set('addon_futures_stock_'.$id,'1');
|
||||
return error(-800, '订单价格达到订单拆分限制,是否同意订单拆分?');
|
||||
}
|
||||
//拆单
|
||||
$futuresInfo['status'] = 8;
|
||||
for($i = 0;$i < $futuresInfo['total'];$i++){
|
||||
|
|
|
|||
Loading…
Reference in New Issue