| 16:12:26.312 | trace | yii\base\Application::bootstrap | Bootstrap with yii\log\Dispatcher |
| 16:12:26.312 | trace | yii\base\Module::getModule | Loading module: debug |
| 16:12:26.313 | trace | yii\base\Application::bootstrap | Bootstrap with yii\debug\Module::bootstrap() |
| 16:12:26.313 | trace | yii\redis\Connection::open | Opening redis DB connection: redis.server.local:6379, database=1 |
| 16:12:26.313 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SELECT |
| 16:12:26.313 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.314 | info | time tracing start | 1784103146314277888 |
| 16:12:26.314 | trace | yii\web\UrlManager::parseRequest | No matching URL rules. Using default URL parsing logic. |
| 16:12:26.314 | trace | yii\web\Application::handleRequest | Route requested: 'v2/pre-sales/list' |
| 16:12:26.314 | trace | yii\base\Module::getModule | Loading module: v2 |
| 16:12:26.315 | info | yii\web\Session::open | Session started |
| 16:12:26.316 | info | yii\db\Connection::open | Opening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta |
| 16:12:26.316 | info | yii\db\Command::query | SELECT * FROM "global"."vw_user_login" WHERE "access_token"='Q_7DD5LA0njCol9o5skCibRkap3ZqeYZ' |
| 16:12:26.317 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.318 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 16:12:26.318 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.318 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 16:12:26.319 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1015 |
| 16:12:26.319 | trace | yii\base\Controller::runAction | Route to run: v2/pre-sales/list |
| 16:12:26.320 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: viewTicket |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: StoreKeeper |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 16:12:26.322 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Engineer |
| 16:12:26.322 | trace | yii\base\InlineAction::runWithParams | Running action: app\modules\v2\controllers\PreSalesController::actionList() |
| 16:12:26.322 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_cases" WHERE "id"='9245' |
| 16:12:26.322 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.323 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 16:12:26.323 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.323 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 16:12:26.324 | 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"=9245 GROUP BY "p"."id" ORDER BY "is_draft" DESC, "p"."has_following_work" DESC, "p"."end_at" DESC) "c" |
| 16:12:26.325 | 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"=9245 GROUP BY "p"."id" ORDER BY "is_draft" DESC, "p"."has_following_work" DESC, "p"."end_at" DESC LIMIT 10 |
| 16:12:26.327 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "logo", "sales_rep" FROM "a57be577deb434"."tbl_clients" WHERE "id"=2128 |
| 16:12:26.327 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_users" WHERE "id"=5087 |
| 16:12:26.328 | info | yii\db\Command::query | SELECT "id", "case_status", "client_id", "project_id" FROM "a57be577deb434"."tbl_cases" WHERE "id"=9245 |
| 16:12:26.328 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_clients" WHERE "id"=2128 |
| 16:12:26.329 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "project_title" AS "name" FROM "a57be577deb434"."tbl_projects" WHERE "id"=4132 |
| 16:12:26.329 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=2128 |
| 16:12:26.330 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_users" WHERE "id"=5087 |
| 16:12:26.330 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=1015 |
| 16:12:26.331 | 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"=1015) |
| 16:12:26.331 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1015 |
| 16:12:26.332 | 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"=1015) |
| 16:12:26.332 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_departments" WHERE "id"=2 |
| 16:12:26.333 | 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"=1940 |
| 16:12:26.333 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_contact_attend_pre_sales" WHERE "pre_sales_id"=1940 |
| 16:12:26.333 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_contacts" WHERE "id"=5835 |
| 16:12:26.334 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=4) AND ("object_id"=1940) |
| 16:12:26.354 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=23) AND ("object_id"=1940) |
| 16:12:26.358 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_services" WHERE "id"=230 |
| 16:12:26.359 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_product_brands" WHERE "id"=33 |
| 16:12:26.359 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "title" AS "name" FROM "a57be577deb434"."tbl_service_type" WHERE "id"=2 |
| 16:12:26.360 | info | yii\db\Command::query | SELECT "object_id", count(*) as comment FROM "a57be577deb434"."tbl_comments" WHERE ("object_type"=4) AND ("object_id"=1940) GROUP BY "object_id" |
| 16:12:26.382 | info | yii\db\Command::query | SELECT "object_id", count(*) AS unread FROM "a57be577deb434"."tbl_unread_comments" WHERE ("object_type"=4) AND (remind_user_id = 1015 AND is_read = false) AND ("object_id"=1940) GROUP BY "object_id" |
| 16:12:26.398 | 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"=1940) GROUP BY "pre_sales_id" |
| 16:12:26.400 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_reimbursements" WHERE "pre_sales_id"=1940 |
| 16:12:26.402 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: updateTicket |
| 16:12:26.402 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 16:12:26.402 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 16:12:26.402 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 16:12:26.402 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Engineer |
| 16:12:26.402 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.404 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: deleteTicket |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: GM |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: CommercialAttache |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Dispatcher |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: 电话销售 |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: createReimbursement |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: StoreKeeper |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Operator |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Engineer |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: createTicket |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: TechDirector |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: ProjectManager |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: SalesDirector |
| 16:12:26.405 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Engineer |
| 16:12:26.406 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 16:12:26.406 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 16:12:26.406 | info | yii\db\Command::query | INSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "version_code", "url", "request", "response", "php_error", "time", "duration") VALUES (200, 'a57be577deb434', 1015, 0, 276, 'v2/pre-sales/list', '{"access_token":"Q_7DD5LA0njCol9o5skCibRkap3ZqeYZ","device_type":"0","version_code":"276","id":"9245","page":"1","token":"0aaa063666f30f1db4d0207b5ad7f8ee","posttime":"1784103146"}', '{"code":200,"data":{"list":[{"id":1940,"client_id":2128,"start_at":"2026-04-07 13:00:00","description":"","client_concerns":"","pre_sales_assessment":"","engineer_id":1015,"created_by":1015,"created_at":"2026-04-07 16:13:53","updated_at":"2026-04-07 16:13:53","following_work_content":null,"project_status":null,"end_at":"2026-04-07 15:00:00","has_following_work":false,"location_id":null,"is_draft":0,"case_id":9245,"service_id":230,"location_in_id":null,"location_out_id":null,"ticket_no":"PS260325003001","client_document_id":null,"client_document_file":null,"indistance":999999999,"outdistance":999999999,"hours_spent":"02:00:00","client":{"id":2128,"key":2128,"name":"\u5317\u4eac\u79d1\u6280\u6709\u9650\u516c\u53f8","logo":null,"sales_rep":5087,"salesRep":{"id":5087,"key":5087,"name":"\u5218\u5fae"}},"case":{"id":9245,"case_status":3,"client_id":2128,"project_id":4132,"client":{"id":2128,"key":2128,"name":"\u5317\u4eac\u79d1\u6280\u6709\u9650\u516c\u53f8"},"project":{"id":4132,"key":4132,"name":"AI\u670d\u52a1\u5668\u91c7\u8d2d"}},"salesRep":{"id":5087,"key":5087,"name":"\u5218\u5fae"},"engineer":{"id":1015,"key":1015,"name":"\u5434\u660a","sex":"M","avatar":{"id":12,"user_id":1015,"name":"\/files\/cdn\/a57be577deb434\/avatar\/d69b398a-5951-36e9-a92e-992fe938db26.jpg"}},"createdBy":{"id":1015,"key":1015,"name":"\u5434\u660a","sex":"M","department_id":2,"avatar":{"id":12,"user_id":1015,"name":"\/files\/cdn\/a57be577deb434\/avatar\/d69b398a-5951-36e9-a92e-992fe938db26.jpg"},"department":{"id":2,"key":2,"name":"\u6280\u672f\u90e8"}},"location":null,"locationIn":null,"locationOut":null,"preSalesProductTypes":[],"attendedContacts":[{"id":5835,"key":5835,"name":"\u674e\u5965"}],"attachmentRelationships":[],"files":[],"service":{"id":230,"serial_no":"TOAST01","title":"\u54a8\u8be2\u670d\u52a1","brand_id":33,"type_id":2,"points":50,"points_off_time":50,"points_holiday":100,"description":"\u54a8\u8be2\u670d\u52a1","created_by":1001,"created_at":"2018-09-07 20:03:43","updated_at":"2022-01-04 14:34:32","is_delete":false,"sort":14,"is_stop":false,"brand":{"id":33,"key":33,"name":"Toast"},"type":{"id":2,"key":2,"name":"\u54a8\u8be2\u670d\u52a1"}},"clientDocument":null,"commentCount":{"object_id":1940,"comment":3},"unreadComments":null,"reimbursementCount":null,"reimbursements":[],"hours_spent_display":"2\u5c0f\u65f6","can_update":true,"can_delete":false,"can_complete":false,"can_create_reimbursement":true,"unread":0,"bgcolor":"#89c541","can_location_in":false,"can_location_out":false}],"pagenation":{"totalcount":1,"thispage":1,"pagesize":10},"can_create":true},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"ip":"39.156.194.178","ua":"jinchangxiao\/2.3.176 (HUAWEIVOG-AL00; Android 10)"}', FALSE, '2026-07-15 16:12:26', 92481024) RETURNING "id" |