15:58:37.208 | trace | yii\base\Application::bootstrap | Bootstrap with yii\log\Dispatcher |
15:58:37.208 | trace | yii\base\Module::getModule | Loading module: debug |
15:58:37.209 | trace | yii\base\Application::bootstrap | Bootstrap with yii\debug\Module::bootstrap() |
15:58:37.209 | trace | yii\redis\Connection::open | Opening redis DB connection: redis.server.local:6379, database=1 |
15:58:37.209 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SELECT |
15:58:37.209 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.209 | trace | yii\base\Module::getModule | Loading module: gii |
15:58:37.209 | trace | yii\base\Application::bootstrap | Bootstrap with yii\gii\Module::bootstrap() |
15:58:37.209 | trace | yii\web\UrlManager::parseRequest | No matching URL rules. Using default URL parsing logic. |
15:58:37.209 | trace | yii\web\Application::handleRequest | Route requested: 'vue/analysis/pre-sales-counts' |
15:58:37.209 | trace | yii\base\Module::getModule | Loading module: vue |
15:58:37.210 | info | yii\web\Session::open | Session started |
15:58:37.211 | info | yii\db\Command::query | SELECT * FROM "global"."vw_user_login" WHERE "id"=1001 |
15:58:37.211 | info | yii\db\Connection::open | Opening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta |
15:58:37.215 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.215 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.215 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.216 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.216 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1001 |
15:58:37.217 | trace | yii\base\Controller::runAction | Route to run: vue/analysis/pre-sales-counts |
15:58:37.218 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.219 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
15:58:37.219 | trace | yii\base\InlineAction::runWithParams | Running action: app\modules\vue\controllers\AnalysisController::actionPreSalesCounts() |
15:58:37.219 | info | yii\db\Command::query | SELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[2025-08-01 00:00:00, 2025-08-31 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
15:58:37.221 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.221 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.221 | info | yii\db\Command::query | SELECT "id" FROM "a57be577deb434"."tbl_users" WHERE "id" IN (1017, 5085, 5248, 1015, 1022, 1023) ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
15:58:37.221 | info | yii\db\Command::query | SELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250801 00:00:00, 20250831 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
15:58:37.222 | info | yii\db\Command::query | SELECT
sum(p.budget * p.profit_pct / 100 * sub.contribution) AS profits,
sum(p.budget * sub.contribution) AS currents,
count(p.id) AS projects
FROM "a57be577deb434"."tbl_projects" "p" LEFT JOIN (SELECT
pas.project_id,
sum(pas.contribution) AS contribution
FROM "a57be577deb434"."tbl_project_architects" "pas" WHERE ("pas"."engineer_id" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND ("pas"."engineer_id" IN (1017, 5085, 5248, 1015, 1022, 1023)) GROUP BY "pas"."project_id") "sub" ON p.id = sub.project_id WHERE ("p"."project_status"=3) AND (sub.contribution is not null) AND (p.bargain_date >= '20250801 00:00:00' AND p.bargain_date < timestamp '20250831 23:59:59' + interval '1 second') |
15:58:37.225 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.225 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.225 | info | yii\db\Command::query | SELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250801 00:00:00, 20250831 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
15:58:37.226 | info | yii\db\Command::query | SELECT
count(ps.id) AS times,
sum(ps.end_at - ps.start_at) AS hours,
avg(ps.end_at - ps.start_at) AS avg_hours
FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND ("ps"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND (ps.start_at >= '20250801 00:00:00' AND ps.start_at < timestamp '20250831 23:59:59' + interval '1 second') AND ("ps"."is_draft"=FALSE) |
15:58:37.228 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.228 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.228 | info | yii\db\Command::query | SELECT sum(ca.points) as points FROM "a57be577deb434"."tbl_case_assignments" "ca" LEFT JOIN (SELECT c.* FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN "a57be577deb434"."tbl_case_services" "cs" ON cs.case_id = c.id GROUP BY "c"."id") "c" ON ca.case_id = c.id WHERE ("c"."case_type"=1) AND ("c"."closed_at" >= '20250801 00:00:00') AND ("c"."closed_at" <= '20250831 23:59:59') AND ("ca"."engineer_id" IN (1017, 5085, 5248, 1015, 1022, 1023)) |
15:58:37.230 | info | yii\db\Command::query | SELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250801 00:00:00, 20250831 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
15:58:37.230 | info | yii\db\Command::query | SELECT
avg(ps.end_at - ps.start_at) AS avg_hours
FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND (ps.start_at >= '20250801 00:00:00' AND ps.start_at < timestamp '20250831 23:59:59' + interval '1 second') AND ("ps"."is_draft"=FALSE) |
15:58:37.231 | info | yii\db\Command::query | SELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250801 00:00:00, 20250831 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
15:58:37.232 | info | yii\db\Command::query | SELECT
count(c.id) AS new_contact
FROM "a57be577deb434"."tbl_contacts" "c" LEFT JOIN "a57be577deb434"."tbl_clients" "client" ON client.id = c.id WHERE ("c"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND ("c"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND (("c"."created_at" >= '20250801 00:00:00') AND ("c"."created_at" <= '20250831 23:59:59')) AND ("c"."contact_type"='1') |
15:58:37.234 | info | yii\db\Command::query | SELECT sum(ca.points) as points FROM "a57be577deb434"."tbl_case_assignments" "ca" LEFT JOIN (SELECT c.* FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN "a57be577deb434"."tbl_case_services" "cs" ON cs.case_id = c.id GROUP BY "c"."id") "c" ON ca.case_id = c.id WHERE ("c"."case_type"=1) AND ("c"."closed_at" >= '20250801 00:00:00') AND ("c"."closed_at" <= '20250831 23:59:59') AND ("ca"."engineer_id" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND (c.deduct_points_from is null) |
15:58:37.235 | info | yii\db\Command::query | SELECT
avg(satisfaction_score) AS s_score,
avg(skill_score) AS t_score FROM "a57be577deb434"."tbl_callback_records" "cr" LEFT JOIN (SELECT c.* FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN "a57be577deb434"."tbl_case_services" "cs" ON cs.case_id = c.id GROUP BY "c"."id") "c" ON cr.case_id = c.id WHERE ("c"."last_engineer" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND ("c"."case_type"=1) AND ("c"."case_status"=5) AND (satisfaction_score != 0 OR skill_score != 0) AND (cr.callback_date >= '20250801 00:00:00' AND cr.callback_date < timestamp '20250831 23:59:59' + interval '1 second') |
15:58:37.237 | info | yii\db\Command::query | SELECT product_type_id, name, count(it.id) as value FROM "a57be577deb434"."tbl_pre_sales_product_types" "it" WHERE "pre_sales_id" IN (SELECT "ps"."id" FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND (("ps"."created_at" >= '2025-08-01 00:00:00') AND ("ps"."created_at" <= '2025-08-31 23:59:59')) AND ("is_draft"=FALSE)) GROUP BY "product_type_id", "name" |
15:58:37.239 | info | yii\db\Command::query | SELECT "s"."id", "s"."title" AS "name", count(ps.id) as value FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_services" "s" ON ps.service_id = s.id LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by" IN (1017, 5085, 5248, 1015, 1022, 1023)) AND (("ps"."created_at" >= '2025-08-01 00:00:00') AND ("ps"."created_at" <= '2025-08-31 23:59:59')) AND ("is_draft"=FALSE) GROUP BY "s"."id" |
15:58:37.240 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.240 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.240 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_visit_module_histories" WHERE ("user_id"=1001) AND ("object_type"=23) AND ("visit_date"='2025-08-09') |
15:58:37.244 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.244 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:58:37.244 | info | yii\db\Command::execute | UPDATE "a57be577deb434"."tbl_visit_module_histories" SET "num"=52, "last_visit_at"='now()' WHERE "id"=54996 |
15:58:37.245 | info | yii\db\Command::query | INSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "url", "request", "response", "php_error", "time") VALUES (200, 'a57be577deb434', 1001, 5, 'vue/analysis/pre-sales-counts', '[]', '{"code":2000,"result":{"list":[{"name":"\u52a9\u653b\u6d41\u6c34","key":"journal_account_assisted","value":0,"unit":"\u5143","color":"#98c450","link":{}},{"name":"\u52a9\u653b\u5229\u6da6","key":"profit_assisted","value":0,"unit":"\u5143","color":"#98c450","link":{}},{"name":"\u552e\u524d\u6210\u4ea4\u5546\u673a\u6570","key":"success_pre_sales_times","value":0,"unit":"\u4e2a","color":"#98c450","link":{}},{"name":"\u552e\u524d\u7528\u65f6","key":"individual_pre_sales_time","value":0,"unit":"\u5c0f\u65f6","color":"#98c450","link":{}},{"name":"\u552e\u524d\u6b21\u6570","key":"pre_sales_times","value":0,"unit":"\u6b21","color":"#98c450","link":{}},{"name":"\u5de5\u5206","key":"gain_points","value":0,"unit":"\u5206","color":"#98c450","link":{}},{"name":"\u4e2a\u4eba\u5e73\u5747\u552e\u524d\u7528\u65f6","key":"average_pre_sales_time","value":0,"unit":"\u5c0f\u65f6\/\u6b21","color":"#98c450","link":{}},{"name":"\u56e2\u961f\u5e73\u5747\u552e\u524d\u7528\u65f6","key":"average_all_pre_sales_time","value":0,"unit":"\u5c0f\u65f6\/\u6b21","color":"#98c450","link":{}},{"name":"\u5e73\u5747\u5de5\u7a0b\u5e08\u6280\u80fd\u5f97\u5206","key":"average_skill_score","value":"0\/10","unit":"\u5206","color":"#98c450","link":{}},{"name":"\u6574\u4f53\u5e73\u5747\u6ee1\u610f\u5ea6\u5f97\u5206","key":"average_satisfaction_score","value":"0\/10","unit":"\u5206","color":"#98c450","link":{}},{"name":"\u65b0\u589e\u8054\u7cfb\u4eba","key":"new_contacts","value":0,"unit":"\u4e2a","color":"#98c450","link":{}},{"name":"\u670d\u52a1\u516c\u6d77\u5ba2\u6237\u5de5\u5206","key":"public_gain_points","value":0,"unit":"\u5206","color":"#98c450","link":{}}],"chart":[],"score":{},"serviceChart":[]},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0}', FALSE, '2025-08-09 15:58:37') RETURNING "id" |
15:58:37.246 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:58:37.247 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SET |