123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- /**
- * 订单
- * Created by PhpStorm.
- * User: 小威
- * Date: 2020/03/14
- * Time: 17:03
- */
- namespace Jobs\Model\MTopic\Order;
- use Jobs\Dao\BaseDao;
- use Jobs\Dao\Order\DOrder;
- use Jobs\Dao\Order\DOrderGoods;
- use Mall\Framework\Core\ErrorCode;
- use Mall\Framework\Core\ResultWrapper;
- use Mall\Framework\Core\StatusCode;
- class MOrder
- {
- private $enterpriseId;
- private $userCenterId;
- private $objDOrder;
- private $objDOrderGoods;
- private $cutTable = 200000;
- /**
- * MGrantCoupon constructor.
- * @throws \Exception
- */
- public function __construct()
- {
- $this->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;
- }
- }
|