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(); $isUpdate = false; //是否全部取消 $rows = ProductTransfer::where('order_id', $orderId)->find(); $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, array $params) { $time = time(); $lockCount = $productTransfer ->whereIn('id', $params['transfer_id']) ->where('is_lock', $productTransfer::Lock) ->whereTime('lock_time','>', - $endTime) ->count(); if(!empty($lockCount)) throw new Exception(__("茶权已被他人锁定,无法操作")); return $productTransfer->whereIn('id', $params['transfer_id']) ->update(['lock_time'=> $time, 'is_lock' => $productTransfer::Lock]); } }