diff --git a/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java b/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java index 6f268ef..54700a1 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java @@ -1,15 +1,18 @@ package com.budwk.app.sys.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.constant.RoleConstant; 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.sys.models.Sys_union_group; +import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysUnionGroupService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; 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; @@ -55,7 +58,7 @@ public class SysUnionGroupController { @ApiOperation("删除工会小组") @Aop(TransAop.READ_COMMITTED) public Result delete(String id) { - sysUnionGroupService.delete(id); + sysUnionGroupService.deleteById(id); return Result.success(); } diff --git a/src/main/java/com/budwk/app/sys/controller/branchUnionUserAuthorization/SysBranchUnionUserAuthorizationApprovalController.java b/src/main/java/com/budwk/app/sys/controller/branchUnionUserAuthorization/SysBranchUnionUserAuthorizationApprovalController.java index 5b46b1c..11eeaf2 100644 --- a/src/main/java/com/budwk/app/sys/controller/branchUnionUserAuthorization/SysBranchUnionUserAuthorizationApprovalController.java +++ b/src/main/java/com/budwk/app/sys/controller/branchUnionUserAuthorization/SysBranchUnionUserAuthorizationApprovalController.java @@ -31,6 +31,7 @@ import org.nutz.dao.util.cri.Static; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; @@ -167,4 +168,24 @@ public class SysBranchUnionUserAuthorizationApprovalController { } + @At + @SaCheckPermission("sys.branch.union.authorization.approval.delete") + @Aop(TransAop.READ_COMMITTED) + @ApiOperation("校工会删除") + public Result deleteDo(@Valid String id, @Valid String processInstanceId) { + Sys_branch_union_user_permission userPermission = dao.fetch(Sys_branch_union_user_permission.class, id); + if (Lang.isEmpty(userPermission)) { + return Result.error("数据错误!"); + } + // 移除角色 + dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getUserId, "=", userPermission.getUserId()).and(Sys_user_role::getUnionId, "=", userPermission.getUnionId()) + .and(Sys_user_role::getRoleId, "=", userPermission.getRoleId())); + dao.delete(Sys_branch_union_user_permission.class, id); + bpmService.deleteInstance(processInstanceId); + + sysUserService.clearCache(); + return Result.success(); + } + + } diff --git a/src/main/java/com/budwk/app/web/controllers/open/commons/CommonController.java b/src/main/java/com/budwk/app/web/controllers/open/commons/CommonController.java index f214ef9..a603a62 100644 --- a/src/main/java/com/budwk/app/web/controllers/open/commons/CommonController.java +++ b/src/main/java/com/budwk/app/web/controllers/open/commons/CommonController.java @@ -3,6 +3,8 @@ package com.budwk.app.web.controllers.open.commons; import cn.dev33.satoken.annotation.SaCheckLogin; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; import com.budwk.app.sys.models.Sys_config; import com.budwk.app.sys.models.Sys_dict; import com.budwk.app.sys.models.Sys_union; @@ -115,9 +117,21 @@ public class CommonController { @SaCheckLogin @ApiOperation("协会列表") public Result clubOptions(String clubId) { - List sysClubs = sysClubService.dao().query(SysClub.class, - Cnd.NEW().andEX("id", "=", clubId)); - return Result.success(sysClubs); + Sql sql = Sqls.create(""" + SELECT + c.* + FROM + `sys_club` c + LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = c.id + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("c.id", "=", clubId); + cnd.andEX("inst.processInstanceStatus", "=", "COMPLETED"); + cnd.andEX("inst.processInstanceNodeCode", "=", 80); + sql.setCondition(cnd); + List list = sysClubService.listVO(sql, SysClub.class); + return Result.success(list); } @At diff --git a/src/main/java/com/budwk/app/zhgh/activity/family/controller/manage/FamilyActivityApplyController.java b/src/main/java/com/budwk/app/zhgh/activity/family/controller/manage/FamilyActivityApplyController.java index a526da6..7849fda 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/family/controller/manage/FamilyActivityApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/family/controller/manage/FamilyActivityApplyController.java @@ -87,12 +87,10 @@ public class FamilyActivityApplyController { cnd.andEX("`year`", "=", year); //查询报名中 if (activityType == 2) { - cnd.and(new Static("now() > activitySignUpStartTime and now() < activitySignUpEndTime")); + cnd.and(new Static("now() < activitySignUpEndTime")); }//查询已结束的 else if (activityType == 3) { - cnd.and(new Static("now() > activityEndTime")); - } else if (activityType == 4) { - cnd.and(new Static("now() < activitySignUpStartTime")); + cnd.and(new Static("now() >= activityEndTime")); } if (AuthUtil.hasRole("H04") && !AuthUtil.hasRoleOr("sysadmin, A06")) { diff --git a/src/main/java/com/budwk/app/zhgh/activity/qsv/h5controller/H5QsvQuizController.java b/src/main/java/com/budwk/app/zhgh/activity/qsv/h5controller/H5QsvQuizController.java index d1020f4..00a0a9e 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/qsv/h5controller/H5QsvQuizController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/qsv/h5controller/H5QsvQuizController.java @@ -7,6 +7,7 @@ import cn.hutool.json.JSONObject; import com.budwk.app.base.exception.BaseException; import com.budwk.app.base.result.Result; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope; import com.budwk.app.zhgh.activity.qsv.dto.QsvCheckAnswerResult; import com.budwk.app.zhgh.activity.qsv.models.QsvActivity; import com.budwk.app.zhgh.activity.qsv.models.QsvOption; @@ -63,6 +64,12 @@ public class H5QsvQuizController { @ApiOperation("题目列表") public Result subjects(@Valid String activityId) { QsvActivity activity = dao.fetch(QsvActivity.class, activityId); + + int count = dao.count(ActivityUserScope.class, Cnd.where("groupId", "=", activity.getGroupId()).and("userId", "=", SecurityUtil.getUserId())); + if (count != 1) { + return Result.error("您无需参加此次答题,感谢您的关注!"); + } + String mode = activity.getMode(); //能否重复答题 Boolean repeatable = activity.getRepeatable(); @@ -72,6 +79,8 @@ public class H5QsvQuizController { Integer maxAttempts = activity.getMaxAttempts(); //题目显示模式 String displayMode = activity.getDisplayMode(); + // 重复答题,显示提示 + Boolean repeatTips = false; //最终返回的题目数据 List resultSubjects = new ArrayList<>(); @@ -81,7 +90,7 @@ public class H5QsvQuizController { List answerRecords = dao.query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId) .and(QsvUserAnswerRecord::getUserId, "=", SecurityUtil.getUserId())); - if (activity.getEndTime().after(new Date())) { + if (activity.getEndTime().before(new Date())) { //已结束 查询最新一次的答题记录 Optional lastRecordOptional = answerRecords.stream().max(Comparator.comparing(QsvUserAnswerRecord::getAnswerTime)); if (lastRecordOptional.isPresent()) { @@ -91,7 +100,7 @@ public class H5QsvQuizController { cnd.and(new Static("1=1 ORDER BY FIELD (id," + dynamic + ")")); resultSubjects = dao.query(QsvSubject.class, cnd); answerRecordId = lastRecordOptional.get().getId(); - }else{ + } else { //没生成过 那就看全部的题目 List subjects = dao.query(QsvSubject.class, Cnd.where(QsvSubject::getActivityId, "=", activityId)); QsvUserAnswerRecord answerRecord = qsvUserAnswerRecordService.insertRecord(activityId, subjects.stream().map(QsvSubject::getId).collect(Collectors.toList())); @@ -148,6 +157,7 @@ public class H5QsvQuizController { String dynamic = subjectIds.stream().map(id -> "'" + id + "'").collect(Collectors.joining(",")); cnd.and(new Static("1=1 ORDER BY FIELD (id," + dynamic + ")")); resultSubjects = dao.query(QsvSubject.class, cnd); + repeatTips = true; } else { //已达到最大次数 返回最新一次记录 Optional maxAnswerRecordOptional = answerRecords.stream().max(Comparator.comparingLong(QsvUserAnswerRecord::getRandomNumber)); @@ -293,7 +303,10 @@ public class H5QsvQuizController { resultSubjects.forEach(v -> v.setUserSelectOptionIds(new ArrayList<>())); - NutMap result = NutMap.NEW().addv("subjects", resultSubjects).addv("answerRecordId", answerRecordId).addv("activity", activity); + NutMap result = NutMap.NEW().addv("subjects", resultSubjects) + .addv("answerRecordId", answerRecordId) + .addv("activity", activity) + .addv("repeatTips", repeatTips); return Result.success(result); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java index 103697a..e62b4ce 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java @@ -89,7 +89,7 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl roleCodes = List.of(RoleConstant.CLUB_PRESIDENT.name(), - RoleConstant.CLUB_VICE_PRESIDENT.name(), - RoleConstant.CLUB_SECRETARY.name(), - RoleConstant.CLUB_VICE_SECRETARY.name(), - RoleConstant.CLUB_OPERATOR.name(), - RoleConstant.CLUB_MEMBER.name()); - for (String code : roleCodes) { - String roleId = sysRoleService.getByCode(code).getId(); - dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getUserId, "=", userId).and(Sys_user_role::getClubId, "=", clubId).and(Sys_user_role::getRoleId, "=", roleId)); - } - - // 新增身份 - ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", clubId).and(ClubUser::getUserId, "=", userId)); - List list = new ArrayList<>(Arrays.asList(roleCode)); - if(list.isEmpty()) { - list.add(RoleConstant.CLUB_MEMBER.name()); - } else { - list.remove(RoleConstant.CLUB_MEMBER.name()); + public Result doAuthRole(@Valid String id, @Valid String clubId, @Param("roleCode") @Valid String[] roleCodes) { + List roleCodeList = Arrays.asList(roleCodes); + //查询社团是否存在会长或者秘书长 + if(Arrays.asList(roleCodes).contains(RoleConstant.CLUB_PRESIDENT.name())) { + int count = dao.count(ClubUser.class, Cnd.where("clubId", "=", clubId) + .and(new Static("JSON_CONTAINS(roleCode, '\"%s\"')".formatted(RoleConstant.CLUB_PRESIDENT.name())))); + if (count > 0) { + return Result.error("会长只能有一位"); + } + } + if(Arrays.asList(roleCodes).contains(RoleConstant.CLUB_SECRETARY.name())) { + int count = dao.count(ClubUser.class, Cnd.where("clubId", "=", clubId) + .and(new Static("JSON_CONTAINS(roleCode, '\"%s\"')".formatted(RoleConstant.CLUB_SECRETARY.name())))); + if (count > 0) { + return Result.error("秘书长只能有一位"); + } } - clubUser.setRoleCode(list); - dao.update(clubUser,"roleCode"); - // 新增权限 - for (String code : roleCode) { - Sys_role sysRole = sysRoleService.getByCode(code); - Sys_user_role userRole = new Sys_user_role(); - userRole.setUserId(userId); - userRole.setRoleId(sysRole.getId()); - userRole.setClubId(clubId); - dao.insert(userRole); - } + ClubUser clubUser = clubInfoManageService.dao().fetch(ClubUser.class, id); - sysUserService.clearCache(); - sysRoleService.clearCache(); - - return Result.success(); + // 先清除所有的角色 + dao.clear(Sys_user_role.class, Cnd.where("userId", "=", clubUser.getUserId()).and("clubId", "=", clubUser.getClubId())); + // 再根据传过来的赋值 + clubUser.setRoleCode(roleCodeList); + dao.update(clubUser); + // 设置角色 + List roles = new ArrayList<>(); + for (String s : roleCodeList) { + Sys_user_role ur = new Sys_user_role(); + ur.setUserId(clubUser.getUserId()); + ur.setClubId(clubUser.getClubId()); + Sys_role sRole = sysRoleService.getByCode(s); + ur.setRoleId(sRole.getId()); + roles.add(ur); + } + dao.insert(roles); + sysUserService.clearCache(); + sysRoleService.clearCache(); + return Result.success(); } /*===============================20250806新增授权 zhaoxinyu==========================================*/ diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java index 6fa3381..b884d15 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java @@ -178,7 +178,7 @@ public class BuildHomeAgencyController { @ApiOperation("删除工会小组") @Aop(TransAop.READ_COMMITTED) public Result deleteGroup(String id) { - sysUnionGroupService.delete(id); + sysUnionGroupService.deleteById(id); return Result.success(); } diff --git a/src/main/resources/views/platform/sys/branchUnionUserAuthorization/approval/index.html b/src/main/resources/views/platform/sys/branchUnionUserAuthorization/approval/index.html index 442d7fb..38e3ddf 100644 --- a/src/main/resources/views/platform/sys/branchUnionUserAuthorization/approval/index.html +++ b/src/main/resources/views/platform/sys/branchUnionUserAuthorization/approval/index.html @@ -40,7 +40,7 @@ layout("/layouts/platform.html"){ - +