| 12:47:47.798 | trace | yii\base\Application::bootstrap | Bootstrap with yii\log\Dispatcher |
| 12:47:47.799 | trace | yii\base\Module::getModule | Loading module: debug |
| 12:47:47.799 | trace | yii\base\Application::bootstrap | Bootstrap with yii\debug\Module::bootstrap() |
| 12:47:47.799 | trace | yii\redis\Connection::open | Opening redis DB connection: redis.server.local:6379, database=1 |
| 12:47:47.799 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SELECT |
| 12:47:47.799 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.800 | info | time tracing start | 1780289267800275968 |
| 12:47:47.800 | trace | yii\web\UrlManager::parseRequest | No matching URL rules. Using default URL parsing logic. |
| 12:47:47.800 | trace | yii\web\Application::handleRequest | Route requested: 'vue/pre-sales/list' |
| 12:47:47.800 | trace | yii\base\Module::getModule | Loading module: vue |
| 12:47:47.800 | info | yii\web\Session::open | Session started |
| 12:47:47.801 | info | yii\db\Command::query | SELECT * FROM "global"."vw_user_login" WHERE "id"=5064 |
| 12:47:47.801 | info | yii\db\Connection::open | Opening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta |
| 12:47:47.802 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.802 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 12:47:47.802 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.803 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 12:47:47.803 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=5064 |
| 12:47:47.803 | trace | yii\base\Controller::runAction | Route to run: vue/pre-sales/list |
| 12:47:47.804 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.805 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
| 12:47:47.805 | trace | yii\base\InlineAction::runWithParams | Running action: app\modules\vue\controllers\PreSalesController::actionList() |
| 12:47:47.805 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_cases" WHERE "id"='9260' |
| 12:47:47.805 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.805 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 12:47:47.805 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.805 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 12:47:47.806 | info | yii\db\Command::query | SELECT COUNT(*) FROM (SELECT
p.*,
p.end_at - p.start_at AS hours_spent
FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id WHERE "case_id"=9260 GROUP BY "p"."id" ORDER BY "is_draft" DESC, "p"."has_following_work" DESC, "p"."end_at" DESC) "c" |
| 12:47:47.807 | info | yii\db\Command::query | SELECT
p.*,
p.end_at - p.start_at AS hours_spent
FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id WHERE "case_id"=9260 GROUP BY "p"."id" ORDER BY "is_draft" DESC, "p"."has_following_work" DESC, "p"."end_at" DESC LIMIT 20 |
| 12:47:47.809 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "logo", "sales_rep" FROM "a57be577deb434"."tbl_clients" WHERE "id"=3311 |
| 12:47:47.809 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001 |
| 12:47:47.810 | info | yii\db\Command::query | SELECT "id", "case_status", "client_id", "project_id" FROM "a57be577deb434"."tbl_cases" WHERE "id"=9260 |
| 12:47:47.810 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_clients" WHERE "id"=3311 |
| 12:47:47.810 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "project_title" AS "name" FROM "a57be577deb434"."tbl_projects" WHERE "id"=4173 |
| 12:47:47.811 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=3311 |
| 12:47:47.812 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001 |
| 12:47:47.812 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=5064 |
| 12:47:47.812 | info | yii\db\Command::query | SELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=5064) |
| 12:47:47.813 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=5064 |
| 12:47:47.813 | info | yii\db\Command::query | SELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=5064) |
| 12:47:47.813 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_departments" WHERE "id"=10 |
| 12:47:47.814 | info | yii\db\Command::query | SELECT *, "product_type_id" AS "key", "description" AS "value" FROM "a57be577deb434"."tbl_pre_sales_product_types" WHERE "pre_sales_id"=1945 |
| 12:47:47.816 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_contact_attend_pre_sales" WHERE "pre_sales_id"=1945 |
| 12:47:47.816 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_contacts" WHERE "id"=5903 |
| 12:47:47.817 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=4) AND ("object_id"=1945) |
| 12:47:47.819 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=23) AND ("object_id"=1945) |
| 12:47:47.821 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_services" WHERE "id"=273 |
| 12:47:47.822 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_product_brands" WHERE "id"=33 |
| 12:47:47.822 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "title" AS "name" FROM "a57be577deb434"."tbl_service_type" WHERE "id"=9 |
| 12:47:47.823 | info | yii\db\Command::query | SELECT "object_id", count(*) as comment FROM "a57be577deb434"."tbl_comments" WHERE ("object_type"=4) AND ("object_id"=1945) GROUP BY "object_id" |
| 12:47:47.845 | info | yii\db\Command::query | SELECT "object_id", count(*) AS unread FROM "a57be577deb434"."tbl_unread_comments" WHERE ("object_type"=4) AND (remind_user_id = 5064 AND is_read = false) AND ("object_id"=1945) GROUP BY "object_id" |
| 12:47:47.864 | info | yii\db\Command::query | SELECT "pre_sales_id", sum(amount) as count FROM "a57be577deb434"."tbl_reimbursements" WHERE ("status" IN (1, 2, 3)) AND ("pre_sales_id"=1945) GROUP BY "pre_sales_id" |
| 12:47:47.866 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: updateTicket |
| 12:47:47.866 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 12:47:47.866 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 12:47:47.866 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 12:47:47.866 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Engineer |
| 12:47:47.866 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.866 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.867 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: createTicket |
| 12:47:47.867 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 12:47:47.867 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 12:47:47.867 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: 电话销售 |
| 12:47:47.867 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 12:47:47.867 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Engineer |
| 12:47:47.867 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.868 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 12:47:47.868 | info | yii\db\Command::query | INSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "url", "request", "response", "php_error", "time", "duration") VALUES (200, 'a57be577deb434', 5064, 5, 'vue/pre-sales/list', '{"id":"9260","page":"1","web_access_token":"66P66ib-3t6D-JRCTEPzE250hI-J5OEu"}', '{"code":2000,"result":{"list":[{"id":1945,"client_id":3311,"start_at":"2026-06-01 00:00:00","description":"","client_concerns":"","pre_sales_assessment":"","engineer_id":5064,"created_by":5064,"created_at":"2026-06-01 12:47:46","updated_at":"2026-06-01 12:47:46","following_work_content":"","project_status":"","end_at":"2026-06-01 02:00:00","has_following_work":false,"location_id":"","is_draft":0,"case_id":9260,"service_id":273,"location_in_id":"","location_out_id":"","ticket_no":"PS260601001001","client_document_id":"","client_document_file":"","indistance":0,"outdistance":0,"hours_spent":"02:00:00","client":{"id":3311,"key":3311,"name":"\u5317\u4eac\u534e\u8fb0\u60a6\u79d1\u6280\u6709\u9650\u516c\u53f8","logo":"","sales_rep":1001,"salesRep":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda"}},"case":{"id":9260,"case_status":3,"client_id":3311,"project_id":4173,"client":{"id":3311,"key":3311,"name":"\u5317\u4eac\u534e\u8fb0\u60a6\u79d1\u6280\u6709\u9650\u516c\u53f8"},"project":{"id":4173,"key":4173,"name":"\u6d4b\u8bd5\u5de5\u5355\u4eba\u5de5\u6210\u672c\u95ee\u9898"}},"salesRep":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda"},"engineer":{"id":5064,"key":5064,"name":"\u59da\u96ea\u7eaf","sex":"F","avatar":{"id":38,"user_id":5064,"name":"\/files\/cdn\/a57be577deb434\/avatar\/5bec09dc-1f7a-3542-89a2-cedfefb3fded.png"}},"createdBy":{"id":5064,"key":5064,"name":"\u59da\u96ea\u7eaf","sex":"F","department_id":10,"avatar":{"id":38,"user_id":5064,"name":"\/files\/cdn\/a57be577deb434\/avatar\/5bec09dc-1f7a-3542-89a2-cedfefb3fded.png"},"department":{"id":10,"key":10,"name":"\u8f6f\u4ef6\u5f00\u53d1"}},"location":{},"locationIn":{},"locationOut":{},"preSalesProductTypes":[],"attendedContacts":[{"id":5903,"key":5903,"name":"\u547c\u7389\u946b"}],"attachmentRelationships":[],"files":[],"service":{"id":273,"serial_no":"FA01","title":"\u6280\u672f\u65b9\u6848-\u4e00\u7ea7\u6587\u6863","brand_id":33,"type_id":9,"points":150,"points_off_time":150,"points_holiday":150,"description":"\u6280\u672f\u65b9\u6848-\u6587\u6863","created_by":1013,"created_at":"2021-05-31 07:39:33","updated_at":"2026-04-23 16:32:29","is_delete":false,"sort":3,"is_stop":false,"brand":{"id":33,"key":33,"name":"Toast"},"type":{"id":9,"key":9,"name":"\u6280\u672f\u57f9\u8bad"}},"clientDocument":"","commentCount":{},"unreadComments":{},"reimbursementCount":{},"hours_spent_display":"2\u5c0f\u65f6","can_update":true,"can_delete":true,"can_complete":false,"can_create_reimbursement":true,"unread":0,"bgcolor":"#89c541"}],"can_create":true,"pagenation":{"totalcount":1,"thispage":1,"pagesize":20}},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0,"ip":"221.216.117.119","ua":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/148.0.0.0 Safari\/537.36"}', FALSE, '2026-06-01 12:47:47', 67924992) RETURNING "id" |
| 12:47:47.869 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 12:47:47.869 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SET |