diff --git a/src/main/java/top/naccl/dwz/DwzApplication.java b/src/main/java/top/naccl/dwz/DwzApplication.java index 9f581db..1849055 100644 --- a/src/main/java/top/naccl/dwz/DwzApplication.java +++ b/src/main/java/top/naccl/dwz/DwzApplication.java @@ -2,7 +2,9 @@ package top.naccl.dwz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableAsync; +@EnableAsync @SpringBootApplication public class DwzApplication { diff --git a/src/main/java/top/naccl/dwz/controller/IndexController.java b/src/main/java/top/naccl/dwz/controller/IndexController.java index a1625c6..cf4d6ed 100644 --- a/src/main/java/top/naccl/dwz/controller/IndexController.java +++ b/src/main/java/top/naccl/dwz/controller/IndexController.java @@ -48,6 +48,7 @@ public class IndexController { public String redirect(@PathVariable String shortURL) { String longURL = urlService.getLongUrlByShortUrl(shortURL); if (longURL != null) { + urlService.updateUrlViews(shortURL); //查询到对应的原始链接,302重定向 return "redirect:" + longURL; } diff --git a/src/main/java/top/naccl/dwz/entity/UrlMap.java b/src/main/java/top/naccl/dwz/entity/UrlMap.java index e138357..0e018e0 100644 --- a/src/main/java/top/naccl/dwz/entity/UrlMap.java +++ b/src/main/java/top/naccl/dwz/entity/UrlMap.java @@ -20,11 +20,13 @@ public class UrlMap { private Long id; private String surl;//短链接 private String lurl;//长链接 + private Integer views;//访问次数 private Date createTime;//创建时间 public UrlMap(String surl, String lurl) { this.surl = surl; this.lurl = lurl; + this.views = 0; this.createTime = new Date(); } } diff --git a/src/main/java/top/naccl/dwz/mapper/UrlMapper.java b/src/main/java/top/naccl/dwz/mapper/UrlMapper.java index 9e07a91..bf93f3d 100644 --- a/src/main/java/top/naccl/dwz/mapper/UrlMapper.java +++ b/src/main/java/top/naccl/dwz/mapper/UrlMapper.java @@ -15,4 +15,6 @@ public interface UrlMapper { String getLongUrlByShortUrl(String surl); int saveUrlMap(UrlMap urlMap); + + int updateUrlViews(String surl); } diff --git a/src/main/java/top/naccl/dwz/service/UrlService.java b/src/main/java/top/naccl/dwz/service/UrlService.java index 0e3312d..20219e5 100644 --- a/src/main/java/top/naccl/dwz/service/UrlService.java +++ b/src/main/java/top/naccl/dwz/service/UrlService.java @@ -1,7 +1,12 @@ package top.naccl.dwz.service; +import org.springframework.scheduling.annotation.Async; + public interface UrlService { String getLongUrlByShortUrl(String shortURL); String saveUrlMap(String shortURL, String longURL, String originalURL); + + @Async + void updateUrlViews(String shortURL); } diff --git a/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java b/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java index 5d38e59..2523cde 100644 --- a/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java +++ b/src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java @@ -81,4 +81,9 @@ public class UrlServiceImpl implements UrlService { } return shortURL; } + + @Override + public void updateUrlViews(String shortURL) { + urlMapper.updateUrlViews(shortURL); + } } diff --git a/src/main/resources/mapper/UrlMapper.xml b/src/main/resources/mapper/UrlMapper.xml index 652fee1..0c5ee27 100644 --- a/src/main/resources/mapper/UrlMapper.xml +++ b/src/main/resources/mapper/UrlMapper.xml @@ -2,10 +2,19 @@ - insert into url_map (surl, lurl, create_time) values (#{surl}, #{lurl}, #{createTime}) + insert into url_map (surl, lurl, views, create_time) + values (#{surl}, #{lurl}, #{views}, #{createTime}) + + + update url_map + set views=views + 1 + where surl = #{surl} + \ No newline at end of file