魏熙美 6 vuotta sitten
vanhempi
commit
520fa2fcc6
14 muutettua tiedostoa jossa 985 lisäystä ja 53 poistoa
  1. 176
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/IHKServer.java
  2. 163
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/entity/AddFace.java
  3. 139
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/entity/PushPerson.java
  4. 38
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/impl/HKServerFallbackImpl.java
  5. 10
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TpEquipmentTree.java
  6. 26
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/IEquipmentService.java
  7. 55
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/EquipmentServiceImpl.java
  8. 2
    6
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/FaceServicelimpl.java
  9. 27
    24
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/HKServiceImpl.java
  10. 27
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserVerifyServicelmpl.java
  11. 2
    1
      CODE/smart-community/app-api/src/main/resources/mapper/TpEquipmentTreeMapper.xml
  12. 121
    0
      CODE/smart-community/hardware-server/src/main/java/com/community/huiju/controller/CardController.java
  13. 196
    3
      CODE/smart-community/hardware-server/src/main/java/com/community/huiju/controller/HardwareController.java
  14. 3
    19
      CODE/smart-community/hardware-server/src/main/java/com/community/huiju/service/HkHardwareServiceI.java

+ 176
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/IHKServer.java Näytä tiedosto

@@ -0,0 +1,176 @@
1
+package com.community.huiju.feign;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+import com.community.huiju.feign.impl.HKServerFallbackImpl;
5
+import org.springframework.cloud.openfeign.FeignClient;
6
+import org.springframework.web.bind.annotation.PostMapping;
7
+import org.springframework.web.bind.annotation.RequestBody;
8
+import org.springframework.web.bind.annotation.RequestParam;
9
+import org.springframework.web.multipart.MultipartFile;
10
+
11
+@FeignClient(value = "hardware-server", fallback = HKServerFallbackImpl.class)
12
+public interface IHKServer {
13
+
14
+    /**
15
+     * 添加人员
16
+     *
17
+     *  {
18
+     * 	"type": "厂商",
19
+     * 	"person": {
20
+     * 		"openapi_ip_port_http": "服务器地址",
21
+     * 		"appkey": "服务器appkey",
22
+     * 		"secret": "服务器secret",
23
+     * 		"opUserUuid": "操作人员UUID",
24
+     * 		"personNo": "人员编号",
25
+     * 		"personName": "人员姓名",
26
+     * 		"remark": "手机号",
27
+     * 		"deptUuid": "部门uuid"
28
+     *   }
29
+     * }
30
+     *
31
+     *
32
+     * @param jsonString
33
+     * @return
34
+     */
35
+    @PostMapping("/pushPerson")
36
+    ResponseBean pushPerson(@RequestBody String jsonString);
37
+
38
+    /**
39
+     * 修改人员
40
+     *
41
+     *{
42
+     * 	"type": "厂商",
43
+     * 	"person": {
44
+     * 		"openapi_ip_port_http": "服务器地址",
45
+     * 		"appkey": "服务器appkey",
46
+     * 		"secret": "服务器secret",
47
+     * 		"opUserUuid": "操作人员UUID",
48
+     * 		"personNo": "人员编号",
49
+     * 		"personName": "人员姓名",
50
+     * 		"remark": "手机号",
51
+     * 		"deptUuid": "部门uuid",
52
+     * 		"personId": "人员海康ID"
53
+     *        }
54
+     * }
55
+     *
56
+     * @param jsonString
57
+     * @return
58
+     */
59
+    @PostMapping("/updatePerson")
60
+    ResponseBean updatePerson(@RequestBody String jsonString);
61
+
62
+    /**
63
+     * 添加人脸
64
+     *
65
+     *      *  json里面的设备下发字段,没有就不写入
66
+     *      *  比如:不下发门禁人脸权限,就写入 entranceGuardFace 这个字段的json字符串
67
+     *
68
+     * {
69
+     * 	"type": "厂商",
70
+     * 	"face": {
71
+     * 		"doorPermissions": { // 下发门口机权限(可视对讲)\n" +
72
+     * 			"authName": "权限组",
73
+     * 			"personIds": [人员海康ID...],
74
+     * 			"secret": "服务器secret",
75
+     * 			"appkey": "服务器appkey",
76
+     * 			"openapi_ip_port_http\": \"服务器地址\",\n" +
77
+     * 			"opUserUuid\": \"服务器操作人员UUID\",\n" +
78
+     * 			"longNums\": \"门口机(可视对讲)编号\"\n" +
79
+     *                },
80
+     * 		"doorFace": { // 下发门口机人脸权限\n" +
81
+     * 			"secret": "服务器secret",
82
+     * 			"appkey": "服务器appkey",
83
+     * 			"openapi_ip_port_http": "服务器地址",
84
+     * 			"opUserUuid": "服务器操作人员UUID",
85
+     * 			"opType": 1, // 表示下发"
86
+     * 			"personIds": "人员海康ID",
87
+     * 			"longNums": "门口机(可视对讲)编号"
88
+     *        },
89
+     * 		"entranceGuardPermissions": { // 下发门禁权限
90
+     * 			"personIds": "人员海康ID",
91
+     * 			"doorUuids": "门禁点UUID",
92
+     * 			"secret": "服务器secret",
93
+     * 			"appkey": "服务器appkey",
94
+     * 			"openapi_ip_port_http": "服务器操地址",
95
+     * 			"opUserUuid": "服务器操作人员UUID"
96
+     *        },
97
+     * 		"entranceGuardFace": { // 下发门禁人脸权限
98
+     * 			"secret": "服务器secret",
99
+     * 			"appkey": "服务器appkey",
100
+     * 			"openapi_ip_port_http": "服务器操地址",
101
+     * 			"opUserUuid": "服务器操作人员UUID\",\n" +
102
+     * 				"personIds\": \"人员海康ID\",\n" +
103
+     * 				"deviceUuids\": \"门禁设备UUID\",\n" +
104
+     * 				"type": "1"
105
+     *        },
106
+     * 		"person": {
107
+     * 			"secret": "服务器secret",
108
+     * 			"appkey": "服务器appkey",
109
+     * 			"openapi_ip_port_http": "服务器操地址",
110
+     * 			"opUserUuid": "服务器操作人员UUID",
111
+     * 			"personId": "人员海康ID",
112
+     * 			"personNo": "人员海康编号",
113
+     * 			"personName": "人员名称",
114
+     * 			//"facePhoto":"人脸图片",
115
+     * 			"cardNo": "卡号"
116
+     *        }
117
+     *     }
118
+     * }
119
+     *
120
+     * @param faceImg 文件流
121
+     * @param jsonString json字符串
122
+     * @return
123
+     */
124
+    @PostMapping("/addFace")
125
+    ResponseBean addFace(@RequestParam("faceImg") MultipartFile faceImg, @RequestParam("jsonString") String jsonString);
126
+
127
+
128
+    /**
129
+     * 修改人脸
130
+     *
131
+     *  json里面的设备下发字段,没有就不写入
132
+     *  比如:不下发门禁人脸权限,就写入 entranceGuardFace 这个字段的json字符串
133
+     *
134
+     *{
135
+     * 	"type": "厂商",
136
+     * 	"face": {
137
+     * 		"doorFace": { // 下发门口机人脸权限\n" +
138
+     * 			"secret": "服务器secret",
139
+     * 			"appkey": "服务器appkey",
140
+     * 			"openapi_ip_port_http": "服务器地址",
141
+     * 			"opUserUuid": "服务器操作人员UUID",
142
+     * 			"opType": 1, // 表示下发"
143
+     * 			"personIds": "人员海康ID",
144
+     * 			"longNums": "门口机(可视对讲)编号"
145
+     *        },
146
+     * 		"entranceGuardFace": { // 下发门禁人脸权限
147
+     * 			"secret": "服务器secret",
148
+     * 			"appkey": "服务器appkey",
149
+     * 			"openapi_ip_port_http": "服务器操地址",
150
+     * 			"opUserUuid": "服务器操作人员UUID\",\n"
151
+     * 			"personIds\": \"人员海康ID\"," +
152
+     * 			"deviceUuids\": \"门禁设备UUID\",
153
+     * 			"type": "1"
154
+     *        },
155
+     * 		"person": {
156
+     * 			"secret": "服务器secret",
157
+     * 			"appkey": "服务器appkey",
158
+     * 			"openapi_ip_port_http": "服务器操地址",
159
+     * 			"opUserUuid": "服务器操作人员UUID",
160
+     * 			"personId": "人员海康ID",
161
+     * 			"personNo": "人员海康编号",
162
+     * 			"personName": "人员名称",
163
+     * 			//"facePhoto":"人脸图片",
164
+     * 			"cardNo": "卡号"
165
+     *        }* 	}
166
+     * }
167
+     *
168
+     * @param faceImg 文件流
169
+     * @param jsonString json字符串
170
+     * @return
171
+     */
172
+    @PostMapping("/updateFace")
173
+    ResponseBean updateFace(@RequestParam("faceImg") MultipartFile faceImg, @RequestParam("jsonString") String jsonString);
174
+
175
+
176
+}

+ 163
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/entity/AddFace.java Näytä tiedosto

@@ -0,0 +1,163 @@
1
+package com.community.huiju.feign.entity;
2
+
3
+import lombok.AllArgsConstructor;
4
+import lombok.Data;
5
+import lombok.NoArgsConstructor;
6
+
7
+import java.util.List;
8
+
9
+@Data
10
+@AllArgsConstructor
11
+@NoArgsConstructor
12
+public class AddFace {
13
+
14
+
15
+    /**
16
+     * type : 厂商
17
+     * face : {"doorPermissions":{"authName":"权限组","personIds":[],"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器地址","opUserUuid":"服务器操作人员UUID","longNums":"门口机(可视对讲)编号"},"doorFace":{"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器地址","opUserUuid":"服务器操作人员UUID","opType":"执行操作","personIds":"人员海康ID","longNums":"门口机(可视对讲)编号"},"entranceGuardPermissions":{"personIds":"人员海康ID","doorUuids":"门禁点UUID","secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器操地址","opUserUuid":"服务器操作人员UUID"},"entranceGuardFace":{"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器操地址","opUserUuid":"服务器操作人员UUID","personIds":"人员海康ID","deviceUuids":"门禁设备UUID","type":"1"},"person":{"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器操地址","opUserUuid":"服务器操作人员UUID","personId":"人员海康ID","personNo":"人员海康编号","personName":"人员名称","facePhoto":"人脸图片","cardNo":"卡号"}}
18
+     */
19
+
20
+    private String type;
21
+    private FaceBean face;
22
+
23
+    @Data
24
+    @AllArgsConstructor
25
+    @NoArgsConstructor
26
+    public static class FaceBean {
27
+        /**
28
+         * doorPermissions : {"authName":"权限组","personIds":[],"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器地址","opUserUuid":"服务器操作人员UUID","longNums":"门口机(可视对讲)编号"}
29
+         * doorFace : {"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器地址","opUserUuid":"服务器操作人员UUID","opType":"执行操作","personIds":"人员海康ID","longNums":"门口机(可视对讲)编号"}
30
+         * entranceGuardPermissions : {"personIds":"人员海康ID","doorUuids":"门禁点UUID","secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器操地址","opUserUuid":"服务器操作人员UUID"}
31
+         * entranceGuardFace : {"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器操地址","opUserUuid":"服务器操作人员UUID","personIds":"人员海康ID","deviceUuids":"门禁设备UUID","type":"1"}
32
+         * person : {"secret":"服务器secret","appkey":"服务器appkey","openapi_ip_port_http":"服务器操地址","opUserUuid":"服务器操作人员UUID","personId":"人员海康ID","personNo":"人员海康编号","personName":"人员名称","facePhoto":"人脸图片","cardNo":"卡号"}
33
+         */
34
+
35
+        private DoorPermissionsBean doorPermissions;
36
+        private DoorFaceBean doorFace;
37
+        private EntranceGuardPermissionsBean entranceGuardPermissions;
38
+        private EntranceGuardFaceBean entranceGuardFace;
39
+        private PersonBean person;
40
+
41
+        @Data
42
+        @AllArgsConstructor
43
+        @NoArgsConstructor
44
+        public static class DoorPermissionsBean {
45
+            /**
46
+             * authName : 权限组
47
+             * personIds : []
48
+             * secret : 服务器secret
49
+             * appkey : 服务器appkey
50
+             * openapi_ip_port_http : 服务器地址
51
+             * opUserUuid : 服务器操作人员UUID
52
+             * longNums : 门口机(可视对讲)编号
53
+             */
54
+
55
+            private String authName;
56
+            private String secret;
57
+            private String appkey;
58
+            private String openapi_ip_port_http;
59
+            private String opUserUuid;
60
+            private String longNums;
61
+            private List<Integer> personIds;
62
+
63
+
64
+        }
65
+
66
+        @Data
67
+        @AllArgsConstructor
68
+        @NoArgsConstructor
69
+        public static class DoorFaceBean {
70
+            /**
71
+             * secret : 服务器secret
72
+             * appkey : 服务器appkey
73
+             * openapi_ip_port_http : 服务器地址
74
+             * opUserUuid : 服务器操作人员UUID
75
+             * opType : 执行操作
76
+             * personIds : 人员海康ID
77
+             * longNums : 门口机(可视对讲)编号
78
+             */
79
+
80
+            private String secret;
81
+            private String appkey;
82
+            private String openapi_ip_port_http;
83
+            private String opUserUuid;
84
+            private Integer opType;
85
+            private String personIds;
86
+            private String longNums;
87
+
88
+        }
89
+
90
+        @Data
91
+        @AllArgsConstructor
92
+        @NoArgsConstructor
93
+        public static class EntranceGuardPermissionsBean {
94
+            /**
95
+             * personIds : 人员海康ID
96
+             * doorUuids : 门禁点UUID
97
+             * secret : 服务器secret
98
+             * appkey : 服务器appkey
99
+             * openapi_ip_port_http : 服务器操地址
100
+             * opUserUuid : 服务器操作人员UUID
101
+             */
102
+
103
+            private String personIds;
104
+            private String doorUuids;
105
+            private String secret;
106
+            private String appkey;
107
+            private String openapi_ip_port_http;
108
+            private String opUserUuid;
109
+
110
+        }
111
+
112
+        @Data
113
+        @AllArgsConstructor
114
+        @NoArgsConstructor
115
+        public static class EntranceGuardFaceBean {
116
+            /**
117
+             * secret : 服务器secret
118
+             * appkey : 服务器appkey
119
+             * openapi_ip_port_http : 服务器操地址
120
+             * opUserUuid : 服务器操作人员UUID
121
+             * personIds : 人员海康ID
122
+             * deviceUuids : 门禁设备UUID
123
+             * type : 1
124
+             */
125
+
126
+            private String secret;
127
+            private String appkey;
128
+            private String openapi_ip_port_http;
129
+            private String opUserUuid;
130
+            private String personIds;
131
+            private String deviceUuids;
132
+            private Integer type;
133
+
134
+        }
135
+
136
+        @Data
137
+        @AllArgsConstructor
138
+        @NoArgsConstructor
139
+        public static class PersonBean {
140
+            /**
141
+             * secret : 服务器secret
142
+             * appkey : 服务器appkey
143
+             * openapi_ip_port_http : 服务器操地址
144
+             * opUserUuid : 服务器操作人员UUID
145
+             * personId : 人员海康ID
146
+             * personNo : 人员海康编号
147
+             * personName : 人员名称
148
+             * facePhoto : 人脸图片
149
+             * cardNo : 卡号
150
+             */
151
+
152
+            private String secret;
153
+            private String appkey;
154
+            private String openapi_ip_port_http;
155
+            private String opUserUuid;
156
+            private String personId;
157
+            private String personNo;
158
+            private String personName;
159
+            private String facePhoto;
160
+            private String cardNo;
161
+        }
162
+    }
163
+}

+ 139
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/entity/PushPerson.java Näytä tiedosto

@@ -0,0 +1,139 @@
1
+package com.community.huiju.feign.entity;
2
+
3
+/**
4
+ * 推送海康实体映射类
5
+ * @author weiximei
6
+ */
7
+public class PushPerson {
8
+
9
+
10
+    /**
11
+     * type : 厂商
12
+     * person : {"openapi_ip_port_http":"服务器地址","appkey":"服务器appkey","secret":"服务器secret","opUserUuid":"操作人员UUID","personNo":"人员编号","personName":"人员姓名","remark":"手机号","deptUuid":"部门uuid"}
13
+     */
14
+
15
+    private String type;
16
+    private PersonBean person;
17
+
18
+    public String getType() {
19
+        return type;
20
+    }
21
+
22
+    public void setType(String type) {
23
+        this.type = type;
24
+    }
25
+
26
+    public PersonBean getPerson() {
27
+        return person;
28
+    }
29
+
30
+    public void setPerson(PersonBean person) {
31
+        this.person = person;
32
+    }
33
+
34
+    public static class PersonBean {
35
+        /**
36
+         * openapi_ip_port_http : 服务器地址
37
+         * appkey : 服务器appkey
38
+         * secret : 服务器secret
39
+         * opUserUuid : 操作人员UUID
40
+         * personNo : 人员编号
41
+         * personName : 人员姓名
42
+         * remark : 手机号
43
+         * deptUuid : 部门uuid
44
+         * card : 卡号
45
+         * expirationTime: 开卡有效期, 值为 0 表示 20 年
46
+         */
47
+
48
+        private String openapi_ip_port_http;
49
+        private String appkey;
50
+        private String secret;
51
+        private String opUserUuid;
52
+        private Long personNo;
53
+        private String personName;
54
+        private String remark;
55
+        private String deptUuid;
56
+        private Long card;
57
+        private Integer expirationTime;
58
+
59
+        public String getOpenapi_ip_port_http() {
60
+            return openapi_ip_port_http;
61
+        }
62
+
63
+        public void setOpenapi_ip_port_http(String openapi_ip_port_http) {
64
+            this.openapi_ip_port_http = openapi_ip_port_http;
65
+        }
66
+
67
+        public String getAppkey() {
68
+            return appkey;
69
+        }
70
+
71
+        public void setAppkey(String appkey) {
72
+            this.appkey = appkey;
73
+        }
74
+
75
+        public String getSecret() {
76
+            return secret;
77
+        }
78
+
79
+        public void setSecret(String secret) {
80
+            this.secret = secret;
81
+        }
82
+
83
+        public String getOpUserUuid() {
84
+            return opUserUuid;
85
+        }
86
+
87
+        public void setOpUserUuid(String opUserUuid) {
88
+            this.opUserUuid = opUserUuid;
89
+        }
90
+
91
+        public Long getPersonNo() {
92
+            return personNo;
93
+        }
94
+
95
+        public void setPersonNo(Long personNo) {
96
+            this.personNo = personNo;
97
+        }
98
+
99
+        public String getPersonName() {
100
+            return personName;
101
+        }
102
+
103
+        public void setPersonName(String personName) {
104
+            this.personName = personName;
105
+        }
106
+
107
+        public String getRemark() {
108
+            return remark;
109
+        }
110
+
111
+        public void setRemark(String remark) {
112
+            this.remark = remark;
113
+        }
114
+
115
+        public String getDeptUuid() {
116
+            return deptUuid;
117
+        }
118
+
119
+        public void setDeptUuid(String deptUuid) {
120
+            this.deptUuid = deptUuid;
121
+        }
122
+
123
+        public Long getCard() {
124
+            return card;
125
+        }
126
+
127
+        public void setCard(Long card) {
128
+            this.card = card;
129
+        }
130
+
131
+        public Integer getExpirationTime() {
132
+            return expirationTime;
133
+        }
134
+
135
+        public void setExpirationTime(Integer expirationTime) {
136
+            this.expirationTime = expirationTime;
137
+        }
138
+    }
139
+}

+ 38
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/feign/impl/HKServerFallbackImpl.java Näytä tiedosto

@@ -0,0 +1,38 @@
1
+package com.community.huiju.feign.impl;
2
+
3
+
4
+import com.community.commom.mode.ResponseBean;
5
+import com.community.huiju.feign.IHKServer;
6
+import lombok.extern.slf4j.Slf4j;
7
+import org.springframework.web.multipart.MultipartFile;
8
+
9
+@Slf4j
10
+public class HKServerFallbackImpl implements IHKServer {
11
+
12
+    @Override
13
+    public ResponseBean pushPerson(String jsonString) {
14
+        return back();
15
+    }
16
+
17
+    @Override
18
+    public ResponseBean updatePerson(String jsonString) {
19
+        return back();
20
+    }
21
+
22
+    @Override
23
+    public ResponseBean addFace(MultipartFile faceImg, String jsonString) {
24
+        return back();
25
+    }
26
+
27
+    @Override
28
+    public ResponseBean updateFace(MultipartFile faceImg, String jsonString) {
29
+        return back();
30
+    }
31
+
32
+    private ResponseBean back() {
33
+        log.error("hardware-server 远端服务请求失败!");
34
+        ResponseBean responseBean = new ResponseBean();
35
+        responseBean.addError("hardware-server 远端服务请求失败!");
36
+        return responseBean;
37
+    }
38
+}

+ 10
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TpEquipmentTree.java Näytä tiedosto

@@ -31,6 +31,8 @@ public class TpEquipmentTree {
31 31
 
32 32
     private String unitUuids;
33 33
 
34
+    private String factory;
35
+
34 36
     public Integer getId() {
35 37
         return id;
36 38
     }
@@ -142,4 +144,12 @@ public class TpEquipmentTree {
142 144
     public void setUnitUuids(String unitUuids) {
143 145
         this.unitUuids = unitUuids;
144 146
     }
147
+
148
+    public String getFactory() {
149
+        return factory;
150
+    }
151
+
152
+    public void setFactory(String factory) {
153
+        this.factory = factory;
154
+    }
145 155
 }

+ 26
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/IEquipmentService.java Näytä tiedosto

@@ -0,0 +1,26 @@
1
+package com.community.huiju.service;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+import com.community.huiju.model.TaUser;
5
+import com.community.huiju.model.TaUserHk;
6
+import com.community.huiju.model.TpEquipmentTree;
7
+import com.community.huiju.model.TpUnitHkSetting;
8
+
9
+/**
10
+ * 公共设备方法
11
+ */
12
+public interface IEquipmentService {
13
+
14
+    /**
15
+     * 推送人员
16
+     * @param tpEquipmentTree
17
+     * @param unitHkSetting
18
+     * @param user
19
+     * @param taUserHk
20
+     * @return
21
+     */
22
+    String pushPerson(TpEquipmentTree tpEquipmentTree, TpUnitHkSetting unitHkSetting, TaUser user, TaUserHk taUserHk, Integer expirationTime);
23
+
24
+    String addFace();
25
+
26
+}

+ 55
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/EquipmentServiceImpl.java Näytä tiedosto

@@ -0,0 +1,55 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.community.commom.mode.ResponseBean;
5
+import com.community.huiju.exception.WisdomException;
6
+import com.community.huiju.feign.IHKServer;
7
+import com.community.huiju.feign.entity.PushPerson;
8
+import com.community.huiju.model.TaUser;
9
+import com.community.huiju.model.TaUserHk;
10
+import com.community.huiju.model.TpEquipmentTree;
11
+import com.community.huiju.model.TpUnitHkSetting;
12
+import com.community.huiju.service.IEquipmentService;
13
+import lombok.extern.slf4j.Slf4j;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.stereotype.Service;
16
+
17
+@Slf4j
18
+@Service
19
+public class EquipmentServiceImpl implements IEquipmentService {
20
+
21
+    @Autowired
22
+    private IHKServer ihkServer;
23
+
24
+    @Override
25
+    public String pushPerson(TpEquipmentTree tpEquipmentTree, TpUnitHkSetting unitHkSetting, TaUser user, TaUserHk taUserHk, Integer expirationTime) {
26
+
27
+        // 人员信息
28
+        PushPerson.PersonBean personBean = new PushPerson.PersonBean();
29
+        personBean.setAppkey(tpEquipmentTree.getAppkey());
30
+        personBean.setSecret(tpEquipmentTree.getSecret());
31
+        personBean.setOpUserUuid(tpEquipmentTree.getOpUserUuid());
32
+        personBean.setOpenapi_ip_port_http(tpEquipmentTree.getHttpServer());
33
+        personBean.setDeptUuid(unitHkSetting.getDepartmentId());
34
+        personBean.setPersonName(user.getUserName());
35
+        personBean.setPersonNo(taUserHk.getHkPersonNo());
36
+        personBean.setRemark(user.getLoginName());
37
+        personBean.setCard(Long.valueOf(taUserHk.getHkCardNo()));
38
+        personBean.setExpirationTime(expirationTime);
39
+
40
+        PushPerson pushPerson = new PushPerson();
41
+        pushPerson.setType(tpEquipmentTree.getFactory());
42
+        pushPerson.setPerson(personBean);
43
+
44
+        ResponseBean responseBean = ihkServer.pushPerson(JSONObject.toJSONString(pushPerson));
45
+        if ("1".equals(responseBean.getCode())) {
46
+            throw new WisdomException(responseBean.getMessage());
47
+        }
48
+        return JSONObject.toJSONString(responseBean.getData());
49
+    }
50
+
51
+    @Override
52
+    public String addFace() {
53
+        return null;
54
+    }
55
+}

+ 2
- 6
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/FaceServicelimpl.java Näytä tiedosto

@@ -232,18 +232,14 @@ public class FaceServicelimpl implements FaceServiceI {
232 232
             Integer type = (Integer) jsonObject.get("errno");
233 233
             Integer faceNum = (Integer) jsonObject.get("face_num");
234 234
 
235
-            // 修改人脸操作
236
-            String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid());
235
+//            // 修改人脸操作
236
+//            String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid());
237 237
 
238 238
             // 等待 1s
239 239
             Thread.sleep(1000);
240 240
 
241 241
             /*boolean isA为true进行添加,为false进行修改*/
242 242
             if (0 == type && 1 == faceNum) {
243
-                if (null == data) {
244
-                    log.error("海康人脸推送失败!");
245
-                    throw new RuntimeException("人脸推送失败!");
246
-                }
247 243
 
248 244
                 if (isA) {
249 245
                     /**

+ 27
- 24
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/HKServiceImpl.java Näytä tiedosto

@@ -9,7 +9,9 @@ import com.community.commom.uuid.IdGen;
9 9
 import com.community.commom.hk.HKOpenApi;
10 10
 import com.community.huiju.dao.*;
11 11
 import com.community.huiju.exception.WisdomException;
12
+import com.community.huiju.feign.entity.PushPerson;
12 13
 import com.community.huiju.model.*;
14
+import com.community.huiju.service.IEquipmentService;
13 15
 import com.community.huiju.service.IHKService;
14 16
 import com.google.common.collect.Lists;
15 17
 import com.google.common.collect.Maps;
@@ -60,6 +62,9 @@ public class HKServiceImpl implements IHKService {
60 62
     @Autowired
61 63
     private TaUserHkMapper taUserHkMapper;
62 64
 
65
+    @Autowired
66
+    private IEquipmentService iEquipmentService;
67
+
63 68
     /**
64 69
      * 获取设备UUID
65 70
      * @param equipmentList
@@ -111,18 +116,9 @@ public class HKServiceImpl implements IHKService {
111 116
             addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk, unitHkSetting, userVerify);
112 117
         }
113 118
 
114
-        // 卡片操作
115
-        // 没有卡片就开卡
116
-        if (StringUtils.isBlank(taUserHk.getHkCardNo())) {
117
-
118
-            // 添加卡片
119
-            responseBean = addCards(taUserHk, tpEquipmentTree);
120
-
121
-            // 开卡
122
-            responseBean = openCard(taUserHk.getHkUserId(), Long.valueOf(taUserHk.getHkCardNo()), null,tpEquipmentTree);
123
-
124
-        }
125
-
119
+        /**
120
+         * 推送人员的时候,携带了卡号
121
+         */
126 122
 
127 123
         // 判断是否成功
128 124
         if ("0".equals(responseBean.getCode())) {
@@ -227,7 +223,7 @@ public class HKServiceImpl implements IHKService {
227 223
 
228 224
     /**
229 225
      * 公共方法
230
-     * 添加人员
226
+     * 添加人员(携带卡号)
231 227
      *
232 228
      * @param response
233 229
      * @param user
@@ -245,17 +241,23 @@ public class HKServiceImpl implements IHKService {
245 241
         //String deptUuid = getDeptUUID(parDept);
246 242
 
247 243
         // 添加人员
248
-        Map<String, Object> parUser = Maps.newHashMap();
249
-        parUser.put("personNo", taUserHk.getHkPersonNo());
250
-        parUser.put("personName", user.getUserName());
251
-        // parUser.put("phoneNo", user.getLoginName());
252
-        parUser.put("remark", user.getLoginName());
253
-        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
254
-        parUser.put("secret", tpEquipmentTree.getSecret());
255
-        parUser.put("appkey", tpEquipmentTree.getAppkey());
256
-        parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
257
-        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
258
-        Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
244
+//        Map<String, Object> parUser = Maps.newHashMap();
245
+//        parUser.put("personNo", taUserHk.getHkPersonNo());
246
+//        parUser.put("personName", user.getUserName());
247
+//        // parUser.put("phoneNo", user.getLoginName());
248
+//        parUser.put("remark", user.getLoginName());
249
+//        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
250
+//        parUser.put("secret", tpEquipmentTree.getSecret());
251
+//        parUser.put("appkey", tpEquipmentTree.getAppkey());
252
+//        parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
253
+//        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
254
+//        Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
255
+
256
+        // 开卡 卡号
257
+        long cardNo = System.currentTimeMillis();
258
+
259
+        String resultString = iEquipmentService.pushPerson(tpEquipmentTree, unitHkSetting, user, taUserHk, 0);
260
+        Map<String, Object> resultMap = JSONObject.parseObject(resultString, HashMap.class);
259 261
         Integer errorCode = (Integer) resultMap.get("errorCode");
260 262
         if (errorCode == 0) {
261 263
             Map<String, Object> resultDataMap = (Map<String, Object>) resultMap.get("data");
@@ -272,6 +274,7 @@ public class HKServiceImpl implements IHKService {
272 274
                 taUserHk.setCommunityId(tpEquipmentTree.getCommunityId());
273 275
                 taUserHk.setCreateDate(new Date());
274 276
                 taUserHk.setUpdateDate(new Date());
277
+                taUserHk.setHkCardNo(cardNo + "");
275 278
                 // 存储海康人员ID
276 279
                 row = taUserHkMapper.insertSelective(taUserHk);
277 280
             } else {

+ 27
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserVerifyServicelmpl.java Näytä tiedosto

@@ -5,9 +5,12 @@ import com.alibaba.fastjson.JSONObject;
5 5
 import com.community.commom.constant.Constant;
6 6
 import com.community.commom.mode.ResponseBean;
7 7
 import com.community.commom.session.UserElement;
8
+import com.community.commom.uuid.IdGen;
8 9
 import com.community.huiju.common.messagePush;
9 10
 import com.community.huiju.dao.*;
10 11
 import com.community.huiju.exception.WisdomException;
12
+import com.community.huiju.feign.IHKServer;
13
+import com.community.huiju.feign.entity.PushPerson;
11 14
 import com.community.huiju.model.*;
12 15
 import com.community.huiju.service.IHKService;
13 16
 import com.community.huiju.service.TaUserVerifyServicel;
@@ -84,9 +87,21 @@ public class TaUserVerifyServicelmpl implements TaUserVerifyServicel {
84 87
     @Autowired
85 88
     private TpRoomNoMapper tpRoomNoMapper;
86 89
 
90
+    /**
91
+     * 海康设备服务类
92
+     */
87 93
     @Autowired
88 94
     private IHKService ihkService;
89 95
 
96
+
97
+    @Autowired
98
+    private TpEquipmentTreeMapper tpEquipmentTreeMapper;
99
+
100
+    private IdGen idGen = IdGen.get();
101
+
102
+    @Autowired
103
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
104
+
90 105
     @Override
91 106
     public ResponseBean getToAuditNotApproved(Integer userVerifyId) {
92 107
         ResponseBean responseBean = new ResponseBean();
@@ -335,6 +350,18 @@ public class TaUserVerifyServicelmpl implements TaUserVerifyServicel {
335 350
         return selectBuild;
336 351
     }
337 352
 
353
+    /**
354
+     * 海康权限组
355
+     * @return
356
+     */
357
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
358
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
359
+        if (null == tpUnitHkSetting) {
360
+            throw new WisdomException("权限组未配置");
361
+        }
362
+        return tpUnitHkSetting;
363
+    }
364
+
338 365
     /**
339 366
      * 插入 楼栋资料库
340 367
      *

+ 2
- 1
CODE/smart-community/app-api/src/main/resources/mapper/TpEquipmentTreeMapper.xml Näytä tiedosto

@@ -16,10 +16,11 @@
16 16
     <result column="op_user_uuid" property="opUserUuid" jdbcType="VARCHAR" />
17 17
     <result column="http_server" property="httpServer" jdbcType="VARCHAR" />
18 18
     <result column="unit_uuids" property="unitUuids" jdbcType="VARCHAR" />
19
+    <result column="factory" property="factory" />
19 20
   </resultMap>
20 21
   <sql id="Base_Column_List" >
21 22
     id, community_id, equipment_name, pid, sort, create_time, create_user, update_time,
22
-    update_user, appkey, secret, op_user_uuid, http_server, unit_uuids
23
+    update_user, appkey, secret, op_user_uuid, http_server, unit_uuids, factory
23 24
   </sql>
24 25
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
25 26
     select

+ 121
- 0
CODE/smart-community/hardware-server/src/main/java/com/community/huiju/controller/CardController.java Näytä tiedosto

@@ -0,0 +1,121 @@
1
+package com.community.huiju.controller;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.community.commom.mode.ResponseBean;
5
+import com.community.huiju.base.properties.FuShiProperties;
6
+import com.community.huiju.service.FSHardwareServiceI;
7
+import io.swagger.annotations.Api;
8
+import io.swagger.annotations.ApiImplicitParam;
9
+import io.swagger.annotations.ApiImplicitParams;
10
+import io.swagger.annotations.ApiOperation;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.cloud.context.config.annotation.RefreshScope;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+@RestController
16
+@RequestMapping("/")
17
+@RefreshScope
18
+@Api(value = "车辆服务 API", description = "车辆服务 API")
19
+public class CardController {
20
+
21
+    @Autowired
22
+    private FSHardwareServiceI fsHardwareServiceI;
23
+
24
+    @Autowired
25
+    private FuShiProperties fuShiProperties;
26
+
27
+    @RequestMapping(value = "/car/getParkInfoByCarNo", method = RequestMethod.GET)
28
+    @ApiOperation(value = "获取停车信息(通过车牌号)", notes = "获取停车信息(通过车牌号)")
29
+    @ApiImplicitParams({
30
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "query", name = "carNo", value = "车牌号")
31
+    })
32
+    public ResponseBean getParkInfoByCarNo(@RequestParam("carNo") String carNo) {
33
+        ResponseBean responseBean = new ResponseBean();
34
+        responseBean = fsHardwareServiceI.getParkInfoByCarNo(carNo, fuShiProperties.getParkingCode());
35
+        return responseBean;
36
+    }
37
+
38
+    @RequestMapping(value = "/car/parkGetMonthCardInfoByCarNo", method = RequestMethod.GET)
39
+    @ApiOperation(value = "获取月租车信息(通过车牌号)", notes = "获取月租车信息(通过车牌号)")
40
+    @ApiImplicitParams({
41
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "query", name = "carNo", value = "车牌号")
42
+    })
43
+    public ResponseBean parkGetMonthCardInfoByCarNo(@RequestParam("carNo") String carNo) {
44
+        ResponseBean responseBean = new ResponseBean();
45
+        responseBean = fsHardwareServiceI.parkGetMonthCardInfoByCarNo(carNo, fuShiProperties.getParkingCode());
46
+        return responseBean;
47
+    }
48
+
49
+    @RequestMapping(value = "/car/parkGetTempCarPaymentInfoByCarNo", method = RequestMethod.GET)
50
+    @ApiOperation(value = "获取临时车信息(通过车牌号)", notes = "获取临时车信息(通过车牌号)")
51
+    @ApiImplicitParams({
52
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "query", name = "carNo", value = "车牌号")
53
+    })
54
+    public ResponseBean parkGetTempCarPaymentInfoByCarNo(@RequestParam("carNo") String carNo) {
55
+        ResponseBean responseBean = new ResponseBean();
56
+        responseBean = fsHardwareServiceI.parkGetTempCarPaymentInfoByCarNo(carNo, fuShiProperties.getParkingCode());
57
+        return responseBean;
58
+    }
59
+
60
+    @RequestMapping(value = "/car/apiThirdPartyMonthCardPay", method = RequestMethod.POST)
61
+    @ApiOperation(value = "月卡续费", notes = "月卡续费")
62
+    @ApiImplicitParams({
63
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "Phone手机号;RenewDayType续费日期类型( 3:年 2:月 1:日, 选入对应的数字);" +
64
+                    "RenewDay续费日期数目;" +
65
+                    "PayStyle交易方式(中文描述),例如:微信、 支付宝、 银联;" +
66
+                    "CarNo车牌号;" +
67
+                    "CardNo停车卡号;" +
68
+                    "RechargeAmt充值续费金额;")
69
+    })
70
+    public ResponseBean apiThirdPartyMonthCardPay(@RequestBody String parameter) {
71
+        ResponseBean responseBean = new ResponseBean();
72
+        JSONObject jsonObject = JSONObject.parseObject(parameter);
73
+        responseBean = fsHardwareServiceI.apiThirdPartyMonthCardPay(jsonObject.getString("Phone"),
74
+                jsonObject.getString("RenewDayType"),
75
+                jsonObject.getString("RenewDay"),
76
+                jsonObject.getString("PayStyle"),
77
+                jsonObject.getString("CarNo"),
78
+                jsonObject.getString("CardNo"),
79
+                jsonObject.getString("RechargeAmt"), fuShiProperties.getParkingCode());
80
+        return responseBean;
81
+    }
82
+
83
+    @RequestMapping(value = "/car/apiThirdPartyTemporaryCardPay", method = RequestMethod.POST)
84
+    @ApiOperation(value = "第三方临时卡上发缴费", notes = "第三方临时卡上发缴费")
85
+    @ApiImplicitParams({
86
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "Amount应缴金额(单位元);" +
87
+                    "ActualAmount实缴金额(单位元);" +
88
+                    "DeductionAmount抵扣金额(单位元);" +
89
+                    "Reason抵扣原因;" +
90
+                    "PayStyle交易方式(汉字描述),例如:微信、支付宝、银联;" +
91
+                    "CarNo车牌号;" +
92
+                    "CardNo停车卡号;" +
93
+                    "CouponList使用的优惠券列表")
94
+    })
95
+    public ResponseBean apiThirdPartyTemporaryCardPay(@RequestBody String parameter) {
96
+        ResponseBean responseBean = new ResponseBean();
97
+        JSONObject jsonObject = JSONObject.parseObject(parameter);
98
+        responseBean = fsHardwareServiceI.apiThirdPartyTemporaryCardPay(jsonObject.getString("Amount"),
99
+                jsonObject.getString("ActualAmount"),
100
+                jsonObject.getString("DeductionAmount"),
101
+                jsonObject.getString("Reason"),
102
+                jsonObject.getString("PayStyle"),
103
+                jsonObject.getString("CarNo"),
104
+                jsonObject.getString("CardNo"),
105
+                jsonObject.getString("CouponList"), fuShiProperties.getParkingCode());
106
+        return responseBean;
107
+    }
108
+
109
+
110
+    @RequestMapping(value = "/car/apiGetOfflineFee/{carNoOrCardNo}", method = RequestMethod.GET)
111
+    @ApiOperation(value = "获取线下算费结果", notes = "获取线下算费结果")
112
+    @ApiImplicitParams({
113
+            @ApiImplicitParam(paramType = "path", dataTypeClass = String.class, name = "carNoOrCardNo" , value = "车牌号码或卡号")
114
+    })
115
+    public ResponseBean apiGetOfflineFee(@PathVariable("carNoOrCardNo") String carNoOrCardNo) {
116
+        ResponseBean responseBean = new ResponseBean();
117
+        responseBean = fsHardwareServiceI.apiGetOfflineFee(carNoOrCardNo, fuShiProperties.getParkingCode());
118
+        return responseBean;
119
+    }
120
+
121
+}

+ 196
- 3
CODE/smart-community/hardware-server/src/main/java/com/community/huiju/controller/HardwareController.java Näytä tiedosto

@@ -1,12 +1,17 @@
1 1
 package com.community.huiju.controller;
2 2
 
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.community.commom.mode.ResponseBean;
3 5
 import com.community.huiju.service.FSHardwareServiceI;
4 6
 import com.community.huiju.service.HkHardwareServiceI;
5 7
 import io.swagger.annotations.Api;
8
+import io.swagger.annotations.ApiImplicitParam;
9
+import io.swagger.annotations.ApiImplicitParams;
10
+import io.swagger.annotations.ApiOperation;
6 11
 import org.springframework.beans.factory.annotation.Autowired;
7 12
 import org.springframework.cloud.context.config.annotation.RefreshScope;
8
-import org.springframework.web.bind.annotation.RequestMapping;
9
-import org.springframework.web.bind.annotation.RestController;
13
+import org.springframework.web.bind.annotation.*;
14
+import org.springframework.web.multipart.MultipartFile;
10 15
 
11 16
 import javax.xml.bind.util.JAXBSource;
12 17
 
@@ -27,7 +32,7 @@ public class HardwareController {
27 32
 	private HkHardwareServiceI hkHardwareService;
28 33
 	
29 34
 	
30
-	public String addFace(String jsonString){
35
+	public String testAddFace(String jsonString){
31 36
 		//解析json
32 37
 		//厂家信息
33 38
 		if ("HK".equals(jsonString)){
@@ -47,4 +52,192 @@ public class HardwareController {
47 52
 		}
48 53
 		return "";
49 54
 	}
55
+
56
+	@ApiOperation(value = "添加人员", notes = "添加人员")
57
+	@ApiImplicitParams({
58
+			@ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "jsonString", value =
59
+					"{\n" +
60
+					"\t\"type\": \"厂商\",\n" +
61
+					"\t\"person\": {\n" +
62
+                              "\t\"openapi_ip_port_http\":\"服务器地址\"," +
63
+                              "\t\"appkey\":\"服务器appkey\"," +
64
+                              "\t\"secret\":\"服务器secret\", " +
65
+                              "\t\"opUserUuid\":\"操作人员UUID\"," +
66
+                              "\t\"personNo\":\"人员编号\"," +
67
+                              "\t\"personName\":\"人员姓名\"," +
68
+                              "\t\"remark\":\"手机号\", "+
69
+                              "\t\"deptUuid\",\"部门uuid\", " +
70
+                              "\t\"card\":\"卡号\"," +
71
+                              "\t\"expirationTime\": 开卡有效期, 值为 0 表示 20 年" +
72
+					"\t}\n" +
73
+					"}")
74
+	})
75
+	@PostMapping(value = "/pushPerson")
76
+	public ResponseBean pushPerson(@RequestBody String jsonString) {
77
+		ResponseBean responseBean = new ResponseBean();
78
+		JSONObject jsonObject = JSONObject.parseObject(jsonString);
79
+		String type = jsonObject.getString("type");
80
+		if ("hk".equals(type)) {
81
+			responseBean = hkHardwareService.addPerson(jsonObject.getString("person"));
82
+		} else {
83
+			responseBean.addError("未找到服务商:" + type);
84
+		}
85
+
86
+		return responseBean;
87
+	}
88
+
89
+	@ApiOperation(value = "修改人员", notes = "修改人员")
90
+	@ApiImplicitParams({
91
+			@ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "jsonString", value =
92
+					"{\n" +
93
+					"\t\"type\": \"厂商\",\n" +
94
+					"\t\"person\": {\n" +
95
+					"\t\t\"openapi_ip_port_http\": \"服务器地址\",\n" +
96
+					"\t\t\"appkey\": \"服务器appkey\",\n" +
97
+					"\t\t\"secret\": \"服务器secret\",\n" +
98
+					"\t\t\"opUserUuid\": \"操作人员UUID\",\n" +
99
+					"\t\t\"personNo\": \"人员编号\",\n" +
100
+					"\t\t\"personName\": \"人员姓名\",\n" +
101
+					"\t\t\"remark\": \"手机号\",\n" +
102
+					"\t\t\"deptUuid\": \"部门uuid\",\n" +
103
+					"\t\t\"personId\": \"人员海康ID\"\n" +
104
+					"\n" +
105
+					"\t}\n" +
106
+					"}")
107
+	})
108
+	@PostMapping(value = "/updatePerson")
109
+	public ResponseBean updatePerson(@RequestBody String jsonString) {
110
+		ResponseBean responseBean = new ResponseBean();
111
+		JSONObject jsonObject = JSONObject.parseObject(jsonString);
112
+		String type = jsonObject.getString("type");
113
+		if ("hk".equals(type)) {
114
+			responseBean = hkHardwareService.updatePerson(jsonObject.getString("person"));
115
+		} else {
116
+			responseBean.addError("未找到服务商:" + type);
117
+		}
118
+
119
+		return responseBean;
120
+	}
121
+
122
+	@ApiImplicitParams({
123
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "jsonString", value =
124
+                    "{\n" +
125
+                    "\t\"type\": \"厂商\",\n" +
126
+                    "\t\"face\": {\n" +
127
+                    "\t\t\"doorPermissions\": { // 下发门口机权限(可视对讲)\n" +
128
+                    "\t\t\t\"authName\": \"权限组\",\n" +
129
+                    "\t\t\t\"personIds\": [人员海康ID...],\n" +
130
+                    "\t\t\t\"secret\": \"服务器secret\",\n" +
131
+                    "\t\t\t\"appkey\": \"服务器appkey\",\n" +
132
+                    "\t\t\t\"openapi_ip_port_http\": \"服务器地址\",\n" +
133
+                    "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
134
+                    "\t\t\t\"longNums\": \"门口机(可视对讲)编号\"\n" +
135
+                    "\t\t},\n" +
136
+                    "\t\t\"doorFace\": { // 下发门口机人脸权限\n" +
137
+                    "\t\t\t\"secret\": \"服务器secret\",\n" +
138
+                    "\t\t\t\"appkey\": \"服务器appkey\",\n" +
139
+                    "\t\t\t\"openapi_ip_port_http\": \"服务器地址\",\n" +
140
+                    "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
141
+                    "\t\t\t\"opType\": 1, // 表示下发\n" +
142
+                    "\t\t\t\"personIds\": \"人员海康ID\",\n" +
143
+                    "\t\t\t\"longNums\": \"门口机(可视对讲)编号\"\n" +
144
+                    "\t\t},\n" +
145
+                    "\t\t\"entranceGuardPermissions\": { // 下发门禁权限\n" +
146
+                    "\t\t\t\"personIds\": \"人员海康ID\",\n" +
147
+                    "\t\t\t\"doorUuids\": \"门禁点UUID\",\n" +
148
+                    "\t\t\t\"secret\": \"服务器secret\",\n" +
149
+                    "\t\t\t\"appkey\": \"服务器appkey\",\n" +
150
+                    "\t\t\t\"openapi_ip_port_http\": \"服务器操地址\",\n" +
151
+                    "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\"\n" +
152
+                    "\t\t},\n" +
153
+                    "\t\t\"entranceGuardFace\": { // 下发门禁人脸权限\n" +
154
+                    "\t\t\t\"secret\": \"服务器secret\",\n" +
155
+                    "\t\t\t\"appkey\": \"服务器appkey\",\n" +
156
+                    "\t\t\t\"openapi_ip_port_http\": \"服务器操地址\",\n" +
157
+                    "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
158
+                    "\t\t\t\"personIds\": \"人员海康ID\",\n" +
159
+                    "\t\t\t\"deviceUuids\": \"门禁设备UUID\",\n" +
160
+                    "\t\t\t\"type\": \"1\"\n" +
161
+                    "\t\t},\n" +
162
+                    "\t\t\"person\": {\n" +
163
+                    "\t\t\t\"secret\": \"服务器secret\",\n" +
164
+                    "\t\t\t\"appkey\": \"服务器appkey\",\n" +
165
+                    "\t\t\t\"openapi_ip_port_http\": \"服务器操地址\",\n" +
166
+                    "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
167
+                    "\t\t\t\"personId\": \"人员海康ID\",\n" +
168
+                    "\t\t\t\"personNo\": \"人员海康编号\",\n" +
169
+                    "\t\t\t\"personName\": \"人员名称\",\n" +
170
+                    "\t\t\t//\"facePhoto\":\"人脸图片\",\n" +
171
+                    "\t\t\t\"cardNo\": \"卡号\"\n" +
172
+                    "\t\t}\n" +
173
+                    "\t}\n" +
174
+                    "}")
175
+    })
176
+	@ApiOperation(value = "添加人脸", notes = "添加人脸")
177
+	@PostMapping("/addFace")
178
+	public ResponseBean addFace(@RequestParam("faceImg") MultipartFile faceImg, @RequestParam("jsonString") String jsonString) {
179
+		ResponseBean responseBean = new ResponseBean();
180
+		JSONObject jsonObject = JSONObject.parseObject(jsonString);
181
+		String type = jsonObject.getString("type");
182
+		if ("hk".equals(type)) {
183
+			responseBean = hkHardwareService.addFace(faceImg,jsonObject.getJSONObject("face").toJSONString());
184
+		} else {
185
+			responseBean.addError("未找到服务商:" + type);
186
+		}
187
+
188
+		return responseBean;
189
+	}
190
+
191
+    @ApiImplicitParams({
192
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "jsonString", value =
193
+                    "{\n" +
194
+                            "\t\"type\": \"厂商\",\n" +
195
+                            "\t\"face\": {\n" +
196
+                            "\t\t\"doorFace\": { // 下发门口机人脸权限\n" +
197
+                            "\t\t\t\"secret\": \"服务器secret\",\n" +
198
+                            "\t\t\t\"appkey\": \"服务器appkey\",\n" +
199
+                            "\t\t\t\"openapi_ip_port_http\": \"服务器地址\",\n" +
200
+                            "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
201
+                            "\t\t\t\"opType\": 1, // 表示下发\n" +
202
+                            "\t\t\t\"personIds\": \"人员海康ID\",\n" +
203
+                            "\t\t\t\"longNums\": \"门口机(可视对讲)编号\"\n" +
204
+                            "\t\t},\n" +
205
+                            "\t\t\"entranceGuardFace\": { // 下发门禁人脸权限\n" +
206
+                            "\t\t\t\"secret\": \"服务器secret\",\n" +
207
+                            "\t\t\t\"appkey\": \"服务器appkey\",\n" +
208
+                            "\t\t\t\"openapi_ip_port_http\": \"服务器操地址\",\n" +
209
+                            "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
210
+                            "\t\t\t\"personIds\": \"人员海康ID\",\n" +
211
+                            "\t\t\t\"deviceUuids\": \"门禁设备UUID\",\n" +
212
+                            "\t\t\t\"type\": \"1\"\n" +
213
+                            "\t\t},\n" +
214
+                            "\t\t\"person\": {\n" +
215
+                            "\t\t\t\"secret\": \"服务器secret\",\n" +
216
+                            "\t\t\t\"appkey\": \"服务器appkey\",\n" +
217
+                            "\t\t\t\"openapi_ip_port_http\": \"服务器操地址\",\n" +
218
+                            "\t\t\t\"opUserUuid\": \"服务器操作人员UUID\",\n" +
219
+                            "\t\t\t\"personId\": \"人员海康ID\",\n" +
220
+                            "\t\t\t\"personNo\": \"人员海康编号\",\n" +
221
+                            "\t\t\t\"personName\": \"人员名称\",\n" +
222
+                            "\t\t\t//\"facePhoto\":\"人脸图片\",\n" +
223
+                            "\t\t\t\"cardNo\": \"卡号\"\n" +
224
+                            "\t\t}\n" +
225
+                            "\t}\n" +
226
+                            "}")
227
+    })
228
+    @ApiOperation(value = "修改人脸", notes = "修改人脸")
229
+    @PostMapping("/updateFace")
230
+    public ResponseBean updateFace(@RequestParam("faceImg") MultipartFile faceImg, @RequestParam("jsonString") String jsonString) {
231
+        ResponseBean responseBean = new ResponseBean();
232
+        JSONObject jsonObject = JSONObject.parseObject(jsonString);
233
+        String type = jsonObject.getString("type");
234
+        if ("hk".equals(type)) {
235
+            responseBean = hkHardwareService.updateFace(faceImg,jsonObject.getJSONObject("face").toJSONString());
236
+        } else {
237
+            responseBean.addError("未找到服务商:" + type);
238
+        }
239
+
240
+        return responseBean;
241
+    }
242
+
50 243
 }

+ 3
- 19
CODE/smart-community/hardware-server/src/main/java/com/community/huiju/service/HkHardwareServiceI.java Näytä tiedosto

@@ -176,15 +176,6 @@ public interface HkHardwareServiceI {
176 176
      *
177 177
      *
178 178
      *  {
179
-     *      "doorPermissions":{ // 下发门口机权限(可视对讲)
180
-     *          "authName":"权限组",
181
-     *          "personIds":[人员海康ID...],
182
-     *          "secret":"服务器secret",
183
-     *          "appkey":"服务器appkey",
184
-     *          "openapi_ip_port_http":"服务器地址",
185
-     *          "opUserUuid":"服务器操作人员UUID",
186
-     *          "longNums":"门口机(可视对讲)编号"
187
-     *      },
188 179
      *      "doorFace": { // 下发门口机人脸权限
189 180
      *          "secret":"服务器secret",
190 181
      *          "appkey":"服务器appkey",
@@ -194,14 +185,6 @@ public interface HkHardwareServiceI {
194 185
      *          "personIds":"人员海康ID",
195 186
      *          "longNums":"门口机(可视对讲)编号"
196 187
      *      },
197
-     *      "entranceGuardPermissions":{ // 下发门禁权限
198
-     *          "personIds":"人员海康ID",
199
-     *          "doorUuids":"门禁点UUID",
200
-     *          "secret":"服务器secret",
201
-     *          "appkey":"服务器appkey",
202
-     *          "openapi_ip_port_http":"服务器操地址",
203
-     *          "opUserUuid":"服务器操作人员UUID"
204
-     *      },
205 188
      *      "entranceGuardFace":{ // 下发门禁人脸权限
206 189
      *          "secret":"服务器secret",
207 190
      *          "appkey":"服务器appkey",
@@ -249,7 +232,8 @@ public interface HkHardwareServiceI {
249 232
      *          "personName":"人员姓名",
250 233
      *          "remark":"手机号",
251 234
      *          "deptUuid","部门uuid"
252
-     *
235
+     *          "card":"卡号",
236
+     *          "expirationTime": 开卡有效期, 值为 0 表示 20 年
253 237
      *  }
254 238
      *
255 239
      * @param jsonString
@@ -268,7 +252,7 @@ public interface HkHardwareServiceI {
268 252
      *          "personNo":"人员编号",
269 253
      *          "personName":"人员姓名",
270 254
      *          "remark":"手机号",
271
-     *          "deptUuid","部门uuid",
255
+     *          "deptUuid":"部门uuid",
272 256
      *          "personId":"人员海康ID"
273 257
      *
274 258
      *  }