Browse Source

feat:记录访问次数

master
Naccl 4 years ago
parent
commit
5f9efd68f3
  1. 2
      src/main/java/top/naccl/dwz/DwzApplication.java
  2. 1
      src/main/java/top/naccl/dwz/controller/IndexController.java
  3. 2
      src/main/java/top/naccl/dwz/entity/UrlMap.java
  4. 2
      src/main/java/top/naccl/dwz/mapper/UrlMapper.java
  5. 5
      src/main/java/top/naccl/dwz/service/UrlService.java
  6. 5
      src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java
  7. 13
      src/main/resources/mapper/UrlMapper.xml

2
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.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
@EnableAsync
@SpringBootApplication @SpringBootApplication
public class DwzApplication { public class DwzApplication {

1
src/main/java/top/naccl/dwz/controller/IndexController.java

@ -48,6 +48,7 @@ public class IndexController {
public String redirect(@PathVariable String shortURL) { public String redirect(@PathVariable String shortURL) {
String longURL = urlService.getLongUrlByShortUrl(shortURL); String longURL = urlService.getLongUrlByShortUrl(shortURL);
if (longURL != null) { if (longURL != null) {
urlService.updateUrlViews(shortURL);
//查询到对应的原始链接,302重定向 //查询到对应的原始链接,302重定向
return "redirect:" + longURL; return "redirect:" + longURL;
} }

2
src/main/java/top/naccl/dwz/entity/UrlMap.java

@ -20,11 +20,13 @@ public class UrlMap {
private Long id; private Long id;
private String surl;//短链接 private String surl;//短链接
private String lurl;//长链接 private String lurl;//长链接
private Integer views;//访问次数
private Date createTime;//创建时间 private Date createTime;//创建时间
public UrlMap(String surl, String lurl) { public UrlMap(String surl, String lurl) {
this.surl = surl; this.surl = surl;
this.lurl = lurl; this.lurl = lurl;
this.views = 0;
this.createTime = new Date(); this.createTime = new Date();
} }
} }

2
src/main/java/top/naccl/dwz/mapper/UrlMapper.java

@ -15,4 +15,6 @@ public interface UrlMapper {
String getLongUrlByShortUrl(String surl); String getLongUrlByShortUrl(String surl);
int saveUrlMap(UrlMap urlMap); int saveUrlMap(UrlMap urlMap);
int updateUrlViews(String surl);
} }

5
src/main/java/top/naccl/dwz/service/UrlService.java

@ -1,7 +1,12 @@
package top.naccl.dwz.service; package top.naccl.dwz.service;
import org.springframework.scheduling.annotation.Async;
public interface UrlService { public interface UrlService {
String getLongUrlByShortUrl(String shortURL); String getLongUrlByShortUrl(String shortURL);
String saveUrlMap(String shortURL, String longURL, String originalURL); String saveUrlMap(String shortURL, String longURL, String originalURL);
@Async
void updateUrlViews(String shortURL);
} }

5
src/main/java/top/naccl/dwz/service/impl/UrlServiceImpl.java

@ -81,4 +81,9 @@ public class UrlServiceImpl implements UrlService {
} }
return shortURL; return shortURL;
} }
@Override
public void updateUrlViews(String shortURL) {
urlMapper.updateUrlViews(shortURL);
}
} }

13
src/main/resources/mapper/UrlMapper.xml

@ -2,10 +2,19 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="top.naccl.dwz.mapper.UrlMapper"> <mapper namespace="top.naccl.dwz.mapper.UrlMapper">
<select id="getLongUrlByShortUrl" resultType="java.lang.String"> <select id="getLongUrlByShortUrl" resultType="java.lang.String">
select lurl from url_map where surl=#{surl} select lurl
from url_map
where surl = #{surl}
</select> </select>
<insert id="saveUrlMap" parameterType="top.naccl.dwz.entity.UrlMap" useGeneratedKeys="true" keyProperty="id"> <insert id="saveUrlMap" parameterType="top.naccl.dwz.entity.UrlMap" useGeneratedKeys="true" keyProperty="id">
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})
</insert> </insert>
<update id="updateUrlViews">
update url_map
set views=views + 1
where surl = #{surl}
</update>
</mapper> </mapper>
Loading…
Cancel
Save