feat:职代会h5端UI优化调整

This commit is contained in:
2026-07-31 17:28:32 +08:00
parent c910752e2e
commit 29f305d677
10 changed files with 821 additions and 205 deletions
@@ -37,6 +37,12 @@ public class CongressH5Controller {
public void meetingListPage() {
}
@At("/meeting/remark")
@Ok("beetl:/platform/zhghh5/democratic/congress/meeting/remark.html")
@SaCheckLogin
public void meetingRemarkPage() {
}
@At("/pdf")
@Ok("beetl:/platform/zhghh5/democratic/congress/pdf.html")
@SaCheckLogin
@@ -69,14 +75,38 @@ public class CongressH5Controller {
@At("/materialsList")
@SaCheckLogin
public Result materialsList(@Param("typeId") String typeId, @Param("timeId") String timeId, @Param("emplid") String emplid) {
return Result.success(congressH5Service.materialsList(typeId, timeId, emplid));
public Result materialsList(@Param("typeId") String typeId,
@Param("timeId") String timeId,
@Param("emplid") String emplid,
@Param("searchKeyword") String searchKeyword,
@Param("fileType") String fileType,
@Param("uploadTimeOrder") String uploadTimeOrder,
@Param("pageNumber") Integer pageNumber,
@Param("pageSize") Integer pageSize) {
return Result.success(congressH5Service.materialsList(typeId, timeId, emplid, searchKeyword,
fileType, uploadTimeOrder, pageNumber, pageSize));
}
@At("/user/meetingList")
@SaCheckLogin
public Result userMeetingList(@Param("timeId") String timeId, @Param("emplid") String emplid) {
return Result.success(congressH5Service.userMeetingList(timeId, emplid));
public Result userMeetingList(@Param("timeId") String timeId,
@Param("emplid") String emplid,
@Param("searchKeyword") String searchKeyword,
@Param("signTimeStatus") String signTimeStatus,
@Param("signInCountStatus") String signInCountStatus,
@Param("signStatus") String signStatus,
@Param("pageNumber") Integer pageNumber,
@Param("pageSize") Integer pageSize) {
return Result.success(congressH5Service.userMeetingList(timeId, emplid, searchKeyword,
signTimeStatus, signInCountStatus, signStatus, pageNumber, pageSize));
}
@At("/user/meetingRemark")
@SaCheckLogin
public Result meetingRemark(@Param("meetingId") String meetingId,
@Param("timeId") String timeId,
@Param("emplid") String emplid) {
return Result.success(congressH5Service.meetingRemark(meetingId, timeId, emplid));
}
@At("/signin")
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.democratic.congress.service;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.page.Pagination;
import org.nutz.lang.util.NutMap;
import java.util.List;
@@ -11,9 +12,14 @@ public interface CongressH5Service {
List<NutMap> materialsTypeList();
List<NutMap> materialsList(String typeId, String sessionId, String emplid);
Pagination<NutMap> materialsList(String typeId, String sessionId, String emplid, String searchKeyword,
String fileType, String uploadTimeOrder, Integer pageNumber, Integer pageSize);
List<NutMap> userMeetingList(String sessionId, String emplid);
Pagination<NutMap> userMeetingList(String sessionId, String emplid, String searchKeyword,
String signTimeStatus, String signInCountStatus, String signStatus,
Integer pageNumber, Integer pageSize);
NutMap meetingRemark(String meetingId, String sessionId, String emplid);
Result signin(String repId, String sessionId, String timeId, String meetingId);
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.democratic.congress.service.impl;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.democratic.congress.service.CongressH5Service;
@@ -44,6 +45,7 @@ public class CongressH5ServiceImpl implements CongressH5Service {
AND COALESCE(dg.delFlag, 0) = 0
WHERE d.loginName = @emplid
AND COALESCE(d.delFlag, 0) = 0
AND COALESCE(s.enable, 0) = 1
ORDER BY s.startDate DESC, s.createdAt DESC, s.id DESC
""");
sql.setParam("emplid", loginName);
@@ -90,9 +92,13 @@ public class CongressH5ServiceImpl implements CongressH5Service {
}
@Override
public List<NutMap> materialsList(String typeId, String sessionId, String emplid) {
public Pagination<NutMap> materialsList(String typeId, String sessionId, String emplid, String searchKeyword,
String fileType, String uploadTimeOrder, Integer pageNumber, Integer pageSize) {
String loginName = loginName(emplid);
Sql sql = Sqls.create("""
int currentPage = pageNumber == null || pageNumber < 1 ? 1 : pageNumber;
int currentSize = pageSize == null || pageSize < 1 ? 10 : Math.min(pageSize, 50);
String orderBy = "asc".equalsIgnoreCase(uploadTimeOrder) ? "ASC" : "DESC";
Sql sql = Sqls.create(("""
SELECT
cm.id,
cm.session_id AS sessionId,
@@ -126,19 +132,50 @@ public class CongressH5ServiceImpl implements CongressH5Service {
WHERE COALESCE(cm.deleted, 0) = 0
AND cm.type_id = @typeId
AND (cm.session_id = @sessionId OR cm.time_id = @sessionId)
ORDER BY cm.sort_no ASC, cm.create_time DESC
""");
AND (@searchKeyword = '' OR cm.name LIKE CONCAT('%%', @searchKeyword, '%%')
OR cm.file_name LIKE CONCAT('%%', @searchKeyword, '%%'))
AND (@fileType = '' OR FIND_IN_SET(LOWER(REPLACE(cm.file_type, '.', '')), @fileType) > 0
OR FIND_IN_SET(LOWER(SUBSTRING_INDEX(cm.file_name, '.', -1)), @fileType) > 0)
ORDER BY cm.create_time %s, cm.id DESC
""").formatted(orderBy));
sql.setParam("typeId", typeId);
sql.setParam("sessionId", sessionId);
sql.setParam("emplid", loginName);
sql.setParam("searchKeyword", StrUtil.blankToDefault(searchKeyword, ""));
sql.setParam("fileType", StrUtil.blankToDefault(fileType, ""));
sql.setPager(dao.createPager(currentPage, currentSize));
sql.setCallback(Sqls.callback.maps());
dao.execute(sql);
return sql.getList(NutMap.class);
int totalCount = count("""
SELECT COUNT(DISTINCT cm.id)
FROM congress_materials cm
INNER JOIN teacher_congress_delegate d ON d.sessionId = cm.session_id
AND d.loginName = @emplid
AND COALESCE(d.delFlag, 0) = 0
WHERE COALESCE(cm.deleted, 0) = 0
AND cm.type_id = @typeId
AND (cm.session_id = @sessionId OR cm.time_id = @sessionId)
AND (@searchKeyword = '' OR cm.name LIKE CONCAT('%%', @searchKeyword, '%%')
OR cm.file_name LIKE CONCAT('%%', @searchKeyword, '%%'))
AND (@fileType = '' OR FIND_IN_SET(LOWER(REPLACE(cm.file_type, '.', '')), @fileType) > 0
OR FIND_IN_SET(LOWER(SUBSTRING_INDEX(cm.file_name, '.', -1)), @fileType) > 0)
""", NutMap.NEW()
.addv("typeId", typeId)
.addv("sessionId", sessionId)
.addv("emplid", loginName)
.addv("searchKeyword", StrUtil.blankToDefault(searchKeyword, ""))
.addv("fileType", StrUtil.blankToDefault(fileType, "")));
return new Pagination<>(currentPage, currentSize, totalCount, sql.getList(NutMap.class));
}
@Override
public List<NutMap> userMeetingList(String sessionId, String emplid) {
public Pagination<NutMap> userMeetingList(String sessionId, String emplid, String searchKeyword,
String signTimeStatus, String signInCountStatus, String signStatus,
Integer pageNumber, Integer pageSize) {
String loginName = loginName(emplid);
int currentPage = pageNumber == null || pageNumber < 1 ? 1 : pageNumber;
int currentSize = pageSize == null || pageSize < 1 ? 10 : Math.min(pageSize, 50);
Sql sql = Sqls.create("""
SELECT
m.id,
@@ -166,13 +203,93 @@ public class CongressH5ServiceImpl implements CongressH5Service {
AND si.rep_id = d.id
WHERE COALESCE(m.deleted, 0) = 0
AND (m.session_id = @sessionId OR m.time_id = @sessionId)
AND (@searchKeyword = '' OR m.meeting_name LIKE CONCAT('%', @searchKeyword, '%'))
AND (@signTimeStatus = ''
OR (@signTimeStatus = 'upcoming' AND m.sign_in_start_time > NOW())
OR (@signTimeStatus = 'ongoing' AND m.sign_in_start_time <= NOW() AND m.sign_in_end_time >= NOW())
OR (@signTimeStatus = 'ended' AND m.sign_in_end_time < NOW()))
AND (@signInCountStatus = ''
OR (@signInCountStatus = 'has' AND EXISTS (
SELECT 1 FROM congress_sign_in count_si
WHERE count_si.meeting_id = m.id AND COALESCE(count_si.deleted, 0) = 0))
OR (@signInCountStatus = 'none' AND NOT EXISTS (
SELECT 1 FROM congress_sign_in count_si
WHERE count_si.meeting_id = m.id AND COALESCE(count_si.deleted, 0) = 0)))
AND (@signStatus = ''
OR (@signStatus = 'signed' AND si.id IS NOT NULL)
OR (@signStatus = 'unsigned' AND si.id IS NULL))
ORDER BY m.sign_in_start_time DESC, m.create_time DESC
""");
sql.setParam("sessionId", sessionId);
sql.setParam("emplid", loginName);
sql.setParam("searchKeyword", StrUtil.blankToDefault(searchKeyword, ""));
sql.setParam("signTimeStatus", StrUtil.blankToDefault(signTimeStatus, ""));
sql.setParam("signInCountStatus", StrUtil.blankToDefault(signInCountStatus, ""));
sql.setParam("signStatus", StrUtil.blankToDefault(signStatus, ""));
sql.setPager(dao.createPager(currentPage, currentSize));
sql.setCallback(Sqls.callback.maps());
dao.execute(sql);
return sql.getList(NutMap.class);
int totalCount = count("""
SELECT COUNT(DISTINCT m.id)
FROM congress_sign_in_meeting m
INNER JOIN teacher_congress_delegate d ON d.sessionId = m.session_id
AND d.loginName = @emplid
AND COALESCE(d.delFlag, 0) = 0
LEFT JOIN congress_sign_in si ON m.id = si.meeting_id
AND COALESCE(si.deleted, 0) = 0
AND si.rep_id = d.id
WHERE COALESCE(m.deleted, 0) = 0
AND (m.session_id = @sessionId OR m.time_id = @sessionId)
AND (@searchKeyword = '' OR m.meeting_name LIKE CONCAT('%', @searchKeyword, '%'))
AND (@signTimeStatus = ''
OR (@signTimeStatus = 'upcoming' AND m.sign_in_start_time > NOW())
OR (@signTimeStatus = 'ongoing' AND m.sign_in_start_time <= NOW() AND m.sign_in_end_time >= NOW())
OR (@signTimeStatus = 'ended' AND m.sign_in_end_time < NOW()))
AND (@signInCountStatus = ''
OR (@signInCountStatus = 'has' AND EXISTS (
SELECT 1 FROM congress_sign_in count_si
WHERE count_si.meeting_id = m.id AND COALESCE(count_si.deleted, 0) = 0))
OR (@signInCountStatus = 'none' AND NOT EXISTS (
SELECT 1 FROM congress_sign_in count_si
WHERE count_si.meeting_id = m.id AND COALESCE(count_si.deleted, 0) = 0)))
AND (@signStatus = ''
OR (@signStatus = 'signed' AND si.id IS NOT NULL)
OR (@signStatus = 'unsigned' AND si.id IS NULL))
""", NutMap.NEW()
.addv("sessionId", sessionId)
.addv("emplid", loginName)
.addv("searchKeyword", StrUtil.blankToDefault(searchKeyword, ""))
.addv("signTimeStatus", StrUtil.blankToDefault(signTimeStatus, ""))
.addv("signInCountStatus", StrUtil.blankToDefault(signInCountStatus, ""))
.addv("signStatus", StrUtil.blankToDefault(signStatus, "")));
return new Pagination<>(currentPage, currentSize, totalCount, sql.getList(NutMap.class));
}
@Override
public NutMap meetingRemark(String meetingId, String sessionId, String emplid) {
Sql sql = Sqls.create("""
SELECT
m.id,
m.meeting_name AS meetingName,
m.remark,
m.session_id AS sessionId,
COALESCE(m.time_id, m.session_id) AS timeId
FROM congress_sign_in_meeting m
INNER JOIN teacher_congress_delegate d ON d.sessionId = m.session_id
AND d.loginName = @emplid
AND COALESCE(d.delFlag, 0) = 0
WHERE m.id = @meetingId
AND COALESCE(m.deleted, 0) = 0
AND (m.session_id = @sessionId OR m.time_id = @sessionId)
LIMIT 1
""");
sql.setParam("meetingId", meetingId);
sql.setParam("sessionId", sessionId);
sql.setParam("emplid", loginName(emplid));
sql.setCallback(Sqls.callback.map());
dao.execute(sql);
return sql.getObject(NutMap.class);
}
@Override