|
@ -9,20 +9,53 @@ async function bindAnxin2pep (ctx) { |
|
|
const { userId, pepUserId } = ctx.fs.api |
|
|
const { userId, pepUserId } = ctx.fs.api |
|
|
const { bindId, name, pepProjectId, anxinProjectId = [], appId = [] } = ctx.request.body |
|
|
const { bindId, name, pepProjectId, anxinProjectId = [], appId = [] } = ctx.request.body |
|
|
|
|
|
|
|
|
if(name && pepProjectId){ |
|
|
if (name && pepProjectId) { |
|
|
throw '项企项目与自定义项目名称仅可选择一项' |
|
|
throw '项企项目与自定义项目名称仅可选择一项' |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
let bindId_ = bindId |
|
|
let bindId_ = bindId |
|
|
const now = moment() |
|
|
const now = moment() |
|
|
const existRes = await models.ProjectCorrelation.findOne({ |
|
|
// 仅限已有 pepProjectId 的项目
|
|
|
where: { |
|
|
const existRes = pepProjectId ? await models.ProjectCorrelation.findOne({ |
|
|
pepProjectId: pepProjectId |
|
|
where: Object.assign( |
|
|
}, |
|
|
{}, |
|
|
include: { |
|
|
pepProjectId ? { |
|
|
model: models.ProjectApp |
|
|
pepProjectId: pepProjectId |
|
|
|
|
|
} : { |
|
|
|
|
|
name, |
|
|
|
|
|
} |
|
|
|
|
|
), |
|
|
|
|
|
}) : null |
|
|
|
|
|
|
|
|
|
|
|
if (name) { |
|
|
|
|
|
const pepRepeatNameCount = await clickHouse.projectManage.query(`SELECT COUNT(*) AS count FROM t_pim_project WHERE project_name='${name}'`).toPromise() |
|
|
|
|
|
if (pepRepeatNameCount[0].count) { |
|
|
|
|
|
throw `已有相同名称【${name}】的项企项目` |
|
|
} |
|
|
} |
|
|
}) |
|
|
const pomsRepeatNameRes = await models.ProjectCorrelation.findAll({ |
|
|
|
|
|
where: { |
|
|
|
|
|
name |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
if (pomsRepeatNameRes.some((pr) => { |
|
|
|
|
|
return ( |
|
|
|
|
|
( |
|
|
|
|
|
// 有修改id但是不等于当前修改id的
|
|
|
|
|
|
bindId && pr.id != bindId && !pr.del |
|
|
|
|
|
) || ( |
|
|
|
|
|
!bindId && ( |
|
|
|
|
|
( |
|
|
|
|
|
existRes && pr.id != existRes.id && !pr.del |
|
|
|
|
|
) || ( |
|
|
|
|
|
!existRes && !pr.del |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
})) { |
|
|
|
|
|
throw `已有相同名称【${name}】的自定义项目` |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
let storageData = { |
|
|
let storageData = { |
|
|
name, pepProjectId, anxinProjectId, |
|
|
name, pepProjectId, anxinProjectId, |
|
@ -31,12 +64,6 @@ async function bindAnxin2pep (ctx) { |
|
|
|
|
|
|
|
|
if (bindId) { |
|
|
if (bindId) { |
|
|
// 修改
|
|
|
// 修改
|
|
|
if (!existRes) { |
|
|
|
|
|
throw '尚无已绑定的项企项目' |
|
|
|
|
|
} |
|
|
|
|
|
if (name) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
await models.ProjectCorrelation.update(storageData, { |
|
|
await models.ProjectCorrelation.update(storageData, { |
|
|
where: { |
|
|
where: { |
|
|
pepProjectId: pepProjectId |
|
|
pepProjectId: pepProjectId |
|
|