From 41aaca4378b89da9c6e1ebfbf1b9044d5d667f2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E8=88=AA?= <653809315@qq.com> Date: Thu, 8 Aug 2024 09:44:48 +0800 Subject: [PATCH] =?UTF-8?q?pc=E6=96=B0=E9=97=BB=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../news/NewsCateCreateValidate.java | 20 ++ .../news/NewsCateSearchValidate.java | 18 ++ .../news/NewsCateUpdateValidate.java | 29 +++ .../validator/news/NewsCreateValidate.java | 44 ++++ .../validator/news/NewsSearchValidate.java | 36 ++++ .../validator/news/NewsUpdateValidate.java | 53 +++++ .../wyh/common/vo/news/NewsCateDetailVo.java | 22 ++ .../wyh/common/vo/news/NewsCateListedVo.java | 28 +++ .../com/wyh/common/vo/news/NewsDetailVo.java | 42 ++++ .../com/wyh/common/vo/news/NewsListedVo.java | 46 ++++ .../wyh/front/controller/LoginController.java | 13 -- .../wyh/front/controller/NewsController.java | 60 ++++++ .../com/wyh/front/service/INewsService.java | 65 ++++++ .../front/service/impl/NewsServiceImpl.java | 203 ++++++++++++++++++ 14 files changed, 666 insertions(+), 13 deletions(-) create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateCreateValidate.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateSearchValidate.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateUpdateValidate.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCreateValidate.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsSearchValidate.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsUpdateValidate.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateDetailVo.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateListedVo.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsDetailVo.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsListedVo.java create mode 100644 ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/NewsController.java create mode 100644 ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/INewsService.java create mode 100644 ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/NewsServiceImpl.java diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateCreateValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateCreateValidate.java new file mode 100644 index 0000000..8d0687f --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateCreateValidate.java @@ -0,0 +1,20 @@ +package com.wyh.common.validator.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Data +@ApiModel("新闻分类创建参数") +public class NewsCateCreateValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + @NotNull(message = "name参数缺失") + @ApiModelProperty(value = "新闻分类名称") + private String name; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateSearchValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateSearchValidate.java new file mode 100644 index 0000000..7213ed3 --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateSearchValidate.java @@ -0,0 +1,18 @@ +package com.wyh.common.validator.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("新闻分类搜素参数") +public class NewsCateSearchValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "新闻分类名称") + private String name; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateUpdateValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateUpdateValidate.java new file mode 100644 index 0000000..1e4adaa --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCateUpdateValidate.java @@ -0,0 +1,29 @@ +package com.wyh.common.validator.news; + +import com.wyh.common.validator.annotation.IDMust; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 新闻分类参数 + * @author LikeAdmin + */ +@Data +@ApiModel("新闻分类更新参数") +public class NewsCateUpdateValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + @IDMust(message = "id参数必传且需大于0") + @ApiModelProperty(value = "主键") + private Integer id; + + @NotNull(message = "name参数缺失") + @ApiModelProperty(value = "新闻分类名称") + private String name; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCreateValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCreateValidate.java new file mode 100644 index 0000000..80338a9 --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsCreateValidate.java @@ -0,0 +1,44 @@ +package com.wyh.common.validator.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Data +@ApiModel("新闻信息创建参数") +public class NewsCreateValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + @NotNull(message = "isShow参数缺失") + @ApiModelProperty(value = "是否显示") + private Integer isShow; + + @NotNull(message = "sort参数缺失") + @ApiModelProperty(value = "排序") + private Integer sort; + + @NotNull(message = "title参数缺失") + @ApiModelProperty(value = "新闻标题") + private String title; + + @NotNull(message = "subhead参数缺失") + @ApiModelProperty(value = "副标题") + private String subhead; + + @NotNull(message = "newsImg参数缺失") + @ApiModelProperty(value = "新闻主图") + private String newsImg; + + @NotNull(message = "content参数缺失") + @ApiModelProperty(value = "新闻内容") + private String content; + + @NotNull(message = "cateId参数缺失") + @ApiModelProperty(value = "新闻分类id") + private Integer cateId; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsSearchValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsSearchValidate.java new file mode 100644 index 0000000..47f0f55 --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsSearchValidate.java @@ -0,0 +1,36 @@ +package com.wyh.common.validator.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("新闻信息搜素参数") +public class NewsSearchValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "是否显示") + private Integer isShow; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "新闻标题") + private String title; + + @ApiModelProperty(value = "副标题") + private String subhead; + + @ApiModelProperty(value = "新闻主图") + private String newsImg; + + @ApiModelProperty(value = "新闻内容") + private String content; + + @ApiModelProperty(value = "新闻分类id") + private Integer cateId; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsUpdateValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsUpdateValidate.java new file mode 100644 index 0000000..b8cca5e --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/news/NewsUpdateValidate.java @@ -0,0 +1,53 @@ +package com.wyh.common.validator.news; + +import com.wyh.common.validator.annotation.IDMust; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 新闻信息参数 + * @author LikeAdmin + */ +@Data +@ApiModel("新闻信息更新参数") +public class NewsUpdateValidate implements Serializable { + + private static final long serialVersionUID = 1L; + + @IDMust(message = "id参数必传且需大于0") + @ApiModelProperty(value = "主键") + private String id; + + @NotNull(message = "isShow参数缺失") + @ApiModelProperty(value = "是否显示") + private Integer isShow; + + @NotNull(message = "sort参数缺失") + @ApiModelProperty(value = "排序") + private Integer sort; + + @NotNull(message = "title参数缺失") + @ApiModelProperty(value = "新闻标题") + private String title; + + @NotNull(message = "subhead参数缺失") + @ApiModelProperty(value = "副标题") + private String subhead; + + @NotNull(message = "newsImg参数缺失") + @ApiModelProperty(value = "新闻主图") + private String newsImg; + + @NotNull(message = "content参数缺失") + @ApiModelProperty(value = "新闻内容") + private String content; + + @NotNull(message = "cateId参数缺失") + @ApiModelProperty(value = "新闻分类id") + private Integer cateId; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateDetailVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateDetailVo.java new file mode 100644 index 0000000..c4bf4c5 --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateDetailVo.java @@ -0,0 +1,22 @@ +package com.wyh.common.vo.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("新闻分类详情Vo") +public class NewsCateDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "新闻分类名称") + private String name; + + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateListedVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateListedVo.java new file mode 100644 index 0000000..ce4582b --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsCateListedVo.java @@ -0,0 +1,28 @@ +package com.wyh.common.vo.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("新闻分类列表Vo") +public class NewsCateListedVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "创建时间") + private String createTime; + + @ApiModelProperty(value = "更新时间") + private String updateTime; + + @ApiModelProperty(value = "新闻分类名称") + private String name; + + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsDetailVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsDetailVo.java new file mode 100644 index 0000000..82569db --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsDetailVo.java @@ -0,0 +1,42 @@ +package com.wyh.common.vo.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("新闻信息详情Vo") +public class NewsDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty(value = "是否显示") + private Integer isShow; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "新闻标题") + private String title; + + @ApiModelProperty(value = "副标题") + private String subhead; + + @ApiModelProperty(value = "新闻主图") + private String newsImg; + + @ApiModelProperty(value = "新闻内容") + private String content; + + @ApiModelProperty(value = "新闻分类id") + private Integer cateId; + + @ApiModelProperty(value = "新闻分类名称") + private String cateName; + +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsListedVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsListedVo.java new file mode 100644 index 0000000..1246195 --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/news/NewsListedVo.java @@ -0,0 +1,46 @@ +package com.wyh.common.vo.news; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("新闻信息列表Vo") +public class NewsListedVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty(value = "创建时间") + private String createTime; + + @ApiModelProperty(value = "更新时间") + private String updateTime; + + @ApiModelProperty(value = "是否显示") + private Integer isShow; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "新闻标题") + private String title; + + @ApiModelProperty(value = "副标题") + private String subhead; + + @ApiModelProperty(value = "新闻主图") + private String newsImg; + + @ApiModelProperty(value = "新闻分类id") + private Integer cateId; + + @ApiModelProperty(value = "新闻分类名称") + private String cateName; + + +} diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/LoginController.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/LoginController.java index dcb1d32..aa3f845 100644 --- a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/LoginController.java +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/LoginController.java @@ -146,20 +146,7 @@ public class LoginController { return AjaxResult.success(vo); } - public static void main(String[] args) { - String phoneNumber = "17647557909"; - String regex = "^1[3-9]\\\\d{9}$"; - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(phoneNumber); - - if (matcher.matches()) { - System.out.println("手机号格式正确"); - } else { - System.out.println("手机号格式不正确"); - } - - } @NotLogin @PostMapping("/sendSms") @ApiOperation(value="发送短信" , notes="发送短信验证码") diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/NewsController.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/NewsController.java new file mode 100644 index 0000000..fed2099 --- /dev/null +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/controller/NewsController.java @@ -0,0 +1,60 @@ +package com.wyh.front.controller; + + +import com.wyh.common.aop.NotLogin; +import com.wyh.common.aop.NotPower; +import com.wyh.common.core.AjaxResult; +import com.wyh.common.core.PageResult; +import com.wyh.common.validator.annotation.IDMust; +import com.wyh.common.validator.news.NewsCreateValidate; +import com.wyh.common.validator.news.NewsSearchValidate; +import com.wyh.common.validator.news.NewsUpdateValidate; +import com.wyh.common.vo.news.NewsCateListedVo; +import com.wyh.common.vo.news.NewsDetailVo; +import com.wyh.common.vo.news.NewsListedVo; +import com.wyh.front.service.INewsService; +import com.wyh.front.validate.common.IdValidate; +import com.wyh.front.validate.common.PageValidate; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.java.Log; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +@RequestMapping("front/news") +@Api(tags = "新闻信息") +public class NewsController { + + @Resource + INewsService iNewsService; + + @NotLogin + @GetMapping("/list") + @ApiOperation(value="新闻信息列表") + public AjaxResult> list(@Validated PageValidate pageValidate, + @Validated NewsSearchValidate searchValidate) { + PageResult list = iNewsService.list(pageValidate, searchValidate); + return AjaxResult.success(list); + } + + @NotLogin + @GetMapping("/detail") + @ApiOperation(value="新闻信息详情") + public AjaxResult detail(@Validated @IDMust() @RequestParam("id") Integer id) { + NewsDetailVo detail = iNewsService.detail(id); + return AjaxResult.success(detail); + } + + @NotLogin + @GetMapping("/cate/all") + @ApiOperation(value="新闻分类列表(下拉框)") + public AjaxResult> all(){ + + return AjaxResult.success(iNewsService.all()); + } + +} diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/INewsService.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/INewsService.java new file mode 100644 index 0000000..db445c0 --- /dev/null +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/INewsService.java @@ -0,0 +1,65 @@ +package com.wyh.front.service; + + +import com.wyh.common.core.PageResult; +import com.wyh.common.validator.news.NewsCreateValidate; +import com.wyh.common.validator.news.NewsSearchValidate; +import com.wyh.common.validator.news.NewsUpdateValidate; +import com.wyh.common.vo.news.NewsCateListedVo; +import com.wyh.common.vo.news.NewsDetailVo; +import com.wyh.common.vo.news.NewsListedVo; +import com.wyh.front.validate.common.PageValidate; + +import java.util.List; + +/** + * 新闻信息服务接口类 + * @author LikeAdmin + */ +public interface INewsService { + + /** + * 新闻信息列表 + * + * @author LikeAdmin + * @param pageValidate 分页参数 + * @param searchValidate 搜索参数 + * @return PageResult + */ + PageResult list(PageValidate pageValidate, NewsSearchValidate searchValidate); + + /** + * 新闻信息详情 + * + * @author LikeAdmin + * @param id 主键ID + * @return NewsDetailVo + */ + NewsDetailVo detail(Integer id); + + /** + * 新闻信息新增 + * + * @author LikeAdmin + * @param createValidate 参数 + */ + void add(NewsCreateValidate createValidate); + + /** + * 新闻信息编辑 + * + * @author LikeAdmin + * @param updateValidate 参数 + */ + void edit(NewsUpdateValidate updateValidate); + + /** + * 新闻信息删除 + * + * @author LikeAdmin + * @param id 主键ID + */ + void del(Integer id); + + List all(); +} diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/NewsServiceImpl.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/NewsServiceImpl.java new file mode 100644 index 0000000..98ff3fc --- /dev/null +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/NewsServiceImpl.java @@ -0,0 +1,203 @@ +package com.wyh.front.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wyh.common.core.PageResult; +import com.wyh.common.entity.News; +import com.wyh.common.entity.news.NewsCate; +import com.wyh.common.mapper.news.NewsCateMapper; +import com.wyh.common.mapper.news.NewsMapper; +import com.wyh.common.util.TimeUtils; +import com.wyh.common.validator.news.NewsCreateValidate; +import com.wyh.common.validator.news.NewsSearchValidate; +import com.wyh.common.validator.news.NewsUpdateValidate; +import com.wyh.common.vo.news.NewsCateListedVo; +import com.wyh.common.vo.news.NewsDetailVo; +import com.wyh.common.vo.news.NewsListedVo; +import com.wyh.front.service.INewsService; +import com.wyh.front.validate.common.PageValidate; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +/** + * 新闻信息实现类 + * @author LikeAdmin + */ +@Service +public class NewsServiceImpl implements INewsService { + + @Resource + NewsMapper newsMapper; + @Resource + NewsCateMapper newsCateMapper; + + + /** + * 新闻信息列表 + * + * @author LikeAdmin + * @param pageValidate 分页参数 + * @param searchValidate 搜索参数 + * @return PageResult + */ + @Override + public PageResult list(PageValidate pageValidate, NewsSearchValidate searchValidate) { + Integer page = pageValidate.getPageNo(); + Integer limit = pageValidate.getPageSize(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_delete", 0); + queryWrapper.orderByDesc(Arrays.asList("sort", "id")); + + newsMapper.setSearch(queryWrapper, searchValidate, new String[]{ + "=:isShow@is_show:long", + "=:sort:long", + "like:title:str", + "=:subhead:str", + "=:newsImg@news_img:str", + "=:content:str", + "=:cateId@cate_id:long", + }); + + IPage iPage = newsMapper.selectPage(new Page<>(page, limit), queryWrapper); + + List list = new LinkedList<>(); + for(News item : iPage.getRecords()) { + NewsListedVo vo = new NewsListedVo(); + BeanUtils.copyProperties(item, vo); + if (item.getCateId() != null) { + NewsCate newsCate = newsCateMapper.selectById(item.getCateId()); + if (newsCate != null) { + vo.setCateName(newsCate.getName()); + } + } + vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime())); + vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime())); + list.add(vo); + } + + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); + } + + /** + * 新闻信息详情 + * + * @author LikeAdmin + * @param id 主键参数 + * @return News + */ + @Override + public NewsDetailVo detail(Integer id) { + News model = newsMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在"); + + NewsDetailVo vo = new NewsDetailVo(); + BeanUtils.copyProperties(model, vo); + if (model.getCateId() != null) { + NewsCate newsCate = newsCateMapper.selectById(model.getCateId()); + if (newsCate != null) { + vo.setCateName(newsCate.getName()); + } + } + return vo; + } + + /** + * 新闻信息新增 + * + * @author LikeAdmin + * @param createValidate 参数 + */ + @Override + public void add(NewsCreateValidate createValidate) { + News model = new News(); + model.setCreateTime(System.currentTimeMillis() / 1000); + model.setUpdateTime(System.currentTimeMillis() / 1000); + model.setIsShow(createValidate.getIsShow()); + model.setSort(createValidate.getSort()); + model.setTitle(createValidate.getTitle()); + model.setSubhead(createValidate.getSubhead()); + model.setNewsImg(createValidate.getNewsImg()); + model.setContent(createValidate.getContent()); + model.setCateId(createValidate.getCateId()); + newsMapper.insert(model); + } + + /** + * 新闻信息编辑 + * + * @author LikeAdmin + * @param updateValidate 参数 + */ + @Override + public void edit(NewsUpdateValidate updateValidate) { + News model = newsMapper.selectOne( + new QueryWrapper() + .eq("id", updateValidate.getId()) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setId(updateValidate.getId()); + model.setUpdateTime(System.currentTimeMillis() / 1000); + model.setIsShow(updateValidate.getIsShow()); + model.setSort(updateValidate.getSort()); + model.setTitle(updateValidate.getTitle()); + model.setSubhead(updateValidate.getSubhead()); + model.setNewsImg(updateValidate.getNewsImg()); + model.setContent(updateValidate.getContent()); + model.setCateId(updateValidate.getCateId()); + newsMapper.updateById(model); + } + + /** + * 新闻信息删除 + * + * @author LikeAdmin + * @param id 主键ID + */ + @Override + public void del(Integer id) { + News model = newsMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setIsDelete(1); + model.setDeleteTime(System.currentTimeMillis() / 1000); + newsMapper.updateById(model); + } + + @Override + public List all() { + List newsCates = newsCateMapper.selectList(Wrappers.lambdaQuery().eq(NewsCate::getIsDelete, 0)); + List list = new LinkedList<>(); + for(NewsCate item : newsCates) { + + NewsCateListedVo vo = new NewsCateListedVo(); + BeanUtils.copyProperties(item, vo); + vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime())); + vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime())); + list.add(vo); + } + return list; + } + +}