Commit 1973fe83 authored by liuyuzhen's avatar liuyuzhen

库存问题

parent fc94ffd1
...@@ -366,28 +366,42 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -366,28 +366,42 @@ class GoodsModel extends \DAO\AbstractModel {
$datas = array_values($dataList); $datas = array_values($dataList);
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
$error = 0; $error = 0;
$baseSql = "UPDATE {$this->_tableName} set goods_storage = case goods_id "; $baseSql = "UPDATE {$this->_tableName} set ";
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$goodsSql = ' goods_storage = case goods_id ';
$goodsEdittimeSql = ' goods_edittime = case goods_id ';
$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]); $goodsSql .= \Our\Common::format(" WHEN {0} THEN goods_storage{2}{1} ", $datas[$i]['goodsId'], $datas[$i]['goodsNum'],\Our\ArrayConst::ops[$op]);
$goodsEdittimeSql .= \Our\Common::format(" WHEN {0} THEN goods_edittime={1}", $datas[$i]['goodsId'],TIMESTAMP);
$dataIds[] = $datas[$i]['goodsId']; $dataIds[] = $datas[$i]['goodsId'];
$updateAllSql .= $updateSql; //$updateAllSql .= $updateSql;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$updateAllSql = trim($updateAllSql,',');
$updateAllSql .= \Our\Common::format(' END where goods_id in ({0})',implode(',',$dataIds)); $goodsSql = trim($goodsSql,',').' END';
$goodsEdittimeSql = trim($goodsEdittimeSql,',').' END';
$updateAllSql .= $goodsSql;
$updateAllSql .= $goodsEdittimeSql;
$updateAllSql .= \Our\Common::format(' where goods_id 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;
$goodsSql = 'goods_storage = case goods_id ';
$goodsEdittimeSql = ' goods_edittime = case goods_id ';
$dataIds = array(); $dataIds = array();
} }
} }
if ($updateAllSql != $baseSql) { if ($updateAllSql != $baseSql) {
$updateAllSql = trim($updateAllSql,','); $goodsSql = trim($goodsSql,',').' END';
$updateAllSql .= \Our\Common::format(' END where goods_id in ({0})',implode(',',$dataIds)); $goodsEdittimeSql = trim($goodsEdittimeSql,',').' END';
$updateAllSql .= $goodsSql;
$updateAllSql .= $goodsEdittimeSql;
$updateAllSql .= \Our\Common::format(' where goods_id in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
\Our\Log::getInstance()->write($updateAllSql,'/data/log/app');
if (!$one) { if (!$one) {
$error++; $error++;
} }
......
...@@ -258,22 +258,22 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -258,22 +258,22 @@ class GoodsCommonModel extends \DAO\AbstractModel {
$updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-'; $updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-';
} }
$goodsCommonSql = ' goods_storage = case goods_commonid '; $goodsCommonSql = ' goods_storage = case goods_commonid ';
// $goodsEdittimeSql = ' goods_edittime = case goods_commonid '; $goodsEdittimeSql = ' goods_edittime = case goods_commonid ';
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid '; $saleNumSql = 'sale_num = case goods_commonid ';
} }
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$goodsCommonSql .= \Our\Common::format(" 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']);
// $goodsEdittimeSql .= \Our\Common::format(" WHEN {0} THEN goods_edittime={1}", $datas[$i]['goodsCommonId'],TIMESTAMP); $goodsEdittimeSql .= \Our\Common::format(" WHEN {0} THEN goods_edittime={1}", $datas[$i]['goodsCommonId'],TIMESTAMP);
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$saleNumSql .= \Our\Common::format(" when {0} THEN sale_num {1}{2} ", $datas[$i]['goodsCommonId'],$updateSaleNumOp, $datas[$i]['goodsNum']); $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'];
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$goodsCommonSql = trim($goodsCommonSql,',').' END'; $goodsCommonSql = trim($goodsCommonSql,',').' END';
// $goodsEdittimeSql = trim($goodsEdittimeSql,',').' END'; $goodsEdittimeSql = trim($goodsEdittimeSql,',').' END';
$updateAllSql .= $goodsCommonSql; $updateAllSql .= $goodsCommonSql;
// $updateAllSql .= $goodsEdittimeSql; $updateAllSql .= $goodsEdittimeSql;
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END '; $saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql; $updateAllSql .= $saleNumSql;
...@@ -285,7 +285,7 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -285,7 +285,7 @@ class GoodsCommonModel extends \DAO\AbstractModel {
} }
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$goodsCommonSql = 'goods_storage = case goods_commonid '; $goodsCommonSql = 'goods_storage = case goods_commonid ';
// $goodsEdittimeSql = ' goods_edittime = case goods_commonid '; $goodsEdittimeSql = ' goods_edittime = case goods_commonid ';
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid '; $saleNumSql = 'sale_num = case goods_commonid ';
} }
...@@ -294,14 +294,15 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -294,14 +294,15 @@ class GoodsCommonModel extends \DAO\AbstractModel {
} }
if ($goodsCommonSql) { if ($goodsCommonSql) {
$goodsCommonSql = trim($goodsCommonSql,',').' END '; $goodsCommonSql = trim($goodsCommonSql,',').' END ';
// $goodsEdittimeSql = ','.trim($goodsEdittimeSql,',').' END'; $goodsEdittimeSql = ','.trim($goodsEdittimeSql,',').' END';
$updateAllSql .= $goodsCommonSql; $updateAllSql .= $goodsCommonSql;
// $updateAllSql .= $goodsEdittimeSql; $updateAllSql .= $goodsEdittimeSql;
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END '; $saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql; $updateAllSql .= $saleNumSql;
} }
$updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds)); $updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds));
\Our\Log::getInstance()->write($updateAllSql,'/data/log/app');
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
if (!$one) { if (!$one) {
......
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