From f591e084a283d6e4bb2667e12bf07adbd3396c95 Mon Sep 17 00:00:00 2001 From: barney <15270405776@163.com> Date: Mon, 17 Oct 2022 19:17:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AE=E6=92=AD=E5=9B=BE=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnblogs/controller/AdminController.java | 5 + .../bnblogs/controller/BannerController.java | 82 +++++ .../java/cc/bnblogs/mapper/BannerMapper.java | 24 ++ src/main/java/cc/bnblogs/pojo/Banner.java | 36 ++ .../cc/bnblogs/service/BannerService.java | 69 ++++ .../cc/bnblogs/service/CategoryService.java | 4 +- src/main/resources/application.yml | 3 + .../static/CodeGenerator/service.java | 2 +- .../resources/static/admin/image/default.png | Bin 0 -> 8865 bytes .../resources/templates/admin/banner.html | 329 +++++++++++++----- .../resources/templates/admin/common.html | 2 +- .../resources/templates/admin/friends.html | 5 +- 12 files changed, 473 insertions(+), 88 deletions(-) create mode 100644 src/main/java/cc/bnblogs/controller/BannerController.java create mode 100644 src/main/java/cc/bnblogs/mapper/BannerMapper.java create mode 100644 src/main/java/cc/bnblogs/pojo/Banner.java create mode 100644 src/main/java/cc/bnblogs/service/BannerService.java create mode 100644 src/main/resources/static/admin/image/default.png diff --git a/src/main/java/cc/bnblogs/controller/AdminController.java b/src/main/java/cc/bnblogs/controller/AdminController.java index fd1b837..e6f24bd 100644 --- a/src/main/java/cc/bnblogs/controller/AdminController.java +++ b/src/main/java/cc/bnblogs/controller/AdminController.java @@ -24,4 +24,9 @@ public class AdminController { public String getFriends() { return "admin/friends"; } + + @GetMapping("/banner.html") + public String getBanners() { + return "admin/banner"; + } } diff --git a/src/main/java/cc/bnblogs/controller/BannerController.java b/src/main/java/cc/bnblogs/controller/BannerController.java new file mode 100644 index 0000000..5f4fac6 --- /dev/null +++ b/src/main/java/cc/bnblogs/controller/BannerController.java @@ -0,0 +1,82 @@ +package cc.bnblogs.controller; + +import cc.bnblogs.common.Result; +import cc.bnblogs.enums.ResultEnum; +import cc.bnblogs.pojo.Banner; +import cc.bnblogs.service.BannerService; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +/** + * @author zfp@bnblogs.cc + * @createTime: 2022/10/17 + */ +@RestController +@RequestMapping("/admin/banner") +public class BannerController { + private final BannerService bannerService; + + public BannerController(BannerService bannerService) { + this.bannerService = bannerService; + } + + /** + * 请求所有轮播图的接口 + * + * @return 返回所有轮播图 + */ + @GetMapping("/") + public Result> list() { + return Result.success(bannerService.list()); + } + + /** + * 请求轮播图详情的接口 + * + * @param id 轮播图id + * @return 返回轮播图的详情 + */ + @GetMapping("/{id}") + public Result detail(@PathVariable Integer id) { + Banner banner = bannerService.detail(id); + if (Objects.isNull(banner)) { + return Result.error(ResultEnum.RESULT_NOT_FOUND); + } else { + return Result.success(banner); + } + } + + /** + * 保存修改后的轮播图数据 + * + * @param banner 修改的轮播图 + * @return 修改结果 + */ + @PostMapping("/") + public Result save(Banner banner) { + bannerService.save(banner); + return Result.success(); + } + + /** + * 删除一个轮播图 + * + * @param id 删除的轮播图id + * @return 删除结果 + */ + @DeleteMapping("/{id}") + public Result delete(@PathVariable Integer id) { + bannerService.delete(id); + return Result.success(); + } + + @PostMapping("/order") + public Result ordered(String ids) { + Arrays.stream(ids.split(";")).map(x -> x.split("----")). + forEach(x -> bannerService.order(Integer.parseInt(x[0]), Integer.parseInt(x[1]))); + return Result.success(); + } +} diff --git a/src/main/java/cc/bnblogs/mapper/BannerMapper.java b/src/main/java/cc/bnblogs/mapper/BannerMapper.java new file mode 100644 index 0000000..ede97c4 --- /dev/null +++ b/src/main/java/cc/bnblogs/mapper/BannerMapper.java @@ -0,0 +1,24 @@ +package cc.bnblogs.mapper; + +import cc.bnblogs.pojo.Banner; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + +import javax.transaction.Transactional; + +/** + * @author zfp@bnblogs.cc + * @createTime: 2022/10/17 + */ +public interface BannerMapper extends JpaRepository { + /** + * 更新对应id的轮播图的顺序值 + * @param id 轮播图id + * @param ordered 更新后的轮播图顺序值 + */ + @Transactional + @Modifying + @Query("update Banner set ordered = ?2 where id = ?1") + void ordered(Integer id, Integer ordered); +} diff --git a/src/main/java/cc/bnblogs/pojo/Banner.java b/src/main/java/cc/bnblogs/pojo/Banner.java new file mode 100644 index 0000000..879c661 --- /dev/null +++ b/src/main/java/cc/bnblogs/pojo/Banner.java @@ -0,0 +1,36 @@ +package cc.bnblogs.pojo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.*; + +/** + * @author zfp@bnblogs.cc + * @createTime: 2022/10/17 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Entity +@Table(name = "blog_banner") +public class Banner { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + // 标题 + private String title; + // 图片链接 + private String link; + // 图片 + private String cover; + // 排序 + private Integer ordered; + // 描述信息 + private String summary; + + +} diff --git a/src/main/java/cc/bnblogs/service/BannerService.java b/src/main/java/cc/bnblogs/service/BannerService.java new file mode 100644 index 0000000..627da82 --- /dev/null +++ b/src/main/java/cc/bnblogs/service/BannerService.java @@ -0,0 +1,69 @@ +package cc.bnblogs.service; + +import cc.bnblogs.mapper.BannerMapper; +import cc.bnblogs.pojo.Banner; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author zfp@bnblogs.cc + * @createTime: 2022/10/17 + */ +@Service +public class BannerService { + + private final BannerMapper bannerMapper; + + public BannerService(BannerMapper bannerMapper) { + this.bannerMapper = bannerMapper; + } + + /** + * 获取所有轮播图 + * 按照ordered字段升序排序 + * @return 轮播图列表 + */ + public List list() { + return bannerMapper.findAll(Sort.by(Sort.Direction.ASC,"ordered")); + } + + /** + * 获取轮播图总数 + * @return 轮播图总数 + */ + public long count() { + return bannerMapper.count(); + } + + /** + * 根据id查询轮播图对象 + * @param id 轮播图id + * @return id对应的轮播图对象 + */ + public Banner detail(Integer id) { + return bannerMapper.findById(id).orElse(null); + } + + /** + * 保存轮播图 + * @param banner 待保存的轮播图对象 + */ + public void save(Banner banner) { + bannerMapper.save(banner); + } + + /** + * 根据id删除轮播图对象 + * @param id 待删除轮播图的id + */ + public void delete(Integer id) { + bannerMapper.deleteById(id); + } + + public void order(Integer id, Integer ordered) { + bannerMapper.ordered(id,ordered); + } + +} diff --git a/src/main/java/cc/bnblogs/service/CategoryService.java b/src/main/java/cc/bnblogs/service/CategoryService.java index 1d3c17f..cdcfdb9 100644 --- a/src/main/java/cc/bnblogs/service/CategoryService.java +++ b/src/main/java/cc/bnblogs/service/CategoryService.java @@ -46,7 +46,7 @@ public class CategoryService { /** * 保存分类 - * @param category 带保存的分类对象 + * @param category 待保存的分类对象 */ public void save(Category category) { categoryMapper.save(category); @@ -59,6 +59,4 @@ public class CategoryService { public void delete(Integer id) { categoryMapper.deleteById(id); } - - } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2e04796..3bb69b6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -32,3 +32,6 @@ logging: path: ./logs level: root: info +# 定义用户上传文件的路径 +upload: + base-dir: ./upload/ diff --git a/src/main/resources/static/CodeGenerator/service.java b/src/main/resources/static/CodeGenerator/service.java index a3ce917..c2a2e32 100644 --- a/src/main/resources/static/CodeGenerator/service.java +++ b/src/main/resources/static/CodeGenerator/service.java @@ -46,7 +46,7 @@ public class ##{name-en-up}##Service { /** * ##{name-zh}## - * @param ##{name-en}## ##{name-zh}## + * @param ##{name-en}## ##{name-zh}## */ public void save(##{name-en-up}## ##{name-en}##) { ##{name-en}##Mapper.save(##{name-en}##); diff --git a/src/main/resources/static/admin/image/default.png b/src/main/resources/static/admin/image/default.png new file mode 100644 index 0000000000000000000000000000000000000000..296b9b2236e3340ed0adcba5b1339243260b907a GIT binary patch literal 8865 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­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 literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/admin/banner.html b/src/main/resources/templates/admin/banner.html index 49cd92c..2fb466c 100644 --- a/src/main/resources/templates/admin/banner.html +++ b/src/main/resources/templates/admin/banner.html @@ -1,96 +1,261 @@ - - - - Title - - - - - - - - - + + + + 轮播图管理 + - +
-
+
+ + +
+
- - - - - - + + + + \ No newline at end of file diff --git a/src/main/resources/templates/admin/common.html b/src/main/resources/templates/admin/common.html index 39aafa9..f3239a6 100644 --- a/src/main/resources/templates/admin/common.html +++ b/src/main/resources/templates/admin/common.html @@ -40,7 +40,7 @@
  • 文章管理
  • 分类管理
  • -
  • 轮播图管理
  • +
  • 轮播图管理
  • 页面管理
  • 友链管理
  • 评论管理
  • diff --git a/src/main/resources/templates/admin/friends.html b/src/main/resources/templates/admin/friends.html index 676ad76..df6aac6 100644 --- a/src/main/resources/templates/admin/friends.html +++ b/src/main/resources/templates/admin/friends.html @@ -37,7 +37,7 @@
    -
    @@ -76,6 +76,9 @@ { title: "友链地址", field: "link", + formatter: value => { + return `${value}` + } }, {