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 82577de..7e19ac4 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 @@ -5,6 +5,7 @@ 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.ActivityItem; import com.budwk.app.module.activity.models.ActivityItemUser; import com.budwk.app.web.commons.auth.satoken.StpClientUtil; import org.nutz.aop.interceptor.ioc.TransAop; @@ -27,9 +28,14 @@ public class ClientItemServiceImpl extends BaseServiceImpl imp @Aop(TransAop.READ_COMMITTED) public void signUp(ClientItemSignUpVO signVO) { Activity activity = dao().fetch(Activity.class, Cnd.where(Activity::getId, "=", signVO.getActivityId())); - if (activity.getItemEndTime().isBefore(LocalDateTime.now())){ + if (activity.getItemEndTime().isBefore(LocalDateTime.now())) { throw new RuntimeException("项目报名已结束!"); } + //查询报名项目 + ActivityItem activityItem = dao().fetch(ActivityItem.class, Cnd.where(ActivityItem::getId, "=", signVO.getItemId())); + if (activityItem.getNum() > 0 && signVO.getUserList().size() != activityItem.getNum()) { + throw new RuntimeException("报名人数不正确!"); + } //找到自己的团队 ActGroupUser groupUser = dao().fetch(ActGroupUser.class, Cnd.where(ActGroupUser::getActivityId, "=", signVO.getActivityId()) diff --git a/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java b/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java index 7ac7413..572cc6a 100644 --- a/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java +++ b/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java @@ -46,6 +46,11 @@ public class ActivityItem extends BaseModel { @ColDefine(type = ColType.INT) private Integer num; + @Comment("是否团体报名") + @Column + @ColDefine(type = ColType.BOOLEAN) + private Boolean isTeamApply; + @Comment("排序") @Column @ColDefine(type = ColType.INT) diff --git a/backend/src/main/resources/views/platform/activity/manage/itemForm.js b/backend/src/main/resources/views/platform/activity/manage/itemForm.js index bad85fc..a1d26a2 100644 --- a/backend/src/main/resources/views/platform/activity/manage/itemForm.js +++ b/backend/src/main/resources/views/platform/activity/manage/itemForm.js @@ -20,12 +20,26 @@ const itemForm = { - + + + + + @@ -45,6 +44,7 @@ style="flex: 1"> + @@ -54,6 +54,14 @@ {{ itemOptions.find(p => p.id === selectedItemId)?.name }} + + + 此项目是团队协作需要全体成员参与 + + + 此项目需【{{itemOptions.find(p => p.id === selectedItemId)?.num}}】名成员参与 + + @@ -66,7 +74,7 @@ :value="member.userId" :label="member.userName+'-'+member.sex" :content="member.unitName" - :disabled="!isSelfLeader" + :disabled="!isSelfLeader||team.isTeamApply" icon-size="20px" /> @@ -206,14 +214,19 @@ const fetchRegistrationStatus = () => { return acc; }, new Map()); registrationStatus.value = resultMap; - console.log(resultMap) }; +// 点击的当前项目 +const team = ref({}) // 选择项目 -const selectProject = (projectId) => { - selectedItemId.value = projectId; - selectedMemberIds.value = selectedMemberList.value.filter(v => v.itemId === projectId).map(v => v.userId) - +const selectProject = (project) => { + selectedItemId.value = project.id; + team.value=project + if (project.isTeamApply){ + selectedMemberIds.value = teamMembers.value.map(v => v.userId) + }else{ + selectedMemberIds.value = selectedMemberList.value.filter(v => v.itemId === project.id).map(v => v.userId) + } showMemberPicker.value = true; };