优化猜词按钮颜色,新增首页每日情话,新增斗图功能
This commit is contained in:
1
pom.xml
1
pom.xml
@@ -149,6 +149,7 @@
|
||||
<include>*.properties</include>
|
||||
<include>static/**</include>
|
||||
<include>templates/**</include>
|
||||
<include>bqb/**</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
|
||||
12
src/main/java/com/quinn/common/ExpBucket.java
Normal file
12
src/main/java/com/quinn/common/ExpBucket.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.quinn.common;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ExpBucket {
|
||||
|
||||
String name;
|
||||
String category;
|
||||
String url;
|
||||
|
||||
}
|
||||
@@ -7,6 +7,8 @@ public interface QuinnConstant {
|
||||
String LINK_KEY_WORD = ",";
|
||||
|
||||
String LINK_DATE_STR = "_";
|
||||
|
||||
String LINK_LOVE_STR = "#";
|
||||
/**
|
||||
* REDIS PATTEN
|
||||
*/
|
||||
|
||||
@@ -3,9 +3,13 @@ package com.quinn.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.quinn.common.ExpBucket;
|
||||
import com.quinn.intergration.BucketImage;
|
||||
import com.quinn.pojo.About;
|
||||
import com.quinn.service.AboutService;
|
||||
import com.quinn.utils.QuinnUtils;
|
||||
import com.quinn.vo.FindNavReq;
|
||||
import com.quinn.vo.MyPageParam;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
@@ -13,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -41,16 +46,36 @@ public class AboutController extends BaseModelController {
|
||||
return "page/about";
|
||||
}
|
||||
|
||||
@GetMapping("/favor")
|
||||
public String favor(){
|
||||
return "favor";
|
||||
}
|
||||
|
||||
@GetMapping("/guess")
|
||||
public String guess(){
|
||||
return "cimi/guess";
|
||||
}
|
||||
|
||||
// 列表展示
|
||||
@GetMapping("/favor")
|
||||
public String sourceList(Model model) throws IOException {
|
||||
MyPageParam pageParam = new MyPageParam(1,24);
|
||||
List<ExpBucket> recordList = aboutService.listExp(null,pageParam);
|
||||
model.addAttribute("recordList",recordList);
|
||||
model.addAttribute("pageParam",pageParam);
|
||||
return "page/favor";
|
||||
}
|
||||
|
||||
@PostMapping("/favor")
|
||||
public String blogListPage(FindNavReq findNavReq, Model model) throws IOException {
|
||||
int page = findNavReq.getPageNum();
|
||||
int limit = findNavReq.getLimit();
|
||||
if (findNavReq.getPageNum() < 1){
|
||||
page = 1;
|
||||
}
|
||||
MyPageParam pageParam = new MyPageParam(page,limit);
|
||||
List<ExpBucket> recordList = aboutService.listExp(findNavReq.getFindWhat(),pageParam);
|
||||
// 结果
|
||||
model.addAttribute("recordList",recordList);
|
||||
model.addAttribute("pageParam",pageParam);
|
||||
return "page/favor::user_table_refresh";
|
||||
}
|
||||
|
||||
@PostMapping("/about/append")
|
||||
@PreAuthorize("hasAuthority('ADMIN')")
|
||||
public String saveSay(About about){
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.quinn.common.QuinnException;
|
||||
import com.quinn.common.RoleType;
|
||||
import com.quinn.intergration.AttrIcon;
|
||||
import com.quinn.intergration.TodayLove;
|
||||
import com.quinn.pojo.Invite;
|
||||
import com.quinn.pojo.User;
|
||||
import com.quinn.pojo.UserInfo;
|
||||
@@ -22,6 +23,7 @@ import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
@@ -35,11 +37,15 @@ public class LoginController {
|
||||
UserService userService;
|
||||
@Autowired
|
||||
UserInfoService userInfoService;
|
||||
@Resource
|
||||
TodayLove todayLove;
|
||||
|
||||
@GetMapping({"/","/index","/source/view/index",
|
||||
"/blog/read/index"
|
||||
})
|
||||
public String index(){
|
||||
public String index(Model model) throws IOException {
|
||||
// 每日情话
|
||||
model.addAttribute("LoveList",todayLove.getTodayLoveStr());
|
||||
return "index";
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ public class CodeGenerator {
|
||||
|
||||
// 5、策略配置
|
||||
StrategyConfig strategy = new StrategyConfig();
|
||||
strategy.setInclude("qn_email");//设置要映射的表名
|
||||
strategy.setInclude("qn_bucket_url");//设置要映射的表名
|
||||
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
|
||||
strategy.setTablePrefix("qn_");//设置表前缀不生成
|
||||
|
||||
|
||||
65
src/main/java/com/quinn/intergration/BucketImage.java
Normal file
65
src/main/java/com/quinn/intergration/BucketImage.java
Normal file
@@ -0,0 +1,65 @@
|
||||
package com.quinn.intergration;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.quinn.common.ExpBucket;
|
||||
import com.quinn.utils.JsonUtils;
|
||||
import com.quinn.vo.MyPageParam;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class BucketImage implements InitializingBean {
|
||||
|
||||
Map<String,String> dictionary = new HashMap<>();
|
||||
|
||||
public List<ExpBucket> listExp(String findWhat, MyPageParam myPageParam) throws IOException {
|
||||
List<ExpBucket> result = new ArrayList<>();
|
||||
if (CollectionUtils.isEmpty(dictionary)){
|
||||
makeDictionary();
|
||||
}
|
||||
List<String> resultAll = dictionary.keySet().stream().filter(x ->
|
||||
StringUtils.isEmpty(findWhat) ? true : x.contains(findWhat)).collect(Collectors.toList());
|
||||
myPageParam.setTotal(resultAll.size());
|
||||
int pageNum = myPageParam.getPageNum();
|
||||
for (int i = 0;i<myPageParam.getSize(); i++){
|
||||
if (pageNum + i >= myPageParam.getTotal()){
|
||||
break;
|
||||
}
|
||||
ExpBucket expBucket = new ExpBucket();
|
||||
expBucket.setName(resultAll.get(pageNum + i));
|
||||
expBucket.setUrl(dictionary.get(resultAll.get(pageNum + i)));
|
||||
result.add(expBucket);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
makeDictionary();
|
||||
}
|
||||
|
||||
private void makeDictionary() throws IOException {
|
||||
File file = ResourceUtils.getFile("classpath:bqb/image.json");
|
||||
InputStreamReader insReader = new InputStreamReader(
|
||||
new FileInputStream(file), "UTF-8");
|
||||
BufferedReader bufReader = new BufferedReader(insReader);
|
||||
String json = bufReader.readLine();
|
||||
bufReader.close();
|
||||
insReader.close();
|
||||
List<ExpBucket> decode = JsonUtils.decode(json, new TypeReference<List<ExpBucket>>() {
|
||||
});
|
||||
for (ExpBucket expBucket : decode) {
|
||||
this.dictionary.put(expBucket.getName(),expBucket.getUrl());
|
||||
}
|
||||
}
|
||||
}
|
||||
49
src/main/java/com/quinn/intergration/TodayLove.java
Normal file
49
src/main/java/com/quinn/intergration/TodayLove.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package com.quinn.intergration;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.quinn.common.QuinnConstant;
|
||||
import com.quinn.utils.JsonUtils;
|
||||
import com.quinn.utils.QuinnUtils;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
public class TodayLove implements InitializingBean {
|
||||
|
||||
private List<String> dictionary = new ArrayList<>();
|
||||
|
||||
public List<String> getTodayLoveStr() throws IOException {
|
||||
if (CollectionUtils.isEmpty(dictionary)){
|
||||
makeDictionary();
|
||||
}
|
||||
int days = QuinnUtils.differentDays(new Date(2022, 4, 1), new Date());
|
||||
int i = days % dictionary.size();
|
||||
String todayStr = dictionary.get(i);
|
||||
String[] split = todayStr.split(QuinnConstant.LINK_LOVE_STR);
|
||||
return Arrays.asList(split);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
makeDictionary();
|
||||
}
|
||||
|
||||
private void makeDictionary() throws IOException {
|
||||
File file = ResourceUtils.getFile("classpath:bqb/love.json");
|
||||
InputStreamReader insReader = new InputStreamReader(
|
||||
new FileInputStream(file), "UTF-8");
|
||||
BufferedReader bufReader = new BufferedReader(insReader);
|
||||
String json = bufReader.readLine();
|
||||
bufReader.close();
|
||||
insReader.close();
|
||||
List<String> decode = JsonUtils.decode(json, new TypeReference<List<String>>() {
|
||||
});
|
||||
dictionary = decode;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,12 @@
|
||||
package com.quinn.service;
|
||||
|
||||
import com.quinn.common.ExpBucket;
|
||||
import com.quinn.pojo.About;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.quinn.vo.MyPageParam;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface AboutService extends IService<About> {
|
||||
|
||||
List<ExpBucket> listExp(String findWhat, MyPageParam pageParam) throws IOException;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,18 @@
|
||||
package com.quinn.service.impl;
|
||||
|
||||
import com.quinn.common.ExpBucket;
|
||||
import com.quinn.intergration.BucketImage;
|
||||
import com.quinn.pojo.About;
|
||||
import com.quinn.mapper.AboutMapper;
|
||||
import com.quinn.service.AboutService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.quinn.vo.MyPageParam;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
@@ -17,4 +24,11 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class AboutServiceImpl extends ServiceImpl<AboutMapper, About> implements AboutService {
|
||||
|
||||
@Resource
|
||||
BucketImage bucketImage;
|
||||
|
||||
@Override
|
||||
public List<ExpBucket> listExp(String findWhat, MyPageParam pageParam) throws IOException {
|
||||
return bucketImage.listExp(findWhat,pageParam);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.quinn.utils;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
@@ -39,4 +40,42 @@ public class QuinnUtils {
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* date2比date1多的天数
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static int differentDays(Date date1,Date date2) {
|
||||
Calendar cal1 = Calendar.getInstance();
|
||||
cal1.setTime(date1);
|
||||
|
||||
Calendar cal2 = Calendar.getInstance();
|
||||
cal2.setTime(date2);
|
||||
int day1= cal1.get(Calendar.DAY_OF_YEAR);
|
||||
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
|
||||
|
||||
int year1 = cal1.get(Calendar.YEAR);
|
||||
int year2 = cal2.get(Calendar.YEAR);
|
||||
if(year1 != year2) {//同一年
|
||||
int timeDistance = 0 ;
|
||||
for(int i = year1 ; i < year2 ; i ++)
|
||||
{
|
||||
if(i%4==0 && i%100!=0 || i%400==0) //闰年
|
||||
{
|
||||
timeDistance += 366;
|
||||
}
|
||||
else //不是闰年
|
||||
{
|
||||
timeDistance += 365;
|
||||
}
|
||||
}
|
||||
|
||||
return timeDistance + (day2-day1) ;
|
||||
} else {// 不同年
|
||||
System.out.println("判断day2 - day1 : " + (day2-day1));
|
||||
return day2-day1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public class FindNavReq {
|
||||
@ApiModelProperty(value = "个数")
|
||||
private int limit;
|
||||
|
||||
@ApiModelProperty(value = "用户编号")
|
||||
@ApiModelProperty(value = "查询字符串")
|
||||
private String findWhat;
|
||||
|
||||
}
|
||||
|
||||
1
src/main/resources/bqb/image.json
Normal file
1
src/main/resources/bqb/image.json
Normal file
File diff suppressed because one or more lines are too long
1
src/main/resources/bqb/love.json
Normal file
1
src/main/resources/bqb/love.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
src/main/resources/static/assets/index.a6696717.js
Normal file
2
src/main/resources/static/assets/index.a6696717.js
Normal file
File diff suppressed because one or more lines are too long
1
src/main/resources/static/assets/index.de3d343a.css
Normal file
1
src/main/resources/static/assets/index.de3d343a.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
src/main/resources/static/assets/vendor.e8eab7c4.js
Normal file
6
src/main/resources/static/assets/vendor.e8eab7c4.js
Normal file
File diff suppressed because one or more lines are too long
@@ -4,12 +4,12 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>Quinn-词谜</title>
|
||||
<script type="module" crossorigin src="./assets/index.63d49f8b.js"></script>
|
||||
<link rel="modulepreload" th:href="@{/assets/vendor.1184b31e.js}">
|
||||
<script type="module" crossorigin src="./assets/index.a6696717.js"></script>
|
||||
<link rel="modulepreload" th:href="@{/assets/vendor.e8eab7c4.js}">
|
||||
<link rel="modulepreload" th:href="@{/assets/polyphones.f3f0c057.js}">
|
||||
<link rel="modulepreload" th:href="@{/assets/idioms.a01375e9.js}">
|
||||
<link rel="modulepreload" th:href="@{/assets/locale.6dea3a1e.js}">
|
||||
<link rel="stylesheet" th:href="@{/assets/index.7414fc6a.css}">
|
||||
<link rel="stylesheet" th:href="@{/assets/index.de3d343a.css}">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<a class="nav-link" th:href="@{/source}">资源</a>
|
||||
</li>
|
||||
<li th:class="${activeUrl=='favor'?'nav-item active':'nav-item'}">
|
||||
<a class="nav-link" th:href="@{/favor}">情话</a>
|
||||
<a class="nav-link" th:href="@{/favor}">斗图</a>
|
||||
</li>
|
||||
<li th:class="${activeUrl=='guess'?'nav-item active':'nav-item'}">
|
||||
<a class="nav-link" th:href="@{/guess}">词谜</a>
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>土味情话-Quinn</title>
|
||||
<link rel="stylesheet" th:href="@{/bootstrap/css/bootstrap.min.css}">
|
||||
<link rel="stylesheet" th:href="@{/css/backgroud.css}">
|
||||
</head>
|
||||
<div th:replace="~{common/header::header(activeUrl='favor')}"></div>
|
||||
<main role="main">
|
||||
<div class="container">
|
||||
<div class="alert alert-primary mt-3" role="alert">
|
||||
选自@杨二-土味情话生成器。可以点<a target="_blank" class="text-danger font-weight-bold text-decoration-none" href="https://yangerxiao.com">此处</a>访问作者首页
|
||||
</div>
|
||||
<iframe height="1080px" width="100%" src="https://works.yangerxiao.com/honeyed-words-generator/"></iframe>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div th:replace="~{common/footer::footer}"></div>
|
||||
<div class="to-top">
|
||||
<img class="d-block pl-2" src="/images/logo/qrcode.png" width="50" height="50">
|
||||
<a class="badge badge-light">返回顶部</a>
|
||||
</div>
|
||||
<script th:src="@{/js/jquery-3.5.1.min.js}"></script>
|
||||
<script th:src="@{/bootstrap/js/bootstrap.bundle.min.js}"></script>
|
||||
<script th:src="@{/js/toTop.js}"></script>
|
||||
<script th:src="@{/js/jquery-ui.min.js}"></script>
|
||||
<script th:src="@{/live/js/addlive2d.js}"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -13,9 +13,6 @@
|
||||
background-size: 100% 100%;
|
||||
height: 400px;
|
||||
}
|
||||
.inverted{
|
||||
background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAHklEQVQImWNkYGBgYGD4//8/A5wF5SBYyAr+//8PAPOCFO0Q2zq7AAAAAElFTkSuQmCC) repeat;text-shadow: 5px -5px black, 4px -4px white;font-weight: bold;-webkit-text-fill-color: transparent;-webkit-background-clip: text
|
||||
}
|
||||
.invertedContent p{
|
||||
text-align: center;
|
||||
background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAHklEQVQImWNkYGBgYGD4//8/A5wF5SBYyAr+//8PAPOCFO0Q2zq7AAAAAElFTkSuQmCC) repeat;text-shadow: 2px -2px black, 1px -1px white;font-weight: bold;-webkit-text-fill-color: transparent;-webkit-background-clip: text
|
||||
@@ -90,8 +87,15 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-danger mt-3" role="alert">
|
||||
<span th:each="love:${LoveList}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chat-square-heart-fill" viewBox="0 0 16 16">
|
||||
<path d="M2 0a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2.5a1 1 0 0 1 .8.4l1.9 2.533a1 1 0 0 0 1.6 0l1.9-2.533a1 1 0 0 1 .8-.4H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2Zm6 3.993c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z"/>
|
||||
</svg>
|
||||
[[${love}]]
|
||||
</span>
|
||||
</div>
|
||||
<div id="register" class="mt-3">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@@ -44,11 +44,9 @@
|
||||
style="font-family:'Microsoft YaHei';">
|
||||
<tbody>
|
||||
<tr>
|
||||
<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path v-if="tone === 1" d="M3.35 8C2.60442 8 2 8.60442 2 9.35V10.35C2 11.0956 2.60442 11.7 3.35 11.7H17.35C18.0956 11.7 18.7 11.0956 18.7 10.35V9.35C18.7 8.60442 18.0956 8 17.35 8H3.35Z" fill="currentColor" />
|
||||
<path v-if="tone === 2" d="M16.581 3.71105C16.2453 3.27254 15.6176 3.18923 15.1791 3.52498L3.26924 12.6439C2.83073 12.9796 2.74743 13.6073 3.08318 14.0458L4.29903 15.6338C4.63478 16.0723 5.26244 16.1556 5.70095 15.8199L17.6108 6.70095C18.0493 6.3652 18.1327 5.73754 17.7969 5.29903L16.581 3.71105Z" fill="currentColor" />
|
||||
<path v-if="tone === 3" d="M1.70711 7.70712C1.31658 7.3166 1.31658 6.68343 1.70711 6.29291L2.41421 5.5858C2.80474 5.19528 3.4379 5.19528 3.82843 5.5858L9.31502 11.0724C9.70555 11.4629 10.3387 11.4629 10.7292 11.0724L16.2158 5.5858C16.6064 5.19528 17.2395 5.19528 17.63 5.5858L18.3372 6.29291C18.7277 6.68343 18.7277 7.3166 18.3372 7.70712L10.7292 15.315C10.3387 15.7056 9.70555 15.7056 9.31502 15.315L1.70711 7.70712Z" fill="currentColor" />
|
||||
<path v-if="tone === 4" d="M4.12282 3.71105C4.45857 3.27254 5.08623 3.18923 5.52474 3.52498L17.4346 12.6439C17.8731 12.9796 17.9564 13.6073 17.6207 14.0458L16.4048 15.6338C16.0691 16.0723 15.4414 16.1556 15.0029 15.8199L3.09303 6.70095C2.65452 6.3652 2.57122 5.73754 2.90697 5.29903L4.12282 3.71105Z" fill="currentColor" />
|
||||
<svg viewBox="0 0 20 6" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="3.5" cy="3" r="2.5" fill="currentColor" />
|
||||
<circle cx="16.5" cy="3" r="2.5" fill="currentColor" />
|
||||
</svg>
|
||||
<div style="width:800px;margin:0 auto;text-align:left;">
|
||||
<table width="944px" style="margin: 0 auto">
|
||||
|
||||
84
src/main/resources/templates/page/favor.html
Normal file
84
src/main/resources/templates/page/favor.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>免费表情包-Quinn</title>
|
||||
<link rel="stylesheet" th:href="@{/bootstrap/css/bootstrap.min.css}">
|
||||
<link rel="stylesheet" th:href="@{/css/backgroud.css}">
|
||||
</head>
|
||||
<div th:replace="~{common/header::header(activeUrl='favor')}"></div>
|
||||
<main role="main">
|
||||
<div class="container">
|
||||
<!-- <div class="alert alert-primary mt-3" role="alert">-->
|
||||
<!-- 选自@杨二-土味情话生成器。可以点<a target="_blank" class="text-danger font-weight-bold text-decoration-none" href="https://yangerxiao.com">此处</a>访问作者首页-->
|
||||
<!-- </div>-->
|
||||
<!-- <iframe height="1080px" width="100%" src="https://works.yangerxiao.com/honeyed-words-generator/"></iframe>-->
|
||||
<div class="my-3 p-3 bg-white rounded shadow-sm">
|
||||
<div th:fragment="user_table_refresh" th:id="id_user_table_refresh">
|
||||
<div class="row border-bottom border-gray pb-2 mt-1">
|
||||
<div class="col-md-6">表情数据来源自GITHUB</div>
|
||||
<input id="findBucket" th:value="${findBucket}" class="col-md-3 form-control" placeholder="请输入要查询的表情">
|
||||
<button class="ml-2 col-md-2 btn-sm btn-dark" onclick="navChange(-777)" >找一找</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3 small pl-2 border-bottom border-gray pb-2 pt-2" th:each="record:${recordList}">
|
||||
<!-- <p th:text="${record.getName()}" class="badge badge-success"></p>-->
|
||||
<img width="200px" height="200px" th:src="${record.getUrl()}"/>
|
||||
</div>
|
||||
</div>
|
||||
<!--分页-->
|
||||
<nav aria-label="Page navigation example" class="mt-4">
|
||||
<ul class="pagination justify-content-center pagination-sm">
|
||||
<li th:class="${pageParam.hasPrevious()==true?'page-item':'page-item disabled'}">
|
||||
<a class="page-link" href="javascript:navChange(-1);" tabindex="">Previous</a>
|
||||
</li>
|
||||
<li class="page-item" th:if="${pageParam.hasPrevious()}">
|
||||
<a class="page-link" href="javascript:navChange(-1);" th:text="${pageParam.getCurrent()-1}"></a>
|
||||
</li>
|
||||
<li class="page-item active">
|
||||
<a id = "current" class="page-link" href="javascript:navChange(0);" th:text="${pageParam.getCurrent()}"></a>
|
||||
</li>
|
||||
<li class="page-item" th:if="${pageParam.hasNext()}">
|
||||
<a class="page-link" href="javascript:navChange(1);" th:text="${pageParam.getCurrent()+1}"></a>
|
||||
</li>
|
||||
<li th:class="${pageParam.hasNext()==true?'page-item':'page-item disabled'}">
|
||||
<a class="page-link" href="javascript:navChange(1);">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<div th:replace="~{common/footer::footer}"></div>
|
||||
<div class="to-top">
|
||||
<img class="d-block pl-2" src="/images/logo/qrcode.png" width="50" height="50">
|
||||
<a class="badge badge-light">返回顶部</a>
|
||||
</div>
|
||||
<script th:src="@{/js/jquery-3.5.1.min.js}"></script>
|
||||
<script th:src="@{/bootstrap/js/bootstrap.bundle.min.js}"></script>
|
||||
<script th:src="@{/js/toTop.js}"></script>
|
||||
<script th:src="@{/js/jquery-ui.min.js}"></script>
|
||||
<script th:src="@{/live/js/addlive2d.js}"></script>
|
||||
<script type="text/javascript">
|
||||
function navChange(page){
|
||||
var current = $('#current').text();
|
||||
var pageNum = parseInt(current) + page;
|
||||
var findWhat = $('#findBucket').val();
|
||||
if (-777 == page){
|
||||
pageNum = 1;
|
||||
}
|
||||
$.ajax({
|
||||
url: "/favor",
|
||||
async: false,
|
||||
type: "post",
|
||||
data: {"findWhat":findWhat,"pageNum": pageNum, "limit": 24},
|
||||
success: function (data) {
|
||||
$('#id_user_table_refresh').html(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -83,7 +83,7 @@
|
||||
<span>按照资源名称进行模糊查询,如需含内容模糊,您可以使用【↑全站搜索↑】</span>
|
||||
</div>
|
||||
<div class="p-3 my-3 bg-white rounded">
|
||||
<form action="javascript:navChange(0);" method="post">
|
||||
<form action="javascript:navChange(-777);" method="post">
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mt-2">
|
||||
<label class="sr-only" for="name">KEYWORD</label>
|
||||
@@ -134,6 +134,9 @@
|
||||
var category = $('#category').val();
|
||||
var current = $('#current').text();
|
||||
var pageNum = parseInt(current) + page;
|
||||
if (-777 == page){
|
||||
pageNum = 1;
|
||||
}
|
||||
$.ajax({
|
||||
url: "/source",
|
||||
async: false,
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
package com.quinn.test;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.quinn.QuinnApplication;
|
||||
import com.quinn.common.EmailType;
|
||||
import com.quinn.common.QuinnConstant;
|
||||
import com.quinn.common.ExpBucket;
|
||||
import com.quinn.intergration.SendBMail;
|
||||
import com.quinn.pojo.Source;
|
||||
import com.quinn.service.SourceService;
|
||||
import com.quinn.utils.CovertEmojStr;
|
||||
import com.quinn.utils.JsonUtils;
|
||||
import com.quinn.utils.RedisUtils;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.*;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@@ -30,11 +31,6 @@ public class RedisTest {
|
||||
@Resource
|
||||
SendBMail sendBMail;
|
||||
|
||||
@Test
|
||||
public void updateViewTask(){
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendEmail(){
|
||||
// sendBMail.sendOneParamMail(EmailType.SUCCESS,"1234","540344226@qq.com");
|
||||
|
||||
Reference in New Issue
Block a user