From 5d28aa5f94366c2877d6d269177cd1e6b965b3fd Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Tue, 9 Sep 2025 10:43:30 +0800 Subject: [PATCH] commit --- .../app/base/constant/BpmProcessConstant.java | 6 + .../apply/ClubUserJoinApplyController.java | 6 +- .../apply/ClubUserJoinApprovalController.java | 8 +- .../apply/ClubUserJoinMineController.java | 5 +- .../ClubUserJoinSchoolApprovalController.java | 8 +- .../apply/ClubUserMineClubController.java | 44 +--- .../applyJoin/ClubUserApplyController.java | 43 ++-- .../evaluate/ClubEvaluateApplyController.java | 22 +- .../ClubEvaluateSchoolAuditController.java | 1 - .../examine/ClubExamineApplyController.java | 7 +- .../ClubAuditManagerController.java | 206 +++++++++++++++ .../ClubChangeManagerController.java | 212 ++++++++++++++++ .../infoManage/ClubInfoManageController.java | 63 ++--- .../ClubManagePersonAuditController.java | 132 ---------- .../ClubRefreshReportController.java | 134 +++++++++- .../infoManage/ClubRuleUpdateController.java | 143 ++++++++++- .../ClubSchoolAuditReportController.java | 126 ++++++++-- .../ClubSchoolAuditRuleController.java | 126 ++++++++-- .../register/ClubRegistApplyController.java | 2 +- .../register/ClubSchoolReplyController.java | 41 ++- .../statistics/ClubStatisticsController.java | 69 +++-- .../budwk/app/zhgh/club/model/ClubUser.java | 1 + .../app/zhgh/club/model/SysClubFiles.java | 61 ----- .../app/zhgh/club/model/SysClubManager.java | 71 ++++++ .../app/zhgh/club/model/SysClubRefresh.java | 62 +++++ .../app/zhgh/club/model/SysClubRule.java | 62 +++++ .../app/zhgh/club/model/SysClubUser.java | 139 ----------- .../club/model/SysClubUserBackHistory.java | 53 ---- .../service/SysClubInfoManageService.java | 6 - .../zhgh/club/service/SysClubUserService.java | 4 +- .../impl/SysClubEvaluateServiceImpl.java | 2 +- .../impl/SysClubExamineServiceImpl.java | 28 ++- .../impl/SysClubInfoManageServiceImpl.java | 161 +++++------- .../club/service/impl/SysClubServiceImpl.java | 36 +-- .../service/impl/SysClubUserServiceImpl.java | 77 +++--- .../app/zhgh/club/vo/ClubManagerPageVo.java | 30 +++ .../zhgh/club/vo/ClubRefreshReportPageVo.java | 29 +++ .../zhgh/club/vo/ClubRuleUpdatePageVo.java | 30 +++ .../zhgh/club/vo/ClubUserCommonPageVo.java | 4 +- .../app/zhgh/club/vo/ClubUserImportVo.java | 5 - .../assets/platform/js/util/commonUtil.js | 2 +- .../zhgh/club/applyJoin/apply/index.html | 38 +-- .../zhgh/club/common/clubInfoComponent.js | 49 ++-- .../zhgh/club/evaluate/mine/index.html | 2 +- .../zhgh/club/evaluate/schoolAudit/index.html | 1 - .../zhgh/club/examine/mine/index.html | 2 +- .../club/infoManage/auditManager/index.html | 173 +++++++++++++ .../zhgh/club/infoManage/change/index.html | 235 ++++++++++++++++++ .../zhgh/club/infoManage/change/info.js | 69 +++++ .../clubManagePersonAudit/index.html | 149 ----------- .../club/infoManage/manage/clubInfoManage.js | 88 +------ .../infoManage/manage/schoolClubManage.js | 2 - .../club/infoManage/refreshReport/index.html | 211 +++++++++------- .../club/infoManage/refreshReport/info.js | 74 ++++++ .../club/infoManage/ruleUpdate/index.html | 218 ++++++++-------- .../zhgh/club/infoManage/ruleUpdate/info.js | 74 ++++++ .../infoManage/schoolAuditReport/index.html | 176 +++++++------ .../infoManage/schoolAuditRule/index.html | 179 +++++++------ .../platform/zhgh/club/join/apply/index.html | 2 +- .../zhgh/club/join/mineclub/index.html | 49 +--- .../club/register/apply/clubRegisterForm.js | 2 +- .../zhgh/club/register/apply/index.html | 11 +- .../zhgh/club/register/mine/index.html | 2 +- .../platform/zhgh/club/statistics/index.html | 4 +- 64 files changed, 2533 insertions(+), 1544 deletions(-) create mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubAuditManagerController.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubChangeManagerController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubManagePersonAuditController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/model/SysClubFiles.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/model/SysClubManager.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/model/SysClubRefresh.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/model/SysClubRule.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/model/SysClubUser.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/model/SysClubUserBackHistory.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/vo/ClubManagerPageVo.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/vo/ClubRefreshReportPageVo.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/vo/ClubRuleUpdatePageVo.java create mode 100644 src/main/resources/views/platform/zhgh/club/infoManage/auditManager/index.html create mode 100644 src/main/resources/views/platform/zhgh/club/infoManage/change/index.html create mode 100644 src/main/resources/views/platform/zhgh/club/infoManage/change/info.js delete mode 100644 src/main/resources/views/platform/zhgh/club/infoManage/clubManagePersonAudit/index.html create mode 100644 src/main/resources/views/platform/zhgh/club/infoManage/refreshReport/info.js create mode 100644 src/main/resources/views/platform/zhgh/club/infoManage/ruleUpdate/info.js diff --git a/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java b/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java index b97b0b7..3e65356 100644 --- a/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java +++ b/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java @@ -36,6 +36,12 @@ public enum BpmProcessConstant { CLUB_REGISTER("协会注册"), + CLUB_RULE_UPDATE("协会章程修订"), + + CLUB_REFRESH_REPORT("协会换届报告"), + + CLUB_MANAGER("协会理事机构"), + PERSON_EVALUATE("评优评先申请"), ARTICLE("新闻投稿"), diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java index 678ef9e..f9af27a 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java @@ -132,14 +132,12 @@ public class ClubUserJoinApplyController { } if (ObjectUtil.isNotEmpty(clubUser)) { - { - return Result.error("请勿重复申请!"); - } + return Result.error(99, "请勿重复申请!"); } BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", userApply.getId())); if (!processInstance.getProcessInstanceStatus().equals(BpmProcessInstanceStatusEnum.COMPLETED.name())) { - return Result.error("您有该协会的申请记录尚未完成,请到我的申请里查看!"); + return Result.error(99, "您有该协会的申请记录尚未完成,请到我的申请里查看!"); } return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java index 2cd9baa..54735e6 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java @@ -96,10 +96,10 @@ public class ClubUserJoinApprovalController { } cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear()); - cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); - cnd.andEX("info.unionId","=",pageForm.getUnionId()); - cnd.andEX("info.unitId","=",pageForm.getUnitId()); + cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName())); + cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName())); + cnd.andEX("u.unionId","=",pageForm.getUnionId()); + cnd.andEX("u.unitId","=",pageForm.getUnitId()); sql.setCondition(cnd); Pagination pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class); diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java index 17883bd..bddb7fd 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java @@ -22,6 +22,7 @@ import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; @@ -46,7 +47,8 @@ public class ClubUserJoinMineController { @At @SaCheckPermission("club.join.mine") - public Result pageData(@Valid PageForm pageForm){ + public Result pageData(@Valid PageForm pageForm, + @Param("year") Integer year){ Sql sql = Sqls.create(""" SELECT info.*, @@ -78,6 +80,7 @@ public class ClubUserJoinMineController { if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { cnd.and("inst.processInstanceInitiatorLoginName", "=", SecurityUtil.getUserLoginname()); } + cnd.andEX("year(info.applyDate)", "=", year); cnd.groupBy("info.id"); sql.setCondition(cnd); Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java index 291d96f..188c8f3 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java @@ -99,10 +99,10 @@ public class ClubUserJoinSchoolApprovalController { cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); } cnd.andEX("YEAR(info.applyDate)", "=", pageForm.getYear()); - cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); - cnd.andEX("info.unionId", "=", pageForm.getUnionId()); - cnd.andEX("info.unitId", "=", pageForm.getUnitId()); + cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName())); + cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName())); + cnd.andEX("u.unionId", "=", pageForm.getUnionId()); + cnd.andEX("u.unitId", "=", pageForm.getUnitId()); sql.setCondition(cnd); Pagination pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class); diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java index 6688d87..1ee4066 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java @@ -6,8 +6,9 @@ import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; import com.budwk.app.bpm.service.BpmService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.zhgh.club.model.SysClubUser; +import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; +import com.budwk.app.zhgh.club.service.SysClubUserService; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -15,6 +16,7 @@ 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.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -32,6 +34,8 @@ public class ClubUserMineClubController { private BaseService baseService; @Inject private BpmService bpmService; + @Inject + private SysClubUserService clubUserService; @At("") @SaCheckPermission("club.join.mine.club") @@ -41,13 +45,13 @@ public class ClubUserMineClubController { @At @SaCheckPermission("club.join.mine.club") public Result pageData(@Valid ClubUserPageForm pageForm) { - List query = dao.query(SysClubUser.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).groupBy("clubId")); + List query = dao.query(ClubUser.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).groupBy("clubId")); if (Lang.isEmpty(query)) { return Result.success(); } - List clubIds = query.stream().map(SysClubUser::getClubId).toList(); + List clubIds = query.stream().map(ClubUser::getClubId).toList(); Sql sql = Sqls.create(""" - SELECT + SELECT club.*, COUNT(DISTINCT ( uc.userId )) AS currentPeopleNum, presidentUser.username AS clubLeader, @@ -55,11 +59,9 @@ public class ClubUserMineClubController { FROM sys_club club LEFT JOIN club_user uc ON club.id = uc.clubId - LEFT JOIN club_user presidentCu ON presidentCu.clubId = club.id - AND presidentCu.roleCode = 'CLUB_PRESIDENT' + LEFT JOIN club_user presidentCu ON presidentCu.clubId = club.id AND JSON_CONTAINS(presidentCu.roleCode, '"CLUB_PRESIDENT"') LEFT JOIN sys_user presidentUser ON presidentUser.id = presidentCu.userId - LEFT JOIN sys_club_user secretaryCu ON secretaryCu.clubId = club.id - AND secretaryCu.roleCode = 'CLUB_SECRETARY' + LEFT JOIN club_user secretaryCu ON secretaryCu.clubId = club.id AND JSON_CONTAINS(secretaryCu.roleCode, '"CLUB_SECRETARY"') LEFT JOIN sys_user secretaryUser ON secretaryUser.id = secretaryCu.userId $condition """); @@ -73,32 +75,10 @@ public class ClubUserMineClubController { return Result.success(pagination); } - - @At @SaCheckPermission("club.join.mine.club") public Result getClubUsers(@Valid String clubId) { - Sql sql = Sqls.create(""" - SELECT - scu.*, - role.`name` AS roleName, - u.username AS userName, - u.loginname AS loginName, - u.sex, - u.personType AS personType, - u.userState, - u.unitid AS unitId, - u.mobile, - club.clubName, - u.unitname AS unitName - FROM - club_user scu - LEFT JOIN sys_club club ON scu.clubId = club.id - LEFT JOIN `vw_user` u ON scu.userId = u.id - LEFT JOIN sys_role role ON role.`code` = scu.rolecode - WHERE - scu.clubId = @clubId - """).setParam("clubId", clubId); - return Result.success(baseService.listMap(sql)); + List clubUser = clubUserService.getClubUser(clubId); + return Result.success(clubUser); } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java index db6d9da..7475c7f 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java @@ -9,10 +9,11 @@ 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.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.model.SysClubUser; import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.service.SysClubUserService; import com.budwk.app.zhgh.club.vo.ClubRegisterVo; @@ -85,14 +86,26 @@ public class ClubUserApplyController { @At @SaCheckPermission("club.applyJoin.apply") public Result getCount() { - int hasJoinCount = sysClubService.dao().count(SysClub.class, Cnd.NEW().and("dismiss", "=", false) - //.and("state", "=", ClubRegistAuditState.SCHOOL_PASS) - .and(new Static("id in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId())))); - int noJoinCount = sysClubService.dao().count(SysClub.class, Cnd.NEW().and("dismiss", "=", false) - //.and("state", "=", ClubRegistAuditState.SCHOOL_PASS) - .and(new Static("id not in (SELECT clubId from club_user WHERE userid = '%s')".formatted(SecurityUtil.getUserId())))); - NutMap nutMap = new NutMap().setv("hasJoinCount", hasJoinCount).setv("noJoinCount", noJoinCount); - return Result.success(nutMap); + // 获取所有协会 + List list = sysClubService.query(); + // 获取审核通过的 + List instanceList = sysClubService.dao().query( + BpmProcessInstance.class, + Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "in", list.stream().map(SysClub::getId).toList()) + .and(BpmProcessInstance::getProcessInstanceStatus, "=", BpmProcessInstanceStatusEnum.COMPLETED) + ); + // 获取id + List passList = instanceList.stream().map(BpmProcessInstance::getProcessInstanceBusinessId).toList(); + + int hasJoinCount = sysClubService.count(Cnd.NEW().and("dismiss", "=", false) + .and("id", "in", passList) + .and(new Static("id in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId())))); + + int noJoinCount = sysClubService.count(Cnd.NEW().and("dismiss", "=", false) + .and("id", "in", passList) + .and(new Static("id not in (SELECT clubId from club_user WHERE userid = '%s')".formatted(SecurityUtil.getUserId())))); + NutMap nutMap = new NutMap().setv("hasJoinCount", hasJoinCount).setv("noJoinCount", noJoinCount); + return Result.success(nutMap); } @At @@ -122,18 +135,7 @@ public class ClubUserApplyController { @SLog(type = "clubApplyJoin", tag = "提交入会申请", msg = "提交入会申请") public Result submit(@Valid String id) { - sysClubService.dao().clear(SysClubUser.class, Cnd.where("clubId", "=", id).and("userId", "=", SecurityUtil.getUserId())); - SysClubUser sysClubUser = new SysClubUser(); - sysClubUser.setClubId(id); - sysClubUser.setUserId(SecurityUtil.getUserId()); - sysClubUser.setJoinTime(DateUtil.now()); - sysClubUser.setRoleCode(RoleConstant.CLUB_MEMBER.name()); - sysClubUser.setStatus(1); - sysClubUser.setPayed(false); - sysClubUser.setIsNormal(true); - sysClubUser.setGiveMoney(false); - sysClubService.dao().insert(sysClubUser); return Result.success(); } @@ -143,7 +145,6 @@ public class ClubUserApplyController { @SaCheckPermission("club.applyJoin.apply") @SLog(type = "clubApplyJoin", tag = "撤销入会申请", msg = "撤销入会申请") public Result revocation(@Valid String id) { - sysClubService.dao().clear(SysClubUser.class, Cnd.where("clubId", "=", id).and("userId", "=", SecurityUtil.getUserId())); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java index 99e3471..7a3ced7 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java @@ -15,6 +15,7 @@ import com.budwk.app.zhgh.club.model.SysClub; import com.budwk.app.zhgh.club.model.SysClubEvaluate; import com.budwk.app.zhgh.club.service.SysClubEvaluateService; import com.budwk.app.zhgh.club.service.SysClubService; +import com.budwk.app.zhgh.club.vo.ClubEvaluateVo; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -69,8 +70,25 @@ public class ClubEvaluateApplyController { @At @SaCheckPermission("club.evaluate") public Result info(@Valid String id) { - SysClubEvaluate evaluate = evaluateService.fetch(id); - return Result.success(evaluate); + Cnd cnd = Cnd.NEW(); + Sql sql = Sqls.create(""" + SELECT + ce.*, + c.clubName, + c.clubCode, + c.createTime, + d.NAME AS typeName, + c.foundTime + FROM + sys_club_evaluate ce + left join sys_club c on ce.clubId = c.id + LEFT JOIN sys_dict d ON d.CODE = c.clubType + $condition + """); + cnd.andEX("ce.id", "=", id); + sql.setCondition(cnd); + ClubEvaluateVo clubEvaluateVo = evaluateService.fetchVO(sql, ClubEvaluateVo.class); + return Result.success(clubEvaluateVo); } @At diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java index 16edb5d..a30cf07 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java @@ -34,7 +34,6 @@ public class ClubEvaluateSchoolAuditController { @Inject private SysClubEvaluateService sysClubEvaluateService; - @Inject private BpmService bpmService; diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java index bfa2920..3a89597 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java @@ -11,7 +11,6 @@ import com.budwk.app.bpm.service.BpmService; import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.club.model.SysClub; import com.budwk.app.zhgh.club.model.SysClubExamineRegister; -import com.budwk.app.zhgh.club.model.SysClubUser; import com.budwk.app.zhgh.club.service.SysClubExamineService; import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.service.SysClubUserService; @@ -91,10 +90,8 @@ public class ClubExamineApplyController { @At @SaCheckPermission("club") public Result getClubMemberMoney(@Valid String clubId) { - int count = dao.count(SysClubUser.class, Cnd.where("clubId", "=", clubId).and("status", "=", 5).and("isNormal", "=", true)); - SysClub club = dao.fetch(SysClub.class, clubId); - int money = count * (club.getDue() != null ? Integer.parseInt(club.getDue()) : 0); - return Result.success(money); + + return Result.success(); } @At diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubAuditManagerController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubAuditManagerController.java new file mode 100644 index 0000000..58d2ef7 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubAuditManagerController.java @@ -0,0 +1,206 @@ +package com.budwk.app.zhgh.club.controller.infoManage; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.models.BpmProcessTask; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.sys.services.SysUserService; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.club.model.ClubUser; +import com.budwk.app.zhgh.club.model.SysClub; +import com.budwk.app.zhgh.club.model.SysClubManager; +import com.budwk.app.zhgh.club.model.SysClubRule; +import com.budwk.app.zhgh.club.param.ClubUserPageForm; +import com.budwk.app.zhgh.club.service.SysClubInfoManageService; +import com.budwk.app.zhgh.club.service.impl.SysClubUserServiceImpl; +import com.budwk.app.zhgh.club.vo.ClubManagerPageVo; +import com.budwk.app.zhgh.club.vo.ClubRuleUpdatePageVo; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Author: JyuHsin + * @Date: 2024/8/8 11:19 + * @Version: v1.0.0 + * @Description: TODO + **/ +@IocBean +@Ok("json") +@At("/platform/club/infoManage/auditManager") +public class ClubAuditManagerController { + + @Inject + private SysClubInfoManageService infoManageService; + @Inject + private CommonService commonService; + @Inject + private BpmService bpmService; + @Inject + private Dao dao; + @Inject + private SysUserService sysUserService; + @Inject + private SysRoleService sysRoleService; + + @At("") + @Ok("beetl:/platform/zhgh/club/infoManage/auditManager/index.html") + @SaCheckPermission("club.infoManage.auditManager") + public void index() {} + + @At + @SaCheckPermission("club.infoManage.auditManager") + public Result pageData(@Valid ClubUserPageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.*, + club.clubName, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN sys_club_manager info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + LEFT JOIN sys_club club on club.id = info.clubId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("nd.nodeCode","=",50); + cnd.andEX("year(info.creatTime)", "=", pageForm.getYear()); + + if(pageForm.getAudit()){ + cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); + }else{ + cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + } + + if (StrUtil.isNotBlank(pageForm.getClubName())) { + cnd.and("club.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.creatTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + cnd.groupBy("info.id"); + sql.setCondition(cnd); + + Pagination pagination = infoManageService.listPageVO(pageForm, sql, ClubManagerPageVo.class); + List listMap = pagination.getList(ClubManagerPageVo.class); + for (ClubManagerPageVo nutMap : listMap) { + List oldCodeList = Json.fromJsonAsList(String.class, nutMap.getOldRoleCode()); + nutMap.setOldRoleName(SysClubUserServiceImpl.convertRoleName(oldCodeList)); + List nowCodeList = Json.fromJsonAsList(String.class, nutMap.getNowRoleCode()); + nutMap.setNowRoleName(SysClubUserServiceImpl.convertRoleName(nowCodeList)); + } + pagination.setList(listMap); + return Result.success(pagination); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.auditManager") + @SLog(type = "auditManager", tag = "校工会审核理事机构变更", msg = "校工会审核理事机构变更") + public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { + approvalParam.getBpmTaskApprovalTypeEnum(); + Map variables = BeanUtil.beanToMap(approvalParam); + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); + + if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) { + SysClubManager clubManager = dao.fetch(SysClubManager.class, variables.get("processInstanceBusinessId").toString()); + + // 审核通过,变更理事机构和角色 + ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", clubManager.getClubId()).and(ClubUser::getUserId, "=", clubManager.getChangeUserId())); + clubUser.setRoleCode(clubManager.getNowRoleCode()); + // 先清除所有的角色 + dao.clear(Sys_user_role.class, Cnd.where("userId", "=", clubUser.getUserId()).and("clubId", "=", clubUser.getClubId())); + // 设置角色 + List roles = new ArrayList<>(); + for (String s : clubManager.getNowRoleCode()) { + 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.update(clubUser); + dao.insert(roles); + + sysUserService.clearCache(); + sysRoleService.clearCache(); + } + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.auditManager") + @SLog(type = "auditManager", tag = "校工会撤回审核理事机构", msg = "校工会撤回审核理事机构") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + + BpmProcessTask task = dao.fetch(BpmProcessTask.class, taskId); + Map variables = BeanUtil.beanToMap(task.getExtVariable()); + + SysClubManager clubManager = dao.fetch(SysClubManager.class, variables.get("processInstanceBusinessId").toString()); + // 撤回,变更理事机构和角色 + ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", clubManager.getClubId()).and(ClubUser::getUserId, "=", clubManager.getChangeUserId())); + clubUser.setRoleCode(clubManager.getOldRoleCode()); + // 先清除所有的角色 + dao.clear(Sys_user_role.class, Cnd.where("userId", "=", clubUser.getUserId()).and("clubId", "=", clubUser.getClubId())); + // 设置角色 + List roles = new ArrayList<>(); + for (String s : clubManager.getOldRoleCode()) { + 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.update(clubUser); + dao.insert(roles); + + sysUserService.clearCache(); + sysRoleService.clearCache(); + return Result.success(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubChangeManagerController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubChangeManagerController.java new file mode 100644 index 0000000..0f0495b --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubChangeManagerController.java @@ -0,0 +1,212 @@ +package com.budwk.app.zhgh.club.controller.infoManage; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.club.model.ClubUser; +import com.budwk.app.zhgh.club.model.SysClub; +import com.budwk.app.zhgh.club.model.SysClubManager; +import com.budwk.app.zhgh.club.model.SysClubRule; +import com.budwk.app.zhgh.club.param.ClubUserPageForm; +import com.budwk.app.zhgh.club.service.SysClubInfoManageService; +import com.budwk.app.zhgh.club.service.impl.SysClubUserServiceImpl; +import io.swagger.annotations.ApiOperation; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; +import org.nutz.lang.Lang; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName ClubChangeManagerController + * @Author JyuHsin + * @Date 2025/8/26 19:03 + * @Version 1.0 + * @Description TODO + */ +@IocBean +@Ok("json") +@At("/platform/club/infoManage/change") +public class ClubChangeManagerController { + + @Inject + private Dao dao; + @Inject + private SysClubInfoManageService infoManageService; + @Inject + private CommonService commonService; + @Inject + private BpmService bpmService; + + @At("") + @Ok("beetl:/platform/zhgh/club/infoManage/change/index.html") + @SaCheckPermission("club.infoManage.change") + public void index() {} + + @At + @SaCheckPermission("club.infoManage.change") + public Result pageData(@Valid ClubUserPageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.*, + club.clubName, + inst.processInstanceNodeId, + inst.processInstanceNodeCode, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + nd.nodeType AS processInstanceTaskNodeType, + ( + SELECT + count( 1 ) > 0 + FROM + bpm_process_task + WHERE + prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) + AND taskStatus = 'COMPELTE' + ) AS nextTaskIsComplete + FROM + sys_club_manager info + LEFT JOIN sys_club club ON club.id = info.clubId + LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = info.id + LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("year(info.creatTime)", "=", pageForm.getYear()); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { + cnd.and("info.userId", "=", SecurityUtil.getUserId()); + } + if (StrUtil.isNotBlank(pageForm.getClubName())) { + cnd.and("club.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.creatTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination pagination = infoManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + List listMap = pagination.getList(NutMap.class); + for (NutMap nutMap : listMap) { + List oldCodeList = Json.fromJsonAsList(String.class, nutMap.getString("oldRoleCode")); + nutMap.put("oldRoleName", SysClubUserServiceImpl.convertRoleName(oldCodeList)); + List nowCodeList = Json.fromJsonAsList(String.class, nutMap.getString("nowRoleCode")); + nutMap.put("nowRoleName", SysClubUserServiceImpl.convertRoleName(nowCodeList)); + } + pagination.setList(listMap); + return Result.success(pagination); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.change") + @SLog(tag = "协会管理系统-信息管理", msg = "提交变更理事机构") + public Object submit(@Param("data") SysClubManager clubManager) { + + List list = dao.query(SysClubManager.class, Cnd.NEW()); + List idList = list.stream().map(SysClubManager::getId).toList(); + int count = dao.count(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "in", idList).and(BpmProcessInstance::getProcessInstanceStatus, "!=", BpmProcessInstanceStatusEnum.COMPLETED)); + if (count > 0) { + return Result.error("您有该协会的申请记录尚未完成,请核对!"); + } + + ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", clubManager.getClubId()).and(ClubUser::getUserId, "=", clubManager.getUserId())); + clubManager.setUserId(SecurityUtil.getUserId()); + clubManager.setUserName(SecurityUtil.getUserUsername()); + clubManager.setOldRoleCode(clubUser.getRoleCode()); + if(StrUtil.isBlank(clubManager.getId())) clubManager.setCreatTime(DateUtil.now()); + dao.insertOrUpdate(clubManager); + + SysClub club = dao.fetch(SysClub.class, clubManager.getClubId()); + //查询校协会管理员审批人工号 + String clubPresidentLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN, Cnd.NEW()); + if (StrUtil.isBlank(clubPresidentLoginName)) { + return Result.error("校协会管理员未配置审批人,请联系校工会!"); + } + bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_MANAGER.name(), club.getClubName() + "的变更理事机构申请", clubManager.getId(), List.of(clubPresidentLoginName), null); + return Result.success(); + } + + @At + @ApiOperation("删除") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.change") + @SLog(tag = "协会管理系统-信息管理", msg = "删除变更理事机构") + public Result delete(@Param("id") String id) { + dao.delete(SysClubManager.class, id); + bpmService.deleteInstance(id); + return Result.success(); + } + + @At + @SaCheckPermission("club.infoManage.change") + @ApiOperation("撤回") + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "协会评优", msg = "撤回申请") + public Result revokeApply(@Valid String id) { + bpmService.revokeApply(id); + return Result.success(); + } + + @At + @SaCheckPermission("club.infoManage.change") + public Result info(@Valid String id) { + SysClubManager clubManager = dao.fetch(SysClubManager.class, id); + NutMap nutMap = Lang.obj2nutmap(clubManager); + List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.CLUB_MANAGER, id); + nutMap.put("nodeTasks", nodeTasks); + SysClub club = dao.fetch(SysClub.class, clubManager.getClubId()); + nutMap.put("clubName", club.getClubName()); + + nutMap.put("oldRoleName", SysClubUserServiceImpl.convertRoleName(clubManager.getOldRoleCode())); + nutMap.put("nowRoleName", SysClubUserServiceImpl.convertRoleName(clubManager.getNowRoleCode())); + + return Result.success(nutMap); + } + + @At + @SaCheckPermission("club.infoManage.change") + public Object queryClubUsers(@Param("clubId") String clubId) { + List listMap = dao.query(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", clubId)); + List list = listMap.stream().map(ClubUser::getUserId).toList(); + + List userList = dao.query(Sys_user.class, Cnd.where(Sys_user::getId, "in", list)); + Map userMap = userList.stream().collect(Collectors.toMap(Sys_user::getId, Sys_user::getUsername)); + + for (ClubUser clubUser : listMap) { + clubUser.setUserName(userMap.get(clubUser.getUserId())); + } + return Result.success(listMap); + } +} 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 5da5323..9a5098e 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 @@ -20,7 +20,6 @@ import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.model.SysClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubInfoManageService; import com.budwk.app.zhgh.club.service.SysClubUserService; @@ -121,7 +120,6 @@ public class ClubInfoManageController { @SaCheckPermission("club.infoManage.manage") @SLog(type = "infoManage", tag = "修改缴费状态", msg = "修改缴费状态", param = true) public Result updatePayed(@Valid Boolean payed, @Valid String id) { - clubInfoManageService.dao().update(SysClubUser.class, Chain.make("payed", payed), Cnd.where("id", "=", id)); return Result.success(); } @@ -130,7 +128,6 @@ public class ClubInfoManageController { @SaCheckPermission("club.infoManage.manage") @SLog(type = "infoManage", tag = "修改拨付状态", msg = "修改拨付状态", param = true) public Result updateGive(@Valid Boolean giveMoney, @Valid String id) { - clubInfoManageService.dao().update(SysClubUser.class, Chain.make("giveMoney", giveMoney), Cnd.where("id", "=", id)); return Result.success(); } @@ -139,8 +136,7 @@ public class ClubInfoManageController { @SaCheckPermission("club.infoManage.manage") @SLog(type = "infoManage", tag = "撤回变更身份", msg = "撤回变更身份", param = true) public Result rollbackChange(@Valid String id) { - dao.update(SysClubUser.class, Chain.make("state", null).add("changeRoleCode", null) - .add("roleCodeChangeTime", null), Cnd.where("id", "=", id)); + return Result.success(); } @@ -149,15 +145,7 @@ public class ClubInfoManageController { @SaCheckPermission("club.infoManage.manage") @SLog(type = "infoManage", tag = "退会", msg = "退会", param = true) public Result exitClub(@Valid String id) { - SysClubUser clubUser = dao.fetch(SysClubUser.class, id); - Sys_role sysRole = sysRoleService.getByCode(clubUser.getRoleCode()); - dao.update(SysClubUser.class, Chain.make("isNormal", false).add("changeTime", DateUtil.now()) - , Cnd.where("id", "=", id)); - dao.clear(Sys_user_role.class, Cnd.where("userId", "=", clubUser.getUserId()) - .and("roleId", "=", sysRole.getId()) - .and("clubId", "=", clubUser.getClubId())); - sysUserService.clearCache(); - sysRoleService.clearCache(); + return Result.success(); } @@ -286,7 +274,7 @@ public class ClubInfoManageController { group.orLike("t1.username", keyWord).orLike("t1.loginname", keyWord); cnd.and(group); if (addMember != null && !addMember) { - cnd.and(new Static("t1.id in (SELECT userId from club_user WHERE clubId = '%s' and roleCode = '%s')".formatted(clubId, RoleConstant.CLUB_MEMBER.name()))); + cnd.and(new Static("t1.id in (SELECT userId from club_user WHERE clubId = '%s' AND JSON_LENGTH(roleCode) = 1 AND JSON_CONTAINS(roleCode, '\"CLUB_MEMBER\"'))".formatted(clubId))); } else { cnd.and(new Static("t1.id not in (SELECT userId from club_user WHERE clubId = '%s')".formatted(clubId))); } @@ -302,18 +290,12 @@ public class ClubInfoManageController { //查询社团是否存在会长或者秘书长 if (List.of(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_SECRETARY.name()).contains(roleCode)) { - int count = clubInfoManageService.dao().count(ClubUser.class, Cnd.where("clubId", "=", clubId) - .and("roleCode", "=", roleCode)); + int count = clubInfoManageService.dao().count(ClubUser.class, Cnd.where("clubId", "=", clubId) + .and(new Static("JSON_CONTAINS(roleCode, '\"%s\"')".formatted(roleCode)))); if (count > 0) { return Result.error((Objects.equals(roleCode, RoleConstant.CLUB_PRESIDENT.name()) ? "会长" : "秘书长") + "只能有一位"); } } - int status = 0; - if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name()) || Objects.equals(RoleConstant.CLUB_MEMBER.name(), roleCode)) { - status = 5; - } else { - status = 3; - } Sys_role sysRole = sysRoleService.getByCode(roleCode); for (String user : users) { if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name()) || !Objects.equals(RoleConstant.CLUB_MEMBER.name(), roleCode)) { @@ -325,16 +307,22 @@ public class ClubInfoManageController { sysUserService.clearCache(); sysRoleService.clearCache(); } - ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where("clubId", "=", clubId) - .and("userId", "=", user).and("roleCode", "=", RoleConstant.CLUB_MEMBER.name())); - ClubUser cUser = new ClubUser(); - if (clubUser != null) { - cUser = clubUser; - } - cUser.setClubId(clubId); - cUser.setUserId(user); - cUser.setRoleCode(List.of(roleCode)); - sysClubUserService.insertOrUpdate(cUser); + ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where("clubId", "=", clubId).and("userId", "=", user)); + if(clubUser != null) { + List roleCodeList = clubUser.getRoleCode(); + if (List.of(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_VICE_PRESIDENT.name(), RoleConstant.CLUB_SECRETARY.name(), RoleConstant.CLUB_VICE_SECRETARY.name()).contains(roleCode)) { + roleCodeList.remove(RoleConstant.CLUB_MEMBER.name()); + } + if(!roleCodeList.contains(roleCode)) { + roleCodeList.add(roleCode); + } + } else { + clubUser = new ClubUser(); + clubUser.setClubId(clubId); + clubUser.setUserId(user); + clubUser.setRoleCode(List.of(roleCode)); + } + dao.insertOrUpdate(clubUser); } return Result.success(); } @@ -402,7 +390,6 @@ public class ClubInfoManageController { } } - @At @Aop(TransAop.READ_COMMITTED) @SaCheckPermission("club.infoManage.manage") @@ -414,11 +401,9 @@ public class ClubInfoManageController { List sysUsers = sysClubUserService.dao().query(View_user.class, Cnd.where("loginname", "in", loginNames)); List clubUsers = sysClubUserService.dao().query(ClubUser.class, Cnd.where("clubId", "=", businessId)); - List clubUserList = new ArrayList<>(); - if (isFlag) { - sysClubUserService.clear(Cnd.where("clubId", "=", businessId)); + dao.clear(ClubUser.class, Cnd.where("clubId", "=", businessId)); } //返回错误记录 List errorInfos = new ArrayList<>(); @@ -435,7 +420,6 @@ public class ClubInfoManageController { continue; } ClubUser cUser = new ClubUser(); - cUser.setClubPosition(v.getClubPosition()); cUser.setUserId(user.getId()); cUser.setClubId(businessId); cUser.setRoleCode(List.of(RoleConstant.CLUB_MEMBER.name())); @@ -451,7 +435,7 @@ public class ClubInfoManageController { role.setClubId(cUser.getClubId()); sysUserRoleList.add(role); }); - sysClubUserService.insert(sysUserRoleList); + sysClubUserService.dao().insert(sysUserRoleList); //如果有错误数据就返回给前端 if (Lang.isNotEmpty(errorInfos)) { @@ -466,5 +450,4 @@ public class ClubInfoManageController { } return Result.success("导入成功"); } - } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubManagePersonAuditController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubManagePersonAuditController.java deleted file mode 100644 index eb08a1e..0000000 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubManagePersonAuditController.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.budwk.app.zhgh.club.controller.infoManage; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.RoleConstant; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.sys.models.Sys_role; -import com.budwk.app.sys.models.Sys_user_role; -import com.budwk.app.sys.services.SysRoleService; -import com.budwk.app.sys.services.SysUserService; -import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.model.SysClubUser; -import com.budwk.app.zhgh.club.model.SysClubUserBackHistory; -import com.budwk.app.zhgh.club.param.ClubUserPageForm; -import com.budwk.app.zhgh.club.service.SysClubInfoManageService; -import com.budwk.app.zhgh.club.service.SysClubService; -import com.budwk.app.zhgh.club.service.SysClubUserService; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Cnd; -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; -import org.nutz.mvc.annotation.Ok; - -import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; - -/** - * @Author: JyuHsin - * @Date: 2024/8/8 11:19 - * @Version: v1.0.0 - * @Description: TODO - **/ -@IocBean -@Ok("json") -@At("/platform/club/infoManage/clubManagePersonAudit") -public class ClubManagePersonAuditController { - - @Inject - private SysClubInfoManageService clubInfoManageService; - - @Inject - private SysClubService sysClubService; - - @Inject - private SysClubUserService sysClubUserService; - - @Inject - private SysUserService sysUserService; - - @Inject - private SysRoleService sysRoleService; - - @Inject - private CommonService commonService; - - @At("") - @Ok("beetl:/platform/zhgh/club/infoManage/clubManagePersonAudit/index.html") - @SaCheckPermission("club.infoManage.clubManagePersonAudit") - public void index() { - } - - @At - @SaCheckPermission("club.infoManage.clubManagePersonAudit") - public Result pageData(@Valid ClubUserPageForm pageForm) { - Pagination pagination = clubInfoManageService.clubManagePersonAuditPageData(pageForm); - return Result.success(pagination); - } - - @At - @SaCheckPermission("club.infoManage.clubManagePersonAudit") - public Result getAllClub() { - //List list = sysClubService.query(Cnd.where("state", "=", ClubRegistAuditState.SCHOOL_PASS).asc("clubCode")); - List list = sysClubService.query(Cnd.NEW().asc("clubCode")); - return Result.success(list); - } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.infoManage.clubManagePersonAudit") - @SLog(type = "clubManagePersonAudit", tag = "校工会审核理事机构", msg = "校工会审核理事机构") - public Result doAudit(@Valid String[] ids, @Valid Boolean isPass) { - List clubUsers = sysClubUserService.query(Cnd.where("id", "in", ids)); - List list = new ArrayList<>(); - clubUsers.forEach(item -> { - if (item.getStatus() == 5) { - item.setState(isPass ? 3 : 2); - if (isPass) { - item.setRoleCode(item.getChangeRoleCode()); - } - item.setChangeRoleCode(null); - item.setRoleCodeChangeTime(null); - } else { - item.setStatus(isPass ? 5 : 4); - } - if (isPass) { - - List roleList = commonService.findUserRoleByRoleCode(List.of( - RoleConstant.CLUB_PRESIDENT.name(), - RoleConstant.CLUB_VICE_PRESIDENT.name(), - RoleConstant.CLUB_SECRETARY.name(), - RoleConstant.CLUB_VICE_SECRETARY.name() - )); - - sysClubService.dao().clear(Sys_user_role.class, Cnd.where("clubId", "=", item.getClubId()).and("userId", "=", item.getUserId()) - .and("roleId", "in", roleList)); - Sys_user_role sys_user_role = new Sys_user_role(); - sys_user_role.setUserId(item.getUserId()); - Sys_role sysRole = sysRoleService.getByCode(item.getRoleCode()); - sys_user_role.setRoleId(sysRole.getId()); - sys_user_role.setClubId(item.getClubId()); - sysClubService.dao().insert(sys_user_role); - - SysClubUserBackHistory backHistory = new SysClubUserBackHistory(); - backHistory.setUserId(item.getUserId()); - backHistory.setClubId(item.getClubId()); - backHistory.setBTime(cn.hutool.core.date.DateUtil.now()); - backHistory.setRoleCode(item.getRoleCode()); - list.add(backHistory); - } - }); - sysClubService.dao().update(clubUsers); - sysClubService.dao().insert(list); - sysUserService.clearCache(); - sysRoleService.clearCache(); - return Result.success(); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRefreshReportController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRefreshReportController.java index 3918a7f..5a8ffd9 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRefreshReportController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRefreshReportController.java @@ -1,23 +1,45 @@ package com.budwk.app.zhgh.club.controller.infoManage; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.club.model.SysClub; +import com.budwk.app.zhgh.club.model.SysClubRefresh; +import com.budwk.app.zhgh.club.model.SysClubRule; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubInfoManageService; import com.budwk.app.zhgh.club.service.SysClubService; +import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; 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.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.List; /** * @Author: JyuHsin @@ -32,9 +54,14 @@ public class ClubRefreshReportController { @Inject private SysClubInfoManageService clubInfoManageService; - @Inject private SysClubService sysClubService; + @Inject + private Dao dao; + @Inject + private CommonService commonService; + @Inject + private BpmService bpmService; @At("") @Ok("beetl:/platform/zhgh/club/infoManage/refreshReport/index.html") @@ -45,17 +72,110 @@ public class ClubRefreshReportController { @At @SaCheckPermission("club.infoManage.refreshReport") public Result pageData(@Valid ClubUserPageForm pageForm) { - Pagination pagination = clubInfoManageService.reportPageData(pageForm); - return Result.success(pagination); + Sql sql = Sqls.create(""" + SELECT + info.*, + club.clubName, + inst.processInstanceNodeId, + inst.processInstanceNodeCode, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + nd.nodeType AS processInstanceTaskNodeType, + ( + SELECT + count( 1 ) > 0 + FROM + bpm_process_task + WHERE + prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) + AND taskStatus = 'COMPELTE' + ) AS nextTaskIsComplete + FROM + sys_club_refresh info + LEFT JOIN sys_club club ON club.id = info.clubId + LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = info.id + LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("year(info.creatTime)", "=", pageForm.getYear()); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { + cnd.and("info.userId", "=", SecurityUtil.getUserId()); + } + if (StrUtil.isNotBlank(pageForm.getClubName())) { + cnd.and("club.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.creatTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination pagination = clubInfoManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); } @At @Aop(TransAop.READ_COMMITTED) @SaCheckPermission("club.infoManage.refreshReport") - @SLog(type = "refreshReport", tag = "提交换届报告", msg = "提交换届报告") - public Object refreshDo(SysClub club) { + @SLog(tag = "协会管理系统-提交换届报告", msg = "提交换届报告") + public Object submit(@Param("data") SysClubRefresh refresh) { - sysClubService.update(Chain.make("replaceReport", club.getReplaceReport()).add("reportState", 1), Cnd.where("id", "=", club.getId())); - return Result.success(); + List list = dao.query(SysClubRefresh.class, Cnd.NEW()); + List idList = list.stream().map(SysClubRefresh::getId).toList(); + int count = dao.count(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "in", idList).and(BpmProcessInstance::getProcessInstanceStatus, "!=", BpmProcessInstanceStatusEnum.COMPLETED)); + if (count > 0) { + return Result.error("您有该协会的申请记录尚未完成,请核对!"); + } + + SysClub club = clubInfoManageService.dao().fetch(SysClub.class, refresh.getClubId()); + refresh.setUserId(SecurityUtil.getUserId()); + refresh.setUserName(SecurityUtil.getUserUsername()); + refresh.setLastFiles(club.getRulesFile()); + if(StrUtil.isBlank(refresh.getId())) refresh.setCreatTime(DateUtil.now()); + clubInfoManageService.dao().insertOrUpdate(refresh); + + //查询校协会管理员审批人工号 + String clubPresidentLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN, Cnd.NEW()); + if (StrUtil.isBlank(clubPresidentLoginName)) { + return Result.error("校协会管理员未配置审批人,请联系校工会!"); + } + bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_REFRESH_REPORT.name(), club.getClubName() + "的换届报告申请", refresh.getId(), List.of(clubPresidentLoginName), null); + return Result.success(); } + + @At + @ApiOperation("删除") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.refreshReport") + @SLog(tag = "协会管理系统-信息管理", msg = "删除换届报告") + public Result delete(@Param("id") String id) { + dao.delete(SysClubRefresh.class, id); + bpmService.deleteInstance(id); + return Result.success(); + } + + @At + @SaCheckPermission("club.infoManage.refreshReport") + @ApiOperation("撤回") + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "协会评优", msg = "撤回申请") + public Result revokeApply(@Valid String id) { + bpmService.revokeApply(id); + return Result.success(); + } + + @At + @SaCheckPermission("club.infoManage.refreshReport") + public Result info(@Valid String id) { + SysClubRefresh clubRefresh = dao.fetch(SysClubRefresh.class, id); + NutMap nutMap = Lang.obj2nutmap(clubRefresh); + List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.CLUB_REFRESH_REPORT, id); + nutMap.put("nodeTasks", nodeTasks); + SysClub club = dao.fetch(SysClub.class, clubRefresh.getClubId()); + nutMap.put("clubName", club.getClubName()); + return Result.success(nutMap); + } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRuleUpdateController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRuleUpdateController.java index 9835320..0d945aa 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRuleUpdateController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubRuleUpdateController.java @@ -1,23 +1,45 @@ package com.budwk.app.zhgh.club.controller.infoManage; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.club.model.SysClub; +import com.budwk.app.zhgh.club.model.SysClubRule; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubInfoManageService; import com.budwk.app.zhgh.club.service.SysClubService; +import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; 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.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.List; /** * @Author: JyuHsin @@ -32,9 +54,14 @@ public class ClubRuleUpdateController { @Inject private SysClubInfoManageService clubInfoManageService; - @Inject private SysClubService sysClubService; + @Inject + private Dao dao; + @Inject + private CommonService commonService; + @Inject + private BpmService bpmService; @At("") @Ok("beetl:/platform/zhgh/club/infoManage/ruleUpdate/index.html") @@ -45,18 +72,110 @@ public class ClubRuleUpdateController { @At @SaCheckPermission("club.infoManage.ruleUpdate") public Result pageData(@Valid ClubUserPageForm pageForm) { - Pagination pagination = clubInfoManageService.reportPageData(pageForm); - return Result.success(pagination); + Sql sql = Sqls.create(""" + SELECT + info.*, + club.clubName, + inst.processInstanceNodeId, + inst.processInstanceNodeCode, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + nd.nodeType AS processInstanceTaskNodeType, + ( + SELECT + count( 1 ) > 0 + FROM + bpm_process_task + WHERE + prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) + AND taskStatus = 'COMPELTE' + ) AS nextTaskIsComplete + FROM + sys_club_rule info + LEFT JOIN sys_club club ON club.id = info.clubId + LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = info.id + LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("year(info.creatTime)", "=", pageForm.getYear()); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { + cnd.and("info.userId", "=", SecurityUtil.getUserId()); + } + if (StrUtil.isNotBlank(pageForm.getClubName())) { + cnd.and("club.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.creatTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination pagination = clubInfoManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); } - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.infoManage.ruleUpdate") - @SLog(type = "ruleUpdate", tag = "提交章程备案", msg = "提交章程备案") - public Object ruleDo(SysClub club) { + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.ruleUpdate") + @SLog(tag = "协会管理系统-信息管理", msg = "提交章程备案") + public Object submit(@Param("data")SysClubRule clubRule) { - sysClubService.update(Chain.make("afterRulesFile", club.getAfterRulesFile()) - .add("ruleState", 1), Cnd.where("id", "=", club.getId())); - return Result.success(); - } + List list = dao.query(SysClubRule.class, Cnd.NEW()); + List idList = list.stream().map(SysClubRule::getId).toList(); + int count = dao.count(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "in", idList).and(BpmProcessInstance::getProcessInstanceStatus, "!=", BpmProcessInstanceStatusEnum.COMPLETED)); + if (count > 0) { + return Result.error("您有该协会的申请记录尚未完成,请核对!"); + } + + SysClub club = clubInfoManageService.dao().fetch(SysClub.class, clubRule.getClubId()); + clubRule.setUserId(SecurityUtil.getUserId()); + clubRule.setUserName(SecurityUtil.getUserUsername()); + clubRule.setLastFiles(club.getRulesFile()); + if(StrUtil.isBlank(clubRule.getId())) clubRule.setCreatTime(DateUtil.now()); + clubInfoManageService.dao().insertOrUpdate(clubRule); + + //查询校协会管理员审批人工号 + String clubPresidentLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN, Cnd.NEW()); + if (StrUtil.isBlank(clubPresidentLoginName)) { + return Result.error("校协会管理员未配置审批人,请联系校工会!"); + } + bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_RULE_UPDATE.name(), club.getClubName() + "的章程修订申请", clubRule.getId(), List.of(clubPresidentLoginName), null); + return Result.success(); + } + + @At + @ApiOperation("删除") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.ruleUpdate") + @SLog(tag = "协会管理系统-信息管理", msg = "删除章程备案") + public Result delete(@Param("id") String id) { + dao.delete(SysClubRule.class, id); + bpmService.deleteInstance(id); + return Result.success(); + } + + @At + @SaCheckPermission("club.infoManage.ruleUpdate") + @ApiOperation("撤回") + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "协会评优", msg = "撤回申请") + public Result revokeApply(@Valid String id) { + bpmService.revokeApply(id); + return Result.success(); + } + + @At + @SaCheckPermission("club.infoManage.ruleUpdate") + public Result info(@Valid String id) { + SysClubRule rule = dao.fetch(SysClubRule.class, id); + NutMap nutMap = Lang.obj2nutmap(rule); + List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.CLUB_RULE_UPDATE, id); + nutMap.put("nodeTasks", nodeTasks); + SysClub club = dao.fetch(SysClub.class, rule.getClubId()); + nutMap.put("clubName", club.getClubName()); + return Result.success(nutMap); + } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditReportController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditReportController.java index cfb9b0b..6c989b6 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditReportController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditReportController.java @@ -1,25 +1,41 @@ package com.budwk.app.zhgh.club.controller.infoManage; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.models.BpmProcessTask; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.model.SysClubFiles; +import com.budwk.app.zhgh.club.model.SysClubRefresh; +import com.budwk.app.zhgh.club.model.SysClubRule; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubInfoManageService; import com.budwk.app.zhgh.club.service.SysClubService; +import com.budwk.app.zhgh.club.vo.ClubRefreshReportPageVo; +import com.budwk.app.zhgh.club.vo.ClubRuleUpdatePageVo; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; 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; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.Map; /** * @Author: JyuHsin @@ -34,9 +50,12 @@ public class ClubSchoolAuditReportController { @Inject private SysClubInfoManageService clubInfoManageService; - @Inject private SysClubService sysClubService; + @Inject + private BpmService bpmService; + @Inject + private Dao dao; @At("") @Ok("beetl:/platform/zhgh/club/infoManage/schoolAuditReport/index.html") @@ -47,32 +66,85 @@ public class ClubSchoolAuditReportController { @At @SaCheckPermission("club.infoManage.schoolAuditReport") public Result pageData(@Valid ClubUserPageForm pageForm) { - Pagination pagination = clubInfoManageService.schoolAuditReportPageData(pageForm); - return Result.success(pagination); + Sql sql = Sqls.create(""" + SELECT + info.*, + club.clubName, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN sys_club_refresh info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + LEFT JOIN sys_club club on club.id = info.clubId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("nd.nodeCode","=",50); + cnd.andEX("year(info.creatTime)", "=", pageForm.getYear()); + + if(pageForm.getAudit()){ + cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); + }else{ + cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + } + + if (StrUtil.isNotBlank(pageForm.getClubName())) { + cnd.and("club.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.creatTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + cnd.groupBy("info.id"); + sql.setCondition(cnd); + + Pagination pagination = clubInfoManageService.listPageVO(pageForm, sql, ClubRefreshReportPageVo.class); + return Result.success(pagination); } - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.infoManage.schoolAuditReport") - @SLog(type = "schoolAuditRule", tag = "校工会审核换届报告", msg = "校工会审核换届报告") - public Object auditDo(@Valid String id, @Valid Boolean pass) { + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.schoolAuditReport") + @SLog(type = "schoolAuditRule", tag = "校工会审核换届报告", msg = "校工会审核换届报告") + public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { + approvalParam.getBpmTaskApprovalTypeEnum(); + Map variables = BeanUtil.beanToMap(approvalParam); + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - SysClub sysClub = sysClubService.fetch(id); - if (pass) { - sysClubService.update(Chain.make("replaceReport", sysClub.getReplaceReport()) - .add("reportState", 3), Cnd.where("id", "=", id)); - //文件留痕 - SysClubFiles clubFiles = new SysClubFiles(); - clubFiles.setUserId(SecurityUtil.getUserId()); - clubFiles.setUserName(SecurityUtil.getUserUsername()); - clubFiles.setClubId(sysClub.getId()); - clubFiles.setBTime(cn.hutool.core.date.DateUtil.now()); - clubFiles.setFileType(2); - clubFiles.setFiles(sysClub.getReplaceReport()); - sysClubService.dao().insert(clubFiles); - } else { - sysClubService.update(Chain.make("reportState", 2), Cnd.where("id", "=", id)); - } - return Result.success(); - } + if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) { + SysClubRefresh clubRefresh = dao.fetch(SysClubRefresh.class, variables.get("processInstanceBusinessId").toString()); + SysClub club = dao.fetch(SysClub.class, clubRefresh.getClubId()); + club.setReplaceReport(clubRefresh.getFiles()); + dao.update(club); + } + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.schoolAuditReport") + @SLog(type = "schoolAuditRule", tag = "校工会撤回换届报告", msg = "校工会撤回换届报告") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + + BpmProcessTask task = dao.fetch(BpmProcessTask.class, taskId); + Map variables = BeanUtil.beanToMap(task.getExtVariable()); + + SysClubRefresh clubRefresh = dao.fetch(SysClubRefresh.class, variables.get("processInstanceBusinessId").toString()); + SysClub club = dao.fetch(SysClub.class, clubRefresh.getClubId()); + club.setReplaceReport(clubRefresh.getLastFiles()); + dao.update(club); + return Result.success(); + } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditRuleController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditRuleController.java index 86c76a5..fa1672f 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditRuleController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubSchoolAuditRuleController.java @@ -1,25 +1,41 @@ package com.budwk.app.zhgh.club.controller.infoManage; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.models.BpmProcessTask; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.model.SysClubFiles; +import com.budwk.app.zhgh.club.model.SysClubRule; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubInfoManageService; import com.budwk.app.zhgh.club.service.SysClubService; +import com.budwk.app.zhgh.club.vo.ClubEvaluatePageVo; +import com.budwk.app.zhgh.club.vo.ClubRuleUpdatePageVo; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; 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; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.List; +import java.util.Map; /** * @Author: JyuHsin @@ -34,9 +50,12 @@ public class ClubSchoolAuditRuleController { @Inject private SysClubInfoManageService clubInfoManageService; - @Inject private SysClubService sysClubService; + @Inject + private BpmService bpmService; + @Inject + private Dao dao; @At("") @Ok("beetl:/platform/zhgh/club/infoManage/schoolAuditRule/index.html") @@ -47,32 +66,85 @@ public class ClubSchoolAuditRuleController { @At @SaCheckPermission("club.infoManage.schoolAuditRule") public Result pageData(@Valid ClubUserPageForm pageForm) { - Pagination pagination = clubInfoManageService.schoolAuditRulePageData(pageForm); - return Result.success(pagination); + Sql sql = Sqls.create(""" + SELECT + info.*, + club.clubName, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN sys_club_rule info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + LEFT JOIN sys_club club on club.id = info.clubId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("nd.nodeCode","=",50); + cnd.andEX("year(info.creatTime)", "=", pageForm.getYear()); + + if(pageForm.getAudit()){ + cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); + }else{ + cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + } + + if (StrUtil.isNotBlank(pageForm.getClubName())) { + cnd.and("club.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.creatTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + cnd.groupBy("info.id"); + sql.setCondition(cnd); + + Pagination pagination = clubInfoManageService.listPageVO(pageForm, sql, ClubRuleUpdatePageVo.class); + return Result.success(pagination); } - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.infoManage.schoolAuditRule") - @SLog(type = "schoolAuditRule", tag = "校工会审核章程备案", msg = "校工会审核章程备案") - public Object auditDo(@Valid String id, @Valid Boolean pass) { + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.schoolAuditRule") + @SLog(type = "schoolAuditRule", tag = "校工会审核章程修订", msg = "校工会审核章程修订") + public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { + approvalParam.getBpmTaskApprovalTypeEnum(); + Map variables = BeanUtil.beanToMap(approvalParam); + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - SysClub sysClub = sysClubService.fetch(id); - if (pass) { - sysClubService.update(Chain.make("rulesFile", sysClub.getAfterRulesFile()) - .add("ruleState", 3), Cnd.where("id", "=", id)); - //文件留痕 - SysClubFiles clubFiles = new SysClubFiles(); - clubFiles.setUserId(SecurityUtil.getUserId()); - clubFiles.setUserName(SecurityUtil.getUserUsername()); - clubFiles.setClubId(sysClub.getId()); - clubFiles.setBTime(cn.hutool.core.date.DateUtil.now()); - clubFiles.setFileType(1); - clubFiles.setFiles(sysClub.getAfterRulesFile()); - sysClubService.dao().insert(clubFiles); - } else { - sysClubService.update(Chain.make("ruleState", 2), Cnd.where("id", "=", id)); - } - return Result.success(); - } + if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) { + SysClubRule rule = dao.fetch(SysClubRule.class, variables.get("processInstanceBusinessId").toString()); + SysClub club = dao.fetch(SysClub.class, rule.getClubId()); + club.setRulesFile(rule.getFiles()); + dao.update(club); + } + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("club.infoManage.schoolAuditRule") + @SLog(type = "schoolAuditRule", tag = "校工会撤回章程修订", msg = "校工会撤回章程修订") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + + BpmProcessTask task = dao.fetch(BpmProcessTask.class, taskId); + Map variables = BeanUtil.beanToMap(task.getExtVariable()); + + SysClubRule rule = dao.fetch(SysClubRule.class, variables.get("processInstanceBusinessId").toString()); + SysClub club = dao.fetch(SysClub.class, rule.getClubId()); + club.setRulesFile(rule.getLastFiles()); + dao.update(club); + return Result.success(); + } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java index 048da83..db75dac 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java @@ -150,7 +150,7 @@ public class ClubRegistApplyController { @At @SaCheckPermission("club") public Result createCode() { - int count = sysClubService.count(Cnd.where("createTime", "=", DateUtil.thisYear())); + int count = sysClubService.count(Cnd.where("year(createTime)", "=", DateUtil.thisYear())); String s = String.format("%02d", count + 1); return Result.success().addData(Convert.toStr(DateUtil.thisYear()) + s); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java index 7abeed1..7812a05 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java @@ -20,7 +20,7 @@ import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.sys.services.SysUserService; import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.club.model.SysClubUser; +import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.vo.ClubRegisterPageVo; @@ -89,26 +89,25 @@ public class ClubSchoolReplyController { //如果审核通过,就给角色 //找理事机构 - List clubUsers = sysClubService.dao().query(SysClubUser.class, Cnd.where("clubId", "=", approvalParam.getProcessInstanceBusinessId()) - .and("roleCode", "!=", RoleConstant.CLUB_MEMBER.name()) - .and("isNormal", "=", true) - .and("status", "=", 5)); - //找会长 - List clubPresidents = clubUsers.stream().filter(o -> o.getRoleCode().equals(RoleConstant.CLUB_PRESIDENT.name())).toList(); - if(Objects.equals(approvalParam.getBpmTaskApprovalType(), BpmTaskApprovalTypeEnum.PASS.name())) { - List userRoles = new ArrayList<>(); - clubUsers.forEach(cu -> { - Sys_user_role uRole = new Sys_user_role(); - Sys_role sysRole = sysRoleService.getByCode(cu.getRoleCode()); - uRole.setRoleId(sysRole.getId()); - uRole.setUserId(cu.getUserId()); - uRole.setClubId(approvalParam.getProcessInstanceBusinessId()); - userRoles.add(uRole); - }); - sysClubService.dao().insert(userRoles); - sysUserService.clearCache(); - sysRoleService.clearCache(); - } + List clubUsers = sysClubService.dao().query( + ClubUser.class, + Cnd.where("clubId", "=", approvalParam.getProcessInstanceBusinessId()) + ); + List list = new ArrayList<>(); + for (ClubUser clubUser : clubUsers) { + for (String role : clubUser.getRoleCode()) { + Sys_user_role userRole = new Sys_user_role(); + Sys_role sysRole = sysRoleService.getByCode(role); + userRole.setRoleId(sysRole.getId()); + userRole.setUserId(clubUser.getUserId()); + userRole.setClubId(approvalParam.getProcessInstanceBusinessId()); + list.add(userRole); + } + } + + sysClubService.dao().insert(list); + sysUserService.clearCache(); + sysRoleService.clearCache(); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java b/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java index 0e4f8f9..abecf08 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java @@ -24,6 +24,7 @@ import com.budwk.app.zhgh.club.model.SysClub; import com.budwk.app.zhgh.club.model.SysClubEvaluate; import com.budwk.app.zhgh.club.model.SysClubExamineRegister; import com.budwk.app.zhgh.club.service.SysClubService; +import com.budwk.app.zhgh.club.service.impl.SysClubUserServiceImpl; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.Workbook; import org.nutz.dao.Cnd; @@ -32,6 +33,7 @@ import org.nutz.dao.sql.Sql; import org.nutz.http.Http; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -59,7 +61,6 @@ public class ClubStatisticsController { private static final Logger log = LoggerFactory.getLogger(ClubStatisticsController.class); @Inject private SysClubService sysClubService; - @Inject private SysRoleService sysRoleService; @@ -112,25 +113,36 @@ public class ClubStatisticsController { u.mobile, u.unitname as unitName, u.userState, - c.roleCode, - r.name AS roleName + c.* FROM club_user c LEFT JOIN `vw_user` u ON u.id = c.userId - LEFT JOIN sys_role r on r.code = c.roleCode $condition - ORDER BY FIELD( c.roleCode, 'CLUB_PRESIDENT', 'CLUB_VICE_PRESIDENT', 'CLUB_SECRETARY', 'CLUB_VICE_SECRETARY', 'CLUB_OPERATOR', 'CLUB_MEMBER' ) + ORDER BY + CASE + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_PRESIDENT"') THEN 1 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_VICE_PRESIDENT"') THEN 2 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_SECRETARY"') THEN 3 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_VICE_SECRETARY"') THEN 4 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_MEMBER"') THEN 5 + ELSE 99 + END """); Cnd cnd = Cnd.NEW(); cnd.and("c.clubId", "=", clubId); cnd.andEX("u.userState", "=", userState); cnd.andEX("u.sex", "=", sex); -// cnd.andEX("c.giveMoney", "=", giveMoney); -// cnd.andEX("c.isNormal", "=", true); -// cnd.andEX("c.status", "=", 5); - sql.setCondition(cnd); - Pagination pagination = sysClubService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); - return Result.success(pagination); + sql.setCondition(cnd); + Pagination pagination = sysClubService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + List listMap = pagination.getList(NutMap.class); + for (NutMap nutMap : listMap) { + List list = Json.fromJsonAsList(String.class, nutMap.getString("roleCode")); + String roleName = SysClubUserServiceImpl.convertRoleName(list); + nutMap.put("roleName", roleName); + nutMap.put("roleCode", list); + } + pagination.setList(listMap); + return Result.success(pagination); } @At @@ -143,7 +155,7 @@ public class ClubStatisticsController { HttpServletResponse response) throws IOException { response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + URLUtil.encode("人员明细.zip")); - Sql sql = Sqls.create(""" + Sql sql = Sqls.create(""" SELECT u.username as userName, u.loginname as loginName, @@ -151,14 +163,20 @@ public class ClubStatisticsController { u.mobile, u.unitname as unitName, u.userstate as userState, - r.name AS roleName, - c.clubId + c.* FROM club_user c LEFT JOIN `vw_user` u ON u.id = c.userId - LEFT JOIN sys_role r on r.code = c.roleCode $condition - ORDER BY FIELD( c.roleCode, 'CLUB_PRESIDENT', 'CLUB_VICE_PRESIDENT', 'CLUB_SECRETARY', 'CLUB_VICE_SECRETARY', 'CLUB_OPERATOR', 'CLUB_MEMBER' ) + ORDER BY + CASE + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_PRESIDENT"') THEN 1 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_VICE_PRESIDENT"') THEN 2 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_SECRETARY"') THEN 3 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_VICE_SECRETARY"') THEN 4 + WHEN JSON_CONTAINS(c.roleCode, '"CLUB_MEMBER"') THEN 5 + ELSE 99 + END """); Cnd cnd = Cnd.NEW(); if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { @@ -170,11 +188,14 @@ public class ClubStatisticsController { cnd.andEX("c.clubId", "=", clubId); cnd.andEX("u.userState", "=", userState); cnd.andEX("u.sex", "=", sex); -// cnd.andEX("c.giveMoney", "=", giveMoney); -// cnd.andEX("c.isNormal", "=", true); -// cnd.andEX("c.status", "=", 5); sql.setCondition(cnd); List listMap = sysClubService.listMap(sql); + for (NutMap nutMap : listMap) { + List list = Json.fromJsonAsList(String.class, nutMap.getString("roleCode")); + String roleName = SysClubUserServiceImpl.convertRoleName(list); + nutMap.put("roleName", roleName); + nutMap.put("roleCode", list); + } //获取所有社团 Cnd stCnd = Cnd.NEW(); stCnd.andEX("id", "=", clubId); @@ -187,8 +208,6 @@ public class ClubStatisticsController { exportEntities.add(new ExcelExportEntity("联系方式", "mobile", 20)); exportEntities.add(new ExcelExportEntity("所在单位", "unitName", 20)); exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); -// exportEntities.add(new ExcelExportEntity("是否拨付", "giveMoney", 20)); -// exportEntities.add(new ExcelExportEntity("是否缴费", "payed", 20)); exportEntities.add(new ExcelExportEntity("职务", "roleName", 20)); ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream())); clubList.forEach(item -> { @@ -314,11 +333,11 @@ public class ClubStatisticsController { club.clubCode, club.clubName, sum( CASE WHEN cu.userId is not null $myCondition THEN 1 ELSE 0 END ) AS total, - sum( CASE WHEN su.userState = '在职' $myCondition THEN 1 ELSE 0 END ) AS `work`, + sum( CASE WHEN su.userState in ('在职', '在岗') $myCondition THEN 1 ELSE 0 END ) AS `work`, sum( CASE WHEN su.userState in ('退休') $myCondition THEN 1 ELSE 0 END ) AS retire, - sum( CASE WHEN su.sex = '男' $myCondition THEN 1 ELSE 0 END ) AS man, - sum( CASE WHEN su.sex = '女' $myCondition THEN 1 ELSE 0 END ) AS woman, - sum( CASE WHEN cu.roleCode != 'CLUB_MEMBER' AND 1 = 1 $myCondition THEN 1 ELSE 0 END ) AS governing_body + sum( CASE WHEN su.sex like '%男%' $myCondition THEN 1 ELSE 0 END ) AS man, + sum( CASE WHEN su.sex like '%女%' $myCondition THEN 1 ELSE 0 END ) AS woman, + sum( CASE WHEN ('CLUB_PRESIDENT' MEMBER OF (cu.roleCode) or 'CLUB_VICE_PRESIDENT' MEMBER OF (cu.roleCode) or 'CLUB_SECRETARY' MEMBER OF (cu.roleCode) or 'CLUB_VICE_SECRETARY' MEMBER OF (cu.roleCode)) AND 1 = 1 $myCondition THEN 1 ELSE 0 END ) AS governing_body FROM sys_club club LEFT JOIN club_user cu ON cu.clubId = club.id diff --git a/src/main/java/com/budwk/app/zhgh/club/model/ClubUser.java b/src/main/java/com/budwk/app/zhgh/club/model/ClubUser.java index 3dce257..75dfbea 100644 --- a/src/main/java/com/budwk/app/zhgh/club/model/ClubUser.java +++ b/src/main/java/com/budwk/app/zhgh/club/model/ClubUser.java @@ -62,4 +62,5 @@ public class ClubUser extends BaseModel { @ColDefine(type = ColType.VARCHAR, width = 500) private String awardsExperience; + private String userName; } diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClubFiles.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClubFiles.java deleted file mode 100644 index 3686e4e..0000000 --- a/src/main/java/com/budwk/app/zhgh/club/model/SysClubFiles.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.budwk.app.zhgh.club.model; - -import cn.hutool.json.JSONObject; -import com.budwk.app.base.model.BaseModel; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.nutz.dao.entity.annotation.*; -import org.nutz.dao.interceptor.annotation.PrevInsert; - -import java.util.List; - -/** - * @Author: JyuHsin - * @Date: 2024/8/8 10:54 - * @Version: v1.0.0 - * @Description: TODO - **/ -@Data -@EqualsAndHashCode(callSuper = true) -@Table("sys_club_files") -@TableMeta("{'mysql-charset':'utf8mb4'}") -@Comment("协会相关文件") -public class SysClubFiles extends BaseModel { - - @Column - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) - private String id; - - @Column - @Comment("用户") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String userId; - - @Column - @Comment("用户姓名") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String userName; - - @Column - @Comment("社团id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String clubId; - - @Column - @Comment("备份时间") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String bTime; - - @Column - @Comment("文件类型,1是换届报告,2是章程") - @ColDefine(type = ColType.INT) - private Integer fileType; - - @Column - @Comment("文件") - @ColDefine(type = ColType.MYSQL_JSON) - private List files; -} diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClubManager.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClubManager.java new file mode 100644 index 0000000..dc18775 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/model/SysClubManager.java @@ -0,0 +1,71 @@ +package com.budwk.app.zhgh.club.model; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.util.List; + +/** + * @ClassName SysClubManager + * @Author JyuHsin + * @Date 2025/8/26 19:09 + * @Version 1.0 + * @Description TODO + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Table("sys_club_manager") +@TableMeta("{'mysql-charset':'utf8mb4'}") +@Comment("协会理事机构") +public class SysClubManager extends BaseModel { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("用户姓名") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userName; + + @Column + @Comment("变更人id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String changeUserId; + + @Column + @Comment("变更人姓名") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String changeUserName; + + @Column + @Comment("社团id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String clubId; + + @Column + @Comment("提交时间") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String creatTime; + + @Column + @Comment("旧身份") + @ColDefine(type = ColType.MYSQL_JSON) + private List oldRoleCode; + + @Column + @Comment("变更的身份") + @ColDefine(type = ColType.MYSQL_JSON) + private List nowRoleCode; +} diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClubRefresh.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClubRefresh.java new file mode 100644 index 0000000..8701fa2 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/model/SysClubRefresh.java @@ -0,0 +1,62 @@ +package com.budwk.app.zhgh.club.model; + +import cn.hutool.json.JSONObject; +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.util.List; + +/** + * @ClassName SysClubRefresh + * @Author JyuHsin + * @Date 2025/8/26 14:36 + * @Version 1.0 + * @Description TODO + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Table("sys_club_refresh") +@TableMeta("{'mysql-charset':'utf8mb4'}") +@Comment("协会换届报告") +public class SysClubRefresh extends BaseModel { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("用户姓名") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userName; + + @Column + @Comment("社团id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String clubId; + + @Column + @Comment("提交时间") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String creatTime; + + @Column + @Comment("上一次的文件") + @ColDefine(type = ColType.MYSQL_JSON) + private List lastFiles; + + @Column + @Comment("文件") + @ColDefine(type = ColType.MYSQL_JSON) + private List files; +} diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClubRule.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClubRule.java new file mode 100644 index 0000000..3fb5d95 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/model/SysClubRule.java @@ -0,0 +1,62 @@ +package com.budwk.app.zhgh.club.model; + +import cn.hutool.json.JSONObject; +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.util.List; + +/** + * @ClassName SysClubRule + * @Author JyuHsin + * @Date 2025/8/26 10:35 + * @Version 1.0 + * @Description TODO + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Table("sys_club_rule") +@TableMeta("{'mysql-charset':'utf8mb4'}") +@Comment("协会章程修订") +public class SysClubRule extends BaseModel { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("用户姓名") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userName; + + @Column + @Comment("社团id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String clubId; + + @Column + @Comment("提交时间") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String creatTime; + + @Column + @Comment("上一次的文件") + @ColDefine(type = ColType.MYSQL_JSON) + private List lastFiles; + + @Column + @Comment("文件") + @ColDefine(type = ColType.MYSQL_JSON) + private List files; +} diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClubUser.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClubUser.java deleted file mode 100644 index ef561cb..0000000 --- a/src/main/java/com/budwk/app/zhgh/club/model/SysClubUser.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.budwk.app.zhgh.club.model; - -import com.budwk.app.base.model.BaseModel; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.nutz.dao.entity.annotation.*; -import org.nutz.dao.interceptor.annotation.PrevInsert; -import org.nutz.lang.util.NutMap; - -import javax.validation.constraints.NotEmpty; -import java.util.List; - -/** - * @Author: JyuHsin - * @Date: 2024/8/7 10:17 - * @Version: v1.0.0 - * @Description: TODO - **/ -@Data -@EqualsAndHashCode(callSuper = true) -@Table("sys_club_user") -@TableMeta("{'mysql-charset':'utf8mb4'}") -@Comment("协会成员") -public class SysClubUser extends BaseModel { - - @Column - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) - private String id; - - @Column - @Comment("协会id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @NotEmpty(message = "协会不能为空") - private String clubId; - - @Column - @Comment("用户id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @NotEmpty(message = "用户不能为空") - private String userId; - - @Column - @Comment("入社时间") - @ColDefine(type = ColType.VARCHAR, width = 50) - private String joinTime; - - @Column - @Comment("身份") - @ColDefine(type = ColType.VARCHAR, width = 30) - private String roleCode; - - @Column - @Comment("是否缴费") - @ColDefine(type = ColType.BOOLEAN) - private Boolean payed; - - @Column - @Comment("是否拨付") - @ColDefine(type = ColType.BOOLEAN) - private Boolean giveMoney; - - @Column - @Comment("状态(1 待协会审核 2 协会审核不通过 3 待校工会审核 4 校工会审核不通过 5 通过)") - @ColDefine(type = ColType.INT, width = 4) - private Integer status; - - @Column - @Comment("退会状态(1 待协会审核 2 协会审核不通过 3 待校工会审核 4 校工会审核不通过 5 通过)") - @ColDefine(type = ColType.INT, width = 4) - private Integer exitStatus; - - @Column - @Comment("理事机构成员变更时的审核状态(1 待校工会审核 2 校工会审核拒绝 3 审核成功)") - @ColDefine(type = ColType.INT, width = 4) - private Integer state; - - @Column - @Comment("变更之后的身份") - @ColDefine(type = ColType.VARCHAR, width = 30) - private String changeRoleCode; - - @Column - @Comment("变更时间") - @ColDefine(type = ColType.VARCHAR, width = 30) - private String roleCodeChangeTime; - - @Column - @ColDefine(type = ColType.MYSQL_JSON) - @Comment("审核记录") - private List auditList; - - @Column - @ColDefine(type = ColType.MYSQL_JSON) - @Comment("退出审核记录") - private List exitAuditList; - - @Column - @Comment("是否正常,此字段相当于一个标识,删除或者退休,设置为false,不会真正的从数据库删除,目的是为了后面统计年度成员情况") - @ColDefine(type = ColType.BOOLEAN) - private Boolean isNormal; - - @Column - @Comment("isNormal变化的时间") - @ColDefine(type = ColType.VARCHAR, width = 30) - private String changeTime; - - @Column - @Comment("职务") - @ColDefine(type = ColType.VARCHAR, width = 30) - private String position; - - @Column - @Comment("加入、退出") - @ColDefine(type = ColType.BOOLEAN) - private Boolean mode; - - @Column - @Comment("邮箱") - @ColDefine(type = ColType.VARCHAR, width = 100) - private String email; - - @Column - @Comment("头像") - @ColDefine(type = ColType.VARCHAR, width = 500) - private String avatar; - - @Column - @Comment("同时参加其他协会情况") - @ColDefine(type = ColType.VARCHAR, width = 500) - private String sameTimeJoinOtherClubSituation; - - @Column - @Comment("文化、体育方面的活动经历、获奖情况") - @ColDefine(type = ColType.VARCHAR, width = 500) - private String awardsExperience; -} diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClubUserBackHistory.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClubUserBackHistory.java deleted file mode 100644 index a13d930..0000000 --- a/src/main/java/com/budwk/app/zhgh/club/model/SysClubUserBackHistory.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.budwk.app.zhgh.club.model; - -import com.budwk.app.base.model.BaseModel; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.nutz.dao.entity.annotation.*; -import org.nutz.dao.interceptor.annotation.PrevInsert; - -import javax.validation.constraints.NotEmpty; - -/** - * @Author: JyuHsin - * @Date: 2024/7/5 16:52 - * @Version: v1.0.0 - * @Description: TODO - **/ -@Data -@EqualsAndHashCode(callSuper = true) -@Table("sys_club_user_back_history") -@TableMeta("{'mysql-charset':'utf8mb4'}") -@Comment("协会成员备份表") -public class SysClubUserBackHistory extends BaseModel { - - @Column - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) - private String id; - - @Column - @Comment("用户") - @ColDefine(type = ColType.VARCHAR, width = 32) - @NotEmpty(message = "用户不能为空") - private String userId; - - @Column - @Comment("协会id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @NotEmpty(message = "协会不能为空") - private String clubId; - - @Column - @Comment("备份时间") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String bTime; - - @Column - @Comment("身份") - @ColDefine(type = ColType.VARCHAR, width = 60) - @NotEmpty(message = "身份不能为空") - private String roleCode; -} diff --git a/src/main/java/com/budwk/app/zhgh/club/service/SysClubInfoManageService.java b/src/main/java/com/budwk/app/zhgh/club/service/SysClubInfoManageService.java index d882798..924626a 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/SysClubInfoManageService.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/SysClubInfoManageService.java @@ -23,12 +23,6 @@ public interface SysClubInfoManageService extends BaseService Pagination infoManageUserPageData(@Valid ClubUserPageForm pageForm); - Pagination reportPageData(@Valid ClubUserPageForm pageForm); - - Pagination schoolAuditRulePageData(@Valid ClubUserPageForm pageForm); - - Pagination schoolAuditReportPageData(@Valid ClubUserPageForm pageForm); - Pagination clubManagePersonAuditPageData(@Valid ClubUserPageForm pageForm); List getClubTreeData(); diff --git a/src/main/java/com/budwk/app/zhgh/club/service/SysClubUserService.java b/src/main/java/com/budwk/app/zhgh/club/service/SysClubUserService.java index c8520b7..e0a0695 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/SysClubUserService.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/SysClubUserService.java @@ -3,7 +3,7 @@ package com.budwk.app.zhgh.club.service; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.service.BaseService; -import com.budwk.app.zhgh.club.model.SysClubUser; +import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import org.nutz.dao.Cnd; import org.nutz.lang.util.NutMap; @@ -17,7 +17,7 @@ import java.util.List; * @Version: v1.0.0 * @Description: TODO **/ -public interface SysClubUserService extends BaseService { +public interface SysClubUserService extends BaseService { List getClubUser(@Valid String clubId); diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java index 6e8cafd..c1db317 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java @@ -89,7 +89,7 @@ public class SysClubEvaluateServiceImpl extends BaseServiceImpl @Override public Pagination schoolAuditPageData(ClubUserPageForm pageForm) { Cnd cnd = Cnd.NEW(); - cnd.and("nd.nodeCode","=",20); + cnd.and("nd.nodeCode","=",50); Sql sql = generateSql(pageForm, cnd); return listPageVO(pageForm, sql, ClubEvaluatePageVo.class); } diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java index 404216c..8900c28 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java @@ -90,23 +90,37 @@ public class SysClubExamineServiceImpl extends BaseServiceImpl getJgUser(String clubId) { - Sql sql = Sqls.create(""" + Sql sql = Sqls.create(""" SELECT cl.*, u.username as userName, u.loginname as loginName, u.unitname as unitName, - u.mobile, - r.`name` AS roleName + u.mobile FROM club_user cl LEFT JOIN `vw_user` u ON cl.userId = u.id - LEFT JOIN sys_role r ON r.code = cl.roleCode WHERE cl.clubId = @clubId - ORDER BY FIELD( cl.roleCode, 'CLUB_PRESIDENT', 'CLUB_VICE_PRESIDENT', 'CLUB_SECRETARY', 'CLUB_VICE_SECRETARY','CLUB_OPERATOR', 'CLUB_MEMBER' ) - """).setParam("clubId", clubId).setParam("roleCode", RoleConstant.CLUB_MEMBER.name()); - return listMap(sql); + AND NOT JSON_CONTAINS(cl.roleCode, '"CLUB_MEMBER"') + ORDER BY + CASE + WHEN JSON_CONTAINS(cl.roleCode, '"CLUB_PRESIDENT"') THEN 1 + WHEN JSON_CONTAINS(cl.roleCode, '"CLUB_VICE_PRESIDENT"') THEN 2 + WHEN JSON_CONTAINS(cl.roleCode, '"CLUB_SECRETARY"') THEN 3 + WHEN JSON_CONTAINS(cl.roleCode, '"CLUB_VICE_SECRETARY"') THEN 4 + WHEN JSON_CONTAINS(cl.roleCode, '"CLUB_MEMBER"') THEN 5 + ELSE 99 + END + """).setParam("clubId", clubId); + List listMap = listMap(sql); + for (NutMap nutMap : listMap) { + List list = Json.fromJsonAsList(String.class, nutMap.getString("roleCode")); + String roleName = SysClubUserServiceImpl.convertRoleName(list); + nutMap.put("roleName", roleName); + nutMap.put("roleCode", list); + } + return listMap; } @Override diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java index 8829429..677f0a2 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java @@ -25,8 +25,10 @@ import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; @@ -36,6 +38,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -63,16 +66,15 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl infoManagePageData(ClubUserPageForm pageForm) { Cnd cnd = Cnd.NEW(); -// Sql sql = generateSql(pageForm, cnd); Sql sql = Sqls.create(""" SELECT c.*, d.NAME AS typeName, ( SELECT - count( DISTINCT scu.userId ) - FROM - club_user scu + count( DISTINCT scu.userId ) + FROM + club_user scu WHERE scu.clubId = c.id ) currentNum, @@ -80,9 +82,9 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl reportPageData(ClubUserPageForm pageForm) { - Cnd cnd = Cnd.NEW(); - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { - - List roleList = commonService.findUserRoleByRoleCode(List.of( - RoleConstant.CLUB_PRESIDENT.name(), - RoleConstant.CLUB_VICE_PRESIDENT.name(), - RoleConstant.CLUB_SECRETARY.name(), - RoleConstant.CLUB_VICE_SECRETARY.name() - )); - - List userRoles = dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()) - .and("roleId", "in", roleList)); - List clubIdList = userRoles.stream().map(Sys_user_role::getClubId).collect(Collectors.toList()); - cnd.and("c.id", "in", clubIdList); - } - Sql sql = generateSql(pageForm, cnd); - return listPageVO(pageForm, sql, ClubCommonPageVo.class); - } - - @Override - public Pagination schoolAuditRulePageData(ClubUserPageForm pageForm) { - - Cnd cnd = Cnd.NEW(); - cnd.and("ruleState", "=", 1); - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { - cnd.and("c.userId", "=", SecurityUtil.getUserId()); - } - Sql sql = generateSql(pageForm, cnd); - return listPageVO(pageForm, sql, ClubCommonPageVo.class); - } - - @Override - public Pagination schoolAuditReportPageData(ClubUserPageForm pageForm) { - Cnd cnd = Cnd.NEW(); - cnd.and("reportState", "=", 1); - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { - cnd.and("c.userId", "=", SecurityUtil.getUserId()); - } - Sql sql = Sqls.create(""" - SELECT - c.*, - d.NAME AS typeName, - ( - SELECT count( DISTINCT scu.userId ) - FROM club_user scu - WHERE - scu.clubId = c.id - ) currentNum, - presidentUser.username AS clubLeader, - secretaryUser.username AS clubSecretary - FROM - sys_club c - LEFT JOIN club_user presidentCu on presidentCu.clubId = c.id AND presidentCu.roleCode = 'CLUB_PRESIDENT' - LEFT JOIN sys_user presidentUser on presidentUser.id = presidentCu.userId - LEFT JOIN club_user secretaryCu on secretaryCu.clubId = c.id AND secretaryCu.roleCode = 'CLUB_SECRETARY' - LEFT JOIN sys_user secretaryUser on secretaryUser.id = secretaryCu.userId - LEFT JOIN sys_dict d ON d.CODE = c.clubType - LEFT JOIN bpm_process_instance ins ON ins.processInstanceBusinessId = c.id - $condition - """); - if (StrUtil.isNotBlank(pageForm.getClubName())) { - cnd.and("c.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); - } - cnd.andEX("year(c.createTime)", "=", pageForm.getYear()); - cnd.and("c.dismiss", "=", false); - cnd.and("ins.processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED); - cnd.asc("c.state").desc("createTime"); - sql.setCondition(cnd); - return listPageVO(pageForm, sql, ClubCommonPageVo.class); + Pagination listPageVO = sysClubService.listPageVO(pageForm, sql, ClubUserCommonPageVo.class); + List listMap = listPageVO.getList(ClubUserCommonPageVo.class); + for (ClubUserCommonPageVo vo : listMap) { + List list = vo.getRoleCode(); + List cleanedCodes = list.stream() + .filter(Objects::nonNull) + .map(String::strip) + .map(code -> code.startsWith("\"") && code.endsWith("\"") + ? code.substring(1, code.length() - 1) + : code) + .toList(); + String roleName = SysClubUserServiceImpl.convertRoleName(cleanedCodes); + vo.setRoleName(roleName); + vo.setRoleCode(cleanedCodes); + } + listPageVO.setList(listMap); + return listPageVO; } @Override @@ -326,10 +268,10 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl memberList = listMap(memberSql); + for (NutMap nutMap : memberList) { + List list = Json.fromJsonAsList(String.class, nutMap.getString("roleCode")); + String roleName = SysClubUserServiceImpl.convertRoleName(list); + nutMap.put("roleName", roleName); + nutMap.put("roleCode", list); + } HashMap docData = new HashMap<>(clubInfo); docData.put("cys", memberList); @@ -368,7 +323,7 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl implements SysC @Override public Pagination getAllClubWithPage(PageForm pageForm, Cnd cnd) { -// (select count(*) from sys_user where userState in ('在职', '在岗') and id in (select userId from sys_club_user where clubId = club.id and `status` = 5 and isNormal = true)) as workNum, -// (select count(*) from sys_user where userState in ('退休') and id in (select userId from sys_club_user where clubId = club.id and `status` = 5 and isNormal = true)) as retireNum, Sql sql = Sqls.create(""" SELECT club.*, u.username as concatPersonName, - (select GROUP_CONCAT(username) from sys_user where id in (select userId from club_user u where u.clubId=club.id and u.roleCode='CLUB_PRESIDENT')) as clubLeader, - (select GROUP_CONCAT(username) from sys_user where id in (select userId from club_user u where u.clubId=club.id and u.roleCode='CLUB_SECRETARY')) as clubSecretary, + (select GROUP_CONCAT(username) from sys_user where id in (select userId from club_user u where u.clubId=club.id and JSON_CONTAINS(u.roleCode, '"CLUB_PRESIDENT"'))) as clubLeader, + (select GROUP_CONCAT(username) from sys_user where id in (select userId from club_user u where u.clubId=club.id and JSON_CONTAINS(u.roleCode, '"CLUB_SECRETARY"'))) as clubSecretary, (SELECT count( DISTINCT scu.userId ) FROM club_user scu WHERE scu.clubId = club.id ) currentPeopleNum FROM sys_club club @@ -187,14 +185,6 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC dao().clear(SysClubSponsor.class, Cnd.where("clubId", "=", club.getId())); dao().insertLinks(club, "sponsors"); - //if (!Objects.equals(club.getState(), ClubRegistAuditState.SCHOOL_PASS)) { - //插入新建社团时填入的理事机构 -// List users = dao().query(SysClubUser.class, Cnd.NEW().andEX("id", "in", deleteIds)); -// List idList = users.stream().map(SysClubUser::getUserId).collect(Collectors.toList()); -// List roleList = commonService.findUserRoleByRoleCode(List.of(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_VICE_PRESIDENT.name(), RoleConstant.CLUB_SECRETARY.name(), RoleConstant.CLUB_VICE_SECRETARY.name())); -// if (Lang.isNotEmpty(deleteIds)) { -// dao().clear(SysClubUser.class, Cnd.where("id", "in", deleteIds)); -// } dao().clear(Sys_user_role.class, Cnd.where("clubId", "=", club.getId())); dao().clear(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", club.getId())); @@ -208,28 +198,6 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC }).toList(); dao().insert(clubUsers); } - -// List clubUsers = new ArrayList<>(); -// managePerson.forEach(item -> { -// SysClubUser cUser = new SysClubUser(); -// SysClubUser fetch = dao().fetch(SysClubUser.class, Cnd.where("clubId", "=", club.getId()).and("userId", "=", item.getString("userId"))); -// if (fetch != null) { -// cUser = fetch; -// cUser.setUserId(item.getString("userId")); -// cUser.setRoleCode(item.getString("roleCode")); -// } else { -// cUser.setClubId(club.getId()); -// cUser.setUserId(item.getString("userId")); -// cUser.setJoinTime(DateUtil.now()); -// cUser.setRoleCode(item.getString("roleCode")); -// cUser.setPayed(true); -// cUser.setStatus(5); -// cUser.setGiveMoney(true); -// cUser.setIsNormal(true); -// } -// clubUsers.add(cUser); -// dao().insertOrUpdate(cUser); -// }); return club; } diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubUserServiceImpl.java index 998c348..4441a22 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubUserServiceImpl.java @@ -8,8 +8,7 @@ import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.club.model.SysClubUser; -import com.budwk.app.zhgh.club.model.SysClubUserBackHistory; +import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.service.SysClubUserService; @@ -23,11 +22,11 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; import org.nutz.lang.util.NutMap; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -37,7 +36,7 @@ import java.util.stream.Collectors; * @Description: TODO **/ @IocBean(args = {"refer:dao"}) -public class SysClubUserServiceImpl extends BaseServiceImpl implements SysClubUserService { +public class SysClubUserServiceImpl extends BaseServiceImpl implements SysClubUserService { @Inject private SysClubService sysClubService; @@ -68,9 +67,23 @@ public class SysClubUserServiceImpl extends BaseServiceImpl impleme LEFT JOIN sys_user u ON scu.userId = u.id LEFT JOIN sys_unit unit ON u.unitid = unit.id WHERE scu.clubId = @clubId - ORDER BY FIELD( scu.roleCode, 'CLUB_PRESIDENT', 'CLUB_VICE_PRESIDENT', 'CLUB_SECRETARY', 'CLUB_VICE_SECRETARY', 'CLUB_MEMBER' ) - """).setParam("clubId", clubId); - return listMap(sql); + ORDER BY + CASE + WHEN JSON_CONTAINS(scu.roleCode, '"CLUB_PRESIDENT"') THEN 1 + WHEN JSON_CONTAINS(scu.roleCode, '"CLUB_VICE_PRESIDENT"') THEN 2 + WHEN JSON_CONTAINS(scu.roleCode, '"CLUB_SECRETARY"') THEN 3 + WHEN JSON_CONTAINS(scu.roleCode, '"CLUB_VICE_SECRETARY"') THEN 4 + WHEN JSON_CONTAINS(scu.roleCode, '"CLUB_MEMBER"') THEN 5 + ELSE 99 + END + """).setParam("clubId", clubId); + List listMap = listMap(sql); + for (NutMap nutMap : listMap) { + List list = Json.fromJsonAsList(String.class, nutMap.getString("roleCode")); + String roleName = convertRoleName(list); + nutMap.put("roleName", roleName); + } + return listMap; } @Override @@ -147,38 +160,7 @@ public class SysClubUserServiceImpl extends BaseServiceImpl impleme @Valid Integer auditType, @Valid Integer applyType, @Valid Boolean payed) { - Cnd cnd = Cnd.NEW(); - cnd.where().andInStrArray("id", ids); - int status = 0; - if (auditType == 1) { - status = auditResult ? 5 : 2; - } else if (auditType == 2) { - status = auditResult ? 5 : 4; - } - List auditList = new ArrayList<>(); - auditList.add(NutMap.NEW().addv("auditUser", SecurityUtil.getUserId()).addv("auditState", auditResult) - .addv("auditTime", DateUtil.now()).addv("auditType", auditType == 1 ? "club" : "school")); - if(applyType == 1) { - update(Chain.make("status", status).add("payed", payed).add("auditList", auditList), cnd); - //备份会员 - List list = new ArrayList<>(); - for (String id : ids) { - SysClubUser sysClubUser = fetch(id); - SysClubUserBackHistory backHistory = new SysClubUserBackHistory(); - backHistory.setUserId(sysClubUser.getUserId()); - backHistory.setClubId(sysClubUser.getClubId()); - backHistory.setBTime(cn.hutool.core.date.DateUtil.now()); - backHistory.setRoleCode(sysClubUser.getRoleCode()); - list.add(backHistory); - } - dao().insert(list); - } else { - Chain exitStatus = Chain.make("exitStatus", status).add("exitAuditList", auditList); - if(status == 5) { - exitStatus.add("isNormal", false); - } - update(exitStatus, cnd); - } + } @Override @@ -187,4 +169,19 @@ public class SysClubUserServiceImpl extends BaseServiceImpl impleme List userList = commonService.findUserInfoByRoleCode("clubId", clubId, RoleConstant.CLUB_PRESIDENT.name()); return userList.stream().map(Sys_user::getLoginname).collect(Collectors.joining(",")); } + + public static String convertRoleName(List roleCodes) { + if (roleCodes == null || roleCodes.isEmpty()) { + return ""; + } + Map codeToName = Arrays.stream(RoleConstant.values()) + .collect(Collectors.toMap( + Enum::name, + role -> role.roleName + )); + return roleCodes.stream() + .map(codeToName::get) + .filter(Objects::nonNull) + .collect(Collectors.joining(",")); + } } diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubManagerPageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubManagerPageVo.java new file mode 100644 index 0000000..20ce6dd --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubManagerPageVo.java @@ -0,0 +1,30 @@ +package com.budwk.app.zhgh.club.vo; + +import com.budwk.app.bpm.vo.BpmTaskApprovalVo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @ClassName ClubManagerPageVo + * @Author JyuHsin + * @Date 2025/9/9 9:28 + * @Version 1.0 + * @Description TODO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ClubManagerPageVo extends BpmTaskApprovalVo { + + private String id; + private String year; + private String clubId; + private String clubName; + private String creatTime; + private String userName; + private String changeUserId; + private String changeUserName; + private String oldRoleCode; + private String oldRoleName; + private String nowRoleCode; + private String nowRoleName; +} diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubRefreshReportPageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubRefreshReportPageVo.java new file mode 100644 index 0000000..e804bf0 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubRefreshReportPageVo.java @@ -0,0 +1,29 @@ +package com.budwk.app.zhgh.club.vo; + +import cn.hutool.json.JSONObject; +import com.budwk.app.bpm.vo.BpmTaskApprovalVo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @ClassName ClubRuleUpdatePageVo + * @Author JyuHsin + * @Date 2025/9/8 17:58 + * @Version 1.0 + * @Description TODO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ClubRefreshReportPageVo extends BpmTaskApprovalVo { + + private String id; + private String year; + private String clubId; + private String clubName; + private String creatTime; + private String userName; + private List lastFiles; + private List files; +} diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubRuleUpdatePageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubRuleUpdatePageVo.java new file mode 100644 index 0000000..a1724a2 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubRuleUpdatePageVo.java @@ -0,0 +1,30 @@ +package com.budwk.app.zhgh.club.vo; + +import cn.hutool.json.JSONObject; +import com.budwk.app.bpm.vo.BpmTaskApprovalVo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +/** + * @ClassName ClubRuleUpdatePageVo + * @Author JyuHsin + * @Date 2025/9/8 17:58 + * @Version 1.0 + * @Description TODO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ClubRuleUpdatePageVo extends BpmTaskApprovalVo { + + private String id; + private String year; + private String clubId; + private String clubName; + private String creatTime; + private String userName; + private List lastFiles; + private List files; +} diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java index fac82e6..1f77723 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java @@ -1,7 +1,7 @@ package com.budwk.app.zhgh.club.vo; import cn.hutool.json.JSONObject; -import com.budwk.app.zhgh.club.model.SysClubUser; +import com.budwk.app.zhgh.club.model.ClubUser; import lombok.Data; import lombok.EqualsAndHashCode; @@ -9,7 +9,7 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) -public class ClubUserCommonPageVo extends SysClubUser { +public class ClubUserCommonPageVo extends ClubUser { private String clubName; private String clubCode; diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserImportVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserImportVo.java index 53da0c4..553f8cf 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserImportVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserImportVo.java @@ -27,11 +27,6 @@ public class ClubUserImportVo { @ExcelProperty("姓名") private String username; - @ExcelProperty("协会职务") - private String clubPosition; - @ExcelIgnore private String errorInfo; - - } diff --git a/src/main/resources/static/assets/platform/js/util/commonUtil.js b/src/main/resources/static/assets/platform/js/util/commonUtil.js index 1f5c769..b16a6d5 100644 --- a/src/main/resources/static/assets/platform/js/util/commonUtil.js +++ b/src/main/resources/static/assets/platform/js/util/commonUtil.js @@ -17,7 +17,7 @@ const commonUtil = { if (response.config.responseType === "blob") { return response } - if (response.data && response.data.code !== 0) { + if (response.data && response.data.code !== 0 && response.data.code !== 99) { if (isMobile) { vant.Toast(response.data.msg) } else { diff --git a/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html b/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html index 22390f8..ebb5eaa 100644 --- a/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html +++ b/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html @@ -96,8 +96,8 @@ layout("/layouts/platform.html"){ + + - - - - - - 取消 - 确定 - -