getPayOrderNumbers(); $pay_people_numbers = $obj->getPayPeopleNumbers(); $real_pay_amounts = $obj->getRealPayAmounts(); $not_settle_amounts = $obj->getNotSettleAmounts(); // $settle_amounts = $obj->getSettleAmounts(); $key = HappinessEnum::STORE_REAL_PAY_AMOUNTS . ':' . $mall['id']; Yii::$app->redis->set($key, $real_pay_amounts);//实收金额 $key = HappinessEnum::STORE_NOT_SETTLE_AMOUNTS . ':' . $mall['id']; Yii::$app->redis->set($key, $not_settle_amounts);//待结算 // $key = HappinessEnum::STORE_SETTLE_AMOUNTS . ':' . $mall['id']; // Yii::$app->redis->set($key, $settle_amounts);//给会员的佣金 $key = HappinessEnum::STORE_PAY_ORDER_NUMBERS . ':' . $mall['id']; Yii::$app->redis->set($key, $pay_order_numbers);//支付订单数 $key = HappinessEnum::STORE_PAY_PEOPLE_NUMBERS . ':' . $mall['id']; Yii::$app->redis->set($key, $pay_people_numbers);//支付人数 $page = 1; $limit = 200; $query_com = HappinessStoreCommission::find()->where(['mall_id' => $mall['id'], 'status' => StatusEnum::ENABLED]); $key = HappinessEnum::STORE_PAY_PEOPLE_NUMBERS_SET . ':' . $mall['id']; do { $offset = ($page - 1) * $limit; $page++; $commissions = $query_com->limit($limit)->offset($offset)->all(); if (!empty($commissions)) { foreach ($commissions as $commission) { Yii::$app->redis->setbit($key, $commission['user_id'], 1); } } } while ($commissions); } return ExitCode::OK; } catch (\Exception $e) { \Yii::getLogger()->flush(true); return false; } } /** * 统计实时概况-昨天数据 **/ public function actionYesterdayIndex() { try { $yesterday = date('Y-m-d',strtotime("-1 days")); $time_nodes = DateHelper::yesterDay(); $malls = Mall::getEnableMallList(); foreach ($malls as $mall) { $obj = new StoreCensus($mall['id'], $time_nodes['start'], $time_nodes['end']); $yesterday_pay_order_numbers = $obj->getPayOrderNumbers(); $yesterday_pay_people_numbers = $obj->getPayPeopleNumbers(); $yesterday_real_pay_amounts = $obj->getRealPayAmounts(); $yesterday_not_settle_amounts = $obj->getNotSettleAmounts(); // $yesterday_settle_amounts = $obj->getSettleAmounts(); list($yesterday_waiting_audit_withdraw_amounts, $yesterday_waiting_pay_withdraw_amounts) = $obj->getWithdrawData(); // $yesterday_waiting_audit_store_numbers = $obj->getWaitingAuditStoreNumbers(); $data = [ 'yesterday_pay_order_numbers' => $yesterday_pay_order_numbers, 'yesterday_pay_people_numbers' => $yesterday_pay_people_numbers, 'yesterday_real_pay_amounts' => $yesterday_real_pay_amounts, 'yesterday_not_settle_amounts' => $yesterday_not_settle_amounts, // 'yesterday_settle_amounts' => $yesterday_settle_amounts, 'yesterday_waiting_audit_withdraw_amounts' => $yesterday_waiting_audit_withdraw_amounts, 'yesterday_waiting_pay_withdraw_amounts' => $yesterday_waiting_pay_withdraw_amounts, // 'yesterday_waiting_audit_store_numbers' => $yesterday_waiting_audit_store_numbers, ]; $key = StoreEnum::STORE_GLOBAL_STATISTICS_YESTERDAY . ':' . $mall['id'].':'.$yesterday; \Yii::$app->redis->set($key, json_encode($data)); } return ExitCode::OK; } catch (\Exception $e) { \Yii::getLogger()->flush(true); return false; } } //统计商品销量 public function actionSetGoodsRanking() { $malls = Mall::getEnableMallList(); foreach ($malls as $mall) { $mall_id = $mall['id']; //获取门店订单数据 $order_list = HappinessOrder::lists([ 'alias' => 'yo', 'where' => [ ['o.mall_id' => $mall_id], ['>=', 'o.status', StatusEnum::DISABLED], ['>', 'yo.store_id', 0], ['o.order_status' => [1,2,3,4,6]] ], 'with' => ['detail'], 'join' => [['LEFT JOIN', Order::tableName(). ' as o', "o.id = yo.order_id"]], 'select' => 'o.*,yo.store_id', ]); // print_r($order_list);exit; $ranking_data = []; if (!empty($order_list)) { foreach ($order_list as $key => $value) { $ranking_data[$value['store_id']]; foreach ($value['detail'] as $k => $val) { if (empty($ranking_data[$value['store_id']][$val['goods_id']])) { $ranking_data[$value['store_id']][$val['goods_id']] = [ 'store_id' => $value['store_id'], 'mall_id' => $mall_id, 'goods_id' => $val['goods_id'], 'sales_money' => $val['goods_price'], ]; } else { $ranking_data[$value['store_id']][$val['goods_id']]['sales_money'] += $val['goods_price']; } } } } if (!empty($ranking_data)) { //记录数据 foreach ($ranking_data as $rk => $rv) { foreach ($rv as &$item) { // print_r($item);exit; //查找是否已存在该商品数据 $goods_ranking = HappinessGoodsRanking::getOne([ ['mall_id' => $mall_id], ['store_id' => $item['store_id']], ['goods_id' => $item['goods_id']], ]); if (empty($goods_ranking)) { $goods_ranking = new HappinessGoodsRanking(); $goods_ranking->mall_id = $mall_id; $goods_ranking->store_id = $item['store_id']; $goods_ranking->goods_id = $item['goods_id']; $goods_ranking->loadDefaultValues(); } $goods_ranking->sales_money = $item['sales_money']; // $res = $goods_ranking->save(); if (!$goods_ranking->save()) { // print_r($item);exit; print_r($goods_ranking); continue; } } } } } } //统计商品销量 public function actionSetStoreUser() { $malls = Mall::getEnableMallList(); foreach ($malls as $mall) { $mall_id = $mall['id']; //获取门店订单数据 $order_list = HappinessOrder::lists([ 'alias' => 'yo', 'where' => [ ['o.mall_id' => $mall_id], ['>=', 'o.status', StatusEnum::DISABLED], ['>', 'yo.store_id', 0], ['o.order_status' => [-4,1,2,3,4,6]] ], 'with' => ['detail'], 'join' => [['LEFT JOIN', Order::tableName(). ' as o', "o.id = yo.order_id"]], 'select' => 'o.*,yo.store_id', ]); // print_r($order_list);exit; $ranking_data = []; if (!empty($order_list)) { foreach ($order_list as $key => $value) { $ranking_data[$value['store_id']]; if (empty($ranking_data[$value['store_id']][$value['user_id']])) { $ranking_data[$value['store_id']][$value['user_id']] = [ 'store_id' => $value['store_id'], 'mall_id' => $mall_id, 'user_id' => $value['user_id'], 'order_nums' => 0, 'pay_nums' => 0, 'pay_money' => 0, 'refund_nums' => 0, 'refund_money' => 0, ]; if ($value['order_status'] == -4 && $value['is_feedback'] == 2) { $ranking_data[$value['store_id']][$value['user_id']]['order_nums'] = 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_nums'] = 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_money'] = $value['pay_money']; $ranking_data[$value['store_id']][$value['user_id']]['refund_nums'] = 1; $ranking_data[$value['store_id']][$value['user_id']]['refund_money'] = $value['pay_money']; } else if ($value['order_status'] >= 1) { $ranking_data[$value['store_id']][$value['user_id']]['order_nums'] = 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_nums'] = 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_money'] = $value['pay_money']; } } else { if ($value['order_status'] == -4 && $value['is_feedback'] == 2) { $ranking_data[$value['store_id']][$value['user_id']]['order_nums'] += 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_nums'] += 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_money'] += $value['pay_money']; $ranking_data[$value['store_id']][$value['user_id']]['refund_nums'] += 1; $ranking_data[$value['store_id']][$value['user_id']]['refund_money'] += $value['pay_money']; } else if ($value['order_status'] >= 1) { $ranking_data[$value['store_id']][$value['user_id']]['order_nums'] += 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_nums'] += 1; $ranking_data[$value['store_id']][$value['user_id']]['pay_money'] += $value['pay_money']; } } } } if (!empty($ranking_data)) { //记录数据 foreach ($ranking_data as $rk => $rv) { foreach ($rv as &$item) { if ($item['order_nums'] == 0 && $item['pay_nums'] == 0) continue; // print_r($item);exit; //查找是否已存在该商品数据 $store_user = HappinessStoreUser::getOne([ ['mall_id' => $mall_id], ['store_id' => $item['store_id']], ['user_id' => $item['user_id']], ]); if (empty($store_user)) { $store_user = new HappinessStoreUser(); $store_user->mall_id = $mall_id; $store_user->store_id = $item['store_id']; $store_user->user_id = $item['user_id']; $store_user->loadDefaultValues(); } $store_user->order_nums = $item['order_nums']; $store_user->pay_nums = $item['pay_nums']; $store_user->pay_money = $item['pay_money']; $store_user->refund_nums = $item['refund_nums']; $store_user->refund_money = $item['refund_money']; // $res = $store_user->save(); if (!$store_user->save()) { // print_r($item);exit; print_r($store_user);exit; continue; } } } echo true; } } } }