From c93a86960454d18c0e4cb61b65df651849fe50e9 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 22 三月 2024 09:35:53 +0800
Subject: [PATCH] 优化业主端逻辑

---
 service-user/src/main/java/com/java110/user/cmd/owner/AuthOwnerCmd.java |  163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 163 insertions(+), 0 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/owner/AuthOwnerCmd.java b/service-user/src/main/java/com/java110/user/cmd/owner/AuthOwnerCmd.java
index 8f9921b..5df4ffb 100644
--- a/service-user/src/main/java/com/java110/user/cmd/owner/AuthOwnerCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/owner/AuthOwnerCmd.java
@@ -2,22 +2,185 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
+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;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.dto.user.UserAttrDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IRoomV1InnerServiceSMO;
+import com.java110.intf.user.*;
+import com.java110.po.owner.OwnerAppUserPo;
 import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.ListUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.text.ParseException;
+import java.util.List;
 
 @Java110Cmd(serviceCode = "owner.authOwner")
 public class AuthOwnerCmd extends Cmd {
+
+    @Autowired
+    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IUserAttrV1InnerServiceSMO userAttrV1InnerServiceSMOImpl;
+
+    /**
+     * {"communityId":"2023052267100146","roomName":"1-1-888","roomId":"752024021967653523","link":"15509711111","ownerName":"寮犱笁","ownerTypeCd":"1001"}
+     *
+     * @param event   浜嬩欢瀵硅薄
+     * @param context 璇锋眰鎶ユ枃鏁版嵁
+     * @param reqJson
+     * @throws CmdException
+     * @throws ParseException
+     */
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
+        Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖�");
+        Assert.hasKeyAndValue(reqJson, "roomName", "鏈寘鍚埧灞�");
+        Assert.hasKeyAndValue(reqJson, "roomId", "鏈寘鍚埧灞�");
+        Assert.hasKeyAndValue(reqJson, "link", "鏈寘鍚墜鏈哄彿");
+        Assert.hasKeyAndValue(reqJson, "ownerName", "鏈寘鍚汉鍛樺悕绉�");
+        Assert.hasKeyAndValue(reqJson, "ownerTypeCd", "鏈寘鍚汉鍛樼被鍨�");
+
+        //todo 鏍规嵁鎵嬫満鍙锋煡璇� 鏄惁宸茬粡璁よ瘉杩囷紝濡傛灉璁よ瘉杩囧垯涓嶈兘鍐嶆璁よ瘉
+
+//        OwnerDto ownerDto = new OwnerDto();
+//        ownerDto.setLink(reqJson.getString("link"));
+//        ownerDto.setCommunityId(reqJson.getString("communityId"));
+//        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
+//        if(ListUtil.isNull(ownerDtos)){
+//            return;
+//        }
+
+        String userId = CmdContextUtils.getUserId(context);
+        UserDto userDto = new UserDto();
+        userDto.setUserId(userId);
+        List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+        Assert.listOnlyOne(userDtos, "鐢ㄦ埛鏈櫥褰�");
+        if (!userDtos.get(0).getTel().equals(reqJson.getString("link"))) {
+            throw new CmdException("鎵嬫満鍙烽敊璇紝涓嶆槸娉ㄥ唽鏃剁殑鎵嬫満鍙�");
+        }
+
+        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setLink(reqJson.getString("link"));
+        ownerAppUserDto.setCommunityId(reqJson.getString("communityId"));
+        ownerAppUserDto.setStates(new String[]{
+                OwnerAppUserDto.STATE_AUDITING,
+                OwnerAppUserDto.STATE_AUDIT_SUCCESS
+        });
+        List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserV1InnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+
+        if (!ListUtil.isNull(ownerAppUserDtos)) {
+            throw new CmdException("宸插瓨鍦ㄨ璇佸叧绯伙紝璇峰嬁閲嶅璁よ瘉");
+        }
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(reqJson.getString("roomId"));
+        roomDto.setCommunityId(reqJson.getString("communityId"));
+        List<RoomDto> roomDtos = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
+        Assert.listOnlyOne(roomDtos, "鎴垮眿涓嶅瓨鍦�");
+
+        if (!OwnerDto.OWNER_TYPE_CD_OWNER.equals(reqJson.getString("ownerTypeCd"))) {
+            return;
+        }
+
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setRoomId(roomDtos.get(0).getRoomId());
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+        if (ListUtil.isNull(ownerRoomRelDtos)) {
+            return;
+        }
+
+        ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setMemberId(ownerRoomRelDtos.get(0).getOwnerId());
+        ownerAppUserDto.setCommunityId(reqJson.getString("communityId"));
+        ownerAppUserDto.setStates(new String[]{
+                OwnerAppUserDto.STATE_AUDITING,
+                OwnerAppUserDto.STATE_AUDIT_SUCCESS
+        });
+        ownerAppUserDtos = ownerAppUserV1InnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+
+        if (!ListUtil.isNull(ownerAppUserDtos)) {
+            throw new CmdException("涓氫富宸茬粡琚璇�");
+        }
+
     }
 
+    /**
+     * {"communityId":"2023052267100146","roomName":"1-1-888","roomId":"752024021967653523","link":"15509711111","ownerName":"寮犱笁","ownerTypeCd":"1001"}
+     *
+     * @param event   浜嬩欢瀵硅薄
+     * @param context 鏁版嵁涓婃枃瀵硅薄
+     * @param reqJson 璇锋眰鎶ユ枃
+     * @throws CmdException
+     * @throws ParseException
+     */
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
+        String userId = CmdContextUtils.getUserId(context);
+
+        CommunityDto communityDto = new CommunityDto();
+        communityDto.setCommunityId(reqJson.getString("communityId"));
+        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+        Assert.listNotNull(communityDtos, "鏈寘鍚皬鍖轰俊鎭�");
+        CommunityDto tmpCommunityDto = communityDtos.get(0);
+
+
+        OwnerAppUserPo ownerAppUserPo = new OwnerAppUserPo();
+        //鐘舵�佺被鍨嬶紝10000 瀹℃牳涓紝12000 瀹℃牳鎴愬姛锛�13000 瀹℃牳澶辫触
+        ownerAppUserPo.setState("12000");
+        ownerAppUserPo.setAppTypeCd("10010");
+        ownerAppUserPo.setAppUserId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_appUserId));
+        ownerAppUserPo.setMemberId("-1");
+        ownerAppUserPo.setCommunityName(tmpCommunityDto.getName());
+        ownerAppUserPo.setCommunityId(tmpCommunityDto.getCommunityId());
+        ownerAppUserPo.setAppUserName(reqJson.getString("ownerName"));
+        ownerAppUserPo.setAppType("WECHAT");
+        ownerAppUserPo.setLink(reqJson.getString("link"));
+        ownerAppUserPo.setUserId(userId);
+        ownerAppUserPo.setOpenId("-1");
+        ownerAppUserPo.setRoomId(reqJson.getString("roomId"));
+        ownerAppUserPo.setRoomName(reqJson.getString("roomName"));
+        ownerAppUserPo.setOwnerTypeCd(reqJson.getString("ownerTypeCd"));
+
+        UserAttrDto userAttrDto = new UserAttrDto();
+        userAttrDto.setUserId(userId);
+        userAttrDto.setSpecCd(UserAttrDto.SPEC_OPEN_ID);
+        List<UserAttrDto> userAttrDtos = userAttrV1InnerServiceSMOImpl.queryUserAttrs(userAttrDto);
+        if (!ListUtil.isNull(userAttrDtos)) {
+            ownerAppUserPo.setOpenId(userAttrDtos.get(0).getValue());
+
+        }
+
+        ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
     }
 }

--
Gitblit v1.8.0