| | |
| | | package cn.iocoder.yudao.module.ums.service.member; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.archive.api.document.ArchiveDocumentApi; |
| | |
| | | * 会员系统账号默认部门 ID(system_dept 中「学会会员」) |
| | | */ |
| | | private static final Long MEMBER_DEPT_ID = 129L; |
| | | |
| | | /** |
| | | * 普通会员角色 ID(system_role「普通会员」) |
| | | * |
| | | * <p>该角色只分配「我的资料」菜单,不包含档案管理等后台菜单,用于实现权限隔离。 |
| | | */ |
| | | private static final Long MEMBER_ROLE_ID = 9100L; |
| | | |
| | | public static final String MEMBER_RECORD_TYPE = "ums_member"; |
| | | |
| | |
| | | |
| | | // 会员等级与类型匹配校验 |
| | | validateMemberGrade(createReqVO.getMemberType(), createReqVO.getMemberGrade()); |
| | | validateFeePaid(createReqVO); |
| | | |
| | | UmsMemberDO member = BeanUtils.toBean(createReqVO, UmsMemberDO.class, in -> in |
| | | .setNo(no) |
| | |
| | | public void updateMember(UmsMemberSaveReqVO updateReqVO) { |
| | | validateMemberExists(updateReqVO.getId()); |
| | | validateMemberGrade(updateReqVO.getMemberType(), updateReqVO.getMemberGrade()); |
| | | validateFeePaid(updateReqVO); |
| | | |
| | | // 取消「已缴纳会费」时需要把缴费年度真正清空(updateById 会忽略 null 字段) |
| | | boolean clearFeeYear = Boolean.FALSE.equals(updateReqVO.getFeePaid()); |
| | | if (clearFeeYear) { |
| | | updateReqVO.setFeeYear(null); |
| | | } |
| | | |
| | | UmsMemberDO updateObj = BeanUtils.toBean(updateReqVO, UmsMemberDO.class); |
| | | memberMapper.updateById(updateObj); |
| | | if (clearFeeYear) { |
| | | memberMapper.update(null, new LambdaUpdateWrapper<UmsMemberDO>() |
| | | .eq(UmsMemberDO::getId, updateReqVO.getId()) |
| | | .set(UmsMemberDO::getFeeYear, null)); |
| | | } |
| | | |
| | | storageAttachmentApi.updateAttachments("file", MEMBER_RECORD_TYPE, |
| | | updateReqVO.getId(), updateReqVO.getBlobIds()); |
| | |
| | | .setNickname(nickname) |
| | | .setDeptId(MEMBER_DEPT_ID) |
| | | .setPostIds(Collections.emptySet()) |
| | | .setRoleIds(Collections.singleton(MEMBER_ROLE_ID)) |
| | | .setMobile(mobile) |
| | | .setPassword(mobile) // 默认密码为手机号 |
| | | .setEmail(application.getContactEmail()) |
| | |
| | | /** |
| | | * 校验会员等级与类型匹配:单位会员(type=2)不可选个人专有等级「5-理事长」 |
| | | */ |
| | | /** 已缴纳会费时必须填写缴费年度 */ |
| | | private void validateFeePaid(UmsMemberSaveReqVO reqVO) { |
| | | if (Boolean.TRUE.equals(reqVO.getFeePaid()) && reqVO.getFeeYear() == null) { |
| | | throw exception(MEMBER_FEE_YEAR_REQUIRED); |
| | | } |
| | | } |
| | | |
| | | private void validateMemberGrade(Integer memberType, String memberGrade) { |
| | | if (memberType == null || StrUtil.isBlank(memberGrade)) { |
| | | return; |