From cc5276705dd374cfb25cfc321acfab4bd41c4ff2 Mon Sep 17 00:00:00 2001 From: User_cyk <1020691186@qq.com> Date: Fri, 22 Dec 2023 19:49:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BAexcel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 ++ .../lovenav/controller/AuthController.java | 30 +++++ .../lovenav/controller/SearchController.java | 36 +++++- .../controller/UrlAndCateController.java | 106 +++++++++++++++++- src/main/java/com/lovenav/dao/AuthDao.java | 6 + .../lovenav/service/UrlCateListService.java | 5 + .../serviceImpl/UrlCateListServiceImpl.java | 81 ++++++++++++- src/main/resources/mybatis/AuthDao.xml | 8 ++ 8 files changed, 270 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/lovenav/controller/AuthController.java diff --git a/pom.xml b/pom.xml index 17aa7d9..4080af2 100644 --- a/pom.xml +++ b/pom.xml @@ -135,6 +135,17 @@ 3.7.1 + + + org.apache.poi + poi + 3.14 + + + org.apache.poi + poi-ooxml + 3.14 + diff --git a/src/main/java/com/lovenav/controller/AuthController.java b/src/main/java/com/lovenav/controller/AuthController.java new file mode 100644 index 0000000..4e9c9f3 --- /dev/null +++ b/src/main/java/com/lovenav/controller/AuthController.java @@ -0,0 +1,30 @@ +package com.lovenav.controller; + +import com.alibaba.fastjson2.JSONObject; +import com.lovenav.dao.AuthDao; +import com.lovenav.entity.Auth; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; + +@RestController +@RequestMapping("/Auth") +public class AuthController { + + @Autowired + AuthDao authDao; + + @RequestMapping("/retAllAuth") + public String retAllAuth(){ + List auths = authDao.selectAllAuth(); + HashMap result = new HashMap<>(); + result.put("code", 200); + result.put("msg", "查询结果"); + result.put("data",auths); + String jsonString = JSONObject.toJSONString(result); + return jsonString; + } +} diff --git a/src/main/java/com/lovenav/controller/SearchController.java b/src/main/java/com/lovenav/controller/SearchController.java index 51158fe..61b85b4 100644 --- a/src/main/java/com/lovenav/controller/SearchController.java +++ b/src/main/java/com/lovenav/controller/SearchController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import java.io.IOException; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -42,6 +43,7 @@ public class SearchController { redisService.addSearchHistoryByUserId(userId, searchKey); + redisService.incrementScoreByUserId(searchKey); redisService.incrementScore(searchKey); //返回网站数据 @@ -67,15 +69,41 @@ public class SearchController { @RequestMapping("/getSearchHistoryByUserId") public String getSearchHistoryByUserId(String userId) { - String res = "123"; - return res; + List stringList = redisService.getSearchHistoryByUserId(userId); + HashMap result = new HashMap<>(); + result.put("code", 200); + result.put("msg", "查询成功"); + result.put("data",stringList); + String jsonString = JSONObject.toJSONString(result); + + return jsonString; } /** * 删除个人历史数据 */ @RequestMapping("/delSearchHistoryByUserId") public String delSearchHistoryByUserId(String userId, String searchKey){ - String res = "123"; - return res; + Long f = redisService.delSearchHistoryByUserId(userId,searchKey); + HashMap result = new HashMap<>(); + result.put("code", 200); + result.put("msg", "删除结果"); + result.put("data",f); + String jsonString = JSONObject.toJSONString(result); + + return jsonString; + } + /** + * 根据searchKey搜索其相关最热的前十名 (如果searchKey为null空,则返回redis存储的前十最热词条) + */ + @RequestMapping("/getHotList") + public String getHotList(String searchKey){ + List stringList = redisService.getHotList(searchKey); + HashMap result = new HashMap<>(); + result.put("code", 200); + result.put("msg", "查询结果"); + result.put("data",stringList); + String jsonString = JSONObject.toJSONString(result); + + return jsonString; } } diff --git a/src/main/java/com/lovenav/controller/UrlAndCateController.java b/src/main/java/com/lovenav/controller/UrlAndCateController.java index 471091f..336cc33 100644 --- a/src/main/java/com/lovenav/controller/UrlAndCateController.java +++ b/src/main/java/com/lovenav/controller/UrlAndCateController.java @@ -1,5 +1,7 @@ package com.lovenav.controller; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; @@ -10,15 +12,20 @@ import com.lovenav.entity.UrlList; import com.lovenav.service.UrlCateListService; import com.lovenav.service.UrlListService; import com.lovenav.vo.CateAndUrl; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; +import java.io.*; @RestController @RequestMapping("/UrlAndCate") public class UrlAndCateController { @@ -43,6 +50,7 @@ public class UrlAndCateController { try { JsonNode rootNode = objectMapper.readTree(data2); disposeBookmarkFunction1(rootNode,"top",email); + countCateContainUrlNumber(email); HashMap result = new HashMap<>(); result.put("code", 200); result.put("msg", "查询成功"); @@ -80,9 +88,9 @@ public class UrlAndCateController { //处理成JSON @RequestMapping("/disposeBookmarkToJson") - public String disposeBookmarkToJson(Integer userId) + public String disposeBookmarkToJson(String userId) { - List urlCateLists = urlCateListService.selectUrListByUserId(userId); + List urlCateLists = urlCateListService.selectUrListByUserId(Integer.valueOf(userId)); List urlLists = urlListService.selectUrList(); List cateAndUrlList = new ArrayList<>(); @@ -185,4 +193,90 @@ public class UrlAndCateController { String jsonString = JSONObject.toJSONString(result); return jsonString; } + + + public String countCateContainUrlNumber(String email){ + HashMap result = new HashMap<>(); + result.put("code", 200); + result.put("msg", "查询成功"); + result.put("data",urlCateListService.countCateContainUrlNumber(email)); + String jsonString = JSONObject.toJSONString(result); + return jsonString; + } + //处理成JSON +// @RequestMapping("/disposeJsonToExcel") +// public String disposeJsonToExcel(String userId) +// { +// +// HashMap result = new HashMap<>(); +// result.put("code", 200); +// result.put("msg", "查询成功"); +// result.put("data",urlCateListService.getUrl(userId)); +// String jsonString = JSONObject.toJSONString(result); +// return jsonString; +// } + + /** + * json 转 excel + * @param jsonArray + * @return + * @throws IOException + */ + public HSSFWorkbook jsonToExcel(JSONArray jsonArray) throws IOException { + Set keys = new HashSet<>(); + // 创建HSSFWorkbook对象 + HSSFWorkbook wb = new HSSFWorkbook(); + // 创建HSSFSheet对象 + HSSFSheet sheet = wb.createSheet("sheet0"); + + + List jsonObjects = jsonArray.toList(JSONObject.class); + + // 创建HSSFRow对象 + HSSFRow row ; + for (int i=0;i result = new HashMap<>(); + result.put("code", 500); + result.put("msg", "下载失败"); + + return JSON.toJSONString(result); + } + } } diff --git a/src/main/java/com/lovenav/dao/AuthDao.java b/src/main/java/com/lovenav/dao/AuthDao.java index 28164ac..cc80296 100644 --- a/src/main/java/com/lovenav/dao/AuthDao.java +++ b/src/main/java/com/lovenav/dao/AuthDao.java @@ -1,9 +1,13 @@ package com.lovenav.dao; import com.lovenav.entity.Auth; +import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository +@Mapper public interface AuthDao { int deleteByPrimaryKey(Integer id); @@ -16,4 +20,6 @@ public interface AuthDao { int updateByPrimaryKeySelective(Auth record); int updateByPrimaryKey(Auth record); + + List selectAllAuth(); } \ No newline at end of file diff --git a/src/main/java/com/lovenav/service/UrlCateListService.java b/src/main/java/com/lovenav/service/UrlCateListService.java index ca15be5..dab045b 100644 --- a/src/main/java/com/lovenav/service/UrlCateListService.java +++ b/src/main/java/com/lovenav/service/UrlCateListService.java @@ -1,5 +1,6 @@ package com.lovenav.service; +import com.alibaba.fastjson2.JSONArray; import com.lovenav.entity.UrlCateList; import java.util.List; @@ -9,4 +10,8 @@ public interface UrlCateListService { public int selectAndInsertUrlCate(String email , String cateName , String parent); public List selectUrListByUserId(Integer userId); + + public String countCateContainUrlNumber(String userId); + + public JSONArray getUrl(String userId); } diff --git a/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java b/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java index 0219efc..a43ce10 100644 --- a/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java +++ b/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java @@ -1,16 +1,19 @@ package com.lovenav.service.serviceImpl; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.lovenav.dao.UrlCateListDao; +import com.lovenav.dao.UrlListDao; import com.lovenav.dao.UserDao; import com.lovenav.entity.UrlCateList; +import com.lovenav.entity.UrlList; import com.lovenav.entity.User; import com.lovenav.service.UrlCateListService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; +import java.util.*; @Transactional @Service("urlCateListService") @@ -20,7 +23,8 @@ public class UrlCateListServiceImpl implements UrlCateListService { @Autowired UrlCateListDao urlCateListDao; - + @Autowired + UrlListDao urlListDao; @Autowired UserDao userDao; public int selectAndInsertUrlCate(String email , String cateName , String parent ) @@ -53,4 +57,75 @@ public class UrlCateListServiceImpl implements UrlCateListService { public List selectUrListByUserId(Integer userId){ return urlCateListDao.selectUrListByUserId(userId); } + + + + public String countCateContainUrlNumber(String email){ + User user = userDao.selectByEmail(email); + int userId = user.getId(); + List urlCateLists =urlCateListDao.selectUrListByUserId(userId); + List urlLists = urlListDao.selectUrList(); + HashMap CateNumber = new HashMap<>(); + + for(UrlCateList urlCateList :urlCateLists) + { + CateNumber.put(urlCateList.getName(),0); + } + for(UrlList urlList : urlLists){ + Long id = Long.valueOf(urlList.getCateId()); + + while(id!= 0) + { + for(UrlCateList urlCateList :urlCateLists) + { + if(id == Long.valueOf(urlCateList.getId())){ + int cateNum = CateNumber.get(urlCateList.getName())+1; + CateNumber.put(urlCateList.getName(),cateNum); + id=Long.valueOf(urlCateList.getRootCateId()); + break; + } + } + } + + + + } + Iterator iterator = CateNumber.entrySet().iterator(); + while(iterator.hasNext()) { + Map.Entry entry=(Map.Entry) iterator.next(); + for(int i = 0; i urlCateLists =urlCateListDao.selectUrListByUserId(Integer.valueOf(userId)); + List urlLists = urlListDao.selectUrList(); + JSONArray jsonArray = new JSONArray(); + for(UrlCateList urlCateList : urlCateLists) + { + int parentId = urlCateList.getId(); + for(UrlList urlList : urlLists) + { + if(urlList.getCateId() == parentId) + { + JSONObject jsonObject = new JSONObject(); + jsonObject.put(urlList.getName(),urlList.getUrl()); + jsonArray.add(jsonObject); + break; + } + } + } + return jsonArray; + } } diff --git a/src/main/resources/mybatis/AuthDao.xml b/src/main/resources/mybatis/AuthDao.xml index bfb0791..328c91b 100644 --- a/src/main/resources/mybatis/AuthDao.xml +++ b/src/main/resources/mybatis/AuthDao.xml @@ -19,6 +19,14 @@ from ln_auth where id = #{id,jdbcType=INTEGER} + + + + delete from ln_auth where id = #{id,jdbcType=INTEGER}