Commit a5675b44 authored by liuyuzhen's avatar liuyuzhen

库存及销量更新

parent 9a0b685d
...@@ -313,7 +313,7 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -313,7 +313,7 @@ class GoodsModel extends \DAO\AbstractModel {
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$dataIds = array(); $dataIds = array();
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$updateSql = \Our\Common::format(" WHEN {0} THEN goods_storage{2}{1} ", $datas[$i]['goodsId'], $datas[$i]['goodsNum'],\Our\ArrayConst::ops[$op]); $updateSql = \Our\Common::format(" WHEN {0} THEN goods_storage{2}{1},", $datas[$i]['goodsId'], $datas[$i]['goodsNum'],\Our\ArrayConst::ops[$op]);
$dataIds[] = $datas[$i]['goodsId']; $dataIds[] = $datas[$i]['goodsId'];
$updateAllSql .= $updateSql; $updateAllSql .= $updateSql;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
......
...@@ -214,26 +214,43 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -214,26 +214,43 @@ class GoodsCommonModel extends \DAO\AbstractModel {
if($updateSaleNumFlag&&$op!=\Our\ApiConst::set){ if($updateSaleNumFlag&&$op!=\Our\ApiConst::set){
$updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-'; $updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-';
} }
$goodsCommonSql = 'goods_storage = case goods_commonid ';
if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid ';
}
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$updateSql = \Our\Common::format(" goods_storage = case goods_commonid WHEN {0} THEN goods_storage{1}{2}, ", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum']); $goodsCommonSql .= \Our\Common::format(" WHEN {0} THEN goods_storage{1}{2}, ", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum']);
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$updateSql = \Our\Common::format(" goods_storage = case goods_commonid WHEN {0} THEN goods_storage{1}{2} END,sale_num = case goods_commonid when {0} THEN sale_num {3}{2} END,", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum'],$updateSaleNumOp); $saleNumSql .= \Our\Common::format(" when {0} THEN sale_num {1}{2},", $datas[$i]['goodsCommonId'],$updateSaleNumOp, $datas[$i]['goodsNum']);
} }
$dataIds[] = $datas[$i]['goodsCommonId']; $dataIds[] = $datas[$i]['goodsCommonId'];
$updateAllSql .= $updateSql;;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$updateAllSql = trim($updateAllSql,','); $goodsCommonSql = trim($goodsCommonSql,',').' END';
$updateAllSql .= $goodsCommonSql;
if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql;
}
$updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds)); $updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
if (!$one) { if (!$one) {
$error++; $error++;
} }
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$goodsCommonSql = 'goods_storage = case goods_commonid ';
if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid ';
}
$dataIds = array(); $dataIds = array();
} }
} }
if ($updateAllSql != $baseSql) { if ($updateAllSql != $baseSql) {
$updateAllSql = trim($updateAllSql,','); $goodsCommonSql = trim($goodsCommonSql,',').' END ';
$updateAllSql .= $goodsCommonSql;
if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql;
}
$updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds)); $updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment