'ID', 'mall_id' => '商城ID', 'province_id' => '省份id', 'total_orders' => '订单量', 'total_pay_money' => '交易金额', 'status' => '状态[-1:删除;0:禁用;1启用;]', 'created_at' => '创建时间', 'updated_at' => '上次更新数据时间', ]; } public static function setData($params) { try { if (empty($params['mall_id'])&&empty($params['province_id'])) { return false; } $model = self::findOne(['mall_id' => $params['mall_id'],'province_id'=>$params['province_id'], 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]); if (empty($model)) { $model = new self(); $model->mall_id = $params['mall_id']; $model->province_id = $params['province_id']; $model->loadDefaultValues(); } if (!empty($params['total_orders'])) $model->total_orders += $params['total_orders']; if (!empty($params['total_pay_money'])) $model->total_pay_money += $params['total_pay_money']; if (!$model->save()) throw new \Exception($model->getErrorMessage()); return $model; } catch (\Exception $e) { self::$static_error = $e->getMessage(); return false; } } public static function getMallRegion($mall_id){ $redis = \Yii::$app->redis; $redis_key = RedisKeyEnum::suffix(RedisKeyEnum::CENSUS_MALL_REGION, '', true) . ':' . $mall_id; $region_list = Region::lists(['where'=>[['parent_id'=>1]],'select'=>'id,name','index'=>'id']); $field_arr = []; foreach ($region_list as $item){ $field_arr[]='total_pay_money_province_id_'.$item['id']; } $result = $redis->hmget($redis_key,...$field_arr); $list = []; foreach ($field_arr as $k=>$item){ $arr = explode('_',$item); $province_id = array_pop($arr); $list[] = [ 'parent_id'=>1, 'level'=>'province', 'name'=>$region_list[$province_id]['name']??'', 'province_id'=>$province_id, 'order_money'=>0, 'order_num'=>0, 'pay_num'=>0, 'pay_money'=>!empty($result[$k])?$result[$k]:0, ]; } return $list; } }