欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Vue 项目实战第 1 章:实现一个完整的留言板(含前后端源代码下载)

最编程 2024-06-03 08:21:53
...
/**
* 留言接口实现类
*
* @author zhuhuix
* @date 2022-06-09
*/
@Slf4j
@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class BbsServiceImpl implements BbsService {

private final BbsMapper bbsMapper;

@Override
@Transactional(rollbackFor = Exception.class)
public Bbs create(Bbs bbs) {
bbs.setCreateTime(Timestamp.valueOf(LocalDateTime.now()));
if (bbsMapper.insert(bbs) > 0) {
return bbs;
}

throw new RuntimeException("新增留言失败");
}

@Override
@Transactional(rollbackFor = Exception.class)
public Boolean delete(Set<Long> ids) {
if (bbsMapper.deleteBatchIds(ids) > 0) {
return true;
}

throw new RuntimeException("删除留言失败");
}

@Override
@Transactional(rollbackFor = Exception.class)
public Bbs update(Bbs bbs) {
bbs.setReplyTime(Timestamp.valueOf(LocalDateTime.now()));
if (bbsMapper.updateById(bbs) > 0) {
return bbs;
}

throw new RuntimeException("更新留言失败");
}

@Override
public Bbs findById(Long id) {
return bbsMapper.selectById(id);
}

@Override
public BbsDto page(BbsQueryDto bbsQueryDto) {
QueryWrapper<Bbs> queryWrapper = new QueryWrapper<>();
if (!StringUtils.isEmpty(bbsQueryDto.getNickName())) {
queryWrapper.lambda().like(Bbs::getNickName, bbsQueryDto.getNickName());
}

if (bbsQueryDto.getReplied() != null){
queryWrapper.lambda().eq(Bbs::getReplied,bbsQueryDto.getReplied() );
}

if (!StringUtils.isEmpty(bbsQueryDto.getCreateTimeStart())
&& !StringUtils.isEmpty(bbsQueryDto.getCreateTimeEnd())) {
queryWrapper.and(wrapper -> wrapper.lambda().between(Bbs::getCreateTime,
new Timestamp(bbsQueryDto.getCreateTimeStart()),
new Timestamp(bbsQueryDto.getCreateTimeEnd())));
}

queryWrapper.orderByDesc("create_time");

Page<Bbs> page = new Page<>(bbsQueryDto.getCurrentPage(), bbsQueryDto.getPageSize());
bbsMapper.selectPage(page, queryWrapper);

BbsDto bbsDto = new BbsDto();
bbsDto.setCurrentPage(bbsQueryDto.getCurrentPage());
bbsDto.setPageSize(bbsQueryDto.getPageSize());
bbsDto.setTotal(page.getTotal());
bbsDto.setBbsList(page.getRecords());

return bbsDto;
}
}