Commit 62eb144e authored by wwccw0591's avatar wwccw0591

订单统计

parent acf61a63
This diff is collapsed.
......@@ -417,7 +417,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$res = file_get_contents($this->baseDir . PathConst::favoritesStoreFavTimeConf);
$this->lastFavId = !empty($res) ? $res : ApiConst::zero;
$where['fav_time'] =Common::format("fav_time >={0} and fav_time <{1}",$this->lastFavId,TIMESTAMP);
$where =Common::format("fav_time >={0} and fav_time <{1}",$this->lastFavId,TIMESTAMP);
$res = $favoritesStoreDao->getAllByWhere($where, $favoritesStoreDao->favoriteMemberCountField);
$results = array();
if (!empty($res)) {
......@@ -468,12 +468,33 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}while($storeMemberStatisticData);
file_put_contents($this->baseDir . PathConst::orderGoodsCreateTime, TIMESTAMP);
}
public function reduceRefundModel($storeMemberDatas){
$convertStoreMember=array();
if($storeMemberDatas){
foreach($storeMemberDatas as $order){
if(isset($convertStoreMember[$order['storeId']])){
$convertStoreMember[$order['storeId']]['orderCount']= $convertStoreMember[$order['storeId']]['orderCount']-ApiConst::one;
$convertStoreMember[$order['storeId']]['orderTotal']= $convertStoreMember[$order['storeId']]['orderTotal']+$order['refundAmount'];
}else{
$convertStoreMember[$order['storeId']]['orderCount']=ApiConst::one;
$convertStoreMember[$order['storeId']]['orderTotal']=$order['refundAmount'];
$convertStoreMember[$order['storeId']]['gmtCreate']=isset($order['gmtUpdate'])?date($order['gmtUpdate']):date('Y-m-d',TIMESTAMP);
}
}
$convertStoreMember=array_values($convertStoreMember);
$storeStatisticDayDao=\DAO\Store\StoreStatisticsDayModel::getInstance(DbNameConst::masterDBConnectName);
$storeStatisticDayDao->addAllReduce($convertStoreMember);
}
}
//任务脚本
public function reduceStoreMemberStatics()
{
$refundReturnDao=\DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName);
$storeMemberStatisticDao=\DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName);
$gmtUpdate = file_get_contents($this->baseDir . PathConst::refundRetrunGmtUpdate);
$gmtUpdate = $gmtUpdate?$gmtUpdate:ApiConst::zero;
$this->taskIndex=PageConst::taskPageBegin;
......@@ -501,6 +522,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}
$addDatas=array_values($addDatas);
$storeMemberStatisticDao->addAllReduce($addDatas);
$this->reduceRefundModel($storeMemberStatisticData);
}while($storeMemberStatisticData);
file_put_contents($this->baseDir . PathConst::refundRetrunGmtUpdate, TIMESTAMP);
......
......@@ -113,6 +113,40 @@ class StoreStatisticsDayModel extends \DAO\AbstractModel {
}
}
//插入数据大量
public function addAllReduce($datas)
{
$this->setDb(DbNameConst::masterDBConnectName);
$error = 0;
$baseSql = "insert into {$this->_tableName}(store_id,order_count,order_total,gmt_create) values";
$extentSql=" ON DUPLICATE KEY UPDATE order_count=order_goods_count-values(order_goods_count),order_total=order_total-values(order_total)";
$insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("({0},{1},{2},{3}),", $datas[$i]['storeId'], $datas[$i]['orderCount'], $datas[$i]['orderTotal'],datas[$i]['gmtCreate']);
$insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) {
$error++;
}
$insertAllSql = $baseSql;
}
}
if ($insertAllSql != $baseSql) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) {
$error++;
}
}
if ($error > 0) {
$dataJson=json_encode($datas);
throw new Exception('插入han_store_member_statistics失败,'.$dataJson, 4);
}
}
//插入数据大量
public function addAll($datas)
{
$this->setDb(DbNameConst::masterDBConnectName);
......
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