From 40307148ac9e5cfadb6b12cda1cf90b0bc0f1de4 Mon Sep 17 00:00:00 2001 From: zzy Date: Thu, 23 Apr 2026 17:22:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=B5=B7=E5=AE=A1=E6=A0=B8=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E6=96=B0=E5=A2=9E=E5=85=B3=E8=81=94=E5=85=B3?= =?UTF-8?q?=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/community/AppCommunityController.java | 8 ++++++-- .../service/community/CommunityService.java | 3 ++- .../community/CommunityServiceImpl.java | 14 ++++++++++--- .../memberhouse/MemberHouseServiceImpl.java | 20 ++++++++++++++++++- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/controller/app/community/AppCommunityController.java b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/controller/app/community/AppCommunityController.java index 18f80df..17c83d4 100644 --- a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/controller/app/community/AppCommunityController.java +++ b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/controller/app/community/AppCommunityController.java @@ -4,11 +4,13 @@ import com.fjrcloud.community.framework.common.pojo.CommonResult; import com.fjrcloud.community.module.community.controller.admin.community.vo.CommunitySimpleRespVO; import com.fjrcloud.community.module.community.service.community.CommunityService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -28,8 +30,10 @@ public class AppCommunityController { @GetMapping("/simple-list") @Operation(summary = "获取小区精简列表") - public CommonResult> getCommunitySimpleList() { - List list = communityService.getAppCommunitySimpleList(); + @Parameter(name = "all", description = "是否获取全部小区(忽略租户隔离),默认false", example = "false") + public CommonResult> getCommunitySimpleList( + @RequestParam(value = "all", required = false, defaultValue = "false") Boolean all) { + List list = communityService.getAppCommunitySimpleList(all); return success(list); } diff --git a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityService.java b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityService.java index 61d6367..b4542f8 100644 --- a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityService.java +++ b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityService.java @@ -82,8 +82,9 @@ public interface CommunityService { /** * 获取小区精简列表(App端) * + * @param all 是否获取全部小区(忽略租户隔离) * @return 小区精简列表 */ - List getAppCommunitySimpleList(); + List getAppCommunitySimpleList(Boolean all); } \ No newline at end of file diff --git a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityServiceImpl.java b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityServiceImpl.java index 7aa9da9..2b50470 100644 --- a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityServiceImpl.java +++ b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/community/CommunityServiceImpl.java @@ -379,9 +379,17 @@ public class CommunityServiceImpl implements CommunityService { } @Override - public List getAppCommunitySimpleList() { - // App端查询当前租户下的小区列表 - List communities = communityMapper.selectList(); + public List getAppCommunitySimpleList(Boolean all) { + List communities; + + if (Boolean.TRUE.equals(all)) { + // 获取全部小区,忽略租户隔离 + communities = TenantUtils.executeIgnore(() -> communityMapper.selectList()); + } else { + // 只获取当前租户下的小区 + communities = communityMapper.selectList(); + } + return communities.stream() .map(community -> CommunitySimpleRespVO.builder() .id(community.getId()) diff --git a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/memberhouse/MemberHouseServiceImpl.java b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/memberhouse/MemberHouseServiceImpl.java index 00b8232..e9a93dc 100644 --- a/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/memberhouse/MemberHouseServiceImpl.java +++ b/fjrcloud-module-community/src/main/java/com/fjrcloud/community/module/community/service/memberhouse/MemberHouseServiceImpl.java @@ -18,6 +18,7 @@ import com.fjrcloud.community.module.community.dal.mysql.memberhouse.MemberHouse import com.fjrcloud.community.module.community.service.community.CommunityService; import com.fjrcloud.community.module.member.dal.dataobject.user.MemberUserDO; import com.fjrcloud.community.module.member.service.user.MemberUserService; +import com.fjrcloud.community.module.member.service.user.MemberUserTenantRelService; import com.fjrcloud.community.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import com.fjrcloud.community.module.system.service.oauth2.OAuth2TokenService; import lombok.extern.slf4j.Slf4j; @@ -60,6 +61,9 @@ public class MemberHouseServiceImpl implements MemberHouseService { @Resource private OAuth2TokenService oauth2TokenService; + @Resource + private MemberUserTenantRelService memberUserTenantRelService; + @Override @Transactional(rollbackFor = Exception.class) public Long createMemberHouse(MemberHouseSaveReqVO createReqVO) { @@ -96,6 +100,13 @@ public class MemberHouseServiceImpl implements MemberHouseService { memberHouse.setTenantId(createReqVO.getCommunityId()); memberHouseMapper.insert(memberHouse); + // 5. 将用户关联到该小区(租户),如果是第一个小区则设为默认 + List userHouses = memberHouseMapper.selectListByMemberId(memberHouse.getMemberId()); + boolean isFirstHouse = userHouses.size() == 1; + memberUserTenantRelService.assignUserToTenant(memberHouse.getMemberId(), createReqVO.getCommunityId(), isFirstHouse); + log.info("[createMemberHouseForApp][用户({}) 发起房屋审核,自动关联租户({}),是否默认({})]", + memberHouse.getMemberId(), createReqVO.getCommunityId(), isFirstHouse); + return memberHouse.getId(); } @@ -308,6 +319,13 @@ public class MemberHouseServiceImpl implements MemberHouseService { memberHouse.setTenantId(createReqVO.getCommunityId()); memberHouseMapper.insert(memberHouse); + // 4. 将用户关联到该小区(租户),如果是第一个小区则设为默认 + List userHouses = memberHouseMapper.selectListByMemberId(memberId); + boolean isFirstHouse = userHouses.size() == 1; + memberUserTenantRelService.assignUserToTenant(memberId, createReqVO.getCommunityId(), isFirstHouse); + log.info("[createMemberHouseForApp][用户({}) 发起房屋审核,自动关联租户({}),是否默认({})]", + memberId, createReqVO.getCommunityId(), isFirstHouse); + return memberHouse.getId(); } @@ -405,7 +423,7 @@ public class MemberHouseServiceImpl implements MemberHouseService { // 8. 如果小区变了,需要重新登录(生成新token) if (communityChanged) { - log.info("会员[{}]切换小区:从[{}]切换到[{}],房屋地址:{}", + log.info("会员[{}]切换小区:从[{}]切换到[{}],房屋地址:{}", memberId, currentTenantId, communityId, houseAddress); // 在新小区租户上下文中生成新的token