Commit 592071967f4ec49e36d351ab2377b951024f02b1
1 parent
ff74650a
Exists in
master
中控指纹机,考勤看板代码提交
Showing
19 changed files
with
555 additions
and
10 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/service/imp/PermissFaceServiceImp.java
| @@ -41,14 +41,7 @@ public class PermissFaceServiceImp implements PermissFaceService { | @@ -41,14 +41,7 @@ public class PermissFaceServiceImp implements PermissFaceService { | ||
| 41 | 41 | ||
| 42 | int schoolId = permissionFaceBean.getSchoolId(); | 42 | int schoolId = permissionFaceBean.getSchoolId(); |
| 43 | 43 | ||
| 44 | - //编辑设置 | ||
| 45 | PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); | 44 | PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); |
| 46 | - if(!StringUtils.isEmpty(permissionFaceBean.getChannel())){ | ||
| 47 | - permissionBean.setChannel(permissionFaceBean.getChannel()); | ||
| 48 | - } | ||
| 49 | - if(!StringUtils.isEmpty(permissionFaceBean.getCustomName())){ | ||
| 50 | - permissionBean.setChannel(permissionFaceBean.getCustomName()); | ||
| 51 | - } | ||
| 52 | 45 | ||
| 53 | int type = permissionFaceBean.getType(); | 46 | int type = permissionFaceBean.getType(); |
| 54 | if (null != permissionBean) | 47 | if (null != permissionBean) |
| @@ -80,12 +73,22 @@ public class PermissFaceServiceImp implements PermissFaceService { | @@ -80,12 +73,22 @@ public class PermissFaceServiceImp implements PermissFaceService { | ||
| 80 | responseBean.setStatus(1); | 73 | responseBean.setStatus(1); |
| 81 | break; | 74 | break; |
| 82 | case 1://编辑 | 75 | case 1://编辑 |
| 83 | - if (null == permissionFaceDao.getPerFaceWithId(id)) { | 76 | + PermissionFaceBean faceBean = permissionFaceDao.getPerFaceWithId(id); |
| 77 | + if (null == faceBean) { | ||
| 84 | responseBean.setMessage("模板不存在"); | 78 | responseBean.setMessage("模板不存在"); |
| 85 | } else { | 79 | } else { |
| 86 | responseBean.setMessage("编辑权限模板成功"); | 80 | responseBean.setMessage("编辑权限模板成功"); |
| 81 | + permissionFaceBean.setChannel(faceBean.getChannel()); | ||
| 82 | + permissionFaceBean.setCustomName(faceBean.getCustomName()); | ||
| 87 | permissionFaceDao.updatePermissionFace(permissionFaceBean); | 83 | permissionFaceDao.updatePermissionFace(permissionFaceBean); |
| 88 | } | 84 | } |
| 85 | + //编辑时设置 | ||
| 86 | + if(!StringUtils.isEmpty(permissionFaceBean.getChannel())){ | ||
| 87 | + permissionBean.setChannel(permissionFaceBean.getChannel()); | ||
| 88 | + } | ||
| 89 | + if(!StringUtils.isEmpty(permissionFaceBean.getCustomName())){ | ||
| 90 | + permissionBean.setChannel(permissionFaceBean.getCustomName()); | ||
| 91 | + } | ||
| 89 | responseBean.setData(null); | 92 | responseBean.setData(null); |
| 90 | sendPermiss2Dev(permissionFaceBean); | 93 | sendPermiss2Dev(permissionFaceBean); |
| 91 | responseBean.setStatus(1); | 94 | responseBean.setStatus(1); |
cloud/dahua/src/main/resources/mapper/PermissionFaceMapper.xml
| @@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
| 19 | <result column="createTime" property="createTime"/> | 19 | <result column="createTime" property="createTime"/> |
| 20 | <result column="updateTime" property="updateTime"/> | 20 | <result column="updateTime" property="updateTime"/> |
| 21 | <result column="updateTime" property="updateTime"/> | 21 | <result column="updateTime" property="updateTime"/> |
| 22 | - <result column="nChannel" property="channel"/> | 22 | + <result column="channel" property="channel"/> |
| 23 | 23 | ||
| 24 | </resultMap> | 24 | </resultMap> |
| 25 | 25 |
cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java
| @@ -2,11 +2,18 @@ package com.example.dahua.mapper; | @@ -2,11 +2,18 @@ package com.example.dahua.mapper; | ||
| 2 | 2 | ||
| 3 | import com.alibaba.fastjson.JSON; | 3 | import com.alibaba.fastjson.JSON; |
| 4 | import com.example.dahua.Tester; | 4 | import com.example.dahua.Tester; |
| 5 | +import com.example.dahua.async.MyScheduledTask; | ||
| 5 | import com.example.dahua.bean.CheckIn; | 6 | import com.example.dahua.bean.CheckIn; |
| 7 | +import com.example.dahua.bean.PermissionBean; | ||
| 8 | +import com.example.dahua.bean.PermissionFaceBean; | ||
| 6 | import com.example.dahua.bean.ShortMsg; | 9 | import com.example.dahua.bean.ShortMsg; |
| 10 | +import com.example.dahua.dao.PermissionFaceDao; | ||
| 7 | import com.example.dahua.dao.UserDao; | 11 | import com.example.dahua.dao.UserDao; |
| 12 | +import com.example.dahua.mqtt.MqttManager; | ||
| 13 | +import com.example.dahua.service.PermissFaceService; | ||
| 8 | import com.example.dahua.service.UserService; | 14 | import com.example.dahua.service.UserService; |
| 9 | import com.example.dahua.utils.DateUtils; | 15 | import com.example.dahua.utils.DateUtils; |
| 16 | +import com.example.dahua.utils.JsonUtils; | ||
| 10 | import com.example.dahua.xiananDao.SearchMapper; | 17 | import com.example.dahua.xiananDao.SearchMapper; |
| 11 | import org.junit.Test; | 18 | import org.junit.Test; |
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 19 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -31,6 +38,12 @@ public class SearchMapperTest extends Tester { | @@ -31,6 +38,12 @@ public class SearchMapperTest extends Tester { | ||
| 31 | @Autowired | 38 | @Autowired |
| 32 | private UserService userService; | 39 | private UserService userService; |
| 33 | 40 | ||
| 41 | + @Autowired | ||
| 42 | + private PermissionFaceDao permissionFaceDao; | ||
| 43 | + | ||
| 44 | + @Autowired | ||
| 45 | + private PermissFaceService permissFaceService; | ||
| 46 | + | ||
| 34 | @Test | 47 | @Test |
| 35 | public void test(){ | 48 | public void test(){ |
| 36 | //有效刷卡调考勤存储过程 | 49 | //有效刷卡调考勤存储过程 |
| @@ -66,5 +79,45 @@ public class SearchMapperTest extends Tester { | @@ -66,5 +79,45 @@ public class SearchMapperTest extends Tester { | ||
| 66 | 79 | ||
| 67 | } | 80 | } |
| 68 | 81 | ||
| 82 | + @Test | ||
| 83 | + public void test4(){ | ||
| 84 | + PermissionFaceBean faceBean = permissionFaceDao.getPerFaceWithId(45); | ||
| 85 | + System.out.println(JsonUtils.nonDefaultMapper().toJson(faceBean)); | ||
| 86 | + faceBean.setType(1); | ||
| 87 | + | ||
| 88 | + String json = "{\"studentType\":\"1\",\"deviceIds\":[\"ytj01hzszdddddddd\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"10:00\",\"endTime\":\"12:05\"}],\"sex\":\"1\",\"weekDay\":\"3,4,5\"}]}"; | ||
| 89 | + PermissionBean permissionBean = JsonUtils.nonDefaultMapper().fromJson(json,PermissionBean.class); | ||
| 90 | + faceBean.setPermissionBean(permissionBean); | ||
| 91 | + faceBean.setPerrmissName("顺治测试学校"); | ||
| 92 | + faceBean.setChannel(""); | ||
| 93 | + faceBean.setCustomName(""); | ||
| 94 | + permissFaceService.addPermissionFace(faceBean); | ||
| 95 | + | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + | ||
| 99 | + private MqttManager mqttManager; | ||
| 100 | + | ||
| 101 | + @Autowired | ||
| 102 | + private MyScheduledTask myScheduledTask; | ||
| 103 | + | ||
| 104 | + @Test | ||
| 105 | + public void test5(){ | ||
| 106 | + if(null == mqttManager){ | ||
| 107 | + mqttManager = new MqttManager(); | ||
| 108 | + mqttManager.init(); | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + String eventTime = DateUtils.date2String(new Date(), DateUtils.format2); | ||
| 112 | + String deviceId =""; | ||
| 113 | + String cardNo =""; | ||
| 114 | + String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:进门" + "______" + eventTime; | ||
| 115 | + | ||
| 116 | + myScheduledTask.sendMQMess(content,deviceId); | ||
| 117 | + System.out.println("发送成功"); | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + | ||
| 121 | + | ||
| 69 | // boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid); | 122 | // boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid); |
| 70 | } | 123 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/AttendanceController.java
| @@ -68,6 +68,11 @@ public class AttendanceController { | @@ -68,6 +68,11 @@ public class AttendanceController { | ||
| 68 | attendacenService.updateAttendance(clientId); | 68 | attendacenService.updateAttendance(clientId); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | + /** | ||
| 72 | + * 关联的显示看板设备 | ||
| 73 | + * @param placeId | ||
| 74 | + * @return | ||
| 75 | + */ | ||
| 71 | @RequestMapping(value = "selectRoomAttendance", method = RequestMethod.GET) | 76 | @RequestMapping(value = "selectRoomAttendance", method = RequestMethod.GET) |
| 72 | List<String> selectRoomAttendance(@RequestParam("placeId") int placeId) { | 77 | List<String> selectRoomAttendance(@RequestParam("placeId") int placeId) { |
| 73 | return attendacenService.selectRoomAttendance(placeId); | 78 | return attendacenService.selectRoomAttendance(placeId); |
| @@ -93,4 +98,15 @@ public class AttendanceController { | @@ -93,4 +98,15 @@ public class AttendanceController { | ||
| 93 | return DateUtils.date2String(date, DateUtils.format2); | 98 | return DateUtils.date2String(date, DateUtils.format2); |
| 94 | } | 99 | } |
| 95 | } | 100 | } |
| 101 | + | ||
| 102 | + /** | ||
| 103 | + * 根据考勤设备ID 获取关联看板设备ID | ||
| 104 | + * @param deviceId | ||
| 105 | + * @return | ||
| 106 | + */ | ||
| 107 | + @RequestMapping(value = "selectPlaceAttendance", method = RequestMethod.GET) | ||
| 108 | + String selectPlaceAttendance(@RequestParam("placeId") String deviceId) { | ||
| 109 | + return attendacenService.selectPlaceAttendance(deviceId); | ||
| 110 | + } | ||
| 111 | + | ||
| 96 | } | 112 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java
| @@ -63,4 +63,14 @@ public class UserController { | @@ -63,4 +63,14 @@ public class UserController { | ||
| 63 | SzVSchoolStudent selectByStudentId(@RequestParam("studentId") int studentId) { | 63 | SzVSchoolStudent selectByStudentId(@RequestParam("studentId") int studentId) { |
| 64 | return userService.selectByStudentId(studentId); | 64 | return userService.selectByStudentId(studentId); |
| 65 | } | 65 | } |
| 66 | + | ||
| 67 | + @RequestMapping(value = "getSchoolIdWidthCardNum", method = RequestMethod.GET) | ||
| 68 | + int getSchoolIdWidthCardNum(@RequestParam("num") String num) { | ||
| 69 | + return userService.getSchoolIdWidthCardNum(num); | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + @RequestMapping(value = "getClintIds", method = RequestMethod.GET) | ||
| 73 | + List<String> getClintIds(@RequestParam("schoolId") String schoolId) { | ||
| 74 | + return userService.getClintIds(schoolId); | ||
| 75 | + } | ||
| 66 | } | 76 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/AttendaceMapper.java
| @@ -23,4 +23,6 @@ public interface AttendaceMapper { | @@ -23,4 +23,6 @@ public interface AttendaceMapper { | ||
| 23 | 23 | ||
| 24 | List<SZ_AttendanceDto> selectCloudAttendanceBySchoolId(int schoolId); | 24 | List<SZ_AttendanceDto> selectCloudAttendanceBySchoolId(int schoolId); |
| 25 | 25 | ||
| 26 | + String selectPlaceAttendance(String deviceId); | ||
| 27 | + | ||
| 26 | } | 28 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java
| @@ -24,4 +24,8 @@ public interface UserMapper { | @@ -24,4 +24,8 @@ public interface UserMapper { | ||
| 24 | StudentBean getStudent_NumWitdCode(@Param("studentcode") String studentcode); | 24 | StudentBean getStudent_NumWitdCode(@Param("studentcode") String studentcode); |
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | + int getSchoolIdWidthCardNum(@Param("cardNum") String cardNum); | ||
| 28 | + | ||
| 29 | + List<String> getClintIds(@Param("schoolId") String schoolId); | ||
| 30 | + | ||
| 27 | } | 31 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/AttendacenService.java
| @@ -17,9 +17,19 @@ public interface AttendacenService { | @@ -17,9 +17,19 @@ public interface AttendacenService { | ||
| 17 | 17 | ||
| 18 | int updateAttendance(String client_id); | 18 | int updateAttendance(String client_id); |
| 19 | 19 | ||
| 20 | + /** | ||
| 21 | + * 关联的显示看板设备 | ||
| 22 | + */ | ||
| 20 | List<String> selectRoomAttendance(int placeId); | 23 | List<String> selectRoomAttendance(int placeId); |
| 21 | 24 | ||
| 22 | List<Integer> selectCloudAttendance(); | 25 | List<Integer> selectCloudAttendance(); |
| 23 | 26 | ||
| 24 | List<SZ_AttendanceDto> selectCloudAttendanceBySchoolId(int schoolId); | 27 | List<SZ_AttendanceDto> selectCloudAttendanceBySchoolId(int schoolId); |
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * 根据考勤设备ID 获取关联看板设备ID | ||
| 31 | + * @param deviceId | ||
| 32 | + * @return | ||
| 33 | + */ | ||
| 34 | + String selectPlaceAttendance(String deviceId); | ||
| 25 | } | 35 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java
| @@ -30,4 +30,8 @@ public interface UserService { | @@ -30,4 +30,8 @@ public interface UserService { | ||
| 30 | 30 | ||
| 31 | int insertTemperature(CwStutemperaturereocrd record); | 31 | int insertTemperature(CwStutemperaturereocrd record); |
| 32 | 32 | ||
| 33 | + int getSchoolIdWidthCardNum(String num); | ||
| 34 | + | ||
| 35 | + List<String> getClintIds(String schoolId); | ||
| 36 | + | ||
| 33 | } | 37 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/AttendacenServiceImp.java
| @@ -35,6 +35,11 @@ public class AttendacenServiceImp implements AttendacenService { | @@ -35,6 +35,11 @@ public class AttendacenServiceImp implements AttendacenService { | ||
| 35 | return attendaceMapper.updateAttendance(client_id); | 35 | return attendaceMapper.updateAttendance(client_id); |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | + /** | ||
| 39 | + * 关联的显示看板设备 | ||
| 40 | + * @param placeId | ||
| 41 | + * @return | ||
| 42 | + */ | ||
| 38 | @Override | 43 | @Override |
| 39 | public List<String> selectRoomAttendance(int placeId) { | 44 | public List<String> selectRoomAttendance(int placeId) { |
| 40 | return attendaceMapper.selectRoomAttendance(placeId); | 45 | return attendaceMapper.selectRoomAttendance(placeId); |
| @@ -49,4 +54,14 @@ public class AttendacenServiceImp implements AttendacenService { | @@ -49,4 +54,14 @@ public class AttendacenServiceImp implements AttendacenService { | ||
| 49 | public List<SZ_AttendanceDto> selectCloudAttendanceBySchoolId(int schoolId) { | 54 | public List<SZ_AttendanceDto> selectCloudAttendanceBySchoolId(int schoolId) { |
| 50 | return attendaceMapper.selectCloudAttendanceBySchoolId(schoolId); | 55 | return attendaceMapper.selectCloudAttendanceBySchoolId(schoolId); |
| 51 | } | 56 | } |
| 57 | + | ||
| 58 | + /** | ||
| 59 | + * 根据考勤设备ID 获取关联看板设备ID | ||
| 60 | + * @param deviceId | ||
| 61 | + * @return | ||
| 62 | + */ | ||
| 63 | + @Override | ||
| 64 | + public String selectPlaceAttendance(String deviceId) { | ||
| 65 | + return attendaceMapper.selectPlaceAttendance(deviceId); | ||
| 66 | + } | ||
| 52 | } | 67 | } |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java
| @@ -93,4 +93,14 @@ public class UserServiceImpl implements UserService { | @@ -93,4 +93,14 @@ public class UserServiceImpl implements UserService { | ||
| 93 | } | 93 | } |
| 94 | return 0; | 94 | return 0; |
| 95 | } | 95 | } |
| 96 | + | ||
| 97 | + @Override | ||
| 98 | + public int getSchoolIdWidthCardNum(String num) { | ||
| 99 | + return userMapper.getSchoolIdWidthCardNum(num); | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + @Override | ||
| 103 | + public List<String> getClintIds(String schoolId) { | ||
| 104 | + return userMapper.getClintIds(schoolId); | ||
| 105 | + } | ||
| 96 | } | 106 | } |
cloud/search_smartCampus/src/main/resources/mapper/AttendanceMapper.xml
| @@ -39,7 +39,7 @@ | @@ -39,7 +39,7 @@ | ||
| 39 | 39 | ||
| 40 | 40 | ||
| 41 | <select id="selectRoomAttendance" parameterType="java.lang.Integer" resultType="java.lang.String"> | 41 | <select id="selectRoomAttendance" parameterType="java.lang.Integer" resultType="java.lang.String"> |
| 42 | - select KaoQinAttendance from XA_PlaceAttendance where PlaceId = #{placeId} | 42 | + select KaoQinAttendance from XA_PlaceAttendance where PlaceId = #{placeId} and (len(KanBanAttendance)>0 and KanBanAttendance is not null ) |
| 43 | </select> | 43 | </select> |
| 44 | 44 | ||
| 45 | <select id="selectCloudAttendance" resultType="java.lang.Integer"> | 45 | <select id="selectCloudAttendance" resultType="java.lang.Integer"> |
| @@ -51,4 +51,8 @@ | @@ -51,4 +51,8 @@ | ||
| 51 | select * from SZ_Attendance where school_id = #{schoolId} and ( clint_type = 18 or clint_type = 22 or clint_id | 51 | select * from SZ_Attendance where school_id = #{schoolId} and ( clint_type = 18 or clint_type = 22 or clint_id |
| 52 | like '253%' ) | 52 | like '253%' ) |
| 53 | </select> | 53 | </select> |
| 54 | + | ||
| 55 | + <select id="selectPlaceAttendance" parameterType="java.lang.String" resultType="java.lang.String"> | ||
| 56 | + select Top(1) PlaceId from XA_PlaceAttendance where KaoQinAttendance = #{deviceId} | ||
| 57 | + </select> | ||
| 54 | </mapper> | 58 | </mapper> |
cloud/search_smartCampus/src/main/resources/mapper/UserMapper.xml
| @@ -6,4 +6,11 @@ | @@ -6,4 +6,11 @@ | ||
| 6 | select student_num from SZ_V_School_Student where student_id = #{studentId} | 6 | select student_num from SZ_V_School_Student where student_id = #{studentId} |
| 7 | </select> | 7 | </select> |
| 8 | 8 | ||
| 9 | + <select id="getSchoolIdWidthCardNum" parameterType="java.lang.String" resultType="java.lang.Integer"> | ||
| 10 | + select Top(1) school_id from SZ_V_School_Student where student_num = #{cardNum} | ||
| 11 | + </select> | ||
| 12 | + | ||
| 13 | + <select id="getClintIds" parameterType="java.lang.String" resultType="java.lang.String"> | ||
| 14 | + select clint_id from SZ_Attendance where school_id = #{schoolId} and (clint_type = 8 or clint_type = 9 or clint_type = 10) | ||
| 15 | + </select> | ||
| 9 | </mapper> | 16 | </mapper> |
| 10 | \ No newline at end of file | 17 | \ No newline at end of file |
cloud/zkAttendance/pom.xml
| @@ -41,6 +41,11 @@ | @@ -41,6 +41,11 @@ | ||
| 41 | <groupId>org.springframework.boot</groupId> | 41 | <groupId>org.springframework.boot</groupId> |
| 42 | <artifactId>spring-boot-starter-web</artifactId> | 42 | <artifactId>spring-boot-starter-web</artifactId> |
| 43 | </dependency> | 43 | </dependency> |
| 44 | + <dependency> | ||
| 45 | + <groupId>org.eclipse.paho</groupId> | ||
| 46 | + <artifactId>org.eclipse.paho.client.mqttv3</artifactId> | ||
| 47 | + <version>1.1.0</version> | ||
| 48 | + </dependency> | ||
| 44 | <!-- <dependency>--> | 49 | <!-- <dependency>--> |
| 45 | <!-- <groupId>org.apache.tomcat.embed</groupId>--> | 50 | <!-- <groupId>org.apache.tomcat.embed</groupId>--> |
| 46 | <!-- <artifactId>tomcat-embed-core</artifactId>--> | 51 | <!-- <artifactId>tomcat-embed-core</artifactId>--> |
cloud/zkAttendance/src/main/java/com/sincere/att/controller/AttPushController.java
| @@ -7,6 +7,7 @@ import com.sincere.att.feign.ScFeign; | @@ -7,6 +7,7 @@ import com.sincere.att.feign.ScFeign; | ||
| 7 | import com.sincere.att.feign.XaFeign; | 7 | import com.sincere.att.feign.XaFeign; |
| 8 | import com.sincere.att.logs.LogName; | 8 | import com.sincere.att.logs.LogName; |
| 9 | import com.sincere.att.logs.LoggerUtils; | 9 | import com.sincere.att.logs.LoggerUtils; |
| 10 | +import com.sincere.att.mqtt.MqtUtils; | ||
| 10 | import com.sincere.att.vo.AttendanceInfoBean; | 11 | import com.sincere.att.vo.AttendanceInfoBean; |
| 11 | import com.sincere.att.vo.CheckOrderVo; | 12 | import com.sincere.att.vo.CheckOrderVo; |
| 12 | import com.sincere.att.vo.FingerOrderVo; | 13 | import com.sincere.att.vo.FingerOrderVo; |
| @@ -410,6 +411,11 @@ public class AttPushController { | @@ -410,6 +411,11 @@ public class AttPushController { | ||
| 410 | JSONObject jsonObject = HttpClientUtils.httpPostJson(urlHXY, jsonResult); | 411 | JSONObject jsonObject = HttpClientUtils.httpPostJson(urlHXY, jsonResult); |
| 411 | //if ((int) jsonObject.get("status") == 1) { | 412 | //if ((int) jsonObject.get("status") == 1) { |
| 412 | if ( Integer.parseInt(jsonObject.get("data").toString()) == 0) { | 413 | if ( Integer.parseInt(jsonObject.get("data").toString()) == 0) { |
| 414 | + /** | ||
| 415 | + * 签到成功发送数据到看板 add by 2020-11-17 | ||
| 416 | + */ | ||
| 417 | + sendMQMessage(SN,cardNo); | ||
| 418 | + | ||
| 413 | Log_kaoInfo.info("出入寝签到成功:" + SN + " 卡号:" + cardNo); | 419 | Log_kaoInfo.info("出入寝签到成功:" + SN + " 卡号:" + cardNo); |
| 414 | } else { | 420 | } else { |
| 415 | Log_kaoInfo.info("出入寝签到失败:" + SN + " 卡号:" + cardNo + " result1:" + jsonObject.toJSONString()); | 421 | Log_kaoInfo.info("出入寝签到失败:" + SN + " 卡号:" + cardNo + " result1:" + jsonObject.toJSONString()); |
| @@ -450,6 +456,33 @@ public class AttPushController { | @@ -450,6 +456,33 @@ public class AttPushController { | ||
| 450 | } | 456 | } |
| 451 | } | 457 | } |
| 452 | 458 | ||
| 459 | + public void sendMQMessage(String deviceId,String cardNum) { | ||
| 460 | + //获取寝室关联的场景id | ||
| 461 | + String placeId = scFeign.selectPlaceAttendance(deviceId); | ||
| 462 | + | ||
| 463 | + if (null != placeId) { | ||
| 464 | + //关联的显示看板设备 | ||
| 465 | + List<String> kanbanIds = scFeign.selectRoomAttendance(Integer.parseInt(placeId)); | ||
| 466 | + | ||
| 467 | + for (int i = 0; i < kanbanIds.size(); i++) { | ||
| 468 | + String kanbanId = kanbanIds.get(i); | ||
| 469 | + String data = "{\"cmd\":\"" + 34 + "\",\"clientId\":\"" + kanbanId + "\",\"data\":{\"cardNum\":\"" + cardNum+"}}"; | ||
| 470 | + MqtUtils.getInstance().sendMsg(kanbanId, data); | ||
| 471 | + } | ||
| 472 | + | ||
| 473 | + } else { | ||
| 474 | + String schoolId = scFeign.getSchoolIdWidthCardNum(cardNum); | ||
| 475 | + if(org.springframework.util.StringUtils.isEmpty(schoolId)||Integer.parseInt(schoolId) <=0)return; | ||
| 476 | + List<String> clintIds = scFeign.getClintIds(schoolId); | ||
| 477 | + for (int i = 0; i < clintIds.size(); i++) { | ||
| 478 | + String clintId = clintIds.get(i); | ||
| 479 | + String data = "{\"cmd\":\"" + 34 + "\",\"clientId\":\"" + clintId + "\",\"data\":{\"cardNum\":\"" + cardNum + "}}"; | ||
| 480 | + MqtUtils.getInstance().sendMsg(clintId, data); | ||
| 481 | + } | ||
| 482 | + } | ||
| 483 | + | ||
| 484 | + } | ||
| 485 | + | ||
| 453 | public static void main(String[] args) { | 486 | public static void main(String[] args) { |
| 454 | /*JSONObject object = new JSONObject(); | 487 | /*JSONObject object = new JSONObject(); |
| 455 | object.put("pageIndex",1); | 488 | object.put("pageIndex",1); |
cloud/zkAttendance/src/main/java/com/sincere/att/feign/ScFeign.java
| @@ -33,4 +33,12 @@ public interface ScFeign { | @@ -33,4 +33,12 @@ public interface ScFeign { | ||
| 33 | String selectStudentNumByStudentId(@RequestParam("studentId") int studentId); | 33 | String selectStudentNumByStudentId(@RequestParam("studentId") int studentId); |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | + @RequestMapping(value = "attendance/selectPlaceAttendance", method = RequestMethod.GET) | ||
| 37 | + String selectPlaceAttendance(@RequestParam("deviceId") String deviceId); | ||
| 38 | + | ||
| 39 | + @RequestMapping(value = "/sm/user/getSchoolIdWidthCardNum", method = RequestMethod.GET) | ||
| 40 | + String getSchoolIdWidthCardNum(@RequestParam("num") String num); | ||
| 41 | + | ||
| 42 | + @RequestMapping(value = "/sm/user/getClintIds", method = RequestMethod.GET) | ||
| 43 | + List<String> getClintIds(@RequestParam("schoolId") String schoolId); | ||
| 36 | } | 44 | } |
cloud/zkAttendance/src/main/java/com/sincere/att/mqtt/MqtUtils.java
0 → 100644
| @@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
| 1 | +package com.sincere.att.mqtt; | ||
| 2 | + | ||
| 3 | +public class MqtUtils { | ||
| 4 | + | ||
| 5 | + private static MqtUtils mqtUtils; | ||
| 6 | + | ||
| 7 | + private MqttManager mqttManager = null; | ||
| 8 | + | ||
| 9 | + public static MqtUtils getInstance() { | ||
| 10 | + if (null == mqtUtils) { | ||
| 11 | + synchronized (MqtUtils.class) { | ||
| 12 | + if (null == mqtUtils) mqtUtils = new MqtUtils(); | ||
| 13 | + } | ||
| 14 | + } | ||
| 15 | + return mqtUtils; | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + public MqtUtils() { | ||
| 19 | + mqttManager = new MqttManager(); | ||
| 20 | + mqttManager.init(); | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + public void sendMsg(String deviceId, String content) { | ||
| 24 | + mqttManager.sendMq(deviceId, content); | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + | ||
| 28 | +} |
cloud/zkAttendance/src/main/java/com/sincere/att/mqtt/MqttManager.java
0 → 100644
| @@ -0,0 +1,116 @@ | @@ -0,0 +1,116 @@ | ||
| 1 | +package com.sincere.att.mqtt; | ||
| 2 | + | ||
| 3 | +import lombok.extern.slf4j.Slf4j; | ||
| 4 | +import org.eclipse.paho.client.mqttv3.*; | ||
| 5 | +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; | ||
| 6 | + | ||
| 7 | +import java.io.UnsupportedEncodingException; | ||
| 8 | +import java.security.InvalidKeyException; | ||
| 9 | +import java.security.NoSuchAlgorithmException; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * mqtt 消息发送服务 | ||
| 13 | + */ | ||
| 14 | +@Slf4j | ||
| 15 | +public class MqttManager { | ||
| 16 | + | ||
| 17 | + private static String accessKey; | ||
| 18 | + | ||
| 19 | + private static String sign; | ||
| 20 | + | ||
| 21 | + public static MqttClient mqttClient; | ||
| 22 | + | ||
| 23 | + public static String groupId; | ||
| 24 | + | ||
| 25 | + public static String topic; | ||
| 26 | + | ||
| 27 | + private static int qosLevel; | ||
| 28 | + | ||
| 29 | + public void init() { | ||
| 30 | + final String brokerUrl = "tcp://post-cn-4590mq2hr03.mqtt.aliyuncs.com:1883"; | ||
| 31 | + groupId = "GID_HFJSIURFHAQO110"; | ||
| 32 | + topic = "Topic_Quene_Test"; | ||
| 33 | + qosLevel = 1; | ||
| 34 | + final Boolean cleanSession = false; | ||
| 35 | + String clientId = groupId + "@@@9ED96FB6D72C1698"; | ||
| 36 | + accessKey = "UimvLVp0Wj90P88u"; | ||
| 37 | + String secretKey = "TE4rZenITG27tiQqHx9qINjx71Nws7"; | ||
| 38 | + final MemoryPersistence memoryPersistence = new MemoryPersistence(); | ||
| 39 | + if (null == mqttClient) { | ||
| 40 | + try { | ||
| 41 | + mqttClient = new MqttClient(brokerUrl, clientId, memoryPersistence); | ||
| 42 | + } catch (MqttException e) { | ||
| 43 | + e.printStackTrace(); | ||
| 44 | + } | ||
| 45 | + MqttConnectOptions connOpts = new MqttConnectOptions(); | ||
| 46 | + //cal the sign as password,sign=BASE64(MAC.SHA1(groupId,secretKey)) | ||
| 47 | + try { | ||
| 48 | + sign = Tools.macSignature(clientId.split("@@@")[0], secretKey); | ||
| 49 | + } catch (InvalidKeyException e) { | ||
| 50 | + e.printStackTrace(); | ||
| 51 | + } catch (NoSuchAlgorithmException e) { | ||
| 52 | + e.printStackTrace(); | ||
| 53 | + } | ||
| 54 | + connOpts.setUserName(accessKey); | ||
| 55 | + connOpts.setPassword(sign.toCharArray()); | ||
| 56 | + connOpts.setCleanSession(cleanSession); | ||
| 57 | + connOpts.setKeepAliveInterval(90); | ||
| 58 | + connOpts.setAutomaticReconnect(true); | ||
| 59 | + mqttClient.setCallback(new MqttCallbackExtended() { | ||
| 60 | + @Override | ||
| 61 | + public void connectComplete(boolean reconnect, String serverURI) { | ||
| 62 | + log.info("connect success"); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @Override | ||
| 66 | + public void connectionLost(Throwable throwable) { | ||
| 67 | + log.info("connect lost:" + throwable.toString()); | ||
| 68 | + throwable.printStackTrace(); | ||
| 69 | + init();//初始化 | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + @Override | ||
| 73 | + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { | ||
| 74 | + log.info("receive msg from topic " + s + " , body is " + new String(mqttMessage.getPayload())); | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + @Override | ||
| 78 | + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { | ||
| 79 | + //this notice make sense when qos >0 | ||
| 80 | +// System.out.println("send msg succeed"); | ||
| 81 | + } | ||
| 82 | + }); | ||
| 83 | + try { | ||
| 84 | + mqttClient.connect(connOpts); | ||
| 85 | + } catch (MqttException e) { | ||
| 86 | + log.warn("mqtt:" + e.toString()); | ||
| 87 | + e.printStackTrace(); | ||
| 88 | + } | ||
| 89 | + } | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + public void sendMq(String deviceId, String content) { | ||
| 93 | + | ||
| 94 | + String recvClientId = groupId + "@@@" + deviceId; | ||
| 95 | + final String p2pSendTopic = topic + "/p2p/" + recvClientId; | ||
| 96 | + | ||
| 97 | + MqttMessage message = null; | ||
| 98 | + try { | ||
| 99 | + message = new MqttMessage(content.getBytes("GB2312")); | ||
| 100 | + } catch (UnsupportedEncodingException e) { | ||
| 101 | + e.printStackTrace(); | ||
| 102 | + } | ||
| 103 | + message.setQos(qosLevel); | ||
| 104 | + log.info("发送内容:" + p2pSendTopic + " msg:---------" + content); | ||
| 105 | + if (null != mqttClient) { | ||
| 106 | + try { | ||
| 107 | + mqttClient.publish(p2pSendTopic, message); | ||
| 108 | + } catch (MqttException e) { | ||
| 109 | + e.printStackTrace(); | ||
| 110 | + } | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + | ||
| 116 | +} |
cloud/zkAttendance/src/main/java/com/sincere/att/mqtt/Tools.java
0 → 100644
| @@ -0,0 +1,217 @@ | @@ -0,0 +1,217 @@ | ||
| 1 | +package com.sincere.att.mqtt; | ||
| 2 | + | ||
| 3 | +import com.alibaba.fastjson.JSON; | ||
| 4 | +import com.alibaba.fastjson.JSONObject; | ||
| 5 | +import org.apache.commons.codec.binary.Base64; | ||
| 6 | +import org.apache.http.HttpEntity; | ||
| 7 | +import org.apache.http.HttpResponse; | ||
| 8 | +import org.apache.http.HttpStatus; | ||
| 9 | +import org.apache.http.NameValuePair; | ||
| 10 | +import org.apache.http.client.HttpClient; | ||
| 11 | +import org.apache.http.client.entity.UrlEncodedFormEntity; | ||
| 12 | +import org.apache.http.client.methods.HttpGet; | ||
| 13 | +import org.apache.http.client.methods.HttpPost; | ||
| 14 | +import org.apache.http.client.utils.URLEncodedUtils; | ||
| 15 | +import org.apache.http.config.Registry; | ||
| 16 | +import org.apache.http.config.RegistryBuilder; | ||
| 17 | +import org.apache.http.conn.socket.ConnectionSocketFactory; | ||
| 18 | +import org.apache.http.conn.socket.PlainConnectionSocketFactory; | ||
| 19 | +import org.apache.http.conn.ssl.NoopHostnameVerifier; | ||
| 20 | +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; | ||
| 21 | +import org.apache.http.impl.client.HttpClientBuilder; | ||
| 22 | +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; | ||
| 23 | +import org.apache.http.message.BasicNameValuePair; | ||
| 24 | +import org.apache.http.util.EntityUtils; | ||
| 25 | + | ||
| 26 | +import javax.crypto.Mac; | ||
| 27 | +import javax.crypto.spec.SecretKeySpec; | ||
| 28 | +import javax.net.ssl.SSLContext; | ||
| 29 | +import javax.net.ssl.TrustManager; | ||
| 30 | +import javax.net.ssl.X509TrustManager; | ||
| 31 | +import java.io.IOException; | ||
| 32 | +import java.nio.charset.Charset; | ||
| 33 | +import java.security.*; | ||
| 34 | +import java.security.cert.CertificateException; | ||
| 35 | +import java.security.cert.X509Certificate; | ||
| 36 | +import java.util.*; | ||
| 37 | + | ||
| 38 | +/** | ||
| 39 | + * Created by alvin on 17-3-29. | ||
| 40 | + */ | ||
| 41 | +public class Tools { | ||
| 42 | + public static Properties loadProperties() { | ||
| 43 | + Properties properties = new Properties(); | ||
| 44 | + try { | ||
| 45 | + properties.load(ClassLoader.getSystemResourceAsStream("test.properties")); | ||
| 46 | + } catch (IOException e) { | ||
| 47 | + } | ||
| 48 | + return properties; | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + /** | ||
| 52 | + * 计算签名,参数分别是参数对以及密钥 | ||
| 53 | + * | ||
| 54 | + * @param requestParams 参数对,即参与计算签名的参数 | ||
| 55 | + * @param secretKey 密钥 | ||
| 56 | + * @return 签名字符串 | ||
| 57 | + * @throws NoSuchAlgorithmException | ||
| 58 | + * @throws InvalidKeyException | ||
| 59 | + */ | ||
| 60 | + public static String doHttpSignature(Map<String, String> requestParams, String secretKey) throws NoSuchAlgorithmException, InvalidKeyException { | ||
| 61 | + List<String> paramList = new ArrayList<String>(); | ||
| 62 | + for (Map.Entry<String, String> entry : requestParams.entrySet()) { | ||
| 63 | + paramList.add(entry.getKey() + "=" + entry.getValue()); | ||
| 64 | + } | ||
| 65 | + Collections.sort(paramList); | ||
| 66 | + StringBuffer sb = new StringBuffer(); | ||
| 67 | + for (int i = 0; i < paramList.size(); i++) { | ||
| 68 | + if (i > 0) { | ||
| 69 | + sb.append('&'); | ||
| 70 | + } | ||
| 71 | + sb.append(paramList.get(i)); | ||
| 72 | + } | ||
| 73 | + return macSignature(sb.toString(), secretKey); | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + /** | ||
| 77 | + * @param text 要签名的文本 | ||
| 78 | + * @param secretKey 阿里云MQ secretKey | ||
| 79 | + * @return 加密后的字符串 | ||
| 80 | + * @throws InvalidKeyException | ||
| 81 | + * @throws NoSuchAlgorithmException | ||
| 82 | + */ | ||
| 83 | + public static String macSignature(String text, String secretKey) throws InvalidKeyException, NoSuchAlgorithmException { | ||
| 84 | + Charset charset = Charset.forName("UTF-8"); | ||
| 85 | + String algorithm = "HmacSHA1"; | ||
| 86 | + Mac mac = Mac.getInstance(algorithm); | ||
| 87 | + mac.init(new SecretKeySpec(secretKey.getBytes(charset), algorithm)); | ||
| 88 | + byte[] bytes = mac.doFinal(text.getBytes(charset)); | ||
| 89 | + return new String(Base64.encodeBase64(bytes), charset); | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + /** | ||
| 93 | + * 创建HTTPS 客户端 | ||
| 94 | + * | ||
| 95 | + * @return 单例模式的客户端 | ||
| 96 | + * @throws KeyStoreException | ||
| 97 | + * @throws UnrecoverableKeyException | ||
| 98 | + * @throws NoSuchAlgorithmException | ||
| 99 | + * @throws KeyManagementException | ||
| 100 | + */ | ||
| 101 | + private static HttpClient httpClient = null; | ||
| 102 | + | ||
| 103 | + public static HttpClient getHttpsClient() throws KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyManagementException { | ||
| 104 | + if (httpClient != null) { | ||
| 105 | + return httpClient; | ||
| 106 | + } | ||
| 107 | + X509TrustManager xtm = new X509TrustManager() { | ||
| 108 | + @Override | ||
| 109 | + public void checkClientTrusted(X509Certificate[] arg0, String arg1) | ||
| 110 | + throws CertificateException { | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + @Override | ||
| 114 | + public void checkServerTrusted(X509Certificate[] arg0, String arg1) | ||
| 115 | + throws CertificateException { | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + @Override | ||
| 119 | + public X509Certificate[] getAcceptedIssuers() { | ||
| 120 | + return new X509Certificate[]{}; | ||
| 121 | + } | ||
| 122 | + }; | ||
| 123 | + SSLContext context = SSLContext.getInstance("TLS"); | ||
| 124 | + context.init(null, new TrustManager[]{xtm}, null); | ||
| 125 | + SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(context, NoopHostnameVerifier.INSTANCE); | ||
| 126 | + Registry<ConnectionSocketFactory> sfr = RegistryBuilder.<ConnectionSocketFactory>create() | ||
| 127 | + .register("http", PlainConnectionSocketFactory.INSTANCE) | ||
| 128 | + .register("https", scsf).build(); | ||
| 129 | + PoolingHttpClientConnectionManager pcm = new PoolingHttpClientConnectionManager(sfr); | ||
| 130 | + httpClient = HttpClientBuilder.create().setConnectionManager(pcm).build(); | ||
| 131 | + return httpClient; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + public static HttpClient createHttpsClient() throws KeyManagementException, NoSuchAlgorithmException { | ||
| 135 | + X509TrustManager xtm = new X509TrustManager() { | ||
| 136 | + @Override | ||
| 137 | + public void checkClientTrusted(X509Certificate[] arg0, String arg1) | ||
| 138 | + throws CertificateException { | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + @Override | ||
| 142 | + public void checkServerTrusted(X509Certificate[] arg0, String arg1) | ||
| 143 | + throws CertificateException { | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + @Override | ||
| 147 | + public X509Certificate[] getAcceptedIssuers() { | ||
| 148 | + return new X509Certificate[]{}; | ||
| 149 | + } | ||
| 150 | + }; | ||
| 151 | + SSLContext context = SSLContext.getInstance("TLS"); | ||
| 152 | + context.init(null, new TrustManager[]{xtm}, null); | ||
| 153 | + SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(context, NoopHostnameVerifier.INSTANCE); | ||
| 154 | + Registry<ConnectionSocketFactory> sfr = RegistryBuilder.<ConnectionSocketFactory>create() | ||
| 155 | + .register("http", PlainConnectionSocketFactory.INSTANCE) | ||
| 156 | + .register("https", scsf).build(); | ||
| 157 | + PoolingHttpClientConnectionManager pcm = new PoolingHttpClientConnectionManager(sfr); | ||
| 158 | + return HttpClientBuilder.create().setConnectionManager(pcm).build(); | ||
| 159 | + } | ||
| 160 | + | ||
| 161 | + /** | ||
| 162 | + * 发起Https Get请求,并得到返回的JSON响应 | ||
| 163 | + * | ||
| 164 | + * @param url 接口Url | ||
| 165 | + * @param params 参数u对 | ||
| 166 | + * @return | ||
| 167 | + * @throws IOException | ||
| 168 | + * @throws KeyStoreException | ||
| 169 | + * @throws UnrecoverableKeyException | ||
| 170 | + * @throws NoSuchAlgorithmException | ||
| 171 | + * @throws KeyManagementException | ||
| 172 | + */ | ||
| 173 | + public static JSONObject httpsGet(String url, Map<String, String> params) throws IOException, KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyManagementException { | ||
| 174 | + HttpClient client = Tools.getHttpsClient(); | ||
| 175 | + JSONObject jsonResult = null; | ||
| 176 | + //发送get请求 | ||
| 177 | + List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); | ||
| 178 | + for (Map.Entry<String, String> entry : params.entrySet()) { | ||
| 179 | + urlParameters.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); | ||
| 180 | + } | ||
| 181 | + String paramUrl = URLEncodedUtils.format(urlParameters, Charset.forName("UTF-8")); | ||
| 182 | + HttpGet request = new HttpGet(url + "?" + paramUrl); | ||
| 183 | + HttpResponse response = client.execute(request); | ||
| 184 | + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { | ||
| 185 | + String strResult = EntityUtils.toString(response.getEntity()); | ||
| 186 | + jsonResult = JSON.parseObject(strResult); | ||
| 187 | + } | ||
| 188 | + return jsonResult; | ||
| 189 | + } | ||
| 190 | + | ||
| 191 | + /** | ||
| 192 | + * 工具方法,发送一个http post请求,并尝试将响应转换为JSON | ||
| 193 | + * | ||
| 194 | + * @param url 请求的方法名url | ||
| 195 | + * @param params 参数表 | ||
| 196 | + * @return 如果请求成功则返回JSON, 否则抛异常或者返回空 | ||
| 197 | + * @throws IOException | ||
| 198 | + */ | ||
| 199 | + public static JSONObject httpsPost(String url, Map<String, String> params) throws IOException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException { | ||
| 200 | + JSONObject jsonResult = null; | ||
| 201 | + //发送get请求 | ||
| 202 | + HttpClient client = getHttpsClient(); | ||
| 203 | + HttpPost request = new HttpPost(url); | ||
| 204 | + List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); | ||
| 205 | + for (Map.Entry<String, String> entry : params.entrySet()) { | ||
| 206 | + urlParameters.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); | ||
| 207 | + } | ||
| 208 | + HttpEntity postParams = new UrlEncodedFormEntity(urlParameters); | ||
| 209 | + request.setEntity(postParams); | ||
| 210 | + HttpResponse response = client.execute(request); | ||
| 211 | + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { | ||
| 212 | + String strResult = EntityUtils.toString(response.getEntity()); | ||
| 213 | + jsonResult = JSON.parseObject(strResult); | ||
| 214 | + } | ||
| 215 | + return jsonResult; | ||
| 216 | + } | ||
| 217 | +} |