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 = "

\"image.png\"/

"; + 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