From 45102fc13900aad6d117b00a4feeeafe9c3f5fee Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 27 五月 2025 21:04:09 +0800
Subject: [PATCH] 优化查询业主成员
---
service-user/src/main/java/com/java110/user/cmd/owner/SaveRoomOwnerCmd.java | 178 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 102 insertions(+), 76 deletions(-)
diff --git a/service-user/src/main/java/com/java110/user/cmd/owner/SaveRoomOwnerCmd.java b/service-user/src/main/java/com/java110/user/cmd/owner/SaveRoomOwnerCmd.java
index 86358c9..ae75177 100644
--- a/service-user/src/main/java/com/java110/user/cmd/owner/SaveRoomOwnerCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/owner/SaveRoomOwnerCmd.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.CmdContextUtils;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
@@ -14,22 +15,28 @@
import com.java110.dto.community.CommunityDto;
import com.java110.dto.msg.SmsDto;
import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.room.RoomDto;
import com.java110.intf.common.IFileInnerServiceSMO;
import com.java110.intf.common.IFileRelInnerServiceSMO;
import com.java110.intf.common.ISmsInnerServiceSMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.ICommunityV1InnerServiceSMO;
+import com.java110.intf.community.IRoomV1InnerServiceSMO;
import com.java110.intf.user.*;
import com.java110.po.owner.OwnerAppUserPo;
import com.java110.po.owner.OwnerAttrPo;
import com.java110.po.owner.OwnerPo;
+import com.java110.po.owner.OwnerRoomRelPo;
import com.java110.po.user.UserPo;
+import com.java110.user.bmo.owner.IGeneratorOwnerUserBMO;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.MappingConstant;
import com.java110.utils.constant.UserLevelConstant;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -65,21 +72,23 @@
@Autowired
private IPhotoSMO photoSMOImpl;
- @Autowired
- private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
@Autowired
- private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+ private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
+
@Autowired
- private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+ private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IGeneratorOwnerUserBMO generatorOwnerUserBMOImpl;
@Override
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
Assert.jsonObjectHaveKey(reqJson, "name", "璇锋眰鎶ユ枃涓湭鍖呭惈name");
- Assert.jsonObjectHaveKey(reqJson, "userId", "璇锋眰鎶ユ枃涓湭鍖呭惈userId");
Assert.jsonObjectHaveKey(reqJson, "link", "璇锋眰鎶ユ枃涓湭鍖呭惈link");
Assert.jsonObjectHaveKey(reqJson, "roomName", "璇锋眰鎶ユ枃涓湭鍖呭惈鎴垮眿");
+ Assert.jsonObjectHaveKey(reqJson, "ownerTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈绫诲瀷");
Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
@@ -97,96 +106,113 @@
//todo 灞炴�ф牎楠�
Assert.judgeAttrValue(reqJson);
+ //todo 鏍¢獙鎴垮眿
+ String roomName = reqJson.getString("roomName");
+ String[] roomNames = roomName.split("-", 3);
+
+ if (roomNames == null || roomNames.length != 3) {
+ throw new CmdException("鎴垮眿鏍煎紡閿欒锛屾ゼ鏍�-鍗曞厓-鎴垮眿");
+ }
+
+ RoomDto roomDto = new RoomDto();
+ roomDto.setFloorNum(roomNames[0]);
+ roomDto.setUnitNum(roomNames[1]);
+ roomDto.setRoomNum(roomNames[2]);
+ roomDto.setCommunityId(reqJson.getString("communityId"));
+ List<RoomDto> roomDtos = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
+
+ if (roomDtos == null || roomDtos.size() < 1) {
+ throw new CmdException("鎴垮眿涓嶅瓨鍦�");
+ }
+
+ reqJson.put("roomId", roomDtos.get(0).getRoomId());
+
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+ ownerRoomRelDto.setRoomId(roomDtos.get(0).getRoomId());
+
+ List<OwnerRoomRelDto> roomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+
+ String ownerTypeCd = reqJson.getString("ownerTypeCd");
+ //todo 涓氫富 濡傛灉瀛樺湪 鍒欏け璐�
+ if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(ownerTypeCd) && roomRelDtos != null && roomRelDtos.size() > 0) {
+ throw new CmdException("宸茬粡瀛樺湪涓氫富");
+ }
+
+ //todo 涓氫富鐩存帴杩斿洖
+ if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(ownerTypeCd)) {
+ return;
+ }
+
+ //todo 涓嶆槸涓氫富锛屼笟涓� 涓嶅瓨鍦� 鍒欏け璐�
+ if (!OwnerDto.OWNER_TYPE_CD_OWNER.equals(ownerTypeCd) && (roomRelDtos == null || roomRelDtos.size() < 1)) {
+ throw new CmdException("涓氫富涓嶅瓨鍦� 鍏堟坊鍔犱笟涓�");
+ }
+
+ reqJson.put("ownerId",roomRelDtos.get(0).getOwnerId());
+
}
@Override
@Java110Transactional
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
- //todo 鐢熸垚memberId
- generateMemberId(reqJson);
-
- JSONObject businessOwner = new JSONObject();
- businessOwner.putAll(reqJson);
- businessOwner.put("state", "2000");
- OwnerPo ownerPo = BeanConvertUtil.covertBean(businessOwner, OwnerPo.class);
- if (reqJson.containsKey("age") && StringUtil.isEmpty(reqJson.getString("age"))) {
- ownerPo.setAge(null);
+ String memberId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId);
+ String ownerId = memberId;
+ String ownerTypeCd = reqJson.getString("ownerTypeCd");
+ if (!OwnerDto.OWNER_TYPE_CD_OWNER.equals(ownerTypeCd)) {
+ ownerId = reqJson.getString("ownerId");
}
+ // todo 淇濆瓨涓氫富
+ OwnerPo ownerPo = BeanConvertUtil.covertBean(reqJson,OwnerPo.class);
+ ownerPo.setMemberId(memberId);
+ ownerPo.setOwnerId(ownerId);
+ ownerPo.setState(OwnerDto.STATE_FINISH);
+ ownerPo.setUserId(CmdContextUtils.getUserId(context));
+ ownerPo.setAge(null);
+ ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
+
+ ownerPo.setFaceUrl(reqJson.getString("ownerPhotoUrl"));
+
int flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
if (flag < 1) {
throw new CmdException("淇濆瓨涓氫富澶辫触");
}
- //淇濆瓨鐓х墖
- photoSMOImpl.savePhoto(reqJson.getString("ownerPhoto"),
- reqJson.getString("memberId"),
- reqJson.getString("communityId"),
- "10000");
+ //todo 淇濆瓨灞炴��
+ dealOwnerAttr(reqJson, memberId);
- dealOwnerAttr(reqJson, context);
+ //todo 淇濆瓨鍜屾埧灞嬪叧绯�
+ saveOwnerRoomRel(ownerPo,reqJson.getString("roomId"));
- String autoUser = MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH, "AUTO_GENERATOR_OWNER_USER");
+ //todo 鐢熸垚鐧诲綍璐﹀彿
+ generatorOwnerUserBMOImpl.generator(ownerPo);
- if (!"ON".equals(autoUser)) {
+ }
+
+ /**
+ * 淇濆瓨 涓氫富鎴垮眿鍏崇郴
+ * @param ownerPo
+ * @param roomId
+ */
+ private void saveOwnerRoomRel(OwnerPo ownerPo, String roomId) {
+ //todo 涓嶆槸涓氫富灏辫烦杩�
+ if(!OwnerDto.OWNER_TYPE_CD_OWNER.equals(ownerPo.getOwnerTypeCd())){
return;
}
- CommunityDto communityDto = new CommunityDto();
- communityDto.setCommunityId(ownerPo.getCommunityId());
- List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
- Assert.listNotNull(communityDtos, "鏈寘鍚皬鍖轰俊鎭�");
- CommunityDto tmpCommunityDto = communityDtos.get(0);
-
- UserPo userPo = new UserPo();
- userPo.setUserId(GenerateCodeFactory.getUserId());
- userPo.setName(ownerPo.getName());
- userPo.setTel(ownerPo.getLink());
- userPo.setPassword(AuthenticationFactory.passwdMd5(ownerPo.getLink()));
- userPo.setLevelCd(UserLevelConstant.USER_LEVEL_ORDINARY);
- userPo.setAge(ownerPo.getAge());
- userPo.setAddress(ownerPo.getAddress());
- userPo.setSex(ownerPo.getSex());
- flag = userV1InnerServiceSMOImpl.saveUser(userPo);
- if (flag < 1) {
- throw new CmdException("娉ㄥ唽澶辫触");
- }
-
- OwnerAppUserPo ownerAppUserPo = new OwnerAppUserPo();
- //鐘舵�佺被鍨嬶紝10000 瀹℃牳涓紝12000 瀹℃牳鎴愬姛锛�13000 瀹℃牳澶辫触
- ownerAppUserPo.setState("12000");
- ownerAppUserPo.setAppTypeCd("10010");
- ownerAppUserPo.setAppUserId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_appUserId));
- ownerAppUserPo.setMemberId(ownerPo.getMemberId());
- ownerAppUserPo.setCommunityName(tmpCommunityDto.getName());
- ownerAppUserPo.setCommunityId(ownerPo.getCommunityId());
- ownerAppUserPo.setAppUserName(ownerPo.getName());
- ownerAppUserPo.setIdCard(ownerPo.getIdCard());
- ownerAppUserPo.setAppType("WECHAT");
- ownerAppUserPo.setLink(ownerPo.getLink());
- ownerAppUserPo.setUserId(userPo.getUserId());
- ownerAppUserPo.setOpenId("-1");
-
- flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
- if (flag < 1) {
- throw new CmdException("娣诲姞鐢ㄦ埛涓氫富鍏崇郴澶辫触");
- }
-
+ OwnerRoomRelPo ownerRoomRelPo = new OwnerRoomRelPo();
+ ownerRoomRelPo.setRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
+ ownerRoomRelPo.setUserId("-1");
+ ownerRoomRelPo.setOwnerId(ownerPo.getOwnerId());
+ ownerRoomRelPo.setRoomId(roomId);
+ ownerRoomRelPo.setState("2001");
+ ownerRoomRelPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ ownerRoomRelPo.setEndTime(DateUtil.getLastTime());
+ ownerRoomRelV1InnerServiceSMOImpl.saveOwnerRoomRel(ownerRoomRelPo);
}
-
- /**
- * 鐢熸垚灏忓尯妤糏D
- *
- * @param paramObj 璇锋眰鍏ュ弬鏁版嵁
- */
- private void generateMemberId(JSONObject paramObj) {
- String memberId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId);
- paramObj.put("memberId", memberId);
-
- }
-
- private void dealOwnerAttr(JSONObject paramObj, ICmdDataFlowContext cmdDataFlowContext) {
+ private void dealOwnerAttr(JSONObject paramObj, String memberId) {
if (!paramObj.containsKey("attrs")) {
return;
@@ -202,7 +228,7 @@
for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
attr = attrs.getJSONObject(attrIndex);
attr.put("communityId", paramObj.getString("communityId"));
- attr.put("memberId", paramObj.getString("memberId"));
+ attr.put("memberId", memberId);
attr.put("attrId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
OwnerAttrPo ownerAttrPo = BeanConvertUtil.covertBean(attr, OwnerAttrPo.class);
flag = ownerAttrInnerServiceSMOImpl.saveOwnerAttr(ownerAttrPo);
--
Gitblit v1.8.0