objDOrder = new DOrder(); $this->objDOrderGoods = new DOrderGoods(); echo '编辑订单信息:' . date('Y-d-d H:i:s') . ':' . PHP_EOL; } /** * 切换分表 * @param $enterpriseId * @param $userCenterId * @throws \Exception */ public function orderSubTable($enterpriseId, $userCenterId) { $tableName = $this->objDOrder->getTableName($this->objDOrder->get_Table() . '_' . $enterpriseId, $userCenterId, $this->cutTable); $this->objDOrder->setTable($tableName); $tableName = $this->objDOrderGoods->getTableName($this->objDOrderGoods->get_Table() . '_' . $enterpriseId, $userCenterId, $this->cutTable); $this->objDOrderGoods->setTable($tableName); } /** * 回写订单库存成本 * @param $params * @return ResultWrapper * @throws \Exception */ public function backOrderOutCostPrise($params) { var_dump($params); $params = $params['data']; //调用分表 self::orderSubTable($params['enterpriseId'], $params['userCenterId']); //查询订单 $dbResult = $this->objDOrder->get(['id'=>$params['originId'], 'deleteStatus' => StatusCode::$standard]); if($dbResult === false){ echo $this->objDOrder->error() . PHP_EOL; return false; } if(empty($dbResult)){ echo '订单不存在' . PHP_EOL; return false; } unset($dbResult); //查询详情 $dbResult = $this->objDOrderGoods->get(['orderId' => $params['originId'], 'deleteStatus' => StatusCode::$standard, 'returnStatus' => StatusCode::$orderReturn['notReturn']]); if($dbResult === false){ echo $this->objDOrderGoods->error() . PHP_EOL; return false; } if(empty($dbResult)){ echo '商品数据为空' . PHP_EOL; return false; } unset($dbResult); foreach($params['stock'] as $skuId => $value){ //判断是那种计算成本方式 if($params['costType'] == StatusCode::$costType['mwa']){ //移动加权 $costPrise = $value['averageCost']; }elseif($params['costType'] == StatusCode::$costType['sp']){ //批次成本 //计算平均值 $prise = 0; foreach($value['batch'] as $v){ $prise = bcadd($prise,$v['batchCost'],4); } $count = count($value['batch']); $costPrise = bcdiv($prise ,$count,4); }else{ echo '成本计算参数错误' . PHP_EOL; return false; } echo '$skuId='.$skuId.' -- '.'成本方式'.$params['costType'].', 成本单价'.$costPrise.PHP_EOL; //修改订单详情 print_r(['outCostPrice' => $costPrise, 'updateTime' => time()]); print_r(['id' => $params['originId'], 'skuId' => $skuId]); print_r($this->objDOrderGoods->get_Table()); $dbResult = $this->objDOrderGoods->update(['outCostPrice' => $costPrise, 'updateTime' => time()], ['orderId' => $params['originId'], 'skuId' => $skuId]); //var_dump($dbResult); if($dbResult === false){ echo $this->objDOrderGoods->error() . PHP_EOL; return false; } } echo '修改成功' . PHP_EOL; return true; } }