diff --git a/src/main/java/com/jsl/oa/controllers/MessageController.java b/src/main/java/com/jsl/oa/controllers/MessageController.java new file mode 100644 index 0000000..7336adf --- /dev/null +++ b/src/main/java/com/jsl/oa/controllers/MessageController.java @@ -0,0 +1,40 @@ +package com.jsl.oa.controllers; + +import com.jsl.oa.services.MessageService; +import com.jsl.oa.services.impl.MessageServiceImpl; +import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.ErrorCode; +import com.jsl.oa.utils.ResultUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +/** + *

消息控制器

+ *
+ * 消息控制器,包含信息获取接口 + * + * @author 张睿相 + * @version v1.1.0 + * @since v1.1.0 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class MessageController { + + private final MessageService messageService; + + @DeleteMapping("/message/delete") + public BaseResponse messageDelete(@RequestParam Long id, HttpServletRequest request){ + if(id == null){ + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } else return messageService.messageDelete(id,request); + } +} + + diff --git a/src/main/java/com/jsl/oa/mapper/MessageMapper.java b/src/main/java/com/jsl/oa/mapper/MessageMapper.java new file mode 100644 index 0000000..c8137f4 --- /dev/null +++ b/src/main/java/com/jsl/oa/mapper/MessageMapper.java @@ -0,0 +1,20 @@ +package com.jsl.oa.mapper; + +import com.jsl.oa.model.doData.MessageDO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + + +@Mapper +public interface MessageMapper { + + @Update("UPDATE organize_oa.oa_message " + + "SET `read` = 1, deleted_at = CURRENT_TIMESTAMP " + + "WHERE id = #{mid}") + boolean deleteMessage(Long mid); + + @Select("SELECT * FROM organize_oa.oa_message where id = #{mid}") + MessageDO getMessageById(Long mid); +} diff --git a/src/main/java/com/jsl/oa/model/doData/MessageDO.java b/src/main/java/com/jsl/oa/model/doData/MessageDO.java new file mode 100644 index 0000000..08c542c --- /dev/null +++ b/src/main/java/com/jsl/oa/model/doData/MessageDO.java @@ -0,0 +1,33 @@ +package com.jsl.oa.model.doData; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.sql.Timestamp; + +/** + *

meesage 数据表

+ *
+ * 映射 oa_message 数据表内容进入自定义实体类 + * + * @author 张睿相 + * @since v1.1.0 + * @version v1.1.0 + */ +@Data +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class MessageDO { + + private Long id; + private Long uid; + private String title; + private String text; + private Short read; + private Timestamp createdAt; + private Timestamp deletedAt; + +} + + diff --git a/src/main/java/com/jsl/oa/model/voData/UserEditVO.java b/src/main/java/com/jsl/oa/model/voData/UserEditVO.java new file mode 100644 index 0000000..0f00012 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/UserEditVO.java @@ -0,0 +1,49 @@ +package com.jsl.oa.model.voData; + +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + + +@Data +public class UserEditVO { + + @NotNull + private Long id; + + @NotNull + private String username; + + private String address; + + @Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", message = "电话格式错误") + private String phone; + + @Pattern(regexp = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", message = "邮箱格式错误") + private String email; + + @Min(value = 0, message = "保密:0,男:1,女:2") + @Max(value = 2, message = "保密:0,男:1,女:2") + private Short sex; + + private Short age; + private String signature; + private String avatar; + private String nickname; + private String description; + @NotNull + private Boolean enabled; + @NotNull + private Boolean isExpired; + @NotNull + private Boolean passwordExpired; + @NotNull + private Boolean recommend; + @NotNull + private Boolean isLocked; +} + + diff --git a/src/main/java/com/jsl/oa/services/MessageService.java b/src/main/java/com/jsl/oa/services/MessageService.java new file mode 100644 index 0000000..11b8c60 --- /dev/null +++ b/src/main/java/com/jsl/oa/services/MessageService.java @@ -0,0 +1,20 @@ +package com.jsl.oa.services; + +import com.jsl.oa.utils.BaseResponse; + +import javax.servlet.http.HttpServletRequest; + +/** + *

消息服务接口

+ *
+ * 用于消息控制 + * + * @author 张睿相 + * @version v1.1.0 + * @since v1.1.0 + */ +public interface MessageService { + + BaseResponse messageDelete(Long mid,HttpServletRequest request); + +} diff --git a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java new file mode 100644 index 0000000..fb03264 --- /dev/null +++ b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java @@ -0,0 +1,40 @@ +package com.jsl.oa.services.impl; + + +import com.jsl.oa.mapper.MessageMapper; +import com.jsl.oa.mapper.RoleMapper; +import com.jsl.oa.model.doData.MessageDO; +import com.jsl.oa.services.MessageService; +import com.jsl.oa.utils.*; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import javax.swing.*; + +@Service +@RequiredArgsConstructor +public class MessageServiceImpl implements MessageService { + + private final MessageMapper messageMapper; + + @Override + public BaseResponse messageDelete(Long mid, HttpServletRequest request) { + //获取消息数据 + MessageDO messageDO = messageMapper.getMessageById(mid); + //检测用户id与消息的uid是否相同 + String token = request.getHeader("Authorization").replace("Bearer ", ""); + if (!(messageDO.getUid() == JwtUtil.getUserId(token))) { + return ResultUtil.error(ErrorCode.MESSAGE_ONLY_DELETE_BY_THEMSELVES); + } + //执行删除 + if(!messageMapper.deleteMessage(mid)){ + return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); + } + return ResultUtil.success(); + } + + +} + +