Przeglądaj źródła

优化业主端逻辑

wuxw 2 lat temu
rodzic
commit
c93a869604

+ 22 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerAppUserDto.java

@@ -61,6 +61,12 @@ public class OwnerAppUserDto extends PageDto implements Serializable {
     private String headImgUrl;
     private String ownerTypeCd;
 
+    private String roomId;
+
+    private String roomName;
+
+
+
 
     public String getIdCard() {
         return idCard;
@@ -310,4 +316,20 @@ public class OwnerAppUserDto extends PageDto implements Serializable {
     public void setCommunityQrCode(String communityQrCode) {
         this.communityQrCode = communityQrCode;
     }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public String getRoomName() {
+        return roomName;
+    }
+
+    public void setRoomName(String roomName) {
+        this.roomName = roomName;
+    }
 }

+ 30 - 0
java110-bean/src/main/java/com/java110/po/owner/OwnerAppUserPo.java

@@ -30,6 +30,12 @@ public class OwnerAppUserPo implements Serializable {
     private String statusCd = "0";
     private String bId;
 
+    private String roomId;
+
+    private String roomName;
+
+    private String ownerTypeCd;
+
     public String getAppUserId() {
         return appUserId;
     }
@@ -166,4 +172,28 @@ public class OwnerAppUserPo implements Serializable {
     public void setbId(String bId) {
         this.bId = bId;
     }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public String getRoomName() {
+        return roomName;
+    }
+
+    public void setRoomName(String roomName) {
+        this.roomName = roomName;
+    }
+
+    public String getOwnerTypeCd() {
+        return ownerTypeCd;
+    }
+
+    public void setOwnerTypeCd(String ownerTypeCd) {
+        this.ownerTypeCd = ownerTypeCd;
+    }
 }

+ 1 - 1
java110-db/src/main/resources/mapper/user/OwnerAppUserServiceDaoImplMapper.xml

@@ -131,7 +131,7 @@
         communityName,t.state,t.app_user_id,t.app_user_id appUserId,t.community_id,t.community_id
         communityId,t.app_type_cd,t.app_type_cd appTypeCd,t.b_id,t.b_id bId,t.member_id,t.member_id memberId,
         td1.name stateName,t.user_id,t.user_id userId,t.app_type,t.app_type appType,t.create_time createTime,
-        bo.owner_id ownerId,bo.owner_type_cd ownerTypeCd
+        bo.owner_id ownerId,bo.owner_type_cd ownerTypeCd,t.room_id roomId,t.room_name roomName
         from owner_app_user t
         left join t_dict td1 on t.state = td1.status_cd and td1.table_name = 'owner_app_user' and td1.table_columns =
         'state'

+ 15 - 3
java110-db/src/main/resources/mapper/user/OwnerAppUserV1ServiceDaoImplMapper.xml

@@ -8,9 +8,11 @@
     <!-- 保存业主绑定信息 add by wuxw 2018-07-03 -->
     <insert id="saveOwnerAppUserInfo" parameterType="Map">
         insert into owner_app_user(
-        id_card,open_id,link,remark,user_id,app_type,app_user_name,nickname,headimgurl,community_name,state,app_user_id,community_id,app_type_cd,member_id
+        id_card,open_id,link,remark,user_id,app_type,app_user_name,nickname,headimgurl,community_name,state,app_user_id,
+        community_id,app_type_cd,member_id,room_id,room_name,owner_type_cd
         ) values (
-        #{idCard},#{openId},#{link},#{remark},#{userId},#{appType},#{appUserName},#{nickname},#{headimgurl},#{communityName},#{state},#{appUserId},#{communityId},#{appTypeCd},#{memberId}
+        #{idCard},#{openId},#{link},#{remark},#{userId},#{appType},#{appUserName},#{nickname},#{headimgurl},#{communityName},#{state},#{appUserId},
+        #{communityId},#{appTypeCd},#{memberId},#{roomId},#{roomName},#{ownerTypeCd}
         )
     </insert>
 
@@ -21,7 +23,8 @@
         statusCd,t.user_id,t.user_id userId,t.app_type,t.app_type appType,t.app_user_name,t.app_user_name
         appUserName,t.nickname,t.headimgurl,t.community_name,t.community_name
         communityName,t.state,t.app_user_id,t.app_user_id appUserId,t.community_id,t.community_id
-        communityId,t.app_type_cd,t.app_type_cd appTypeCd,t.member_id,t.member_id memberId
+        communityId,t.app_type_cd,t.app_type_cd appTypeCd,t.member_id,t.member_id memberId,
+        t.room_id roomId,t.room_name roomName,t.owner_type_cd ownerTypeCd
         from owner_app_user t
         where 1 =1
         <if test="idCard !=null and idCard != ''">
@@ -128,6 +131,15 @@
         <if test="memberId !=null and memberId != ''">
             , t.member_id= #{memberId}
         </if>
+        <if test="roomId !=null and roomId != ''">
+            , t.room_id= #{roomId}
+        </if>
+        <if test="roomName !=null and roomName != ''">
+            , t.room_name= #{roomName}
+        </if>
+        <if test="ownerTypeCd !=null and ownerTypeCd != ''">
+            , t.owner_type_cd= #{ownerTypeCd}
+        </if>
         where 1=1
         <if test="appUserId !=null and appUserId != ''">
             and t.app_user_id= #{appUserId}

+ 1 - 0
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java

@@ -343,6 +343,7 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
         ownerAppUserPo.setLink(ownerPo.getLink());
         ownerAppUserPo.setUserId(userPo.getUserId());
         ownerAppUserPo.setOpenId("-1");
+        ownerAppUserPo.setOwnerTypeCd(ownerPo.getOwnerTypeCd());
 
         flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
         if (flag < 1) {

+ 1 - 0
service-user/src/main/java/com/java110/user/bmo/owner/impl/GeneratorOwnerUserBMOImpl.java

@@ -89,6 +89,7 @@ public class GeneratorOwnerUserBMOImpl implements IGeneratorOwnerUserBMO {
         ownerAppUserPo.setLink(ownerPo.getLink());
         ownerAppUserPo.setUserId(userId);
         ownerAppUserPo.setOpenId("-1");
+        ownerAppUserPo.setOwnerTypeCd(ownerPo.getOwnerTypeCd());
 
         flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
         if (flag < 1) {

+ 163 - 0
service-user/src/main/java/com/java110/user/cmd/owner/AuthOwnerCmd.java

@@ -2,22 +2,185 @@ package com.java110.user.cmd.owner;
 
 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);
     }
 }

+ 3 - 2
service-user/src/main/java/com/java110/user/cmd/owner/OwnerCommunityCmd.java

@@ -69,9 +69,9 @@ public class OwnerCommunityCmd extends Cmd {
         communityDto.setState("1100");
         communityDto.setCommunityIds(communityIds.toArray(new String[communityIds.size()]));
         List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
-        if(communityDtos == null || communityDtos.size()<1){
+        if (communityDtos == null || communityDtos.size() < 1) {
             cmdDataFlowContext.setResponseEntity(ResultVo.success());
-            return ;
+            return;
         }
         for (OwnerDto tmpOwnerDto : ownerDtos) {
             for (CommunityDto tmpCommunityDto : communityDtos) {
@@ -132,6 +132,7 @@ public class OwnerCommunityCmd extends Cmd {
         ownerAppUserPo.setCommunityId(ownerDto.getCommunityId());
         ownerAppUserPo.setAppUserName(ownerDto.getName());
         ownerAppUserPo.setIdCard(ownerDto.getIdCard());
+        ownerAppUserPo.setOwnerTypeCd(ownerDto.getOwnerTypeCd());
         int flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
         if (flag < 1) {
             throw new CmdException("添加用户业主关系失败");

+ 27 - 33
service-user/src/main/java/com/java110/user/cmd/owner/OwnerRegisterCmd.java

@@ -14,10 +14,14 @@ import com.java110.dto.community.CommunityDto;
 import com.java110.dto.msg.SmsDto;
 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.common.ISmsInnerServiceSMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.community.IRoomV1InnerServiceSMO;
 import com.java110.intf.store.IStoreInnerServiceSMO;
 import com.java110.intf.user.*;
 import com.java110.po.owner.OwnerAppUserPo;
@@ -68,6 +72,12 @@ public class OwnerRegisterCmd extends Cmd {
     @Autowired
     private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
@@ -177,6 +187,8 @@ public class OwnerRegisterCmd extends Cmd {
             ownerAppUserPo.setRemark("注册自动关联");
             ownerAppUserPo.setUserId(userPo.getUserId());
             ownerAppUserPo.setAppType(appType);
+            ownerAppUserPo.setOwnerTypeCd(tmpOwnerDto.getOwnerTypeCd());
+            queryOwnerRoom(tmpOwnerDto, ownerAppUserPo);
             flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
             if (flag < 1) {
                 throw new CmdException("添加用户业主关系失败");
@@ -186,46 +198,28 @@ public class OwnerRegisterCmd extends Cmd {
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 
-    private void addOwnerAppUser(JSONObject paramInJson, List<OwnerDto> ownerDtos) {
-        List<CommunityDto> communityDtos = null;
-        CommunityDto tmpCommunityDto = null;
-        String communityName = "无";
+    private void queryOwnerRoom(OwnerDto ownerDto, OwnerAppUserPo ownerAppUserPo) {
 
-        if (ownerDtos == null || ownerDtos.size() < 1) {
-            CommunityDto communityDto = new CommunityDto();
-            communityDto.setState("1100");
-            communityDto.setCommunityId(paramInJson.getString("defaultCommunityId"));
-            communityDto.setPage(1);
-            communityDto.setRow(1);
-            communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
-            if (communityDtos != null && communityDtos.size() > 0) {
-                communityName = communityDtos.get(0).getName();
-            }
-            OwnerAppUserPo ownerAppUserPo = BeanConvertUtil.covertBean(paramInJson, OwnerAppUserPo.class);
-            //状态类型,10000 审核中,12000 审核成功,13000 审核失败
-            ownerAppUserPo.setState("12000");
-            ownerAppUserPo.setAppTypeCd("10010");
-            ownerAppUserPo.setAppUserId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_appUserId));
-            ownerAppUserPo.setMemberId("-1");
-            ownerAppUserPo.setCommunityName(communityName);
-            ownerAppUserPo.setCommunityId(paramInJson.getString("defaultCommunityId"));
-            ownerAppUserPo.setAppUserName("游客");
-            ownerAppUserPo.setIdCard("无");
 
-            int flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
-            if (flag < 1) {
-                throw new CmdException("添加用户业主关系失败");
-            }
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setOwnerId(ownerDto.getOwnerId());
+
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+        if (ListUtil.isNull(ownerRoomRelDtos)) {
             return;
         }
 
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(ownerRoomRelDtos.get(0).getRoomId());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        if (ListUtil.isNull(roomDtos)) {
+            return;
+        }
 
+        ownerAppUserPo.setRoomId(roomDtos.get(0).getRoomId());
+        ownerAppUserPo.setRoomName(roomDtos.get(0).getFloorNum() + "-" + roomDtos.get(0).getUnitNum() + "-" + roomDtos.get(0).getRoomNum());
     }
 
-    /**
-     * 注册用户
-     *
-     * @param paramObj
-     */
 
 }

+ 37 - 1
service-user/src/main/java/com/java110/user/cmd/user/OwnerUserLoginCmd.java

@@ -13,6 +13,8 @@ import com.java110.dto.community.CommunityDto;
 import com.java110.dto.msg.SmsDto;
 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.system.SystemInfoDto;
 import com.java110.dto.user.LoginOwnerResDto;
 import com.java110.dto.user.UserAttrDto;
@@ -20,6 +22,7 @@ import com.java110.dto.user.UserDto;
 import com.java110.intf.common.ISmsInnerServiceSMO;
 import com.java110.intf.common.ISystemInfoV1InnerServiceSMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.user.*;
 import com.java110.po.owner.OwnerAppUserPo;
 import com.java110.po.user.UserAttrPo;
@@ -73,6 +76,12 @@ public class OwnerUserLoginCmd extends Cmd {
     @Autowired
     private ISystemInfoV1InnerServiceSMO systemInfoV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
         Assert.hasKeyAndValue(reqJson, "username", "请求报文中未包含用户名");
@@ -129,7 +138,7 @@ public class OwnerUserLoginCmd extends Cmd {
         if (!ListUtil.isNull(ownerAppUserDtos)) {
             // todo 4.0 查询小区是否存在
             communityId = ownerAppUserDtos.get(0).getCommunityId();
-        }else{
+        } else {
             SystemInfoDto systemInfoDto = new SystemInfoDto();
             List<SystemInfoDto> systemInfoDtos = systemInfoV1InnerServiceSMOImpl.querySystemInfos(systemInfoDto);
             communityId = systemInfoDtos.get(0).getDefaultCommunityId();
@@ -269,6 +278,10 @@ public class OwnerUserLoginCmd extends Cmd {
         ownerAppUserPo.setLink(ownerDtos.get(0).getLink());
         ownerAppUserPo.setUserId(userPo.getUserId());
         ownerAppUserPo.setOpenId("-1");
+        ownerAppUserPo.setOwnerTypeCd(ownerDtos.get(0).getOwnerTypeCd());
+
+        queryOwnerRoom(ownerDtos.get(0), ownerAppUserPo);
+
 
         flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
         if (flag < 1) {
@@ -281,6 +294,29 @@ public class OwnerUserLoginCmd extends Cmd {
         return userDtos;
     }
 
+    private void queryOwnerRoom(OwnerDto ownerDto, OwnerAppUserPo ownerAppUserPo) {
+
+
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setOwnerId(ownerDto.getOwnerId());
+
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+        if (ListUtil.isNull(ownerRoomRelDtos)) {
+            return;
+        }
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(ownerRoomRelDtos.get(0).getRoomId());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        if (ListUtil.isNull(roomDtos)) {
+            return;
+        }
+
+        ownerAppUserPo.setRoomId(roomDtos.get(0).getRoomId());
+        ownerAppUserPo.setRoomName(roomDtos.get(0).getFloorNum() + "-" + roomDtos.get(0).getUnitNum() + "-" + roomDtos.get(0).getRoomNum());
+    }
+
     private UserAttrDto getCurrentUserAttrDto(List<UserAttrDto> userAttrDtos, String specCd) {
         if (userAttrDtos == null) {
             return null;