| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- package com.ruoyi.web.controller.fg;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.alibaba.fastjson2.JSON;
- import com.ruoyi.common.annotation.Log;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.enums.BusinessType;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.common.utils.fg.FgUrlConstant;
- import com.ruoyi.common.utils.http.HttpUtils;
- import com.ruoyi.common.utils.http.OkHttpFGUtils;
- import com.ruoyi.common.utils.poi.ExcelUtil;
- import com.ruoyi.system.domain.fg.Overview;
- import com.ruoyi.system.domain.fg.SalesTrendData;
- import com.ruoyi.system.domain.fg.School;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import javax.servlet.http.HttpServletResponse;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- @Api(value = "fgController", tags = "飞瓜数据抓取接口")
- @Controller
- @RequestMapping(value = "/fg")
- public class FgController {
- /**
- * 获取数据
- * @param response
- */
- @ApiOperation(value = "导出数据")
- @PostMapping("/exportOverviewData")
- @ResponseBody
- public void exportOverviewData(HttpServletResponse response) {
- List<Overview> resultList = new ArrayList<>();
- /**
- * 8074429374 小陈茶事
- * 99666314082 学茶研习社
- * 50792923107 茶小曼
- * 69965719530 小茶婆婆
- * 4367697845697440 晨曦语茶
- * 2862722089489764 伍刻茶馆
- * 2383382425373133 茶姐Molly
- * 3034272730720768 茶诵君
- * 3109849681105640 八马茶叶官方旗舰店
- * 44432286818743 柒月茶坊
- */
- String[] strings = {"8074429374","99666314082","50792923107","69965719530","4367697845697440",
- "2862722089489764","2383382425373133","3034272730720768","3109849681105640","44432286818743","109581763451","2444960999676388"};
- String[] names = {"小陈茶事","学茶研习社","茶小曼","小茶婆婆","晨曦语茶",
- "伍刻茶馆","茶姐Molly","茶诵君","八马茶叶官方旗舰店","柒月茶坊","茶二代","茶三姐"};
- for (int i = 0; i < strings.length; i++) {
- Overview po = new Overview();
- po.setUuid(strings[i]);
- po.setName(names[i]);
- resultList.add(po);
- }
- // todo 直播数据
- for (Overview overview: resultList) {
- String liveResult = HttpUtils.sendGet("http://120.27.232.118/api/v3/blogger/overview/live/stat","uid="+overview.getUuid()+"&fromDateCode=20221206&toDateCode=20231130");
- Map liveMaps = (Map) JSON.parse(liveResult);
- for(Object map : liveMaps.entrySet()){
- if(((Map.Entry)map).getKey().toString().equals("Data")){
- Map poMap = (Map) JSON.parse(((Map.Entry)map).getValue().toString());
- overview.setAvgDurationStr(poMap.get("AvgDurationStr").toString());
- overview.setAvgLiveSaleCountStr(poMap.get("AvgLiveSaleCountStr").toString());
- overview.setAvgLiveSaleGmvStr(poMap.get("AvgLiveSaleGmvStr").toString());
- overview.setAvgLiveTotalUserCountStr(poMap.get("AvgLiveTotalUserCountStr").toString());
- overview.setAvgLiveUserCountStr(poMap.get("AvgLiveUserCountStr").toString());
- overview.setAvgUserPriceStr(poMap.get("AvgUserPriceStr").toString());
- overview.setCommerceLiveCountStr(poMap.get("CommerceLiveCountStr").toString());
- overview.setLiveCountStr(poMap.get("LiveCountStr").toString());
- overview.setLiveSaleCountStr(poMap.get("LiveSaleCountStr").toString());
- overview.setLiveSaleGmvStr(poMap.get("LiveSaleGmvStr").toString());
- overview.setMaxLiveTotalUserCountStr(poMap.get("MaxLiveTotalUserCountStr").toString());
- overview.setUVStr(poMap.get("UVStr").toString());
- }
- }
- String awemeResult = HttpUtils.sendGet("http://120.27.232.118/api/v3/blogger/overview/aweme/stat","uid="+overview.getUuid()+"&fromDateCode=20221206&toDateCode=20231130");
- Map awemeMaps = (Map) JSON.parse(awemeResult);
- for(Object map : awemeMaps.entrySet()){
- if(((Map.Entry)map).getKey().toString().equals("Data")){
- Map poMap = (Map) JSON.parse(((Map.Entry)map).getValue().toString());
- overview.setAvgAwemeSaleCountStr(poMap.get("AvgAwemeSaleCountStr").toString());
- overview.setAvgAwemeSaleGmvStr(poMap.get("AvgAwemeSaleGmvStr").toString());
- overview.setAvgCommentCountStr(poMap.get("AvgCommentCountStr").toString());
- overview.setAvgLikeCommentRateStr(poMap.get("AvgLikeCommentRateStr").toString());
- overview.setAvgLikeCountStr(poMap.get("AvgLikeCountStr").toString());
- overview.setAwemeCountStr(poMap.get("AwemeCountStr").toString());
- overview.setAwemeSaleCountStr(poMap.get("AwemeSaleCountStr").toString());
- overview.setAwemeSaleGmvStr(poMap.get("AwemeSaleGmvStr").toString());
- overview.setCommerceAwemeCountStr(poMap.get("CommerceAwemeCountStr").toString());
- overview.setMaxCommentCountStr(poMap.get("MaxCommentCountStr").toString());
- overview.setMaxLikeCommentRateStr(poMap.get("MaxLikeCommentRateStr").toString());
- overview.setMaxLikeCountStr(poMap.get("MaxLikeCountStr").toString());
- }
- }
- String recommendResult = HttpUtils.sendGet("http://120.27.232.118/api/v3/blogger/overview/recommend/stat","uid="+overview.getUuid()+"&fromDateCode=20221206&toDateCode=20231130");
- Map recommendMaps = (Map) JSON.parse(recommendResult);
- for(Object map : recommendMaps.entrySet()){
- if(((Map.Entry)map).getKey().toString().equals("Data")){
- Map poMap = (Map) JSON.parse(((Map.Entry)map).getValue().toString());
- overview.setBloggerPriceStr(poMap.get("BloggerPriceStr").toString());
- overview.setBrandCountStr(poMap.get("BrandCountStr").toString());
- overview.setCPEStr(poMap.get("CPEStr").toString());
- overview.setCateCountStr(poMap.get("CateCountStr").toString());
- overview.setGrassVideoCountStr(poMap.get("GrassVideoCountStr").toString());
- overview.setMainCateNameStr(poMap.get("MainCateNameStr").toString());
- overview.setMainCateRatioStr(poMap.get("MainCateRatioStr").toString());
- }
- }
- }
- ExcelUtil<Overview> util = new ExcelUtil<Overview>(Overview.class);
- util.exportExcel(response, resultList, "数据");
- }
- /**
- * 获取数据
- * @param response
- */
- @ApiOperation(value = "导出茶90天直播销售额与视频销售额")
- @PostMapping("/exportSalesTrendData")
- @ResponseBody
- public void exportSalesTrendData(HttpServletResponse response) {
- String URL = "http://120.27.232.118/api/v1/goodsDataOverView/salesTrendData";
- List<SalesTrendData> resultList = new ArrayList<>();
- String result = HttpUtils.sendGet(URL,"periodType=90&fromDateCode=20230829&toDateCode=20231126&cateId=20004");
- Map maps = (Map) JSON.parse(result);
- for(Object map : maps.entrySet()){
- if(((Map.Entry)map).getKey().toString().equals("Data")){
- JSONArray dataJArray = JSONObject.parseArray(((Map.Entry)map).getValue().toString());
- List<Object> dataList = dataJArray;
- for (Object po:
- dataList) {
- Map poMap = (Map) JSON.parse(po.toString());
- poMap.get("DateCode").toString();
- SalesTrendData salesTrendData = new SalesTrendData();
- salesTrendData.setAwemeSalesCount(poMap.get("AwemeSalesCount").toString());
- salesTrendData.setAwemeSalesCountStr(poMap.get("AwemeSalesCountStr").toString());
- salesTrendData.setAwemeSaleCountRatio(poMap.get("AwemeSaleCountRatio").toString());
- salesTrendData.setAwemeSales(poMap.get("AwemeSales").toString());
- salesTrendData.setAwemeSalesStr(poMap.get("AwemeSalesStr").toString());
- salesTrendData.setAwemeSalesRatio(poMap.get("AwemeSalesRatio").toString());
- salesTrendData.setDateCode(poMap.get("DateCode").toString());
- salesTrendData.setLiveSalesCount(poMap.get("LiveSalesCount").toString());
- salesTrendData.setLiveSalesCountStr(poMap.get("LiveSalesCountStr").toString());
- salesTrendData.setLiveSaleCountRatio(poMap.get("LiveSaleCountRatio").toString());
- salesTrendData.setLiveSales(poMap.get("LiveSales").toString());
- salesTrendData.setLiveSalesStr(poMap.get("LiveSalesStr").toString());
- salesTrendData.setLiveSalesRatio(poMap.get("LiveSalesRatio").toString());
- salesTrendData.setOtherSalesCount(poMap.get("OtherSalesCount").toString());
- salesTrendData.setOtherSalesCountStr(poMap.get("OtherSalesCountStr").toString());
- salesTrendData.setOtherSaleCountRatio(poMap.get("OtherSaleCountRatio").toString());
- salesTrendData.setOtherSales(poMap.get("OtherSales").toString());
- salesTrendData.setOtherSalesStr(poMap.get("OtherSalesStr").toString());
- salesTrendData.setOtherSalesRatio(poMap.get("OtherSalesRatio").toString());
- salesTrendData.setPV(poMap.get("PV").toString());
- salesTrendData.setPVStr(poMap.get("PVStr").toString());
- salesTrendData.setStatDate(poMap.get("StatDate").toString());
- salesTrendData.setSumSalesCount(poMap.get("SumSalesCount").toString());
- salesTrendData.setSumSalesCountStr(poMap.get("SumSalesCountStr").toString());
- salesTrendData.setTotalSales(poMap.get("TotalSales").toString());
- salesTrendData.setTotalSalesStr(poMap.get("TotalSalesStr").toString());
- resultList.add(salesTrendData);
- }
- }
- }
- ExcelUtil<SalesTrendData> util = new ExcelUtil<SalesTrendData>(SalesTrendData.class);
- util.exportExcel(response, resultList, "茶90天直播销售额与视频销售额");
- }
- /**
- * 导出crm附件列表
- */
- @ApiOperation("")
- @Log(title = "导出中国大学专业排名", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, String year) throws InterruptedException {
- String URL = "https://www.shanghairanking.cn/api/pub/v1/bcmr/rank";
- List<School> resultList = new ArrayList<>();
- String result = HttpUtils.sendGet(URL,"year=2023&majorCode=010101");
- Map<String, List<Object>> map = OkHttpFGUtils.getSchoolMap(result);
- for (Object majors: map.get("majorsList")) {
- Map majorsMap = (Map) JSON.parse(majors.toString());
- JSONArray childrens = JSONObject.parseArray(majorsMap.get("children").toString());
- List<Object> childrenList = childrens;
- if(StringUtils.isNotEmpty(childrenList)){
- for (Object children: childrenList) {
- Map childrenMap = (Map) JSON.parse(children.toString());
- JSONArray childrens1 = JSONObject.parseArray(childrenMap.get("children").toString());
- List<Object> children1List = childrens1;
- if(StringUtils.isNotEmpty(children1List)) {
- for (Object children1 : children1List) {
- Map children1Map = (Map) JSON.parse(children1.toString());
- String rankingsResult = HttpUtils.sendGet(URL,"year=2023&majorCode="+children1Map.get("code").toString());
- Thread.sleep(10000); // 暂停10秒
- Map<String, List<Object>> univMap = OkHttpFGUtils.getSchoolMap(rankingsResult);
- for (Object rankings:
- univMap.get("rankingsList")) {
- Map rankingsMap = (Map) JSON.parse(rankings.toString());
- if(rankingsMap.get("grade").toString().equals("A+")||rankingsMap.get("grade").toString().equals("A")){
- School school = new School();
- school.setlName(majorsMap.get("name").toString());
- school.setlCode(majorsMap.get("code").toString());
- school.setpName(childrenMap.get("name").toString());
- school.setpCode(childrenMap.get("code").toString());
- school.setzName(children1Map.get("name").toString());
- school.setzCode(children1Map.get("code").toString());
- school.setGrade(rankingsMap.get("grade").toString());
- school.setUnivNameCn(rankingsMap.get("univNameCn").toString());
- school.setScore(rankingsMap.get("score").toString());
- school.setProvince(rankingsMap.get("province").toString());
- school.setCity(rankingsMap.get("city").toString());
- school.setUnivLikeCount(rankingsMap.get("univLikeCount").toString());
- school.setUnivTags(rankingsMap.get("univTags").toString());
- school.setRanking(rankingsMap.get("ranking").toString());
- Map indGradesMap = (Map) JSON.parse(rankingsMap.get("indGrades").toString());
- if (!indGradesMap.isEmpty()){
- school.setNameCn12(indGradesMap.get(12)!=null?indGradesMap.get(12).toString():"/");
- school.setNameCn13(indGradesMap.get(13)!=null?indGradesMap.get(13).toString():"/");
- school.setNameCn14(indGradesMap.get(14)!=null?indGradesMap.get(14).toString():"/");
- school.setNameCn15(indGradesMap.get(15)!=null?indGradesMap.get(15).toString():"/");
- school.setNameCn16(indGradesMap.get(16)!=null?indGradesMap.get(16).toString():"/");
- }
- resultList.add(school);
- }
- }
- }
- }
- }
- }
- }
- ExcelUtil<School> util = new ExcelUtil<School>(School.class);
- util.exportExcel(response, resultList, "学校附件数据统计");
- }
- }
|