find(); if(empty($rows)){ ProductMarket::create([ 'product_id' => $productId, 'type_id' => ProductLists::getProductTypeById($productId), 'price' => $minPrice,'status' => ProductMarket::Normal]); }else{ $isUpdate = false; //更新市场状态 if($rows->status != ProductMarket::Normal ){ $rows->status = ProductMarket::Normal; $isUpdate = true; } //更新最低价 if($rows->price != $minPrice){ $rows->price = $minPrice; $isUpdate = true; } if($isUpdate) $rows->save(); } //添加寄售订单 $fee = getConfig('transfer_fee'); $feeAmount = bcmul($price, $fee, 2) ; return ProductTransfer::setTransferOrder($userId, $productId, $areaId, $feeAmount, $orderNo, $params); } //取消寄售更新最低价 public static function cancelTransferOrder(int $orderId, int $userId, $orderInfo) { //市场 $market = ProductMarket::where('product_id', $orderInfo['product_id'])->find(); //转让 $rows = ProductTransfer::where('order_id', $orderId)->find(); if($market){ $isUpdate = false; //是否全部取消 $count = ProductTransfer::where('product_id', $orderInfo['product_id'])->where('status', ProductTransfer::Normal)->count(); if($count == 1){ $isUpdate = true; $market->status = ProductMarket::Hidden; }else{ //取消最小价格 if($rows->price < $market->price){ $isUpdate = true; $market->price = ProductTransfer::getTransferMinPriceByProduct($orderInfo['product_id'], $rows->price); } } //市场状态 if($isUpdate) $market->save(); } //转让列表取消 $rows->status = ProductTransfer::Stop; $rows->save(); //新增记录 return ProductOrder::setCreateOrder($orderInfo['order_id'], $orderInfo, ProductOrder::Popular, $userId, $orderInfo['from_user'], getOrderSN('R'.$orderInfo['order_id']), 0, $orderInfo->popular_price); } //判断是否锁定 public static function setTransferLock(object $productTransfer, int $endTime, int $uid, string $transferId) { $time = time(); $lockList = $productTransfer->whereIn('id', $transferId)->select(); foreach ($lockList as &$item) { if($item->user_id == $uid) throw new Exception(__("不能锁自己的寄售单")); if($item->lock_uid != $uid && $item->lock_time + $endTime > $time) throw new Exception(__("茶权已被他人锁定,无法操作")); $item->lock_uid = $uid; $item->lock_time = $time; $item->save(); } return true; } }