|
@@ -40,7 +40,7 @@ public class FamilyJoinRequestService {
|
|
|
/**
|
|
/**
|
|
|
* 创建家庭加入请求(待审批)
|
|
* 创建家庭加入请求(待审批)
|
|
|
*/
|
|
*/
|
|
|
- public FamilyJoinRequest createJoinRequest(Long userId, String inviteCode) {
|
|
|
|
|
|
|
+ public FamilyJoinRequest createJoinRequest(Long userId, String inviteCode, String familyRole) {
|
|
|
Family family;
|
|
Family family;
|
|
|
|
|
|
|
|
// 支持传入 familyId(数字)作为 inviteCode
|
|
// 支持传入 familyId(数字)作为 inviteCode
|
|
@@ -106,6 +106,7 @@ public class FamilyJoinRequestService {
|
|
|
request.setTargetFamilyId(family.getId());
|
|
request.setTargetFamilyId(family.getId());
|
|
|
request.setJoinMethod("by_code");
|
|
request.setJoinMethod("by_code");
|
|
|
request.setInviteRef(inviteCode.trim());
|
|
request.setInviteRef(inviteCode.trim());
|
|
|
|
|
+ request.setFamilyRole(familyRole);
|
|
|
request.setStatus("pending");
|
|
request.setStatus("pending");
|
|
|
request.setCreatedAt(new Date());
|
|
request.setCreatedAt(new Date());
|
|
|
request.setUpdatedAt(new Date());
|
|
request.setUpdatedAt(new Date());
|
|
@@ -151,6 +152,7 @@ public class FamilyJoinRequestService {
|
|
|
} else {
|
|
} else {
|
|
|
if (user.getFamilyId() == null || user.getFamilyId() == 0L || !user.getFamilyId().equals(family.getId())) {
|
|
if (user.getFamilyId() == null || user.getFamilyId() == 0L || !user.getFamilyId().equals(family.getId())) {
|
|
|
user.setFamilyId(family.getId());
|
|
user.setFamilyId(family.getId());
|
|
|
|
|
+ user.setFamilyRole(request.getFamilyRole());
|
|
|
user.setUpdatedAt(new Date());
|
|
user.setUpdatedAt(new Date());
|
|
|
userMapper.updateById(user);
|
|
userMapper.updateById(user);
|
|
|
}
|
|
}
|
|
@@ -220,19 +222,22 @@ public class FamilyJoinRequestService {
|
|
|
Family family = familyMapper.selectById(req.getTargetFamilyId());
|
|
Family family = familyMapper.selectById(req.getTargetFamilyId());
|
|
|
dto.setTargetFamilyName(family != null ? family.getName() : "");
|
|
dto.setTargetFamilyName(family != null ? family.getName() : "");
|
|
|
dto.setStatus(req.getStatus());
|
|
dto.setStatus(req.getStatus());
|
|
|
|
|
+ dto.setFamilyRole(req.getFamilyRole());
|
|
|
|
|
+ dto.setAdminComment(req.getComment());
|
|
|
dto.setCreatedAt(req.getCreatedAt() != null ? req.getCreatedAt().toString() : "");
|
|
dto.setCreatedAt(req.getCreatedAt() != null ? req.getCreatedAt().toString() : "");
|
|
|
return dto;
|
|
return dto;
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 查询用户自己的待审批请求
|
|
|
|
|
|
|
+ * 查询用户自己的最近一次加入请求(不限状态,用于轮询审批结果)
|
|
|
*/
|
|
*/
|
|
|
public FamilyJoinRequestDTO getMyPendingRequest(Long userId) {
|
|
public FamilyJoinRequestDTO getMyPendingRequest(Long userId) {
|
|
|
FamilyJoinRequest req = familyJoinRequestMapper.selectOne(
|
|
FamilyJoinRequest req = familyJoinRequestMapper.selectOne(
|
|
|
new LambdaQueryWrapper<FamilyJoinRequest>()
|
|
new LambdaQueryWrapper<FamilyJoinRequest>()
|
|
|
.eq(FamilyJoinRequest::getRequesterUserId, userId)
|
|
.eq(FamilyJoinRequest::getRequesterUserId, userId)
|
|
|
- .eq(FamilyJoinRequest::getStatus, "pending")
|
|
|
|
|
|
|
+ .orderByDesc(FamilyJoinRequest::getCreatedAt)
|
|
|
|
|
+ .last("LIMIT 1")
|
|
|
);
|
|
);
|
|
|
if (req == null) {
|
|
if (req == null) {
|
|
|
return null;
|
|
return null;
|
|
@@ -244,6 +249,8 @@ public class FamilyJoinRequestService {
|
|
|
dto.setTargetFamilyName(family != null ? family.getName() : "");
|
|
dto.setTargetFamilyName(family != null ? family.getName() : "");
|
|
|
dto.setStatus(req.getStatus());
|
|
dto.setStatus(req.getStatus());
|
|
|
dto.setInviteCode(req.getInviteRef());
|
|
dto.setInviteCode(req.getInviteRef());
|
|
|
|
|
+ dto.setFamilyRole(req.getFamilyRole());
|
|
|
|
|
+ dto.setAdminComment(req.getComment());
|
|
|
dto.setCreatedAt(req.getCreatedAt() != null ? req.getCreatedAt().toString() : "");
|
|
dto.setCreatedAt(req.getCreatedAt() != null ? req.getCreatedAt().toString() : "");
|
|
|
return dto;
|
|
return dto;
|
|
|
}
|
|
}
|