This commit is contained in:
=
2026-05-06 15:47:01 +08:00
parent 4bd10c5337
commit 2956cb6622
9 changed files with 66 additions and 9 deletions
@@ -68,7 +68,7 @@ public class ClubUserJoinApplyController {
@Inject
private ClubUserJoinService clubUserJoinService;
@At("/")
@At("")
@SaCheckPermission("club.join.apply")
@Ok("beetl:/platform/zhgh/club/join/apply/index.html")
public void index() {
@@ -128,6 +128,12 @@ public class ClubUserJoinApplyController {
@SLog(tag = "社团管理系统-申请入/退会", msg = "申请社团入/退会")
public Result submit(@Param("data") ClubUserApply clubUserApply,
@Param("mode") Boolean mode) {
if (Boolean.TRUE.equals(mode)) {
String qualificationMsg = clubUserJoinService.checkJoinQualification(SecurityUtil.getUserId());
if (StrUtil.isNotBlank(qualificationMsg)) {
return Result.error(99, qualificationMsg);
}
}
if(mode == false) {
clubUserApply = clubUserJoinService.buildExitApply(clubUserApply.getClubId(), SecurityUtil.getUserId());
if (ObjectUtil.isEmpty(clubUserApply)) {
@@ -192,6 +198,10 @@ public class ClubUserJoinApplyController {
@ApiOperation("校验是否申请过社团")
@SaCheckPermission(value = {"club.join.apply", "h5.club.join.apply"}, mode = SaMode.OR)
public Result checkApplyClub(@Valid String clubId) {
String qualificationMsg = clubUserJoinService.checkJoinQualification(SecurityUtil.getUserId());
if (StrUtil.isNotBlank(qualificationMsg)) {
return Result.error(99, qualificationMsg);
}
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()));
if (user.getMember() != 1) {
return Result.error(99, "抱歉,您不满足入会的条件!");
@@ -48,7 +48,7 @@ public class ClubUserJoinApprovalController {
@Inject
private ClubUserJoinService clubUserJoinService;
@At("/")
@At("")
@SaCheckPermission("club.join.clubApproval")
@Ok("beetl:/platform/zhgh/club/join/clubApproval/index.html")
public void index() {}
@@ -45,7 +45,7 @@ public class ClubUserJoinMineController {
@Inject
private ClubUserJoinService clubUserJoinService;
@At("/")
@At("")
@SaCheckPermission("club.join.mine")
@Ok("beetl:/platform/zhgh/club/join/mine/index.html")
public void index() {}
@@ -25,4 +25,12 @@ public interface ClubUserJoinService extends BaseService<ClubUserApply> {
* @return 入会时间
*/
java.util.Date resolveJoinTime(String clubId, String userId);
/**
* 校验当前用户是否满足申请加入社团的资格。
*
* @param userId 用户ID
* @return 校验不通过时返回提示语,通过时返回null
*/
String checkJoinQualification(String userId);
}
@@ -1,6 +1,9 @@
package com.budwk.app.zhgh.club.service.impl;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.zhgh.club.model.ClubUser;
import com.budwk.app.zhgh.club.model.ClubUserApply;
@@ -15,10 +18,37 @@ import java.util.List;
@IocBean(args = {"refer:dao"})
public class ClubUserJoinServiceImpl extends BaseServiceImpl<ClubUserApply> implements ClubUserJoinService {
private static final List<String> ALLOW_JOIN_PERSON_TYPES = List.of(
"教职工",
"未起薪人员",
"教职工新入会",
"教职工其他",
"劳动服务公司",
"后勤聘用人员",
"退休人员[一]",
"退休人员[二]",
"校聘劳务派遣全额"
);
public ClubUserJoinServiceImpl(Dao dao) {
super(dao);
}
@Override
public String checkJoinQualification(String userId) {
View_user user = dao().fetch(View_user.class, Cnd.where("id", "=", userId));
if (user == null) {
return "抱歉,您不满足入会的条件!";
}
if (user.getMember() == null || user.getMember() != 1) {
return "抱歉,您不满足入会的条件!";
}
if (StrUtil.isBlank(user.getPersonType()) || !ALLOW_JOIN_PERSON_TYPES.contains(user.getPersonType())) {
return "抱歉,您不满足入会的条件!";
}
return null;
}
@Override
public ClubUserApply buildExitApply(String clubId, String userId) {
// 优先复用最近一次申请记录中的补充信息,避免用户重复填写基础资料。
@@ -275,7 +275,14 @@ public class SysClubServiceImpl extends BaseServiceImpl<SysClub> implements SysC
}
cnd.andEX("year(info.createTime)", "=", pageForm.getYear());
cnd.and("info.userId", "=", SecurityUtil.getUserId());
cnd.desc("createTime");
// 我的注册列表默认按社团编码升序展示,点击表头时按用户选择的方向排序。
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.asc("info.clubCode");
} else if ("clubCode".equals(pageForm.getPageOrderName())) {
cnd.orderBy("info.clubCode", PageUtil.getOrder(pageForm.getPageOrderBy()));
} else {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("info.id");
sql.setCondition(cnd);
return listPageVO(pageForm, sql, ClubRegisterPageVo.class);