feat(admin): 报名表导入补列名别名 + 只导参赛选手 + 判重口径(R32)
- COLUMN_ALIAS/pick():兼容上游列名(身份证号码/全名/队伍ID),上游导出表免改表头 - 只导身份=参赛选手:其余计入 result.ignored/ignoredBy(≠skipped),建团队同步过滤 - 判重改以身份证号为准(同证即同人);错误消息附「队伍/姓名/手机号」便于同名定位 - 修 teamUidCache 复用库内团队时写入 maxTeamUid 而非真实 uid 的 bug - phone 空值写 ''(列 NOT NULL) - 实测:1225 行 -> 成功 591 / 跳过 3(身份证非18位)/ 忽略 631 / 建队 297
This commit is contained in:
@@ -170,7 +170,9 @@ class AdminController extends Controller {
|
||||
// 清理临时文件
|
||||
try { fs.unlinkSync(tempFilePath); } catch (e) { /* ignore */ }
|
||||
|
||||
ctx.body = ctx.helper.success(result, `导入完成:成功 ${result.imported} 条,跳过 ${result.skipped} 条`);
|
||||
// 非参赛选手行按业务规则主动忽略(报名表含报名人/指导教师/领队),在提示中单列以免被误读为失败
|
||||
const ignoredTip = result.ignored ? `,忽略非参赛选手 ${result.ignored} 条` : '';
|
||||
ctx.body = ctx.helper.success(result, `导入完成:成功 ${result.imported} 条,跳过 ${result.skipped} 条${ignoredTip}`);
|
||||
} catch (err) {
|
||||
ctx.logger.error('Excel 导入失败:', err);
|
||||
const msg = (err && err.message) ? err.message : '未知错误';
|
||||
|
||||
Reference in New Issue
Block a user