Skip to main content

CRM Vấn đề

POST /issue/count - Đếm số lượng Issue

Query Parameters (body - Issue_IssueFilterDTO)

Param Type Operator Description
id IdFilter equal/in ID vấn đề
code StringFilter contains Mã vấn đề
creatorId IdFilter equal ID người tạo
issueStatusId IdFilter equal ID trạng thái vấn đề
customerTypeId IdFilter equal ID loại khách hàng
issueTypeId IdFilter equal ID loại vấn đề
createdAt DateFilter range Ngày tạo
ticketId IdFilter equal ID ticket liên quan
issueSourceId IdFilter equal ID nguồn vấn đề

POST /issue/list - Danh sách Issue (Master Table)

Response Fields - IssueDTO

Field Type Description
id long ID vấn đề
code string Mã vấn đề
title string Tiêu đề
description string Mô tả vấn đề
creatorId long? ID người tạo
creator AppUserDTO Người tạo
issueStatusId long ID trạng thái
issueStatus IssueStatusDTO Trạng thái
issueTypeId long? ID loại vấn đề
issueType IssueTypeDTO Loại vấn đề
issueSourceId long? ID nguồn vấn đề
issueSource IssueSourceDTO Nguồn vấn đề
customerId long? ID khách hàng
customer CustomerDTO Khách hàng
customerDraft string Tên KH nháp
phoneNumberDraft string SĐT nháp
dormitory string Khu nhà/ký túc xá
address string Địa chỉ
appUserId long ID nhân viên phụ trách
appUser AppUserDTO Nhân viên phụ trách
ticketId long? ID ticket liên quan
ticket TicketDTO Ticket liên quan
resolveContent string Nội dung giải quyết
completedAt datetime? Ngày hoàn thành
rowId guid Row ID
createdAt datetime Ngày tạo
updatedAt datetime Ngày cập nhật

Nested Objects

issueStatus - IssueStatusDTO

Field Type Description
id long ID trạng thái
code string Mã trạng thái
name string Tên trạng thái (mới/đang xử lý/hoàn thành)

issueType - IssueTypeDTO

Field Type Description
id long ID loại vấn đề
code string Mã loại
name string Tên loại vấn đề

issueSource - IssueSourceDTO

Field Type Description
id long ID nguồn vấn đề
code string Mã nguồn
name string Tên nguồn (CRM/IOT/Email/...)

creator - AppUserDTO

Field Type Description
id long ID nhân viên
displayName string Tên hiển thị
username string Tên đăng nhập
email string Email
phone string Số điện thoại
organizationId long ID đơn vị
organization OrganizationDTO Đơn vị (Name)

customer - CustomerDTO

Field Type Description
id long ID khách hàng
code string Mã khách hàng
name string Tên khách hàng
phone string Số điện thoại
email string Email
address string Địa chỉ
customerTypeId long ID loại khách hàng
customerType CustomerTypeDTO Loại khách hàng
nation NationDTO Quốc gia
province ProvinceDTO Tỉnh/thành
district DistrictDTO Quận/huyện
statusId long Trạng thái
status StatusDTO Trạng thái
organizationId long ID đơn vị
appUser AppUserDTO Nhân viên phụ trách
customerEmails List<CustomerEmailDTO> Danh sách email
customerPhones List<CustomerPhoneDTO> Danh sách số điện thoại
rowId guid Row ID
createdAt datetime Ngày tạo
updatedAt datetime Ngày cập nhật

ticket - TicketDTO (issue context - rút gọn)

Field Type Description
id long ID ticket
code string Mã ticket
name string Tên ticket
ticketStatusId long ID trạng thái ticket
ticketStatus TicketStatusDTO Trạng thái ticket

issueFileMappings - List<IssueFileMappingDTO>

Field Type Description
issueId long ID vấn đề
fileId long ID file
file FileDTO File đính kèm

issueHistories - List<IssueHistoryDTO>

Field Type Description
id long ID lịch sử
issueId long ID vấn đề
appUserId long? ID nhân viên
issueStatusId long ID trạng thái
actionName string Tên hành động
time datetime Thời gian
appUser AppUserDTO Nhân viên thực hiện
issueStatus IssueStatusDTO Trạng thái tại thời điểm đó

POST /issue/get - Chi tiết Issue

Trả về đầy đủ IssueDTO + tất cả nested objects (bao gồm issueHistories và issueFileMappings chi tiết).


POST /issue/create /update /delete - CRUD

Body là Issue_IssueDTO.


POST /issue/create-outside - Tạo Issue từ bên ngoài

Field Type Description
title string Tiêu đề
description string Mô tả vấn đề
issueStatusId long ID trạng thái
issueTypeId long? ID loại vấn đề
customerId long? ID khách hàng
customerDraft string Tên KH nháp
phoneNumberDraft string SĐT nháp

Nếu có customerId thì không cần customerDraft và phoneNumberDraft


POST /issue/processing - Chuyển sang "Đang xử lý"

Chuyển trạng thái issue sang PROCESSING. Body là Issue_IssueDTO.


POST /issue/done - Chuyển sang "Hoàn thành"

Chuyển trạng thái issue sang DONE. Body là Issue_IssueDTO.


POST /issue/get-history - Lịch sử thay đổi

// Request: { "id": 0 }

Trả về IssueHistoryDTO chi tiết.


POST /issue/list-issue-history - Danh sách lịch sử Issue

Request Body

Field Type Description
issueId IdFilter ID vấn đề (lọc chính xác)
time DateFilter Khoảng thời gian

Trả về List<IssueHistoryDTO>.


POST /issue/count-issue-history - Đếm lịch sử Issue

Tương tự filter như list-issue-history. Trả về int.


POST /issue/export - Export Excel

Xuất danh sách issue ra file Excel. Sử dụng template Templates/Issue_Export.xlsx.


POST /issue/export-template - Download template Excel

Tải về file template Excel Templates/Issue_Template.xlsx dùng để import.


POST /issue/upload-file - Upload file đính kèm

POST /rpc/crm/issue/upload-file
Content-Type: multipart/form-data

Upload 1 file. Trả về Issue_FileDTO.


POST /issue/multi-upload - Upload nhiều file

POST /rpc/crm/issue/multi-upload
Content-Type: multipart/form-data

Upload nhiều file. Trả về List<Issue_FileDTO>.


GET /issue/filter-list-{type} - Danh sách filter (FilterList)

Endpoint Mô tả
filter-list-customer-type Loại khách hàng
filter-list-issue-type Loại vấn đề
filter-list-app-user Nhân viên
filter-list-contact Liên hệ
filter-list-customer Khách hàng
filter-list-issue-status Trạng thái vấn đề
filter-list-issue-source Nguồn vấn đề

GET /issue/single-list-{type} - Danh sách đơn lẻ (SingleList)

Endpoint Mô tả
single-list-customer-type Loại khách hàng
single-list-contact Liên hệ
single-list-customer Khách hàng
single-list-issue-type Loại vấn đề

IOTIssue - API tích hợp IOT

POST /iot-issue/create - Tạo Issue từ IOT

Body là Issue_IssueDTO. Tự động xử lý file mappings.

POST /iot-issue/update - Cập nhật Issue từ IOT

Body là Issue_IssueDTO. Tự động xử lý file mappings.