tangbin 9 kuukautta sitten
vanhempi
sitoutus
d11cb52e59

+ 3 - 4
yezhu-api/src/main/java/com/kioor/messageboard/controller/ApiMessageController.java

@@ -57,13 +57,12 @@ public class ApiMessageController {
             @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
             @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
             @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
-            @Parameter(name = "housingEstateId", description = "小区id"),
-            @Parameter(name = "messageBoardId", description = "论坛id")
+            @Parameter(name = "messagePostId", description = "帖子id")
     })
     public Result<PageData<MessageDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
         //小区和论坛id不能同时为空
-        if(params.get("housingEstateId") == null && params.get("messageBoardId") == null){
-            return new Result().error(ErrorCode.NOT_NULL,"小区和论坛不能同时为空");
+        if(params.get("messagePostId") == null){
+            return new Result().error(ErrorCode.NOT_NULL,"帖子不能为空");
         }
         PageData<MessageDTO> page = messageService.page(params);
         //校验小区状态

+ 141 - 0
yezhu-api/src/main/java/com/kioor/messageboard/controller/ApiMessagePostController.java

@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.kioor.com
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.controller;
+
+
+import com.kioor.annotation.Login;
+import com.kioor.common.constant.Constant;
+import com.kioor.common.exception.ErrorCode;
+import com.kioor.common.page.PageData;
+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.MessagePostDTO;
+import com.kioor.messageboard.service.MessagePostService;
+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.Date;
+import java.util.Map;
+
+/**
+ * 帖子
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@AllArgsConstructor
+@RestController
+@RequestMapping("/client/messagepost")
+@Tag(name = "帖子")
+public class ApiMessagePostController {
+
+    private final MessagePostService messagePostService;
+
+    private final HousingEstateService housingEstateService;
+
+    @Login
+    @GetMapping("page")
+    @Operation(summary = "分页")
+    @Parameters({
+            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
+            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
+            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
+            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
+            @Parameter(name = "housingEstateId", description = "小区id"),
+            @Parameter(name = "messageBoardId", description = "论坛id")
+    })
+    public Result<PageData<MessagePostDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
+        //小区和论坛id不能同时为空
+        if(params.get("housingEstateId") == null && params.get("messageBoardId") == null){
+            return new Result().error(ErrorCode.NOT_NULL,"小区和论坛不能同时为空");
+        }
+        PageData<MessagePostDTO> page = messagePostService.page(params);
+        //校验小区状态
+        if(page.getList()!=null && !page.getList().isEmpty()){
+            int status = housingEstateService.checkStatus(page.getList().get(0).getHousingEstateId());
+            if(status!=1) {
+                return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
+            }
+        }
+
+        return new Result<PageData<MessagePostDTO>>().ok(page);
+    }
+
+
+    @Login
+    @Operation(summary = "信息")
+    @GetMapping("{id}")
+    public Result<MessagePostDTO> info(@PathVariable("id") Long id) {
+        MessagePostDTO messagePostDTO = messagePostService.get(id);
+        //校验小区状态
+        if(messagePostDTO!=null){
+            int status = housingEstateService.checkStatus(messagePostDTO.getHousingEstateId());
+            if(status!=1) {
+                return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
+            }
+        }
+        return new Result<MessagePostDTO>().ok(messagePostDTO);
+    }
+
+    @Login
+    @PostMapping
+    @Operation(summary = "保存")
+    public Result save(@RequestBody MessagePostDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+        //效验数据
+        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+        dto.setEditUser(userId);
+        dto.setEditTime(new Date());
+        if(dto.getShowRoomFlag()==null){
+            dto.setShowRoomFlag(1);
+        }
+
+        messagePostService.save(dto);
+
+        return new Result();
+    }
+
+    @Login
+    @PutMapping
+    @Operation(summary = "修改")
+    public Result update(@RequestBody MessagePostDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+        //效验数据
+        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+        dto.setEditUser(userId);
+        dto.setEditTime(new Date());
+        if(dto.getShowRoomFlag()==null){
+            dto.setShowRoomFlag(1);
+        }
+        messagePostService.update(dto);
+
+        return new Result();
+    }
+
+    @Login
+    @DeleteMapping
+    @Operation(summary = "删除")
+    public Result delete(@RequestBody Long[] ids) {
+        //效验数据
+        AssertUtils.isArrayEmpty(ids, "id");
+
+        messagePostService.deleteBatchIds(Arrays.asList(ids));
+
+        return new Result();
+    }
+
+}

+ 29 - 0
yezhu-api/src/main/java/com/kioor/messageboard/dao/MessagePostDao.java

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

+ 5 - 5
yezhu-api/src/main/java/com/kioor/messageboard/dto/MessageDTO.java

@@ -29,21 +29,21 @@ public class MessageDTO {
     @Schema(description = "小区")
     private Long housingEstateId;
 
-    @Schema(description = "论坛")
-    private Long messageBoardId;
+    @Schema(description = "帖子")
+    private Long messagePostId;
 
     @Schema(description = "留言内容")
     private String content;
 
-    @Schema(description = "留言人")
+    @Schema(description = "编辑人")
     private Long editUser;
 
-    @Schema(description = "留言时间")
+    @Schema(description = "编辑时间")
     private Date editTime;
 
     @Schema(description = "是否显示房号")
     private Integer showRoomFlag;
 
-    @Schema(description = "留言人房号")
+    @Schema(description = "编辑人房号")
     private String roomName;
 }

+ 52 - 0
yezhu-api/src/main/java/com/kioor/messageboard/dto/MessagePostDTO.java

@@ -0,0 +1,52 @@
+/**
+ * /**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.kioor.com
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 帖子
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Data
+@Schema(description = "帖子")
+public class MessagePostDTO {
+    @Schema(description = "id")
+    private Long id;
+
+    @Schema(description = "小区")
+    private Long housingEstateId;
+
+    @Schema(description = "论坛")
+    private Long messageBoardId;
+
+    @Schema(description = "帖子标题")
+    private String title;
+
+    @Schema(description = "帖子内容")
+    private String content;
+
+    @Schema(description = "编辑人")
+    private Long editUser;
+
+    @Schema(description = "编辑时间")
+    private Date editTime;
+
+    @Schema(description = "是否显示房号")
+    private Integer showRoomFlag;
+
+    @Schema(description = "编辑人房号")
+    private String roomName;
+}

+ 4 - 4
yezhu-api/src/main/java/com/kioor/messageboard/entity/MessageEntity.java

@@ -29,19 +29,19 @@ public class MessageEntity implements Serializable {
     @TableId
     private Long id;
     /**
-     * 论坛
+     * 帖子
      */
-    private Long messageBoardId;
+    private Long messagePostId;
     /**
      * 留言内容
      */
     private String content;
     /**
-     * 留言
+     * 编辑
      */
     private Long editUser;
     /**
-     * 留言时间
+     * 编辑时间
      */
     private Date editTime;
     /**

+ 56 - 0
yezhu-api/src/main/java/com/kioor/messageboard/entity/MessagePostEntity.java

@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.kioor.com
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 帖子
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Data
+@TableName("tb_messages_post")
+public class MessagePostEntity implements Serializable {
+    /**
+     * 用户ID
+     */
+    @TableId
+    private Long id;
+    /**
+     * 论坛
+     */
+    private Long messageBoardId;
+    /**
+     * 帖子标题
+     */
+    private String title;
+    /**
+     * 帖子内容
+     */
+    private String content;
+    /**
+     * 编辑人
+     */
+    private Long editUser;
+    /**
+     * 编辑时间
+     */
+    private Date editTime;
+    /**
+     * 是否显示房号
+     */
+    private int showRoomFlag;
+
+}

+ 34 - 0
yezhu-api/src/main/java/com/kioor/messageboard/service/MessagePostService.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ *
+ * https://www.kioor.com
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.service;
+
+import com.kioor.common.page.PageData;
+import com.kioor.common.service.BaseService;
+import com.kioor.messageboard.dto.MessagePostDTO;
+import com.kioor.messageboard.entity.MessagePostEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 帖子
+ * 
+ * @author Mark sunlightcs@gmail.com
+ */
+public interface MessagePostService extends BaseService<MessagePostEntity> {
+    PageData<MessagePostDTO> page(Map<String, Object> params);
+
+    List<MessagePostDTO> list(Map<String, Object> params);
+
+    MessagePostDTO get(Long id);
+
+    void save(MessagePostDTO dto);
+
+    void update(MessagePostDTO dto);
+}

+ 87 - 0
yezhu-api/src/main/java/com/kioor/messageboard/service/impl/MessagePostServiceImpl.java

@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.kioor.com
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.messageboard.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.kioor.common.page.PageData;
+import com.kioor.common.service.impl.BaseServiceImpl;
+import com.kioor.common.utils.CommonUtils;
+import com.kioor.common.utils.ConvertUtils;
+import com.kioor.messageboard.dao.MessagePostDao;
+import com.kioor.messageboard.dto.MessagePostDTO;
+import com.kioor.messageboard.entity.MessagePostEntity;
+import com.kioor.messageboard.service.MessagePostService;
+import com.kioor.user.service.UserService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+@AllArgsConstructor
+public class MessagePostServiceImpl extends BaseServiceImpl<MessagePostDao, MessagePostEntity> implements MessagePostService {
+
+    private final UserService userService;
+
+    /**
+     * 分页
+     */
+    @Override
+    public PageData<MessagePostDTO> page(Map<String, Object> params) {
+
+        //分页
+        IPage<MessagePostEntity> page = getPage(params, "edit_time", true);
+
+        //查询
+        List<MessagePostDTO> list = baseDao.getList(params);
+        //根据是否显示姓名和是否显示房号隐藏对应的数据
+        list.forEach(this::hiddenInformation);
+
+
+        return getPageData(list, page.getTotal(), MessagePostDTO.class);
+    }
+
+    @Override
+    public List<MessagePostDTO> list(Map<String, Object> params) {
+
+        //查询
+        List<MessagePostDTO> list = baseDao.getList(params);
+        //根据是否显示姓名和是否显示房号隐藏对应的数据
+        list.forEach(this::hiddenInformation);
+        return list;
+    }
+
+    @Override
+    public MessagePostDTO get(Long id) {
+
+        MessagePostDTO dto = baseDao.get(id);
+        hiddenInformation(dto);
+        return dto;
+    }
+
+    private void hiddenInformation(MessagePostDTO dto){
+        if(dto.getShowRoomFlag() != 1){
+            dto.setRoomName(CommonUtils.hiddenInformation(dto.getRoomName()));
+        }
+    }
+
+    @Override
+    public void save(MessagePostDTO dto) {
+        MessagePostEntity entity =  ConvertUtils.sourceToTarget(dto, MessagePostEntity.class);
+        insert(entity);
+    }
+
+    @Override
+    public void update(MessagePostDTO dto) {
+        MessagePostEntity entity = ConvertUtils.sourceToTarget(dto, MessagePostEntity.class);
+
+        updateById(entity);
+    }
+}

+ 6 - 7
yezhu-api/src/main/resources/mapper/messageboard/MessageDao.xml

@@ -6,15 +6,13 @@
     <select id="getList" resultType="com.kioor.messageboard.dto.MessageDTO">
         select tm.*,tmb.housing_estate_id as housingEstateId, tuhe.remark as roomName
         from tb_messages tm
-        left join tb_message_board  tmb on tm.message_board_id = tmb.id
+        left join tb_messages_post  tmp on tm.message_post_id = tmp.id
+        left join tb_message_board  tmb on tmp.message_board_id = tmb.id
         left join tb_user tu on tm.edit_user = tu.id
         left join tb_user_housing_estate tuhe on tu.id = tuhe.user_id
         <where>
-            <if test="messageBoardId != null">
-                and tm.message_board_id = #{messageBoardId}
-            </if>
-            <if test="housingEstateId != null">
-                and tmb.housing_estate_id = #{housingEstateId}
+            <if test="messagePostId != null">
+                and tm.message_post_id = #{messagePostId}
             </if>
         </where>
         order by tm.edit_time asc
@@ -23,7 +21,8 @@
     <select id="get" resultType="com.kioor.messageboard.dto.MessageDTO">
         select tm.*,tmb.housing_estate_id as housingEstateId, tuhe.remark as roomName
         from tb_messages tm
-        left join tb_message_board  tmb on tm.message_board_id = tmb.id
+        left join tb_messages_post  tmp on tm.message_post_id = tmp.id
+        left join tb_message_board  tmb on tmp.message_board_id = tmb.id
         left join tb_user tu on tm.edit_user = tu.id
         left join tb_user_housing_estate tuhe on tu.id = tuhe.user_id
         where tm.id = #{id}

+ 31 - 0
yezhu-api/src/main/resources/mapper/messageboard/MessagePostDao.xml

@@ -0,0 +1,31 @@
+<?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.MessagePostDao">
+
+    <select id="getList" resultType="com.kioor.messageboard.dto.MessagePostDTO">
+        select tmp.*,tmb.housing_estate_id as housingEstateId, tuhe.remark as roomName
+        from tb_messages_post tmp
+        left join tb_message_board  tmb on tmp.message_board_id = tmb.id
+        left join tb_user tu on tmp.edit_user = tu.id
+        left join tb_user_housing_estate tuhe on tu.id = tuhe.user_id
+        <where>
+            <if test="messageBoardId != null">
+                and tmp.message_board_id = #{messageBoardId}
+            </if>
+            <if test="housingEstateId != null">
+                and tmb.housing_estate_id = #{housingEstateId}
+            </if>
+        </where>
+        order by tmp.edit_time asc
+    </select>
+
+    <select id="get" resultType="com.kioor.messageboard.dto.MessageDTO">
+        select tmp.*,tmb.housing_estate_id as housingEstateId, tuhe.remark as roomName
+        from tb_messages_post tmp
+        left join tb_message_board  tmb on tmp.message_board_id = tmb.id
+        left join tb_user tu on tmp.edit_user = tu.id
+        left join tb_user_housing_estate tuhe on tu.id = tuhe.user_id
+        where tmp.id = #{id}
+    </select>
+</mapper>