houweiyu 4 anni fa
parent
commit
b0a0bf09c9

+ 0 - 2
src/main/java/fcb/project/manager/FcbProjectManagerApplication.java

@@ -1,6 +1,5 @@
 package fcb.project.manager;
 
-import fcb.project.manager.base.rocketmq.listener.MqMsgLoadBaseListener;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -23,7 +22,6 @@ public class FcbProjectManagerApplication {
 
     public static void main(String[] args) {
         SpringApplication springApplication = new SpringApplication(FcbProjectManagerApplication.class);
-//        springApplication.addListeners(new MqMsgLoadBaseListener());
         springApplication.run(args);
     }
 }

+ 6 - 2
src/main/java/fcb/project/manager/base/entity/TmHouse.java

@@ -55,11 +55,15 @@ public class TmHouse implements Serializable {
     @ApiModelProperty(value = "状态")
     private Integer status;
 
-    @ApiModelProperty(value = "审核ID")
+    @ApiModelProperty(value = "审核记录ID")
     private String auditId;
 
+    @ApiModelProperty(value = "审核人ID")
+    private String auditorId;
+
+
     @ApiModelProperty(value = "审核人名称")
-    private String auditName;
+    private String auditorName;
 
     @ApiModelProperty(value = "审核时间")
     private LocalDateTime auditTime;

+ 34 - 1
src/main/java/fcb/project/manager/base/service/impl/TmAuditServiceImpl.java

@@ -34,7 +34,7 @@ public class TmAuditServiceImpl extends ServiceImpl<TmAuditDao, TmAudit> impleme
 
     public IPage<TmAudit> queryOrSearchList(String vrTitle , Integer vrType,
                                             String belongEstate , String belongCompany,
-                                            Integer auditStatus , long pageNum , long pageSize){
+                                            Integer auditStatus , long pageNum , long pageSize , String houseId){
         IPage<TmAudit> page = new Page<>(pageNum , pageSize);
         LambdaQueryWrapper<TmAudit> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         if(StringUtils.isNoneBlank(vrTitle)){
@@ -49,6 +49,9 @@ public class TmAuditServiceImpl extends ServiceImpl<TmAuditDao, TmAudit> impleme
         if(null != auditStatus){
             lambdaQueryWrapper.eq(TmAudit::getAuditStatus , auditStatus);
         }
+        if(StringUtils.isNotBlank(houseId)){
+            lambdaQueryWrapper.eq(TmAudit::getVrId , houseId);
+        }
         return getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }
 
@@ -97,6 +100,36 @@ public class TmAuditServiceImpl extends ServiceImpl<TmAuditDao, TmAudit> impleme
     }
 
 
+    @Transactional(rollbackFor = Exception.class)
+    public  TmAudit addNewAuditWithRespon(TmHouse tmHouse , TmEstate tmEstate){
+        if(null == tmHouse){
+            return null;
+        }
+        TmAudit tmAudit = new TmAudit();
+        tmAudit.setId(SnowFlakeUUidUtils.generaUUid(null , null , "AUD00000"));
+        tmAudit.setVrTitle(tmHouse.getHouseTitle());
+        tmAudit.setVrType(tmHouse.getType());
+        if(null != tmEstate){
+            tmAudit.setBelongEstateName(tmEstate.getEstateName());
+            tmAudit.setBelongEstateId(tmEstate.getId());
+        }
+        //TODO:
+        tmAudit.setCreatorId("");
+        //TODO:
+        tmAudit.setCreatorName("");
+        tmAudit.setSumitTime(LocalDateTime.now());
+        tmAudit.setAuditStatus(AuditStatus.WAITING_AUDIT.getCode());
+        tmAudit.setVrOnline(tmHouse.getOnline());
+        tmAudit.setCreateTime(LocalDateTime.now());
+        tmAudit.setUpdateTime(LocalDateTime.now());
+        tmAudit.setIsDelete(DeleteStatus.NOT_DELETE.getCode());
+        int insert =  getBaseMapper().insert(tmAudit);
+        if(insert != 1){
+            return null;
+        }
+        return tmAudit;
+    }
+
 
 
 

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

@@ -56,9 +56,6 @@ public class TmEstateServiceImpl extends ServiceImpl<TmEstateDao, TmEstate> impl
         return getBaseMapper().selectOne(lambdaQueryWrapper);
     }
 
-    public TmEstate getById(String id){
-        return getById(id);
-    }
 
     public boolean updateEstate(TmEstate estate){
         if(null == estate){

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

@@ -32,8 +32,9 @@ import java.time.LocalDateTime;
 public class TmHouseServiceImpl extends ServiceImpl<TmHouseDao, TmHouse> implements ITmHouseService {
 
     public IPage<TmHouse> getListByNameOrBelong(String houseTitle , Integer status, int type,
-                                                Long pageNum , Long pageSize){
+                                               String estateId , Long pageNum , Long pageSize){
         LambdaQueryWrapper<TmHouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmHouse::getEstateId , estateId);
         if(StringUtils.isNotBlank(houseTitle)){
             lambdaQueryWrapper.like(TmHouse::getHouseTitle , houseTitle);
         }

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

@@ -46,7 +46,7 @@ public class ApiQueryHouseController {
     @ResponseBody
     @GetMapping(value = "/getHouseInfo")
     @Transactional(rollbackFor = Exception.class)
-    //TODO:这里要添加写入和读取缓存
+    //TODO:这里要添加写入和读取TmEstateServiceImpl缓存
     public Result getHouseInfo(@RequestParam(value = "scene_code") String sceneCode,
                                @RequestParam(value = "user_id") String userId,
                                @RequestParam(value = "room_id") String roomId,

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

@@ -44,17 +44,17 @@ public class AuditController {
             @ApiImplicitParam(name = "vrType", value = "vr项目类型: 1->新房;2->二手房;", paramType = "query", required = false, dataType = "Integer"),
             @ApiImplicitParam(name = "belongEstate", value = "所属楼盘", paramType = "query", required = false, dataType = "String"),
             @ApiImplicitParam(name = "belongCompany", value = "所属公司", paramType = "query", required = false, dataType = "String"),
-            @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "auditStatus", value = "审核状态: 0->待审核;1->已审核;-1->不通过", paramType = "query", required = false, dataType = "Integer"),
             @ApiImplicitParam(name = "pageNum", value = "当前页码", paramType = "query", required = true, dataType = "Long"),
-            @ApiImplicitParam(name = "pageSize", value = "每页大小", paramType = "query", required = true, dataType = "Long")
+            @ApiImplicitParam(name = "pageSize", value = "每页大小", paramType = "query", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "houseId", value = "房源ID", paramType = "query", required = false, dataType = "String")
     })
     public Result<Object> queryList(String vrTitle , Integer vrType,
                                     String belongEstate , String belongCompany,
-                                    Integer auditStatus , Long pageNum , Long pageSize){
-
+                                    Integer auditStatus , Long pageNum , Long pageSize , String houseId){
         IPage<TmAudit> resultPage = tmAuditService.queryOrSearchList(vrTitle , vrType ,
                                                                     belongEstate , belongCompany ,
-                                                                    auditStatus , pageNum , pageSize);
+                                                                    auditStatus , pageNum , pageSize , houseId);
         return  Result.success(DataUtils.assembleResult(resultPage.getTotal(), resultPage.getPages(),
                 resultPage.getCurrent(), resultPage.getRecords()));
     }
@@ -64,7 +64,7 @@ public class AuditController {
     @ApiOperation(value = "审核")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "审核记录ID", paramType = "query", required = false, dataType = "String"),
-            @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "auditStatus", value = "审核状态: 0->待审核;1->已审核;-1->不通过", paramType = "query", required = false, dataType = "Integer"),
     })
     @Transactional(rollbackFor = Exception.class)
     public Result<Object> audit(String id , Integer auditStatus){

+ 46 - 4
src/main/java/fcb/project/manager/core/controller/HouseManagerController.java

@@ -22,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDateTime;
+
 /**
  * 2 * @Author: Abner
  * 3 * @Date: 2021/1/7 17:38
@@ -48,21 +50,48 @@ public class HouseManagerController {
             @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 = "estateId", value = "楼盘ID", 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> getHouseList(@RequestParam(required = false) String houseTitle,
                                          @RequestParam(required = false) Integer status,
                                          @RequestParam(name = "type") Integer type,
+                                         @RequestParam(name = "estateId") String estateId,
                                          @RequestParam(name = "pageNum")Long pageNum,
                                          @RequestParam(name = "pageSize")Long pageSize){
+        if(StringUtils.isBlank(estateId)){
+
+            return Result.failure("楼盘ID不能为空");
+        }
 
-        IPage<TmHouse> resultPage = tmHouseService.getListByNameOrBelong(houseTitle , status , type , pageNum , pageSize);
+        IPage<TmHouse> resultPage = tmHouseService.getListByNameOrBelong(houseTitle , status , type , estateId , pageNum , pageSize);
         return  Result.success(DataUtils.assembleResult(resultPage.getTotal(), resultPage.getPages(),
                 resultPage.getCurrent(), resultPage.getRecords()));
     }
 
 
+    @GetMapping("/getEstateDetail")
+    @ApiOperation(value = "根据房源ID获取楼盘")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "houseId", value = "房源ID", paramType = "query", required = true, dataType = "String"),
+    })
+    public Result<Object> getHouseList(@RequestParam(required = true) String houseId){
+        if(StringUtils.isBlank(houseId)){
+            return Result.failure("楼盘ID不能为空");
+        }
+        TmHouse tmHouse = tmHouseService.getById(houseId);
+        if(null == tmHouse){
+            return Result.failure("房源不存在");
+        }
+        TmEstate tmEstate = tmEstateService.getById(tmHouse.getEstateId());
+        if(null == tmEstate){
+            return Result.failure("楼盘不存在");
+        }
+        return Result.success(tmEstate);
+
+    }
+
     @PostMapping("/addHouse")
     @ApiOperation(value = "创建房源-这里需要720或者四维看看微服务创建完成调用")
     public Result<Object> addNewHouse(@RequestBody TmHouse tmHouse){
@@ -127,6 +156,7 @@ public class HouseManagerController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "houseId", value = "房源ID", paramType = "query", required = true, dataType = "String"),
     })
+    @Transactional(rollbackFor = Exception.class)
     public Result<Object> addNewAudit(@RequestParam String houseId){
 
         if(StringUtils.isBlank(houseId)){
@@ -144,8 +174,19 @@ public class HouseManagerController {
             return Result.failure("房源所属的楼盘不存在");
         }
 
-        int insert = tmAuditService.addNewAudit(dbHouse , tmEstate);
-        if(insert == 1){
+        TmAudit tmAudit = tmAuditService.addNewAuditWithRespon(dbHouse , tmEstate);
+        if(tmAudit != null){
+            dbHouse = tmHouseService.selectForUpdate(dbHouse.getId());
+            if(null == dbHouse){
+                log.error("抢锁失败,更新房源的审批记录失败");
+                throw new CommonBaseException(ResultCodeEnum.D101 , "抢锁失败");
+            }
+            dbHouse.setAuditId(tmAudit.getId());
+            dbHouse.setUpdateTime(LocalDateTime.now());
+            if(!tmHouseService.updateHouse(dbHouse)){
+                log.info("更新房源的审批id失败");
+                throw new CommonBaseException(ResultCodeEnum.D101 , "更新房源的审批记录失败");
+            }
            return Result.success();
         }else{
             return Result.failure("提交失败");
@@ -188,7 +229,8 @@ public class HouseManagerController {
         //走到这里,说明审核的锁已经抢到了
         //两个锁都抢到了,则可以开始做撤销动作了
         dbHouse.setAuditId(null);
-        dbHouse.setAuditName(null);
+        dbHouse.setAuditorId(null);
+        dbHouse.setAuditorName(null);
         dbHouse.setAuditTime(null);
         if(!tmHouseService.updateHouse(dbHouse)){
             throw new CommonBaseException(ResultCodeEnum.D101 , "撤销房源的审批记录失败");

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

@@ -6,9 +6,9 @@ server.port=8285
 #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
 #spring.datasource.password=4DAGE168!a
-spring.datasource.url=jdbc:mysql://120.25.146.52:3306/fcb-project-manager?serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.url=jdbc:mysql://8.135.98.231:3306/fcb-project-manager?serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
 spring.datasource.username=root
-spring.datasource.password=4dkk2020test%
+spring.datasource.password=4DAGE168!a
 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
 
 

+ 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