This commit is contained in:
=
2026-08-05 08:43:28 +08:00
43 changed files with 2082 additions and 426 deletions
@@ -7,6 +7,8 @@ import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.basic.service.ActivityBasicScopeService;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.models.GuildHall;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.models.GuildHallMeeting;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.models.GuildHallSeat;
@@ -40,6 +42,9 @@ public class GuildHallMeetingController {
@Inject
private GuildHallMeetingService guildHallMeetingService;
@Inject
private ActivityBasicScopeService activityBasicScopeService;
@At("")
@SaCheckPermission("guildHall.meeting")
@Ok("beetl:/platform/zhgh/democratic/teachercongress/guildhall/meeting/index.html")
@@ -109,6 +114,11 @@ public class GuildHallMeetingController {
if(DateUtil.compare(DateUtil.date(), meeting.getEndTime()) > 0) {
continue;
}
// 配置参与组别后,仅向组内用户返回可选会议;未配置组别时默认全员可见。
if (meeting.getGroupId() != null
&& !activityBasicScopeService.isUserInGroup(meeting.getGroupId(), SecurityUtil.getUserId())) {
continue;
}
NutMap nutMap = Lang.obj2nutmap(meeting);
GuildHall hall = dao.fetch(GuildHall.class, meeting.getHallId());
nutMap.put("address", hall.getAddress());
@@ -3,13 +3,16 @@ package com.budwk.app.zhgh.democratic.teachercongress.guildhall.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.result.Result;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.basic.service.ActivityBasicScopeService;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.models.GuildHallMeeting;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.models.GuildHallSeat;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.models.GuildHallSeatSelect;
import com.budwk.app.zhgh.democratic.teachercongress.guildhall.service.GuildHallService;
import io.swagger.annotations.Api;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
@@ -36,6 +39,8 @@ public class GuildHallSelectSeatController {
private Dao dao;
@Inject
private GuildHallService guildHallService;
@Inject
private ActivityBasicScopeService activityBasicScopeService;
@At("")
@SaCheckPermission("guildHall.selectSeat")
@@ -52,6 +57,11 @@ public class GuildHallSelectSeatController {
@At
@SaCheckPermission("guildHall.selectSeat")
public Result loadSeats(@Param("meetingId") String meetingId) {
Result permissionResult = checkMeetingPermission(meetingId);
if (permissionResult != null) {
return permissionResult;
}
// 已选择情况
List<GuildHallSeatSelect> selectedSeats = dao.query(GuildHallSeatSelect.class, Cnd.where("meetingId", "=", meetingId));
@@ -79,7 +89,13 @@ public class GuildHallSelectSeatController {
@At
@SaCheckPermission("guildHall.selectSeat")
@Aop(TransAop.READ_COMMITTED)
public Result doSelect(@Param("meetingId") String meetingId, Integer rowNumber, Integer colNumber) {
Result permissionResult = checkMeetingPermission(meetingId);
if (permissionResult != null) {
return permissionResult;
}
GuildHallSeatSelect oldSeat = dao.fetch(GuildHallSeatSelect.class, Cnd.where("meetingId", "=", meetingId).and("userId", "=", SecurityUtil.getUserId()));
if(oldSeat != null){
oldSeat.setUserId(null);
@@ -94,4 +110,22 @@ public class GuildHallSelectSeatController {
return Result.success();
}
/**
* 校验当前用户是否可参与指定会议;未配置参与组别的会议默认允许选座。
*
* @param meetingId 会议主键,用于查询会议的参与组别配置
* @return 校验通过时返回 {@code null};会议不存在或用户不在参与组别时返回错误结果
*/
private Result checkMeetingPermission(String meetingId) {
GuildHallMeeting meeting = dao.fetch(GuildHallMeeting.class, meetingId);
if (meeting == null) {
return Result.error("会议不存在或已删除");
}
if (meeting.getGroupId() != null
&& !activityBasicScopeService.isUserInGroup(meeting.getGroupId(), SecurityUtil.getUserId())) {
return Result.error("您不在本次会议参与组别内");
}
return null;
}
}