diff --git a/cloud/RibbonConsume/pom.xml b/cloud/RibbonConsume/pom.xml
new file mode 100644
index 0000000..4dbe2de
--- /dev/null
+++ b/cloud/RibbonConsume/pom.xml
@@ -0,0 +1,40 @@
+
+
+
+ cloud
+ com.sincere
+ 1.0.0
+
+ 4.0.0
+
+ RibbonConsume
+
+
+ 2.1.3.RELEASE
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-ribbon
+ ${ribbon}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+
+
+ RibbonConsume
+
+
+
+
\ No newline at end of file
diff --git a/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/RibbonApplication.java b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/RibbonApplication.java
new file mode 100644
index 0000000..89be456
--- /dev/null
+++ b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/RibbonApplication.java
@@ -0,0 +1,27 @@
+package com.sincere.ribbon;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.client.RestTemplate;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+public class RibbonApplication {
+
+
+ @Bean
+ @LoadBalanced
+ RestTemplate restTemplate(){
+ return new RestTemplate();
+ }
+
+ public static void main(String[] args) {
+ SpringApplication.run(RibbonApplication.class,args);
+ }
+
+
+
+}
diff --git a/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/control/FileRibbonControl.java b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/control/FileRibbonControl.java
new file mode 100644
index 0000000..d129fea
--- /dev/null
+++ b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/control/FileRibbonControl.java
@@ -0,0 +1,53 @@
+package com.sincere.ribbon.control;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/file/*")
+public class FileRibbonControl {
+
+ Logger logger = LoggerFactory.getLogger(FileRibbonControl.class);
+
+ @Autowired
+ RestTemplate restTemplate;
+
+ @RequestMapping(value = "deleteFile/{fileName}", method = RequestMethod.GET)
+ public boolean deleteFile(@PathVariable String fileName, HttpServletRequest req) {
+
+ HttpServletRequest request = req;
+ //获取header信息
+ HttpHeaders requestHeaders = new HttpHeaders();
+// Enumeration headerNames = request.getHeaderNames();
+// while (headerNames.hasMoreElements()) {
+// String key = (String) headerNames.nextElement();
+// String value = request.getHeader(key);
+// requestHeaders.add(key, value);
+// }
+ requestHeaders.add("ossPath","ceshi");
+ Map params = new HashMap<>();
+ //获取parameter信息
+ if (params == null) {
+ params = request.getParameterMap();
+ }
+
+ HttpEntity requestEntity = new HttpEntity(null, requestHeaders);
+ ResponseEntity rss = restTemplate.exchange("http://file-center/file/deleteFile/"+fileName, HttpMethod.DELETE, requestEntity, String.class, params);
+ logger.error("删除文件:" + rss.getStatusCodeValue());
+ return true;
+
+ }
+
+}
diff --git a/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/control/RibbonConsumeControl.java b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/control/RibbonConsumeControl.java
new file mode 100644
index 0000000..69ff6d4
--- /dev/null
+++ b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/control/RibbonConsumeControl.java
@@ -0,0 +1,60 @@
+package com.sincere.ribbon.control;
+
+import com.sincere.ribbon.model.Login;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/ribbon/*")
+public class RibbonConsumeControl {
+ private static final Logger LOG = LoggerFactory.getLogger(RibbonConsumeControl.class);
+
+ @Autowired
+ RestTemplate restTemplate;
+
+ @Autowired
+ private DiscoveryClient discoveryClient;
+
+ @RequestMapping(value = "login",method = RequestMethod.GET )
+ public String login(@RequestParam("account")String account,@RequestParam("password")String password,@RequestParam("userType")String userType){
+ LOG.error("登录中:"+account+password+userType);
+ HttpHeaders headers = new HttpHeaders();
+
+ Login login = new Login();
+ login.setAccount(account);
+ login.setPassword(password);
+ login.setUserType(userType);
+
+ String result = restTemplate.postForEntity("http://authserver/login",login,String.class).getBody();
+ LOG.error("登录结果:"+result);
+ return result;
+
+ }
+
+ @GetMapping("serviceurl")
+ public Map> serviceUrl() {
+ Map> msl = new HashMap<>();
+ List services = discoveryClient.getServices();
+ for (String service : services) {
+ List sis = discoveryClient.getInstances(service);
+ msl.put(service, sis);
+ }
+ return msl;
+ }
+
+
+}
diff --git a/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/model/Login.java b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/model/Login.java
new file mode 100644
index 0000000..8c87f9a
--- /dev/null
+++ b/cloud/RibbonConsume/src/main/java/com/sincere/ribbon/model/Login.java
@@ -0,0 +1,44 @@
+package com.sincere.ribbon.model;
+
+public class Login {
+
+ private String account;
+
+ private String password;
+
+ private String userType;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getUserType() {
+ return userType;
+ }
+
+ public void setUserType(String userType) {
+ this.userType = userType;
+ }
+
+ @Override
+ public String toString() {
+ return "Login{" +
+ "account='" + account + '\'' +
+ ", password='" + password + '\'' +
+ ", userType='" + userType + '\'' +
+ '}';
+ }
+}
+
diff --git a/cloud/RibbonConsume/src/main/resources/application.yml b/cloud/RibbonConsume/src/main/resources/application.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/cloud/RibbonConsume/src/main/resources/application.yml
diff --git a/cloud/RibbonConsume/src/main/resources/bootstrap.yml b/cloud/RibbonConsume/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..5ddb423
--- /dev/null
+++ b/cloud/RibbonConsume/src/main/resources/bootstrap.yml
@@ -0,0 +1,30 @@
+#端口
+server:
+ port: 8091 #固定端口
+# port: ${randomServerPort.value[5000,5005]} #随机端口
+
+#服务名称
+spring:
+ application:
+ name: ribbon-consume
+
+#eureka client配置
+eureka:
+ client:
+ serviceUrl:
+# defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
+ defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
+ #http://134.224.249.33:1111/eureka/ 正式库
+ #http://134.224.249.33:1111/eureka/ 测试库
+ #http://127.0.0.1:8761/eureka,http://127.0.0.1:8762/eureka
+ registry-fetch-interval-seconds: 5
+ instance-info-replication-interval-seconds: 10
+ instance:
+# prefer-ip-address: true
+ instance-id: ${spring.application.name}
+# instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}} #固定端口
+# instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${randomServerPort.value[5000,5005]}} #随机端口
+ lease-renewal-interval-in-seconds: 10 #每隔几秒告诉eureka服务器我还存活,用于心跳检测
+ lease-expiration-duration-in-seconds: 10 #如果心跳检测一直没有发送,10秒后会从eureka服务器中将此服务剔除
+ status-page-url: http://${spring.cloud.client.ip-address}:${server.port}/doc.html # ${server.port}为该服务的端口号
+# status-page-url: http://${spring.cloud.client.ip-address}:${randomServerPort.value[5000,5005]}/document.html # ${server.port}为该服务的端口号
\ No newline at end of file
diff --git a/cloud/autho/src/main/java/com/sincere/autho/control/LoginController.java b/cloud/autho/src/main/java/com/sincere/autho/control/LoginController.java
index c2a6174..d6b6493 100644
--- a/cloud/autho/src/main/java/com/sincere/autho/control/LoginController.java
+++ b/cloud/autho/src/main/java/com/sincere/autho/control/LoginController.java
@@ -21,6 +21,7 @@ public class LoginController {
@RequestMapping(value = "/login" , method = RequestMethod.POST)
public BaseDto login(@RequestBody LoginReqDto loginReqDto){
+ System.out.println("登录接口");
BaseDto result = new BaseDto<>() ;
String userId = loginService.login(loginReqDto);
if(StringUtils.isNotBlank(userId)){
diff --git a/cloud/autho/src/main/resources/application.yaml b/cloud/autho/src/main/resources/application.yaml
index 3ed66f4..6f2c3f6 100644
--- a/cloud/autho/src/main/resources/application.yaml
+++ b/cloud/autho/src/main/resources/application.yaml
@@ -25,4 +25,5 @@ eureka:
client:
service-url:
defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
+# defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
diff --git a/cloud/fIle-center/pom.xml b/cloud/fIle-center/pom.xml
index 8b2954d..d2976c9 100644
--- a/cloud/fIle-center/pom.xml
+++ b/cloud/fIle-center/pom.xml
@@ -58,6 +58,17 @@
+
+ true
+ ZIP
+
+
+
+ nothing
+ nothing
+
+
+
diff --git a/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java b/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java
index 5348595..8ce493f 100644
--- a/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java
+++ b/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java
@@ -37,6 +37,9 @@ public class FileControl {
public boolean deleteFile(@PathVariable String fileName,HttpServletRequest request){
String ossPath = request.getHeader("ossPath");//oss的二级目录
fileService.delete(fileName,ossPath);
+
+ System.out.println("fileName:"+fileName+"----ossPath:"+ossPath);
+
return true;
}
}
diff --git a/cloud/fIle-center/src/main/resources/bootstrap.yml b/cloud/fIle-center/src/main/resources/bootstrap.yml
index ea4d989..6477699 100644
--- a/cloud/fIle-center/src/main/resources/bootstrap.yml
+++ b/cloud/fIle-center/src/main/resources/bootstrap.yml
@@ -33,11 +33,12 @@ eureka:
registry-fetch-interval-seconds: 5
instance-info-replication-interval-seconds: 10
instance:
- prefer-ip-address: true
+# prefer-ip-address: false
instance-id: ${spring.application.name}
# instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}} #固定端口
# instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${randomServerPort.value[5000,5005]}} #随机端口
lease-renewal-interval-in-seconds: 10 #每隔几秒告诉eureka服务器我还存活,用于心跳检测
lease-expiration-duration-in-seconds: 10 #如果心跳检测一直没有发送,10秒后会从eureka服务器中将此服务剔除
- status-page-url: http://${spring.cloud.client.ip-address}:${server.port}/doc.html # ${server.port}为该服务的端口号
-# status-page-url: http://${spring.cloud.client.ip-address}:${randomServerPort.value[5000,5005]}/document.html # ${server.port}为该服务的端口号
\ No newline at end of file
+# status-page-url: http://${spring.cloud.client.ip-address}:${server.port}/doc.html # ${server.port}为该服务的端口号
+ hostname: 121.40.30.78
+# status-page-url: http://${spring.cloud.client.ip-address}:${randomServerPort.value[5000,5005]}/document.html # ${server.port}为该服务的端口号
\ No newline at end of file
diff --git a/cloud/getaway/pom.xml b/cloud/getaway/pom.xml
index 3b95e2b..9bf6dba 100644
--- a/cloud/getaway/pom.xml
+++ b/cloud/getaway/pom.xml
@@ -58,6 +58,17 @@
+
+ true
+ ZIP
+
+
+
+ nothing
+ nothing
+
+
+
${project.artifactId}
diff --git a/cloud/getaway/src/main/java/com/sincere/getaway/client/config/CorsConfig.java b/cloud/getaway/src/main/java/com/sincere/getaway/client/config/CorsConfig.java
index d012500..4223023 100644
--- a/cloud/getaway/src/main/java/com/sincere/getaway/client/config/CorsConfig.java
+++ b/cloud/getaway/src/main/java/com/sincere/getaway/client/config/CorsConfig.java
@@ -17,6 +17,7 @@
//import org.springframework.web.server.ServerWebExchange;
//import org.springframework.web.server.WebFilter;
//import org.springframework.web.server.WebFilterChain;
+//
//import reactor.core.publisher.Mono;
//
///**
@@ -37,7 +38,7 @@
//
// @Bean
// public RouteDefinitionLocator discoveryClientRouteDefinitionLocator(DiscoveryClient discoveryClient,
-// DiscoveryLocatorProperties properties) {
+// DiscoveryLocatorProperties properties) {
// return new DiscoveryClientRouteDefinitionLocator(discoveryClient, properties);
// }
//
diff --git a/cloud/getaway/src/main/resources/application.yml b/cloud/getaway/src/main/resources/application.yml
index f77e571..a8d30c8 100644
--- a/cloud/getaway/src/main/resources/application.yml
+++ b/cloud/getaway/src/main/resources/application.yml
@@ -43,12 +43,19 @@ spring:
- StripPrefix=1
- id: authserver
uri: http://121.40.30.78:9005
+# uri: lb://authserver
predicates:
- Path=/authserver/**
filters:
- StripPrefix=1
- default-filters:
- - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE
+ - id: NewSmartCampus
+ uri: http://114.55.30.100:1111
+ predicates:
+ - Path=/NewSmartCampus/**
+ filters:
+ - StripPrefix=1
+# default-filters:
+# - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE
# discovery:
# locator:
# lowerCaseServiceId: true
@@ -70,4 +77,4 @@ ribbon:
url:
- ignored: /SmartCampusWebApi/**,/authserver/**
\ No newline at end of file
+ ignored: /SmartCampusWebApi/**,/authserver/**,/NewSmartCampus/**
\ No newline at end of file
diff --git a/cloud/haikangface/pom.xml b/cloud/haikangface/pom.xml
index 8d21b6b..8545d3f 100644
--- a/cloud/haikangface/pom.xml
+++ b/cloud/haikangface/pom.xml
@@ -97,11 +97,11 @@
compile
-
-
-
-
-
+
+ com.baidu.aip
+ java-sdk
+ 4.10.0
+
com.sun.image.jce
jce
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
index 9023699..8de1466 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
@@ -326,7 +326,7 @@ public class CMSServer implements ApplicationRunner {
pFilePath.write(0, strFilePath.getBytes(), 0, strFilePath.getBytes().length);
if (isZhuaPai) {
- MqtUtils.getInstance().sendMsg("http://campus.myjxt.com//face17e5/School16/Student/" + pFileName);
+// MqtUtils.getInstance().sendMsg("http://campus.myjxt.com//face17e5/School16/Student/" + pFileName);
}
return true;
@@ -509,7 +509,7 @@ public class CMSServer implements ApplicationRunner {
int err = hCEhomeSS.NET_ESS_GetLastError();
System.out.println("NET_ESS_ClientDoUpload失败,错误号:" + err);
} else {
- url = "http://" + ip + ":" + 8081 + new String(szUrl).trim();
+ url = "http://120.26.116.253:" + 8081 + new String(szUrl).trim();
// System.err.println("NET_ESS_ClientDoUpload成功!:" + url);
}
hCEhomeSS.NET_ESS_DestroyClient(client);//释放资源
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/admindao/ZuoyeAdminDao.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/admindao/ZuoyeAdminDao.java
index f3923ae..1bfa2dd 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/admindao/ZuoyeAdminDao.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/admindao/ZuoyeAdminDao.java
@@ -11,13 +11,13 @@ import java.util.List;
public interface ZuoyeAdminDao {
- @Select("select Id from ZY_YYChapter where Name like #{chapter}")
+ @Select("select Top(1) Id from ZY_YYChapter where Name like #{chapter}")
String getChapterId(@Param("chapter") String chapter);
- @Select("select Id from ZY_YYKnowledge where name like #{knowledge}")
+ @Select("select Top(1) Id from ZY_YYKnowledge where name like #{knowledge}")
String getKnowledgeId(@Param("knowledge") String knowledge);
- @Select("select Id from ZY_YYGrade where name like #{gradeId}")
+ @Select("select Top(1) Id from ZY_YYGrade where name like #{gradeId}")
String getGradeId(@Param("gradeId") String gradeId);
@Insert("insert into ZY_YYQuestion (Question, Qtype, Answer, CorrectAnswer, Analysis, State, Intime, StemId, ExamineFlag, SubjectId, SuggestionTime, DifficulteId, ChapterId, GradeId, SourceId, QuestionSource, AutomaticCorrection)" +
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
index cd06325..e86da9a 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
@@ -39,7 +39,7 @@ public class SendUserAsync {
// @Async("taskExecutor")
public void sendStuToHaiKang(String srcFile, String picUrl, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, int isPiliang) {
- System.out.println("下发时间设置:"+validTimeEnabled);
+// System.out.println("下发时间设置:"+validTimeEnabled);
if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils();
//1、检测图片是否合格
boolean check = true;
@@ -68,7 +68,6 @@ public class SendUserAsync {
}
-
/**
* 调用传图片接口
* @param filePath
@@ -80,13 +79,12 @@ public class SendUserAsync {
* @param validTimeEnabled
* @param userType
*/
- @Async("taskExecutor")
+// @Async("taskExecutor")
public void uploadImgs(String filePath,String card,String name,String deviceId,String startTime,String endTime,int validTimeEnabled,String userType){
-
HttpUtil.uploadImgs(filePath,card,name,deviceId,startTime,endTime,validTimeEnabled,userType);
}
- @Async("taskExecutor")
+// @Async("taskExecutor")
public void deleteCard(String deviceId, String card){
HttpUtil.deleteCard(deviceId,card);
}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/Answer.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/Answer.java
new file mode 100644
index 0000000..bdd506c
--- /dev/null
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/Answer.java
@@ -0,0 +1,37 @@
+package com.sincere.haikangface.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class Answer {
+
+ @ApiModelProperty(value = "题目id")
+ private String queId;
+
+ @ApiModelProperty(value = "答案图片链接")
+ private String ansUrl;
+
+ public String getQueId() {
+ return queId;
+ }
+
+ public void setQueId(String queId) {
+ this.queId = queId;
+ }
+
+ public String getAnsUrl() {
+ return ansUrl;
+ }
+
+ public void setAnsUrl(String ansUrl) {
+ this.ansUrl = ansUrl;
+ }
+
+ @Override
+ public String toString() {
+ return "Answer{" +
+ "queId='" + queId + '\'' +
+ ", ansUrl='" + ansUrl + '\'' +
+ '}';
+ }
+
+}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/Images2Ddevices.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/Images2Ddevices.java
new file mode 100644
index 0000000..1332ae2
--- /dev/null
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/Images2Ddevices.java
@@ -0,0 +1,48 @@
+package com.sincere.haikangface.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 下发图片到设备集合对象
+ */
+public class Images2Ddevices {
+
+ @ApiModelProperty("设备集合,用,隔开")
+ private String devices;
+ @ApiModelProperty("图片目录")
+ private String imgPath;
+ @ApiModelProperty("身份类型1:老师,2:学生")
+ private String userType;
+
+ public String getUserType() {
+ return userType;
+ }
+
+ public void setUserType(String userType) {
+ this.userType = userType;
+ }
+
+ public String getDevices() {
+ return devices;
+ }
+
+ public void setDevices(String devices) {
+ this.devices = devices;
+ }
+
+ public String getImgPath() {
+ return imgPath;
+ }
+
+ public void setImgPath(String imgPath) {
+ this.imgPath = imgPath;
+ }
+
+ @Override
+ public String toString() {
+ return "Images2Ddevices{" +
+ "devices='" + devices + '\'' +
+ ", imgPath='" + imgPath + '\'' +
+ '}';
+ }
+}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/ShijiBean.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/ShijiBean.java
new file mode 100644
index 0000000..0a9011e
--- /dev/null
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/ShijiBean.java
@@ -0,0 +1,79 @@
+package com.sincere.haikangface.bean;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+public class ShijiBean {
+ @ApiModelProperty(value = "章节")
+ private String chapter;//章节
+ @ApiModelProperty(value = "请求链接")
+ private String requestUrl;//请求链接
+ @ApiModelProperty(value = "年级")
+ private String grade;//年级
+ @ApiModelProperty(value = "科目")
+ private String subject;//科目
+ @ApiModelProperty(value = "学校id")
+ private String schoolId;//科目
+ @ApiModelProperty(value = "答案")
+ private List answer;
+
+
+ public String getSchoolId() {
+ return schoolId;
+ }
+
+ public void setSchoolId(String schoolId) {
+ this.schoolId = schoolId;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getChapter() {
+ return chapter;
+ }
+
+ public void setChapter(String chapter) {
+ this.chapter = chapter;
+ }
+
+ public String getRequestUrl() {
+ return requestUrl;
+ }
+
+ public void setRequestUrl(String requestUrl) {
+ this.requestUrl = requestUrl;
+ }
+
+ public List getAnswer() {
+ return answer;
+ }
+
+ public void setAnswer(List answer) {
+ this.answer = answer;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ @Override
+ public String toString() {
+ return "ShijiBean{" +
+ "chapter='" + chapter + '\'' +
+ ", requestUrl='" + requestUrl + '\'' +
+ ", answer=" + answer +
+ '}';
+ }
+}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/StudentBean.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/StudentBean.java
index ed8d98b..c4a7982 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/StudentBean.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/StudentBean.java
@@ -276,11 +276,30 @@ public class StudentBean implements Serializable {
@Override
public String toString() {
return "StudentBean{" +
+ "teacher_id='" + teacher_id + '\'' +
+ ", parent_id='" + parent_id + '\'' +
+ ", ID=" + ID +
+ ", UserId='" + UserId + '\'' +
+ ", CustomerId='" + CustomerId + '\'' +
+ ", StudentType=" + StudentType +
+ ", UserType=" + UserType +
", name='" + name + '\'' +
+ ", ClassId=" + ClassId +
", ClassName='" + ClassName + '\'' +
+ ", OldCard='" + OldCard + '\'' +
", Card='" + Card + '\'' +
", SchoolId=" + SchoolId +
", school_id=" + school_id +
+ ", IsNew=" + IsNew +
+ ", UpdateType=" + UpdateType +
+ ", AddTime=" + AddTime +
+ ", Sex=" + Sex +
+ ", Face='" + Face + '\'' +
+ ", studentcode='" + studentcode + '\'' +
+ ", student_num='" + student_num + '\'' +
+ ", student_id='" + student_id + '\'' +
+ ", user_id='" + user_id + '\'' +
+ ", photo='" + photo + '\'' +
", teacher_num='" + teacher_num + '\'' +
", num='" + num + '\'' +
'}';
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/UploadBean.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/UploadBean.java
new file mode 100644
index 0000000..27573ad
--- /dev/null
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/bean/UploadBean.java
@@ -0,0 +1,124 @@
+package com.sincere.haikangface.bean;
+
+/**
+ * 上传人脸的元素
+ */
+public class UploadBean {
+
+
+ private String filePath;//源文件
+
+ private String targetPath;//目标文件
+
+ private String cardNUm;//十进制卡号
+
+ private String startTime;//开始时间
+
+ private String endTime;//结束时间
+
+ private int validTimeEnabled;//1:增加,0:删除
+
+ private String name;//姓名
+
+ private String deviceId;//设备id
+
+ private String userType;//用户身份
+
+ private String isPiliang;//0:批量,1:单张
+
+ public String getFilePath() {
+ return filePath;
+ }
+
+ public void setFilePath(String filePath) {
+ this.filePath = filePath;
+ }
+
+ public String getTargetPath() {
+ return targetPath;
+ }
+
+ public void setTargetPath(String targetPath) {
+ this.targetPath = targetPath;
+ }
+
+ public String getCardNUm() {
+ return cardNUm;
+ }
+
+ public void setCardNUm(String cardNUm) {
+ this.cardNUm = cardNUm;
+ }
+
+ public String getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public int getValidTimeEnabled() {
+ return validTimeEnabled;
+ }
+
+ public void setValidTimeEnabled(int validTimeEnabled) {
+ this.validTimeEnabled = validTimeEnabled;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDeviceId() {
+ return deviceId;
+ }
+
+ public void setDeviceId(String deviceId) {
+ this.deviceId = deviceId;
+ }
+
+ public String getUserType() {
+ return userType;
+ }
+
+ public void setUserType(String userType) {
+ this.userType = userType;
+ }
+
+ public String getIsPiliang() {
+ return isPiliang;
+ }
+
+ public void setIsPiliang(String isPiliang) {
+ this.isPiliang = isPiliang;
+ }
+
+ @Override
+ public String toString() {
+ return "UploadBean{" +
+ "filePath='" + filePath + '\'' +
+ ", targetPath='" + targetPath + '\'' +
+ ", cardNUm='" + cardNUm + '\'' +
+ ", startTime='" + startTime + '\'' +
+ ", endTime='" + endTime + '\'' +
+ ", validTimeEnabled=" + validTimeEnabled +
+ ", name='" + name + '\'' +
+ ", deviceId='" + deviceId + '\'' +
+ ", userType='" + userType + '\'' +
+ ", isPiliang='" + isPiliang + '\'' +
+ '}';
+ }
+}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java
index 594958f..171bc65 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java
@@ -2,19 +2,25 @@ package com.sincere.haikangface.control;
import com.sincere.haikangface.CMSServer;
import com.sincere.haikangface.async.SendUserAsync;
-import com.sincere.haikangface.bean.face.SendFaceBean;
+import com.sincere.haikangface.bean.Images2Ddevices;
+import com.sincere.haikangface.bean.StudentBean;
+import com.sincere.haikangface.bean.UploadBean;
import com.sincere.haikangface.dao.UserDao;
import com.sincere.haikangface.utils.FileUtils;
import com.sincere.haikangface.utils.SendRecoderUtils;
import com.sincere.haikangface.xiananDao.SendRecordDao;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
+import java.text.SimpleDateFormat;
+import java.util.*;
@RestController
@Api("文件管理器")
@@ -35,14 +41,21 @@ public class FileControl {
SendRecoderUtils sendRecoderUtils;
+ Queue uploadBeanQueue = new LinkedList<>();
+
@RequestMapping(method = RequestMethod.POST, value = "uploadImg")
public String uploadImg(@RequestParam("file") MultipartFile file, @RequestParam("card") String card
, @RequestParam("name") String name, @RequestParam("deviceId") String deviceId, @RequestParam("startTime") String startTime,
@RequestParam("endTime") String endTime, @RequestParam("validTimeEnabled") int validTimeEnabled, @RequestParam("userType") String userType) {
+
try {
- String fileName = file.getOriginalFilename();//文件名
+ if (!cmsServer.getIsDeviceOnline(deviceId)){
+ FileUtils.getInstance().writeLogs("设备不在线:" +deviceId, FileUtils.devices);
+ return "0";
+ }
+ String fileName = file.getOriginalFilename();//文件名
File outFile = new File(".//imgCom");
if (!outFile.exists()) outFile.mkdirs();
File dest = new File(outFile, fileName);
@@ -54,7 +67,7 @@ public class FileControl {
long time = System.currentTimeMillis();
if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png");
if (new File(filePath.trim()).exists()) {
- String targetPath = FileUtils.picPathComp + new File(filePath).getName();
+ String targetPath = FileUtils.picPathComp + new File(filePath).getName().replace(".png",".jpg");
try {
int isPiliang = 0;//0:批量,1:单张
if (filePath.contains("face17e50")) {//批量发送
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/QueControl21.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/QueControl21.java
new file mode 100644
index 0000000..4bb4b58
--- /dev/null
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/QueControl21.java
@@ -0,0 +1,274 @@
+package com.sincere.haikangface.control;
+
+import com.baidu.aip.util.Base64Util;
+import com.sincere.common.util.AuthService;
+import com.sincere.haikangface.admindao.ZuoyeAdminDao;
+import com.sincere.haikangface.bean.Answer;
+import com.sincere.haikangface.bean.ShijiBean;
+import com.sincere.haikangface.bean.homework.QuestionBean;
+import com.sincere.haikangface.dao.UserDao;
+import com.sincere.haikangface.dao.ZuoYeDao;
+import com.sincere.haikangface.utils.HttpUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.*;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@RestController
+@RequestMapping("/shiji/*")
+@Api("21世纪题目添加")
+public class QueControl21 {
+ @Autowired
+ ZuoYeDao zuoYeDao;
+
+ @Autowired
+ ZuoyeAdminDao zuoyeAdminDao;
+
+ @RequestMapping(value = "addQuestion", method = RequestMethod.POST)
+ @ApiOperation(value = "添加题目")
+ public String addQuestion(@RequestBody ShijiBean shijiBean) {
+ List errQuesList = new ArrayList<>();
+ try {
+
+ RestTemplate restTemplate = new RestTemplate();
+
+ String url = shijiBean.getRequestUrl();
+
+ String content = restTemplate.getForObject(url, String.class, new HashMap<>());
+
+ JSONObject jsonObject = new JSONObject(content);
+ JSONObject data = jsonObject.optJSONObject("data");
+ JSONArray questions = data.optJSONArray("questions");
+ for (int i = 0; i < questions.length(); i++) {
+ JSONObject question = questions.optJSONObject(i);
+ String question_text = question.optString("question_text");
+ String question_id = question.optString("question_id");
+ String explanation = question.optString("explanation");//解析
+ String difficult_index = question.optString("difficult_index");//难度系数
+ String channel_type_name = question.optString("channel_type_name");//题目类型
+ JSONArray t_knowledge = question.optJSONArray("t_knowledge");
+ String Knowledge = "";
+ if (t_knowledge != null && t_knowledge.length() > 0) {
+ JSONArray t_knowArr = t_knowledge.optJSONArray(0);
+ if (t_knowArr != null && t_knowArr.length() > 0)
+ Knowledge = t_knowArr.optJSONObject(0).optString("name");
+ }
+ String chapterId = zuoyeAdminDao.getChapterId(shijiBean.getChapter());
+ String KnowledgeId = zuoyeAdminDao.getKnowledgeId(Knowledge);
+ String gradeId = zuoyeAdminDao.getGradeId(shijiBean.getGrade());
+ explanation = "
";
+ String answer = getAnswerUrl(question_id, shijiBean.getAnswer());//答案
+ System.out.println("answer:" + answer + "KnowledgeId:" + KnowledgeId + " chapterId:" + shijiBean.getChapter()+chapterId+" gradeId:"+gradeId+" Knowledge:"+Knowledge);
+
+
+ if (StringUtils.isEmpty(chapterId)){
+ return "章节不存在";
+ }
+
+ if (StringUtils.isEmpty(KnowledgeId)){
+ return "知识点不存在";
+ }
+
+ if (StringUtils.isEmpty(gradeId)){
+ return "年级不存在";
+ }
+
+ if (StringUtils.isEmpty(answer)){
+ return "答案解析失败";
+ }
+
+ if (!answer.equals("") && KnowledgeId != null && chapterId != null && gradeId != null) {
+ List questionBeans = zuoYeDao.getQuestions(question_text);//获取题目
+// System.out.println("questionBeans:"+questionBeans);
+ if (questionBeans != null && questionBeans.size() > 0) {//更新题库
+ for (int j = 0; j < questionBeans.size(); j++) {
+ QuestionBean questionBean = questionBeans.get(j);
+ zuoYeDao.updateQuestion(questionBean.getID(), answer, explanation);
+ System.out.println("更新题库成功");
+ }
+ } else {//新增题库
+ String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+ String subjectId = getSubjectId(shijiBean.getSubject());
+ if (subjectId == null) return "科目输入错误";
+ String createrUserId = jsonObject.optString("createUserId");
+ String schoolId = shijiBean.getSchoolId();
+ zuoYeDao.addQuestionStem(channel_type_name, "1", dateTime);
+ int stemId = zuoYeDao.getStemId();
+ zuoYeDao.addQuestion(question_text, "1", "A,B,C,D", answer, explanation, "1", dateTime,
+ "1", createrUserId, createrUserId, subjectId, schoolId, difficult_index,
+ KnowledgeId, chapterId, gradeId, "1", "1", "1", stemId + "", "1", "0", "0");
+ System.out.println("添加题库成功");
+ }
+ } else {
+ System.out.println("导入题目失败");
+ errQuesList.add(question.toString());
+ }
+ Thread.sleep(1000);
+ }
+
+ } catch (JSONException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return "导入题目成功";
+ }
+
+ private String getSubjectId(String subject) {
+
+ switch (subject) {
+ case "数学":
+ return "1";
+ case "语文":
+ return "2";
+ case "化学":
+ return "3";
+ case "英语":
+ return "5";
+ case "科学":
+ return "9";
+ }
+
+ return null;
+ }
+
+
+ private String getAnswerUrl(String quesId, List answer) {
+
+ for (Answer ans :
+ answer) {
+ System.out.println("ans:" + ans.getQueId() + "-------quesId:" + quesId);
+ if (quesId.equals(ans.getQueId())) {
+ return getAnswer(ans.getAnsUrl(), 2);
+ }
+
+ }
+
+
+ return "";
+
+ }
+
+
+ private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token="+ AuthService.getAuth();
+
+ private String getAnswer(String imgUrl, int type) {
+
+ RestTemplate restTemplate = new RestTemplate();
+
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+
+ MultiValueMap multiValueMap = new LinkedMultiValueMap<>();
+ if (type == 1) {
+ multiValueMap.add("url", imgUrl);
+ } else if (type == 2) {
+ multiValueMap.add("image", Base64Util.encode(download(imgUrl)));
+ }
+ HttpEntity requestEntity = new HttpEntity(multiValueMap,
+
+ headers);
+
+ ResponseEntity result = restTemplate.postForEntity(url, requestEntity, String.class);
+
+ JSONObject jsonObject = null;
+ try {
+ jsonObject = new JSONObject(result.getBody());
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+// System.out.println("result:"+result.getBody());
+ JSONArray words_result = jsonObject.optJSONArray("words_result");
+ System.out.println("words_result:"+words_result);
+ StringBuilder stringBuilder = new StringBuilder();
+ if (words_result != null) {
+ for (int i = 0; i < words_result.length(); i++) {
+ String words = words_result.optJSONObject(i).optString("words");
+ stringBuilder.append(words + " ");
+ }
+ System.out.println("result:" + stringBuilder.toString());
+ }
+ return stringBuilder.toString().equals("") ? "" : stringBuilder.toString();
+ }
+
+ private byte[] download(String urlString) {
+ try {
+System.out.println("urlString:"+urlString);
+ // 构造URL
+ URL url = new URL(urlString);
+ // 打开连接
+ URLConnection con = url.openConnection();
+ // 输入流
+ InputStream is = con.getInputStream();
+ // 1K的数据缓冲
+ byte[] bs = new byte[1024];
+ // 读取到的数据长度
+ int len;
+ // 输出的文件流
+ String filename = "./imgs/"; //下载路径及下载图片名称
+ File file = new File(filename);
+ if (!file.exists())file.mkdirs();
+
+ String filePath = filename+File.separator+System.currentTimeMillis()+".png";
+ File outFile = new File(filePath);
+ if (!outFile.exists())outFile.createNewFile();
+ FileOutputStream os = new FileOutputStream(outFile, true);
+ // 开始读取
+ while ((len = is.read(bs)) != -1) {
+ os.write(bs,0,len);
+ }
+ // 完毕,关闭所有链接
+ is.close();
+ os.close();
+ return InputStream2ByteArray(outFile.getAbsolutePath());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private byte[] InputStream2ByteArray(String filePath) throws IOException {
+
+ InputStream in = new FileInputStream(filePath);
+ byte[] data = toByteArray(in);
+ in.close();
+
+ return data;
+ }
+
+ private byte[] toByteArray(InputStream in) throws IOException {
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ byte[] buffer = new byte[1024 * 4];
+ int n = 0;
+ while ((n = in.read(buffer)) != -1) {
+ out.write(buffer, 0, n);
+ }
+ return out.toByteArray();
+ }
+
+}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java
index e46d019..39a1179 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java
@@ -1,6 +1,7 @@
package com.sincere.haikangface.control;
import com.sincere.common.dto.smartCampus.SZ_AttendanceDto;
+import com.sincere.haikangface.bean.Images2Ddevices;
import com.sincere.haikangface.utils.BaiduApiUtiols;
import com.sincere.haikangface.CMSServer;
import com.sincere.haikangface.async.SendUserAsync;
@@ -14,13 +15,12 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
@@ -59,12 +59,9 @@ public class UserControl {
@RequestParam("endTime") String endTime, @RequestParam("validTimeEnabled") int validTimeEnabled, @RequestParam("userType") String userType) {
try {
-
if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png");
if (new File(filePath.trim()).exists()) {
-
return sendImg(filePath, deviceId, card, name, userType);
-
} else {
if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils();
sendRecoderUtils.sendFail(sendRecordDao, Long.parseLong(getCard(card), 16) + "", filePath, deviceId, userDao, "文件不存在", userType);
@@ -96,7 +93,7 @@ public class UserControl {
else {
sendUserAsync.uploadImgs(filePath, card, name, deviceId, startTime, endTime, 1, userType);
}
- System.out.println("time:" + (System.currentTimeMillis() - time) / 1000);
+// System.out.println("time:" + (System.currentTimeMillis() - time) / 1000);
return true;
} catch (Exception e) {
e.printStackTrace();
@@ -105,6 +102,47 @@ public class UserControl {
}
+ Logger logger = LoggerFactory.getLogger(FileControl.class);
+
+ @RequestMapping(value = "sendImg2Devices", method = RequestMethod.POST)
+ @ApiOperation("本地下发人脸给设备")
+ public boolean sendImg2Devices(@RequestBody Images2Ddevices images2Ddevices) throws Exception {
+ String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(new Date());
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.YEAR, 10);
+ String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(calendar.getTime());
+ String devices = images2Ddevices.getDevices();
+
+ String imgPath = images2Ddevices.getImgPath();
+
+ String[] devStrs = devices.split(",");
+
+ File[] imgStrs = new File(imgPath).listFiles();
+
+ if (null != imgStrs) {
+ for (int i = 0; i < imgStrs.length; i++) {
+
+ File filePath = imgStrs[i];//图片路径
+ if (filePath.exists()) {
+ String studentCode = filePath.getName().split("\\.")[0];
+ StudentBean studentBean = userDao.getStudent_NumWitdCode(studentCode);
+ if (null != studentBean) {
+ for (int j = 0; j < devStrs.length; j++) {
+ String devId = devStrs[j];
+ sendUserAsync.uploadImgs(filePath.getAbsolutePath(), studentBean.getStudent_num(), studentBean.getName(), devId, startTime, endTime, 1, images2Ddevices.getUserType());
+ }
+ } else {
+ logger.error("学生对象不存在");
+ }
+
+ }
+
+ }
+ }
+
+ return true;
+ }
+
@RequestMapping(value = "sendFaces", method = RequestMethod.GET)
@ApiOperation(value = "下发学校下所有人脸给指定设备", notes = "下发所有人脸给指定设备")
public void sendFaces(@RequestParam("deviceIds") String deviceIds, @RequestParam("schoolId") String schoolId, @RequestParam("userType") String userType) {
@@ -131,13 +169,13 @@ public class UserControl {
StudentBean studentBean = null;
String card = "", name = "";
if (userType.equals("1")) {
- studentBean = userDao.getTeacherWithstudentcode(file.getName().split("\\.")[0],schoolId);
- if (null!=studentBean){
+ studentBean = userDao.getTeacherWithstudentcode(file.getName().split("\\.")[0], schoolId);
+ if (null != studentBean) {
card = studentBean.getTeacher_num();
name = studentBean.getName();
}
} else if (userType.equals("2")) {
- studentBean = userDao.getStudentWithstudentcode(file.getName().split("\\.")[0],schoolId);
+ studentBean = userDao.getStudentWithstudentcode(file.getName().split("\\.")[0], schoolId);
if (null != studentBean) {
card = studentBean.getStudent_num();
name = studentBean.getName();
@@ -158,10 +196,10 @@ public class UserControl {
@RequestMapping(value = "sendFaceToDevices", method = RequestMethod.GET)
@ApiOperation(value = "下发单个用户给指定设备", notes = "下发单个用户给指定设备")
- @ApiImplicitParams({@ApiImplicitParam(name = "deviceIds",value = "设备id用逗号,拼接"),
- @ApiImplicitParam(name = "file",value = "100服务器上图片绝对路径")})
- public void sendFaceToDevices(@RequestParam("deviceIds") String deviceIds, @RequestParam("userType") String userType,@RequestParam("file") String file,
- @RequestParam("card") String card,@RequestParam("name") String name) {
+ @ApiImplicitParams({@ApiImplicitParam(name = "deviceIds", value = "设备id用逗号,拼接"),
+ @ApiImplicitParam(name = "file", value = "100服务器上图片绝对路径")})
+ public void sendFaceToDevices(@RequestParam("deviceIds") String deviceIds, @RequestParam("userType") String userType, @RequestParam("file") String file,
+ @RequestParam("card") String card, @RequestParam("name") String name) {
String[] deviceIdsStr = deviceIds.split(",");
@@ -173,8 +211,7 @@ public class UserControl {
}
-
- @RequestMapping(value = "DeleteCard", method = RequestMethod.GET)
+ @RequestMapping(value = "DeleteCard", method = RequestMethod.GET)
@ApiOperation("删除人脸")
public boolean deleteCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) {
if (cmsServer.getIsDeviceOnline(deviceId))
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/ZuoYeControl.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/ZuoYeControl.java
index 0bcf874..04f30d2 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/ZuoYeControl.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/ZuoYeControl.java
@@ -206,8 +206,11 @@ public class ZuoYeControl {
String channel_type_name = question.optString("channel_type_name");//题目类型
JSONArray t_knowledge = question.optJSONArray("t_knowledge");
String Knowledge = "";
- if (t_knowledge != null && t_knowledge.length() > 0)
- Knowledge = t_knowledge.optJSONObject(0).optString("name");
+ if (t_knowledge != null && t_knowledge.length() > 0){
+ JSONArray t_knowArr = t_knowledge.optJSONArray(0);
+ if (t_knowArr!=null&&t_knowArr.length()>0)
+ Knowledge = t_knowArr.optJSONObject(0).optString("name");
+ }
String chapterId = zuoyeAdminDao.getChapterId(jsonObject.optString("chapter"));
String KnowledgeId = zuoyeAdminDao.getKnowledgeId(jsonObject.optString("chapter"));
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
index 5f6025c..5ae2285 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
@@ -2,7 +2,6 @@ package com.sincere.haikangface.dao;
import com.sincere.haikangface.bean.*;
import org.apache.ibatis.annotations.*;
-import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -186,7 +185,7 @@ public interface UserDao {
@Select("select class_id from SZ_V_School_Student where school_id = 479 and student_id = #{customerId} ")
String getClassName(@Param("customerId") String customerId);
- @Select("select clint_id from SZ_AttendanceDto where school_id = #{schoolId} and clint_type=18")
+ @Select("select clint_id from SZ_Attendance where school_id = #{schoolId} and clint_type=18")
List getDeviceIdsWidthSchoolId(@Param("schoolId") int schoolId);
@@ -211,4 +210,7 @@ public interface UserDao {
"from SZ_V_School_Teacher\n" +
"where num = #{num} and school_id = #{schoolId}")
StudentBean getTeacherWithstudentcode(@Param("num") String num,@Param("schoolId")String schoolId);
+
+ @Select("select Top(1) * from SZ_V_School_Student where studentcode = #{studentcode}")
+ StudentBean getStudent_NumWitdCode(@Param("studentcode") String studentcode);
}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
index ef151e2..18f34d1 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
@@ -16,7 +16,7 @@ import java.io.InputStream;
public class CompressPic {
public static String CompressPic(String srcPath, String targetPath) throws Exception {
- double cutPercent = 0.4;
+ double cutPercent = 0.1;
File file = new File(srcPath.trim());
FileInputStream fileInputStreamSrc = new FileInputStream(file);
BufferedImage bufferedImage = ImageIO.read(fileInputStreamSrc);
@@ -26,8 +26,9 @@ public class CompressPic {
System.out.println("fileLength:"+fileLength);
if ((fileLength / 1024) < 200) {
writeImgToFile(bufferedImage, width, height, targetPath);
- } else
+ } else{
while ((fileLength / 1024) >= 200) {
+ System.out.println("fileLength:"+fileLength);
width = (int) (width * (1 - cutPercent));
height = (int) (height * (1 - cutPercent));
@@ -41,6 +42,7 @@ public class CompressPic {
fileLength = file1.length();
fileInputStream.close();
}
+ }
// System.out.printf("图片大小:"+fileLength/1024);
fileInputStreamSrc.close();
return targetPath;
@@ -64,10 +66,10 @@ public class CompressPic {
}
}*/
- System.out.println("读写图片:" + write);
+// System.out.println("读写图片:" + write);
deskImage.close();
} catch (Exception e) {
- System.out.println("读写图片:" + e.toString());
+// System.out.println("读写图片:" + e.toString());
e.printStackTrace();
}
}
diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/SendRecoderUtils.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/SendRecoderUtils.java
index abd0fa0..1cc61c1 100644
--- a/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/SendRecoderUtils.java
+++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/SendRecoderUtils.java
@@ -100,7 +100,7 @@ public class SendRecoderUtils {
break;
}
- System.out.println("studentBean:" + studentBean);
+// System.out.println("studentBean:" + studentBean);
if (null != studentBean) {
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String schoolName = userDao.getSchoolName(studentBean.getSchool_id() + "");
diff --git a/cloud/haikangface/src/main/resources/application.yaml b/cloud/haikangface/src/main/resources/application.yaml
index 563a49a..bf9ab9a 100644
--- a/cloud/haikangface/src/main/resources/application.yaml
+++ b/cloud/haikangface/src/main/resources/application.yaml
@@ -38,8 +38,8 @@ eureka:
lease-renewal-interval-in-seconds: 10
client:
service-url:
-# defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
- defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
+ defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
+# defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
mybatis:
campus:
diff --git a/cloud/pom.xml b/cloud/pom.xml
index ca8d962..4406dbf 100644
--- a/cloud/pom.xml
+++ b/cloud/pom.xml
@@ -44,6 +44,7 @@
user_search
fIle-center
+ RibbonConsume
diff --git a/cloud/server1/src/main/resources/application.yaml b/cloud/server1/src/main/resources/application.yaml
index cd01311..0947d82 100644
--- a/cloud/server1/src/main/resources/application.yaml
+++ b/cloud/server1/src/main/resources/application.yaml
@@ -4,7 +4,7 @@ eureka:
lease-renewal-interval-in-seconds: 10
lease-expiration-duration-in-seconds: 60
hostname: localhost
- prefer-ip-address: true
+ prefer-ip-address: false
server:
#是否开启保护模式
enable-self-preservation: false #关闭服务器自我保护,客户端心跳检测15分钟内错误达到80%服务会保护,导致别人还认为是好用的服务
diff --git a/cloud/server2/src/main/resources/application.yaml b/cloud/server2/src/main/resources/application.yaml
index 8ba69d0..9beb71e 100644
--- a/cloud/server2/src/main/resources/application.yaml
+++ b/cloud/server2/src/main/resources/application.yaml
@@ -13,7 +13,7 @@ eureka:
lease-renewal-interval-in-seconds: 10
lease-expiration-duration-in-seconds: 60
hostname: localhost
- prefer-ip-address: true
+ prefer-ip-address: false
server:
#是否开启保护模式
enable-self-preservation: false #关闭服务器自我保护,客户端心跳检测15分钟内错误达到80%服务会保护,导致别人还认为是好用的服务
--
libgit2 0.21.0