|
@@ -3,11 +3,8 @@ package org.jeecg.modules.adweb.seo.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.xkcoding.http.util.StringUtil;
|
|
import com.xkcoding.http.util.StringUtil;
|
|
-
|
|
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.annotation.Resource;
|
|
-
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
-
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
import org.apache.poi.ss.usermodel.CellType;
|
|
import org.apache.poi.ss.usermodel.CellType;
|
|
@@ -47,21 +44,29 @@ import java.util.stream.Collectors;
|
|
@Slf4j
|
|
@Slf4j
|
|
public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
|
|
|
|
- @Autowired private IAdwebSiteService adwebSiteService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IAdwebSiteService adwebSiteService;
|
|
|
|
|
|
- @Autowired private ISysBaseAPI sysBaseAPI;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISysBaseAPI sysBaseAPI;
|
|
|
|
|
|
- @Autowired private ISiteUserPermissionService siteUserPermissionService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISiteUserPermissionService siteUserPermissionService;
|
|
|
|
|
|
- @Autowired private ISeoPlanSubscriptionService seoPlanSubscriptionService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISeoPlanSubscriptionService seoPlanSubscriptionService;
|
|
|
|
|
|
- @Autowired private ISeoKeywordsService seoKeywordsService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISeoKeywordsService seoKeywordsService;
|
|
|
|
|
|
- @Resource private SeoKeywordsMapper seoKeywordsMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private SeoKeywordsMapper seoKeywordsMapper;
|
|
|
|
|
|
- @Autowired private ISeoKeywordsSerpService seoKeywordsSerpService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISeoKeywordsSerpService seoKeywordsSerpService;
|
|
|
|
|
|
- @Resource private SubscribePlanMapper subscribePlanMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private SubscribePlanMapper subscribePlanMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<AdwebSite> getAllSites() {
|
|
public List<AdwebSite> getAllSites() {
|
|
@@ -71,7 +76,7 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
|
|
|
|
QueryWrapper<AdwebSite> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<AdwebSite> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.select("id", "name", "code");
|
|
queryWrapper.select("id", "name", "code");
|
|
- queryWrapper.eq("site_type", AdwebConstant.SITE).orderByDesc("create_time");
|
|
|
|
|
|
+ queryWrapper.orderByDesc("create_time");
|
|
queryWrapper.eq("status", AdwebConstant.STATUS).isNull("parent_group_code");
|
|
queryWrapper.eq("status", AdwebConstant.STATUS).isNull("parent_group_code");
|
|
if (sysBaseAPI.isOem()) {
|
|
if (sysBaseAPI.isOem()) {
|
|
List<String> oemGroupUids = sysBaseAPI.getOemGroupUids();
|
|
List<String> oemGroupUids = sysBaseAPI.getOemGroupUids();
|
|
@@ -86,7 +91,9 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
return siteList;
|
|
return siteList;
|
|
}
|
|
}
|
|
|
|
|
|
- /** 放入营销方案名称 */
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 放入营销方案名称
|
|
|
|
+ */
|
|
private void setPlanName(List<AdwebSite> siteList) {
|
|
private void setPlanName(List<AdwebSite> siteList) {
|
|
if (CollectionUtils.isEmpty(siteList)) {
|
|
if (CollectionUtils.isEmpty(siteList)) {
|
|
return;
|
|
return;
|
|
@@ -122,7 +129,7 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
* 获得综合统计的数据
|
|
* 获得综合统计的数据
|
|
*
|
|
*
|
|
* @param siteCode 站点code
|
|
* @param siteCode 站点code
|
|
- * @param planId 套餐表id
|
|
|
|
|
|
+ * @param planId 套餐表id
|
|
* @return 综合统计的数据
|
|
* @return 综合统计的数据
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@@ -260,8 +267,8 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
/**
|
|
/**
|
|
* 给列表中的关键字增加排名信息
|
|
* 给列表中的关键字增加排名信息
|
|
* 根据关键词类型
|
|
* 根据关键词类型
|
|
- * @param keywordList 关键词列表
|
|
|
|
*
|
|
*
|
|
|
|
+ * @param keywordList 关键词列表
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void addRankInfoByIntervalTimeByType(List<SeoKeywords> keywordList, Integer keywordType, String siteCode, String subscriptionId, List<String> dateList) throws Exception {
|
|
public void addRankInfoByIntervalTimeByType(List<SeoKeywords> keywordList, Integer keywordType, String siteCode, String subscriptionId, List<String> dateList) throws Exception {
|
|
@@ -270,14 +277,14 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
}
|
|
}
|
|
|
|
|
|
String datesStr = "";
|
|
String datesStr = "";
|
|
- if(CollectionUtils.isEmpty(dateList)){
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(dateList)) {
|
|
return;
|
|
return;
|
|
- }else{
|
|
|
|
- for(int i = 0; i < dateList.size(); i++){
|
|
|
|
- if(i == dateList.size() - 1){
|
|
|
|
- datesStr += "'" + dateList.get(i) + "'";
|
|
|
|
- }else{
|
|
|
|
- datesStr += "'" + dateList.get(i) + "'" + ",";
|
|
|
|
|
|
+ } else {
|
|
|
|
+ for (int i = 0; i < dateList.size(); i++) {
|
|
|
|
+ if (i == dateList.size() - 1) {
|
|
|
|
+ datesStr += "'" + dateList.get(i) + "'";
|
|
|
|
+ } else {
|
|
|
|
+ datesStr += "'" + dateList.get(i) + "'" + ",";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
datesStr = "(" + datesStr + ")";
|
|
datesStr = "(" + datesStr + ")";
|
|
@@ -288,19 +295,19 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
.in(SeoKeywordsSerp::getSeDate, dateList));
|
|
.in(SeoKeywordsSerp::getSeDate, dateList));
|
|
List<SeoKeywordsSerp> noRepeatSerpList = new ArrayList<>();
|
|
List<SeoKeywordsSerp> noRepeatSerpList = new ArrayList<>();
|
|
Map<String, Integer> serpMap = new HashMap<>();
|
|
Map<String, Integer> serpMap = new HashMap<>();
|
|
- if(CollectionUtils.isNotEmpty(serpList)){
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(serpList)) {
|
|
for (SeoKeywordsSerp seoKeywordsSerp : serpList) {
|
|
for (SeoKeywordsSerp seoKeywordsSerp : serpList) {
|
|
seoKeywordsSerp.setKey(seoKeywordsSerp.getKeywordsId() + "_" + seoKeywordsSerp.getSeDate());
|
|
seoKeywordsSerp.setKey(seoKeywordsSerp.getKeywordsId() + "_" + seoKeywordsSerp.getSeDate());
|
|
- if(CollectionUtils.isNotEmpty(noRepeatSerpList)){
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(noRepeatSerpList)) {
|
|
List<SeoKeywordsSerp> have = noRepeatSerpList.stream().filter(o -> o.getKey().equals(seoKeywordsSerp.getKey())).collect(Collectors.toList());
|
|
List<SeoKeywordsSerp> have = noRepeatSerpList.stream().filter(o -> o.getKey().equals(seoKeywordsSerp.getKey())).collect(Collectors.toList());
|
|
- if(CollectionUtils.isEmpty(have)){
|
|
|
|
- serpMap.put(seoKeywordsSerp.getKey(),seoKeywordsSerp.getRankAbsolute());
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(have)) {
|
|
|
|
+ serpMap.put(seoKeywordsSerp.getKey(), seoKeywordsSerp.getRankAbsolute());
|
|
noRepeatSerpList.add(seoKeywordsSerp);
|
|
noRepeatSerpList.add(seoKeywordsSerp);
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
log.info("重复的数据:" + seoKeywordsSerp.getKey());
|
|
log.info("重复的数据:" + seoKeywordsSerp.getKey());
|
|
}
|
|
}
|
|
- }else {
|
|
|
|
- serpMap.put(seoKeywordsSerp.getKey(),seoKeywordsSerp.getRankAbsolute());
|
|
|
|
|
|
+ } else {
|
|
|
|
+ serpMap.put(seoKeywordsSerp.getKey(), seoKeywordsSerp.getRankAbsolute());
|
|
noRepeatSerpList.add(seoKeywordsSerp);
|
|
noRepeatSerpList.add(seoKeywordsSerp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -313,7 +320,7 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
// 从Map中获取那天的排名信息
|
|
// 从Map中获取那天的排名信息
|
|
Integer rankAbsolute = serpMap.get(keyword.getId() + "_" + date);
|
|
Integer rankAbsolute = serpMap.get(keyword.getId() + "_" + date);
|
|
|
|
|
|
- if(rankAbsolute == null){
|
|
|
|
|
|
+ if (rankAbsolute == null) {
|
|
rankAbsolute = 0;
|
|
rankAbsolute = 0;
|
|
}
|
|
}
|
|
rankInfo.put(date, rankAbsolute + "");
|
|
rankInfo.put(date, rankAbsolute + "");
|
|
@@ -323,7 +330,7 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
keyword.setIpAddress("223.112.18.226");
|
|
keyword.setIpAddress("223.112.18.226");
|
|
|
|
|
|
keyword.setDateList(dateList);
|
|
keyword.setDateList(dateList);
|
|
- if(StringUtil.isEmpty(keyword.getSearchUrl())){
|
|
|
|
|
|
+ if (StringUtil.isEmpty(keyword.getSearchUrl())) {
|
|
keyword.setSearchUrl("https://www.google.com/");
|
|
keyword.setSearchUrl("https://www.google.com/");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -331,8 +338,9 @@ public class SeoKeywordsRankServiceImpl implements ISeoKeywordsRankService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 自适应宽度(中文支持)
|
|
* 自适应宽度(中文支持)
|
|
|
|
+ *
|
|
* @param sheet
|
|
* @param sheet
|
|
- * @param size 因为for循环从0开始,size值为 列数-1
|
|
|
|
|
|
+ * @param size 因为for循环从0开始,size值为 列数-1
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void setSizeColumn(Sheet sheet, int size) {
|
|
public void setSizeColumn(Sheet sheet, int size) {
|