|
|
@@ -10,6 +10,7 @@ use fast\Asset;
|
|
|
use app\common\model\ProductOrder;
|
|
|
use app\common\model\LedgerTeacChangeModel;
|
|
|
use app\common\model\ProductPopular;
|
|
|
+use app\common\model\ProductTransfer;
|
|
|
|
|
|
//订单
|
|
|
class OrderLogic
|
|
|
@@ -60,5 +61,55 @@ class OrderLogic
|
|
|
}
|
|
|
|
|
|
|
|
|
+ //获取转让产品订单列表
|
|
|
+ public static function getProductTransferOrder(string $orderId, int $uid, int $puid)//: array
|
|
|
+ {
|
|
|
+ $productOrder = Loader::model('ProductOrder');
|
|
|
+ $productTransfer = Loader::model('ProductTransfer');
|
|
|
+ $userModel = Loader::model('UserModel');
|
|
|
+ $ledgerWalletModel = Loader::model('LedgerWalletModel');
|
|
|
+ $ledgerTokenChangeModel = Loader::model('LedgerTokenChangeModel');
|
|
|
+ $result = $productTransfer::whereIn('id', $orderId)->where('status', ProductTransfer::Normal)->select();
|
|
|
+ if (count($result) != count(explode(",", $orderId))) {
|
|
|
+ if(empty($order_info)) throw new Exception(__("订单不存在"));
|
|
|
+ }
|
|
|
+ $totalAmount = 0; //总金额
|
|
|
+ foreach ($result as $item) {
|
|
|
+
|
|
|
+ if($item->user_id == $uid) throw new Exception(__("不能购买自己寄售的商品"));
|
|
|
+ $totalAmount = bcadd($totalAmount, $item->price, 2);
|
|
|
+ //抢购订单
|
|
|
+ $popular_order = $productOrder->where('id', $item->order_id)->find();
|
|
|
+
|
|
|
+ // 生成订单
|
|
|
+ $popularPrice = empty($popular_order->popular_price)? $item->price: $popular_order->popular_price;
|
|
|
+
|
|
|
+ $productOrder::setCreateOrder($item->order_id, $item, $productOrder::Transfer, $uid, $item->user_id, $popular_order->order_no, $item->fees, $popularPrice);
|
|
|
+
|
|
|
+ //扣除余额记录
|
|
|
+ $ledgerWalletModel->changeWalletAccount($uid, Asset::TOKEN, -$item->price, $ledgerTokenChangeModel::Payment, $item->user_id);
|
|
|
+
|
|
|
+ //增加转让人余额
|
|
|
+ $amount = bcsub($item->price, $item->fees, 2);
|
|
|
+ $ledgerWalletModel->changeWalletAccount($item->user_id, Asset::TOKEN, $amount, $ledgerTokenChangeModel::Receive, $uid);
|
|
|
+ if($popular_order->popular_price > config('min_rwa_price')) {
|
|
|
+ //扣除转让人Rwa有效
|
|
|
+ $userModel::updateForRwaNum($item->user_id, $userModel::getByParentId($item->user_id), 1, '-');
|
|
|
+ //增加购买Rwa有效
|
|
|
+ $userModel::updateForRwaNum($uid, $puid, 1, '+');
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改原订单状态
|
|
|
+ $popular_order->status=$productOrder::Closure;
|
|
|
+ $popular_order->save();
|
|
|
+
|
|
|
+ //修改状态
|
|
|
+ $item->status = $productTransfer::Stop;
|
|
|
+ $item->save();
|
|
|
+ }
|
|
|
+ $chabao = $ledgerWalletModel::getWalletChaBao($uid);
|
|
|
+ if(bccomp($totalAmount, $chabao, 2) > 0) throw new Exception(__("余额不足请前往充值"), 15001);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
}
|