|
|
@@ -10,7 +10,7 @@ class ProductOrder extends Model
|
|
|
|
|
|
// 表名
|
|
|
protected $table = 'product_order';
|
|
|
-
|
|
|
+
|
|
|
// 自动写入时间戳字段
|
|
|
protected $autoWriteTimestamp = 'int';
|
|
|
|
|
|
@@ -55,28 +55,28 @@ class ProductOrder extends Model
|
|
|
self::Closure => '关闭',
|
|
|
self::Freeze => '质押',
|
|
|
];
|
|
|
-
|
|
|
+
|
|
|
|
|
|
//抢购下单:未选择地区购买
|
|
|
- public static function setPopularNoAreaOrder($num, $orderId, $price, $productId, $uid, $typeId):bool
|
|
|
+ public static function setPopularNoAreaOrder($num, $orderId, $price, $productId, $uid, $typeId): bool
|
|
|
{
|
|
|
$data = [];
|
|
|
//抢购订单
|
|
|
$time = time();
|
|
|
- $is_popular = ($typeId == self::Popular)? self::Paid : 0;
|
|
|
+ $is_popular = ($typeId == self::Popular) ? self::Paid : 0;
|
|
|
for ($i = 0; $i < $num; $i++) {
|
|
|
$data[] = [
|
|
|
- 'order_id' => $orderId,
|
|
|
- 'product_id' => $productId,
|
|
|
- 'type_id' => $typeId,
|
|
|
- 'status' => self::Paid,
|
|
|
- 'area_id' => 0,
|
|
|
- 'price' => $price,
|
|
|
- 'popular_price' => $price,
|
|
|
- 'fees' => 0,
|
|
|
- 'num' => 1,
|
|
|
+ 'order_id' => $orderId,
|
|
|
+ 'product_id' => $productId,
|
|
|
+ 'type_id' => $typeId,
|
|
|
+ 'status' => self::Paid,
|
|
|
+ 'area_id' => 0,
|
|
|
+ 'price' => $price,
|
|
|
+ 'popular_price' => $price,
|
|
|
+ 'fees' => 0,
|
|
|
+ 'num' => 1,
|
|
|
'user_id' => $uid,
|
|
|
- 'order_no' => getOrderSN('R'.$i),
|
|
|
+ 'order_no' => getOrderSN('R' . $i),
|
|
|
'is_popular' => $is_popular,
|
|
|
'create_time' => $time,
|
|
|
'update_time' => $time
|
|
|
@@ -87,19 +87,19 @@ class ProductOrder extends Model
|
|
|
|
|
|
|
|
|
//抢购下单:选择地区购买
|
|
|
- public static function setPopularAreaOrder($areaArr, $orderId, $price, $productId, $uid, $typeId):bool
|
|
|
+ public static function setPopularAreaOrder($areaArr, $orderId, $price, $productId, $uid, $typeId): bool
|
|
|
{
|
|
|
$result = true;
|
|
|
foreach ($areaArr as $item) {
|
|
|
// 生成订单
|
|
|
$order_arr['price'] = $price;
|
|
|
- $order_arr['product_id']= $productId;
|
|
|
+ $order_arr['product_id'] = $productId;
|
|
|
$order_arr['area_id'] = $item;
|
|
|
self::setCreateOrder($orderId, $order_arr, $typeId, $uid, 0, getOrderSN('R'), 0, $price);
|
|
|
}
|
|
|
//修改区域状态
|
|
|
$count = ProductArea::whereIn('id', $areaArr)->setField('status', ProductLists::Stop);
|
|
|
- if($count != count($areaArr)) $result = false;
|
|
|
+ if ($count != count($areaArr)) $result = false;
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
@@ -116,42 +116,44 @@ class ProductOrder extends Model
|
|
|
public static function setCreateOrder(int $orderId, $orderInfo, $typeId, $userId, $fromUser, string $orderNo, float $fees, float $price): object
|
|
|
{
|
|
|
$data = [
|
|
|
- 'order_id' => $orderId,
|
|
|
- 'product_id' => $orderInfo['product_id'],
|
|
|
- 'type_id' => $typeId,
|
|
|
- 'status' => self::Paid,
|
|
|
- 'area_id' => $orderInfo['area_id'],
|
|
|
- 'order_no' => $orderNo,
|
|
|
- 'user_id' => $userId,
|
|
|
- 'from_user' => $fromUser,
|
|
|
- 'price' => $orderInfo['price'],
|
|
|
- 'popular_price'=> $price,
|
|
|
- 'fees' => $fees,
|
|
|
- 'num' => 1
|
|
|
+ 'order_id' => $orderId,
|
|
|
+ 'product_id' => $orderInfo['product_id'],
|
|
|
+ 'type_id' => $typeId,
|
|
|
+ 'status' => self::Paid,
|
|
|
+ 'area_id' => $orderInfo['area_id'],
|
|
|
+ 'order_no' => $orderNo,
|
|
|
+ 'user_id' => $userId,
|
|
|
+ 'from_user' => $fromUser,
|
|
|
+ 'price' => $orderInfo['price'],
|
|
|
+ 'popular_price' => $price,
|
|
|
+ 'fees' => $fees,
|
|
|
+ 'num' => 1
|
|
|
];
|
|
|
//抢购订单
|
|
|
- if($typeId == self::Popular) $data['is_popular'] = self::Paid;
|
|
|
+ if ($typeId == self::Popular) $data['is_popular'] = self::Paid;
|
|
|
return self::create($data);
|
|
|
}
|
|
|
|
|
|
//判断是否购买持有产品
|
|
|
- public function isBuyHoldProduct(array $productId, int $uid){
|
|
|
-
|
|
|
+ public function isBuyHoldProduct(array $productId, int $uid)
|
|
|
+ {
|
|
|
+
|
|
|
return self::where('user_id', $uid)->whereIn('product_id', $productId)->whereIn('status', [self::Paid, self::Transferred, self::Freeze])->count();
|
|
|
}
|
|
|
|
|
|
//获取持有持有产品数量
|
|
|
- public static function getHoldProductNum(string $productId){
|
|
|
-
|
|
|
+ public static function getHoldProductNum(string $productId)
|
|
|
+ {
|
|
|
+
|
|
|
return self::whereIn('product_id', $productId)->whereIn('status', [self::Paid, self::Transferred, self::Freeze])
|
|
|
- ->field('user_id,sum(num) as num')
|
|
|
- ->group('user_id')
|
|
|
- ->select();
|
|
|
+ ->field('user_id,sum(num) as num')
|
|
|
+ ->group('user_id')
|
|
|
+ ->select();
|
|
|
}
|
|
|
|
|
|
//获取抢购触发产品次数
|
|
|
public static function getTripPopularProduct(string $productId)
|
|
|
- {
|
|
|
+ {
|
|
|
return self::where('product_id', $productId)->where('is_popular', self::Paid)->whereTime('create_time', 'yesterday')->sum('num');
|
|
|
}
|
|
|
|
|
|
@@ -159,7 +161,7 @@ class ProductOrder extends Model
|
|
|
//获取持有产品数量
|
|
|
public static function getByOrderProductNum($productId, $num, $uid)
|
|
|
{
|
|
|
- if(empty($productId)) return (object)[];
|
|
|
+ if (empty($productId)) return (object)[];
|
|
|
foreach ($productId as &$item) {
|
|
|
$item['num'] = $num;
|
|
|
$count = self::getUserOrderNum($uid, $item['id']);
|
|
|
@@ -170,15 +172,16 @@ class ProductOrder extends Model
|
|
|
}
|
|
|
|
|
|
//空投产品向达到一定持有量的用户
|
|
|
- public static function getUserOrderByProductId(int $rwaProductId, int $rwaNum){
|
|
|
+ public static function getUserOrderByProductId(int $rwaProductId, int $rwaNum)
|
|
|
+ {
|
|
|
return ProductOrder::alias('a')
|
|
|
- ->join('product_list b', 'a.product_id = b.id', 'left')
|
|
|
- ->where('b.is_show', ProductLists::Normal)
|
|
|
- ->whereIn('a.status', [self::Paid, self::Transferred, self::Freeze])
|
|
|
- ->where('a.product_id', $rwaProductId)
|
|
|
- ->group('a.user_id')->having('total_num>='.$rwaNum)
|
|
|
- ->field('a.id,a.user_id,count(a.num) as total_num')
|
|
|
- ->select();
|
|
|
+ ->join('product_list b', 'a.product_id = b.id', 'left')
|
|
|
+ ->where('b.is_show', ProductLists::Normal)
|
|
|
+ ->whereIn('a.status', [self::Paid, self::Transferred, self::Freeze])
|
|
|
+ ->where('a.product_id', $rwaProductId)
|
|
|
+ ->group('a.user_id')->having('total_num>=' . $rwaNum)
|
|
|
+ ->field('a.id,a.user_id,count(a.num) as total_num')
|
|
|
+ ->select();
|
|
|
}
|
|
|
|
|
|
//获取持有产品数量订单
|
|
|
@@ -191,22 +194,22 @@ class ProductOrder extends Model
|
|
|
private static function getUserOrderNum(int $uid, int $product_id): int
|
|
|
{
|
|
|
return self::alias('a')
|
|
|
- ->join('product_list b', 'a.product_id = b.id', 'left')
|
|
|
- ->where('b.is_show', ProductLists::Normal)
|
|
|
- ->where('a.user_id', $uid)
|
|
|
- ->where('a.product_id', $product_id)
|
|
|
- ->where('a.status', '=', self::Paid)
|
|
|
- ->sum('a.num');
|
|
|
+ ->join('product_list b', 'a.product_id = b.id', 'left')
|
|
|
+ ->where('b.is_show', ProductLists::Normal)
|
|
|
+ ->where('a.user_id', $uid)
|
|
|
+ ->where('a.product_id', $product_id)
|
|
|
+ ->where('a.status', '=', self::Paid)
|
|
|
+ ->sum('a.num');
|
|
|
}
|
|
|
|
|
|
// 获取订单状态
|
|
|
public static function getProductOrder($orderId, $status, string $field)
|
|
|
{
|
|
|
return self::alias('a')->where('a.id', $orderId)
|
|
|
- ->join("product_list b", "a.product_id = b.id", "left")
|
|
|
- ->field('a.*,'.$field)
|
|
|
- ->where('a.status', $status)
|
|
|
- ->find();
|
|
|
+ ->join("product_list b", "a.product_id = b.id", "left")
|
|
|
+ ->field('a.*,' . $field)
|
|
|
+ ->where('a.status', $status)
|
|
|
+ ->find();
|
|
|
}
|
|
|
|
|
|
// 获取新人福利领取订单记录
|
|
|
@@ -225,30 +228,30 @@ class ProductOrder extends Model
|
|
|
public static function getStatusAll()
|
|
|
{
|
|
|
return [
|
|
|
- ['type_id'=>self::Popular, 'status'=> self::Paid, 'text' => __('已购买')],
|
|
|
- ['type_id'=>self::Popular, 'status'=> self::Closure, 'text' => __('已关闭')],
|
|
|
- ['type_id'=>self::Transfer, 'status'=> self::Transferred,'text' => __('转让中')],
|
|
|
- ['type_id'=>self::Giveaway, 'status'=> self::Closure, 'text' => __('已赠送')],
|
|
|
- ['type_id'=>self::Giveaway, 'status'=> self::Paid, 'text' => __('受赠')],
|
|
|
- ['type_id'=>self::Transfer, 'status'=> self::Closure, 'text' => __('已转让')],
|
|
|
- ['type_id'=>self::Popular, 'status' => self::Shipped, 'text' => __('已提货')],
|
|
|
- ['type_id'=>self::Transfer, 'status'=> self::Cancelled,'text' => __('已取消')],
|
|
|
- ['type_id'=>self::Popular, 'status' => self::Freeze, 'text' => __('质押')],
|
|
|
- ['type_id'=>self::Transfer, 'status' => self::Paid, 'text' => __('购买寄售')],
|
|
|
- ['type_id'=>self::Airdrop, 'status' => self::Paid, 'text' => __('空投')],
|
|
|
- ['type_id'=>self::Airdrop, 'status' => self::Closure, 'text' => __('空投关闭')],
|
|
|
- ['type_id'=>self::Synthesi, 'status' => self::Paid, 'text' => __('合成')],
|
|
|
- ['type_id'=>self::Synthesi, 'status' => self::Closure, 'text' => __('合成关闭')],
|
|
|
- ['type_id'=>self::Buying, 'status' => self::Paid, 'text' => __('求购')],
|
|
|
- ['type_id'=>self::Buying, 'status' => self::Closure, 'text' => __('求购关闭')],
|
|
|
- ['type_id'=>self::Newbie, 'status' => self::Paid, 'text' => __('新人茶权')],
|
|
|
- ['type_id'=>self::Newbie, 'status' => self::Closure, 'text' => __('新人茶权关闭')],
|
|
|
- ['type_id'=>self::Super, 'status' => self::Paid, 'text' => __('新人福利')],
|
|
|
- ['type_id'=>self::Super, 'status' => self::Closure, 'text' => __('新人福利关闭')],
|
|
|
- ['type_id'=>self::RwaExchange, 'status' => self::Paid, 'text' => __('Rwa兑换')],
|
|
|
- ['type_id'=>self::RwaExchange, 'status' => self::Closure, 'text' => __('Rwa兑换关闭')],
|
|
|
- ['type_id'=>self::TeacExchange, 'status' => self::Paid, 'text' => __('Teac兑换')],
|
|
|
- ['type_id'=>self::TeacExchange, 'status' => self::Closure, 'text' => __('Teac兑换关闭')],
|
|
|
+ ['type_id' => self::Popular, 'status' => self::Paid, 'text' => __('已购买')],
|
|
|
+ ['type_id' => self::Popular, 'status' => self::Closure, 'text' => __('已关闭')],
|
|
|
+ ['type_id' => self::Transfer, 'status' => self::Transferred, 'text' => __('转让中')],
|
|
|
+ ['type_id' => self::Giveaway, 'status' => self::Closure, 'text' => __('已赠送')],
|
|
|
+ ['type_id' => self::Giveaway, 'status' => self::Paid, 'text' => __('受赠')],
|
|
|
+ ['type_id' => self::Transfer, 'status' => self::Closure, 'text' => __('已转让')],
|
|
|
+ ['type_id' => self::Popular, 'status' => self::Shipped, 'text' => __('已提货')],
|
|
|
+ ['type_id' => self::Transfer, 'status' => self::Cancelled, 'text' => __('已取消')],
|
|
|
+ ['type_id' => self::Popular, 'status' => self::Freeze, 'text' => __('质押')],
|
|
|
+ ['type_id' => self::Transfer, 'status' => self::Paid, 'text' => __('购买寄售')],
|
|
|
+ ['type_id' => self::Airdrop, 'status' => self::Paid, 'text' => __('空投')],
|
|
|
+ ['type_id' => self::Airdrop, 'status' => self::Closure, 'text' => __('空投关闭')],
|
|
|
+ ['type_id' => self::Synthesi, 'status' => self::Paid, 'text' => __('合成')],
|
|
|
+ ['type_id' => self::Synthesi, 'status' => self::Closure, 'text' => __('合成关闭')],
|
|
|
+ ['type_id' => self::Buying, 'status' => self::Paid, 'text' => __('求购')],
|
|
|
+ ['type_id' => self::Buying, 'status' => self::Closure, 'text' => __('求购关闭')],
|
|
|
+ ['type_id' => self::Newbie, 'status' => self::Paid, 'text' => __('新人茶权')],
|
|
|
+ ['type_id' => self::Newbie, 'status' => self::Closure, 'text' => __('新人茶权关闭')],
|
|
|
+ ['type_id' => self::Super, 'status' => self::Paid, 'text' => __('新人福利')],
|
|
|
+ ['type_id' => self::Super, 'status' => self::Closure, 'text' => __('新人福利关闭')],
|
|
|
+ ['type_id' => self::RwaExchange, 'status' => self::Paid, 'text' => __('Rwa兑换')],
|
|
|
+ ['type_id' => self::RwaExchange, 'status' => self::Closure, 'text' => __('Rwa兑换关闭')],
|
|
|
+ ['type_id' => self::TeacExchange, 'status' => self::Paid, 'text' => __('Teac兑换')],
|
|
|
+ ['type_id' => self::TeacExchange, 'status' => self::Closure, 'text' => __('Teac兑换关闭')],
|
|
|
];
|
|
|
}
|
|
|
|
|
|
@@ -270,8 +273,8 @@ class ProductOrder extends Model
|
|
|
{
|
|
|
return $this->hasOne('ProductArea', 'id', 'area_id', [], 'LEFT')->setEagerlyType(0);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//提货地址
|
|
|
public function address()
|
|
|
{
|
|
|
@@ -301,5 +304,28 @@ class ProductOrder extends Model
|
|
|
return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ //抢购下单:未选择地区购买
|
|
|
+ public static function setGiverwagoods($orderId, $price, $productId, $uid, $typeId): bool
|
|
|
+ {
|
|
|
+ //抢购订单
|
|
|
+ $time = time();
|
|
|
+ $is_popular = ($typeId == self::Giveaway) ? self::Closure : 0;
|
|
|
+ $data = [
|
|
|
+ 'order_id' => $orderId,
|
|
|
+ 'product_id' => $productId,
|
|
|
+ 'type_id' => $typeId,
|
|
|
+ 'status' => self::Closure,
|
|
|
+ 'area_id' => 0,
|
|
|
+ 'price' => $price,
|
|
|
+ 'popular_price' => $price,
|
|
|
+ 'fees' => 0,
|
|
|
+ 'num' => 1,
|
|
|
+ 'user_id' => $uid,
|
|
|
+ 'order_no' => getOrderSN('R'),
|
|
|
+ 'is_popular' => $is_popular,
|
|
|
+ 'create_time' => $time,
|
|
|
+ 'update_time' => $time
|
|
|
+ ];
|
|
|
+ return self::insert($data);
|
|
|
+ }
|
|
|
}
|