|
@@ -9,11 +9,10 @@ import com.management.platform.constant.Parameter;
|
|
import com.management.platform.entity.PicContentKeywords;
|
|
import com.management.platform.entity.PicContentKeywords;
|
|
import com.management.platform.entity.Screenshot;
|
|
import com.management.platform.entity.Screenshot;
|
|
import com.management.platform.entity.TimeCalculation;
|
|
import com.management.platform.entity.TimeCalculation;
|
|
|
|
+import com.management.platform.entity.User;
|
|
import com.management.platform.entity.vo.ScreenshotVO;
|
|
import com.management.platform.entity.vo.ScreenshotVO;
|
|
|
|
+import com.management.platform.mapper.*;
|
|
import com.management.platform.mapper.PicContentKeywordsMapper;
|
|
import com.management.platform.mapper.PicContentKeywordsMapper;
|
|
-import com.management.platform.mapper.PicContentKeywordsMapper;
|
|
|
|
-import com.management.platform.mapper.ScreenshotMapper;
|
|
|
|
-import com.management.platform.mapper.TimeCalculationMapper;
|
|
|
|
import com.management.platform.service.ScreenshotService;
|
|
import com.management.platform.service.ScreenshotService;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.management.platform.util.*;
|
|
import com.management.platform.util.*;
|
|
@@ -26,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import javax.imageio.ImageIO;
|
|
import javax.imageio.ImageIO;
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
import java.awt.image.BufferedImage;
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
@@ -69,18 +69,26 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
@Resource
|
|
@Resource
|
|
private TimeCalculationMapper timeCalculationMapper;
|
|
private TimeCalculationMapper timeCalculationMapper;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private UserMapper userMapper;
|
|
|
|
+
|
|
//获取所有人最新的截图
|
|
//获取所有人最新的截图
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg getLatestScreenshotList() {
|
|
|
|
|
|
+ public HttpRespMsg getLatestScreenshotList(HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
//获取每一个人最后一张截图
|
|
//获取每一个人最后一张截图
|
|
- List<Map<String, Object>> resultMap = screenshotMapper.getLatestScreenshotList();
|
|
|
|
- for (Map<String, Object> map : resultMap) {
|
|
|
|
- //对于每一张图 将时间戳转换为时间
|
|
|
|
- map.put("time", new SimpleDateFormat("HH:mm:ss").format(map.get("indate")));
|
|
|
|
- map.remove("indate");
|
|
|
|
|
|
+ try {
|
|
|
|
+ List<Map<String, Object>> resultMap = screenshotMapper
|
|
|
|
+ .getLatestScreenshotList(userMapper.selectById(request.getHeader("Token")).getCompanyId());
|
|
|
|
+ for (Map<String, Object> map : resultMap) {
|
|
|
|
+ //对于每一张图 将时间戳转换为时间
|
|
|
|
+ map.put("time", new SimpleDateFormat("HH:mm:ss").format(map.get("indate")));
|
|
|
|
+ map.remove("indate");
|
|
|
|
+ }
|
|
|
|
+ httpRespMsg.data = resultMap;
|
|
|
|
+ } catch (NullPointerException e) {
|
|
|
|
+ httpRespMsg.setError("验证失败");
|
|
}
|
|
}
|
|
- httpRespMsg.data = resultMap;
|
|
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -213,8 +221,8 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
if (chWNum < 200) {
|
|
if (chWNum < 200) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- int percent = chWNum*100/total;
|
|
|
|
- log.info("中文比例:"+percent);
|
|
|
|
|
|
+ int percent = chWNum * 100 / total;
|
|
|
|
+ log.info("中文比例:" + percent);
|
|
if (percent < 60) {
|
|
if (percent < 60) {
|
|
//英文太多,不是小说; 不考虑英文小说。
|
|
//英文太多,不是小说; 不考虑英文小说。
|
|
return false;
|
|
return false;
|
|
@@ -235,7 +243,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
}
|
|
}
|
|
}
|
|
}
|
|
int totalKNum = 0;
|
|
int totalKNum = 0;
|
|
- for (String k: textContents) {
|
|
|
|
|
|
+ for (String k : textContents) {
|
|
int kNum = 0;
|
|
int kNum = 0;
|
|
for (String nk : nKeyWordsList) {
|
|
for (String nk : nKeyWordsList) {
|
|
if (k.contains(nk)) {
|
|
if (k.contains(nk)) {
|
|
@@ -248,7 +256,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
totalKNum += 1;
|
|
totalKNum += 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- log.info("文章小说匹配得分为=="+totalKNum);
|
|
|
|
|
|
+ log.info("文章小说匹配得分为==" + totalKNum);
|
|
if (totalKNum >= 5) {
|
|
if (totalKNum >= 5) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
@@ -304,7 +312,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
int maxCnt = 0;
|
|
int maxCnt = 0;
|
|
int key = 0;
|
|
int key = 0;
|
|
Set<Map.Entry<Integer, Integer>> entry2 = colorCntMap.entrySet();
|
|
Set<Map.Entry<Integer, Integer>> entry2 = colorCntMap.entrySet();
|
|
- for(Map.Entry<Integer, Integer> temp : entry2){
|
|
|
|
|
|
+ for (Map.Entry<Integer, Integer> temp : entry2) {
|
|
// System.out.println("sortedMap:"+temp.getKey()+" 值"+temp.getValue());
|
|
// System.out.println("sortedMap:"+temp.getKey()+" 值"+temp.getValue());
|
|
if (temp.getValue() > maxCnt) {
|
|
if (temp.getValue() > maxCnt) {
|
|
maxCnt = temp.getValue();
|
|
maxCnt = temp.getValue();
|
|
@@ -323,7 +331,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
rgb[0] = (key & 0xff0000) >> 16;
|
|
rgb[0] = (key & 0xff0000) >> 16;
|
|
rgb[1] = (key & 0xff00) >> 8;
|
|
rgb[1] = (key & 0xff00) >> 8;
|
|
rgb[2] = (key & 0xff);
|
|
rgb[2] = (key & 0xff);
|
|
- System.out.println("色值为: " + rgb[0] + ", " + rgb[1]+", "+rgb[2]);
|
|
|
|
|
|
+ System.out.println("色值为: " + rgb[0] + ", " + rgb[1] + ", " + rgb[2]);
|
|
//计算比例, 应该不低于50%
|
|
//计算比例, 应该不低于50%
|
|
int colorPercent = maxCnt * 100 / totalPixl;
|
|
int colorPercent = maxCnt * 100 / totalPixl;
|
|
if (colorPercent < 50) {
|
|
if (colorPercent < 50) {
|
|
@@ -338,11 +346,11 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
}
|
|
}
|
|
System.out.println("总底色比例=="+colorPercent);
|
|
System.out.println("总底色比例=="+colorPercent);
|
|
//计算底色是否是连续分布的
|
|
//计算底色是否是连续分布的
|
|
- int windowSize=50;
|
|
|
|
|
|
+ int windowSize = 50;
|
|
int pureColorBlockCnt = 0;
|
|
int pureColorBlockCnt = 0;
|
|
int totalBlockCnt = 0;
|
|
int totalBlockCnt = 0;
|
|
- for (int i = minx; i < width - windowSize; i+=windowSize) {
|
|
|
|
- for (int j = miny; j < height - windowSize; j+=windowSize) {
|
|
|
|
|
|
+ for (int i = minx; i < width - windowSize; i += windowSize) {
|
|
|
|
+ for (int j = miny; j < height - windowSize; j += windowSize) {
|
|
totalBlockCnt++;
|
|
totalBlockCnt++;
|
|
BufferedImage rect = img.getSubimage(i, j, windowSize, windowSize);
|
|
BufferedImage rect = img.getSubimage(i, j, windowSize, windowSize);
|
|
if (isPureColor(rect, key)) {
|
|
if (isPureColor(rect, key)) {
|
|
@@ -350,9 +358,9 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- log.info("pureColorBlockCnt==="+pureColorBlockCnt);
|
|
|
|
|
|
+ log.info("pureColorBlockCnt===" + pureColorBlockCnt);
|
|
int pureColorBlackPercent = pureColorBlockCnt * 100 / totalBlockCnt;
|
|
int pureColorBlackPercent = pureColorBlockCnt * 100 / totalBlockCnt;
|
|
- log.info("pureColorBlackPercent==="+pureColorBlackPercent);
|
|
|
|
|
|
+ log.info("pureColorBlackPercent===" + pureColorBlackPercent);
|
|
if (colorPercent < 50 && pureColorBlackPercent < 30) {
|
|
if (colorPercent < 50 && pureColorBlackPercent < 30) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
@@ -367,7 +375,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
int with = img.getWidth();
|
|
int with = img.getWidth();
|
|
int height = img.getHeight();
|
|
int height = img.getHeight();
|
|
boolean hasDifferent = false;
|
|
boolean hasDifferent = false;
|
|
- for (int i=0;i<with; i++) {
|
|
|
|
|
|
+ for (int i = 0; i < with; i++) {
|
|
for (int y = 0; y < height; y++) {
|
|
for (int y = 0; y < height; y++) {
|
|
int pixel = img.getRGB(i, y); // 下面三行代码将一个数字转换为RGB数字
|
|
int pixel = img.getRGB(i, y); // 下面三行代码将一个数字转换为RGB数字
|
|
if (pixel != colorPixel) {
|
|
if (pixel != colorPixel) {
|