houweiyu 4 anni fa
parent
commit
07194fe17b

+ 15 - 9
src/main/java/fcb/project/manager/base/config/RedisConfiguration.java

@@ -1,6 +1,7 @@
 
 package fcb.project.manager.base.config;
 
+import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -9,9 +10,11 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
 
+import java.net.UnknownHostException;
 
 
 /**
@@ -26,16 +29,19 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
 public class RedisConfiguration {
 
     @Bean
+    public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
+        StringRedisTemplate template = new StringRedisTemplate();
+        template.setConnectionFactory(redisConnectionFactory);
+        return template;
+    }
+
+    @Bean
     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
         RedisTemplate<String, Object> template = new RedisTemplate<>();
         template.setConnectionFactory(factory);
-
-        // 使用Jackson2JsonRedisSerialize 替换默认的jdkSerializeable序列化
-        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
-        ObjectMapper om = new ObjectMapper();
-        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
-        jackson2JsonRedisSerializer.setObjectMapper(om);
+        FastJsonRedisSerializer fastJsonRedisSerializer =  new FastJsonRedisSerializer(Object.class);
+        template.setValueSerializer(fastJsonRedisSerializer);
+        template.setHashValueSerializer(fastJsonRedisSerializer);
 
         StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
 
@@ -44,9 +50,9 @@ public class RedisConfiguration {
         // hash的key也采用String的序列化方式
         template.setHashKeySerializer(stringRedisSerializer);
         // value序列化方式采用jackson
-        template.setValueSerializer(jackson2JsonRedisSerializer);
+        template.setValueSerializer(fastJsonRedisSerializer);
         // hash的value序列化方式采用jackson
-        template.setHashValueSerializer(jackson2JsonRedisSerializer);
+        template.setHashValueSerializer(fastJsonRedisSerializer);
         template.afterPropertiesSet();
         return template;
     }

+ 65 - 0
src/main/java/fcb/project/manager/base/entity/ContextTokenBean.java

@@ -0,0 +1,65 @@
+package fcb.project.manager.base.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/1/21 15:54
+ * 4
+ */
+@Data
+public class ContextTokenBean implements Serializable{
+
+
+    /**
+     * departmentName : 集团总部
+     * nickName : 管理员
+     * roleId : 1345997140642054144
+     * departmentId : 1345983116940476416
+     * roleName : 集团总部管理员
+     * roleKey : admin
+     * id : 1346013739830824960
+     * resourcesTreeByUserPermission : [{"checked":false,"id":"1349209780403093505","isHeader":"0","level":0,"name":"审核管理","order":"1","resourceKey":"examine","resourceType":"menu","spread":false},{"checked":false,"id":"1349209780403093506","isHeader":"0","level":0,"name":"组织架构","order":"1","resourceKey":"department","resourceType":"menu","spread":false}]
+     * userName : 88888888888
+     */
+
+    private String departmentName;
+    private String nickName;
+    private String roleId;
+    private String departmentId;
+    private String roleName;
+    private String roleKey;
+    private String id;
+    private String userName;
+    private List<ResourcesTreeByUserPermissionBean> resourcesTreeByUserPermission;
+
+
+    @Data
+    public static class ResourcesTreeByUserPermissionBean implements Serializable {
+        /**
+         * checked : false
+         * id : 1349209780403093505
+         * isHeader : 0
+         * level : 0
+         * name : 审核管理
+         * order : 1
+         * resourceKey : examine
+         * resourceType : menu
+         * spread : false
+         */
+
+        private Boolean checked;
+        private String id;
+        private String isHeader;
+        private Integer level;
+        private String name;
+        private String order;
+        private String resourceKey;
+        private String resourceType;
+        private Boolean spread;
+
+    }
+}

+ 11 - 0
src/main/java/fcb/project/manager/base/entity/TmAudit.java

@@ -1,10 +1,13 @@
 package fcb.project.manager.base.entity;
 
 import java.time.LocalDateTime;
+
+import com.alibaba.fastjson.annotation.JSONField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 
 import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -58,6 +61,8 @@ public class TmAudit implements Serializable {
     private String creatorId;
 
     @ApiModelProperty(value = "提审时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime sumitTime;
 
     @ApiModelProperty(value = "审核状态: 0->待审核;1->已审核;-1->不通过")
@@ -73,15 +78,21 @@ public class TmAudit implements Serializable {
     private String auditorId;
 
     @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime auditTime;
 
     @ApiModelProperty(value = "vr项目是否上线: 1->上线; 0->下线")
     private Integer vrOnline;
 
     @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "最新更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "是否删除: 0->未删除; 1->已删除")

+ 10 - 0
src/main/java/fcb/project/manager/base/entity/TmEstate.java

@@ -3,11 +3,13 @@ package fcb.project.manager.base.entity;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 
 import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -50,10 +52,14 @@ public class TmEstate implements Serializable {
 
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "最新更新时间")
     @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "是否删除:0->未删除; 1->已删除")
@@ -65,9 +71,13 @@ public class TmEstate implements Serializable {
     private String fcbEstateId;
 
     @ApiModelProperty(value = "交房时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime earliestHandOver;
 
     @ApiModelProperty(value = "最新开盘时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime onSaleTime;
 
     @ApiModelProperty(value = "楼盘经度")

+ 14 - 0
src/main/java/fcb/project/manager/base/entity/TmHouse.java

@@ -2,11 +2,13 @@ package fcb.project.manager.base.entity;
 
 import java.time.LocalDateTime;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 
 import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -46,10 +48,14 @@ public class TmHouse implements Serializable {
 
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "最新更新时间")
     @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "状态: 0 -> 草稿;1->待审核;2->已审核;3->未通过")
@@ -66,6 +72,8 @@ public class TmHouse implements Serializable {
     private String auditorName;
 
     @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime auditTime;
 
     @ApiModelProperty(value = "是否删除: 0->未删除; 1->已删除")
@@ -76,6 +84,9 @@ public class TmHouse implements Serializable {
     @ApiModelProperty(value = "所属楼盘ID")
     private String estateId;
 
+    @ApiModelProperty(value = "所属楼盘名称")
+    private String estateName;
+
     @ApiModelProperty(value = "类型")
     private Integer type;
 
@@ -116,4 +127,7 @@ public class TmHouse implements Serializable {
     @ApiModelProperty(value = "楼盘全景")
     private String landscape;
 
+    @ApiModelProperty(value = "所属公司ID")
+    private String belongCompanyId;
+
 }

+ 9 - 0
src/main/java/fcb/project/manager/base/entity/TmOperation.java

@@ -1,10 +1,13 @@
 package fcb.project.manager.base.entity;
 
 import java.time.LocalDateTime;
+
+import com.alibaba.fastjson.annotation.JSONField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 
 import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -31,6 +34,8 @@ public class TmOperation implements Serializable {
     private String id;
 
     @ApiModelProperty(value = "操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime operateTime;
 
     @ApiModelProperty(value = "操作员名称")
@@ -61,9 +66,13 @@ public class TmOperation implements Serializable {
     private String operateContent;
 
     @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "最新更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "是否删除: 0->未删除; 1->已删除")

+ 6 - 5
src/main/java/fcb/project/manager/base/service/impl/TmAuditServiceImpl.java

@@ -3,6 +3,7 @@ package fcb.project.manager.base.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import fcb.project.manager.base.entity.ContextTokenBean;
 import fcb.project.manager.base.entity.TmAudit;
 import fcb.project.manager.base.dao.TmAuditDao;
 import fcb.project.manager.base.entity.TmEstate;
@@ -86,7 +87,7 @@ public class TmAuditServiceImpl extends ServiceImpl<TmAuditDao, TmAudit> impleme
 
 
     @Transactional(rollbackFor = Exception.class)
-    public  TmAudit addNewAuditWithRespon(TmHouse tmHouse , TmEstate tmEstate , Map<String , Object> token){
+    public  TmAudit addNewAuditWithRespon(TmHouse tmHouse , TmEstate tmEstate , ContextTokenBean token){
         if(null == tmHouse){
             return null;
         }
@@ -99,10 +100,10 @@ public class TmAuditServiceImpl extends ServiceImpl<TmAuditDao, TmAudit> impleme
             tmAudit.setBelongEstateName(tmEstate.getEstateName());
             tmAudit.setBelongEstateId(tmEstate.getId());
         }
-        String userId = (String) token.get("id");
-        String userName = (String) token.get("userName");
-        tmAudit.setCreatorId(userId);
-        tmAudit.setCreatorName(userName);
+        if(null != token){
+            tmAudit.setCreatorId(token.getId());
+            tmAudit.setCreatorName(token.getUserName());
+        }
         tmAudit.setBelongCompanyId(tmEstate.getBelongCompanyId());
         tmAudit.setBelongCompanyName(tmEstate.getBelongCompanyName());
         tmAudit.setSumitTime(LocalDateTime.now());

+ 1 - 0
src/main/java/fcb/project/manager/base/service/impl/TmEstateServiceImpl.java

@@ -39,6 +39,7 @@ public class TmEstateServiceImpl extends ServiceImpl<TmEstateDao, TmEstate> impl
             lambdaQueryWrapper.like(TmEstate::getEstateName , estateName);
         }
         lambdaQueryWrapper.eq(TmEstate::getIsDelete , DeleteStatus.NOT_DELETE.getCode());
+        lambdaQueryWrapper.orderByDesc(TmEstate::getCreateTime);
         IPage<TmEstate> page = new Page<>(pageNum , pageSize);
         return  getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }

+ 37 - 2
src/main/java/fcb/project/manager/base/service/impl/TmHouseServiceImpl.java

@@ -7,6 +7,7 @@ import fcb.project.manager.base.entity.TmEstate;
 import fcb.project.manager.base.entity.TmHouse;
 import fcb.project.manager.base.dao.TmHouseDao;
 import fcb.project.manager.base.enums.DeleteStatus;
+import fcb.project.manager.base.enums.HouseStatus;
 import fcb.project.manager.base.enums.UuidPreEnum;
 import fcb.project.manager.base.service.ITmHouseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -31,7 +32,7 @@ import java.time.LocalDateTime;
 @Log4j2
 public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> implements ITmHouseService {
 
-    public IPage<TmHouse> getListByNameOrBelong(String houseTitle , Integer status, int type,
+    public IPage<TmHouse> getListByNameOrBelong(String houseTitle , Integer status, Integer type,
                                                String estateId , Long pageNum , Long pageSize){
         LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(TmHouse::getEstateId , estateId);
@@ -41,8 +42,41 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
         if(null != status){
             lambdaQueryWrapper.eq(TmHouse::getStatus , status);
         }
+        if(null != type){
+            lambdaQueryWrapper.eq(TmHouse::getType , type);
+        }
+        lambdaQueryWrapper.orderByDesc(TmHouse::getCreateTime);
+        IPage<TmHouse> page = new Page<>(pageNum , pageSize , true);
+        return  getBaseMapper().selectPage(page , lambdaQueryWrapper);
+    }
+
+    public IPage<TmHouse> checkEstateCanDelete(String estateId){
+        LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmHouse::getEstateId , estateId);
+        lambdaQueryWrapper.eq(TmHouse::getStatus , HouseStatus.AUDITED.getCode())
+                .or().eq(TmHouse::getStatus , HouseStatus.WAITING_AUDIT.getCode());
+        IPage<TmHouse> page = new Page<>(1 , 10 , true);
+        return  getBaseMapper().selectPage(page , lambdaQueryWrapper);
+    }
+
+    public IPage<TmHouse> getAuditHouseList(String houseTitle , Integer status, int type,
+                                                String belongCompany , String estateName , Long pageNum , Long pageSize){
+        LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(StringUtils.isNotBlank(houseTitle)){
+            lambdaQueryWrapper.like(TmHouse::getHouseTitle , houseTitle);
+        }
+        if(null != status){
+            lambdaQueryWrapper.eq(TmHouse::getStatus , status);
+        }else{
+            lambdaQueryWrapper.ne(TmHouse::getStatus , HouseStatus.DRAFT.getCode());
+        }
+        if(StringUtils.isNotBlank(estateName)){
+            lambdaQueryWrapper.like(TmHouse::getEstateName , estateName);
+        }
+        if(StringUtils.isNotBlank(belongCompany)){
+            lambdaQueryWrapper.eq(TmHouse::getBelongCompanyId , belongCompany);
+        }
         lambdaQueryWrapper.eq(TmHouse::getType , type);
-//        lambdaQueryWrapper.eq(TmHouse::getIsDelete , DeleteStatus.NOT_DELETE.getCode());
         IPage<TmHouse> page = new Page<>(pageNum , pageSize , true);
         return  getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }
@@ -110,6 +144,7 @@ public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> impleme
         tmHouse.setCreateTime(LocalDateTime.now());
         tmHouse.setUpdateTime(LocalDateTime.now());
         tmHouse.setIsDelete(DeleteStatus.NOT_DELETE.getCode());
+        getBaseMapper().insert(tmHouse);
         return tmHouse;
     }
     public TmHouse getBySceneNumAndHouseId(String sceneNum , String projectId , String houseId){

+ 1 - 0
src/main/java/fcb/project/manager/base/service/impl/TmOperationServiceImpl.java

@@ -75,6 +75,7 @@ public class TmOperationServiceImpl extends ServiceImpl<TmOperationDao, TmOperat
             lambdaQueryWrapper.like(TmOperation::getOperatorPhone , phone);
         }
         lambdaQueryWrapper.eq(TmOperation::getIsDelete , 0);
+        lambdaQueryWrapper.orderByDesc(TmOperation::getOperateTime);
         return getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }
 }

+ 1 - 0
src/main/java/fcb/project/manager/core/controller/AuditController.java

@@ -2,6 +2,7 @@ package fcb.project.manager.core.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import fcb.project.manager.base.entity.ContextTokenBean;
 import fcb.project.manager.base.entity.TmAudit;
 import fcb.project.manager.base.entity.TmHouse;
 import fcb.project.manager.base.enums.HouseStatus;

+ 52 - 13
src/main/java/fcb/project/manager/core/controller/HouseManagerController.java

@@ -1,7 +1,10 @@
 package fcb.project.manager.core.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import fcb.project.manager.base.entity.ContextTokenBean;
 import fcb.project.manager.base.entity.TmAudit;
 import fcb.project.manager.base.entity.TmEstate;
 import fcb.project.manager.base.entity.TmHouse;
@@ -79,7 +82,7 @@ public class HouseManagerController {
 
 
     @GetMapping("/queryOrSearchList")
-    @ApiOperation(value = "根据条件拉取所有楼盘")
+    @ApiOperation(value = "根据条件拉取所有房源")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "houseTitle", value = "房源名称", paramType = "query", required = false, dataType = "String"),
             @ApiImplicitParam(name = "status", value = "状态: 0->草稿;1->待审核;2->已审核;3->未通过", paramType = "query", required = false, dataType = "Integer"),
@@ -104,6 +107,31 @@ public class HouseManagerController {
                 resultPage.getCurrent(), resultPage.getRecords()));
     }
 
+    @GetMapping("/getAuditHouseList")
+    @ApiOperation(value = "审核管理页面根据条件拉取所有房源")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "houseTitle", value = "房源名称", paramType = "query", required = false, dataType = "String"),
+            @ApiImplicitParam(name = "status", value = "状态: 0->草稿;1->待审核;2->已审核;3->未通过", paramType = "query", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "type", value = "房源类型: 1->新房,2->二手房", paramType = "query", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "belongCompany", value = "所属公司ID", paramType = "query", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "estateName", value = "楼盘名称", paramType = "query", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "pageNum", value = "当前页码", paramType = "query", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "pageSize", value = "每页大小", paramType = "query", required = true, dataType = "Long")
+    })
+    public Result<Object> getAuditHouseList(@RequestParam(required = false) String houseTitle,
+                                       @RequestParam(required = false) Integer status,
+                                       @RequestParam(name = "type") Integer type,
+                                       @RequestParam(name = "belongCompany") String belongCompany,
+                                       @RequestParam(name = "estateName") String estateName,
+                                       @RequestParam(name = "pageNum")Long pageNum,
+                                       @RequestParam(name = "pageSize")Long pageSize){
+
+        IPage<TmHouse> resultPage = tmHouseService.getAuditHouseList(houseTitle , status ,
+                type , belongCompany , estateName ,  pageNum , pageSize);
+        return  Result.success(DataUtils.assembleResult(resultPage.getTotal(), resultPage.getPages(),
+                resultPage.getCurrent(), resultPage.getRecords()));
+    }
+
     @GetMapping("/getQrImage")
     @ApiOperation(value = "根据房源ID获取房源分享二维码")
     @ApiImplicitParams({
@@ -235,11 +263,16 @@ public class HouseManagerController {
         if(StringUtils.isBlank(token)){
             return Result.failure("token缺失");
         }
-        String tokenValueStr = (String) redisTemplate.opsForValue().get(token);
-        if(StringUtils.isBlank(tokenValueStr)){
-            return Result.failure("登录失效,需要重新登录");
+        JSONObject tokenJson = new JSONObject();
+        try {
+            tokenJson = (JSONObject) redisTemplate.opsForValue().get(token);
+            if(null == tokenJson){
+                return Result.failure("登录失效,需要重新登录");
+            }
+        }catch (Exception e){
+            log.info("json数据转换出现异常:{}" , e);
         }
-        Map<String , Object> tokenMap = JSON.parseObject(tokenValueStr);
+        ContextTokenBean tokenMap = JSON.parseObject(tokenJson.toJSONString() , ContextTokenBean.class);
         if(null == tokenMap){
             return Result.failure("解析token失败");
         }
@@ -250,10 +283,11 @@ public class HouseManagerController {
 
         TmHouse tmHouse = new TmHouse();
         tmHouse.setEstateId(estateId);
-        String userId = (String) tokenMap.get("id");
-        String userName = (String) tokenMap.get("userName");
-        tmHouse.setCreateById(userId);
-        tmHouse.setCreateByName(userName);
+        if(null != tokenMap){
+            tmHouse.setCreateById(tokenMap.getId());
+            tmHouse.setCreateByName(tokenMap.getUserName());
+        }
+        tmHouse.setEstateName(tmEstate.getEstateName());
         tmHouse.setStatus(0);
         TmHouse latestHouse = tmHouseService.insertNewWithRsp(tmHouse);
         if(null != latestHouse){
@@ -361,11 +395,16 @@ public class HouseManagerController {
         if(StringUtils.isBlank(token)){
             return Result.failure("token缺失");
         }
-        String tokenValueStr = (String) redisTemplate.opsForValue().get(token);
-        if(StringUtils.isBlank(tokenValueStr)){
-            return Result.failure("登录失效,需要重新登录");
+        JSONObject tokenJson = new JSONObject();
+        try {
+            tokenJson = (JSONObject) redisTemplate.opsForValue().get(token);
+            if(null == tokenJson){
+                return Result.failure("登录失效,需要重新登录");
+            }
+        }catch (Exception e){
+            log.info("json数据转换出现异常:{}" , e);
         }
-        Map<String , Object> tokenMap = JSON.parseObject(tokenValueStr);
+        ContextTokenBean tokenMap = JSON.parseObject(tokenJson.toJSONString() , ContextTokenBean.class);
         if(null == tokenMap){
             return Result.failure("解析token失败");
         }

+ 33 - 4
src/main/java/fcb/project/manager/core/controller/ProjectController.java

@@ -1,8 +1,12 @@
 package fcb.project.manager.core.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import fcb.project.manager.base.entity.ContextTokenBean;
 import fcb.project.manager.base.entity.TmEstate;
+import fcb.project.manager.base.entity.TmHouse;
 import fcb.project.manager.base.service.impl.TmEstateServiceImpl;
+import fcb.project.manager.base.service.impl.TmHouseServiceImpl;
 import fcb.project.manager.base.utils.DataUtils;
 import fdage.back.sdk.base.entity.Result;
 import fdage.back.sdk.base.enums.ResultCodeEnum;
@@ -14,8 +18,11 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 2 * @Author: Abner
  * 3 * @Date: 2021/1/7 12:16
@@ -30,6 +37,12 @@ public class ProjectController {
     @Autowired
     private TmEstateServiceImpl tmEstateService;
 
+    @Autowired
+    private TmHouseServiceImpl tmHouseService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
     @GetMapping("/queryOrSearchList")
     @ApiOperation(value = "根据条件拉取所有楼盘")
     @ApiImplicitParams({
@@ -50,12 +63,24 @@ public class ProjectController {
 
     @PostMapping("/addEstate")
     @ApiOperation(value = "创建楼盘项目")
-    public Result<Object> addNewEstate(@RequestBody TmEstate tmEstate){
+    public Result<Object> addNewEstate(@RequestBody TmEstate tmEstate , HttpServletRequest request){
 
-        if(!StringUtils.isNoneBlank(tmEstate.getEstateName() , tmEstate.getBelongCompanyName())){
-            throw new CommonBaseException(ResultCodeEnum.D101 , "楼盘名称或者所属公司不能为空");
+        if(!StringUtils.isNoneBlank(tmEstate.getEstateName() )){
+            throw new CommonBaseException(ResultCodeEnum.D101 , "楼盘名称不能为空");
         }
-        TmEstate dbEstate = tmEstateService.getOneByNameAndBelong(tmEstate.getEstateName() , tmEstate.getBelongCompanyName());
+        String token = request.getHeader("token");
+        if(StringUtils.isBlank(token)){
+            return Result.failure("token缺失");
+        }
+        String tokenValueStr = (String) redisTemplate.opsForValue().get(token);
+        if(StringUtils.isBlank(tokenValueStr)){
+            return Result.failure("登录失效,需要重新登录");
+        }
+        ContextTokenBean tokenMap = JSON.parseObject(tokenValueStr , ContextTokenBean.class);
+        if(null == tokenMap){
+            return Result.failure("解析token失败");
+        }
+        TmEstate dbEstate = tmEstateService.getOneByNameAndBelong(tmEstate.getEstateName() , tokenMap.getDepartmentName());
         if(null != dbEstate){
             log.info("{}公司下面的楼盘{}已经存在" , tmEstate.getBelongCompanyName() , tmEstate.getEstateName());
             throw new CommonBaseException(ResultCodeEnum.D101 , "楼盘已经存在,无需再添加");
@@ -74,6 +99,10 @@ public class ProjectController {
         if(StringUtils.isBlank(estateId)){
             return Result.failure("楼盘ID不能为空");
         }
+        IPage<TmHouse> page = tmHouseService.checkEstateCanDelete(estateId);
+        if(null != page && page.getTotal() > 0){
+            return Result.failure("楼盘下存在VR项目时不可删除");
+        }
         int delete = tmEstateService.deleteEstateById(estateId);
         if(delete != 1){
             return Result.failure("删除失败");

+ 4 - 2
src/main/resources/application-dev.properties

@@ -2,7 +2,7 @@
 server.port=8285
 
 #注册中心
-spring.cloud.nacos.discovery.server-addr=10.71.5.163:8848
+spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
 
 #spring.datasource.url=jdbc:mysql://8.135.107.23:31306/fcb-project-manager?serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
 #spring.datasource.username=root
@@ -19,7 +19,9 @@ swagger.page.desc=设计到房源api、楼盘项目管理、审核流程业务
 swagger.page.packagePath=fcb.project.manager
 
 spring.redis.cluster.max-redirects=3
-spring.redis.cluster.nodes=10.1.145.117:6379,8.135.98.231:30063
+spring.redis.cluster.nodes=8.135.107.23:30064
+#spring.redis.host=127.0.0.1
+#spring.redis.port=6379
 spring.redis.timeout=5000ms
 spring.redis.jedis.pool.max-active=8
 spring.redis.jedis.pool.max-idle=8

+ 3 - 3
src/main/resources/application-prod.properties

@@ -4,9 +4,9 @@ server.port=8285
 #注册中心
 spring.cloud.nacos.discovery.server-addr=10.71.5.163:80
 
-spring.datasource.url=jdbc:mysql://10.71.184.146:3306/vr4_nacos?serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-spring.datasource.username=vr4_nacos_rw
-spring.datasource.password=rh8DWVcVlbO7CGnC16Xm
+spring.datasource.url=jdbc:mysql://10.71.184.146:3306/db_4dkankan?serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.username=user_4dkankan_rw
+spring.datasource.password=y2b9a42wRwGNKkJjCm1o
 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
 
 swagger.page.title=房车宝管理后台楼盘管理相关接口

+ 10 - 11
src/main/resources/application-test.properties

@@ -13,8 +13,7 @@ spring.datasource.url=jdbc:mysql://127.0.0.1:3306/fcb-project-manager?serverTime
 spring.datasource.username=root
 spring.datasource.password=4DAGE168!a
 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
-spring.redis.database=0
-spring.redis.password=
+
 
 
 swagger.page.title=房车宝管理后台楼盘管理相关接口
@@ -22,16 +21,16 @@ swagger.page.version=1.0
 swagger.page.desc=设计到房源api、楼盘项目管理、审核流程业务逻辑的接口
 swagger.page.packagePath=fcb.project.manager
 
-#spring.redis.database=0
-#spring.redis.password=
-#spring.redis.cluster.max-redirects=3
-#spring.redis.cluster.nodes=10.71.184.237:7000,10.71.184.181:7000,10.71.184.217:7000,10.71.184.188:7000,10.71.184.222:7000,10.71.184.200:7000
-#spring.redis.timeout=5000ms
-#spring.redis.jedis.pool.max-active=8
-#spring.redis.jedis.pool.max-idle=8
-#spring.redis.jedis.pool.max-wait=-1
-#spring.redis.jedis.pool.min-idle=0
 
+spring.redis.cluster.max-redirects=3
+spring.redis.cluster.nodes=10.1.152.54:6379
+spring.redis.timeout=5000ms
+spring.redis.jedis.pool.max-active=8
+spring.redis.jedis.pool.max-idle=8
+spring.redis.jedis.pool.max-wait=-1
+spring.redis.jedis.pool.min-idle=0
+spring.redis.database=0
+spring.redis.password=
 
 4dkankan.host.url=https://test.4dkankan.com/vrHouse.html?m=
 

+ 2 - 2
src/main/resources/application.properties

@@ -1,8 +1,8 @@
 
 
 #spring.profiles.active=prod
-spring.profiles.active=dev
-#spring.profiles.active=test
+#spring.profiles.active=dev
+spring.profiles.active=test
 
 #应用名
 spring.application.name=fbc-project-manager