From 73b3fc749e6b0b04827d9c28d73b8818e4f20f01 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Wed, 30 Apr 2025 10:12:48 +0800 Subject: [PATCH] commit --- .../controller/ClientItemController.java | 29 ++++++++++++++----- .../service/impl/ClientItemServiceImpl.java | 12 ++++++-- .../src/pages/activity/team-form/index.vue | 14 +++++---- frontend/src/pages/activity/team/index.vue | 27 ++++++++++++----- frontend/src/pages/profile/index.vue | 17 +++++++---- 5 files changed, 71 insertions(+), 28 deletions(-) diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java index dbc5dd4..112b4b4 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java @@ -5,10 +5,7 @@ import com.budwk.app.base.result.Result; import com.budwk.app.client.module.activity.service.ClientItemService; import com.budwk.app.client.module.activity.vo.ClientActivitySignVO; import com.budwk.app.client.module.activity.vo.ClientItemSignUpVO; -import com.budwk.app.module.activity.models.ActGroup; -import com.budwk.app.module.activity.models.ActUser; -import com.budwk.app.module.activity.models.ActivityItem; -import com.budwk.app.module.activity.models.ActivityItemUser; +import com.budwk.app.module.activity.models.*; import com.budwk.app.web.commons.auth.satoken.StpClientUtil; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -16,6 +13,7 @@ import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.lang.util.NutMap; import org.nutz.mvc.adaptor.JsonAdaptor; import org.nutz.mvc.annotation.AdaptBy; @@ -47,14 +45,22 @@ public class ClientItemController { /** - * 查询出这个活动所有报名的人 + * 查询出这个活动自己团队所有报名的人 + * * @param activityId * @return */ @At("/list-apply-user/?") @SaCheckLogin(type = StpClientUtil.TYPE) - public Result listApplyUser(String activityId){ - List userList = dao.query(ActivityItemUser.class, Cnd.where(ActivityItemUser::getActivityId, "=", activityId)); + public Result listApplyUser(String activityId) { + //查询自己在哪个团队 + ActGroupUser user = dao.fetch(ActGroupUser.class, Cnd.where(ActGroupUser::getActivityId, "=", activityId).and(ActGroupUser::getUserId, "=", StpClientUtil.STP.getLoginIdAsLong())); + if (Lang.isEmpty(user)) { + return Result.error("您还没加入任何团队"); + } + List userList = dao.query(ActivityItemUser.class, + Cnd.where(ActivityItemUser::getActivityId, "=", activityId) + .and(ActivityItemUser::getGroupId, "=", user.getGroupId())); return Result.success(userList); } @@ -74,10 +80,16 @@ public class ClientItemController { @At("/list-team-user/?") @SaCheckLogin(type = StpClientUtil.TYPE) public Result listTeamUser(Long activityId) { + //查询自己在哪个团队 + ActGroupUser user = dao.fetch(ActGroupUser.class, Cnd.where(ActGroupUser::getActivityId, "=", activityId).and(ActGroupUser::getUserId, "=", StpClientUtil.STP.getLoginIdAsLong())); + if (Lang.isEmpty(user)) { + return Result.error("您还没加入任何团队"); + } Sql sql = Sqls.create(""" SELECT t1.groupId, t1.userId, + t1.isLeader, t2.activityId, t3.userName, t3.unitName, @@ -88,7 +100,8 @@ public class ClientItemController { LEFT JOIN act_user t3 ON t3.userId = t1.userId WHERE t2.activityId = @activityId - """).setParam("activityId", activityId); + AND t1.groupId=@groupId + """).setParam("activityId", activityId).setParam("groupId", user.getGroupId()); List list = clientItemService.listMap(sql); return Result.success(list); } diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java b/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java index 515808c..82577de 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java @@ -3,8 +3,10 @@ package com.budwk.app.client.module.activity.service.impl; import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.client.module.activity.service.ClientItemService; import com.budwk.app.client.module.activity.vo.ClientItemSignUpVO; +import com.budwk.app.module.activity.models.ActGroupUser; import com.budwk.app.module.activity.models.Activity; import com.budwk.app.module.activity.models.ActivityItemUser; +import com.budwk.app.web.commons.auth.satoken.StpClientUtil; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -28,9 +30,15 @@ public class ClientItemServiceImpl extends BaseServiceImpl imp if (activity.getItemEndTime().isBefore(LocalDateTime.now())){ throw new RuntimeException("项目报名已结束!"); } + //找到自己的团队 + ActGroupUser groupUser = dao().fetch(ActGroupUser.class, + Cnd.where(ActGroupUser::getActivityId, "=", signVO.getActivityId()) + .and(ActGroupUser::getUserId, "=", StpClientUtil.STP.getLoginIdAsLong())); + + // 删除掉之前的 clear(Cnd.where(ActivityItemUser::getActivityId, "=", signVO.getActivityId()) - .and(ActivityItemUser::getGroupId, "=", signVO.getGroupId()) + .and(ActivityItemUser::getGroupId, "=", groupUser.getGroupId()) .and(ActivityItemUser::getItemId, "=", signVO.getItemId()) ); @@ -39,7 +47,7 @@ public class ClientItemServiceImpl extends BaseServiceImpl imp ActivityItemUser itemUser = new ActivityItemUser(); itemUser.setActivityId(signVO.getActivityId()); itemUser.setItemId(signVO.getItemId()); - itemUser.setGroupId(signVO.getGroupId()); + itemUser.setGroupId(groupUser.getGroupId()); itemUser.setUserId(userId); userList.add(itemUser); } diff --git a/frontend/src/pages/activity/team-form/index.vue b/frontend/src/pages/activity/team-form/index.vue index 79340b5..d6830a6 100644 --- a/frontend/src/pages/activity/team-form/index.vue +++ b/frontend/src/pages/activity/team-form/index.vue @@ -59,13 +59,14 @@ :value="member.userId" :label="member.userName+'-'+member.sex" :content="member.unitName" + :disabled="!isSelfLeader" icon-size="20px" /> - - + + 确认报名 ({{ selectedMemberIds.length }}人) @@ -129,7 +130,6 @@ const selectedMemberIds = ref([]); const showMemberPicker = ref(false); - // 获取活动列表 async function listActs() { try { @@ -165,17 +165,21 @@ async function listItems() { } } +// 自己是否是队长 +const isSelfLeader = ref(false) + // 获取团队成员 async function listTeamUser() { try { const {code, data, msg} = await request.get('/client/item/list-team-user/' + selectActId.value) if (code === 0) { teamMembers.value = data; + isSelfLeader.value = data.find(t => t.userId===getApp().globalData.user.id)?.isLeader } else { Toast.error(msg) } } catch (e) { - Toast.error(msg) + Toast.error(e) console.error(e) } } @@ -184,7 +188,6 @@ async function listTeamUser() { const registrationStatus = ref(new Map()); // 获取报名状态 - 使用静态数据 const fetchRegistrationStatus = () => { - const resultMap = selectedMemberList.value.reduce((acc, item) => { const key = item.itemId; if (!acc.has(key)) { @@ -194,6 +197,7 @@ const fetchRegistrationStatus = () => { return acc; }, new Map()); registrationStatus.value = resultMap; + console.log(resultMap) }; // 选择项目 diff --git a/frontend/src/pages/activity/team/index.vue b/frontend/src/pages/activity/team/index.vue index 30b071d..851faed 100644 --- a/frontend/src/pages/activity/team/index.vue +++ b/frontend/src/pages/activity/team/index.vue @@ -41,9 +41,10 @@ -
- - {{ team.isSelfLeader ? '参与项目报名' : '查看项目报名' }} +
+ +
{{ team.isSelfLeader ? '参与项目报名' : '查看项目报名' }}
+
暂无队长无法报名
@@ -80,8 +81,19 @@
拥有团队所有管理权限
+
+
+
+ +
+
+
您是普通成员
+
项目报名请联系队长
+
+
+
-
+
@@ -104,10 +116,10 @@
- +