新增涉疑交易明细查询导出并补充对手方证件信息
This commit is contained in:
@@ -50,3 +50,16 @@ export function getOverviewPersonAnalysisDetail(params) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function getOverviewSuspiciousTransactions(params) {
|
||||
return request({
|
||||
url: '/ccdi/project/overview/suspicious-transactions',
|
||||
method: 'get',
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
suspiciousType: params.suspiciousType,
|
||||
pageNum: params.pageNum,
|
||||
pageSize: params.pageSize
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -87,6 +87,37 @@ export const mockOverviewData = {
|
||||
],
|
||||
},
|
||||
riskDetails: {
|
||||
projectId: 1,
|
||||
suspiciousType: "ALL",
|
||||
total: 2,
|
||||
suspiciousTransactionList: [
|
||||
{
|
||||
bankStatementId: 1,
|
||||
trxDate: "2024-01-15 10:00:00",
|
||||
suspiciousPersonName: "孙七",
|
||||
relatedPersonName: "孙七",
|
||||
relatedStaffName: "孙七",
|
||||
relatedStaffCode: "809901",
|
||||
relationType: "本人",
|
||||
userMemo: "",
|
||||
cashType: "转账",
|
||||
displayAmount: 500000,
|
||||
actionLabel: "查看详情",
|
||||
},
|
||||
{
|
||||
bankStatementId: 2,
|
||||
trxDate: "2024-01-10 09:20:00",
|
||||
suspiciousPersonName: "王五",
|
||||
relatedPersonName: "孙七",
|
||||
relatedStaffName: "孙七",
|
||||
relatedStaffCode: "809901",
|
||||
relationType: "配偶",
|
||||
userMemo: "零钱商户消费",
|
||||
cashType: "",
|
||||
displayAmount: -200000,
|
||||
actionLabel: "查看详情",
|
||||
},
|
||||
],
|
||||
transactionList: [
|
||||
{
|
||||
tradeDate: "2024-01-15",
|
||||
@@ -351,7 +382,17 @@ function normalizeRiskModelCards(cardList) {
|
||||
}));
|
||||
}
|
||||
|
||||
export function createOverviewLoadedData({ projectId, dashboardData, riskPeopleData, riskModelCardsData } = {}) {
|
||||
function normalizeSuspiciousTransactions(rows) {
|
||||
if (!Array.isArray(rows)) {
|
||||
return [];
|
||||
}
|
||||
return rows.map((item) => ({
|
||||
...item,
|
||||
actionLabel: item.actionLabel || "查看详情",
|
||||
}));
|
||||
}
|
||||
|
||||
export function createOverviewLoadedData({ projectId, dashboardData, riskPeopleData, riskModelCardsData, suspiciousData } = {}) {
|
||||
return {
|
||||
...mockOverviewData,
|
||||
summary: {
|
||||
@@ -373,6 +414,15 @@ export function createOverviewLoadedData({ projectId, dashboardData, riskPeopleD
|
||||
peopleList: [],
|
||||
total: 0,
|
||||
},
|
||||
riskDetails: {
|
||||
...mockOverviewData.riskDetails,
|
||||
projectId,
|
||||
suspiciousTransactionList: normalizeSuspiciousTransactions(suspiciousData && suspiciousData.rows),
|
||||
suspiciousType: "ALL",
|
||||
total: suspiciousData && suspiciousData.total ? suspiciousData.total : 0,
|
||||
transactionList: normalizeSuspiciousTransactions(suspiciousData && suspiciousData.rows),
|
||||
abnormalAccountList: [],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -395,6 +445,9 @@ export const mockOverviewStateData = {
|
||||
peopleList: [],
|
||||
},
|
||||
riskDetails: {
|
||||
suspiciousTransactionList: [],
|
||||
suspiciousType: "ALL",
|
||||
total: 0,
|
||||
transactionList: [],
|
||||
abnormalAccountList: [],
|
||||
},
|
||||
|
||||
@@ -16,6 +16,13 @@ const detail = fs.readFileSync(
|
||||
),
|
||||
"utf8"
|
||||
);
|
||||
const preliminaryCheck = fs.readFileSync(
|
||||
path.resolve(
|
||||
__dirname,
|
||||
"../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue"
|
||||
),
|
||||
"utf8"
|
||||
);
|
||||
|
||||
["风险模型", "命中模型涉及人员", "员工姓名或工号", "异常标签"].forEach((token) =>
|
||||
assert(model.includes(token), token)
|
||||
@@ -26,6 +33,9 @@ const detail = fs.readFileSync(
|
||||
["部门", "请选择部门", "查询", "重置", "selectedModelText"].forEach((token) =>
|
||||
assert(model.includes(token), token)
|
||||
);
|
||||
["风险明细", "涉险交易明细", "异常账户人员信息", "查看详情"].forEach((token) =>
|
||||
["风险明细", "涉疑交易明细", "异常账户人员信息", "查看详情"].forEach((token) =>
|
||||
assert(detail.includes(token), token)
|
||||
);
|
||||
["getOverviewSuspiciousTransactions", "riskDetails"].forEach((token) =>
|
||||
assert(preliminaryCheck.includes(token), token)
|
||||
);
|
||||
|
||||
@@ -12,10 +12,12 @@ const source = fs.readFileSync(
|
||||
"getOverviewRiskPeople",
|
||||
"getOverviewRiskModelCards",
|
||||
"getOverviewRiskModelPeople",
|
||||
"getOverviewSuspiciousTransactions",
|
||||
"/ccdi/project/overview/dashboard",
|
||||
"/ccdi/project/overview/risk-people",
|
||||
"/ccdi/project/overview/risk-models/cards",
|
||||
"/ccdi/project/overview/risk-models/people",
|
||||
"/ccdi/project/overview/suspicious-transactions",
|
||||
].forEach((token) => assert(source.includes(token), token));
|
||||
|
||||
[
|
||||
@@ -39,6 +41,19 @@ assert(riskModelPeopleFn, "应保留模型人员接口参数透传逻辑");
|
||||
"pageSize: params.pageSize",
|
||||
].forEach((token) => assert(riskModelPeopleFn[0].includes(token), token));
|
||||
|
||||
const suspiciousTransactionsFn = source.match(
|
||||
/export function getOverviewSuspiciousTransactions\(params\) \{[\s\S]*?params:\s*\{([\s\S]*?)\}\s*\}\s*\)/m
|
||||
);
|
||||
|
||||
assert(suspiciousTransactionsFn, "应新增涉疑交易接口参数透传逻辑");
|
||||
|
||||
[
|
||||
"projectId: params.projectId",
|
||||
"suspiciousType: params.suspiciousType",
|
||||
"pageNum: params.pageNum",
|
||||
"pageSize: params.pageSize",
|
||||
].forEach((token) => assert(suspiciousTransactionsFn[0].includes(token), token));
|
||||
|
||||
["employeeResult", "resultTable", "overview/result"].forEach((token) =>
|
||||
assert(!source.includes(token), `前端 API 契约不应感知结果表实现:${token}`)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user