Commit 6f262f5bc632a34e675e4d8a972498cc552b0132
1 parent
ab4cd65a
Exists in
master
网关服务优化
Showing
63 changed files
with
1672 additions
and
738 deletions
Show diff stats
.gitignore
@@ -2,3 +2,72 @@ cloud.zip | @@ -2,3 +2,72 @@ cloud.zip | ||
2 | cloud/haikangface/log/2019-11-15/13_文件保存回调.txt | 2 | cloud/haikangface/log/2019-11-15/13_文件保存回调.txt |
3 | cloud/mypulsar/mypulsar-1.0.0/ | 3 | cloud/mypulsar/mypulsar-1.0.0/ |
4 | cloud/mypulsar/mypulsar-1.0.0.jar | 4 | cloud/mypulsar/mypulsar-1.0.0.jar |
5 | +cloud/dahua/sdklog/2019-11-22_08-53-36.log | ||
6 | +cloud/dahua/sdklog/2019-11-22_08-53-55.log | ||
7 | +cloud/dahua/sdklog/2019-11-22_08-54-42.log | ||
8 | +cloud/dahua/sdklog/2019-11-22_08-55-16.log | ||
9 | +cloud/dahua/sdklog/2019-11-22_08-56-13.log | ||
10 | +cloud/dahua/sdklog/2019-12-10_11-22-45.log | ||
11 | +cloud/dahua/sdklog/2019-12-25_14-31-48.log | ||
12 | +cloud/dahua/sdklog/2019-12-25_14-32-35.log | ||
13 | +cloud/dahua/sdklog/2019-12-25_14-36-10.log | ||
14 | +cloud/dahua/sdklog/2019-12-25_14-36-57.log | ||
15 | +cloud/haikangface/hs_err_pid21508.log | ||
16 | +cloud/log/2019-12-25/下发指令.txt | ||
17 | +cloud/quartz/src/pom.xml | ||
18 | +cloud/sdklog/2019-11-25_17-32-54.log | ||
19 | +cloud/sdklog/2019-11-28_13-51-36.log | ||
20 | +cloud/sdklog/2019-11-28_13-55-18.log | ||
21 | +cloud/sdklog/2019-11-28_14-13-23.log | ||
22 | +cloud/sdklog/2019-11-28_14-14-31.log | ||
23 | +cloud/sdklog/2019-11-28_14-52-30.log | ||
24 | +cloud/sdklog/2019-11-28_14-53-41.log | ||
25 | +cloud/sdklog/2019-11-28_14-54-22.log | ||
26 | +cloud/sdklog/2019-11-28_14-55-12.log | ||
27 | +cloud/sdklog/2019-11-28_15-06-32.log | ||
28 | +cloud/sdklog/2019-11-29_13-58-21.log | ||
29 | +cloud/sdklog/2019-11-29_14-04-29.log | ||
30 | +cloud/sdklog/2019-11-29_16-33-47.log | ||
31 | +cloud/sdklog/2019-11-29_17-27-52.log | ||
32 | +cloud/sdklog/2019-12-04_14-29-05.log | ||
33 | +cloud/sdklog/2019-12-11_16-36-43.log | ||
34 | +cloud/sdklog/2019-12-11_16-53-13.log | ||
35 | +cloud/sdklog/2019-12-11_16-56-55.log | ||
36 | +cloud/sdklog/2019-12-11_17-06-39.log | ||
37 | +cloud/sdklog/2019-12-11_17-14-50.log | ||
38 | +cloud/sdklog/2019-12-11_17-39-25.log | ||
39 | +cloud/sdklog/2019-12-11_17-42-05.log | ||
40 | +cloud/sdklog/2019-12-11_17-43-51.log | ||
41 | +cloud/sdklog/2019-12-11_17-45-31.log | ||
42 | +cloud/sdklog/2019-12-11_17-46-29.log | ||
43 | +cloud/sdklog/2019-12-11_17-47-45.log | ||
44 | +cloud/sdklog/2019-12-11_17-49-52.log | ||
45 | +cloud/sdklog/2019-12-11_17-50-53.log | ||
46 | +cloud/sdklog/2019-12-11_17-57-54.log | ||
47 | +cloud/sdklog/2019-12-11_18-02-49.log | ||
48 | +cloud/sdklog/2019-12-24_17-19-40.log | ||
49 | +cloud/sdklog/2019-12-24_17-21-01.log | ||
50 | +cloud/sdklog/2019-12-24_17-21-32.log | ||
51 | +cloud/sdklog/2019-12-24_17-22-24.log | ||
52 | +cloud/sdklog/2019-12-24_17-31-53.log | ||
53 | +cloud/sdklog/2019-12-24_17-36-03.log | ||
54 | +cloud/sdklog/2019-12-24_17-53-50.log | ||
55 | +cloud/sdklog/2019-12-24_18-04-46.log | ||
56 | +cloud/sdklog/2019-12-24_18-06-10.log | ||
57 | +cloud/sdklog/2019-12-24_18-14-08.log | ||
58 | +cloud/sdklog/2019-12-25_10-21-04.log | ||
59 | +cloud/sdklog/2019-12-25_10-24-26.log | ||
60 | +cloud/sdklog/2019-12-25_10-42-31.log | ||
61 | +cloud/sdklog/2019-12-25_10-54-11.log | ||
62 | +cloud/sdklog/2019-12-25_12-03-48.log | ||
63 | +cloud/sdklog/2019-12-25_12-04-39.log | ||
64 | +cloud/sdklog/2019-12-25_12-09-35.log | ||
65 | +cloud/sdklog/2019-12-25_12-12-10.log | ||
66 | +cloud/sdklog/2019-12-25_12-25-06.log | ||
67 | +cloud/sdklog/2019-12-25_12-26-52.log | ||
68 | +cloud/sdklog/2019-12-25_13-44-14.log | ||
69 | +cloud/sdklog/2019-12-25_13-47-18.log | ||
70 | +cloud/sdklog/2019-12-25_13-48-18.log | ||
71 | +cloud/sdklog/2019-12-25_13-49-20.log | ||
72 | +cloud/sdklog/2019-12-25_14-24-38.log | ||
73 | +cloud/sdklog/2019-12-25_14-33-26.log |
cloud/dahua/pom.xml
@@ -11,6 +11,7 @@ | @@ -11,6 +11,7 @@ | ||
11 | <artifactId>dahua</artifactId> | 11 | <artifactId>dahua</artifactId> |
12 | <version>1.0.0</version> | 12 | <version>1.0.0</version> |
13 | <name>dahua</name> | 13 | <name>dahua</name> |
14 | + <url>http://maven.apache.org</url> | ||
14 | <description>Demo project for Spring Boot</description> | 15 | <description>Demo project for Spring Boot</description> |
15 | 16 | ||
16 | <properties> | 17 | <properties> |
@@ -117,7 +118,11 @@ | @@ -117,7 +118,11 @@ | ||
117 | <artifactId>mybatis-spring-boot-starter</artifactId> | 118 | <artifactId>mybatis-spring-boot-starter</artifactId> |
118 | <version>2.0.1</version> | 119 | <version>2.0.1</version> |
119 | </dependency> | 120 | </dependency> |
120 | - | 121 | + <dependency> |
122 | + <groupId>com.sincere</groupId> | ||
123 | + <artifactId>common</artifactId> | ||
124 | + <version>1.0.0</version> | ||
125 | + </dependency> | ||
121 | 126 | ||
122 | <!--<dependency>--> | 127 | <!--<dependency>--> |
123 | <!--<groupId>com.drewnoakes</groupId>--> | 128 | <!--<groupId>com.drewnoakes</groupId>--> |
@@ -165,6 +170,12 @@ | @@ -165,6 +170,12 @@ | ||
165 | <version>4.1.0</version> | 170 | <version>4.1.0</version> |
166 | <scope>compile</scope> | 171 | <scope>compile</scope> |
167 | </dependency> | 172 | </dependency> |
173 | + | ||
174 | +<!-- <dependency>--> | ||
175 | +<!-- <groupId>com.aliyun.oss</groupId>--> | ||
176 | +<!-- <artifactId>aliyun-sdk-oss</artifactId>--> | ||
177 | +<!-- <version>3.8.0</version>--> | ||
178 | +<!-- </dependency>--> | ||
168 | </dependencies> | 179 | </dependencies> |
169 | 180 | ||
170 | 181 | ||
@@ -185,6 +196,27 @@ | @@ -185,6 +196,27 @@ | ||
185 | </includes> | 196 | </includes> |
186 | </configuration> | 197 | </configuration> |
187 | </plugin> | 198 | </plugin> |
199 | + | ||
200 | + <plugin> | ||
201 | + <groupId>org.apache.maven.plugins</groupId> | ||
202 | + <artifactId>maven-dependency-plugin</artifactId> | ||
203 | +<!-- <version>2.2</version><!–$NO-MVN-MAN-VER$ –>--> | ||
204 | + <executions> | ||
205 | + <execution> | ||
206 | + <id>copy-dependencies</id> | ||
207 | + <phase>package</phase> | ||
208 | + <goals> | ||
209 | + <goal>copy-dependencies</goal> | ||
210 | + </goals> | ||
211 | + <configuration> | ||
212 | + <outputDirectory>${project.build.directory}/libs</outputDirectory> | ||
213 | + <overWriteReleases>true</overWriteReleases> | ||
214 | + <overWriteSnapshots>true</overWriteSnapshots> | ||
215 | + <overWriteIfNewer>true</overWriteIfNewer> | ||
216 | + </configuration> | ||
217 | + </execution> | ||
218 | + </executions> | ||
219 | + </plugin> | ||
188 | </plugins> | 220 | </plugins> |
189 | </build> | 221 | </build> |
190 | 222 |
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
@@ -71,9 +71,9 @@ public class MyTask implements ApplicationRunner { | @@ -71,9 +71,9 @@ public class MyTask implements ApplicationRunner { | ||
71 | public void run(ApplicationArguments args) throws Exception { | 71 | public void run(ApplicationArguments args) throws Exception { |
72 | // 121.40.109.21 | 72 | // 121.40.109.21 |
73 | 73 | ||
74 | - LoginModule.init(disConnect, haveReConnect); // 打开工程,初始化 | 74 | +// LoginModule.init(disConnect, haveReConnect); // 打开工程,初始化 |
75 | 75 | ||
76 | - autoRegister();//自注册 | 76 | +// autoRegister();//自注册 |
77 | 77 | ||
78 | // System.out.println(" sendRecordDao:"+sendRecordDao.getSenSuccess()); | 78 | // System.out.println(" sendRecordDao:"+sendRecordDao.getSenSuccess()); |
79 | } | 79 | } |
@@ -233,27 +233,19 @@ public class MyTask implements ApplicationRunner { | @@ -233,27 +233,19 @@ public class MyTask implements ApplicationRunner { | ||
233 | } | 233 | } |
234 | 234 | ||
235 | public synchronized void reloadPic() { | 235 | public synchronized void reloadPic() { |
236 | - | ||
237 | - /* Set<String> set = lLongMap.keySet(); | ||
238 | - Iterator<String> iterator = set.iterator(); | ||
239 | - | ||
240 | - while (iterator.hasNext()){ | ||
241 | - String deviceId= iterator.next(); | ||
242 | - System.out.println("deviceId:"+deviceId+" llong:"+lLongMap.get(deviceId)); | ||
243 | - GateModule.stopRealLoadPic(lLongMap.get(deviceId)); | ||
244 | - GateModule.realLoadPic(0,analyzerCallback,lLongMap.get(deviceId)); | ||
245 | - }*/ | ||
246 | - | ||
247 | - if (null!=deviceInfoBeans){ | 236 | + isHasNewDevice = false; |
237 | + if (null!=deviceInfoBeans&&deviceInfoBeans.size()>0){ | ||
248 | for (DeviceInfoBean dev : | 238 | for (DeviceInfoBean dev : |
249 | deviceInfoBeans) { | 239 | deviceInfoBeans) { |
250 | - FileUtils.getInstance().writeLogs(dev.getDevcieId() + "------" + lLongMap.get(dev.getDevcieId()), FileUtils.device_login); | ||
251 | - if (lLongMap.get(dev.getDevcieId()).intValue() > 0) | ||
252 | - GateModule.realLoadPic(0, analyzerCallback, lLongMap.get(dev.getDevcieId())); | 240 | +// FileUtils.getInstance().writeLogs(dev.getDevcieId() + "------" + lLongMap.get(dev.getDevcieId()), FileUtils.device_login); |
241 | + if (lLongMap.get(dev.getDevcieId()).intValue() > 0){ | ||
242 | + NetSDKLib.LLong lLong = GateModule.realLoadPic(0, analyzerCallback, lLongMap.get(dev.getDevcieId())); | ||
243 | + if (lLong.intValue()!=-1){ | ||
244 | + deviceInfoBeans.remove(dev); | ||
245 | + } | ||
246 | + } | ||
253 | 247 | ||
254 | } | 248 | } |
255 | - | ||
256 | - isHasNewDevice = false; | ||
257 | } | 249 | } |
258 | } | 250 | } |
259 | 251 |
cloud/dahua/src/main/java/com/example/dahua/Test.java
1 | package com.example.dahua; | 1 | package com.example.dahua; |
2 | 2 | ||
3 | -import com.drew.imaging.jpeg.JpegMetadataReader; | ||
4 | -import com.drew.imaging.jpeg.JpegProcessingException; | ||
5 | -import com.drew.metadata.Directory; | ||
6 | -import com.drew.metadata.Metadata; | ||
7 | -import com.drew.metadata.Tag; | ||
8 | -import com.example.dahua.bean.AttendanceRecords; | ||
9 | -import com.example.dahua.bean.UserInfoBean; | ||
10 | -import com.example.dahua.dao.UserDao; | ||
11 | -import com.example.dahua.xiananDao.SendRecordDao; | ||
12 | -import org.springframework.beans.factory.annotation.Autowired; | ||
13 | - | ||
14 | -import java.io.File; | ||
15 | -import java.io.IOException; | ||
16 | -import java.text.SimpleDateFormat; | ||
17 | -import java.util.ArrayList; | ||
18 | -import java.util.Date; | ||
19 | -import java.util.List; | ||
20 | 3 | ||
21 | public class Test { | 4 | public class Test { |
22 | 5 | ||
23 | - @Autowired | ||
24 | - SendRecordDao sendRecordDao; | ||
25 | - | ||
26 | - @Autowired | ||
27 | - UserDao userDao; | ||
28 | - | ||
29 | public static void main(String[] args) { | 6 | public static void main(String[] args) { |
30 | 7 | ||
31 | -// new Test().getData(); | ||
32 | - File file = new File("C:\\TaoHandong\\copy\\School951\\Student\\505766.jpg"); | ||
33 | - | ||
34 | - try { | ||
35 | - Metadata metadata = JpegMetadataReader.readMetadata(file); | ||
36 | - for ( Directory directory : metadata.getDirectories() ) { | ||
37 | - for (Tag tag : directory.getTags()) { | ||
38 | - //格式化输出[directory.getName()] - tag.getTagName() = tag.getDescription() | ||
39 | - System.out.format("[%s] - %s = %s\n", | ||
40 | - directory.getName(), tag.getTagName(), tag.getDescription()); | ||
41 | - if (tag.getTagName().contains("Date")){ | ||
42 | - | ||
43 | - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||
44 | - System.out.println(tag.getDescription()); | ||
45 | - Date date= new Date(new Test().getData(tag.getDescription())); | ||
46 | - System.out.println(simpleDateFormat.format(date)); | ||
47 | - | ||
48 | - } | ||
49 | - } | ||
50 | - } | ||
51 | - | ||
52 | - | ||
53 | - } catch (JpegProcessingException e) { | ||
54 | - e.printStackTrace(); | ||
55 | - } catch (IOException e) { | ||
56 | - e.printStackTrace(); | ||
57 | - } | ||
58 | 8 | ||
59 | } | 9 | } |
60 | 10 | ||
61 | - private String getData(String content) { | ||
62 | - | ||
63 | - content = content.replace("星期一","Mon"); | ||
64 | - content = content.replace("星期二","Tues"); | ||
65 | - content = content.replace("星期三","Wed"); | ||
66 | - content = content.replace("星期四","Thur"); | ||
67 | - content = content.replace("星期五","Fri"); | ||
68 | - content = content.replace("星期六","Sat"); | ||
69 | - content = content.replace("星期日","Sun"); | ||
70 | - | ||
71 | - | ||
72 | - content = content.replace("一月","Jan"); | ||
73 | - content = content.replace("二月","Feb"); | ||
74 | - content = content.replace("三月","Mar"); | ||
75 | - content = content.replace("四月","Apr"); | ||
76 | - content = content.replace("五月","May"); | ||
77 | - content = content.replace("六月","Jun"); | ||
78 | - content = content.replace("七月","Jul"); | ||
79 | - content = content.replace("八月","Aug"); | ||
80 | - content = content.replace("九月","Sep"); | ||
81 | - content = content.replace("十月","Oct"); | ||
82 | - content = content.replace("十一月","Nov"); | ||
83 | - content = content.replace("十二月","Dec"); | ||
84 | - | ||
85 | - return content; | ||
86 | - } | ||
87 | 11 | ||
88 | } | 12 | } |
cloud/dahua/src/main/java/com/example/dahua/async/MyScheduledTask.java
@@ -38,6 +38,7 @@ import java.util.List; | @@ -38,6 +38,7 @@ import java.util.List; | ||
38 | @EnableScheduling | 38 | @EnableScheduling |
39 | public class MyScheduledTask { | 39 | public class MyScheduledTask { |
40 | 40 | ||
41 | + | ||
41 | @Autowired | 42 | @Autowired |
42 | SendRecordDao sendRecordDao; | 43 | SendRecordDao sendRecordDao; |
43 | 44 | ||
@@ -77,7 +78,7 @@ public class MyScheduledTask { | @@ -77,7 +78,7 @@ public class MyScheduledTask { | ||
77 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH"); | 78 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH"); |
78 | int hour = Integer.parseInt(simpleDateFormat.format(new Date())); | 79 | int hour = Integer.parseInt(simpleDateFormat.format(new Date())); |
79 | 80 | ||
80 | - if (hour == 7 && !isCloseYT) { | 81 | + /*if (hour == 7 && !isCloseYT) { |
81 | isCloseYT = true; | 82 | isCloseYT = true; |
82 | close(31, 97); | 83 | close(31, 97); |
83 | } | 84 | } |
@@ -85,7 +86,7 @@ public class MyScheduledTask { | @@ -85,7 +86,7 @@ public class MyScheduledTask { | ||
85 | if (hour == 17 && isCloseYT) { | 86 | if (hour == 17 && isCloseYT) { |
86 | isCloseYT = false; | 87 | isCloseYT = false; |
87 | close(30, 97); | 88 | close(30, 97); |
88 | - } | 89 | + }*/ |
89 | 90 | ||
90 | /* if (hour == 6 && !isClose) { | 91 | /* if (hour == 6 && !isClose) { |
91 | isClose = true; | 92 | isClose = true; |
@@ -101,7 +102,7 @@ public class MyScheduledTask { | @@ -101,7 +102,7 @@ public class MyScheduledTask { | ||
101 | dealData(); | 102 | dealData(); |
102 | } else if (hour >= 13 && hour < 14) { | 103 | } else if (hour >= 13 && hour < 14) { |
103 | dealData(); | 104 | dealData(); |
104 | - } else if (hour >= 18 || hour < 5) { | 105 | + } else if (hour >= 20 || hour < 5) { |
105 | dealData(); | 106 | dealData(); |
106 | } | 107 | } |
107 | 108 | ||
@@ -121,6 +122,7 @@ public class MyScheduledTask { | @@ -121,6 +122,7 @@ public class MyScheduledTask { | ||
121 | File file = new File(imgFilPath); | 122 | File file = new File(imgFilPath); |
122 | File[] files = file.listFiles(); | 123 | File[] files = file.listFiles(); |
123 | Date currentDate = new Date(); | 124 | Date currentDate = new Date(); |
125 | + if (null!=files) | ||
124 | for (int i = 0; i < files.length; i++) { | 126 | for (int i = 0; i < files.length; i++) { |
125 | File imgFile = files[i]; | 127 | File imgFile = files[i]; |
126 | String name = imgFile.getName().split("\\.")[0]; | 128 | String name = imgFile.getName().split("\\.")[0]; |
@@ -171,7 +173,7 @@ public class MyScheduledTask { | @@ -171,7 +173,7 @@ public class MyScheduledTask { | ||
171 | 173 | ||
172 | String ip = new Utils().getHostAddress(); | 174 | String ip = new Utils().getHostAddress(); |
173 | System.out.println("ip:"+ip); | 175 | System.out.println("ip:"+ip); |
174 | - if (ip.startsWith("192")) | 176 | + if (ip.startsWith("192")||ip.contains("172.16.247.64")) |
175 | return; | 177 | return; |
176 | 178 | ||
177 | /** | 179 | /** |
cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
@@ -42,7 +42,7 @@ public class SendUserInfoTask { | @@ -42,7 +42,7 @@ public class SendUserInfoTask { | ||
42 | SendRecordDao sendRecordDao; | 42 | SendRecordDao sendRecordDao; |
43 | 43 | ||
44 | @Async("taskExecutor") | 44 | @Async("taskExecutor") |
45 | - public void doTaskOne(String file, List<AttendanceBean> attendanceBeans, UserInfoBean userInfoBean, String schoolId, int failType,int userType) throws Exception { | 45 | + public void doTaskOne(String file, List<AttendanceBean> attendanceBeans, UserInfoBean userInfoBean, String schoolId, int failType, int userType) throws Exception { |
46 | File studentFile = new File(file); | 46 | File studentFile = new File(file); |
47 | String studentCode = studentFile.getName().split("\\.")[0]; | 47 | String studentCode = studentFile.getName().split("\\.")[0]; |
48 | //判断是否是副卡 | 48 | //判断是否是副卡 |
@@ -60,13 +60,13 @@ public class SendUserInfoTask { | @@ -60,13 +60,13 @@ public class SendUserInfoTask { | ||
60 | sendRecordBean.setSchoolId(Integer.parseInt(schoolId)); | 60 | sendRecordBean.setSchoolId(Integer.parseInt(schoolId)); |
61 | sendRecordBean.setSchoolName(userDao.getSchoolName(schoolId)); | 61 | sendRecordBean.setSchoolName(userDao.getSchoolName(schoolId)); |
62 | sendRecordBean.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); | 62 | sendRecordBean.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
63 | - sendRecordBean.setUserType(2); | 63 | + sendRecordBean.setUserType(userType); |
64 | sendRecordBean.setNum(userInfoBean.getStudent_num()); | 64 | sendRecordBean.setNum(userInfoBean.getStudent_num()); |
65 | sendRecordBean.setName(userInfoBean.getName()); | 65 | sendRecordBean.setName(userInfoBean.getName()); |
66 | sendRecordBean.setImgPath(file); | 66 | sendRecordBean.setImgPath(file); |
67 | sendRecordBean.setCustomerid(userInfoBean.getStudent_id()); | 67 | sendRecordBean.setCustomerid(userInfoBean.getStudent_id()); |
68 | sendRecordBean.setFailType(failType); | 68 | sendRecordBean.setFailType(failType); |
69 | - sendUserInfoToDev(file, attendanceBeans, userInfoBean, userType+"", sendRecordBean); | 69 | + sendUserInfoToDev(file, attendanceBeans, userInfoBean, userType + "", sendRecordBean); |
70 | } | 70 | } |
71 | 71 | ||
72 | @Async("taskExecutor") | 72 | @Async("taskExecutor") |
@@ -153,7 +153,7 @@ public class SendUserInfoTask { | @@ -153,7 +153,7 @@ public class SendUserInfoTask { | ||
153 | 153 | ||
154 | if (type == 0 || type == 1) {//学生信息或家长信息 | 154 | if (type == 0 || type == 1) {//学生信息或家长信息 |
155 | userInfoBean = userDao.getUserInfo(schoolId, studentCode); | 155 | userInfoBean = userDao.getUserInfo(schoolId, studentCode); |
156 | - HttpUtils.uploadImgs(studentFile,schoolId,studentCode,clint_type,2); | 156 | + HttpUtils.uploadImgs(studentFile, schoolId, studentCode, clint_type, 2); |
157 | } else if (type == 2) {//教师信息 | 157 | } else if (type == 2) {//教师信息 |
158 | TeacherBean teacher = userDao.getTeacher(schoolId, studentCode); | 158 | TeacherBean teacher = userDao.getTeacher(schoolId, studentCode); |
159 | if (null != teacher) { | 159 | if (null != teacher) { |
@@ -164,7 +164,7 @@ public class SendUserInfoTask { | @@ -164,7 +164,7 @@ public class SendUserInfoTask { | ||
164 | userInfoBean.setStudentcode(teacher.getNum()); | 164 | userInfoBean.setStudentcode(teacher.getNum()); |
165 | userInfoBean.setStudent_id(teacher.getTeacher_id()); | 165 | userInfoBean.setStudent_id(teacher.getTeacher_id()); |
166 | } | 166 | } |
167 | - HttpUtils.uploadImgs(studentFile,schoolId,studentCode,clint_type,1); | 167 | + HttpUtils.uploadImgs(studentFile, schoolId, studentCode, clint_type, 1); |
168 | } | 168 | } |
169 | 169 | ||
170 | //判断用户是否存在 | 170 | //判断用户是否存在 |
@@ -274,6 +274,7 @@ public class SendUserInfoTask { | @@ -274,6 +274,7 @@ public class SendUserInfoTask { | ||
274 | } catch (Exception e) { | 274 | } catch (Exception e) { |
275 | e.printStackTrace(); | 275 | e.printStackTrace(); |
276 | } | 276 | } |
277 | + | ||
277 | for (AttendanceBean attendanceBean : | 278 | for (AttendanceBean attendanceBean : |
278 | attendanceBeans) { | 279 | attendanceBeans) { |
279 | pushCardAndFace(attendanceBean, userInfoBean.getUser_id(), userInfoBean.getStudent_num(), userInfoBean.getName(), memory, sendRecordBean); | 280 | pushCardAndFace(attendanceBean, userInfoBean.getUser_id(), userInfoBean.getStudent_num(), userInfoBean.getName(), memory, sendRecordBean); |
@@ -310,16 +311,19 @@ public class SendUserInfoTask { | @@ -310,16 +311,19 @@ public class SendUserInfoTask { | ||
310 | 311 | ||
311 | String cardNum = cardNo(student_num); | 312 | String cardNum = cardNo(student_num); |
312 | if (bCardFlags != -1) {//修改卡信息 | 313 | if (bCardFlags != -1) {//修改卡信息 |
313 | - GateModule.deleteCard(bCardFlags, loginHandleLong); | ||
314 | - userDao.deleteRecordNo(user_id, bCardFlags); | ||
315 | - | ||
316 | - bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456" | ||
317 | - , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 | ||
318 | - , 1, startTime, endTime, loginHandleLong); | ||
319 | - | ||
320 | - if (bCardFlags != -1) { | ||
321 | - int index = userDao.saveRecordNo(user_id, bCardFlags, name, attendanceBean.getClint_id());//存储记录集编号 | ||
322 | - } | 314 | +// GateModule.deleteCard(bCardFlags, loginHandleLong); |
315 | + GateModule.modifyCard(bCardFlags,cardNum,user_id,name,"123456",Res.string().getCardStatusInt(1),Res.string().getCardTypeInt(1), | ||
316 | + 0,0,1,startTime,endTime,loginHandleLong); | ||
317 | + userDao.updateRecordNo(user_id,bCardFlags,attendanceBean.getClint_id()); | ||
318 | +// userDao.deleteRecordNo(user_id, bCardFlags); | ||
319 | + | ||
320 | +// bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456" | ||
321 | +// , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 | ||
322 | +// , 1, startTime, endTime, loginHandleLong); | ||
323 | + | ||
324 | +// if (bCardFlags != -1) { | ||
325 | +// int index = userDao.saveRecordNo(user_id, bCardFlags, name, attendanceBean.getClint_id());//存储记录集编号 | ||
326 | +// } | ||
323 | bFaceFalgs = GateModule.modifyFaceInfo(user_id, memory, loginHandleLong); | 327 | bFaceFalgs = GateModule.modifyFaceInfo(user_id, memory, loginHandleLong); |
324 | //卡号添加成功,但是人脸不成功的话,就需要新增人脸 | 328 | //卡号添加成功,但是人脸不成功的话,就需要新增人脸 |
325 | if (!bFaceFalgs) | 329 | if (!bFaceFalgs) |
@@ -370,7 +374,7 @@ public class SendUserInfoTask { | @@ -370,7 +374,7 @@ public class SendUserInfoTask { | ||
370 | if (bCardFlags == -1 && !bFaceFalgs) { | 374 | if (bCardFlags == -1 && !bFaceFalgs) { |
371 | FileUtils.getInstance().writeLogs("下发人脸和卡号失败:" + cardNum + " " + attendanceBean.getClint_id(), FileUtils.sendUserErrTxt); | 375 | FileUtils.getInstance().writeLogs("下发人脸和卡号失败:" + cardNum + " " + attendanceBean.getClint_id(), FileUtils.sendUserErrTxt); |
372 | // System.out.println("添加卡信息和人脸失败"); | 376 | // System.out.println("添加卡信息和人脸失败"); |
373 | - System.out.println("下发人脸和卡号失败" + "sendRecordBean:" + sendRecordBean); | 377 | + System.out.println("下发人脸和卡号失败" + "sendRecordBean:" + sendRecordBean.getDeviceID()+" ,"+sendRecordBean.getNum()+","+loginHandleLong+",bCardFlags:"+bCardFlags+"\r\n"); |
374 | sendRecordBean.setFailContent("下发人脸和卡号失败"); | 378 | sendRecordBean.setFailContent("下发人脸和卡号失败"); |
375 | sendRecordDao.updateFace(sendRecordBean.getNum(), sendRecordBean.getDeviceID(), sendRecordBean.getFailType(), 7);//更新下发失败状态 | 379 | sendRecordDao.updateFace(sendRecordBean.getNum(), sendRecordBean.getDeviceID(), sendRecordBean.getFailType(), 7);//更新下发失败状态 |
376 | sendRecordBean.setFailType(8); | 380 | sendRecordBean.setFailType(8); |
@@ -381,7 +385,7 @@ public class SendUserInfoTask { | @@ -381,7 +385,7 @@ public class SendUserInfoTask { | ||
381 | if (bCardFlags != -1 && !bFaceFalgs) { | 385 | if (bCardFlags != -1 && !bFaceFalgs) { |
382 | FileUtils.getInstance().writeLogs("下发卡号成功,人脸失败:" + cardNum + " " + attendanceBean.getClint_id(), FileUtils.sendUserErrTxt); | 386 | FileUtils.getInstance().writeLogs("下发卡号成功,人脸失败:" + cardNum + " " + attendanceBean.getClint_id(), FileUtils.sendUserErrTxt); |
383 | // System.out.println("添加卡信息成功,添加人脸失败"); | 387 | // System.out.println("添加卡信息成功,添加人脸失败"); |
384 | - System.out.println("customerId:" + sendRecordBean.getCustomerid() + " deviceId:" + sendRecordBean.getDeviceID() + " failType:" + sendRecordBean.getFailType()); | 388 | + System.out.println("customerId:" + sendRecordBean.getCustomerid() + " deviceId:" + sendRecordBean.getDeviceID() + " failType:" + sendRecordBean.getFailType()+"\r\n"); |
385 | sendRecordDao.updateFace(sendRecordBean.getNum(), sendRecordBean.getDeviceID(), sendRecordBean.getFailType(), 5);//更新下发失败状态 | 389 | sendRecordDao.updateFace(sendRecordBean.getNum(), sendRecordBean.getDeviceID(), sendRecordBean.getFailType(), 5);//更新下发失败状态 |
386 | sendRecordBean.setFailContent("下发卡号成功,人脸失败:照片特征值提取失败"); | 390 | sendRecordBean.setFailContent("下发卡号成功,人脸失败:照片特征值提取失败"); |
387 | sendRecordBean.setFailType(5); | 391 | sendRecordBean.setFailType(5); |
@@ -391,7 +395,7 @@ public class SendUserInfoTask { | @@ -391,7 +395,7 @@ public class SendUserInfoTask { | ||
391 | // 卡信息已存在,添加人脸成功 | 395 | // 卡信息已存在,添加人脸成功 |
392 | if (bCardFlags == -1 && bFaceFalgs) { | 396 | if (bCardFlags == -1 && bFaceFalgs) { |
393 | FileUtils.getInstance().writeLogs("下发人脸成功:" + cardNum + " " + attendanceBean.getClint_id(), FileUtils.sendUserSucTxt); | 397 | FileUtils.getInstance().writeLogs("下发人脸成功:" + cardNum + " " + attendanceBean.getClint_id(), FileUtils.sendUserSucTxt); |
394 | - System.out.println("卡信息已存在,添加人脸成功"); | 398 | + System.out.println("卡信息已存在,添加人脸成功-----------\n"); |
395 | } | 399 | } |
396 | } | 400 | } |
397 | 401 | ||
@@ -412,8 +416,11 @@ public class SendUserInfoTask { | @@ -412,8 +416,11 @@ public class SendUserInfoTask { | ||
412 | 416 | ||
413 | if (sendRecordBean.getFailType() == 5) sendRecordBean.setFailType(8); | 417 | if (sendRecordBean.getFailType() == 5) sendRecordBean.setFailType(8); |
414 | 418 | ||
419 | + String imagePath = sendRecordBean.getImgPath().replace("C:/imgCom", | ||
420 | + String.format("E:\\wwwhtdocs\\smartcampus\\face17e5\\School%s\\%s", sendRecordBean.getSchoolId(), sendRecordBean.getUserType() == 1 ? "Teacher" : "Student")); | ||
421 | + | ||
415 | sendRecordDao.addFaceFail(sendRecordBean.getCustomerid(), sendRecordBean.getDeviceID(), sendRecordBean.getNum(), sendRecordBean.getName(), sendRecordBean.getTime(), | 422 | sendRecordDao.addFaceFail(sendRecordBean.getCustomerid(), sendRecordBean.getDeviceID(), sendRecordBean.getNum(), sendRecordBean.getName(), sendRecordBean.getTime(), |
416 | - sendRecordBean.getSchoolName(), sendRecordBean.getImgPath(), sendRecordBean.getSchoolId(), sendRecordBean.getFailContent(), sendRecordBean.getFailType(), sendRecordBean.getUserType(), 22); | 423 | + sendRecordBean.getSchoolName(), imagePath , sendRecordBean.getSchoolId(), sendRecordBean.getFailContent(), sendRecordBean.getFailType(), sendRecordBean.getUserType(), 22); |
417 | // } | 424 | // } |
418 | } | 425 | } |
419 | 426 | ||
@@ -452,15 +459,15 @@ public class SendUserInfoTask { | @@ -452,15 +459,15 @@ public class SendUserInfoTask { | ||
452 | 459 | ||
453 | for (int i = 0; i < sendRecordBeanList.size(); i++) { | 460 | for (int i = 0; i < sendRecordBeanList.size(); i++) { |
454 | SendRecordBean sendRecordBean = sendRecordBeanList.get(i); | 461 | SendRecordBean sendRecordBean = sendRecordBeanList.get(i); |
455 | - String imgPath = sendRecordBean.getImgPath().replace("face17e50","face17e5"); | 462 | + String imgPath = sendRecordBean.getImgPath().replace("face17e50", "face17e5"); |
456 | File file = new File(imgPath); | 463 | File file = new File(imgPath); |
457 | - System.out.println("file:"+file.getAbsolutePath()); | 464 | + System.out.println("file:" + file.getAbsolutePath()); |
458 | if (file.exists()) { | 465 | if (file.exists()) { |
459 | try { | 466 | try { |
460 | FileInputStream fileInputStream = new FileInputStream(file); | 467 | FileInputStream fileInputStream = new FileInputStream(file); |
461 | String fileName = file.getName(); | 468 | String fileName = file.getName(); |
462 | - fileName = fileName.replace("jpg","png"); | ||
463 | - fileName = fileName.replace("jpeg","png"); | 469 | + fileName = fileName.replace("jpg", "png"); |
470 | + fileName = fileName.replace("jpeg", "png"); | ||
464 | File targetFile = new File(targetrFile, fileName); | 471 | File targetFile = new File(targetrFile, fileName); |
465 | if (!targetFile.exists()) targetFile.createNewFile(); | 472 | if (!targetFile.exists()) targetFile.createNewFile(); |
466 | FileOutputStream fileOutputStream = new FileOutputStream(targetFile); | 473 | FileOutputStream fileOutputStream = new FileOutputStream(targetFile); |
@@ -498,23 +505,30 @@ public class SendUserInfoTask { | @@ -498,23 +505,30 @@ public class SendUserInfoTask { | ||
498 | // int bCardFlags = -1;//记录集编号,存在于设备的 | 505 | // int bCardFlags = -1;//记录集编号,存在于设备的 |
499 | int bCardFlags = userDao.getRecordNo(user_id, deviceId) == null ? -1 : Integer.parseInt(userDao.getRecordNo(user_id, deviceId)); | 506 | int bCardFlags = userDao.getRecordNo(user_id, deviceId) == null ? -1 : Integer.parseInt(userDao.getRecordNo(user_id, deviceId)); |
500 | System.out.println("bCardFlags:" + bCardFlags); | 507 | System.out.println("bCardFlags:" + bCardFlags); |
508 | + if (bCardFlags == -1)bCardFlags = 10; | ||
501 | if (bCardFlags != -1) { | 509 | if (bCardFlags != -1) { |
502 | GateModule.deleteCard(bCardFlags, MyTask.lLongMap.get(deviceId)); | 510 | GateModule.deleteCard(bCardFlags, MyTask.lLongMap.get(deviceId)); |
503 | } | 511 | } |
504 | 512 | ||
505 | } | 513 | } |
514 | + | ||
506 | @Async("taskExecutor") | 515 | @Async("taskExecutor") |
507 | - public void addWeiGen(){ | ||
508 | - List<String> customerIDs = sendRecordDao.getWGFail(); | 516 | + public void addWeiGen() { |
517 | + //获取到的设备id集合 | ||
518 | + List<String> deviceIds = sendRecordDao.getWGFail(); | ||
519 | + String url = "http://121.40.109.21:9000/cleanFail?deviceId="; | ||
520 | + RestTemplate restTemplate = new RestTemplate(); | ||
509 | 521 | ||
510 | - for (int i = 0; i < customerIDs.size(); i++) { | ||
511 | - String customerID = customerIDs.get(i); | ||
512 | - addKard(customerID, "2");//微耕 | 522 | + for (int i = 0; i < deviceIds.size(); i++) { |
523 | + String deviceId = deviceIds.get(i); | ||
524 | +// addKard(customerID, "2");//微耕 | ||
525 | + String result = restTemplate.getForObject(url + deviceId, String.class); | ||
526 | + System.out.println("微耕result:" + result); | ||
513 | } | 527 | } |
514 | MyScheduledTask.isSendWeigeng = false; | 528 | MyScheduledTask.isSendWeigeng = false; |
515 | } | 529 | } |
516 | 530 | ||
517 | - String url = "http://campus.myjxt.com/api/OneCard/UpdateDataBK"; | 531 | + /* String url = "http://campus.myjxt.com/api/OneCard/UpdateDataBK"; |
518 | private synchronized void addKard(String customerId, String TerminalType) { | 532 | private synchronized void addKard(String customerId, String TerminalType) { |
519 | StudentBean studentBean = userDao.getStudentUpdate(customerId); | 533 | StudentBean studentBean = userDao.getStudentUpdate(customerId); |
520 | if (studentBean != null && studentBean.getStudentCode() != null) { | 534 | if (studentBean != null && studentBean.getStudentCode() != null) { |
@@ -538,10 +552,10 @@ public class SendUserInfoTask { | @@ -538,10 +552,10 @@ public class SendUserInfoTask { | ||
538 | } else if (studentBean != null && studentBean.getStudentCode() == null) { | 552 | } else if (studentBean != null && studentBean.getStudentCode() == null) { |
539 | // System.out.println(studentBean.getName()+"学籍号不存在"); | 553 | // System.out.println(studentBean.getName()+"学籍号不存在"); |
540 | } | 554 | } |
541 | - } | 555 | + }*/ |
542 | 556 | ||
543 | @Async("taskExecutor") | 557 | @Async("taskExecutor") |
544 | - public void addHaikangface(){ | 558 | + public void addHaikangface() { |
545 | 559 | ||
546 | List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFailHK("18", "9"); | 560 | List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFailHK("18", "9"); |
547 | RestTemplate restTemplate = new RestTemplate(); | 561 | RestTemplate restTemplate = new RestTemplate(); |
@@ -561,28 +575,29 @@ public class SendUserInfoTask { | @@ -561,28 +575,29 @@ public class SendUserInfoTask { | ||
561 | userTy = "Parent"; | 575 | userTy = "Parent"; |
562 | break; | 576 | break; |
563 | } | 577 | } |
564 | - String filePath = String.format("E:\\wwwhtdocs\\SmartCampus\\face17e5\\School%s\\%s\\%s.jpg", sendRecordBean.getSchoolId(), userTy, userDao.getStudentCode(sendRecordBean.getCustomerid())); | 578 | +// String filePath = String.format("E:\\wwwhtdocs\\SmartCampus\\face17e5\\School%s\\%s\\%s.png", sendRecordBean.getSchoolId(), userTy, userDao.getStudentCode(sendRecordBean.getCustomerid())); |
579 | + String filePath = sendRecordBean.getImgPath(); | ||
565 | String url = "http://114.55.30.100:8089/facereco/sendStuCardAndImg?card={card}&deviceId={deviceId}&endTime={endTime}&" + | 580 | String url = "http://114.55.30.100:8089/facereco/sendStuCardAndImg?card={card}&deviceId={deviceId}&endTime={endTime}&" + |
566 | "filePath={filePath}&name={name}&userType={userType}&validTimeEnabled={validTimeEnabled}&startTime={startTime}"; | 581 | "filePath={filePath}&name={name}&userType={userType}&validTimeEnabled={validTimeEnabled}&startTime={startTime}"; |
567 | 582 | ||
568 | - Map<String,Object> map = new HashMap<>(); | 583 | + Map<String, Object> map = new HashMap<>(); |
569 | 584 | ||
570 | - map.put("card",sendRecordBean.getNum()); | ||
571 | - map.put("deviceId",sendRecordBean.getDeviceID()); | ||
572 | - map.put("endTime","2033-10-01 10:00:00"); | ||
573 | - map.put("filePath",filePath); | ||
574 | - map.put("name",sendRecordBean.getName()); | ||
575 | - map.put("userType",userType); | ||
576 | - map.put("validTimeEnabled","1"); | ||
577 | - map.put("startTime","2019-10-01 10:00:00"); | 585 | + map.put("card", sendRecordBean.getNum()); |
586 | + map.put("deviceId", sendRecordBean.getDeviceID()); | ||
587 | + map.put("endTime", "2033-10-01 10:00:00"); | ||
588 | + map.put("filePath", filePath); | ||
589 | + map.put("name", sendRecordBean.getName()); | ||
590 | + map.put("userType", userType); | ||
591 | + map.put("validTimeEnabled", "1"); | ||
592 | + map.put("startTime", "2019-10-01 10:00:00"); | ||
578 | 593 | ||
579 | - ResponseEntity<String> responseEntity = restTemplate.getForEntity(url,String.class,map); | 594 | + ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class, map); |
580 | 595 | ||
581 | - System.out.println("responseEntity:---------------------------"+map.toString()); | 596 | + System.out.println("responseEntity:---------------------------" + map.toString()); |
582 | 597 | ||
583 | String result = responseEntity.getBody(); | 598 | String result = responseEntity.getBody(); |
584 | - result = result.replace("<Boolean>",""); | ||
585 | - result = result.replace("</Boolean>",""); | 599 | + result = result.replace("<Boolean>", ""); |
600 | + result = result.replace("</Boolean>", ""); | ||
586 | 601 | ||
587 | boolean result1 = Boolean.parseBoolean(result); | 602 | boolean result1 = Boolean.parseBoolean(result); |
588 | 603 | ||
@@ -597,7 +612,7 @@ public class SendUserInfoTask { | @@ -597,7 +612,7 @@ public class SendUserInfoTask { | ||
597 | } | 612 | } |
598 | 613 | ||
599 | @Async("taskExecutor") | 614 | @Async("taskExecutor") |
600 | - public void addDahuaFace(){ | 615 | + public void addDahuaFace() { |
601 | 616 | ||
602 | List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFail("22"); | 617 | List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFail("22"); |
603 | for (int i = 0; i < sendRecordBeanList.size(); i++) { | 618 | for (int i = 0; i < sendRecordBeanList.size(); i++) { |
@@ -641,7 +656,7 @@ public class SendUserInfoTask { | @@ -641,7 +656,7 @@ public class SendUserInfoTask { | ||
641 | if (img.startsWith("http")) | 656 | if (img.startsWith("http")) |
642 | img = img.replace("http://campus.myjxt.com//", "E://wwwhtdocs/SmartCampus/"); | 657 | img = img.replace("http://campus.myjxt.com//", "E://wwwhtdocs/SmartCampus/"); |
643 | doTaskOne(img, userDao.getAttendanceBeans(String.valueOf(sendRecordBean.getSchoolId()), "22") | 658 | doTaskOne(img, userDao.getAttendanceBeans(String.valueOf(sendRecordBean.getSchoolId()), "22") |
644 | - , userInfoBean, sendRecordBean.getSchoolId() + "", sendRecordBean.getFailType(),sendRecordBean.getUserType()); | 659 | + , userInfoBean, sendRecordBean.getSchoolId() + "", sendRecordBean.getFailType(), sendRecordBean.getUserType()); |
645 | } | 660 | } |
646 | 661 | ||
647 | } | 662 | } |
cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java
1 | package com.example.dahua.control; | 1 | package com.example.dahua.control; |
2 | 2 | ||
3 | +import com.example.dahua.async.SendUserInfoTask; | ||
3 | import com.example.dahua.bean.UploadImg; | 4 | import com.example.dahua.bean.UploadImg; |
4 | import com.example.dahua.service.UserService; | 5 | import com.example.dahua.service.UserService; |
5 | import io.swagger.annotations.Api; | 6 | import io.swagger.annotations.Api; |
7 | +import io.swagger.annotations.ApiOperation; | ||
6 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
9 | +import org.springframework.http.MediaType; | ||
7 | import org.springframework.web.bind.annotation.*; | 10 | import org.springframework.web.bind.annotation.*; |
8 | import org.springframework.web.multipart.MultipartFile; | 11 | import org.springframework.web.multipart.MultipartFile; |
9 | 12 | ||
@@ -14,12 +17,15 @@ import java.io.IOException; | @@ -14,12 +17,15 @@ import java.io.IOException; | ||
14 | 17 | ||
15 | @RestController | 18 | @RestController |
16 | @Api("文件管理器") | 19 | @Api("文件管理器") |
17 | -@RequestMapping("file/*") | 20 | +@RequestMapping(value = "file/*",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) |
18 | public class FileControl { | 21 | public class FileControl { |
19 | 22 | ||
20 | @Autowired | 23 | @Autowired |
21 | UserService userService; | 24 | UserService userService; |
22 | 25 | ||
26 | + @Autowired | ||
27 | + SendUserInfoTask sendUserInfoTask; | ||
28 | + | ||
23 | @RequestMapping(method = RequestMethod.POST, value = "uploadImg") | 29 | @RequestMapping(method = RequestMethod.POST, value = "uploadImg") |
24 | public String uploadImg(@RequestParam("file") MultipartFile file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, | 30 | public String uploadImg(@RequestParam("file") MultipartFile file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, |
25 | @RequestParam("clint_type") String clint_type,@RequestParam("userType") int userType) { | 31 | @RequestParam("clint_type") String clint_type,@RequestParam("userType") int userType) { |
@@ -33,7 +39,8 @@ public class FileControl { | @@ -33,7 +39,8 @@ public class FileControl { | ||
33 | FileOutputStream fileOutputStream = new FileOutputStream(dest); | 39 | FileOutputStream fileOutputStream = new FileOutputStream(dest); |
34 | 40 | ||
35 | fileOutputStream.write(file.getBytes()); | 41 | fileOutputStream.write(file.getBytes()); |
36 | - userService.uploadImgAndUserInfo(dest.getAbsolutePath(), schoolId, studentCode, clint_type,userType); | 42 | + fileOutputStream.close(); |
43 | + userService.uploadImgAndUserInfo(dest.getAbsolutePath(), schoolId, studentCode, clint_type,userType,""); | ||
37 | return "1"; | 44 | return "1"; |
38 | } catch (FileNotFoundException e) { | 45 | } catch (FileNotFoundException e) { |
39 | e.printStackTrace(); | 46 | e.printStackTrace(); |
@@ -42,4 +49,40 @@ public class FileControl { | @@ -42,4 +49,40 @@ public class FileControl { | ||
42 | } | 49 | } |
43 | return "0"; | 50 | return "0"; |
44 | } | 51 | } |
52 | + | ||
53 | + | ||
54 | + @RequestMapping(method = RequestMethod.POST, value = "uploadImgToDev") | ||
55 | + public String uploadImgToDev(@RequestParam("file") MultipartFile file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, | ||
56 | + @RequestParam("clint_type") String clint_type,@RequestParam("userType") int userType,@RequestParam("devid")String devid) { | ||
57 | + String fileName = file.getOriginalFilename();//文件名 | ||
58 | + | ||
59 | + File outFile = new File("C://imgCom"); | ||
60 | + if (!outFile.exists()) outFile.mkdirs(); | ||
61 | + try { | ||
62 | + File dest = new File(outFile, fileName); | ||
63 | + FileOutputStream fileOutputStream = new FileOutputStream(dest); | ||
64 | + | ||
65 | + fileOutputStream.write(file.getBytes()); | ||
66 | + fileOutputStream.close(); | ||
67 | + userService.uploadImgAndUserInfo(dest.getAbsolutePath(), schoolId, studentCode, clint_type,userType,devid); | ||
68 | + return "1"; | ||
69 | + } catch (FileNotFoundException e) { | ||
70 | + e.printStackTrace(); | ||
71 | + } catch (IOException e) { | ||
72 | + e.printStackTrace(); | ||
73 | + } | ||
74 | + return "0"; | ||
75 | + } | ||
76 | + | ||
77 | + @RequestMapping(value = "deleteFace", method = RequestMethod.GET) | ||
78 | + @ApiOperation("删除人脸") | ||
79 | + public void deleteFace(@RequestParam("cardNum") String cardNum, @RequestParam("deviceId") String deviceId) { | ||
80 | + | ||
81 | + sendUserInfoTask.deleteFace(cardNum, deviceId); | ||
82 | + | ||
83 | + } | ||
84 | + | ||
85 | + | ||
86 | + | ||
87 | + | ||
45 | } | 88 | } |
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
@@ -6,6 +6,7 @@ import com.example.dahua.async.SendUserInfoTask; | @@ -6,6 +6,7 @@ import com.example.dahua.async.SendUserInfoTask; | ||
6 | import com.example.dahua.lib.CompressPic; | 6 | import com.example.dahua.lib.CompressPic; |
7 | import com.example.dahua.service.UserService; | 7 | import com.example.dahua.service.UserService; |
8 | import com.example.dahua.utils.*; | 8 | import com.example.dahua.utils.*; |
9 | +import com.sincere.common.util.AuthService; | ||
9 | import io.swagger.annotations.Api; | 10 | import io.swagger.annotations.Api; |
10 | import io.swagger.annotations.ApiImplicitParam; | 11 | import io.swagger.annotations.ApiImplicitParam; |
11 | import io.swagger.annotations.ApiImplicitParams; | 12 | import io.swagger.annotations.ApiImplicitParams; |
@@ -36,11 +37,9 @@ import java.util.*; | @@ -36,11 +37,9 @@ import java.util.*; | ||
36 | */ | 37 | */ |
37 | @RestController("/user/") | 38 | @RestController("/user/") |
38 | @Api(tags = "下发用户信息") | 39 | @Api(tags = "下发用户信息") |
39 | -@RequestMapping("/user/") | 40 | +@RequestMapping(value = "/user/*",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) |
40 | public class UserControl { | 41 | public class UserControl { |
41 | 42 | ||
42 | - private int count = 0; | ||
43 | - | ||
44 | @Autowired | 43 | @Autowired |
45 | UserService userService; | 44 | UserService userService; |
46 | 45 | ||
@@ -50,14 +49,12 @@ public class UserControl { | @@ -50,14 +49,12 @@ public class UserControl { | ||
50 | @Autowired | 49 | @Autowired |
51 | MyTask myTasks; | 50 | MyTask myTasks; |
52 | 51 | ||
53 | -// @Value("${haikangfaceurl}") | ||
54 | -// private String haikangfaceurl; | ||
55 | 52 | ||
56 | @RequestMapping(value = "uploadImgAndUserInfo", method = RequestMethod.GET) | 53 | @RequestMapping(value = "uploadImgAndUserInfo", method = RequestMethod.GET) |
57 | @ApiOperation(value = "上传用户信息") | 54 | @ApiOperation(value = "上传用户信息") |
58 | public boolean uploadImgAndUserInfo(@RequestParam("file") String file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, @RequestParam("clint_type") String clint_type) { | 55 | public boolean uploadImgAndUserInfo(@RequestParam("file") String file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, @RequestParam("clint_type") String clint_type) { |
59 | // return userService.uploadImgAndUserInfo(file, schoolId, studentCode, clint_type); | 56 | // return userService.uploadImgAndUserInfo(file, schoolId, studentCode, clint_type); |
60 | - return HttpUtils.uploadImgs(new File(file),schoolId,studentCode,clint_type,2); | 57 | + return HttpUtils.uploadImgs(new File(file),schoolId,studentCode,clint_type,file.contains("Teacher")?1:2); |
61 | } | 58 | } |
62 | 59 | ||
63 | 60 | ||
@@ -364,13 +361,13 @@ public class UserControl { | @@ -364,13 +361,13 @@ public class UserControl { | ||
364 | } | 361 | } |
365 | } | 362 | } |
366 | 363 | ||
367 | - @RequestMapping(value = "deleteFace", method = RequestMethod.GET) | ||
368 | - @ApiOperation("删除人脸") | ||
369 | - public void deleteFace(@RequestParam("cardNum") String cardNum, @RequestParam("deviceId") String deviceId) { | ||
370 | - | ||
371 | - sendUserInfoTask.deleteFace(cardNum, deviceId); | ||
372 | - | ||
373 | - } | 364 | +// @RequestMapping(value = "deleteFace", method = RequestMethod.GET) |
365 | +// @ApiOperation("删除人脸") | ||
366 | +// public void deleteFace(@RequestParam("cardNum") String cardNum, @RequestParam("deviceId") String deviceId) { | ||
367 | +// | ||
368 | +// sendUserInfoTask.deleteFace(cardNum, deviceId); | ||
369 | +// | ||
370 | +// } | ||
374 | 371 | ||
375 | 372 | ||
376 | @RequestMapping(value = "movePic", method = RequestMethod.GET) | 373 | @RequestMapping(value = "movePic", method = RequestMethod.GET) |
@@ -447,12 +444,12 @@ public class UserControl { | @@ -447,12 +444,12 @@ public class UserControl { | ||
447 | } catch (IOException e) { | 444 | } catch (IOException e) { |
448 | e.printStackTrace(); | 445 | e.printStackTrace(); |
449 | } | 446 | } |
450 | -return "解析失败"; | 447 | + return "解析失败"; |
451 | } | 448 | } |
452 | 449 | ||
453 | 450 | ||
454 | 451 | ||
455 | - private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.12f07855bae00621f319d10f00f6aaa2.2592000.1576727813.282335-15990462"; | 452 | + private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token="+ AuthService.getAuth(); |
456 | 453 | ||
457 | private String getAnswer(String imgUrl, int type) { | 454 | private String getAnswer(String imgUrl, int type) { |
458 | RestTemplate restTemplate = new RestTemplate(); | 455 | RestTemplate restTemplate = new RestTemplate(); |
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
@@ -17,6 +17,9 @@ public interface UserDao { | @@ -17,6 +17,9 @@ public interface UserDao { | ||
17 | @Select("select * from SZ_Attendance where school_id = #{school_id} and clint_type = #{clint_type}") | 17 | @Select("select * from SZ_Attendance where school_id = #{school_id} and clint_type = #{clint_type}") |
18 | List<AttendanceBean> getAttendanceBeans(@Param("school_id")String school_id,@Param("clint_type")String clint_type); | 18 | List<AttendanceBean> getAttendanceBeans(@Param("school_id")String school_id,@Param("clint_type")String clint_type); |
19 | 19 | ||
20 | + @Select("select * from SZ_Attendance where school_id = #{school_id} and clint_type = #{clint_type} and clint_id = #{clint_id}") | ||
21 | + List<AttendanceBean> getAttendanceBeanWithId(@Param("school_id")String school_id,@Param("clint_type")String clint_type,@Param("clint_id")String clint_id); | ||
22 | + | ||
20 | @Select(" select * from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}") | 23 | @Select(" select * from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}") |
21 | UserInfoBean getUserInfo(@Param("school_id")String school_id,@Param("studentcode")String studentcode); | 24 | UserInfoBean getUserInfo(@Param("school_id")String school_id,@Param("studentcode")String studentcode); |
22 | 25 | ||
@@ -46,6 +49,9 @@ public interface UserDao { | @@ -46,6 +49,9 @@ public interface UserDao { | ||
46 | @Delete("delete from SZ_Student_RecoderNo where user_id = #{user_id} and recordNo = #{recordNo}") | 49 | @Delete("delete from SZ_Student_RecoderNo where user_id = #{user_id} and recordNo = #{recordNo}") |
47 | void deleteRecordNo(@Param("user_id") String user_id, @Param("recordNo") int recordNo); | 50 | void deleteRecordNo(@Param("user_id") String user_id, @Param("recordNo") int recordNo); |
48 | 51 | ||
52 | + @Update("update SZ_Student_RecoderNo set user_id = #{user_id} where deviceId = #{deviceId} and recordNo = #{recordNo}") | ||
53 | + void updateRecordNo(@Param("user_id") String user_id, @Param("recordNo") int recordNo,@Param("deviceId")String deviceId); | ||
54 | + | ||
49 | 55 | ||
50 | @Select("select clint_id from SZ_Attendance where clint_type = #{clint_type} and school_id = #{school_id}") | 56 | @Select("select clint_id from SZ_Attendance where clint_type = #{clint_type} and school_id = #{school_id}") |
51 | List<String> getDeviceIds(@Param("clint_type")String clint_type ,@Param("school_id") int school_id); | 57 | List<String> getDeviceIds(@Param("clint_type")String clint_type ,@Param("school_id") int school_id); |
cloud/dahua/src/main/java/com/example/dahua/service/UserService.java
@@ -16,7 +16,7 @@ public interface UserService { | @@ -16,7 +16,7 @@ public interface UserService { | ||
16 | * @param clint_type | 16 | * @param clint_type |
17 | * @return | 17 | * @return |
18 | */ | 18 | */ |
19 | - List<AttendanceBean> getAttendanceBeans(String schoolId,String clint_type); | 19 | + List<AttendanceBean> getAttendanceBeans(String schoolId,String clint_type,String devid); |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * 获取学生基本信息 | 22 | * 获取学生基本信息 |
@@ -34,7 +34,7 @@ public interface UserService { | @@ -34,7 +34,7 @@ public interface UserService { | ||
34 | * @return | 34 | * @return |
35 | */ | 35 | */ |
36 | // boolean uploadImgAndUserInfo(MultipartFile file,String schoolId,String studentCode,String clint_type); | 36 | // boolean uploadImgAndUserInfo(MultipartFile file,String schoolId,String studentCode,String clint_type); |
37 | - boolean uploadImgAndUserInfo(String file,String schoolId,String studentCode,String clint_type,int userType); | 37 | + boolean uploadImgAndUserInfo(String file,String schoolId,String studentCode,String clint_type,int userType,String devid); |
38 | 38 | ||
39 | 39 | ||
40 | /** | 40 | /** |
cloud/dahua/src/main/java/com/example/dahua/service/UserServiceImp.java
@@ -5,6 +5,7 @@ import com.example.dahua.bean.AttendanceBean; | @@ -5,6 +5,7 @@ import com.example.dahua.bean.AttendanceBean; | ||
5 | import com.example.dahua.bean.TeacherBean; | 5 | import com.example.dahua.bean.TeacherBean; |
6 | import com.example.dahua.bean.UserInfoBean; | 6 | import com.example.dahua.bean.UserInfoBean; |
7 | import com.example.dahua.dao.UserDao; | 7 | import com.example.dahua.dao.UserDao; |
8 | +import org.apache.commons.lang.StringUtils; | ||
8 | import org.springframework.beans.factory.annotation.Autowired; | 9 | import org.springframework.beans.factory.annotation.Autowired; |
9 | import org.springframework.stereotype.Repository; | 10 | import org.springframework.stereotype.Repository; |
10 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
@@ -22,7 +23,10 @@ public class UserServiceImp implements UserService { | @@ -22,7 +23,10 @@ public class UserServiceImp implements UserService { | ||
22 | SendUserInfoTask myTask; | 23 | SendUserInfoTask myTask; |
23 | 24 | ||
24 | @Override | 25 | @Override |
25 | - public List<AttendanceBean> getAttendanceBeans(String schoolId, String clint_type) { | 26 | + public List<AttendanceBean> getAttendanceBeans(String schoolId, String clint_type,String devid) { |
27 | + | ||
28 | + if (!StringUtils.isEmpty(devid))return userDao.getAttendanceBeanWithId(schoolId,clint_type,devid); | ||
29 | + | ||
26 | return userDao.getAttendanceBeans(schoolId, clint_type); | 30 | return userDao.getAttendanceBeans(schoolId, clint_type); |
27 | } | 31 | } |
28 | 32 | ||
@@ -41,9 +45,9 @@ public class UserServiceImp implements UserService { | @@ -41,9 +45,9 @@ public class UserServiceImp implements UserService { | ||
41 | * @return | 45 | * @return |
42 | */ | 46 | */ |
43 | @Override | 47 | @Override |
44 | - public boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType) { | 48 | + public boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType,String devid) { |
49 | + List<AttendanceBean> attendanceBeans = getAttendanceBeans(schoolId, clint_type,devid);//获取学校下的大华设备 | ||
45 | 50 | ||
46 | - List<AttendanceBean> attendanceBeans = getAttendanceBeans(schoolId, clint_type);//获取学校下的大华设备 | ||
47 | UserInfoBean userInfoBean = null; | 51 | UserInfoBean userInfoBean = null; |
48 | try { | 52 | try { |
49 | if (userType == 2) { | 53 | if (userType == 2) { |
cloud/dahua/src/main/java/com/example/dahua/xiananDao/SendRecordDao.java
@@ -22,59 +22,62 @@ public interface SendRecordDao { | @@ -22,59 +22,62 @@ public interface SendRecordDao { | ||
22 | 22 | ||
23 | @Insert("insert into Face_SendSuccess values(#{deviceID},#{customerid},#{num},#{name},#{time},#{schoolName},#{imgPath},#{schoolId},#{userType},#{deviceType})") | 23 | @Insert("insert into Face_SendSuccess values(#{deviceID},#{customerid},#{num},#{name},#{time},#{schoolName},#{imgPath},#{schoolId},#{userType},#{deviceType})") |
24 | int addFaceSuccess(@Param("customerid") String customerid, @Param("deviceID") String deviceID, @Param("num") String num, @Param("name") String name, | 24 | int addFaceSuccess(@Param("customerid") String customerid, @Param("deviceID") String deviceID, @Param("num") String num, @Param("name") String name, |
25 | - @Param("time") String time, @Param("schoolName") String schoolName, @Param("imgPath") String imgPath, @Param("schoolId") int schoolId, | ||
26 | - @Param("userType") int userType,@Param("deviceType")int deviceType); | 25 | + @Param("time") String time, @Param("schoolName") String schoolName, @Param("imgPath") String imgPath, @Param("schoolId") int schoolId, |
26 | + @Param("userType") int userType, @Param("deviceType") int deviceType); | ||
27 | 27 | ||
28 | @Select("select * from Face_SendSuccess where num = #{num} and deviceID = #{deviceID} and schoolId = #{schoolId}") | 28 | @Select("select * from Face_SendSuccess where num = #{num} and deviceID = #{deviceID} and schoolId = #{schoolId}") |
29 | - List<SendRecordBean> getFaceSucceIsexit(@Param("deviceID") String clint_id, @Param("schoolId") String school_id,@Param("num") String num); | 29 | + List<SendRecordBean> getFaceSucceIsexit(@Param("deviceID") String clint_id, @Param("schoolId") String school_id, @Param("num") String num); |
30 | 30 | ||
31 | @Delete("delete Face_SendSuccess where num = #{num} and deviceID = #{deviceID} ") | 31 | @Delete("delete Face_SendSuccess where num = #{num} and deviceID = #{deviceID} ") |
32 | - void deleteFaceSuccess(@Param("deviceID") String clint_id,@Param("num") String num); | 32 | + void deleteFaceSuccess(@Param("deviceID") String clint_id, @Param("num") String num); |
33 | 33 | ||
34 | @Update("update Face_SendSuccess set time = #{time} where num = #{num} and deviceID = #{deviceID} ") | 34 | @Update("update Face_SendSuccess set time = #{time} where num = #{num} and deviceID = #{deviceID} ") |
35 | - void updateFaceSuccess(@Param("time")String time,@Param("deviceID") String clint_id,@Param("num") String num); | 35 | + void updateFaceSuccess(@Param("time") String time, @Param("deviceID") String clint_id, @Param("num") String num); |
36 | 36 | ||
37 | 37 | ||
38 | @Insert("insert into Face_SendFail values(#{deviceID},#{customerid},#{num},#{name},#{time},#{schoolName},#{imgPath},#{schoolId},#{failContent},#{failType},#{userType},#{deviceType})") | 38 | @Insert("insert into Face_SendFail values(#{deviceID},#{customerid},#{num},#{name},#{time},#{schoolName},#{imgPath},#{schoolId},#{failContent},#{failType},#{userType},#{deviceType})") |
39 | void addFaceFail(@Param("customerid") String customerid, @Param("deviceID") String deviceID, @Param("num") String num, @Param("name") String name, | 39 | void addFaceFail(@Param("customerid") String customerid, @Param("deviceID") String deviceID, @Param("num") String num, @Param("name") String name, |
40 | @Param("time") String time, @Param("schoolName") String schoolName, @Param("imgPath") String imgPath, @Param("schoolId") int schoolId, @Param("failContent") String failContent, | 40 | @Param("time") String time, @Param("schoolName") String schoolName, @Param("imgPath") String imgPath, @Param("schoolId") int schoolId, @Param("failContent") String failContent, |
41 | - @Param("failType") int failType, @Param("userType") int userType,@Param("deviceType")int deviceType); | 41 | + @Param("failType") int failType, @Param("userType") int userType, @Param("deviceType") int deviceType); |
42 | 42 | ||
43 | 43 | ||
44 | @Select("select * from Face_SendFail where deviceType = #{deviceType}") | 44 | @Select("select * from Face_SendFail where deviceType = #{deviceType}") |
45 | - List<SendRecordBean> getSenFail(@Param("deviceType")String deviceType); | 45 | + List<SendRecordBean> getSenFail(@Param("deviceType") String deviceType); |
46 | 46 | ||
47 | @Select("select * from Face_SendFail where deviceType = #{deviceType} and failType = #{failType}") | 47 | @Select("select * from Face_SendFail where deviceType = #{deviceType} and failType = #{failType}") |
48 | - List<SendRecordBean> getSenFailHK(@Param("deviceType")String deviceType,@Param("failType")String failType); | 48 | + List<SendRecordBean> getSenFailHK(@Param("deviceType") String deviceType, @Param("failType") String failType); |
49 | + | ||
50 | +// @Select("select a.customerID from [dbo].[WG_SendFail] a inner join DBlan137.smartcampus.dbo.SZ_Attendance b on a.deviceID=b.clint_id and b.isConnection=1 order by createTime desc") | ||
51 | +// List<String> getWGFail(); | ||
49 | 52 | ||
50 | - @Select("select a.customerID from [dbo].[WG_SendFail] a inner join DBlan137.smartcampus.dbo.SZ_Attendance b on a.deviceID=b.clint_id and b.isConnection=1 order by createTime desc") | ||
51 | - List<String> getWGFail(); | ||
52 | 53 | ||
54 | + @Select("select DISTINCT a.deviceId from [dbo].[WG_SendFail] a inner join DBlan137.smartcampus.dbo.SZ_Attendance b on a.deviceID=b.clint_id and b.isConnection=1") | ||
55 | + List<String> getWGFail(); | ||
53 | 56 | ||
54 | @Select("select Top(1) deviceID from Face_SendFail where deviceID = #{deviceID} and schoolId = #{schoolId}") | 57 | @Select("select Top(1) deviceID from Face_SendFail where deviceID = #{deviceID} and schoolId = #{schoolId}") |
55 | String getFailIsExit(@Param("deviceID") String clint_id, @Param("schoolId") String school_id); | 58 | String getFailIsExit(@Param("deviceID") String clint_id, @Param("schoolId") String school_id); |
56 | 59 | ||
57 | @Select("select Top(1) Name from Face_SendFail where deviceID = #{deviceID} and num = #{num} and failType = #{failType}") | 60 | @Select("select Top(1) Name from Face_SendFail where deviceID = #{deviceID} and num = #{num} and failType = #{failType}") |
58 | - String getFailNameIsExit(@Param("deviceID") String deviceID,@Param("num") String num, @Param("failType") int failType); | 61 | + String getFailNameIsExit(@Param("deviceID") String deviceID, @Param("num") String num, @Param("failType") int failType); |
59 | 62 | ||
60 | @Select("select * from Face_SendFail where deviceID = #{deviceID} and customerid = #{customerid}") | 63 | @Select("select * from Face_SendFail where deviceID = #{deviceID} and customerid = #{customerid}") |
61 | - List<SendRecordBean> getFaceFailIsExit(@Param("deviceID") String deviceID,@Param("customerid") String customerid); | 64 | + List<SendRecordBean> getFaceFailIsExit(@Param("deviceID") String deviceID, @Param("customerid") String customerid); |
62 | 65 | ||
63 | @Delete("delete Face_SendFail where deviceID = #{deviceID} and num = #{num}") | 66 | @Delete("delete Face_SendFail where deviceID = #{deviceID} and num = #{num}") |
64 | void deleteFaceFail(@Param("num") String num, @Param("deviceID") String deviceID); | 67 | void deleteFaceFail(@Param("num") String num, @Param("deviceID") String deviceID); |
65 | 68 | ||
66 | @Update("update Face_SendFail set failType = #{upfailType} where num = #{num} and deviceID = #{deviceID} and failType = #{failType}") | 69 | @Update("update Face_SendFail set failType = #{upfailType} where num = #{num} and deviceID = #{deviceID} and failType = #{failType}") |
67 | - void updateFace(@Param("num") String num, @Param("deviceID") String deviceID, @Param("failType") int failType,@Param("upfailType") int upfailType); | 70 | + void updateFace(@Param("num") String num, @Param("deviceID") String deviceID, @Param("failType") int failType, @Param("upfailType") int upfailType); |
68 | 71 | ||
69 | @Select("select schoolName from Face_SendFail where schoolId = #{schoolId} and failType = #{failType}") | 72 | @Select("select schoolName from Face_SendFail where schoolId = #{schoolId} and failType = #{failType}") |
70 | String getSchoolDevice(@Param("schoolId") int schoolId, @Param("failType") int failType); | 73 | String getSchoolDevice(@Param("schoolId") int schoolId, @Param("failType") int failType); |
71 | 74 | ||
72 | @Select("select * from Face_SendFail where schoolId = #{schoolId} and userType = #{userType} and deviceID = #{deviceID}") | 75 | @Select("select * from Face_SendFail where schoolId = #{schoolId} and userType = #{userType} and deviceID = #{deviceID}") |
73 | - List<SendRecordBean> getFaceFails(@Param("userType")int userType,@Param("schoolId")int schoolId,@Param("deviceID")String deviceID); | 76 | + List<SendRecordBean> getFaceFails(@Param("userType") int userType, @Param("schoolId") int schoolId, @Param("deviceID") String deviceID); |
74 | 77 | ||
75 | @Insert("insert into Face_Recoder values(#{deviceId},#{user_id},#{name},#{imgurl},#{inOrOut},#{time},#{cardNum})") | 78 | @Insert("insert into Face_Recoder values(#{deviceId},#{user_id},#{name},#{imgurl},#{inOrOut},#{time},#{cardNum})") |
76 | - void addFaceRecoder(@Param("deviceId") String deviceId, @Param("user_id")String user_id, @Param("name")String name, | ||
77 | - @Param("imgurl")String imgurl, @Param("inOrOut")int inOrOut, @Param("time")String time, | ||
78 | - @Param("cardNum")String cardNum); | 79 | + void addFaceRecoder(@Param("deviceId") String deviceId, @Param("user_id") String user_id, @Param("name") String name, |
80 | + @Param("imgurl") String imgurl, @Param("inOrOut") int inOrOut, @Param("time") String time, | ||
81 | + @Param("cardNum") String cardNum); | ||
79 | } | 82 | } |
80 | 83 |
cloud/dahua/src/test/java/com/example/dahua/DahuaApplicationTests.java
@@ -311,13 +311,13 @@ public class DahuaApplicationTests { | @@ -311,13 +311,13 @@ public class DahuaApplicationTests { | ||
311 | @Test | 311 | @Test |
312 | public void test2() { | 312 | public void test2() { |
313 | 313 | ||
314 | - RestTemplate restTemplate = new RestTemplate(); | 314 | + /* RestTemplate restTemplate = new RestTemplate(); |
315 | 315 | ||
316 | 316 | ||
317 | String url = "http://localhost:8991/user/checkFace?url=C:\\Users\\taohandong\\Pictures\\test.jpg"; | 317 | String url = "http://localhost:8991/user/checkFace?url=C:\\Users\\taohandong\\Pictures\\test.jpg"; |
318 | 318 | ||
319 | 319 | ||
320 | - System.out.println("result:"+ restTemplate.getForObject(url,String.class)); | 320 | + System.out.println("result:"+ restTemplate.getForObject(url,String.class));*/ |
321 | 321 | ||
322 | 322 | ||
323 | } | 323 | } |
@@ -325,6 +325,12 @@ public class DahuaApplicationTests { | @@ -325,6 +325,12 @@ public class DahuaApplicationTests { | ||
325 | @Test | 325 | @Test |
326 | public void test1() { | 326 | public void test1() { |
327 | 327 | ||
328 | + | ||
329 | + String url = "http://121.40.109.21:9000/cleanFail?deviceId="; | ||
330 | + RestTemplate restTemplate = new RestTemplate(); | ||
331 | + | ||
332 | + String result = restTemplate.getForObject(url+"253164293",String.class); | ||
333 | +System.out.println("result:"+result); | ||
328 | /* try { | 334 | /* try { |
329 | BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\TaoHandong\\copy\\宿舍.txt")); | 335 | BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\TaoHandong\\copy\\宿舍.txt")); |
330 | String content = null; | 336 | String content = null; |
cloud/geteway/pom.xml
@@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
7 | <artifactId>cloud</artifactId> | 7 | <artifactId>cloud</artifactId> |
8 | <version>1.0.0</version> | 8 | <version>1.0.0</version> |
9 | </parent> | 9 | </parent> |
10 | - <groupId>com.example</groupId> | 10 | + <groupId>com.example.geteway</groupId> |
11 | <artifactId>geteway</artifactId> | 11 | <artifactId>geteway</artifactId> |
12 | <version>1.0.0</version> | 12 | <version>1.0.0</version> |
13 | <name>geteway</name> | 13 | <name>geteway</name> |
@@ -19,39 +19,41 @@ | @@ -19,39 +19,41 @@ | ||
19 | </properties> | 19 | </properties> |
20 | 20 | ||
21 | <dependencies> | 21 | <dependencies> |
22 | - | 22 | + <!--gateway 网关依赖,内置webflux 依赖--> |
23 | <dependency> | 23 | <dependency> |
24 | <groupId>org.springframework.cloud</groupId> | 24 | <groupId>org.springframework.cloud</groupId> |
25 | - <artifactId>spring-cloud-starter-netflix-zuul</artifactId> | 25 | + <artifactId>spring-cloud-starter-gateway</artifactId> |
26 | </dependency> | 26 | </dependency> |
27 | - | ||
28 | <dependency> | 27 | <dependency> |
29 | - <groupId>io.springfox</groupId> | ||
30 | - <artifactId>springfox-swagger2</artifactId> | ||
31 | - <version>2.9.2</version> | 28 | + <groupId>org.springframework.boot</groupId> |
29 | + <artifactId>spring-boot-starter-data-redis-reactive</artifactId> | ||
32 | </dependency> | 30 | </dependency> |
33 | - | ||
34 | <dependency> | 31 | <dependency> |
35 | <groupId>io.springfox</groupId> | 32 | <groupId>io.springfox</groupId> |
36 | <artifactId>springfox-swagger-ui</artifactId> | 33 | <artifactId>springfox-swagger-ui</artifactId> |
37 | <version>2.9.2</version> | 34 | <version>2.9.2</version> |
38 | </dependency> | 35 | </dependency> |
39 | - | ||
40 | - | ||
41 | <dependency> | 36 | <dependency> |
42 | - <groupId>org.springframework.boot</groupId> | ||
43 | - <artifactId>spring-boot-starter-test</artifactId> | ||
44 | - <scope>test</scope> | 37 | + <groupId>io.springfox</groupId> |
38 | + <artifactId>springfox-swagger2</artifactId> | ||
39 | + <version>2.9.2</version> | ||
45 | </dependency> | 40 | </dependency> |
46 | </dependencies> | 41 | </dependencies> |
47 | 42 | ||
48 | - <build> | ||
49 | - <plugins> | ||
50 | - <plugin> | ||
51 | - <groupId>org.springframework.boot</groupId> | ||
52 | - <artifactId>spring-boot-maven-plugin</artifactId> | ||
53 | - </plugin> | ||
54 | - </plugins> | ||
55 | - </build> | 43 | +<!-- <build>--> |
44 | +<!-- <plugins>--> | ||
45 | +<!-- <plugin>--> | ||
46 | +<!-- <groupId>org.springframework.boot</groupId>--> | ||
47 | +<!-- <artifactId>spring-boot-maven-plugin</artifactId>--> | ||
48 | +<!-- <executions>--> | ||
49 | +<!-- <execution>--> | ||
50 | +<!-- <goals>--> | ||
51 | +<!-- <goal>repackage</goal>--> | ||
52 | +<!-- </goals>--> | ||
53 | +<!-- </execution>--> | ||
54 | +<!-- </executions>--> | ||
55 | +<!-- </plugin>--> | ||
56 | +<!-- </plugins>--> | ||
57 | +<!-- </build>--> | ||
56 | 58 | ||
57 | </project> | 59 | </project> |
cloud/geteway/src/main/java/com/example/geteway/DocumentationConfig.java
@@ -1,53 +0,0 @@ | @@ -1,53 +0,0 @@ | ||
1 | -package com.example.geteway; | ||
2 | - | ||
3 | -import org.springframework.cloud.netflix.zuul.filters.Route; | ||
4 | -import org.springframework.cloud.netflix.zuul.filters.RouteLocator; | ||
5 | -import org.springframework.context.annotation.Primary; | ||
6 | -import org.springframework.stereotype.Component; | ||
7 | -import springfox.documentation.swagger.web.SwaggerResource; | ||
8 | -import springfox.documentation.swagger.web.SwaggerResourcesProvider; | ||
9 | - | ||
10 | -import java.util.ArrayList; | ||
11 | -import java.util.List; | ||
12 | - | ||
13 | -@Component | ||
14 | -@Primary | ||
15 | -public class DocumentationConfig implements SwaggerResourcesProvider { | ||
16 | - | ||
17 | - private RouteLocator routeLocator; | ||
18 | - | ||
19 | - public DocumentationConfig(RouteLocator routeLocator){ | ||
20 | - this.routeLocator = routeLocator; | ||
21 | - } | ||
22 | - | ||
23 | - @Override | ||
24 | - public List<SwaggerResource> get() { | ||
25 | - | ||
26 | - List resources = new ArrayList(); | ||
27 | - | ||
28 | - List<Route> routes = routeLocator.getRoutes(); | ||
29 | - | ||
30 | - System.out.println("routes:"+routes.toString()); | ||
31 | - | ||
32 | - for (Route route : | ||
33 | - routes) { | ||
34 | - resources.add(swaggerResource(route.getId(), route.getFullPath().replace("**", "v2/api-docs"), "1.0")); | ||
35 | - } | ||
36 | - | ||
37 | -// resources.add(swaggerResource("海康指纹接口","/mygateway/haikangserver/v2/api-docs","1.0")); | ||
38 | - | ||
39 | -// resources.add(swaggerResource("大华人脸接口","","1.0")); | ||
40 | - | ||
41 | - return resources; | ||
42 | - } | ||
43 | - | ||
44 | - private SwaggerResource swaggerResource(String name,String location,String version){ | ||
45 | - | ||
46 | - SwaggerResource swaggerResource = new SwaggerResource(); | ||
47 | - swaggerResource.setName(name); | ||
48 | - swaggerResource.setLocation(location); | ||
49 | - swaggerResource.setSwaggerVersion(version); | ||
50 | - return swaggerResource; | ||
51 | - | ||
52 | - } | ||
53 | -} |
cloud/geteway/src/main/java/com/example/geteway/GetewayApplication.java
@@ -2,20 +2,12 @@ package com.example.geteway; | @@ -2,20 +2,12 @@ package com.example.geteway; | ||
2 | 2 | ||
3 | import org.springframework.boot.SpringApplication; | 3 | import org.springframework.boot.SpringApplication; |
4 | import org.springframework.cloud.client.SpringCloudApplication; | 4 | import org.springframework.cloud.client.SpringCloudApplication; |
5 | -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | ||
6 | -import org.springframework.cloud.netflix.zuul.EnableZuulProxy; | ||
7 | -import org.springframework.context.annotation.Bean; | ||
8 | -import org.springframework.web.cors.CorsConfiguration; | ||
9 | -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; | ||
10 | -import org.springframework.web.filter.CorsFilter; | ||
11 | 5 | ||
12 | /** | 6 | /** |
13 | * 统一网关配置 | 7 | * 统一网关配置 |
14 | * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务; | 8 | * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务; |
15 | */ | 9 | */ |
16 | @SpringCloudApplication | 10 | @SpringCloudApplication |
17 | -@EnableDiscoveryClient | ||
18 | -@EnableZuulProxy | ||
19 | public class GetewayApplication { | 11 | public class GetewayApplication { |
20 | 12 | ||
21 | public static void main(String[] args) { | 13 | public static void main(String[] args) { |
@@ -23,18 +15,4 @@ public class GetewayApplication { | @@ -23,18 +15,4 @@ public class GetewayApplication { | ||
23 | } | 15 | } |
24 | 16 | ||
25 | 17 | ||
26 | - // 跨域访问 | ||
27 | - @Bean | ||
28 | - public CorsFilter corsFilter() { | ||
29 | - final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); | ||
30 | - final CorsConfiguration config = new CorsConfiguration(); | ||
31 | - config.setAllowCredentials(true); | ||
32 | - config.addAllowedOrigin("*"); | ||
33 | - config.addAllowedHeader("*"); | ||
34 | - config.addAllowedMethod("*"); | ||
35 | - config.setMaxAge(3600L); | ||
36 | - source.registerCorsConfiguration("/**", config); | ||
37 | - return new CorsFilter(source); | ||
38 | - } | ||
39 | - | ||
40 | } | 18 | } |
cloud/geteway/src/main/java/com/example/geteway/Swagger2.java
@@ -1,37 +0,0 @@ | @@ -1,37 +0,0 @@ | ||
1 | -package com.example.geteway; | ||
2 | - | ||
3 | -import org.springframework.context.annotation.Bean; | ||
4 | -import org.springframework.context.annotation.Configuration; | ||
5 | -import springfox.documentation.builders.ApiInfoBuilder; | ||
6 | -import springfox.documentation.builders.PathSelectors; | ||
7 | -import springfox.documentation.builders.RequestHandlerSelectors; | ||
8 | -import springfox.documentation.service.ApiInfo; | ||
9 | -import springfox.documentation.spi.DocumentationType; | ||
10 | -import springfox.documentation.spring.web.plugins.Docket; | ||
11 | -import springfox.documentation.swagger2.annotations.EnableSwagger2; | ||
12 | - | ||
13 | -@Configuration | ||
14 | -@EnableSwagger2 | ||
15 | -public class Swagger2 { | ||
16 | - | ||
17 | - @Bean | ||
18 | - public Docket createRestApi() { | ||
19 | - return new Docket(DocumentationType.SWAGGER_2) | ||
20 | - .apiInfo(apiInfo()) | ||
21 | - .select() | ||
22 | - .apis(RequestHandlerSelectors.basePackage("com.example.geteway.control")) | ||
23 | - .paths(PathSelectors.any()) | ||
24 | - .build(); | ||
25 | - } | ||
26 | - | ||
27 | - private ApiInfo apiInfo() { | ||
28 | - return new ApiInfoBuilder() | ||
29 | - .title("网关服务统一接口") | ||
30 | - .contact("sincere") | ||
31 | - .description("") | ||
32 | - .termsOfServiceUrl("") | ||
33 | - .version("1.0") | ||
34 | - .build(); | ||
35 | - } | ||
36 | - | ||
37 | -} |
cloud/geteway/src/main/java/com/example/geteway/client/config/SwaggerProvider.java
0 → 100644
@@ -0,0 +1,48 @@ | @@ -0,0 +1,48 @@ | ||
1 | +package com.example.geteway.client.config; | ||
2 | + | ||
3 | +import lombok.AllArgsConstructor; | ||
4 | +import org.springframework.cloud.gateway.config.GatewayProperties; | ||
5 | +import org.springframework.cloud.gateway.route.RouteLocator; | ||
6 | +import org.springframework.cloud.gateway.support.NameUtils; | ||
7 | +import org.springframework.context.annotation.Primary; | ||
8 | +import org.springframework.stereotype.Component; | ||
9 | +import springfox.documentation.swagger.web.SwaggerResource; | ||
10 | +import springfox.documentation.swagger.web.SwaggerResourcesProvider; | ||
11 | + | ||
12 | +import java.util.ArrayList; | ||
13 | +import java.util.List; | ||
14 | + | ||
15 | +/** | ||
16 | + * @author Sywd | ||
17 | + */ | ||
18 | +@Component | ||
19 | +@Primary | ||
20 | +@AllArgsConstructor | ||
21 | +public class SwaggerProvider implements SwaggerResourcesProvider { | ||
22 | + public static final String API_URI = "/v2/api-docs"; | ||
23 | + private final RouteLocator routeLocator; | ||
24 | + private final GatewayProperties gatewayProperties; | ||
25 | + | ||
26 | + | ||
27 | + @Override | ||
28 | + public List<SwaggerResource> get() { | ||
29 | + List<SwaggerResource> resources = new ArrayList<>(); | ||
30 | + List<String> routes = new ArrayList<>(); | ||
31 | + routeLocator.getRoutes().subscribe(route -> routes.add(route.getId())); | ||
32 | + gatewayProperties.getRoutes().stream().filter(routeDefinition -> routes.contains(routeDefinition.getId())) | ||
33 | + .forEach(routeDefinition -> routeDefinition.getPredicates().stream() | ||
34 | + .filter(predicateDefinition -> ("Path").equalsIgnoreCase(predicateDefinition.getName())) | ||
35 | + .forEach(predicateDefinition -> resources.add(swaggerResource(routeDefinition.getId(), | ||
36 | + predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX + "0") | ||
37 | + .replace("/**", API_URI))))); | ||
38 | + return resources; | ||
39 | + } | ||
40 | + | ||
41 | + private SwaggerResource swaggerResource(String name, String location) { | ||
42 | + SwaggerResource swaggerResource = new SwaggerResource(); | ||
43 | + swaggerResource.setName(name); | ||
44 | + swaggerResource.setLocation(location); | ||
45 | + swaggerResource.setSwaggerVersion("2.0"); | ||
46 | + return swaggerResource; | ||
47 | + } | ||
48 | +} |
cloud/geteway/src/main/java/com/example/geteway/client/filter/SwaggerHeaderFilter.java
0 → 100644
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +package com.example.geteway.client.filter; | ||
2 | + | ||
3 | +import com.example.geteway.client.config.SwaggerProvider; | ||
4 | +import org.springframework.cloud.gateway.filter.GatewayFilter; | ||
5 | +import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; | ||
6 | +import org.springframework.http.server.reactive.ServerHttpRequest; | ||
7 | +import org.springframework.stereotype.Component; | ||
8 | +import org.springframework.util.StringUtils; | ||
9 | +import org.springframework.web.server.ServerWebExchange; | ||
10 | + | ||
11 | +/** | ||
12 | + * Spring 已修复该功能 | ||
13 | + */ | ||
14 | +@Component | ||
15 | +@Deprecated | ||
16 | +public class SwaggerHeaderFilter extends AbstractGatewayFilterFactory { | ||
17 | + private static final String HEADER_NAME = "X-Forwarded-Prefix"; | ||
18 | + | ||
19 | + @Override | ||
20 | + public GatewayFilter apply(Object config) { | ||
21 | + return (exchange, chain) -> { | ||
22 | + ServerHttpRequest request = exchange.getRequest(); | ||
23 | + String path = request.getURI().getPath(); | ||
24 | + if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) { | ||
25 | + return chain.filter(exchange); | ||
26 | + } | ||
27 | + | ||
28 | + String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI)); | ||
29 | + | ||
30 | + | ||
31 | + ServerHttpRequest newRequest = request.mutate().header(HEADER_NAME, basePath).build(); | ||
32 | + ServerWebExchange newExchange = exchange.mutate().request(newRequest).build(); | ||
33 | + return chain.filter(newExchange); | ||
34 | + }; | ||
35 | + } | ||
36 | +} |
cloud/geteway/src/main/java/com/example/geteway/client/handler/SwaggerHandler.java
0 → 100644
@@ -0,0 +1,45 @@ | @@ -0,0 +1,45 @@ | ||
1 | +package com.example.geteway.client.handler; | ||
2 | + | ||
3 | +import org.springframework.beans.factory.annotation.Autowired; | ||
4 | +import org.springframework.http.HttpStatus; | ||
5 | +import org.springframework.http.ResponseEntity; | ||
6 | +import org.springframework.web.bind.annotation.GetMapping; | ||
7 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
8 | +import org.springframework.web.bind.annotation.RestController; | ||
9 | +import reactor.core.publisher.Mono; | ||
10 | +import springfox.documentation.swagger.web.*; | ||
11 | + | ||
12 | +import java.util.Optional; | ||
13 | + | ||
14 | +@RestController | ||
15 | +@RequestMapping("/swagger-resources") | ||
16 | +public class SwaggerHandler { | ||
17 | + @Autowired(required = false) | ||
18 | + private SecurityConfiguration securityConfiguration; | ||
19 | + @Autowired(required = false) | ||
20 | + private UiConfiguration uiConfiguration; | ||
21 | + private final SwaggerResourcesProvider swaggerResources; | ||
22 | + | ||
23 | + @Autowired | ||
24 | + public SwaggerHandler(SwaggerResourcesProvider swaggerResources) { | ||
25 | + this.swaggerResources = swaggerResources; | ||
26 | + } | ||
27 | + | ||
28 | + | ||
29 | + @GetMapping("/configuration/security") | ||
30 | + public Mono<ResponseEntity<SecurityConfiguration>> securityConfiguration() { | ||
31 | + return Mono.just(new ResponseEntity<>( | ||
32 | + Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK)); | ||
33 | + } | ||
34 | + | ||
35 | + @GetMapping("/configuration/ui") | ||
36 | + public Mono<ResponseEntity<UiConfiguration>> uiConfiguration() { | ||
37 | + return Mono.just(new ResponseEntity<>( | ||
38 | + Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK)); | ||
39 | + } | ||
40 | + | ||
41 | + @GetMapping("") | ||
42 | + public Mono<ResponseEntity> swaggerResources() { | ||
43 | + return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK))); | ||
44 | + } | ||
45 | +} |
cloud/geteway/src/main/resources/application.yaml
@@ -1,56 +0,0 @@ | @@ -1,56 +0,0 @@ | ||
1 | -server: | ||
2 | - port: 8083 | ||
3 | - | ||
4 | -eureka: | ||
5 | - client: | ||
6 | - fetch-registry: true | ||
7 | - register-with-eureka: true | ||
8 | - service-url: | ||
9 | -# defaultZone: http://localhost:8761/eureka/ | ||
10 | - defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | ||
11 | - instance: | ||
12 | - hostname: localhost | ||
13 | - lease-expiration-duration-in-seconds: 90 | ||
14 | - lease-renewal-interval-in-seconds: 30 | ||
15 | - prefer-ip-address: true | ||
16 | - | ||
17 | -spring: | ||
18 | - application: | ||
19 | - name: sincere_geteway | ||
20 | - | ||
21 | - | ||
22 | -zuul: | ||
23 | - routes: | ||
24 | - api-dahua-url: | ||
25 | - path: /dahua/** | ||
26 | - serviceId: dahuaserver | ||
27 | - api-haikang-url: | ||
28 | - path: /haikang/** | ||
29 | - serviceId: haikangserver | ||
30 | - api-iot-url: | ||
31 | - path: /iot/** | ||
32 | - serviceId: NetCoreService | ||
33 | - api-mypulsar-url: | ||
34 | - path: /mypulsar/** | ||
35 | - serviceId: mypulsar | ||
36 | - prefix: /mygateway | ||
37 | - | ||
38 | - | ||
39 | -ribbon: | ||
40 | - eureka: | ||
41 | - enabled: false | ||
42 | - | ||
43 | -haikangserver: | ||
44 | - ribbon: | ||
45 | - listOfServers: http://121.40.109.21:9898 | ||
46 | - | ||
47 | -dahuaserver: | ||
48 | - ribbon: | ||
49 | - listOfServers: http://114.55.30.100:8991 | ||
50 | - | ||
51 | -mypulsar: | ||
52 | - ribbon: | ||
53 | - listOfServers: http://121.40.109.21:10009 | ||
54 | - | ||
55 | - | ||
56 | - |
@@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||
1 | +eureka: | ||
2 | + client: | ||
3 | + fetch-registry: true | ||
4 | + register-with-eureka: true | ||
5 | + service-url: | ||
6 | +# defaultZone: http://localhost:8761/eureka/ | ||
7 | + defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ | ||
8 | + instance: | ||
9 | + hostname: localhost | ||
10 | + lease-expiration-duration-in-seconds: 90 | ||
11 | + lease-renewal-interval-in-seconds: 10 | ||
12 | + prefer-ip-address: true | ||
13 | + | ||
14 | +spring: | ||
15 | + cloud: | ||
16 | + gateway: | ||
17 | + routes: | ||
18 | + - id: haikangserver | ||
19 | + uri: lb://haikangserver | ||
20 | + predicates: | ||
21 | + - Path=/haikangserver/** | ||
22 | + filters: | ||
23 | + - StripPrefix=1 |
@@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||
1 | +#端口 | ||
2 | +server: | ||
3 | + port: 8083 | ||
4 | + | ||
5 | +#服务名称 | ||
6 | +spring: | ||
7 | + application: | ||
8 | + name: sincere_geteway | ||
9 | + main: | ||
10 | + allow-bean-definition-overriding: true | ||
11 | + | ||
12 | + | ||
13 | +management: | ||
14 | + endpoints: | ||
15 | + web: | ||
16 | + exposure: | ||
17 | + include: "*" | ||
18 | + endpoint: | ||
19 | + health: | ||
20 | + show-details: always | ||
21 | + | ||
22 | + | ||
23 | + | ||
0 | \ No newline at end of file | 24 | \ No newline at end of file |
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
@@ -115,7 +115,7 @@ public class CMSServer implements ApplicationRunner { | @@ -115,7 +115,7 @@ public class CMSServer implements ApplicationRunner { | ||
115 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { | 115 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { |
116 | public boolean invoke(NativeLong lUserID, int dwDataType, Pointer pOutBuffer, int dwOutLen, HCEHomeCMS.NET_EHOME_SERVER_INFO pInBuffer, int dwInLen, Pointer pUser) { | 116 | public boolean invoke(NativeLong lUserID, int dwDataType, Pointer pOutBuffer, int dwOutLen, HCEHomeCMS.NET_EHOME_SERVER_INFO pInBuffer, int dwInLen, Pointer pUser) { |
117 | String deviceId = ""; | 117 | String deviceId = ""; |
118 | -// System.out.println("dwDataType:" + dwDataType); | 118 | + System.out.println("dwDataType:" + dwDataType); |
119 | if (dwDataType == 0) { | 119 | if (dwDataType == 0) { |
120 | HCEHomeCMS.NET_EHOME_DEV_REG_INFO strDevRegInfo = new HCEHomeCMS.NET_EHOME_DEV_REG_INFO(); | 120 | HCEHomeCMS.NET_EHOME_DEV_REG_INFO strDevRegInfo = new HCEHomeCMS.NET_EHOME_DEV_REG_INFO(); |
121 | strDevRegInfo.write(); | 121 | strDevRegInfo.write(); |
@@ -457,6 +457,8 @@ public class CMSServer implements ApplicationRunner { | @@ -457,6 +457,8 @@ public class CMSServer implements ApplicationRunner { | ||
457 | face_recoder.setDeviceId(deviceID); | 457 | face_recoder.setDeviceId(deviceID); |
458 | face_recoder.setTime(time); | 458 | face_recoder.setTime(time); |
459 | face_recoder.setName(studentBean.getName()); | 459 | face_recoder.setName(studentBean.getName()); |
460 | + //114.55.30.100 | ||
461 | +// String imgUrl = "http://120.26.116.253:8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId; | ||
460 | String imgUrl = "http://114.55.30.100:8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId; | 462 | String imgUrl = "http://114.55.30.100:8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId; |
461 | face_recoder.setImgurl(imgUrl); | 463 | face_recoder.setImgurl(imgUrl); |
462 | face_recoder.setUser_id(studentBean.getUser_id()); | 464 | face_recoder.setUser_id(studentBean.getUser_id()); |
@@ -469,7 +471,6 @@ public class CMSServer implements ApplicationRunner { | @@ -469,7 +471,6 @@ public class CMSServer implements ApplicationRunner { | ||
469 | 471 | ||
470 | } | 472 | } |
471 | 473 | ||
472 | - | ||
473 | /** | 474 | /** |
474 | * 生成图片服务路径 | 475 | * 生成图片服务路径 |
475 | * | 476 | * |
@@ -636,6 +637,7 @@ public class CMSServer implements ApplicationRunner { | @@ -636,6 +637,7 @@ public class CMSServer implements ApplicationRunner { | ||
636 | int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); | 637 | int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); |
637 | if (validTimeEnabled == 0) System.err.println("删除卡号失败,错误号:" + iErr + "card:" + card); | 638 | if (validTimeEnabled == 0) System.err.println("删除卡号失败,错误号:" + iErr + "card:" + card); |
638 | else System.err.println("下发卡号失败,错误号:" + iErr + "card:" + card); | 639 | else System.err.println("下发卡号失败,错误号:" + iErr + "card:" + card); |
640 | + if (iErr==10)map.remove(deviceId); | ||
639 | } else { | 641 | } else { |
640 | if (validTimeEnabled == 0) System.out.println("删除卡号成功"); | 642 | if (validTimeEnabled == 0) System.out.println("删除卡号成功"); |
641 | else System.out.println("下发卡号成功"); | 643 | else System.out.println("下发卡号成功"); |
cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
@@ -9,7 +9,9 @@ import com.sincere.haikangface.xiananDao.SendRecordDao; | @@ -9,7 +9,9 @@ import com.sincere.haikangface.xiananDao.SendRecordDao; | ||
9 | import org.json.JSONArray; | 9 | import org.json.JSONArray; |
10 | import org.json.JSONObject; | 10 | import org.json.JSONObject; |
11 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
12 | +import org.springframework.scheduling.annotation.Async; | ||
12 | import org.springframework.stereotype.Component; | 13 | import org.springframework.stereotype.Component; |
14 | +import org.springframework.web.bind.annotation.RequestParam; | ||
13 | 15 | ||
14 | import javax.imageio.stream.FileImageInputStream; | 16 | import javax.imageio.stream.FileImageInputStream; |
15 | import java.io.*; | 17 | import java.io.*; |
@@ -66,4 +68,33 @@ public class SendUserAsync { | @@ -66,4 +68,33 @@ public class SendUserAsync { | ||
66 | 68 | ||
67 | } | 69 | } |
68 | 70 | ||
71 | + | ||
72 | + /** | ||
73 | + * 调用传图片接口 | ||
74 | + * @param filePath | ||
75 | + * @param card | ||
76 | + * @param name | ||
77 | + * @param deviceId | ||
78 | + * @param startTime | ||
79 | + * @param endTime | ||
80 | + * @param validTimeEnabled | ||
81 | + * @param userType | ||
82 | + */ | ||
83 | + @Async("taskExecutor") | ||
84 | + public void uploadImgs(String filePath,String card,String name,String deviceId,String startTime,String endTime,int validTimeEnabled,String userType){ | ||
85 | + | ||
86 | + HttpUtil.uploadImgs(filePath,card,name,deviceId,startTime,endTime,validTimeEnabled,userType); | ||
87 | + } | ||
88 | + | ||
89 | + @Async("taskExecutor") | ||
90 | + public void deleteCard(String deviceId, String card){ | ||
91 | + HttpUtil.deleteCard(deviceId,card); | ||
92 | + } | ||
93 | + | ||
94 | + | ||
95 | + @Async("taskExecutor") | ||
96 | + public boolean IsDeviceOnline( String deviceId){ | ||
97 | + return HttpUtil.IsDeviceOnline(deviceId); | ||
98 | + } | ||
99 | + | ||
69 | } | 100 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/StudentBean.java
@@ -53,6 +53,26 @@ public class StudentBean implements Serializable { | @@ -53,6 +53,26 @@ public class StudentBean implements Serializable { | ||
53 | 53 | ||
54 | private String photo; | 54 | private String photo; |
55 | 55 | ||
56 | + private String teacher_num; | ||
57 | + | ||
58 | + private String num; | ||
59 | + | ||
60 | + public String getNum() { | ||
61 | + return num; | ||
62 | + } | ||
63 | + | ||
64 | + public void setNum(String num) { | ||
65 | + this.num = num; | ||
66 | + } | ||
67 | + | ||
68 | + public String getTeacher_num() { | ||
69 | + return teacher_num; | ||
70 | + } | ||
71 | + | ||
72 | + public void setTeacher_num(String teacher_num) { | ||
73 | + this.teacher_num = teacher_num; | ||
74 | + } | ||
75 | + | ||
56 | public String getPhoto() { | 76 | public String getPhoto() { |
57 | return photo; | 77 | return photo; |
58 | } | 78 | } |
@@ -256,12 +276,13 @@ public class StudentBean implements Serializable { | @@ -256,12 +276,13 @@ public class StudentBean implements Serializable { | ||
256 | @Override | 276 | @Override |
257 | public String toString() { | 277 | public String toString() { |
258 | return "StudentBean{" + | 278 | return "StudentBean{" + |
259 | - ", CustomerId='" + CustomerId + '\'' + | ||
260 | ", name='" + name + '\'' + | 279 | ", name='" + name + '\'' + |
280 | + ", ClassName='" + ClassName + '\'' + | ||
281 | + ", Card='" + Card + '\'' + | ||
261 | ", SchoolId=" + SchoolId + | 282 | ", SchoolId=" + SchoolId + |
262 | ", school_id=" + school_id + | 283 | ", school_id=" + school_id + |
263 | - ", studentcode='" + studentcode + '\'' + | ||
264 | - ", student_num='" + student_num + '\'' + | 284 | + ", teacher_num='" + teacher_num + '\'' + |
285 | + ", num='" + num + '\'' + | ||
265 | '}'; | 286 | '}'; |
266 | } | 287 | } |
267 | } | 288 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java
@@ -48,10 +48,11 @@ public class FileControl { | @@ -48,10 +48,11 @@ public class FileControl { | ||
48 | File dest = new File(outFile, fileName); | 48 | File dest = new File(outFile, fileName); |
49 | FileOutputStream fileOutputStream = new FileOutputStream(dest); | 49 | FileOutputStream fileOutputStream = new FileOutputStream(dest); |
50 | fileOutputStream.write(file.getBytes()); | 50 | fileOutputStream.write(file.getBytes()); |
51 | + fileOutputStream.close(); | ||
51 | String filePath = dest.getAbsolutePath(); | 52 | String filePath = dest.getAbsolutePath(); |
52 | FileUtils.getInstance().writeLogs("filePath:" + filePath + " card:" + card + " name:" + name + " deviceId:" + deviceId, FileUtils.sendUserInfo); | 53 | FileUtils.getInstance().writeLogs("filePath:" + filePath + " card:" + card + " name:" + name + " deviceId:" + deviceId, FileUtils.sendUserInfo); |
53 | long time = System.currentTimeMillis(); | 54 | long time = System.currentTimeMillis(); |
54 | -// if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); | 55 | + if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); |
55 | if (new File(filePath.trim()).exists()) { | 56 | if (new File(filePath.trim()).exists()) { |
56 | String targetPath = FileUtils.picPathComp + new File(filePath).getName(); | 57 | String targetPath = FileUtils.picPathComp + new File(filePath).getName(); |
57 | try { | 58 | try { |
@@ -86,7 +87,23 @@ public class FileControl { | @@ -86,7 +87,23 @@ public class FileControl { | ||
86 | @RequestMapping(value = "IsDeviceOnline", method = RequestMethod.GET) | 87 | @RequestMapping(value = "IsDeviceOnline", method = RequestMethod.GET) |
87 | @ApiOperation("判断设备是否在线") | 88 | @ApiOperation("判断设备是否在线") |
88 | public String IsDeviceOnline(@RequestParam("deviceId") String deviceId) { | 89 | public String IsDeviceOnline(@RequestParam("deviceId") String deviceId) { |
89 | - return cmsServer.getIsDeviceOnline(deviceId)?"1":"0"; | 90 | + return cmsServer.getIsDeviceOnline(deviceId) ? "1" : "0"; |
91 | + } | ||
92 | + | ||
93 | + | ||
94 | + @RequestMapping(value = "DeleteCard", method = RequestMethod.GET) | ||
95 | + @ApiOperation("删除人脸") | ||
96 | + public String deleteCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) { | ||
97 | + cmsServer.deleteCard(deviceId, Long.parseLong(getCard(card), 16) + ""); | ||
98 | + return "1"; | ||
99 | + } | ||
100 | + | ||
101 | + @RequestMapping(value = "getCard", method = RequestMethod.GET) | ||
102 | + @ApiOperation("获取设备人脸是否存在") | ||
103 | + public String getCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) { | ||
104 | + if (cmsServer.getFace(deviceId, Long.parseLong(getCard(card), 16) + "") ) | ||
105 | + return "1"; | ||
106 | + return "0"; | ||
90 | } | 107 | } |
91 | 108 | ||
92 | 109 |
cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java
1 | package com.sincere.haikangface.control; | 1 | package com.sincere.haikangface.control; |
2 | 2 | ||
3 | +import com.netflix.ribbon.proxy.annotation.Http; | ||
3 | import com.sincere.common.dto.smartCampus.SZ_AttendanceDto; | 4 | import com.sincere.common.dto.smartCampus.SZ_AttendanceDto; |
4 | import com.sincere.common.util.BaiduApiUtiols; | 5 | import com.sincere.common.util.BaiduApiUtiols; |
5 | import com.sincere.haikangface.CMSServer; | 6 | import com.sincere.haikangface.CMSServer; |
6 | import com.sincere.haikangface.async.SendUserAsync; | 7 | import com.sincere.haikangface.async.SendUserAsync; |
8 | +import com.sincere.haikangface.bean.StudentBean; | ||
7 | import com.sincere.haikangface.bean.StudentInfo; | 9 | import com.sincere.haikangface.bean.StudentInfo; |
8 | import com.sincere.haikangface.dao.UserDao; | 10 | import com.sincere.haikangface.dao.UserDao; |
9 | import com.sincere.haikangface.fegin.HaikangfaceFegin; | 11 | import com.sincere.haikangface.fegin.HaikangfaceFegin; |
10 | import com.sincere.haikangface.utils.*; | 12 | import com.sincere.haikangface.utils.*; |
11 | import com.sincere.haikangface.xiananDao.SendRecordDao; | 13 | import com.sincere.haikangface.xiananDao.SendRecordDao; |
12 | import io.swagger.annotations.Api; | 14 | import io.swagger.annotations.Api; |
15 | +import io.swagger.annotations.ApiImplicitParam; | ||
16 | +import io.swagger.annotations.ApiImplicitParams; | ||
13 | import io.swagger.annotations.ApiOperation; | 17 | import io.swagger.annotations.ApiOperation; |
14 | import org.springframework.beans.factory.annotation.Autowired; | 18 | import org.springframework.beans.factory.annotation.Autowired; |
19 | +import org.springframework.http.MediaType; | ||
15 | import org.springframework.util.StringUtils; | 20 | import org.springframework.util.StringUtils; |
16 | import org.springframework.web.bind.annotation.RequestMapping; | 21 | import org.springframework.web.bind.annotation.RequestMapping; |
17 | import org.springframework.web.bind.annotation.RequestMethod; | 22 | import org.springframework.web.bind.annotation.RequestMethod; |
@@ -22,10 +27,13 @@ import sun.rmi.runtime.Log; | @@ -22,10 +27,13 @@ import sun.rmi.runtime.Log; | ||
22 | 27 | ||
23 | import java.io.*; | 28 | import java.io.*; |
24 | import java.math.BigInteger; | 29 | import java.math.BigInteger; |
30 | +import java.text.SimpleDateFormat; | ||
31 | +import java.util.Calendar; | ||
32 | +import java.util.Date; | ||
25 | import java.util.List; | 33 | import java.util.List; |
26 | 34 | ||
27 | @RestController | 35 | @RestController |
28 | -@RequestMapping("/facereco/*") | 36 | +@RequestMapping(value = "/facereco/*", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) |
29 | @Api("用户控制") | 37 | @Api("用户控制") |
30 | public class UserControl { | 38 | public class UserControl { |
31 | 39 | ||
@@ -54,43 +62,127 @@ public class UserControl { | @@ -54,43 +62,127 @@ public class UserControl { | ||
54 | @RequestParam("endTime") String endTime, @RequestParam("validTimeEnabled") int validTimeEnabled, @RequestParam("userType") String userType) { | 62 | @RequestParam("endTime") String endTime, @RequestParam("validTimeEnabled") int validTimeEnabled, @RequestParam("userType") String userType) { |
55 | 63 | ||
56 | try { | 64 | try { |
57 | - FileUtils.getInstance().writeLogs("filePath:" + filePath + " card:" + card + " name:" + name + " deviceId:" + deviceId, FileUtils.sendUserInfo); | ||
58 | - long time = System.currentTimeMillis(); | ||
59 | -// if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); | 65 | + |
66 | + if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); | ||
60 | if (new File(filePath.trim()).exists()) { | 67 | if (new File(filePath.trim()).exists()) { |
61 | - String targetPath = FileUtils.picPathComp + new File(filePath).getName(); | ||
62 | - try { | ||
63 | - int isPiliang = 0;//0:批量,1:单张 | ||
64 | - if (filePath.contains("face17e50")) {//批量发送 | ||
65 | - isPiliang = 0; | ||
66 | - } else {//单图发送 | ||
67 | - isPiliang = 1; | ||
68 | - } | ||
69 | - sendUserAsync.sendStuToHaiKang(filePath, targetPath, Long.parseLong(getCard(card), 16)+"", startTime, endTime, validTimeEnabled, name, deviceId, userType, isPiliang); | ||
70 | - | ||
71 | - System.out.println("time:" + (System.currentTimeMillis() - time) / 1000); | ||
72 | - | ||
73 | - } catch (Exception e) { | ||
74 | - e.printStackTrace(); | ||
75 | - return false; | ||
76 | - } | ||
77 | - } else { | ||
78 | 68 | ||
69 | + return sendImg(filePath, deviceId, card, name, userType); | ||
70 | + | ||
71 | + } else { | ||
79 | if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils(); | 72 | if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils(); |
80 | - sendRecoderUtils.sendFail(sendRecordDao, Long.parseLong(getCard(card), 16)+"", filePath, deviceId, userDao, "文件不存在", userType); | 73 | + sendRecoderUtils.sendFail(sendRecordDao, Long.parseLong(getCard(card), 16) + "", filePath, deviceId, userDao, "文件不存在", userType); |
81 | System.out.println("文件不存在:" + filePath); | 74 | System.out.println("文件不存在:" + filePath); |
82 | } | 75 | } |
83 | } catch (Exception e) { | 76 | } catch (Exception e) { |
84 | e.printStackTrace(); | 77 | e.printStackTrace(); |
85 | } | 78 | } |
86 | return true; | 79 | return true; |
87 | -// return HttpUtil.uploadImgs(filePath,card,name,deviceId,startTime,endTime,validTimeEnabled,userType); | ||
88 | } | 80 | } |
89 | 81 | ||
90 | - @RequestMapping(value = "DeleteCard", method = RequestMethod.GET) | 82 | + private boolean sendImg(String filePath, String deviceId, String card, String name, String userType) { |
83 | + long time = System.currentTimeMillis(); | ||
84 | + String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(new Date()); | ||
85 | + Calendar calendar = Calendar.getInstance(); | ||
86 | + calendar.add(Calendar.YEAR, 10); | ||
87 | + String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(calendar.getTime()); | ||
88 | + | ||
89 | + String targetPath = FileUtils.picPathComp + new File(filePath).getName(); | ||
90 | + try { | ||
91 | + int isPiliang = 0;//0:批量,1:单张 | ||
92 | + if (filePath.contains("face17e50")) {//批量发送 | ||
93 | + isPiliang = 0; | ||
94 | + } else {//单图发送 | ||
95 | + isPiliang = 1; | ||
96 | + } | ||
97 | + if (cmsServer.getIsDeviceOnline(deviceId)) | ||
98 | + sendUserAsync.sendStuToHaiKang(filePath, targetPath, Long.parseLong(getCard(card), 16) + "", startTime, endTime, 1, name, deviceId, userType, isPiliang); | ||
99 | + else { | ||
100 | + sendUserAsync.uploadImgs(filePath, card, name, deviceId, startTime, endTime, 1, userType); | ||
101 | + } | ||
102 | + System.out.println("time:" + (System.currentTimeMillis() - time) / 1000); | ||
103 | + return true; | ||
104 | + } catch (Exception e) { | ||
105 | + e.printStackTrace(); | ||
106 | + return false; | ||
107 | + } | ||
108 | + | ||
109 | + } | ||
110 | + | ||
111 | + @RequestMapping(value = "sendFaces", method = RequestMethod.GET) | ||
112 | + @ApiOperation(value = "下发学校下所有人脸给指定设备", notes = "下发所有人脸给指定设备") | ||
113 | + public void sendFaces(@RequestParam("deviceIds") String deviceIds, @RequestParam("schoolId") String schoolId, @RequestParam("userType") String userType) { | ||
114 | + | ||
115 | + String typeName = userType.equals("1") ? "Teacher" : "Student"; | ||
116 | + | ||
117 | + String imgPath = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\" + typeName; | ||
118 | + | ||
119 | + File imgPathFile = new File(imgPath);//目录 | ||
120 | + | ||
121 | + String[] deviceIdsStr = deviceIds.split(","); | ||
122 | + | ||
123 | + | ||
124 | + if (imgPathFile.exists()) { | ||
125 | + File[] imgfiles = imgPathFile.listFiles(); | ||
126 | + if (null != imgfiles) { | ||
127 | + | ||
128 | + for (int i = 0; i < imgfiles.length; i++) { | ||
129 | + File file = imgfiles[i];//图片 | ||
130 | + if (file.exists()) | ||
131 | + for (int j = 0; j < deviceIdsStr.length; j++) { | ||
132 | + String deviceId = deviceIdsStr[j]; | ||
133 | + | ||
134 | + StudentBean studentBean = null; | ||
135 | + String card = "", name = ""; | ||
136 | + if (userType.equals("1")) { | ||
137 | + studentBean = userDao.getTeacherWithstudentcode(file.getName().split("\\.")[0],schoolId); | ||
138 | + if (null!=studentBean){ | ||
139 | + card = studentBean.getTeacher_num(); | ||
140 | + name = studentBean.getName(); | ||
141 | + } | ||
142 | + } else if (userType.equals("2")) { | ||
143 | + studentBean = userDao.getStudentWithstudentcode(file.getName().split("\\.")[0],schoolId); | ||
144 | + if (null != studentBean) { | ||
145 | + card = studentBean.getStudent_num(); | ||
146 | + name = studentBean.getName(); | ||
147 | + } | ||
148 | + } | ||
149 | + | ||
150 | + if (!StringUtils.isEmpty(card)) | ||
151 | + sendImg(file.getAbsolutePath(), deviceId, card, name, userType); | ||
152 | + | ||
153 | + } | ||
154 | + | ||
155 | + } | ||
156 | + | ||
157 | + } | ||
158 | + } | ||
159 | + | ||
160 | + } | ||
161 | + | ||
162 | + @RequestMapping(value = "sendFaceToDevices", method = RequestMethod.GET) | ||
163 | + @ApiOperation(value = "下发单个用户给指定设备", notes = "下发单个用户给指定设备") | ||
164 | + @ApiImplicitParams({@ApiImplicitParam(name = "deviceIds",value = "设备id用逗号,拼接"), | ||
165 | + @ApiImplicitParam(name = "file",value = "100服务器上图片绝对路径")}) | ||
166 | + public void sendFaceToDevices(@RequestParam("deviceIds") String deviceIds, @RequestParam("userType") String userType,@RequestParam("file") String file, | ||
167 | + @RequestParam("card") String card,@RequestParam("name") String name) { | ||
168 | + | ||
169 | + String[] deviceIdsStr = deviceIds.split(","); | ||
170 | + | ||
171 | + for (int i = 0; i < deviceIdsStr.length; i++) { | ||
172 | + String deviceId = deviceIdsStr[i]; | ||
173 | + sendImg(file, deviceId, card, name, userType); | ||
174 | + } | ||
175 | + | ||
176 | + } | ||
177 | + | ||
178 | + | ||
179 | + | ||
180 | + @RequestMapping(value = "DeleteCard", method = RequestMethod.GET) | ||
91 | @ApiOperation("删除人脸") | 181 | @ApiOperation("删除人脸") |
92 | public boolean deleteCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) { | 182 | public boolean deleteCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) { |
93 | - cmsServer.deleteCard(deviceId, Long.parseLong(getCard(card), 16) + ""); | 183 | + if (cmsServer.getIsDeviceOnline(deviceId)) |
184 | + cmsServer.deleteCard(deviceId, Long.parseLong(getCard(card), 16) + ""); | ||
185 | + else HttpUtil.deleteCard(deviceId, card); | ||
94 | return true; | 186 | return true; |
95 | } | 187 | } |
96 | 188 | ||
@@ -98,6 +190,7 @@ public class UserControl { | @@ -98,6 +190,7 @@ public class UserControl { | ||
98 | @ApiOperation("获取设备人脸是否存在") | 190 | @ApiOperation("获取设备人脸是否存在") |
99 | public boolean getCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) { | 191 | public boolean getCard(@RequestParam("deviceId") String deviceId, @RequestParam("card") String card) { |
100 | cmsServer.getFace(deviceId, Long.parseLong(getCard(card), 16) + ""); | 192 | cmsServer.getFace(deviceId, Long.parseLong(getCard(card), 16) + ""); |
193 | +// HttpUtil.getCard(deviceId,card); | ||
101 | return true; | 194 | return true; |
102 | } | 195 | } |
103 | 196 | ||
@@ -107,13 +200,8 @@ public class UserControl { | @@ -107,13 +200,8 @@ public class UserControl { | ||
107 | if (cmsServer.getIsDeviceOnline(deviceId)) { | 200 | if (cmsServer.getIsDeviceOnline(deviceId)) { |
108 | return true; | 201 | return true; |
109 | } else { | 202 | } else { |
110 | - return false; | 203 | + return sendUserAsync.IsDeviceOnline(deviceId); |
111 | } | 204 | } |
112 | - /*if ( HttpUtil.IsDeviceOnline(deviceId)) { | ||
113 | - return true; | ||
114 | - } else { | ||
115 | - return false; | ||
116 | - }*/ | ||
117 | } | 205 | } |
118 | 206 | ||
119 | @RequestMapping(value = "FaceUploadFile", method = RequestMethod.POST) | 207 | @RequestMapping(value = "FaceUploadFile", method = RequestMethod.POST) |
@@ -122,7 +210,7 @@ public class UserControl { | @@ -122,7 +210,7 @@ public class UserControl { | ||
122 | 210 | ||
123 | String targetPath = FileUtils.picPathComp; | 211 | String targetPath = FileUtils.picPathComp; |
124 | System.out.println("fileName:" + file.getOriginalFilename()); | 212 | System.out.println("fileName:" + file.getOriginalFilename()); |
125 | - return ""; | 213 | + return "sss"; |
126 | 214 | ||
127 | } | 215 | } |
128 | 216 | ||
@@ -131,7 +219,7 @@ public class UserControl { | @@ -131,7 +219,7 @@ public class UserControl { | ||
131 | @ApiOperation("根据设备获取考勤模板") | 219 | @ApiOperation("根据设备获取考勤模板") |
132 | public String getKaoqinTem(@RequestParam("deviceId") String deviceId) { | 220 | public String getKaoqinTem(@RequestParam("deviceId") String deviceId) { |
133 | SZ_AttendanceDto attendanceBean = haikangfaceFegin.selectAttendaceWithId(deviceId); | 221 | SZ_AttendanceDto attendanceBean = haikangfaceFegin.selectAttendaceWithId(deviceId); |
134 | - System.out.println("isKaoqin:"+attendanceBean.toString()); | 222 | + System.out.println("isKaoqin:" + attendanceBean.toString()); |
135 | int isKaoqin = attendanceBean.getIsKaoqin();//获取考勤模板id | 223 | int isKaoqin = attendanceBean.getIsKaoqin();//获取考勤模板id |
136 | List<SZ_AttendanceDto> attendanceBeans = haikangfaceFegin.getAttensWithIsKaoqin(isKaoqin);//获取同一模板下的设备 | 224 | List<SZ_AttendanceDto> attendanceBeans = haikangfaceFegin.getAttensWithIsKaoqin(isKaoqin);//获取同一模板下的设备 |
137 | String content = ""; | 225 | String content = ""; |
cloud/haikangface/src/main/java/com/sincere/haikangface/control/ZuoYeControl.java
1 | package com.sincere.haikangface.control; | 1 | package com.sincere.haikangface.control; |
2 | 2 | ||
3 | +import com.sincere.common.util.AuthService; | ||
3 | import com.sincere.haikangface.admindao.ZuoyeAdminDao; | 4 | import com.sincere.haikangface.admindao.ZuoyeAdminDao; |
4 | import com.sincere.haikangface.bean.UserBean; | 5 | import com.sincere.haikangface.bean.UserBean; |
5 | import com.sincere.haikangface.bean.homework.AddQuestion; | 6 | import com.sincere.haikangface.bean.homework.AddQuestion; |
@@ -268,7 +269,7 @@ public class ZuoYeControl { | @@ -268,7 +269,7 @@ public class ZuoYeControl { | ||
268 | return null; | 269 | return null; |
269 | } | 270 | } |
270 | 271 | ||
271 | - private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=24.26683b650b73b63e0b08afa7ac36e880.2592000.1571310480.282335-15990462"; | 272 | + private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token="+ AuthService.getAuth(); |
272 | 273 | ||
273 | private String getAnswer(String imgUrl, int type) { | 274 | private String getAnswer(String imgUrl, int type) { |
274 | RestTemplate restTemplate = new RestTemplate(); | 275 | RestTemplate restTemplate = new RestTemplate(); |
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
@@ -2,6 +2,7 @@ package com.sincere.haikangface.dao; | @@ -2,6 +2,7 @@ package com.sincere.haikangface.dao; | ||
2 | 2 | ||
3 | import com.sincere.haikangface.bean.*; | 3 | import com.sincere.haikangface.bean.*; |
4 | import org.apache.ibatis.annotations.*; | 4 | import org.apache.ibatis.annotations.*; |
5 | +import org.springframework.security.core.parameters.P; | ||
5 | import org.springframework.stereotype.Repository; | 6 | import org.springframework.stereotype.Repository; |
6 | 7 | ||
7 | import java.util.List; | 8 | import java.util.List; |
@@ -169,7 +170,8 @@ public interface UserDao { | @@ -169,7 +170,8 @@ public interface UserDao { | ||
169 | @Select(" select * from SZ_V_School_Student where school_id = 562 and student_num is not null and photo is not null and len(photo)>0") | 170 | @Select(" select * from SZ_V_School_Student where school_id = 562 and student_num is not null and photo is not null and len(photo)>0") |
170 | List<StudentInfo> getAllStus(); | 171 | List<StudentInfo> getAllStus(); |
171 | 172 | ||
172 | - @Select("select DISTINCT user_id from SZ_V_School_Teacher where school_id = 885") | 173 | + @Select("select user_id\n" + |
174 | + "from SZ_V_School_Student where school_id = 13 and student_type =2 and len(student_num)=0\n") | ||
173 | List<String> getUserids(); | 175 | List<String> getUserids(); |
174 | 176 | ||
175 | @Insert("insert into HS_ResRalation (FileId,AddTime,UserId) values (#{FileId},#{AddTime},#{userId})") | 177 | @Insert("insert into HS_ResRalation (FileId,AddTime,UserId) values (#{FileId},#{AddTime},#{userId})") |
@@ -192,4 +194,21 @@ public interface UserDao { | @@ -192,4 +194,21 @@ public interface UserDao { | ||
192 | " from SS_Room\n" + | 194 | " from SS_Room\n" + |
193 | " where SchoolId = 479 and SS_Room.Pid =10284 )") | 195 | " where SchoolId = 479 and SS_Room.Pid =10284 )") |
194 | List<String> getStudentIdWithRoom(); | 196 | List<String> getStudentIdWithRoom(); |
197 | + | ||
198 | + @Select("select CardNum from Virtual_Card where state =0 and id < 5475 ;") | ||
199 | + List<String> getVirCards(); | ||
200 | + | ||
201 | + @Update("update SZ_V_School_Student set student_num =#{student_num} where school_id = 13 and student_type =2 and len(student_num)=0 and user_id = #{user_id}") | ||
202 | + void updateStuCards(@Param("student_num") String card,@Param("user_id")String user_id); | ||
203 | + | ||
204 | + | ||
205 | + @Select("select Top(1)*\n" + | ||
206 | + "from SZ_V_School_Student\n" + | ||
207 | + "where studentcode = #{studentcode} and school_id = #{schoolId}") | ||
208 | + StudentBean getStudentWithstudentcode(@Param("studentcode") String studentcode, @Param("schoolId")String schoolId); | ||
209 | + | ||
210 | + @Select("select Top(1)*\n" + | ||
211 | + "from SZ_V_School_Teacher\n" + | ||
212 | + "where num = #{num} and school_id = #{schoolId}") | ||
213 | + StudentBean getTeacherWithstudentcode(@Param("num") String num,@Param("schoolId")String schoolId); | ||
195 | } | 214 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
@@ -16,7 +16,7 @@ import java.io.InputStream; | @@ -16,7 +16,7 @@ import java.io.InputStream; | ||
16 | public class CompressPic { | 16 | public class CompressPic { |
17 | 17 | ||
18 | public static String CompressPic(String srcPath, String targetPath) throws Exception { | 18 | public static String CompressPic(String srcPath, String targetPath) throws Exception { |
19 | - double cutPercent = 0.1; | 19 | + double cutPercent = 0.4; |
20 | File file = new File(srcPath.trim()); | 20 | File file = new File(srcPath.trim()); |
21 | FileInputStream fileInputStreamSrc = new FileInputStream(file); | 21 | FileInputStream fileInputStreamSrc = new FileInputStream(file); |
22 | BufferedImage bufferedImage = ImageIO.read(fileInputStreamSrc); | 22 | BufferedImage bufferedImage = ImageIO.read(fileInputStreamSrc); |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/HttpUtil.java
@@ -95,7 +95,7 @@ public class HttpUtil { | @@ -95,7 +95,7 @@ public class HttpUtil { | ||
95 | return false; | 95 | return false; |
96 | } | 96 | } |
97 | 97 | ||
98 | - String url = "http://121.40.109.21:8089/file/uploadImg"; | 98 | + String url = "http://120.26.116.253:8089/file/uploadImg"; |
99 | 99 | ||
100 | RestTemplate restTemplate = new RestTemplate(); | 100 | RestTemplate restTemplate = new RestTemplate(); |
101 | 101 | ||
@@ -129,16 +129,37 @@ public class HttpUtil { | @@ -129,16 +129,37 @@ public class HttpUtil { | ||
129 | 129 | ||
130 | public static boolean IsDeviceOnline(String deviceId){ | 130 | public static boolean IsDeviceOnline(String deviceId){ |
131 | 131 | ||
132 | - String url = "http://121.40.109.21:8089/file/getCard"; | 132 | + String url = "http://120.26.116.253:8089/file/IsDeviceOnline?deviceId="+deviceId; |
133 | 133 | ||
134 | RestTemplate restTemplate = new RestTemplate(); | 134 | RestTemplate restTemplate = new RestTemplate(); |
135 | 135 | ||
136 | - Map<String,Object> map = new HashMap<>(); | 136 | +// Map<String,Object> map = new HashMap<>(); |
137 | 137 | ||
138 | - map.put("deviceId",deviceId); | 138 | +// map.put("deviceId",deviceId); |
139 | 139 | ||
140 | - String res = restTemplate.getForObject(url,String.class,map); | 140 | + String res = restTemplate.getForObject(url,String.class); |
141 | return res.equals("1"); | 141 | return res.equals("1"); |
142 | } | 142 | } |
143 | 143 | ||
144 | + public static boolean deleteCard(String deviceId, String card){ | ||
145 | + | ||
146 | + String url = "http://120.26.116.253:8089/file/DeleteCard?deviceId="+deviceId+"&card="+card; | ||
147 | + | ||
148 | + RestTemplate restTemplate = new RestTemplate(); | ||
149 | + | ||
150 | + String res = restTemplate.getForObject(url,String.class); | ||
151 | + | ||
152 | + return res.equals("1"); | ||
153 | + } | ||
154 | + | ||
155 | + public static boolean getCard(String deviceId, String card){ | ||
156 | + | ||
157 | + String url = "http://120.26.116.253:8089/file/getCard?deviceId="+deviceId+"&card="+card; | ||
158 | + | ||
159 | + RestTemplate restTemplate = new RestTemplate(); | ||
160 | + | ||
161 | +// String res = restTemplate.getForObject(url,String.class,map); | ||
162 | + return restTemplate.getForObject(url,String.class).equals("1"); | ||
163 | + } | ||
164 | + | ||
144 | } | 165 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java
@@ -27,7 +27,7 @@ public interface SendRecordDao { | @@ -27,7 +27,7 @@ public interface SendRecordDao { | ||
27 | @Param("userType") int userType, @Param("deviceType") int deviceType); | 27 | @Param("userType") int userType, @Param("deviceType") int deviceType); |
28 | 28 | ||
29 | 29 | ||
30 | - @Select("select * from Face_SendSuccess where schoolId = 1066 ") | 30 | + @Select("select * from Face_SendSuccess where schoolId = 870 ") |
31 | List<SendRecordBean> getSenSuccess(); | 31 | List<SendRecordBean> getSenSuccess(); |
32 | 32 | ||
33 | @Select("select * from Face_SendSuccess where deviceID = #{deviceID} and schoolId = #{schoolId}") | 33 | @Select("select * from Face_SendSuccess where deviceID = #{deviceID} and schoolId = #{schoolId}") |
cloud/haikangface/src/main/resources/application.yaml
@@ -38,8 +38,8 @@ eureka: | @@ -38,8 +38,8 @@ eureka: | ||
38 | lease-renewal-interval-in-seconds: 10 | 38 | lease-renewal-interval-in-seconds: 10 |
39 | client: | 39 | client: |
40 | service-url: | 40 | service-url: |
41 | - defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | ||
42 | -# defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ | 41 | +# defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ |
42 | + defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ | ||
43 | 43 | ||
44 | mybatis: | 44 | mybatis: |
45 | campus: | 45 | campus: |
cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java
@@ -33,6 +33,8 @@ import org.springframework.util.MultiValueMap; | @@ -33,6 +33,8 @@ import org.springframework.util.MultiValueMap; | ||
33 | import org.springframework.util.StringUtils; | 33 | import org.springframework.util.StringUtils; |
34 | import org.springframework.web.client.RestTemplate; | 34 | import org.springframework.web.client.RestTemplate; |
35 | 35 | ||
36 | +import javax.imageio.stream.FileImageInputStream; | ||
37 | +import javax.imageio.stream.FileImageOutputStream; | ||
36 | import javax.ws.rs.core.MultivaluedMap; | 38 | import javax.ws.rs.core.MultivaluedMap; |
37 | import java.io.*; | 39 | import java.io.*; |
38 | import java.math.BigInteger; | 40 | import java.math.BigInteger; |
@@ -70,6 +72,23 @@ public class HaikangfaceApplicationTests { | @@ -70,6 +72,23 @@ public class HaikangfaceApplicationTests { | ||
70 | @Test | 72 | @Test |
71 | public void send() { | 73 | public void send() { |
72 | 74 | ||
75 | +// List<String> virCards = userDao.getVirCards(); | ||
76 | +// List<String> userIds = userDao.getUserids(); | ||
77 | +// for (int i = 0; i < virCards.size(); i++) { | ||
78 | +// String card = virCards.get(i); | ||
79 | +// | ||
80 | +// userDao.updateStuCards(card,userIds.get(i)); | ||
81 | +// } | ||
82 | + | ||
83 | + /* List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenSuccess(); | ||
84 | + | ||
85 | + for (int i = 0; i < sendRecordBeanList.size(); i++) { | ||
86 | + SendRecordBean sendRecordBean = sendRecordBeanList.get(i); | ||
87 | + | ||
88 | + sendRecordDao.deleteFaceFail(sendRecordBean.getNum(),sendRecordBean.getDeviceID()); | ||
89 | + }*/ | ||
90 | + | ||
91 | + | ||
73 | //补发失败人脸 | 92 | //补发失败人脸 |
74 | /*RestTemplate restTemplate = new RestTemplate(); | 93 | /*RestTemplate restTemplate = new RestTemplate(); |
75 | //失败人脸补发 | 94 | //失败人脸补发 |
@@ -242,26 +261,109 @@ public class HaikangfaceApplicationTests { | @@ -242,26 +261,109 @@ public class HaikangfaceApplicationTests { | ||
242 | 261 | ||
243 | @Test | 262 | @Test |
244 | public void fileRes() { | 263 | public void fileRes() { |
245 | -// List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); | ||
246 | - /* List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); | ||
247 | - String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); | ||
248 | - | ||
249 | - for (QuestionBean ques : | ||
250 | - questionBeans) { | ||
251 | - zuoyeAdminDao.addQuestionStem("请回答下列问题", "1", dateTime); | ||
252 | - int stemId = zuoyeAdminDao.getStemId(); | ||
253 | - String intime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); | ||
254 | - zuoyeAdminDao.addQuestion(ques.getQuestion(),ques.getQtype(),ques.getAnswer(),ques.getCorrectAnswer(),ques.getAnalysis(), | ||
255 | - ques.getState(),intime,stemId+"",ques.getExamineFlag(),ques.getSubjectId(),"10","1",ques.getChapterId(),ques.getGradeId()+"","1","","1"); | ||
256 | - }*/ | ||
257 | 264 | ||
258 | -//List<Long> queIds = zuoyeAdminDao.getQueIds(); | 265 | + File filebianhao = new File("C:\\Users\\Administrator\\Desktop\\中专照片汇总200204\\bianhao.txt"); |
266 | + File filecard = new File("C:\\Users\\Administrator\\Desktop\\中专照片汇总200204\\card.txt"); | ||
267 | + | ||
268 | + try { | ||
269 | + BufferedReader bufferedReaderBianhao = new BufferedReader(new FileReader(filebianhao)); | ||
270 | + BufferedReader bufferedReaderCard = new BufferedReader(new FileReader(filecard)); | ||
271 | + | ||
272 | + String lineBianhao = null; | ||
273 | + | ||
274 | + List<String> listBianhao = new ArrayList<>(); | ||
275 | + | ||
276 | + while ((lineBianhao = bufferedReaderBianhao.readLine()) != null) { | ||
277 | + | ||
278 | + listBianhao.add(lineBianhao); | ||
279 | + | ||
280 | + } | ||
281 | + | ||
282 | + String lineCard = null; | ||
283 | + | ||
284 | + List<String> listCard = new ArrayList<>(); | ||
285 | + | ||
286 | + while ((lineCard = bufferedReaderCard.readLine()) != null) { | ||
287 | + | ||
288 | + listCard.add(lineCard); | ||
289 | + | ||
290 | + } | ||
291 | + | ||
292 | + File filePath = new File("C:\\Users\\Administrator\\Desktop\\中专照片汇总200204\\中专照片汇总200204"); | ||
293 | + | ||
294 | + File[] fileImgs = filePath.listFiles(); | ||
295 | + | ||
259 | 296 | ||
297 | + File fileOut = new File("C:\\Users\\Administrator\\Desktop\\中专照片汇总200204"); | ||
260 | 298 | ||
261 | -// for (int i = queIds.size()-1; i >=0 ; i--) { | ||
262 | -// zuoyeAdminDao.addYYQuestionAndKnowledg(queIds.get(i), Long.parseLong(questionBeans.get(questionBeans.size()-1-i).getKnowledgeId()),0,1); | ||
263 | -// } | 299 | + for (int i = 0; i < fileImgs.length; i++) { |
300 | + File img = fileImgs[i]; | ||
264 | 301 | ||
302 | + String bianhao = img.getName().split("\\.")[0]; | ||
303 | + | ||
304 | + for (int j = 0; j < listBianhao.size(); j++) { | ||
305 | + if (bianhao.equals(listBianhao.get(j))) { | ||
306 | + StudentBean studentBean = userDao.getTeacherWithCard(listCard.get(j)); | ||
307 | + if (studentBean == null) {//学生 | ||
308 | + studentBean = userDao.getStudentWithCard(listCard.get(j)); | ||
309 | + | ||
310 | + if (studentBean == null) { | ||
311 | +// System.out.println(listCard.get(j)); | ||
312 | + } else { | ||
313 | + File fileOutStu = new File(fileOut.getAbsolutePath(), "Student"); | ||
314 | + if (!fileOutStu.exists()) fileOutStu.mkdirs(); | ||
315 | + File fileOutStu1 = new File(fileOutStu, studentBean.getStudentcode() + ".png"); | ||
316 | + if (!fileOutStu1.exists()) fileOutStu1.createNewFile(); | ||
317 | + writeImg(fileOutStu1.getAbsolutePath(), img.getAbsolutePath()); | ||
318 | + } | ||
319 | + | ||
320 | + | ||
321 | + } else {//老师 | ||
322 | + File fileOutTea = new File(fileOut.getAbsolutePath(), "Teacher"); | ||
323 | + if (!fileOutTea.exists()) fileOutTea.mkdirs(); | ||
324 | + File fileOutStu1 = new File(fileOutTea, studentBean.getNum() + ".png"); | ||
325 | + if (!fileOutStu1.exists()) fileOutStu1.createNewFile(); | ||
326 | + writeImg(fileOutStu1.getAbsolutePath(), img.getAbsolutePath()); | ||
327 | + System.out.println(studentBean==null?listCard.get(j):""); | ||
328 | + } | ||
329 | + } | ||
330 | + } | ||
331 | + } | ||
332 | + | ||
333 | + | ||
334 | + } catch (FileNotFoundException e) { | ||
335 | + e.printStackTrace(); | ||
336 | + } catch (IOException e) { | ||
337 | + e.printStackTrace(); | ||
338 | + } | ||
339 | + | ||
340 | + } | ||
341 | + | ||
342 | + | ||
343 | + private void writeImg(String imgPath, String srcPath) { | ||
344 | + | ||
345 | + try { | ||
346 | + FileImageOutputStream fileImageOutputStream = new FileImageOutputStream(new File(imgPath)); | ||
347 | + | ||
348 | + FileImageInputStream fileImageInputStream = new FileImageInputStream(new File(srcPath)); | ||
349 | + | ||
350 | + byte[] bytes = new byte[1024]; | ||
351 | + | ||
352 | + int length = -1; | ||
353 | + | ||
354 | + while ((length = fileImageInputStream.read(bytes)) != -1) { | ||
355 | + fileImageOutputStream.write(bytes, 0, length); | ||
356 | + } | ||
357 | + | ||
358 | + | ||
359 | + fileImageInputStream.close(); | ||
360 | + fileImageOutputStream.close(); | ||
361 | + | ||
362 | + | ||
363 | + } catch (IOException e) { | ||
364 | + e.printStackTrace(); | ||
365 | + } | ||
265 | 366 | ||
266 | } | 367 | } |
368 | + | ||
267 | } | 369 | } |
cloud/mypulsar/pom.xml
@@ -58,34 +58,15 @@ | @@ -58,34 +58,15 @@ | ||
58 | <groupId>org.springframework.boot</groupId> | 58 | <groupId>org.springframework.boot</groupId> |
59 | <artifactId>spring-boot-starter-web</artifactId> | 59 | <artifactId>spring-boot-starter-web</artifactId> |
60 | 60 | ||
61 | - <!-- 移除嵌入式tomcat插件 --> | ||
62 | - <!--<exclusions>--> | ||
63 | - <!--<exclusion>--> | ||
64 | - <!--<groupId>org.springframework.boot</groupId>--> | ||
65 | - <!--<artifactId>spring-boot-starter-tomcat</artifactId>--> | ||
66 | - <!--</exclusion>--> | ||
67 | - <!--</exclusions>--> | ||
68 | - | ||
69 | </dependency> | 61 | </dependency> |
70 | 62 | ||
71 | - <!--<dependency>--> | ||
72 | - <!--<groupId>org.springframework.boot</groupId>--> | ||
73 | - <!--<artifactId>spring-boot-starter-tomcat</artifactId>--> | ||
74 | - <!--<scope>provided</scope>--> | ||
75 | - <!--</dependency>--> | ||
76 | - | ||
77 | - <dependency> | ||
78 | - <groupId>org.springframework.boot</groupId> | ||
79 | - <artifactId>spring-boot-starter-test</artifactId> | ||
80 | - <scope>test</scope> | ||
81 | - </dependency> | 63 | +<!-- <dependency>--> |
64 | +<!-- <groupId>org.springframework.boot</groupId>--> | ||
65 | +<!-- <artifactId>spring-boot-starter-test</artifactId>--> | ||
66 | +<!-- <scope>test</scope>--> | ||
67 | +<!-- </dependency>--> | ||
82 | 68 | ||
83 | <dependency> | 69 | <dependency> |
84 | - <groupId>org.apache.pulsar</groupId> | ||
85 | - <artifactId>pulsar-client</artifactId> | ||
86 | - <version>2.3.2</version> | ||
87 | - </dependency> | ||
88 | - <dependency> | ||
89 | <groupId>com.alibaba</groupId> | 70 | <groupId>com.alibaba</groupId> |
90 | <artifactId>fastjson</artifactId> | 71 | <artifactId>fastjson</artifactId> |
91 | <version>1.2.46</version> | 72 | <version>1.2.46</version> |
@@ -116,6 +97,17 @@ | @@ -116,6 +97,17 @@ | ||
116 | <groupId>org.springframework.cloud</groupId> | 97 | <groupId>org.springframework.cloud</groupId> |
117 | <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | 98 | <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> |
118 | </dependency> | 99 | </dependency> |
100 | + <dependency> | ||
101 | + <groupId>org.springframework.boot</groupId> | ||
102 | + <artifactId>spring-boot-autoconfigure</artifactId> | ||
103 | + </dependency> | ||
104 | + | ||
105 | + <dependency> | ||
106 | + <groupId>org.apache.pulsar</groupId> | ||
107 | + <artifactId>pulsar-client</artifactId> | ||
108 | + <version>2.4.2</version> | ||
109 | + </dependency> | ||
110 | + | ||
119 | <!--<dependency>--> | 111 | <!--<dependency>--> |
120 | <!--<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>--> | 112 | <!--<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>--> |
121 | <!--<artifactId>mybatis-enhance-actable</artifactId>--> | 113 | <!--<artifactId>mybatis-enhance-actable</artifactId>--> |
cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java
@@ -278,6 +278,9 @@ public class MyRunnerableInt implements ApplicationRunner { | @@ -278,6 +278,9 @@ public class MyRunnerableInt implements ApplicationRunner { | ||
278 | // value = value.equals("0")?"0":Integer.parseInt(value) / 10 + "A"; | 278 | // value = value.equals("0")?"0":Integer.parseInt(value) / 10 + "A"; |
279 | // log(devId + " 当前电流:" + Integer.parseInt(value) / 10 + "A"); | 279 | // log(devId + " 当前电流:" + Integer.parseInt(value) / 10 + "A"); |
280 | break; | 280 | break; |
281 | + case "router_mgr"://网关路由 | ||
282 | + | ||
283 | + break; | ||
281 | } | 284 | } |
282 | updateDevStatus(deviceBean); | 285 | updateDevStatus(deviceBean); |
283 | } | 286 | } |
@@ -294,7 +297,7 @@ public class MyRunnerableInt implements ApplicationRunner { | @@ -294,7 +297,7 @@ public class MyRunnerableInt implements ApplicationRunner { | ||
294 | if (deviceBean.getValue().equals("有人")) deviceBean.setValue("1"); | 297 | if (deviceBean.getValue().equals("有人")) deviceBean.setValue("1"); |
295 | else deviceBean.setValue("0"); | 298 | else deviceBean.setValue("0"); |
296 | 299 | ||
297 | - ControlUtils.getInstance().conTemper(calDevContrls, deviceBean); | 300 | + ControlUtils.getInstance(deviceDao).conTemper(calDevContrls, deviceBean); |
298 | } | 301 | } |
299 | } | 302 | } |
300 | 303 | ||
@@ -308,7 +311,7 @@ public class MyRunnerableInt implements ApplicationRunner { | @@ -308,7 +311,7 @@ public class MyRunnerableInt implements ApplicationRunner { | ||
308 | 311 | ||
309 | List<CalDevContrl> calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); | 312 | List<CalDevContrl> calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); |
310 | if (null != calDevContrls && calDevContrls.size() > 0) | 313 | if (null != calDevContrls && calDevContrls.size() > 0) |
311 | - ControlUtils.getInstance().conTemper(calDevContrls, deviceBean); | 314 | + ControlUtils.getInstance(deviceDao).conTemper(calDevContrls, deviceBean); |
312 | 315 | ||
313 | } | 316 | } |
314 | 317 |
cloud/mypulsar/src/main/java/com/example/mypulsar/Test.java
1 | package com.example.mypulsar; | 1 | package com.example.mypulsar; |
2 | 2 | ||
3 | +import com.example.mypulsar.dao.UserDao; | ||
3 | import com.example.mypulsar.utils.HttpUtil; | 4 | import com.example.mypulsar.utils.HttpUtil; |
5 | +import org.mybatis.spring.annotation.MapperScan; | ||
6 | +import org.springframework.beans.factory.annotation.Autowired; | ||
7 | +import org.springframework.boot.SpringApplication; | ||
8 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
9 | +import org.springframework.boot.configurationprocessor.json.JSONArray; | ||
10 | +import org.springframework.boot.configurationprocessor.json.JSONException; | ||
11 | +import org.springframework.boot.configurationprocessor.json.JSONObject; | ||
12 | +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; | ||
4 | 13 | ||
14 | +import java.io.*; | ||
5 | import java.text.ParseException; | 15 | import java.text.ParseException; |
6 | import java.text.SimpleDateFormat; | 16 | import java.text.SimpleDateFormat; |
17 | +import java.util.ArrayList; | ||
18 | +import java.util.Calendar; | ||
7 | import java.util.Date; | 19 | import java.util.Date; |
20 | +import java.util.List; | ||
21 | + | ||
22 | + | ||
23 | +public class Test extends SpringBootServletInitializer { | ||
24 | + | ||
25 | + public static void main(String[] args) { | ||
26 | + | ||
8 | 27 | ||
9 | -public class Test { | ||
10 | 28 | ||
11 | - public static void main(String[] args){ | ||
12 | -// 3307102084f3eb3547e7 | ||
13 | -// HttpUtil.controlDev("6cb748ca397c2f03b1nqbh","switch_1","false"); | ||
14 | - /*HttpUtil.addAirCode("{\n" + | ||
15 | - "\"remote_index\":\"null\",\n" + | ||
16 | - "\"remote_id\":\"null\",\n" + | ||
17 | - "\"power\":\"1\",\n" + | ||
18 | - "\"mode\":\"null\",\n" + | ||
19 | - "\"temp\":\"null\",\n" + | ||
20 | - "\"wind\":\"null\"\n" + | ||
21 | - "}\n","45424060b4e62d2183ec");*/ | ||
22 | 29 | ||
23 | } | 30 | } |
24 | 31 | ||
32 | + | ||
25 | } | 33 | } |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/CalDevBeContrl.java
0 → 100644
@@ -0,0 +1,98 @@ | @@ -0,0 +1,98 @@ | ||
1 | +package com.example.mypulsar.bean; | ||
2 | + | ||
3 | +public class CalDevBeContrl { | ||
4 | + | ||
5 | + private int id; | ||
6 | + | ||
7 | + private String ConDevId; | ||
8 | + | ||
9 | + private String ConCode; | ||
10 | + | ||
11 | + private String ConValue; | ||
12 | + | ||
13 | + private String CreateTime; | ||
14 | + | ||
15 | + private String CreateUserId; | ||
16 | + | ||
17 | + private int State; | ||
18 | + | ||
19 | + private int ModeId; | ||
20 | + | ||
21 | + public int getId() { | ||
22 | + return id; | ||
23 | + } | ||
24 | + | ||
25 | + public void setId(int id) { | ||
26 | + this.id = id; | ||
27 | + } | ||
28 | + | ||
29 | + public String getConDevId() { | ||
30 | + return ConDevId; | ||
31 | + } | ||
32 | + | ||
33 | + public void setConDevId(String conDevId) { | ||
34 | + ConDevId = conDevId; | ||
35 | + } | ||
36 | + | ||
37 | + public String getConCode() { | ||
38 | + return ConCode; | ||
39 | + } | ||
40 | + | ||
41 | + public void setConCode(String conCode) { | ||
42 | + ConCode = conCode; | ||
43 | + } | ||
44 | + | ||
45 | + public String getConValue() { | ||
46 | + return ConValue; | ||
47 | + } | ||
48 | + | ||
49 | + public void setConValue(String conValue) { | ||
50 | + ConValue = conValue; | ||
51 | + } | ||
52 | + | ||
53 | + public String getCreateTime() { | ||
54 | + return CreateTime; | ||
55 | + } | ||
56 | + | ||
57 | + public void setCreateTime(String createTime) { | ||
58 | + CreateTime = createTime; | ||
59 | + } | ||
60 | + | ||
61 | + public String getCreateUserId() { | ||
62 | + return CreateUserId; | ||
63 | + } | ||
64 | + | ||
65 | + public void setCreateUserId(String createUserId) { | ||
66 | + CreateUserId = createUserId; | ||
67 | + } | ||
68 | + | ||
69 | + public int getState() { | ||
70 | + return State; | ||
71 | + } | ||
72 | + | ||
73 | + public void setState(int state) { | ||
74 | + State = state; | ||
75 | + } | ||
76 | + | ||
77 | + public int getModeId() { | ||
78 | + return ModeId; | ||
79 | + } | ||
80 | + | ||
81 | + public void setModeId(int modeId) { | ||
82 | + ModeId = modeId; | ||
83 | + } | ||
84 | + | ||
85 | + @Override | ||
86 | + public String toString() { | ||
87 | + return "CalDevBeContrl{" + | ||
88 | + "id=" + id + | ||
89 | + ", ConDevId='" + ConDevId + '\'' + | ||
90 | + ", ConCode='" + ConCode + '\'' + | ||
91 | + ", ConValue='" + ConValue + '\'' + | ||
92 | + ", CreateTime='" + CreateTime + '\'' + | ||
93 | + ", CreateUserId='" + CreateUserId + '\'' + | ||
94 | + ", State=" + State + | ||
95 | + ", ModeId=" + ModeId + | ||
96 | + '}'; | ||
97 | + } | ||
98 | +} |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/CalDevContrl.java
@@ -14,17 +14,19 @@ public class CalDevContrl implements Serializable { | @@ -14,17 +14,19 @@ public class CalDevContrl implements Serializable { | ||
14 | 14 | ||
15 | private String ThreValue; | 15 | private String ThreValue; |
16 | 16 | ||
17 | - private String ConDevId; | 17 | + private String CreateTime; |
18 | 18 | ||
19 | - private String ConCode; | 19 | + private String CreateUserId; |
20 | 20 | ||
21 | - private String ConValue; | 21 | + private String InUserTime; |
22 | 22 | ||
23 | - private String CreateTime; | 23 | + private int Status ; |
24 | 24 | ||
25 | - private String CreateUserId; | 25 | + private String DevBeId;//控制的设备id |
26 | + | ||
27 | + private int ModeId;//联动模板id | ||
26 | 28 | ||
27 | - private String InUseTime; | 29 | + private String AssDevice;//联动传感器设备 |
28 | 30 | ||
29 | public String getDevid() { | 31 | public String getDevid() { |
30 | return Devid; | 32 | return Devid; |
@@ -42,6 +44,22 @@ public class CalDevContrl implements Serializable { | @@ -42,6 +44,22 @@ public class CalDevContrl implements Serializable { | ||
42 | ModelType = modelType; | 44 | ModelType = modelType; |
43 | } | 45 | } |
44 | 46 | ||
47 | + public String getInUserTime() { | ||
48 | + return InUserTime; | ||
49 | + } | ||
50 | + | ||
51 | + public String getThreValue() { | ||
52 | + return ThreValue; | ||
53 | + } | ||
54 | + | ||
55 | + public void setThreValue(String threValue) { | ||
56 | + ThreValue = threValue; | ||
57 | + } | ||
58 | + | ||
59 | + public void setInUserTime(String inUserTime) { | ||
60 | + InUserTime = inUserTime; | ||
61 | + } | ||
62 | + | ||
45 | public int getComPre() { | 63 | public int getComPre() { |
46 | return ComPre; | 64 | return ComPre; |
47 | } | 65 | } |
@@ -58,63 +76,54 @@ public class CalDevContrl implements Serializable { | @@ -58,63 +76,54 @@ public class CalDevContrl implements Serializable { | ||
58 | CompreType = compreType; | 76 | CompreType = compreType; |
59 | } | 77 | } |
60 | 78 | ||
61 | - public String getThresholdValue() { | ||
62 | - return ThreValue; | ||
63 | - } | ||
64 | - | ||
65 | - public void setThresholdValue(String thresholdValue) { | ||
66 | - ThreValue = thresholdValue; | ||
67 | - } | ||
68 | - | ||
69 | - public String getConDevId() { | ||
70 | - return ConDevId; | 79 | + public String getCreateTime() { |
80 | + return CreateTime; | ||
71 | } | 81 | } |
72 | 82 | ||
73 | - public void setConDevId(String conDevId) { | ||
74 | - ConDevId = conDevId; | 83 | + public void setCreateTime(String createTime) { |
84 | + CreateTime = createTime; | ||
75 | } | 85 | } |
76 | 86 | ||
77 | - public String getConCode() { | ||
78 | - return ConCode; | 87 | + public String getCreateUserId() { |
88 | + return CreateUserId; | ||
79 | } | 89 | } |
80 | 90 | ||
81 | - public void setConCode(String conCode) { | ||
82 | - ConCode = conCode; | 91 | + public void setCreateUserId(String createUserId) { |
92 | + CreateUserId = createUserId; | ||
83 | } | 93 | } |
84 | 94 | ||
85 | - public String getConValue() { | ||
86 | - return ConValue; | 95 | + public int getStatus() { |
96 | + return Status; | ||
87 | } | 97 | } |
88 | 98 | ||
89 | - public void setConValue(String conValue) { | ||
90 | - ConValue = conValue; | 99 | + public void setStatus(int status) { |
100 | + Status = status; | ||
91 | } | 101 | } |
92 | 102 | ||
93 | - public String getCreateTime() { | ||
94 | - return CreateTime; | 103 | + public String getDevBeId() { |
104 | + return DevBeId; | ||
95 | } | 105 | } |
96 | 106 | ||
97 | - public void setCreateTime(String createTime) { | ||
98 | - CreateTime = createTime; | 107 | + public void setDevBeId(String devBeId) { |
108 | + DevBeId = devBeId; | ||
99 | } | 109 | } |
100 | 110 | ||
101 | - public String getCreateUserId() { | ||
102 | - return CreateUserId; | 111 | + public int getModeId() { |
112 | + return ModeId; | ||
103 | } | 113 | } |
104 | 114 | ||
105 | - public void setCreateUserId(String createUserId) { | ||
106 | - CreateUserId = createUserId; | 115 | + public void setModeId(int modeId) { |
116 | + ModeId = modeId; | ||
107 | } | 117 | } |
108 | 118 | ||
109 | - public String getInUseTime() { | ||
110 | - return InUseTime; | 119 | + public String getAssDevice() { |
120 | + return AssDevice; | ||
111 | } | 121 | } |
112 | 122 | ||
113 | - public void setInUseTime(String inUseTime) { | ||
114 | - InUseTime = inUseTime; | 123 | + public void setAssDevice(String assDevice) { |
124 | + AssDevice = assDevice; | ||
115 | } | 125 | } |
116 | 126 | ||
117 | - | ||
118 | @Override | 127 | @Override |
119 | public String toString() { | 128 | public String toString() { |
120 | return "CalDevContrl{" + | 129 | return "CalDevContrl{" + |
@@ -122,13 +131,14 @@ public class CalDevContrl implements Serializable { | @@ -122,13 +131,14 @@ public class CalDevContrl implements Serializable { | ||
122 | ", ModelType=" + ModelType + | 131 | ", ModelType=" + ModelType + |
123 | ", ComPre=" + ComPre + | 132 | ", ComPre=" + ComPre + |
124 | ", CompreType=" + CompreType + | 133 | ", CompreType=" + CompreType + |
125 | - ", ThresholdValue='" + ThreValue + '\'' + | ||
126 | - ", ConDevId='" + ConDevId + '\'' + | ||
127 | - ", ConCode='" + ConCode + '\'' + | ||
128 | - ", ConValue='" + ConValue + '\'' + | 134 | + ", ThreValue='" + ThreValue + '\'' + |
129 | ", CreateTime='" + CreateTime + '\'' + | 135 | ", CreateTime='" + CreateTime + '\'' + |
130 | ", CreateUserId='" + CreateUserId + '\'' + | 136 | ", CreateUserId='" + CreateUserId + '\'' + |
131 | - ", InUseTime='" + InUseTime + '\'' + | 137 | + ", InUseTime='" + InUserTime + '\'' + |
138 | + ", Status=" + Status + | ||
139 | + ", DevBeId='" + DevBeId + '\'' + | ||
140 | + ", ModeId=" + ModeId + | ||
141 | + ", AssDevice='" + AssDevice + '\'' + | ||
132 | '}'; | 142 | '}'; |
133 | } | 143 | } |
134 | } | 144 | } |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/InUserTime.java
0 → 100644
@@ -0,0 +1,46 @@ | @@ -0,0 +1,46 @@ | ||
1 | +package com.example.mypulsar.bean; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | + | ||
5 | +public class InUserTime implements Serializable { | ||
6 | + | ||
7 | +// [{"Week":"5","StartTime":"14:02","EndTime":"14:06"}] | ||
8 | + private String Week; | ||
9 | + | ||
10 | + private String StartTime; | ||
11 | + | ||
12 | + private String EndTime; | ||
13 | + | ||
14 | + public String getWeek() { | ||
15 | + return Week; | ||
16 | + } | ||
17 | + | ||
18 | + public void setWeek(String week) { | ||
19 | + Week = week; | ||
20 | + } | ||
21 | + | ||
22 | + public String getStartTime() { | ||
23 | + return StartTime; | ||
24 | + } | ||
25 | + | ||
26 | + public void setStartTime(String startTime) { | ||
27 | + StartTime = startTime; | ||
28 | + } | ||
29 | + | ||
30 | + public String getEndTime() { | ||
31 | + return EndTime; | ||
32 | + } | ||
33 | + | ||
34 | + public void setEndTime(String endTime) { | ||
35 | + EndTime = endTime; | ||
36 | + } | ||
37 | + | ||
38 | + @Override | ||
39 | + public String toString() { | ||
40 | + return "InUserTime{" + | ||
41 | + "Week='" + Week + '\'' + | ||
42 | + ", StartTime='" + StartTime + '\'' + | ||
43 | + ", EndTime='" + EndTime + '\'' + | ||
44 | + '}'; | ||
45 | + } | ||
46 | +} |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/InUserTimeList.java
0 → 100644
@@ -0,0 +1,24 @@ | @@ -0,0 +1,24 @@ | ||
1 | +package com.example.mypulsar.bean; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | +import java.util.List; | ||
5 | + | ||
6 | +public class InUserTimeList implements Serializable { | ||
7 | + | ||
8 | +private List<InUserTime> inUserTimes; | ||
9 | + | ||
10 | + public List<InUserTime> getInUserTimes() { | ||
11 | + return inUserTimes; | ||
12 | + } | ||
13 | + | ||
14 | + public void setInUserTimes(List<InUserTime> inUserTimes) { | ||
15 | + this.inUserTimes = inUserTimes; | ||
16 | + } | ||
17 | + | ||
18 | + @Override | ||
19 | + public String toString() { | ||
20 | + return "InUserTimeList{" + | ||
21 | + "inUserTimes=" + inUserTimes + | ||
22 | + '}'; | ||
23 | + } | ||
24 | +} |
cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java
1 | package com.example.mypulsar.dao; | 1 | package com.example.mypulsar.dao; |
2 | 2 | ||
3 | +import com.example.mypulsar.bean.CalDevBeContrl; | ||
3 | import com.example.mypulsar.bean.CalDevContrl; | 4 | import com.example.mypulsar.bean.CalDevContrl; |
4 | import com.example.mypulsar.bean.DeviceBean; | 5 | import com.example.mypulsar.bean.DeviceBean; |
5 | import org.apache.ibatis.annotations.*; | 6 | import org.apache.ibatis.annotations.*; |
@@ -35,9 +36,13 @@ public interface DeviceDao { | @@ -35,9 +36,13 @@ public interface DeviceDao { | ||
35 | List<DeviceBean> getDevice(@Param("devId") String devId); | 36 | List<DeviceBean> getDevice(@Param("devId") String devId); |
36 | 37 | ||
37 | //获取联动控制模板 | 38 | //获取联动控制模板 |
38 | - @Select("select * from CalDevContrl") | 39 | + @Select("select * from CalDevContrl ") |
39 | List<CalDevContrl> getCalDevContrl(); | 40 | List<CalDevContrl> getCalDevContrl(); |
40 | 41 | ||
41 | - @Select("select * from CalDevContrl where Devid = #{Devid}") | 42 | + |
43 | + @Select("select * from CalDevContrl where Devid = #{Devid} and Status = 1") | ||
42 | List<CalDevContrl> getCalDevContrlWidthDevId(@Param("Devid") String devId); | 44 | List<CalDevContrl> getCalDevContrlWidthDevId(@Param("Devid") String devId); |
45 | + | ||
46 | + @Select("select * from CalDevContrl where State = 1 and Id = #{Id}") | ||
47 | + CalDevBeContrl getCalDevBeControl(@Param("Id") String Id); | ||
43 | } | 48 | } |
cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java
1 | package com.example.mypulsar.utils; | 1 | package com.example.mypulsar.utils; |
2 | 2 | ||
3 | -import com.example.mypulsar.bean.CalDevContrl; | ||
4 | -import com.example.mypulsar.bean.DeviceBean; | 3 | +import com.example.mypulsar.bean.*; |
4 | +import com.example.mypulsar.dao.DeviceDao; | ||
5 | +import org.apache.pulsar.shade.com.google.gson.Gson; | ||
6 | +import org.springframework.boot.configurationprocessor.json.JSONArray; | ||
7 | +import org.springframework.boot.configurationprocessor.json.JSONException; | ||
8 | +import org.springframework.boot.configurationprocessor.json.JSONObject; | ||
5 | 9 | ||
6 | import java.text.ParseException; | 10 | import java.text.ParseException; |
7 | import java.text.SimpleDateFormat; | 11 | import java.text.SimpleDateFormat; |
8 | -import java.util.Date; | ||
9 | -import java.util.List; | 12 | +import java.util.*; |
10 | 13 | ||
11 | public class ControlUtils { | 14 | public class ControlUtils { |
12 | 15 | ||
16 | + private Set<CalDevContrl> deviceSet = new HashSet<>();//保存符合条件的传感器 | ||
17 | + | ||
13 | private static ControlUtils controlUtils; | 18 | private static ControlUtils controlUtils; |
14 | 19 | ||
15 | - public static ControlUtils getInstance(){ | ||
16 | - if (null==controlUtils){ | ||
17 | - synchronized (ControlUtils.class){ | ||
18 | - if (null==controlUtils)controlUtils = new ControlUtils(); | 20 | + private DeviceDao deviceDao; |
21 | + | ||
22 | + public static ControlUtils getInstance(DeviceDao deviceDao) { | ||
23 | + if (null == controlUtils) { | ||
24 | + synchronized (ControlUtils.class) { | ||
25 | + if (null == controlUtils) controlUtils = new ControlUtils(deviceDao); | ||
19 | } | 26 | } |
20 | } | 27 | } |
21 | return controlUtils; | 28 | return controlUtils; |
22 | } | 29 | } |
23 | 30 | ||
31 | + public ControlUtils(DeviceDao deviceDao) { | ||
32 | + | ||
33 | + this.deviceDao = deviceDao; | ||
34 | + | ||
35 | + | ||
36 | + } | ||
37 | + | ||
24 | /** | 38 | /** |
25 | * 根据温度变化操纵 | 39 | * 根据温度变化操纵 |
40 | + * | ||
26 | * @param calDevContrls 联动模板 | 41 | * @param calDevContrls 联动模板 |
27 | - * @param deviceBean 温度传感器对象 | 42 | + * @param deviceBean 温度传感器对象 |
28 | */ | 43 | */ |
29 | - public void conTemper(List<CalDevContrl> calDevContrls, DeviceBean deviceBean){ | 44 | + public void conTemper(List<CalDevContrl> calDevContrls, DeviceBean deviceBean) { |
30 | 45 | ||
31 | for (CalDevContrl cal : | 46 | for (CalDevContrl cal : |
32 | calDevContrls) { | 47 | calDevContrls) { |
33 | 48 | ||
34 | - String inUseTime = cal.getInUseTime();//联动的时间范围,8:00-18:00 | 49 | + String inUseTime = cal.getInUserTime();//联动的时间范围,[{"Week":"5","StartTime":"14:02","EndTime":"14:06"}] |
50 | + if (inUseTime == null) break; | ||
51 | + try { | ||
52 | + JSONArray jsonArray = new JSONArray(inUseTime); | ||
35 | 53 | ||
36 | - String[] inUseTimes = inUseTime.split("-"); | 54 | + for (int i = 0; i < jsonArray.length(); i++) { |
55 | + JSONObject jsonObject = jsonArray.getJSONObject(i); | ||
37 | 56 | ||
38 | - String startTime = inUseTimes[0]; | 57 | + int week = jsonObject.getInt("Week"); |
39 | 58 | ||
40 | - String endTime = inUseTimes[1]; | 59 | + String startTime = jsonObject.getString("StartTime"); |
41 | 60 | ||
42 | - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); | 61 | + String endTime = jsonObject.getString("EndTime"); |
43 | 62 | ||
44 | - try { | 63 | + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); |
64 | + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HH:mm:ss"); | ||
45 | 65 | ||
46 | - Date startDate = simpleDateFormat.parse(startTime); | ||
47 | - Date endDate = simpleDateFormat.parse(endTime); | ||
48 | - Date date = simpleDateFormat.parse(new Date().getHours()+":"+new Date().getMinutes()); | 66 | + int indexWeek = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); |
49 | 67 | ||
50 | - long starTime = startDate.getTime(); | 68 | + if (week == indexWeek) { |
51 | 69 | ||
52 | - if (date.getTime()<endDate.getTime()&&date.getTime()>starTime){ | ||
53 | - //比较器类型 | ||
54 | - int compreType = cal.getCompreType(); | 70 | + Date startDate = simpleDateFormat.parse(startTime); |
71 | + Date endDate = simpleDateFormat.parse(endTime); | ||
72 | + Date date = simpleDateFormat1.parse(new Date().getHours() + ":" + new Date().getMinutes() + ":" + new Date().getSeconds()); | ||
55 | 73 | ||
56 | - switch (compreType){ | ||
57 | - case 1://固定值 | ||
58 | - calCompre(cal,deviceBean); | ||
59 | - break; | ||
60 | - case 2://当天日期 | 74 | + long starTime = startDate.getTime(); |
75 | + System.out.println("startDate:" + starTime); | ||
76 | + System.out.println("endDate:" + endDate.getTime()); | ||
77 | + System.out.println("date:" + date.getTime()); | ||
78 | + | ||
79 | + if (date.getTime() < endDate.getTime() && date.getTime() > starTime) { | ||
80 | + //比较器类型 | ||
81 | + int compreType = cal.getCompreType(); | ||
82 | + | ||
83 | + switch (compreType) { | ||
84 | + case 1://固定值 | ||
85 | + calCompre(cal, deviceBean); | ||
86 | + break; | ||
87 | + case 2://当天日期 | ||
88 | + | ||
89 | + break; | ||
90 | + } | ||
91 | + } | ||
61 | 92 | ||
62 | - break; | ||
63 | } | 93 | } |
94 | + | ||
95 | + System.out.println("jsonObject:" + jsonObject.toString()); | ||
64 | } | 96 | } |
65 | 97 | ||
98 | + } catch (JSONException e) { | ||
99 | + e.printStackTrace(); | ||
66 | } catch (ParseException e) { | 100 | } catch (ParseException e) { |
67 | e.printStackTrace(); | 101 | e.printStackTrace(); |
68 | } | 102 | } |
69 | 103 | ||
70 | - | ||
71 | } | 104 | } |
72 | 105 | ||
73 | } | 106 | } |
74 | 107 | ||
75 | /** | 108 | /** |
76 | - * | ||
77 | - * @param cal 联动模板 | 109 | + * @param cal 联动模板 |
78 | * @param deviceBean 控制设备 | 110 | * @param deviceBean 控制设备 |
79 | */ | 111 | */ |
80 | private void calCompre(CalDevContrl cal, DeviceBean deviceBean) { | 112 | private void calCompre(CalDevContrl cal, DeviceBean deviceBean) { |
81 | - int thrsoldValue = Integer.parseInt(cal.getThresholdValue());//设定的阈值 | 113 | + |
114 | + | ||
115 | + int thrsoldValue = 0; | ||
116 | + | ||
117 | + if (cal.getModelType() == 10) {//人体感应 | ||
118 | + if (cal.getThreValue().equals("有人")) thrsoldValue = 1; | ||
119 | + else thrsoldValue = 0; | ||
120 | + } else { | ||
121 | + thrsoldValue = Integer.parseInt(cal.getThreValue());//设定的阈值 | ||
122 | + } | ||
123 | + | ||
82 | int value = Integer.parseInt(deviceBean.getValue());//实际的值 | 124 | int value = Integer.parseInt(deviceBean.getValue());//实际的值 |
83 | - System.out.println("thrsoldValue:"+thrsoldValue+" value:"+value+" cal:"+cal.toString()); | ||
84 | - switch (cal.getComPre()){ | 125 | + System.out.println("thrsoldValue:" + thrsoldValue + " value:" + value + " cal:" + cal.toString()); |
126 | + switch (cal.getComPre()) { | ||
85 | case 1://大于 | 127 | case 1://大于 |
86 | - if (value>thrsoldValue)//启动触发条件 | 128 | + if (value > thrsoldValue)//启动触发条件 |
87 | startDevice(cal);//开启联动的设备 | 129 | startDevice(cal);//开启联动的设备 |
88 | break; | 130 | break; |
89 | case 2://等于 | 131 | case 2://等于 |
90 | 132 | ||
91 | - if(value == thrsoldValue) | 133 | + if (value == thrsoldValue) |
92 | startDevice(cal);//开启联动的设备 | 134 | startDevice(cal);//开启联动的设备 |
93 | 135 | ||
94 | break; | 136 | break; |
95 | case 3://小于 | 137 | case 3://小于 |
96 | 138 | ||
97 | - if(value < thrsoldValue) | 139 | + if (value < thrsoldValue) |
98 | startDevice(cal);//开启联动的设备 | 140 | startDevice(cal);//开启联动的设备 |
99 | 141 | ||
100 | break; | 142 | break; |
143 | + default://不触发条件 | ||
144 | + | ||
145 | + removeSet(cal); | ||
146 | + | ||
147 | + break; | ||
148 | + } | ||
149 | + | ||
150 | + } | ||
151 | + | ||
152 | + /** | ||
153 | + * 移除设备 | ||
154 | + * | ||
155 | + * @param calDevContrl | ||
156 | + */ | ||
157 | + private void removeSet(CalDevContrl calDevContrl) { | ||
158 | + | ||
159 | + Iterator<CalDevContrl> calDevContrlIterator = deviceSet.iterator(); | ||
160 | + | ||
161 | + while (calDevContrlIterator.hasNext()) { | ||
162 | + | ||
163 | + CalDevContrl calDevContrl1 = calDevContrlIterator.next(); | ||
164 | + if (calDevContrl1.getDevid().equals(calDevContrl.getDevid()) && calDevContrl.getComPre() == calDevContrl1.getComPre()) { | ||
165 | + calDevContrlIterator.remove(); | ||
166 | + } | ||
101 | } | 167 | } |
102 | 168 | ||
103 | } | 169 | } |
104 | 170 | ||
105 | /** | 171 | /** |
106 | - * 执行计划 | 172 | + * 执行计划,并判断联动的设备是否满足条件; |
173 | + * | ||
107 | * @param cal | 174 | * @param cal |
108 | */ | 175 | */ |
109 | private void startDevice(CalDevContrl cal) { | 176 | private void startDevice(CalDevContrl cal) { |
110 | 177 | ||
111 | int modelType = cal.getModelType(); | 178 | int modelType = cal.getModelType(); |
112 | - String conDevId = cal.getConDevId();//被控制的设备id | ||
113 | - String conValue =cal.getConValue(); | ||
114 | - String conCode = cal.getConCode(); | ||
115 | - switch (modelType){ | ||
116 | - case 1://开关 | ||
117 | - HttpUtil.controlDev(conDevId,conCode,conValue); | ||
118 | - break; | ||
119 | - case 2://插座 | ||
120 | - HttpUtil.controlDev(conDevId,conCode,conValue); | ||
121 | - break; | ||
122 | - case 3://排插 | ||
123 | - HttpUtil.controlDev(conDevId,conCode,conValue); | ||
124 | - break; | ||
125 | - case 7://空调伴侣 | ||
126 | - HttpUtil.addAirCode(conValue,conDevId); | ||
127 | - break; | ||
128 | - case 10://开关 | ||
129 | - HttpUtil.controlDev(conDevId,conCode,conValue); | ||
130 | - break; | ||
131 | - case 12://万能遥控器 | ||
132 | - HttpUtil.addAirCode(conValue,conDevId); | ||
133 | - break; | 179 | + |
180 | + deviceSet.add(cal); | ||
181 | + | ||
182 | + String assDevice = cal.getAssDevice();//联动的设备id | ||
183 | + | ||
184 | + boolean isExit = isExist(assDevice.split(",")); | ||
185 | + | ||
186 | + System.out.println("是否符合联动条件:" + isExit); | ||
187 | + | ||
188 | + if (isExit) {//符合联动条件 | ||
189 | + | ||
190 | + List<CalDevBeContrl> calDevBeContrlList = getCalDevBeCon(assDevice); | ||
191 | + | ||
192 | + for (int i = 0; i < calDevBeContrlList.size(); i++) { | ||
193 | + CalDevBeContrl calDevBeContrl = calDevBeContrlList.get(i); | ||
194 | + System.out.println("控制对象:" + calDevBeContrl.toString()); | ||
195 | + String conDevId = calDevBeContrl.getConDevId();//被控制的设备id | ||
196 | + String conValue = calDevBeContrl.getConValue(); | ||
197 | + String conCodes = calDevBeContrl.getConCode(); | ||
198 | + | ||
199 | + String[] conCodeStr = conCodes.split(","); | ||
200 | + | ||
201 | + for (int j = 0; j < conCodeStr.length; j++) { | ||
202 | + String conCode = conCodeStr[j]; | ||
203 | + switch (modelType) { | ||
204 | + case 1://开关 | ||
205 | + HttpUtil.controlDev(conDevId, conCode, conValue); | ||
206 | + break; | ||
207 | + case 2://插座 | ||
208 | + HttpUtil.controlDev(conDevId, conCode, conValue); | ||
209 | + break; | ||
210 | + case 3://排插 | ||
211 | + HttpUtil.controlDev(conDevId, conCode, conValue); | ||
212 | + break; | ||
213 | + case 7://空调伴侣 | ||
214 | + HttpUtil.addAirCode(conValue, conDevId); | ||
215 | + break; | ||
216 | + case 10://开关 | ||
217 | + HttpUtil.controlDev(conDevId, conCode, conValue); | ||
218 | + break; | ||
219 | + case 12://万能遥控器 | ||
220 | + HttpUtil.addAirCode(conValue, conDevId); | ||
221 | + break; | ||
222 | + } | ||
223 | + } | ||
224 | + | ||
225 | + } | ||
226 | + | ||
134 | } | 227 | } |
135 | 228 | ||
229 | + } | ||
230 | + | ||
231 | + /** | ||
232 | + * 获取被控制的设备 | ||
233 | + * | ||
234 | + * @param assDevice | ||
235 | + * @return | ||
236 | + */ | ||
237 | + private List<CalDevBeContrl> getCalDevBeCon(String assDevice) { | ||
238 | + | ||
239 | + String[] assDeviceIds = assDevice.split(","); | ||
240 | + | ||
241 | + List<CalDevBeContrl> devBeContrlList = new ArrayList<>(); | ||
242 | + | ||
243 | + for (int i = 0; i < assDeviceIds.length; i++) { | ||
244 | + String deviceId = assDeviceIds[i]; | ||
245 | + | ||
246 | + List<CalDevContrl> calDevContrl = deviceDao.getCalDevContrlWidthDevId(deviceId); | ||
247 | + | ||
248 | + for (int j = 0; j < calDevContrl.size(); j++) { | ||
249 | + | ||
250 | + CalDevContrl calDevContrl1 = calDevContrl.get(j); | ||
251 | + | ||
252 | + if (!calDevContrl1.getDevBeId().equals("0")) { | ||
253 | + String[] calDevBeIdStr = calDevContrl1.getDevBeId().split(","); | ||
254 | + if (calDevBeIdStr != null) { | ||
255 | + for (int k = 0; k < calDevBeIdStr.length; k++) { | ||
256 | + CalDevBeContrl calDevBeContrl = deviceDao.getCalDevBeControl(calDevBeIdStr[k]); | ||
257 | + devBeContrlList.add(calDevBeContrl); | ||
258 | + } | ||
259 | + } | ||
260 | + } | ||
261 | + } | ||
262 | + | ||
263 | + } | ||
264 | + | ||
265 | + return devBeContrlList; | ||
266 | + } | ||
267 | + | ||
268 | + | ||
269 | + /** | ||
270 | + * 判断联动设备是否符合条件 | ||
271 | + * | ||
272 | + * @param deviceIds | ||
273 | + * @return | ||
274 | + */ | ||
275 | + private boolean isExist(String[] deviceIds) { | ||
276 | + | ||
277 | + for (int i = 0; i < deviceIds.length; i++) { | ||
278 | + String deviceId = deviceIds[i]; | ||
279 | + Iterator<CalDevContrl> calDevContrlIterator = deviceSet.iterator(); | ||
280 | + boolean is = false; | ||
281 | + while (calDevContrlIterator.hasNext()) { | ||
282 | + | ||
283 | + CalDevContrl calDevContrl = calDevContrlIterator.next(); | ||
284 | + if (calDevContrl.getDevid().equals(deviceId)) {//存在设备 | ||
285 | + is = true; | ||
286 | + } | ||
287 | + | ||
288 | + } | ||
289 | + if (!is) return false; | ||
290 | + } | ||
291 | + return true; | ||
136 | 292 | ||
137 | } | 293 | } |
138 | 294 |
cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java
@@ -3,7 +3,6 @@ package com.example.mypulsar.utils; | @@ -3,7 +3,6 @@ package com.example.mypulsar.utils; | ||
3 | import com.example.mypulsar.bean.Command; | 3 | import com.example.mypulsar.bean.Command; |
4 | import com.example.mypulsar.bean.TuYaAirCondition; | 4 | import com.example.mypulsar.bean.TuYaAirCondition; |
5 | import com.example.mypulsar.bean.TuYaCommand; | 5 | import com.example.mypulsar.bean.TuYaCommand; |
6 | -import org.apache.pulsar.shade.com.google.gson.Gson; | ||
7 | import org.springframework.boot.configurationprocessor.json.JSONException; | 6 | import org.springframework.boot.configurationprocessor.json.JSONException; |
8 | import org.springframework.boot.configurationprocessor.json.JSONObject; | 7 | import org.springframework.boot.configurationprocessor.json.JSONObject; |
9 | import org.springframework.core.io.FileSystemResource; | 8 | import org.springframework.core.io.FileSystemResource; |
@@ -156,7 +155,6 @@ public class HttpUtil { | @@ -156,7 +155,6 @@ public class HttpUtil { | ||
156 | 155 | ||
157 | System.out.println("url-------------------------------:" + url+" conValue:"+tuYaAirCondition.toString()); | 156 | System.out.println("url-------------------------------:" + url+" conValue:"+tuYaAirCondition.toString()); |
158 | String response = restTemplate.postForObject(url, tuYaAirCondition, String.class); | 157 | String response = restTemplate.postForObject(url, tuYaAirCondition, String.class); |
159 | - | ||
160 | System.out.println("response----------------------------------:" + response); | 158 | System.out.println("response----------------------------------:" + response); |
161 | return response; | 159 | return response; |
162 | 160 |
cloud/pom.xml
@@ -14,58 +14,81 @@ | @@ -14,58 +14,81 @@ | ||
14 | <name>cloud</name> | 14 | <name>cloud</name> |
15 | <description>Demo project for Spring Boot</description> | 15 | <description>Demo project for Spring Boot</description> |
16 | 16 | ||
17 | + <properties> | ||
18 | + <java.version>1.8</java.version> | ||
19 | + <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | ||
20 | + <commons-collections4.version>4.1</commons-collections4.version> | ||
21 | + <spring-boot.version>2.1.7.RELEASE</spring-boot.version> | ||
22 | + <security-oauth2.version>2.3.6.RELEASE</security-oauth2.version> | ||
23 | + <fastjson.version>1.2.60</fastjson.version> | ||
24 | + <spring-platform-bom.version>Cairo-SR7</spring-platform-bom.version> | ||
25 | + </properties> | ||
26 | + | ||
17 | <modules> | 27 | <modules> |
18 | <module>server1</module> | 28 | <module>server1</module> |
19 | <module>server2</module> | 29 | <module>server2</module> |
20 | <!-- <module>autho</module>--> | 30 | <!-- <module>autho</module>--> |
21 | - <module>common</module> | ||
22 | -<!-- <module>geteway</module>--> | 31 | +<!-- <module>common</module>--> |
32 | + <module>geteway</module> | ||
23 | <module>haikang</module> | 33 | <module>haikang</module> |
24 | <!-- <module>dahua</module>--> | 34 | <!-- <module>dahua</module>--> |
25 | <!-- <module>consumer</module>--> | 35 | <!-- <module>consumer</module>--> |
26 | <!-- <module>haikangface</module>--> | 36 | <!-- <module>haikangface</module>--> |
27 | <!-- <module>search_independence</module>--> | 37 | <!-- <module>search_independence</module>--> |
28 | - <module>search_smartCampus</module> | ||
29 | - <module>search_xiaoan</module> | 38 | +<!-- <module>search_smartCampus</module>--> |
39 | +<!-- <module>search_xiaoan</module>--> | ||
30 | <!-- <module>mypulsar</module>--> | 40 | <!-- <module>mypulsar</module>--> |
31 | <!-- <module>weigeng</module>--> | 41 | <!-- <module>weigeng</module>--> |
32 | <!-- <module>independence</module>--> | 42 | <!-- <module>independence</module>--> |
33 | - <module>quartz</module> | ||
34 | - <module>zkAttendance</module> | 43 | +<!-- <module>quartz</module>--> |
44 | + <!-- <module>zkAttendance</module>--> | ||
35 | </modules> | 45 | </modules> |
36 | 46 | ||
37 | - <properties> | ||
38 | - <java.version>1.8</java.version> | ||
39 | - <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | ||
40 | - </properties> | ||
41 | - | ||
42 | <dependencies> | 47 | <dependencies> |
43 | <dependency> | 48 | <dependency> |
44 | - <groupId>org.springframework.cloud</groupId> | ||
45 | - <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | 49 | + <groupId>com.alibaba</groupId> |
50 | + <artifactId>fastjson</artifactId> | ||
51 | + <version>1.2.58</version> | ||
52 | + <scope>compile</scope> | ||
46 | </dependency> | 53 | </dependency> |
47 | 54 | ||
48 | <dependency> | 55 | <dependency> |
49 | - <groupId>org.springframework.boot</groupId> | ||
50 | - <artifactId>spring-boot-starter-test</artifactId> | ||
51 | - <scope>test</scope> | 56 | + <groupId>org.projectlombok</groupId> |
57 | + <artifactId>lombok</artifactId> | ||
58 | + <version>1.18.8</version> | ||
52 | </dependency> | 59 | </dependency> |
53 | 60 | ||
54 | <dependency> | 61 | <dependency> |
55 | - <groupId>org.springframework.boot</groupId> | ||
56 | - <artifactId>spring-boot-starter-actuator</artifactId> | 62 | + <groupId>org.springframework.cloud</groupId> |
63 | + <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> | ||
57 | </dependency> | 64 | </dependency> |
58 | 65 | ||
59 | <dependency> | 66 | <dependency> |
67 | + <groupId>org.springframework.cloud</groupId> | ||
68 | + <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> | ||
69 | + </dependency> | ||
70 | + <dependency> | ||
60 | <groupId>org.springframework.boot</groupId> | 71 | <groupId>org.springframework.boot</groupId> |
61 | <artifactId>spring-boot-configuration-processor</artifactId> | 72 | <artifactId>spring-boot-configuration-processor</artifactId> |
62 | - <!--<version>2.1.3.RELEASE</version>--> | 73 | + <optional>true</optional> |
63 | </dependency> | 74 | </dependency> |
64 | <dependency> | 75 | <dependency> |
65 | - <groupId>com.alibaba</groupId> | ||
66 | - <artifactId>fastjson</artifactId> | ||
67 | - <version>1.2.58</version> | ||
68 | - <scope>compile</scope> | 76 | + <groupId>org.springframework.boot</groupId> |
77 | + <artifactId>spring-boot-starter-actuator</artifactId> | ||
78 | + </dependency> | ||
79 | + <dependency> | ||
80 | + <groupId>org.springframework.cloud</groupId> | ||
81 | + <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> | ||
82 | + </dependency> | ||
83 | + <dependency> | ||
84 | + <groupId>org.projectlombok</groupId> | ||
85 | + <artifactId>lombok</artifactId> | ||
86 | + <version>1.16.20</version> | ||
87 | + </dependency> | ||
88 | + <dependency> | ||
89 | + <groupId>commons-io</groupId> | ||
90 | + <artifactId>commons-io</artifactId> | ||
91 | + <version>2.6</version> | ||
69 | </dependency> | 92 | </dependency> |
70 | 93 | ||
71 | </dependencies> | 94 | </dependencies> |
@@ -73,12 +96,26 @@ | @@ -73,12 +96,26 @@ | ||
73 | <dependencyManagement> | 96 | <dependencyManagement> |
74 | <dependencies> | 97 | <dependencies> |
75 | <dependency> | 98 | <dependency> |
99 | + <groupId>org.springframework.boot</groupId> | ||
100 | + <artifactId>spring-boot-dependencies</artifactId> | ||
101 | + <version>${spring-boot.version}</version> | ||
102 | + <type>pom</type> | ||
103 | + <scope>import</scope> | ||
104 | + </dependency> | ||
105 | + <dependency> | ||
76 | <groupId>org.springframework.cloud</groupId> | 106 | <groupId>org.springframework.cloud</groupId> |
77 | <artifactId>spring-cloud-dependencies</artifactId> | 107 | <artifactId>spring-cloud-dependencies</artifactId> |
78 | <version>${spring-cloud.version}</version> | 108 | <version>${spring-cloud.version}</version> |
79 | <type>pom</type> | 109 | <type>pom</type> |
80 | <scope>import</scope> | 110 | <scope>import</scope> |
81 | </dependency> | 111 | </dependency> |
112 | + <dependency> | ||
113 | + <groupId>io.spring.platform</groupId> | ||
114 | + <artifactId>platform-bom</artifactId> | ||
115 | + <version>${spring-platform-bom.version}</version> | ||
116 | + <type>pom</type> | ||
117 | + <scope>import</scope> | ||
118 | + </dependency> | ||
82 | </dependencies> | 119 | </dependencies> |
83 | </dependencyManagement> | 120 | </dependencyManagement> |
84 | </project> | 121 | </project> |
cloud/quartz/src/main/java/com/sincere/quartz/enums/KqTypeEnums.java
@@ -6,21 +6,21 @@ package com.sincere.quartz.enums; | @@ -6,21 +6,21 @@ package com.sincere.quartz.enums; | ||
6 | * @date 2019/11/29 0029 11:44 | 6 | * @date 2019/11/29 0029 11:44 |
7 | */ | 7 | */ |
8 | public enum KqTypeEnums { | 8 | public enum KqTypeEnums { |
9 | - morning_to_school(1,"早上到校"), | ||
10 | - noon_le_school(2,"中午离校"), | ||
11 | - afternoon_to_school(3,"下午到校"), | ||
12 | - afternoon_le_school(4,"下午离校"), | ||
13 | - night_to_school(5,"晚上到校"), | ||
14 | - night_le_school(6,"晚上离校"), | ||
15 | - morning_to_chamber(7,"早上离寝"), | ||
16 | - noon_to_chamber(8,"中午到寝"), | ||
17 | - noon_le_chamber(9,"中午离寝"), | ||
18 | - afternoon_to_chamber(10,"下午到寝"), | ||
19 | - afternoon_le_chamber(11,"下午离寝"), | ||
20 | - night_to_chamber(12,"晚上到寝"); | ||
21 | - | ||
22 | - private int type ; | ||
23 | - private String name ; | 9 | + morning_to_school(1, "早上到校"), |
10 | + noon_le_school(2, "中午离校"), | ||
11 | + afternoon_to_school(3, "下午到校"), | ||
12 | + afternoon_le_school(4, "下午离校"), | ||
13 | + night_to_school(5, "晚上到校"), | ||
14 | + night_le_school(6, "晚上离校"), | ||
15 | + morning_to_chamber(7, "早上离寝"), | ||
16 | + noon_to_chamber(8, "中午到寝"), | ||
17 | + noon_le_chamber(9, "中午离寝"), | ||
18 | + afternoon_to_chamber(10, "下午到寝"), | ||
19 | + afternoon_le_chamber(11, "下午离寝"), | ||
20 | + night_to_chamber(12, "晚上到寝"); | ||
21 | + | ||
22 | + private int type; | ||
23 | + private String name; | ||
24 | 24 | ||
25 | public int getType() { | 25 | public int getType() { |
26 | return type; | 26 | return type; |
@@ -43,12 +43,12 @@ public enum KqTypeEnums { | @@ -43,12 +43,12 @@ public enum KqTypeEnums { | ||
43 | this.name = name; | 43 | this.name = name; |
44 | } | 44 | } |
45 | 45 | ||
46 | - public static String getName(int type){ | ||
47 | - for(KqTypeEnums enums : KqTypeEnums.values()){ | ||
48 | - if(enums.getType() == type){ | 46 | + public static String getName(int type) { |
47 | + for (KqTypeEnums enums : KqTypeEnums.values()) { | ||
48 | + if (enums.getType() == type) { | ||
49 | return enums.getName(); | 49 | return enums.getName(); |
50 | } | 50 | } |
51 | } | 51 | } |
52 | - return "" ; | 52 | + return ""; |
53 | } | 53 | } |
54 | } | 54 | } |
cloud/quartz/src/main/java/com/sincere/quartz/enums/TypeEnums.java
@@ -7,15 +7,15 @@ package com.sincere.quartz.enums; | @@ -7,15 +7,15 @@ package com.sincere.quartz.enums; | ||
7 | */ | 7 | */ |
8 | public enum TypeEnums { | 8 | public enum TypeEnums { |
9 | 9 | ||
10 | - kaoqing(10,"考勤"); | 10 | + kaoqing(10, "考勤"); |
11 | 11 | ||
12 | TypeEnums(int type, String name) { | 12 | TypeEnums(int type, String name) { |
13 | this.type = type; | 13 | this.type = type; |
14 | this.name = name; | 14 | this.name = name; |
15 | } | 15 | } |
16 | 16 | ||
17 | - private int type ; | ||
18 | - private String name ; | 17 | + private int type; |
18 | + private String name; | ||
19 | 19 | ||
20 | public int getType() { | 20 | public int getType() { |
21 | return type; | 21 | return type; |
cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java
@@ -308,8 +308,8 @@ public class KQJob { | @@ -308,8 +308,8 @@ public class KQJob { | ||
308 | "整体数据:" + message); | 308 | "整体数据:" + message); |
309 | String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | 309 | String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + |
310 | "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+ "&TemplateId=" + templateId+ | 310 | "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+ "&TemplateId=" + templateId+ |
311 | - "&data="+thirdOpenId+"&type=5&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+ | ||
312 | - "&QianDaoId="+times[3]+"&ClassId=0&face=&sourcetype=16&soutype=3×tamp="+ DateUtils.getDate()+"&time="+DateUtils.date2String(new Date(),DateUtils.format1) ; | 311 | + "&data="+thirdOpenId+"&type=1&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+ |
312 | + "&face=&sourcetype=16&soutype=3×tamp="+ DateUtils.getDate()+"&time="+DateUtils.date2String(new Date(),DateUtils.format1) ; | ||
313 | dingSms.setSchoolId(teacher.getSchoolId()); | 313 | dingSms.setSchoolId(teacher.getSchoolId()); |
314 | dingSms.setDingUserId(thirdOpenId); | 314 | dingSms.setDingUserId(thirdOpenId); |
315 | dingSms.setAgentId(appDto.getAgentId()); | 315 | dingSms.setAgentId(appDto.getAgentId()); |
cloud/quartz/src/main/java/com/sincere/quartz/model/DingSms.java
@@ -6,16 +6,16 @@ package com.sincere.quartz.model; | @@ -6,16 +6,16 @@ package com.sincere.quartz.model; | ||
6 | * @date 2019/11/28 0028 9:45 | 6 | * @date 2019/11/28 0028 9:45 |
7 | */ | 7 | */ |
8 | public class DingSms { | 8 | public class DingSms { |
9 | - private String tableName ; | ||
10 | - | ||
11 | - private String msg ; | ||
12 | - private int schoolId ; | ||
13 | - private String dingUserId ; | ||
14 | - private String wapUrl ; | ||
15 | - private String agentId ; | ||
16 | - private int tdType ; | ||
17 | - private String receiveUserId ; | ||
18 | - private String name ; | 9 | + private String tableName; |
10 | + | ||
11 | + private String msg; | ||
12 | + private int schoolId; | ||
13 | + private String dingUserId; | ||
14 | + private String wapUrl; | ||
15 | + private String agentId; | ||
16 | + private int tdType; | ||
17 | + private String receiveUserId; | ||
18 | + private String name; | ||
19 | 19 | ||
20 | public String getTableName() { | 20 | public String getTableName() { |
21 | return tableName; | 21 | return tableName; |
cloud/quartz/src/main/java/com/sincere/quartz/model/ShortMsg.java
@@ -7,11 +7,11 @@ package com.sincere.quartz.model; | @@ -7,11 +7,11 @@ package com.sincere.quartz.model; | ||
7 | */ | 7 | */ |
8 | public class ShortMsg { | 8 | public class ShortMsg { |
9 | 9 | ||
10 | - private String tableName ; | 10 | + private String tableName; |
11 | 11 | ||
12 | - private int schoolId ; | ||
13 | - private String mobile ; | ||
14 | - private String msg ; | 12 | + private int schoolId; |
13 | + private String mobile; | ||
14 | + private String msg; | ||
15 | 15 | ||
16 | public String getTableName() { | 16 | public String getTableName() { |
17 | return tableName; | 17 | return tableName; |
cloud/quartz/src/main/java/com/sincere/quartz/model/WeChatSms.java
@@ -7,17 +7,17 @@ package com.sincere.quartz.model; | @@ -7,17 +7,17 @@ package com.sincere.quartz.model; | ||
7 | */ | 7 | */ |
8 | public class WeChatSms { | 8 | public class WeChatSms { |
9 | 9 | ||
10 | - private String tableName ; | ||
11 | - | ||
12 | - private String receiveUserId ; | ||
13 | - private String qiYeHaoUserId ; | ||
14 | - private int schoolId ; | ||
15 | - private String msgUrl ; | ||
16 | - private String name ; | ||
17 | - private String appId ; | ||
18 | - private String secret ; | ||
19 | - private int tdType ; | ||
20 | - private String msg ; | 10 | + private String tableName; |
11 | + | ||
12 | + private String receiveUserId; | ||
13 | + private String qiYeHaoUserId; | ||
14 | + private int schoolId; | ||
15 | + private String msgUrl; | ||
16 | + private String name; | ||
17 | + private String appId; | ||
18 | + private String secret; | ||
19 | + private int tdType; | ||
20 | + private String msg; | ||
21 | 21 | ||
22 | 22 | ||
23 | public String getAppId() { | 23 | public String getAppId() { |
cloud/quartz/src/main/resources/logback.xml
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <configuration debug="true"> | 2 | <configuration debug="true"> |
3 | <!-- 项目名称 --> | 3 | <!-- 项目名称 --> |
4 | - <property name="PROJECT_NAME" value="quartz" /> | 4 | + |
5 | + <property name="PROJECT_NAME" value="quartz"/> | ||
5 | 6 | ||
6 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> | 7 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> |
7 | - <property name="LOG_HOME" value="C://log"/> | 8 | + <property name="LOG_HOME" value="C://log"/> |
8 | 9 | ||
9 | <!-- 控制台输出 --> | 10 | <!-- 控制台输出 --> |
10 | - <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ||
11 | - <!--<withJansi>true</withJansi>--> | ||
12 | - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||
13 | - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | ||
14 | - <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern> | ||
15 | - <charset>UTF-8</charset> | ||
16 | - </encoder> | ||
17 | - </appender> | 11 | + |
12 | + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ||
13 | + <!--<withJansi>true</withJansi>--> | ||
14 | + | ||
15 | + <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||
16 | + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | ||
17 | + | ||
18 | + <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern> | ||
19 | + | ||
20 | + <charset>UTF-8</charset> | ||
21 | + | ||
22 | + </encoder> | ||
23 | + | ||
24 | + </appender> | ||
18 | 25 | ||
19 | <!-- 按照每天生成日志文件 --> | 26 | <!-- 按照每天生成日志文件 --> |
20 | - <appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
21 | - <!-- 过滤器,只打印ERROR级别的日志 --> | ||
22 | - <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | ||
23 | - <!--日志文件输出的文件名--> | ||
24 | - <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern> | ||
25 | - <!--日志文件保留天数--> | ||
26 | - <MaxHistory>30</MaxHistory> | ||
27 | - <!--日志文件最大的大小--> | ||
28 | - <MaxFileSize>100MB</MaxFileSize> | ||
29 | - </rollingPolicy> | ||
30 | - | ||
31 | - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||
32 | - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | ||
33 | - <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern> | ||
34 | - <charset>UTF-8</charset> | ||
35 | - </encoder> | ||
36 | - </appender> | ||
37 | - <logger name="system_error" additivity="true"> | ||
38 | - <appender-ref ref="SYSTEM_FILE"/> | ||
39 | - </logger> | ||
40 | - | ||
41 | - <!-- 设置Spring&Hibernate日志输出级别 --> | ||
42 | - <logger name="org.springframework" level="WARN" /> | ||
43 | - <logger name="org.mybatis" level="WARN" /> | ||
44 | - <logger name="com.ibatis" level="DEBUG" /> | ||
45 | - <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" /> | ||
46 | - <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" /> | ||
47 | - <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" /> | ||
48 | - | ||
49 | - | ||
50 | - <logger name="java.sql.Connection" level="DEBUG" /> | ||
51 | - <logger name="java.sql.Statement" level="DEBUG" /> | ||
52 | - <logger name="java.sql.PreparedStatement" level="DEBUG" /> | ||
53 | - <logger name="com.sincere.smartSearch.mapper" level="DEBUG" /> | ||
54 | - <!-- 开发环境下的日志配置 --> | ||
55 | - <root level="INFO"> | ||
56 | - <appender-ref ref="CONSOLE" /> | ||
57 | - <appender-ref ref="SYSTEM_FILE" /> | ||
58 | - </root> | 27 | + |
28 | + <appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
29 | + <!-- 过滤器,只打印ERROR级别的日志 --> | ||
30 | + | ||
31 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | ||
32 | + <!--日志文件输出的文件名--> | ||
33 | + | ||
34 | + <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern> | ||
35 | + <!--日志文件保留天数--> | ||
36 | + | ||
37 | + <MaxHistory>30</MaxHistory> | ||
38 | + <!--日志文件最大的大小--> | ||
39 | + | ||
40 | + <MaxFileSize>100MB</MaxFileSize> | ||
41 | + | ||
42 | + </rollingPolicy> | ||
43 | + | ||
44 | + | ||
45 | + <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||
46 | + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | ||
47 | + | ||
48 | + <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern> | ||
49 | + | ||
50 | + <charset>UTF-8</charset> | ||
51 | + | ||
52 | + </encoder> | ||
53 | + | ||
54 | + </appender> | ||
55 | + | ||
56 | + <logger name="system_error" additivity="true"> | ||
57 | + | ||
58 | + <appender-ref ref="SYSTEM_FILE"/> | ||
59 | + | ||
60 | + </logger> | ||
61 | + | ||
62 | + <!-- 设置Spring&Hibernate日志输出级别 --> | ||
63 | + | ||
64 | + <logger name="org.springframework" level="WARN"/> | ||
65 | + | ||
66 | + <logger name="org.mybatis" level="WARN"/> | ||
67 | + | ||
68 | + <logger name="com.ibatis" level="DEBUG"/> | ||
69 | + | ||
70 | + <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG"/> | ||
71 | + | ||
72 | + <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/> | ||
73 | + | ||
74 | + <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG"/> | ||
75 | + | ||
76 | + | ||
77 | + | ||
78 | + <logger name="java.sql.Connection" level="DEBUG"/> | ||
79 | + | ||
80 | + <logger name="java.sql.Statement" level="DEBUG"/> | ||
81 | + | ||
82 | + <logger name="java.sql.PreparedStatement" level="DEBUG"/> | ||
83 | + | ||
84 | + <logger name="com.sincere.smartSearch.mapper" level="DEBUG"/> | ||
85 | + <!-- 开发环境下的日志配置 --> | ||
86 | + | ||
87 | + <root level="INFO"> | ||
88 | + | ||
89 | + <appender-ref ref="CONSOLE"/> | ||
90 | + | ||
91 | + <appender-ref ref="SYSTEM_FILE"/> | ||
92 | + | ||
93 | + </root> | ||
59 | 94 | ||
60 | </configuration> | 95 | </configuration> |
cloud/quartz/src/main/resources/mapper/SmsMapper.xml
@@ -3,17 +3,21 @@ | @@ -3,17 +3,21 @@ | ||
3 | <mapper namespace="com.sincere.quartz.mapper.SmsMapper"> | 3 | <mapper namespace="com.sincere.quartz.mapper.SmsMapper"> |
4 | 4 | ||
5 | <insert id="insertDing" parameterType="com.sincere.quartz.model.DingSms"> | 5 | <insert id="insertDing" parameterType="com.sincere.quartz.model.DingSms"> |
6 | - insert into ${tableName} (Msg,MsgID,SchoolID,Type,Status,intime,sendtime,DingUserId,WapUrl,agentid,tdtype,ReceiveUserID,Remark) | ||
7 | - values (#{msg},-1,#{schoolId},3,0,GETDATE(),GETDATE(),#{dingUserId},#{wapUrl},#{agentId},#{tdType},#{receiveUserId},#{name}) | 6 | + insert into ${tableName} (Msg, MsgID, SchoolID, Type, Status, intime, sendtime, DingUserId, WapUrl, agentid, |
7 | + tdtype, ReceiveUserID, Remark) | ||
8 | + values (#{msg}, -1, #{schoolId}, 1, 0, GETDATE(), GETDATE(), #{dingUserId}, #{wapUrl}, #{agentId}, #{tdType}, | ||
9 | + #{receiveUserId}, #{name}) | ||
8 | </insert> | 10 | </insert> |
9 | 11 | ||
10 | <insert id="insertWeChat" parameterType="com.sincere.quartz.model.WeChatSms"> | 12 | <insert id="insertWeChat" parameterType="com.sincere.quartz.model.WeChatSms"> |
11 | - insert into ${tableName} (SchoolID,MsgID,Guid,WapUrl,Status,intime,sendTime,SendUserName,ReceiveUserID,QiYeHaoUserId,AppID,Secret,tdtype,Remark) | ||
12 | - values (#{schoolId},-1,#{msg},#{msgUrl},0,GETDATE(),GETDATE(),'智能校卫',#{receiveUserId},#{qiYeHaoUserId},#{appId},#{secret},#{tdType},#{name}) | 13 | + insert into ${tableName} (SchoolID, MsgID, Guid, WapUrl, Status, intime, sendTime, SendUserName, ReceiveUserID, |
14 | + QiYeHaoUserId, AppID, Secret, tdtype, Remark) | ||
15 | + values (#{schoolId}, -1, #{msg}, #{msgUrl}, 0, GETDATE(), GETDATE(), '智能校卫', #{receiveUserId}, #{qiYeHaoUserId}, | ||
16 | + #{appId}, #{secret}, #{tdType}, #{name}) | ||
13 | </insert> | 17 | </insert> |
14 | 18 | ||
15 | <insert id="insertSMS" parameterType="com.sincere.quartz.model.ShortMsg"> | 19 | <insert id="insertSMS" parameterType="com.sincere.quartz.model.ShortMsg"> |
16 | - insert into ${tableName} (SchoolID,Mobile,Msg,tdtype,Status,IsNeedSend,SendTime,intime) | ||
17 | - values (#{schoolId},#{mobile},#{msg},1,0,1,GETDATE(),GETDATE()) | 20 | + insert into ${tableName} (SchoolID, Mobile, Msg, tdtype, Status, IsNeedSend, SendTime, intime) |
21 | + values (#{schoolId}, #{mobile}, #{msg}, 1, 0, 1, GETDATE(), GETDATE()) | ||
18 | </insert> | 22 | </insert> |
19 | </mapper> | 23 | </mapper> |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/FileConfiguration.java
@@ -1,18 +0,0 @@ | @@ -1,18 +0,0 @@ | ||
1 | -package com.sincere.smartSearch; | ||
2 | - | ||
3 | -import org.springframework.context.annotation.Configuration; | ||
4 | -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | ||
5 | -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; | ||
6 | - | ||
7 | -@Configuration | ||
8 | -public class FileConfiguration extends WebMvcConfigurationSupport { | ||
9 | - | ||
10 | - @Override | ||
11 | - protected void addResourceHandlers(ResourceHandlerRegistry registry) { | ||
12 | - super.addResourceHandlers(registry); | ||
13 | - | ||
14 | - registry.addResourceHandler("/upload/**") | ||
15 | - .addResourceLocations("file:C:/upload/"); | ||
16 | - | ||
17 | - } | ||
18 | -} |
cloud/search_xiaoan/pom.xml
@@ -51,6 +51,7 @@ | @@ -51,6 +51,7 @@ | ||
51 | <artifactId>rapid-core</artifactId> | 51 | <artifactId>rapid-core</artifactId> |
52 | <version>4.0.5</version> | 52 | <version>4.0.5</version> |
53 | </dependency> | 53 | </dependency> |
54 | + | ||
54 | <dependency> | 55 | <dependency> |
55 | <groupId>org.apache.commons</groupId> | 56 | <groupId>org.apache.commons</groupId> |
56 | <artifactId>commons-lang3</artifactId> | 57 | <artifactId>commons-lang3</artifactId> |
cloud/server1/pom.xml
@@ -13,6 +13,31 @@ | @@ -13,6 +13,31 @@ | ||
13 | <name>server1</name> | 13 | <name>server1</name> |
14 | <description>Demo project for Spring Boot</description> | 14 | <description>Demo project for Spring Boot</description> |
15 | 15 | ||
16 | + <dependencies> | ||
17 | + | ||
18 | + <dependency> | ||
19 | + <groupId>com.aliyun.oss</groupId> | ||
20 | + <artifactId>oss</artifactId> | ||
21 | + <scope>system</scope> | ||
22 | + <version>1</version> | ||
23 | + <systemPath>${project.basedir}/libs/aliyun-sdk-oss-3.8.0.jar</systemPath> | ||
24 | + </dependency> | ||
25 | + | ||
26 | + <dependency> | ||
27 | + <groupId>com.jdom</groupId> | ||
28 | + <artifactId>jdom</artifactId> | ||
29 | + <scope>system</scope> | ||
30 | + <version>1</version> | ||
31 | + <systemPath>${project.basedir}/libs/jdom-1.1.jar</systemPath> | ||
32 | + </dependency> | ||
33 | + | ||
34 | + <dependency> | ||
35 | + <groupId>org.springframework.cloud</groupId> | ||
36 | + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | ||
37 | + </dependency> | ||
38 | + | ||
39 | + </dependencies> | ||
40 | + | ||
16 | <build> | 41 | <build> |
17 | <plugins> | 42 | <plugins> |
18 | <plugin> | 43 | <plugin> |
cloud/server1/src/main/java/com/sincere/server1/Server1Application.java
@@ -4,6 +4,14 @@ import org.springframework.boot.SpringApplication; | @@ -4,6 +4,14 @@ import org.springframework.boot.SpringApplication; | ||
4 | import org.springframework.boot.autoconfigure.SpringBootApplication; | 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; |
6 | 6 | ||
7 | +import java.io.FileNotFoundException; | ||
8 | +import java.io.FileOutputStream; | ||
9 | +import java.io.IOException; | ||
10 | +import java.io.InputStream; | ||
11 | +import java.net.MalformedURLException; | ||
12 | +import java.net.URL; | ||
13 | +import java.net.URLConnection; | ||
14 | + | ||
7 | @EnableEurekaServer | 15 | @EnableEurekaServer |
8 | @SpringBootApplication | 16 | @SpringBootApplication |
9 | public class Server1Application { | 17 | public class Server1Application { |
cloud/server1/src/main/java/com/sincere/server1/Test2.java
0 → 100644
@@ -0,0 +1,91 @@ | @@ -0,0 +1,91 @@ | ||
1 | +package com.sincere.server1; | ||
2 | + | ||
3 | +import com.aliyun.oss.OSS; | ||
4 | +import com.aliyun.oss.OSSClientBuilder; | ||
5 | + | ||
6 | +import java.io.*; | ||
7 | +import java.net.URL; | ||
8 | + | ||
9 | +public class Test2 { | ||
10 | + | ||
11 | + // Endpoint以杭州为例,其它Region请按实际情况填写。 | ||
12 | + public static String endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; | ||
13 | + // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。 | ||
14 | + public static String accessKeyId = "QiuM3PwHTnVotcGy"; | ||
15 | + public static String accessKeySecret = "Yqs7RlaC1MioZu2YYJ6u0TdeO13VFC"; | ||
16 | + | ||
17 | + public static void main(String[] args) { | ||
18 | + File filePath = new File("D:\\OSS\\video.txt"); | ||
19 | + try { | ||
20 | + BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath)); | ||
21 | + | ||
22 | + String cotnent = null; | ||
23 | + | ||
24 | + int index = 0; | ||
25 | + while ((cotnent=bufferedReader.readLine())!=null){ | ||
26 | + | ||
27 | + upLoadNetStraeam(cotnent,"",cotnent.substring(cotnent.lastIndexOf("/")+1,cotnent.length())); | ||
28 | + index++; | ||
29 | + System.out.println("index:"+index); | ||
30 | + | ||
31 | + } | ||
32 | + | ||
33 | + } catch (FileNotFoundException e) { | ||
34 | + e.printStackTrace(); | ||
35 | + } catch (IOException e) { | ||
36 | + e.printStackTrace(); | ||
37 | + } | ||
38 | +// File[] files = filePath.listFiles(); | ||
39 | +// upLoadNetStraeam("http://0575jyzx.oss-cn-hangzhou.aliyuncs.com/Air/Data/898b208f82574ddcba2d439a1e28bd39.mp4", "test", "898b208f82574ddcba2d439a1e28bd39.mp4"); | ||
40 | + /* for (File file: | ||
41 | + files) { | ||
42 | + | ||
43 | + upload(file,"Data"); | ||
44 | + | ||
45 | + }*/ | ||
46 | + } | ||
47 | + | ||
48 | + /** | ||
49 | + * 上传网络流 | ||
50 | + * @param url | ||
51 | + * @param path | ||
52 | + * @param name | ||
53 | + */ | ||
54 | + public static void upLoadNetStraeam(String url, String path, String name) { | ||
55 | + System.out.println("name:"+name+" url --"+url); | ||
56 | +// 创建OSSClient实例。 | ||
57 | + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); | ||
58 | + | ||
59 | +// 上传网络流。 | ||
60 | + InputStream inputStream = null; | ||
61 | + try { | ||
62 | + inputStream = new URL(url).openStream(); | ||
63 | + } catch (IOException e) { | ||
64 | + e.printStackTrace(); | ||
65 | + } | ||
66 | + ossClient.putObject("szyundisk", "YikeData/" + name, inputStream); | ||
67 | + | ||
68 | +// 关闭OSSClient。 | ||
69 | + ossClient.shutdown(); | ||
70 | + | ||
71 | + } | ||
72 | + | ||
73 | + public static void upload(File file, String path) { | ||
74 | + | ||
75 | +// 创建OSSClient实例。 | ||
76 | + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); | ||
77 | + | ||
78 | +// 上传文件流。 | ||
79 | + InputStream inputStream = null; | ||
80 | + try { | ||
81 | + inputStream = new FileInputStream(file); | ||
82 | + ossClient.putObject("szyundisk", "Air/" + path + "/" + file.getName(), inputStream); | ||
83 | + | ||
84 | +// 关闭OSSClient。 | ||
85 | + ossClient.shutdown(); | ||
86 | + } catch (FileNotFoundException e) { | ||
87 | + e.printStackTrace(); | ||
88 | + } | ||
89 | + } | ||
90 | + | ||
91 | +} |
cloud/server1/src/main/resources/application.yaml
cloud/server2/pom.xml
@@ -13,6 +13,13 @@ | @@ -13,6 +13,13 @@ | ||
13 | <name>server2</name> | 13 | <name>server2</name> |
14 | <description>Demo project for Spring Boot</description> | 14 | <description>Demo project for Spring Boot</description> |
15 | 15 | ||
16 | + <dependencies> | ||
17 | + <dependency> | ||
18 | + <groupId>org.springframework.cloud</groupId> | ||
19 | + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | ||
20 | + </dependency> | ||
21 | + </dependencies> | ||
22 | + | ||
16 | <build> | 23 | <build> |
17 | <plugins> | 24 | <plugins> |
18 | <plugin> | 25 | <plugin> |
cloud/server2/src/main/resources/application.yaml
cloud/uploadFile/test.jpg
150 KB