Commit aa17dcaa authored by wwccw0591's avatar wwccw0591

pc

parent 1e5974db
......@@ -46,29 +46,29 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
//获得统计数据
public function getStatistics($memberId)
{
$memberDao=\DAO\MemberModel::getInstance();
$storeId=$memberDao->getInfo($memberId,'store_id');
$memberDao = \DAO\MemberModel::getInstance();
$storeId = $memberDao->getInfo($memberId, 'store_id');
//$storeId = $this->_getStoreByMemberId($memberId);
// $storeStatisticsDayDao = \DAO\Store\StoreStatisticsDayModel::getInstance();
// $storeStatisticsDao = \DAO\StoreStatisticsModel::getInstance();
$orderDao=\DAO\Order\OrderModel::getInstance();
$favoritesStoreDao=\DAO\FavoritesStoreModel::getInstance();
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance();
$goodsCount=\Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsCountByStoreId'), array($storeId), ApiConst::tenDaySecond, array($storeId));
$orderDao = \DAO\Order\OrderModel::getInstance();
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance();
$goodsCount = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsCountByStoreId'), array($storeId), ApiConst::tenDaySecond, array($storeId));
$condition['store_id'] = $storeId;
//获取店铺信息
$store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this->storeDao, 'getInfo'), array($condition), ApiConst::tenDaySecond, array($storeId));
//获取店铺数据统计
//$storeStats = $storeStatisticsDao->find($condition);
//获取店铺今日销售额和订单量
// $storeStats=$orderDao->getShopKeeperCountByStoreId($storeId);
// $storeStats=$orderDao->getShopKeeperCountByStoreId($storeId);
$storeStats = $orderDao->getShopKeeperCountByStoreIdCache($storeId);
$storeFavariteCount=$favoritesStoreDao->getFavoritesCountByStoreIdCache($storeId);
$storeFavariteCount = $favoritesStoreDao->getFavoritesCountByStoreIdCache($storeId);
$data['storeId'] = $store['store_id'];
$data['storeName'] = $store['store_name'];
$data['storeLabel'] = $store['store_label'];
$data['goodsCount'] = $goodsCount;
$data['orderCount'] =$storeStats['orderCount'];
$data['goodsCount'] = $goodsCount;
$data['orderCount'] = $storeStats['orderCount'];
$data['orderTotal'] = $storeStats['orderTotal'];
$data['favCount'] = $storeFavariteCount['favCount'];
$data['todayOrderCount'] = $storeStats['todayOrderCount'];
......@@ -241,8 +241,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
} else {
$update_data['order_state'] = ApiConst::orderStateWaitSend;
$result = $orderDao->update($where, $update_data);
$orderDao->deleteOrderCache($order['buyer_id'], $orderId,$order['store_id'],true);
// \Our\RedisHelper::memberTotalFromStateToState($order['buyer_id'], $order['order_state'], ApiConst::orderStateWaitSend);
$orderDao->deleteOrderCache($order['buyer_id'], $orderId, $order['store_id'], true);
// \Our\RedisHelper::memberTotalFromStateToState($order['buyer_id'], $order['order_state'], ApiConst::orderStateWaitSend);
return $result;
}
}
......@@ -260,18 +260,25 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
return $data;
}
public function getRetrunDatas($where, $pageIndex, $pageSize)
public function getRetrunDatas($storeId,$where, $pageIndex, $pageSize)
{
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance();
$orderDao = \DAO\Order\OrderModel::getInstance();
$goodsDao = \DAO\GoodsModel::getInstance();
$returnData = $orderDao->getOrders($where,$this->orderListField,$pageIndex,$pageSize);
$orders = $returnData['orders'];
$orderCommonDao=\DAO\Order\OrderCommonModel::getInstance();
$returnData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'getList'), array($where, $orderDao->getOrderDetailField(), $pageIndex, $pageSize, $order = array('gmt_update' => 'desc')), \Our\ApiConst::oneDaySecond, array($storeId));
//$returnData = $orderDao->getOrders($where, $this->orderListField, $pageIndex, $pageSize);
$orders = $returnData['list'];
if (!empty($orders)) {
$orderIds = array_column($orders, 'orderId');
if (!empty($orderIds)) {
$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $orderGoodsDao->orderGoodsField);
$orderMerge = \Our\Common::intergrateOneToMany($orders, $orderGoods, 'orderId', 'orderId', 'orderGoods');
$orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $orderGoodsDao->orderGoodsField), \Our\ApiConst::oneDaySecond, array($storeId));
//$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $orderGoodsDao->orderGoodsField);
$orderCommons=$orderCommonDao->getAllByOrderIds($orderIds,$orderCommonDao->orderCommonField);
$ordersOrderCommons=Common::intergrateOneToOne($orders,$orderCommons,'orderId','orderId');
$orderMerge = \Our\Common::intergrateOneToMany($ordersOrderCommons, $orderGoods, 'orderId', 'orderId', 'orderGoods');
foreach ($orderMerge as &$value) {
$value['orderStateName'] = $orderDao->getStatusText($value);
$value['orderText'] = $orderDao->getText($value, ApiConst::orderListDescribe);
......@@ -286,60 +293,69 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
} else {
$value['orderGoods'] = array();
}
unset($value['couponId']);
unset($value['refundAmount']);
unset($value['paymentTime']);
unset($value['finnshedTime']);
unset($value['paymentCode']);
unset($value['needShippingFee']);
unset($value['refundCondition']);
unset($value['delayTime']);
unset($value['reciverName']);
unset($value['reciverInfo']);
unset($value['daddressId']);
}
$returnData['orders'] = $orderMerge;
$returnData['totalCount'] = $returnData['totalCount'];
$return['orders'] = $orderMerge;
$return['totalCount'] = $returnData['totalCount'];
} else {
$returnData = new \stdClass();
$return = new \stdClass();
}
} else {
$returnData = new \stdClass();
$return = new \stdClass();
}
return $returnData;
return $return;
}
public function getOrderIndexWhere($storeId, $keyword, $pageIndex, $pageSize)
{
$query1[] = array('match' => array('storeId' => $storeId));
$res1['must'][0] = $query1;
$query2[] = array('match' => array('goodsName' => $keyword));
$query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*"));
$res1['must'][1]['bool']['should'] = $query2;
$allQuery['bool'] = $res1;
$elasticTool = \Elastics\ElasticsToolModel::getInstance(NameConst::ordersIndex);
$res = $elasticTool->searchMatch($allQuery, $pageIndex, $pageSize);
$orderIdsField = array_column($res['list'], 'orderId');
$orderIds = implode(',', $orderIdsField);
if ($orderIds) {
$where = Common::format(" order_id in({0})", $orderIds);
}else{
$where=false;
}
return $where;
}
public function getOrders($memberId, $pageIndex, $pageSize, $orderState, $keyword)
{
$storeId = $this->_getStoreByMemberId($memberId);
// 'query' => array('bool'=>array('should' => $where)),
$allQuery=array();
$allQuery['bool']=array();
if(!empty($keyword)){
$query1[]= array('match' => array('storeId' => $storeId));
$query1[]= array('match' => array('goodsName' => $keyword));
// $where['storeId']=$storeId;
if(!empty($orderState)){
$query1[]= array('match' => array('orderState' => $orderState));
if(empty($storeId)){
ErrorModel::throwException(CodeConfigModel::paramsError);
}
$allQuery = array();
$allQuery['bool'] = array();
if (!empty($keyword)) {
$where= $this->getOrderIndexWhere($storeId,$keyword,$pageIndex,$pageSize);
} else {
$where = 'han_order.store_id=' . $storeId;
if (!empty($orderState)) {
$where .= ' and han_order.order_state=' . $orderState;
}
$res2=array('must'=>$query1);
$allQuery['bool']=$res2;
//array_push($allQuery['bool'],$res2);
// echo json_encode($allQuery);exit;
// echo json_encode($allQuery);exit;
$elasticTool=ElasticsToolModel::getInstance(NameConst::ordersIndex);
$res=$elasticTool->searchMatch($allQuery,$pageIndex,$pageSize);
$orderIdsField=array_column($res['list'],'orderId');
$orderIds=implode(',',$orderIdsField);
if($orderIds){
$where=Common::format(" han_order.store_id={0} and (han_order.order_id in({1}) or han_order.order_sn like '%{2}%')",$storeId,$orderIds,$keyword);
}else{
$where=Common::format(" han_order.store_id={0} and han_order.order_sn like '%{1}%'",$storeId,$keyword);
}
}else{
$where = 'han_order.store_id=' . $storeId;
if (!empty($orderState)) {
$where .= ' and han_order.order_state=' . $orderState;
}
}
if(!empty($where)){
$returnData = $this->getRetrunDatas($where, $pageIndex, $pageSize);
}else{
$returnData=new \stdClass();
if (!empty($where)) {
$returnData = $this->getRetrunDatas($storeId,$where, $pageIndex, $pageSize);
} else {
$returnData = new \stdClass();
}
return $returnData;
}
......@@ -361,7 +377,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$storeDao = \DAO\StoreModel::getInstance(DbNameConst::salveDBConnectName);
$goodsDao = \DAO\GoodsModel::getInstance(DbNameConst::salveDBConnectName);
//订单
$order = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'findByOrderId'), array($orderId), \Our\ApiConst::oneDaySecond,array($orderId));
$order = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'findByOrderId'), array($orderId), \Our\ApiConst::oneDaySecond, array($orderId));
if ($order['store_id'] != $storeId) {
ErrorModel::throwException(CodeConfigModel::orderError);
}
......@@ -478,13 +494,14 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}
return $results;
}
//任务脚本原来的方法是下面那个
public function insertStoreMemberStatics()
{
$orderGoodDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::salveDBConnectName);
$orderDao=\DAO\Order\OrderModel::getInstance();
$orderDao = \DAO\Order\OrderModel::getInstance();
$storeMemberStatisticDao = \DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName);
$reufndReturnDao=\DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$reufndReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$gmtCreate = file_get_contents($this->baseDir . PathConst::orderGoodsCreateTime);
$gmtCreate = $gmtCreate ? $gmtCreate : ApiConst::zero;
$beginTime = $gmtCreate;
......@@ -493,29 +510,29 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
do {
$storeMemberStatisticData = $orderGoodDao->getMemberStoreStaticsByCreateTime($beginTime, $this->taskIndex, $this->taskSize);
$storeMemberStatisticData = isset($storeMemberStatisticData['list']) ? $storeMemberStatisticData['list'] : false;
if($storeMemberStatisticData){
if ($storeMemberStatisticData) {
$this->taskIndex++;
$storeId=array_column($storeMemberStatisticData,'storeId');
$memberId=array_column($storeMemberStatisticData,'buyerId');
$storeIds= array_unique($storeId);
$memberIds=array_unique($memberId);
$goodsNumCount=$orderGoodDao->getMemberStoreOrderGoodsCount($storeIds,$memberIds);
$ordersCount=$orderDao->getSumAmountCountByMemberAndStoreId($storeIds,$memberIds);
$refundLists=$reufndReturnDao->getRefundSuccessMoneyByStoreIdAndMemberId($storeIds,$memberIds);
if(!empty($ordersCount) && !empty($refundLists)){
foreach($ordersCount as &$order){
foreach($refundLists as $refund){
if($order['buyerId']==$refund['buyerId'] && $order['storeId']==$refund['storeId']){
$order['orderTotal']=$order['orderTotal']-$refund['refundTotal'];
$storeId = array_column($storeMemberStatisticData, 'storeId');
$memberId = array_column($storeMemberStatisticData, 'buyerId');
$storeIds = array_unique($storeId);
$memberIds = array_unique($memberId);
$goodsNumCount = $orderGoodDao->getMemberStoreOrderGoodsCount($storeIds, $memberIds);
$ordersCount = $orderDao->getSumAmountCountByMemberAndStoreId($storeIds, $memberIds);
$refundLists = $reufndReturnDao->getRefundSuccessMoneyByStoreIdAndMemberId($storeIds, $memberIds);
if (!empty($ordersCount) && !empty($refundLists)) {
foreach ($ordersCount as &$order) {
foreach ($refundLists as $refund) {
if ($order['buyerId'] == $refund['buyerId'] && $order['storeId'] == $refund['storeId']) {
$order['orderTotal'] = $order['orderTotal'] - $refund['refundTotal'];
}
}
}
}
if(!empty($goodsNumCount)){
$storeMemberStatisticDao->addAll($goodsNumCount,'orderGoodsCount');
if (!empty($goodsNumCount)) {
$storeMemberStatisticDao->addAll($goodsNumCount, 'orderGoodsCount');
}
if(!empty($ordersCount)){
$storeMemberStatisticDao->addAll($ordersCount,'orderTotal');
if (!empty($ordersCount)) {
$storeMemberStatisticDao->addAll($ordersCount, 'orderTotal');
}
}
......@@ -576,7 +593,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
{
$elasticsTool = ElasticsToolModel::getInstance('orders');
// $elasticsTool->deleteIndex();
// $elasticsTool->deleteIndex();
$indexsFiled = array(
'goodsName' => array(
'type' => 'string',
......@@ -627,29 +644,29 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
// }
// $elasticsTool->postBulkDoc($indexs, 'orderId');
// }
$orders=$orderDao->getList($where, "order_id as orderId,order_sn as orderSn,delete_state as deleteState,order_state as orderState,add_time as addTime,store_name as storeName,buyer_id as buyerId,store_id as storeId", $this->taskIndex, $this->taskSize, array( 'add_time'=>'desc'));
if(!empty($orders['list'])){
$orders = $orderDao->getList($where, "order_id as orderId,order_sn as orderSn,delete_state as deleteState,order_state as orderState,add_time as addTime,store_name as storeName,buyer_id as buyerId,store_id as storeId", $this->taskIndex, $this->taskSize, array('add_time' => 'desc'));
if (!empty($orders['list'])) {
$this->taskIndex++;
$indexs=array();
$orderIds=array_column($orders['list'],'orderId');
$orderGoods=$orderGoodDao->getOrderGoodsByOrderIds($orderIds,'order_id as orderId,goods_name as goodsName');
$resultOrders=Common::intergrateOneToMany($orders['list'], $orderGoods, 'orderId', 'orderId', 'orderGoods');
foreach($resultOrders as $result){
$one['orderId']=$result['orderId'];
$one['orderSn']=$result['orderSn'];
$namesArr=array_column($result['orderGoods'],'goodsName');
$nameStr=implode(',',$namesArr);
$one['goodsName']=$nameStr;
$one['storeName']=$result['storeName'];
$one['deleteState']=$result['deleteState'];
$one['orderState']=$result['orderState'];
$one['storeId']=$result['storeId'];
$one['buyerId']=$result['buyerId'];
$one['addTime']=$result['addTime'];
$indexs = array();
$orderIds = array_column($orders['list'], 'orderId');
$orderGoods = $orderGoodDao->getOrderGoodsByOrderIds($orderIds, 'order_id as orderId,goods_name as goodsName');
$resultOrders = Common::intergrateOneToMany($orders['list'], $orderGoods, 'orderId', 'orderId', 'orderGoods');
foreach ($resultOrders as $result) {
$one['orderId'] = $result['orderId'];
$one['orderSn'] = $result['orderSn'];
$namesArr = array_column($result['orderGoods'], 'goodsName');
$nameStr = implode(',', $namesArr);
$one['goodsName'] = $nameStr;
$one['storeName'] = $result['storeName'];
$one['deleteState'] = $result['deleteState'];
$one['orderState'] = $result['orderState'];
$one['storeId'] = $result['storeId'];
$one['buyerId'] = $result['buyerId'];
$one['addTime'] = $result['addTime'];
//$one['type']=NameConst::ordersIndex.($result['storeId'])%ApiConst::orderIndexRank;
array_push($indexs,$one);
array_push($indexs, $one);
}
$elasticsTool->postBulkDoc($indexs,'orderId');
$elasticsTool->postBulkDoc($indexs, 'orderId');
}
} while ($orders['list']);
file_put_contents($this->baseDir . PathConst::orderLastCreateTime, TIMESTAMP);
......@@ -683,8 +700,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
{
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName);
$storeMemberStatisticDao = \DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName);
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao=\DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$gmtUpdate = file_get_contents($this->baseDir . PathConst::refundRetrunGmtUpdate);
$gmtUpdate = $gmtUpdate ? $gmtUpdate : ApiConst::zero;
$this->taskIndex = PageConst::taskPageBegin;
......@@ -692,15 +709,15 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
do {
$storeMemberStatisticData = $refundReturnDao->getMemberStoreStaticsByGmtUpdate($gmtUpdate, $this->taskIndex, $this->taskSize);
$storeMemberStatisticData = isset($storeMemberStatisticData['list']) ? $storeMemberStatisticData['list'] : false;
if(!empty($storeMemberStatisticData)){
foreach($storeMemberStatisticData as $item){
$orderDao->deleteOrderCache($item['buyerId'],$item['orderId'],$item['storeId'],true,true);
if (!empty($storeMemberStatisticData)) {
foreach ($storeMemberStatisticData as $item) {
$orderDao->deleteOrderCache($item['buyerId'], $item['orderId'], $item['storeId'], true, true);
}
$orderIds=array_column($storeMemberStatisticData,'orderId');
foreach($orderIds as $orderId){
$res=$orderGoodsDao->find(array('order_id'=>$orderId,'refund_id'=>ApiConst::zero));
if(empty($res)){
$orderDao->update(array('order_id'=>$orderId),array('order_state'=>ApiConst::orderStateClose));
$orderIds = array_column($storeMemberStatisticData, 'orderId');
foreach ($orderIds as $orderId) {
$res = $orderGoodsDao->find(array('order_id' => $orderId, 'refund_id' => ApiConst::zero));
if (empty($res)) {
$orderDao->update(array('order_id' => $orderId), array('order_state' => ApiConst::orderStateClose));
}
}
}
......
......@@ -12,7 +12,7 @@
用户登录状态key:<input name="data[key]" value="ceb72deab920ac0edb7272b2ed9dfa1e"/><br />
订单状态id:<input name="data[orderState]" value=""/><br />
订单号:<input name="data[keyword]" value="400"/><br />
keyword:<input name="data[keyword]" value="400"/><br />
<p id="img_area"></p>
<input type="submit" value="提交">
</form>
......
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