瀏覽代碼

留言板维护

tangbin 10 月之前
父節點
當前提交
59a47c82aa

+ 120 - 0
yezhu-api/src/main/java/com/kioor/messageboard/controller/ApiMessageBoardController.java

@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.yezhu.io
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.controller;
+
+
+import com.kioor.annotation.Login;
+import com.kioor.common.exception.ErrorCode;
+import com.kioor.common.utils.Result;
+import com.kioor.common.validator.AssertUtils;
+import com.kioor.common.validator.ValidatorUtils;
+import com.kioor.common.validator.group.AddGroup;
+import com.kioor.common.validator.group.DefaultGroup;
+import com.kioor.common.validator.group.UpdateGroup;
+import com.kioor.messageboard.dto.MessageBoardDTO;
+import com.kioor.messageboard.service.MessageBoardService;
+import com.kioor.room.enums.HousingEstateStatus;
+import com.kioor.room.service.HousingEstateService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.Map;
+
+/**
+ * 留言板
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@AllArgsConstructor
+@RestController
+@RequestMapping("/api/messageboard")
+@Tag(name = "留言板")
+public class ApiMessageBoardController {
+
+    private final MessageBoardService messageBoardService;
+
+    private final HousingEstateService housingEstateService;
+
+    @Login
+    @GetMapping("infoByHousingEstate")
+    @Operation(summary = "根据小区查看留言板详情")
+    @Parameters({
+            @Parameter(name = "housingEstateId", description = "小区id",required = true)
+    })
+    public Result<MessageBoardDTO> infoByHousingEstate(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
+        if(params.get("housingEstateId") == null){
+            return new Result().error("小区不能为空");
+        }
+        int status = housingEstateService.checkStatus((Long) params.get("housingEstateId"));
+        if(status!=1) {
+            return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
+        }
+        MessageBoardDTO dto = messageBoardService.infoByHousingEstate((Long) params.get("housingEstateId"));
+
+        return new Result<MessageBoardDTO>().ok(dto);
+    }
+
+
+    @Login
+    @Operation(summary = "信息")
+    @GetMapping("{id}")
+    public Result<MessageBoardDTO> info(@PathVariable("id") Long id) {
+        MessageBoardDTO messageBoardDTO = messageBoardService.get(id);
+        //校验小区状态
+        if(messageBoardDTO!=null){
+            int status = housingEstateService.checkStatus(messageBoardDTO.getHousingEstateId());
+            if(status!=1) {
+                return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
+            }
+        }
+        return new Result<MessageBoardDTO>().ok(messageBoardDTO);
+    }
+
+    @Login
+    @PostMapping
+    @Operation(summary = "保存")
+    public Result save(@RequestBody MessageBoardDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+        //效验数据
+        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+
+        messageBoardService.save(dto);
+
+        return new Result();
+    }
+
+    @Login
+    @PutMapping
+    @Operation(summary = "修改")
+    public Result update(@RequestBody MessageBoardDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+        //效验数据
+        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+
+        messageBoardService.update(dto);
+
+        return new Result();
+    }
+
+    @Login
+    @DeleteMapping
+    @Operation(summary = "删除")
+    public Result delete(@RequestBody Long[] ids) {
+        //效验数据
+        AssertUtils.isArrayEmpty(ids, "id");
+
+        messageBoardService.deleteBatchIds(Arrays.asList(ids));
+
+        return new Result();
+    }
+
+}

+ 26 - 0
yezhu-api/src/main/java/com/kioor/messageboard/dao/MessageBoardDao.java

@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ *
+ * https://www.yezhu.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.dao;
+
+import com.kioor.common.dao.BaseDao;
+import com.kioor.messageboard.entity.MessageBoardEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 留言板
+ * 
+ * @author Mark sunlightcs@gmail.com
+ */
+@Mapper
+public interface MessageBoardDao extends BaseDao<MessageBoardEntity> {
+    List<MessageBoardEntity> getList(Map<String, Object> params);
+}

+ 33 - 0
yezhu-api/src/main/java/com/kioor/messageboard/dto/MessageBoardDTO.java

@@ -0,0 +1,33 @@
+/**
+ * /**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.yezhu.io
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+
+/**
+ * 留言板
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Data
+@Schema(description = "留言板")
+public class MessageBoardDTO {
+    @Schema(description = "id")
+    private Long id;
+
+    @Schema(description = "小区")
+    private Long housingEstateId;
+
+    @Schema(description = "留言板名称")
+    private String name;
+
+}

+ 38 - 0
yezhu-api/src/main/java/com/kioor/messageboard/service/MessageBoardService.java

@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ *
+ * https://www.yezhu.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.service;
+
+import com.kioor.common.service.BaseService;
+import com.kioor.messageboard.dto.MessageBoardDTO;
+import com.kioor.messageboard.entity.MessageBoardEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 留言板
+ * 
+ * @author Mark sunlightcs@gmail.com
+ */
+public interface MessageBoardService extends BaseService<MessageBoardEntity> {
+    List<MessageBoardDTO> list(Map<String, Object> params);
+
+    MessageBoardDTO get(Long id);
+
+    void save(MessageBoardDTO dto);
+
+    void update(MessageBoardDTO dto);
+
+    /**
+     * 根据小区查看留言板详情
+     * @param housingEstateId
+     * @return
+     */
+    MessageBoardDTO infoByHousingEstate(Long housingEstateId);
+}

+ 80 - 0
yezhu-api/src/main/java/com/kioor/messageboard/service/impl/MessageBoardServiceImpl.java

@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.yezhu.io
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.service.impl;
+
+import com.kioor.common.service.impl.BaseServiceImpl;
+import com.kioor.common.utils.ConvertUtils;
+import com.kioor.messageboard.dao.MessageBoardDao;
+import com.kioor.messageboard.dto.MessageBoardDTO;
+import com.kioor.messageboard.entity.MessageBoardEntity;
+import com.kioor.messageboard.service.MessageBoardService;
+import com.kioor.user.service.UserService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@AllArgsConstructor
+public class MessageBoardServiceImpl extends BaseServiceImpl<MessageBoardDao, MessageBoardEntity> implements MessageBoardService {
+
+    private final UserService userService;
+
+    @Override
+    public List<MessageBoardDTO> list(Map<String, Object> params) {
+
+        //查询
+        List<MessageBoardEntity> list = baseDao.getList(params);
+
+        //list复制到dto
+        List<MessageBoardDTO> listDto = ConvertUtils.sourceToTarget(list, MessageBoardDTO.class);
+
+        return listDto;
+    }
+
+    @Override
+    public MessageBoardDTO get(Long id) {
+        MessageBoardEntity entity = baseDao.selectById(id);
+
+        MessageBoardDTO dto = ConvertUtils.sourceToTarget(entity, MessageBoardDTO.class);
+        return dto;
+    }
+
+    @Override
+    public void save(MessageBoardDTO dto) {
+        MessageBoardEntity entity =  ConvertUtils.sourceToTarget(dto, MessageBoardEntity.class);
+        insert(entity);
+    }
+
+    @Override
+    public void update(MessageBoardDTO dto) {
+        MessageBoardEntity entity = ConvertUtils.sourceToTarget(dto, MessageBoardEntity.class);
+
+        updateById(entity);
+    }
+
+    /**
+     * 根据小区查看留言板详情
+     *
+     * @param housingEstateId
+     * @return
+     */
+    @Override
+    public MessageBoardDTO infoByHousingEstate(Long housingEstateId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("housingEstateId", housingEstateId);
+        List<MessageBoardDTO> messageBoardDTOList = list(params);
+        if (messageBoardDTOList != null && !messageBoardDTOList.isEmpty()) {
+            return messageBoardDTOList.get(0);
+        }
+        return null;
+    }
+}

+ 25 - 1
yezhu-api/src/main/java/com/kioor/room/controller/ApiHousingEstateController.java

@@ -20,8 +20,10 @@ import com.kioor.common.validator.ValidatorUtils;
 import com.kioor.common.validator.group.AddGroup;
 import com.kioor.common.validator.group.DefaultGroup;
 import com.kioor.common.validator.group.UpdateGroup;
-import com.kioor.room.dto.HousingEstateDTO;
+import com.kioor.messageboard.dto.MessageBoardDTO;
+import com.kioor.messageboard.service.MessageBoardService;
 import com.kioor.room.dto.BuildingInitDTO;
+import com.kioor.room.dto.HousingEstateDTO;
 import com.kioor.room.enums.HousingEstateStatus;
 import com.kioor.room.service.HousingEstateService;
 import com.kioor.user.entity.UserEntity;
@@ -50,6 +52,8 @@ public class ApiHousingEstateController {
 
     private final HousingEstateService housingEstateService;
 
+    private final MessageBoardService messageBoardService;
+
     @Login
     @GetMapping("page")
     @Operation(summary = "分页")
@@ -166,10 +170,16 @@ public class ApiHousingEstateController {
         if(!housingEstateService.checkInit(buildingInitDTOList.get(0).getHousingEstateId())){
             return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR,"操作非法,小区已有数据,请联系管理员重置");
         }
+        HousingEstateDTO housingEstateDTO = housingEstateService.get(buildingInitDTOList.get(0).getHousingEstateId());
         //先清空房号
         if(!buildingInitDTOList.isEmpty()){
             buildingInitDTOList.forEach(buildingInitDTO -> {
                 housingEstateService.cleanAll(buildingInitDTO.getHousingEstateId());
+                //删除小区留言板
+                MessageBoardDTO messageBoardDTO = messageBoardService.infoByHousingEstate(buildingInitDTO.getHousingEstateId());
+                if(messageBoardDTO != null ){
+                    messageBoardService.deleteById(messageBoardDTO.getId());
+                }
             });
         }
         //更新小区初始化状态为1
@@ -177,6 +187,15 @@ public class ApiHousingEstateController {
         //初始化小区信息
         housingEstateService.buildingInit(buildingInitDTOList);
 
+        //初始化小区留言板
+        MessageBoardDTO messageBoardDTO = messageBoardService.infoByHousingEstate(buildingInitDTOList.get(0).getHousingEstateId());
+        if(messageBoardDTO == null ){
+            messageBoardDTO = new MessageBoardDTO();
+            messageBoardDTO.setHousingEstateId(buildingInitDTOList.get(0).getHousingEstateId());
+            messageBoardDTO.setName(housingEstateDTO==null?"小区留言板":housingEstateDTO.getName()+"-小区留言板");
+            messageBoardService.save(messageBoardDTO);
+        }
+
         return new Result();
     }
 
@@ -186,6 +205,11 @@ public class ApiHousingEstateController {
     public Result cleanAll(@RequestBody Long housingEstateId) {
 
         housingEstateService.cleanAll(housingEstateId);
+        //删除小区留言板
+        MessageBoardDTO messageBoardDTO = messageBoardService.infoByHousingEstate(housingEstateId);
+        if(messageBoardDTO != null ){
+            messageBoardService.deleteById(messageBoardDTO.getId());
+        }
 
         return new Result();
     }

+ 12 - 0
yezhu-api/src/main/resources/mapper/messageboard/MessageBoardDao.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kioor.messageboard.dao.MessageBoardDao">
+
+    <select id="getList" resultType="com.kioor.messageboard.entity.MessageBoardEntity">
+        select * from tb_message_board where 1=1
+        <if test="housingEstateId != null">
+            and housing_estate_id = #{housingEstateId}
+        </if>
+    </select>
+</mapper>