提交 5ef8ce20 编写于 作者: 喷火的神灵's avatar 喷火的神灵 🎱

通知模块业务!

上级 1bb215fc
package cn.tedu.youbiliprojectbackend.modules.social.notice.controller;
import cn.tedu.youbiliprojectbackend.common.security.CurrentPrincipal;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import cn.tedu.youbiliprojectbackend.common.web.response.RestBean;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO;
import cn.tedu.youbiliprojectbackend.modules.social.notice.service.INoticeService;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/social/notice")
@Validated
@Api(tags = "1通知")
public class NoticeController {
@Autowired
private INoticeService noticeService;
@GetMapping("/listSelect")
@ApiOperation("用户通知")
@ApiOperationSupport(order = 100)
public RestBean<Object> getSelectNotice(@AuthenticationPrincipal CurrentPrincipal principal, Integer enable) {
log.debug("开始处理【查询通知】的请求");
System.out.println("当事人ID"+principal.getUserID());
NoticeAllListVO noticeAllListVO = new NoticeAllListVO();
noticeAllListVO.setTypeEnable(enable);
List<NoticeAllListVO> noticeAllListVOPageData = noticeService.userNoticeList(noticeAllListVO,principal);
return RestBean.success(noticeAllListVOPageData);
}
@PostMapping("/notifyDelete")
@ApiOperation("根据ID删除个人通知")
@ApiOperationSupport(order = 200)
public RestBean<NoticeAllListVO> deleteByUserId(@AuthenticationPrincipal CurrentPrincipal principal) {
noticeService.deleteByUserId(principal.getUserID());
return RestBean.success();
}
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.mapper;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.entity.Notice;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface NoticeMapper extends BaseMapper<Notice> {
List<NoticeAllListVO> userEnableNoticeList(Integer enable);
List<NoticeAllListVO> adminEnableNoticeList(Integer enable);
List<NoticeAllListVO> userNoticeUserId(Long userID);
void deleteByUserId(Long id);
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.repository;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.entity.Notice;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO;
import java.util.List;
public interface INoticeRepository {
List<NoticeAllListVO> userNoticeList(Integer enable);
List<NoticeAllListVO> adminNoticeList(Integer enable);
List<NoticeAllListVO> userNoticeUserId(Long userID);
Boolean deleteByUserId(Long id);
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.repository.impl;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageInfoToPageDataConverter;
import cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.mapper.NoticeMapper;
import cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.repository.INoticeRepository;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.entity.Notice;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@Slf4j
public class NoticeRepositoryImpl implements INoticeRepository {
public NoticeRepositoryImpl() {
log.debug("通知的dao层");
}
@Autowired
private NoticeMapper noticeMapper;
@Override
public List<NoticeAllListVO> userNoticeList(Integer enable) {
List<NoticeAllListVO> list = noticeMapper.userEnableNoticeList(enable);
return list;
}
@Override
public List<NoticeAllListVO> adminNoticeList(Integer enable) {
List<NoticeAllListVO> adminNoticeAllList = noticeMapper.adminEnableNoticeList(enable);
return adminNoticeAllList;
}
@Override
public List<NoticeAllListVO> userNoticeUserId(Long userID) {
return noticeMapper.userNoticeUserId(userID);
}
@Override
public Boolean deleteByUserId(Long id) {
noticeMapper.deleteByUserId(id);
return true;
}
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("notice")
public class Notice implements Serializable {
private Long noticeID;
private Long userID;
private String systemName;
private Integer typeEnable;
private String noticeText;
private Date noticeTime;
private Date gmtCreate;
private Date gmtModified;
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class NoticeAllListVO implements Serializable {
private Long noticeID;
private Long userID;
private Long videoID;
private String systemName;
private Integer typeEnable;
private String noticeText;
private Date noticeTime;
private Date gmtCreate;
private Date gmtModified;
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.service;
import cn.tedu.youbiliprojectbackend.common.security.CurrentPrincipal;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO;
import java.util.List;
public interface INoticeService {
List<NoticeAllListVO> userNoticeList(NoticeAllListVO noticeAllListVOS, CurrentPrincipal principal);
Boolean deleteByUserId(Long id);
}
package cn.tedu.youbiliprojectbackend.modules.social.notice.service.impl;
import cn.tedu.youbiliprojectbackend.common.ex.ServiceException;
import cn.tedu.youbiliprojectbackend.common.security.CurrentPrincipal;
import cn.tedu.youbiliprojectbackend.common.web.response.ServiceCode;
import cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.repository.INoticeRepository;
import cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO;
import cn.tedu.youbiliprojectbackend.modules.social.notice.service.INoticeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class NoticeServiceImpl implements INoticeService {
@Autowired
private INoticeRepository noticeRepository;
@Override
public List<NoticeAllListVO> userNoticeList(NoticeAllListVO noticeAllListVOS, CurrentPrincipal principal) {
Integer userEnable = noticeAllListVOS.getTypeEnable();
Long userNoticeUserId = principal.getUserID();
List<NoticeAllListVO> list = new ArrayList<>();
if (userEnable == 1) {
List<NoticeAllListVO> noticePrivateList = noticeRepository.userNoticeUserId(userNoticeUserId);
for (NoticeAllListVO noticePrivate : noticePrivateList) {
Long userID = noticePrivate.getUserID();
if (userNoticeUserId == userID){
list.add(noticePrivate);
}
}
return list;
} else if (userEnable == 0) {
log.debug("开始处理【查询系统通知】的业务");
List<NoticeAllListVO> adminNoticeAllList = noticeRepository.adminNoticeList(userEnable);
return adminNoticeAllList;
} else {
return null;
}
}
@Override
public Boolean deleteByUserId(Long id) {
Boolean deleteNull = noticeRepository.deleteByUserId(id);
if (deleteNull == false) {
String message = "删除的问内容不存在";
log.warn(message);
throw new ServiceException(ServiceCode.ERROR_BAD_REQUEST, message);
}
return true;
}
}
<?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="cn.tedu.youbiliprojectbackend.modules.social.notice.dao.persist.mapper.NoticeMapper">
<!-- &lt;!&ndash; List<NoticeAllListVO> userNoticeList(); &ndash;&gt;-->
<!-- <select id="userNoticeList"-->
<!-- resultType="cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO">-->
<!-- SELECT userID, typeEnable, noticeText, noticeTime-->
<!-- FROM notice-->
<!-- WHERE notice.userID = #{userID}-->
<!-- ORDER BY noticeID DESC-->
<!-- </select>-->
<!-- &lt;!&ndash; List<NoticeAllListVO> adminNoticeList();&ndash;&gt;-->
<!-- &lt;!&ndash; NoticeAllListVO getStandardByTypeEnable(Long id);&ndash;&gt;-->
<!-- <select id="getStandardByTypeEnable"-->
<!-- resultType="cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO">-->
<!-- SELECT userID, typeEnable, noticeText, noticeTime-->
<!-- FROM notice-->
<!-- WHERE notice.noticeID = #{noticeID}-->
<!-- </select>-->
<!-- &lt;!&ndash; List<NoticeAllListVO> adminNoticeList();&ndash;&gt;-->
<!-- <select id="adminNoticeList" resultType="cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO">-->
<!-- SELECT userID, typeEnable, noticeText, noticeTime-->
<!-- FROM notice-->
<!-- WHERE notice.noticeID = #{noticeID}-->
<!-- </select>-->
<!-- List<NoticeAllListVO> adminNoticeList(); -->
<select id="adminEnableNoticeList"
resultType="cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO">
SELECT noticeID, userID, typeEnable, noticeText, noticeTime, typeEnable
FROM notice
WHERE typeEnable = 0
ORDER BY noticeID DESC
</select>
<!-- List<NoticeAllListVO> userNoticeList();-->
<select id="userEnableNoticeList"
resultType="cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO">
SELECT typeEnable, noticeText, noticeTime, userID
FROM notice
WHERE typeEnable = 1
ORDER BY noticeID DESC
</select>
<!-- List<NoticeAllListVO> userNoticeUserId(Long userID);-->
<select id="userNoticeUserId"
resultType="cn.tedu.youbiliprojectbackend.modules.social.notice.pojo.vo.NoticeAllListVO">
SELECT noticeID, userID, typeEnable, noticeText, noticeTime
FROM notice
WHERE userID
ORDER BY noticeID DESC
</select>
<!-- void deleteByUserId(Long id);-->
<delete id="deleteByUserId">
DELETE
FROM notice
WHERE userID = #{userId}
</delete>
</mapper>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册