ソースを参照

fix 居住人员认证

tjf 2 ヶ月 前
コミット
8ee72986f1

+ 4 - 2
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/houseInfo/HouseInfoController.java

@@ -17,8 +17,10 @@ import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.common.web.core.BaseController;
+import org.dromara.domain.houseInfo.HouseInfo;
 import org.dromara.domain.houseInfo.bo.HouseInfoBo;
 import org.dromara.domain.houseInfo.vo.HouseInfoVo;
+import org.dromara.domain.residentInfo.ResidentInfo;
 import org.dromara.listener.HouseInfoImportListener;
 import org.dromara.service.IHouseInfoService;
 import org.springframework.validation.annotation.Validated;
@@ -46,8 +48,8 @@ public class HouseInfoController extends BaseController {
      */
     @SaCheckPermission("wuYe:houseInfo:list")
     @GetMapping("/list")
-    public TableDataInfo<HouseInfoVo> list(HouseInfoBo bo, PageQuery pageQuery) {
-        return houseInfoService.queryPageList(bo, pageQuery);
+    public TableDataInfo<HouseInfo> list(ResidentInfo residentInfo, PageQuery pageQuery) {
+        return houseInfoService.queryPageList(residentInfo, pageQuery);
     }
 
     /**

+ 7 - 2
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/houseInfo/HouseInfo.java

@@ -1,13 +1,16 @@
 package org.dromara.domain.houseInfo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.dromara.common.tenant.core.TenantEntity;
+import org.dromara.domain.residentInfo.ResidentInfo;
 
 import java.io.Serial;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 房屋信息对象 house_info
@@ -107,7 +110,7 @@ public class HouseInfo extends TenantEntity {
     /**
      * 房屋状态:1-自住,2-空闲,3-待售空闲,4-出租
      */
-    private Long houseStatus;
+    private String houseStatus;
 
     /**
      * 备注
@@ -117,5 +120,7 @@ public class HouseInfo extends TenantEntity {
      * 房本照片
      */
     private String houseImage;
-
+    /** 房屋住户信息 */
+    @TableField(exist = false)
+    private List<ResidentInfo> residentInfoList;
 }

+ 7 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/residentInfo/ResidentInfo.java

@@ -138,4 +138,11 @@ public class ResidentInfo extends TenantEntity {
      * 审核状态 1:未审核 2:审核通过 3:审核未通过
      */
     private String examine;
+
+
+    /**
+     * 房屋状态:1-自住,2-空闲,3-待售空闲,4-出租
+     */
+    @TableField(exist = false)
+    private String houseStatus;
 }

+ 5 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/mapper/HouseInfoMapper.java

@@ -1,6 +1,8 @@
 package org.dromara.mapper;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.domain.houseInfo.HouseInfo;
 import org.dromara.domain.houseInfo.vo.HouseInfoVo;
@@ -17,4 +19,7 @@ import java.util.List;
 public interface HouseInfoMapper extends BaseMapperPlus<HouseInfo, HouseInfoVo> {
 
     List<ResidentInfo> selectHouseInfoListAndResidentInfo(ResidentInfo residentInfo);
+
+
+    Page<HouseInfo>selectHouseInfoListAndResidentInfoPage(@Param("page") Page<ResidentInfo> page, @Param("ResidentInfo") ResidentInfo residentInfo);
 }

+ 4 - 2
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/IHouseInfoService.java

@@ -3,8 +3,10 @@ package org.dromara.service;
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.domain.houseInfo.HouseInfo;
 import org.dromara.domain.houseInfo.bo.HouseInfoBo;
 import org.dromara.domain.houseInfo.vo.HouseInfoVo;
+import org.dromara.domain.residentInfo.ResidentInfo;
 
 import java.util.Collection;
 import java.util.List;
@@ -28,11 +30,11 @@ public interface IHouseInfoService {
     /**
      * 分页查询房屋信息列表
      *
-     * @param bo        查询条件
+     * @param residentInfo        查询条件
      * @param pageQuery 分页参数
      * @return 房屋信息分页列表
      */
-    TableDataInfo<HouseInfoVo> queryPageList(HouseInfoBo bo, PageQuery pageQuery);
+    TableDataInfo<HouseInfo> queryPageList(ResidentInfo residentInfo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的房屋信息列表

+ 6 - 3
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/HouseInfoServiceImpl.java

@@ -11,6 +11,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.domain.houseInfo.HouseInfo;
 import org.dromara.domain.houseInfo.bo.HouseInfoBo;
 import org.dromara.domain.houseInfo.vo.HouseInfoVo;
+import org.dromara.domain.residentInfo.ResidentInfo;
 import org.dromara.mapper.HouseInfoMapper;
 import org.dromara.service.IHouseInfoService;
 import org.springframework.stereotype.Service;
@@ -45,14 +46,16 @@ public class HouseInfoServiceImpl implements IHouseInfoService {
     /**
      * 分页查询房屋信息列表
      *
-     * @param bo        查询条件
+     * @param residentInfo        查询条件
      * @param pageQuery 分页参数
      * @return 房屋信息分页列表
      */
     @Override
-    public TableDataInfo<HouseInfoVo> queryPageList(HouseInfoBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<HouseInfo> lqw = buildQueryWrapper(bo);
+    public TableDataInfo<HouseInfo> queryPageList(ResidentInfo residentInfo, PageQuery pageQuery) {
+/*        LambdaQueryWrapper<HouseInfo> lqw = buildQueryWrapper(bo);
         Page<HouseInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);*/
+        Page<HouseInfo> result = baseMapper.selectHouseInfoListAndResidentInfoPage(pageQuery.build(), residentInfo);
         return TableDataInfo.build(result);
     }
 

+ 32 - 24
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/ResidentInfoServiceImpl.java

@@ -3,7 +3,6 @@ package org.dromara.service.impl;
 import cn.dev33.satoken.secure.BCrypt;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -243,13 +242,14 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
             });
             if (sysRoleVo != null) {
                 Long[] longArray = new Long[1];
+                Long roleId = sysRoleVo.getRoleId();
                 longArray[0] = sysRoleVo.getRoleId();
                 user.setRoleIds(longArray);
                 //判断该用户是否有游客角色
-                SysUserVo sysUserVo = userService.selectUserById(user.getUserId());
-                Long roleId = sysUserVo.getRoleId();
-                if (roleId != null && !roleId.equals(sysRoleVo.getRoleId())) {
-                    userService.insertUserRole(user, false);
+                List<Long> useIds = userRoleMapper.selectUserIdsByRoleId(roleId);
+                if (useIds != null && !useIds.isEmpty()) {
+                    if (!useIds.contains(userId))
+                        userService.insertUserRole(user, false);
                 }
             }
 
@@ -354,13 +354,15 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
         });
         if (sysRoleVo != null) {
             Long[] longArray = new Long[1];
-            longArray[0] = sysRoleVo.getRoleId();
+            Long roleId = sysRoleVo.getRoleId();
+            longArray[0] = roleId;
             user.setRoleIds(longArray);
             //判断该用户是否有住户角色
-            SysUserVo sysUserVo = userService.selectUserById(user.getUserId());
-            Long roleId = sysUserVo.getRoleId();
-            if (roleId != null && !roleId.equals(sysRoleVo.getRoleId())) {
-                userService.insertUserRole(user, false);
+            //判断该用户是否有住户角色
+            List<Long> useIds = userRoleMapper.selectUserIdsByRoleId(roleId);
+            if (useIds != null && !useIds.isEmpty()) {
+                if (!useIds.contains(userId))
+                    userService.insertUserRole(user, false);
             }
         }
 
@@ -468,9 +470,10 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
         String tenantId = residentInfo.getTenantId();
         String residentType = residentInfo.getResidentType();
         String isHouseholder = residentInfo.getIsHouseholder();
+        Long userId = residentInfo.getUserId();
         if (TWO.equals(residentInfo.getExamine())) {
             SysUserBo sysUser = new SysUserBo();
-            sysUser.setUserId(bo.getUserId());
+            sysUser.setUserId(userId);
             if (TenantHelper.isEnable()) {
                 //把租户id更新到sys_user表/sys_user_tenant表中
                 sysUser.setTenantId(tenantId);
@@ -491,18 +494,17 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                     .eq(SysRole::getTenantId, tenantId));
             });
             if (sysRoleVo != null) {
+                Long roleId = sysRoleVo.getRoleId();
                 Long[] longArray = new Long[1];
-                longArray[0] = sysRoleVo.getRoleId();
+                longArray[0] = roleId;
                 sysUser.setRoleIds(longArray);
                 //判断该用户是否有住户角色
-                SysUserVo sysUserVo = userService.selectUserById(sysUser.getUserId());
-                Long roleId = sysUserVo.getRoleId();
-                if (roleId != null && !roleId.equals(sysRoleVo.getRoleId())) {
-                    userService.insertUserRole(sysUser, false);
+                List<Long> useIds = userRoleMapper.selectUserIdsByRoleId(roleId);
+                if (useIds != null && !useIds.isEmpty()) {
+                    if (!useIds.contains(userId))
+                        userService.insertUserRole(sysUser, false);
                 }
             }
-
-
             //认证通过后 把用户提交的房本信息同步到房屋主表
             if (ONE.equals(residentType) && Y.equals(isHouseholder)) {
                 List<HouseInfoRedident> houseInfoRedidentList = bo.getHouseInfoRedidentList();
@@ -589,7 +591,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
     }
 
     /**
-     * 管理员修改住户管理
+     * 管理员修改住户管理(认证通过后)
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -597,13 +599,13 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
         ResidentInfo residentInfo = MapstructUtils.convert(bo, ResidentInfo.class);
         //判断是否修改了租户
         ResidentInfoVo residentInfoVo = baseMapper.selectVoById(residentInfo.getResidentId());
-        String tenantIdOld = residentInfoVo.getTenantId();
+        //String tenantIdOld = residentInfoVo.getTenantId();
         String tenantIdNew = residentInfo.getTenantId();
         Long userId = residentInfoVo.getUserId();
         SysUserBo sysUser = new SysUserBo();
-        sysUser.setUserId(bo.getUserId());
+        sysUser.setUserId(userId);
         sysUser.setTenantId(tenantIdNew);
-        if (!tenantIdOld.equals(tenantIdNew)) {
+/*        if (!tenantIdOld.equals(tenantIdNew)) {
             sysUserTenantMapper.update(new LambdaUpdateWrapper<SysUserTenant>()
                 .set(SysUserTenant::getTenantId, tenantIdNew)
                 .eq(SysUserTenant::getUserId, userId).eq(SysUserTenant::getTenantId, tenantIdOld));
@@ -620,11 +622,17 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
             });
             if (sysRoleVo != null) {
                 Long[] longArray = new Long[1];
+                Long roleId = sysRoleVo.getRoleId();
                 longArray[0] = sysRoleVo.getRoleId();
                 sysUser.setRoleIds(longArray);
+                //判断该用户是否有住户角色
+                List<Long> useIds = userRoleMapper.selectUserIdsByRoleId(roleId);
+                if (useIds != null && !useIds.isEmpty()) {
+                    if (!useIds.contains(userId))
+                        userService.insertUserRole(sysUser, false);
+                }
             }
-            userService.insertUserRole(sysUser, true);
-        }
+        }*/
         sysUser.setPhonenumber(residentInfo.getResidentPhone());
         userService.updateUserByIdNoTenantId(sysUser);
         return baseMapper.updateById(residentInfo) > 0;

+ 37 - 2
ruoyi-modules/ruoyi-wuye/src/main/resources/mapper/wuYe/HouseInfoMapper.xml

@@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="hasParkingSpace"    column="has_parking_space"    />
         <result property="parkingNumber"    column="parking_number"    />
         <result property="communityName"    column="community_name"    />
-        <result property="houseStatus"    column="house_status"    />
+        <result property="houseStatus"    column="h_house_status"    />
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
@@ -88,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
         h.house_id AS h_house_id,
         h.detailed_address AS h_detailed_address,
-        h.house_status,
+        h.house_status as h_house_status,
         h.location,
         h.owner_name,
         h.area,
@@ -117,4 +117,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         order by h.create_time DESC
     </select>
+
+
+    <select id="selectHouseInfoListAndResidentInfoPage" resultType="org.dromara.domain.residentInfo.ResidentInfo" resultMap="HouseInfoResultResident">
+        SELECT
+        h.house_id AS h_house_id,
+        h.detailed_address AS h_detailed_address,
+        h.house_status as h_house_status,
+        h.location,
+        h.owner_name,
+        h.area,
+        h.has_parking_space,
+        h.community_name,
+        r.resident_id,
+        r.resident_name,
+        r.resident_id_card,
+        r.resident_gender,
+        r.resident_relationship,
+        r.is_householder,
+        r.is_tenant,
+        r.resident_appearance
+        FROM
+        house_info h
+        left JOIN
+        resident_info r on h.house_id = r.house_id
+        <where>
+            <if test="ResidentInfo.residentName != null  and ResidentInfo.residentName != ''"> and r.resident_name like concat('%', #{ResidentInfo.residentName}, '%')</if>
+            <if test="ResidentInfo.residentAppearance != null  and ResidentInfo.residentAppearance != ''"> and r.resident_appearance = #{ResidentInfo.residentAppearance}</if>
+            <if test="ResidentInfo.userId != null  and ResidentInfo.userId != ''"> and r.user_id = #{ResidentInfo.userId}</if>
+            <if test="ResidentInfo.houseId != null"> and h.house_id = #{ResidentInfo.houseId}</if>
+            <if test="ResidentInfo.residentPhone != null"> and r.resident_phone = #{ResidentInfo.residentPhone}</if>
+            <if test="ResidentInfo.houseStatus != null and ResidentInfo.houseStatus !=''"> and h.house_status = #{ResidentInfo.houseStatus}</if>
+            <if test="ResidentInfo.detailedAddress != null"> and h.detailed_address = #{ResidentInfo.detailedAddress}</if>
+        </where>
+        order by h.create_time DESC
+    </select>
 </mapper>