From 36ed3f15383c62c23c80ef8b328da6cf2963326a Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Sat, 20 Sep 2025 15:12:35 +0800 Subject: [PATCH 1/2] commit --- .../manage/FamilyActivityApplyController.java | 6 +- .../infoManage/ClubInfoManageController.java | 71 ++++++++++--------- .../zhgh/activity/family/apply/index.html | 14 ++-- .../platform/zhgh/club/common/clubUserJoin.js | 2 +- .../club/infoManage/manage/clubInfoManage.js | 1 + .../platform/zhgh/club/join/apply/index.html | 1 + .../dayofficework/honor/manage/index.html | 2 +- .../zhghh5/activity/family/apply/index.html | 45 ++++++++---- .../platform/zhghh5/club/apply/index.html | 2 + 9 files changed, 86 insertions(+), 58 deletions(-) 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/club/controller/infoManage/ClubInfoManageController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java index aa22680..18178b2 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java @@ -334,44 +334,45 @@ public class ClubInfoManageController { @At @SaCheckPermission("club.infoManage.manage") @ApiOperation("授权") - public Result doAuthRole(@Valid String userId, @Valid String clubId, @Param("roleCode") @Valid String[] roleCode) { - // 删除原来的身份 - List 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/resources/views/platform/zhgh/activity/family/apply/index.html b/src/main/resources/views/platform/zhgh/activity/family/apply/index.html index 80a4590..630c849 100644 --- a/src/main/resources/views/platform/zhgh/activity/family/apply/index.html +++ b/src/main/resources/views/platform/zhgh/activity/family/apply/index.html @@ -54,8 +54,7 @@ layout("/layouts/platform.html"){ - - + @@ -90,8 +89,13 @@ layout("/layouts/platform.html"){ @@ -143,7 +147,7 @@ layout("/layouts/platform.html"){ return { pageForm: { year: this.$moment().format("YYYY"), - activityType: 4 + activityType: 2 }, tableColumns: [ { label: "活动名称", prop: "activityName", width: 600}, diff --git a/src/main/resources/views/platform/zhgh/club/common/clubUserJoin.js b/src/main/resources/views/platform/zhgh/club/common/clubUserJoin.js index 86af583..729a0ba 100644 --- a/src/main/resources/views/platform/zhgh/club/common/clubUserJoin.js +++ b/src/main/resources/views/platform/zhgh/club/common/clubUserJoin.js @@ -18,7 +18,7 @@ const clubUserJoin = { {{viewData.sex}} - {{viewData.birthday}} + {{$moment(viewData.birthday).format('YYYY-MM-DD')}} {{viewData.mobile}} diff --git a/src/main/resources/views/platform/zhgh/club/infoManage/manage/clubInfoManage.js b/src/main/resources/views/platform/zhgh/club/infoManage/manage/clubInfoManage.js index df86aba..2001195 100644 --- a/src/main/resources/views/platform/zhgh/club/infoManage/manage/clubInfoManage.js +++ b/src/main/resources/views/platform/zhgh/club/infoManage/manage/clubInfoManage.js @@ -131,6 +131,7 @@ const CLUB_INFO_MANAGE_TEMPLATE = { 协会秘书长 协会副秘书长 协会操作员 + 协会会员 diff --git a/src/main/resources/views/platform/zhgh/club/join/apply/index.html b/src/main/resources/views/platform/zhgh/club/join/apply/index.html index fff657f..6410b07 100644 --- a/src/main/resources/views/platform/zhgh/club/join/apply/index.html +++ b/src/main/resources/views/platform/zhgh/club/join/apply/index.html @@ -212,6 +212,7 @@ layout("/layouts/platform.html"){ this.$set(this.formData, "unionName", user.union ? user.union.name : null) this.$set(this.formData, "sex", user.sex) this.$set(this.formData, "birthday", "${@auth.getPrincipalProperty('birthday'),'yyyy-MM-dd'}") + this.$set(this.formData, "mobile", user.mobile) this.$set(this.formData, "nation", user.nation) this.$set(this.formData, "political", user.political) this.$set(this.formData, "education", user.education) diff --git a/src/main/resources/views/platform/zhgh/dayofficework/honor/manage/index.html b/src/main/resources/views/platform/zhgh/dayofficework/honor/manage/index.html index bcfdbe8..58dc8f9 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/honor/manage/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/honor/manage/index.html @@ -316,7 +316,7 @@ layout("/layouts/platform.html"){ if (this.honorTypeList && this.honorLevelList) { this.$set(this.pageForm, "honorType", this.honorTypeList[0].id) this.$set(this.pageForm, "queryTypeCode", this.honorTypeList[0].queryTypeCode) - this.honorPrizeList = await this.getHonorPrize(this.formData.honorType) + this.honorPrizeList = await this.getHonorPrize(this.pageForm.honorType) console.log(this.pageForm) } }, diff --git a/src/main/resources/views/platform/zhghh5/activity/family/apply/index.html b/src/main/resources/views/platform/zhghh5/activity/family/apply/index.html index 9675e36..6f4d76e 100644 --- a/src/main/resources/views/platform/zhghh5/activity/family/apply/index.html +++ b/src/main/resources/views/platform/zhghh5/activity/family/apply/index.html @@ -24,6 +24,11 @@ layout("/layouts/platform_h5.html"){ .van-count-down { color: #fff; } + .item-header .van-tag { + font-size: 12px; + padding: 3px 6px; + border-radius: 6px; + }
@@ -40,10 +45,25 @@ layout("/layouts/platform_h5.html"){ + @@ -105,12 +127,11 @@ layout("/layouts/platform_h5.html"){ totalCount: 0, searchKeyword: '', year: new Date().getFullYear(), - activityType: 4, + activityType: 2, }, typeOptions: [ {text: '全部', value: 1}, - {text: '即将开始', value: 4}, - {text: '报名中', value: 2}, + {text: '即将开始 & 报名中', value: 2}, {text: '已结束', value: 3}, ], infoVisible: false, diff --git a/src/main/resources/views/platform/zhghh5/club/apply/index.html b/src/main/resources/views/platform/zhghh5/club/apply/index.html index 0ba7a24..9e39ed4 100644 --- a/src/main/resources/views/platform/zhghh5/club/apply/index.html +++ b/src/main/resources/views/platform/zhghh5/club/apply/index.html @@ -261,6 +261,8 @@ layout("/layouts/platform_h5.html"){ this.formData.loginName = user.loginname; this.formData.unitName = user.unit ? user.unit.name : null; this.formData.unionName = user.union ? user.union.name : null; + this.formData.birthday = this.$moment(user.birthday).format('YYYY-MM-DD'); + this.formData.mobile = user.mobile; this.formData.sex = user.sex; this.formData.education = user.education; this.formData.technicalTitle = user.technicalTitle; From ec54bcba1296dc7193147cffc9dc1252a84e8a54 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Sat, 20 Sep 2025 16:27:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=9A=E5=91=98=E3=80=81=E4=BD=93?= =?UTF-8?q?=E8=82=B2=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysUnionGroupController.java | 5 +++- ...onUserAuthorizationApprovalController.java | 21 ++++++++++++++ .../open/commons/CommonController.java | 20 +++++++++++-- .../qsv/h5controller/H5QsvQuizController.java | 19 ++++++++++-- .../ActivitySportsApplyUserServiceImpl.java | 2 +- .../controller/BuildHomeAgencyController.java | 2 +- .../approval/index.html | 27 ++++++++++++++--- .../zhghh5/activity/qsv/quiz/index.html | 20 +++++++++++-- .../zhghh5/activity/qsv/quiz/result.html | 29 ++++++++++++++++++- 9 files changed, 129 insertions(+), 16 deletions(-) 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/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 - +