This commit is contained in:
hongqiwei
2026-04-22 16:40:25 +08:00
parent 29ac954dd8
commit e93d91d2bc
2 changed files with 28 additions and 22 deletions
@@ -172,25 +172,35 @@ public class TeacherCongressInstitutionController {
@SaCheckPermission("tc.institution") @SaCheckPermission("tc.institution")
public Result userPageData(@Valid PageForm pageForm, String institutionId, String sessionId) { public Result userPageData(@Valid PageForm pageForm, String institutionId, String sessionId) {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
t1.id, t1.id,
t1.userId, t1.userId,
u.username, u.username,
u.loginname, u.loginname,
u.sex, u.sex,
u.mobile, u.mobile,
u.unitName, u.unitName,
t1.identity t1.identity
FROM FROM
teacher_congress_institution_user t1 -- 关键:这里先按 userId 去重,每个用户只保留一条
LEFT JOIN vw_user u ON u.id = t1.userId (SELECT * FROM teacher_congress_institution_user
$condition WHERE institutionId = @institutionId
ORDER BY FIELD(t1.identity,'主任','副主任','成员') AND sessionId = @sessionId
"""); GROUP BY userId) t1
LEFT JOIN vw_user u ON u.id = t1.userId
$condition
ORDER BY FIELD(t1.identity,'主任','副主任','成员'), u.loginname ASC
""");
// 传入参数给子查询
sql.setParam("institutionId", institutionId);
sql.setParam("sessionId", sessionId);
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("t1.institutionId", "=", institutionId); // 外层不再需要这两个条件,子查询已经过滤
cnd.and("t1.sessionId", "=", sessionId); // cnd.and("t1.institutionId", "=", institutionId);
cnd.asc("u.loginname"); // cnd.and("t1.sessionId", "=", sessionId);
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup(); SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("u.username", pageForm.getSearchKeyword()); seg.orLike("u.username", pageForm.getSearchKeyword());
@@ -81,10 +81,6 @@ const USER_TABLE_COMPONENT = {
sessionOptions: [] sessionOptions: []
} }
}, },
// created() {
// // 名单场景下默认多展示一些数据,减少“人员明明存在但首页看不到”的情况。
// this.pageForm.pageSize = 20
// },
methods: { methods: {
pageData() { pageData() {
this.$axios this.$axios