|
|
@@ -9,6 +9,8 @@ import com.zd.alg.smartlock.domain.api.*;
|
|
|
import com.zd.common.core.utils.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
@@ -19,6 +21,7 @@ import java.util.*;
|
|
|
* @Date: 2022/08/29/11:30
|
|
|
* @Description:
|
|
|
*/
|
|
|
+@Component
|
|
|
public class SmartlockUtil {
|
|
|
private static final Logger logger = LoggerFactory.getLogger(SmartlockUtil.class);
|
|
|
|
|
|
@@ -27,17 +30,20 @@ public class SmartlockUtil {
|
|
|
/**
|
|
|
* 服务访问地址
|
|
|
*/
|
|
|
- private final static String serviceurl = "http://192.168.249.12/info";
|
|
|
+ @Value("${smartlock.serviceurl}")
|
|
|
+ public String SERVICE_URL;
|
|
|
|
|
|
/***
|
|
|
* 登陆账户
|
|
|
*/
|
|
|
- private final static String userlogin = "admin";
|
|
|
+ @Value("${smartlock.userlogin}")
|
|
|
+ public String USER_LOGIN;
|
|
|
|
|
|
/***
|
|
|
* 登陆密码
|
|
|
*/
|
|
|
- private final static String password = "admin123";
|
|
|
+ @Value("${smartlock.password}")
|
|
|
+ public String PASSWORD;
|
|
|
|
|
|
/**
|
|
|
* 智能锁返回成功字符描述
|
|
|
@@ -47,9 +53,14 @@ public class SmartlockUtil {
|
|
|
/**
|
|
|
* //授权时长(小时)
|
|
|
*/
|
|
|
- public final static Integer authsLength=1;
|
|
|
-
|
|
|
+ @Value("${smartlock.authslength}")
|
|
|
+ public Integer AUTHS_LENGTH;
|
|
|
|
|
|
+ /**
|
|
|
+ * 允许开门次数
|
|
|
+ */
|
|
|
+ @Value("${smartlock.opencount}")
|
|
|
+ public Integer OPEN_COUNT;
|
|
|
|
|
|
|
|
|
public static HttpRequest httpSendPost(String url, String json) {
|
|
|
@@ -63,15 +74,16 @@ public class SmartlockUtil {
|
|
|
* 获取token
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String getToken() {
|
|
|
+ public String getToken() {
|
|
|
String token = null;
|
|
|
- String url = serviceurl + "/login/1/gettoken?userlogin=" + userlogin + "&password=" + password;
|
|
|
+ String url = SERVICE_URL + "/login/1/gettoken?userlogin=" + USER_LOGIN + "&password=" + PASSWORD;
|
|
|
JSONObject json = new JSONObject();
|
|
|
try {
|
|
|
HttpRequest request = HttpRequest.post(url)
|
|
|
.header("Content-Type", "application/json")
|
|
|
.body(json.toString());
|
|
|
HttpResponse response = request.execute();
|
|
|
+ logger.info(response.body());
|
|
|
String resultMsg = JSON.parseObject(response.body()).get("resultMsg").toString();
|
|
|
//请求是否成功
|
|
|
if (SmartlockUtil.resultMsg.equals(resultMsg)) {
|
|
|
@@ -88,11 +100,11 @@ public class SmartlockUtil {
|
|
|
/**
|
|
|
* 获取顶级建筑
|
|
|
*/
|
|
|
- public static SlBuild getTopBuild() {
|
|
|
+ public SlBuild getTopBuild() {
|
|
|
SlBuild slBuild = null;
|
|
|
try {
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
- String url = SmartlockUtil.serviceurl + "/build/1/getbuild?buildfatherid=0&page=1&rows=10&token=" + token;
|
|
|
+ String token = getToken();
|
|
|
+ String url = SERVICE_URL + "/build/1/getbuild?buildfatherid=0&page=1&rows=10&token=" + token;
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
HttpResponse response = request.execute();
|
|
|
// System.out.println(response.body());
|
|
|
@@ -113,14 +125,14 @@ public class SmartlockUtil {
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
|
- public static List<SlRoom> getRoom(SlRoom room) {
|
|
|
+ public List<SlRoom> getRoom(SlRoom room) {
|
|
|
SlBuild slBuild = null;
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
+ String token = getToken();
|
|
|
List<SlRoom> listRoom = new ArrayList<>();
|
|
|
// System.out.println(token);
|
|
|
try {
|
|
|
//获取楼层建筑id
|
|
|
- String urlLc = SmartlockUtil.serviceurl + "/build/1/getbuild?buildid=0&page=1&rows=30&token=" + token;
|
|
|
+ String urlLc = SERVICE_URL + "/build/1/getbuild?buildid=0&page=1&rows=30&token=" + token;
|
|
|
HttpRequest requestLc = SmartlockUtil.httpSendPost(urlLc, "");
|
|
|
HttpResponse responseLc = requestLc.execute();
|
|
|
String str = responseLc.body();
|
|
|
@@ -140,7 +152,7 @@ public class SmartlockUtil {
|
|
|
}
|
|
|
|
|
|
//查询房间 不支持条件搜索
|
|
|
- String urlroom = SmartlockUtil.serviceurl + "/build/2/getroom?buildid=" + slBuild.getBuildid() + "&page=" + slBuild.getPageNumber() + "&rows=" + slBuild.getPageSize() + "&token=" + token;
|
|
|
+ String urlroom = SERVICE_URL + "/build/2/getroom?buildid=" + slBuild.getBuildid() + "&page=" + slBuild.getPageNumber() + "&rows=" + slBuild.getPageSize() + "&token=" + token;
|
|
|
HttpRequest requestRoom = SmartlockUtil.httpSendPost(urlroom, "");
|
|
|
HttpResponse response = requestRoom.execute();
|
|
|
String strRoom = response.body();
|
|
|
@@ -157,12 +169,12 @@ public class SmartlockUtil {
|
|
|
*
|
|
|
* @param sluser
|
|
|
*/
|
|
|
- public static List<SlUser> getUser(SlUser sluser) {
|
|
|
+ public List<SlUser> getUser(SlUser sluser) {
|
|
|
List<SlUser> list = new ArrayList<>();
|
|
|
try {
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
+ String token = getToken();
|
|
|
//sluser.getSearch() 该查询条件支持:人员编号/人员姓名/手机号检索
|
|
|
- String url = SmartlockUtil.serviceurl + "/card/save/8/getcardperson?persontype=1&page=" + sluser.getPageNumber() + "&rows=" + sluser.getPageSize() + "&search=" + sluser.getSearch() + "&token=" + token;
|
|
|
+ String url = SERVICE_URL + "/card/save/8/getcardperson?persontype=1&page=" + sluser.getPageNumber() + "&rows=" + sluser.getPageSize() + "&search=" + sluser.getSearch() + "&token=" + token;
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
HttpResponse response = request.execute();
|
|
|
//查询失败直接返回
|
|
|
@@ -187,15 +199,15 @@ public class SmartlockUtil {
|
|
|
* 返回参数根据后期需求 扩展,
|
|
|
* @return
|
|
|
*/
|
|
|
- public static SlLockOnline getRoomDetails(String roomId) {
|
|
|
+ public SlLockOnline getRoomDetails(String roomId) {
|
|
|
SlLockOnline lockOnline = new SlLockOnline();
|
|
|
try {
|
|
|
if (StringUtils.isEmpty(roomId)) {
|
|
|
logger.error("获取房间详情失败,参数roomid为空:");
|
|
|
return lockOnline;
|
|
|
}
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
- String url = SmartlockUtil.serviceurl + "/lockauth/operate/1/getroominfo?roomid=" + roomId + "&token=" + token;
|
|
|
+ String token = getToken();
|
|
|
+ String url = SERVICE_URL + "/lockauth/operate/1/getroominfo?roomid=" + roomId + "&token=" + token;
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
HttpResponse response = request.execute();
|
|
|
//查询失败直接返回
|
|
|
@@ -205,7 +217,6 @@ public class SmartlockUtil {
|
|
|
return lockOnline;
|
|
|
}
|
|
|
String str = response.body();
|
|
|
- //System.out.println(str);
|
|
|
//在线状态
|
|
|
String roomnetquality = JSON.parseObject(JSON.parseObject(str).get("result").toString()).get("roomnetquality").toString();
|
|
|
//门锁编号
|
|
|
@@ -224,11 +235,11 @@ public class SmartlockUtil {
|
|
|
* 开门记录
|
|
|
* @param openDoorSearch
|
|
|
*/
|
|
|
- public static List<SlOpenAndClosLog> getOpenDoorLog(SlOpenDoorSearch openDoorSearch) {
|
|
|
+ public List<SlOpenAndClosLog> getOpenDoorLog(SlOpenDoorSearch openDoorSearch) {
|
|
|
List<SlOpenAndClosLog> list = new ArrayList<>();
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
try {
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
+ String token = getToken();
|
|
|
|
|
|
if (StringUtils.isEmpty(openDoorSearch.getRoomid())) {
|
|
|
logger.error("查询开门记录集合失败,roomid为空:" + resultMsg);
|
|
|
@@ -242,7 +253,7 @@ public class SmartlockUtil {
|
|
|
String edate = sdf.format(new Date()) + " 23:59:59";
|
|
|
|
|
|
//sluser.getSearch() 该查询条件支持:人员编号/人员姓名/手机号检索
|
|
|
- String url = SmartlockUtil.serviceurl + "/lockauth/operate/2/getlockinfo?persontype=1&page=" + openDoorSearch.getPageNumber() + "&rows=" + openDoorSearch.getPageSize() +
|
|
|
+ String url = SERVICE_URL + "/lockauth/operate/2/getlockinfo?persontype=1&page=" + openDoorSearch.getPageNumber() + "&rows=" + openDoorSearch.getPageSize() +
|
|
|
"&roomid=" + openDoorSearch.getRoomid() + "&token=" + token + "&recordtype=" + openDoorSearch.getRecordtype()
|
|
|
+ "&search=" + openDoorSearch.getSearch() + "&sdate=" + sdate + "&edate=" + edate;
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
@@ -268,11 +279,11 @@ public class SmartlockUtil {
|
|
|
*
|
|
|
* @param group
|
|
|
*/
|
|
|
- public static List<SlGroup> getGroup(SlGroup group) {
|
|
|
+ public List<SlGroup> getGroup(SlGroup group) {
|
|
|
List<SlGroup> list = new ArrayList<>();
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
+ String token = getToken();
|
|
|
try {
|
|
|
- String url = SmartlockUtil.serviceurl + "/group/1/getgroup?&token=" + token
|
|
|
+ String url = SERVICE_URL + "/group/1/getgroup?&token=" + token
|
|
|
+ "&page=" + group.getPageNumber() + "&rows=" + group.getPageSize() + "&pgfatherid=0";
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
HttpResponse response = request.execute();
|
|
|
@@ -295,13 +306,13 @@ public class SmartlockUtil {
|
|
|
* 添加人员并且办理入住
|
|
|
* 返回操作状态
|
|
|
*/
|
|
|
- public static Map<String, Object> addUser(SlUser user, String roomId) {
|
|
|
+ public Map<String, Object> addUser(SlUser user, String roomId) {
|
|
|
List<SlGroup> listgroup = getGroup(new SlGroup());
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
try {
|
|
|
//获取组织id
|
|
|
String pgid = listgroup.get(0).getPgid();
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
+ String token = getToken();
|
|
|
|
|
|
/*roomId="109";
|
|
|
user.setPersoncode("C016");//学号、工号
|
|
|
@@ -314,7 +325,7 @@ public class SmartlockUtil {
|
|
|
Boolean flg = checkUserExis(user.getPersoncode(), "1", token);
|
|
|
if (!flg) {
|
|
|
//新增人员
|
|
|
- String url = SmartlockUtil.serviceurl + "/person/save/1/saveperson?" +
|
|
|
+ String url = SERVICE_URL + "/person/save/1/saveperson?" +
|
|
|
"personcode=" + user.getPersoncode() + "&personname=" + user.getPersonname() + "&personsex=" + user.getPersonsex() +
|
|
|
"&personmobile=" + user.getPersonmobile() + "&persontype=" + user.getPersontype() + "&pgid=" + pgid + "&token=" + token;
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
@@ -356,7 +367,7 @@ public class SmartlockUtil {
|
|
|
* @param roomId
|
|
|
* @param authid
|
|
|
*/
|
|
|
- public static Map<String, Object> updateAuths(String token, String roomId, Integer authid) {
|
|
|
+ public Map<String, Object> updateAuths(String token, String roomId, Integer authid) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
try {
|
|
|
List<SlupdateAuths> list = new ArrayList<>();
|
|
|
@@ -367,10 +378,10 @@ public class SmartlockUtil {
|
|
|
//授权开始日期
|
|
|
String empsdate =sdf.format(new Date());
|
|
|
//授权结束日期
|
|
|
- String empedate = sdf.format(getTime(authsLength));
|
|
|
+ String empedate = sdf.format(getTime(AUTHS_LENGTH));
|
|
|
|
|
|
String pw = getRandom(6);
|
|
|
- String url2 = SmartlockUtil.serviceurl + "/lockauth/operate/7/updateauths?token=" + token + "&roomid=" + roomId + "&password=" + pw
|
|
|
+ String url2 = SERVICE_URL + "/lockauth/operate/7/updateauths?token=" + token + "&roomid=" + roomId + "&password=" + pw
|
|
|
+"&empsdate="+empsdate+"&empedate="+empedate;
|
|
|
HttpRequest request2 = SmartlockUtil.httpSendPost(url2, JSONObject.toJSONString(list));
|
|
|
HttpResponse response2 = request2.execute();
|
|
|
@@ -396,7 +407,7 @@ public class SmartlockUtil {
|
|
|
* @param roomId
|
|
|
* @return
|
|
|
*/
|
|
|
- public static Map<String, Object> addUserAuths(String token, String personcode, String roomId) {
|
|
|
+ public Map<String, Object> addUserAuths(String token, String personcode, String roomId) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
try {
|
|
|
//入住办理
|
|
|
@@ -410,14 +421,15 @@ public class SmartlockUtil {
|
|
|
postUser.setIssendpass("1");//是否下发密码(1是,0否)
|
|
|
postUser.setManagertype(0);//权限类型(1管理权限,0使用权限,管理权限不占用入住人数)
|
|
|
postUser.setPassword(pw);//6位数字密码(不允许连续数字或连续三个及以上相同数字)
|
|
|
- postUser.setEmpsdate(sdf.format(new Date()));//授权开始时间
|
|
|
- postUser.setEmpedate(sdf.format(getTime(authsLength))); //授权结束时间,当前时间加1小时
|
|
|
+ postUser.setOpencount(OPEN_COUNT);//开门次数
|
|
|
+ //postUser.setEmpsdate(sdf.format(new Date()));//授权开始时间
|
|
|
+ postUser.setEmpedate(sdf.format(getTime(AUTHS_LENGTH))); //授权结束时间,当前时间加1小时
|
|
|
postlist.add(postUser);
|
|
|
//System.out.println("开始时间:" + sdf.format(new Date()) + "结束时间:" + sdf.format(getTime(1)));
|
|
|
|
|
|
//将对象转为json
|
|
|
//JSONObject jsonStr = JSON.parseObject(JSONObject.toJSONString( postlist ));
|
|
|
- String url2 = SmartlockUtil.serviceurl + "/lockauth/save/4/saveauths?token=" + token + "&roomid=" + roomId;
|
|
|
+ String url2 = SERVICE_URL + "/lockauth/save/4/saveauths?token=" + token + "&roomid=" + roomId;
|
|
|
HttpRequest request2 = SmartlockUtil.httpSendPost(url2, JSONObject.toJSONString(postlist));
|
|
|
HttpResponse response2 = request2.execute();
|
|
|
//System.out.println(response2.body());
|
|
|
@@ -441,11 +453,11 @@ public class SmartlockUtil {
|
|
|
* @param roomId 房间id
|
|
|
* @return
|
|
|
*/
|
|
|
- public static void AuthCheckInTest(SlUser user, String roomId) {
|
|
|
+ public void AuthCheckInTest(SlUser user, String roomId) {
|
|
|
|
|
|
List<SlGroup> listgroup = getGroup(new SlGroup());
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- String token = SmartlockUtil.getToken();
|
|
|
+ String token = getToken();
|
|
|
roomId = "109";
|
|
|
|
|
|
//获取组织id
|
|
|
@@ -459,7 +471,7 @@ public class SmartlockUtil {
|
|
|
//查询人员是否存在
|
|
|
Boolean flg = checkUserExis(user.getPersoncode(), "1", token);
|
|
|
if (!flg) {
|
|
|
- String url = SmartlockUtil.serviceurl + "/person/save/1/saveperson?" +
|
|
|
+ String url = SERVICE_URL + "/person/save/1/saveperson?" +
|
|
|
"personcode=" + user.getPersoncode() + "&personname=" + user.getPersonname() + "&personsex=" + user.getPersonsex() +
|
|
|
"&persontype=" + user.getPersontype() + "&pgid=" + pgid + "&token=" + token;
|
|
|
HttpRequest request = SmartlockUtil.httpSendPost(url, "");
|
|
|
@@ -492,7 +504,7 @@ public class SmartlockUtil {
|
|
|
|
|
|
//将对象转为json
|
|
|
//JSONObject jsonStr = JSON.parseObject(JSONObject.toJSONString( postlist ));
|
|
|
- String url2 = SmartlockUtil.serviceurl + "/lockauth/operate/9/batchauths?token=" + token;
|
|
|
+ String url2 = SERVICE_URL + "/lockauth/operate/9/batchauths?token=" + token;
|
|
|
HttpRequest request2 = SmartlockUtil.httpSendPost(url2, JSONObject.toJSONString(postlist));
|
|
|
HttpResponse response2 = request2.execute();
|
|
|
//System.out.println(response2.body());
|
|
|
@@ -514,10 +526,10 @@ public class SmartlockUtil {
|
|
|
* @param personcode 人员编码
|
|
|
* @param cardtype 1(学生卡)/2(职工卡)/3(管理卡)/6(临时卡)/7(身份证)
|
|
|
*/
|
|
|
- public static Boolean checkUserExis(String personcode, String cardtype, String token) {
|
|
|
+ public Boolean checkUserExis(String personcode, String cardtype, String token) {
|
|
|
Boolean flg = false;
|
|
|
//String token = SmartlockUtil.getToken();
|
|
|
- String urlexis = SmartlockUtil.serviceurl + "/card/save/8/getcardperson?token=" + token + "&cardtype=" + cardtype + "&page=1&rows=20&search=" + personcode;
|
|
|
+ String urlexis = SERVICE_URL + "/card/save/8/getcardperson?token=" + token + "&cardtype=" + cardtype + "&page=1&rows=20&search=" + personcode;
|
|
|
HttpRequest requestexis = SmartlockUtil.httpSendPost(urlexis, "");
|
|
|
HttpResponse responseexis = requestexis.execute();
|
|
|
//System.out.println(responseexis.body());
|
|
|
@@ -535,11 +547,11 @@ public class SmartlockUtil {
|
|
|
* @param personcode
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String checkUserAuthExis(String personcode, String token) {
|
|
|
+ public String checkUserAuthExis(String personcode, String token) {
|
|
|
String authid = null;
|
|
|
//查询用户授权信息
|
|
|
//String token = SmartlockUtil.getToken();
|
|
|
- String urlauth = SmartlockUtil.serviceurl + "/person/2/getpersonauth?" +
|
|
|
+ String urlauth = SERVICE_URL + "/person/2/getpersonauth?" +
|
|
|
"personcode=" + personcode + "&page=1" + "&rows=50&token=" + token;
|
|
|
HttpRequest requestauth = SmartlockUtil.httpSendPost(urlauth, "");
|
|
|
HttpResponse responseauth = requestauth.execute();
|
|
|
@@ -565,7 +577,7 @@ public class SmartlockUtil {
|
|
|
* @param num
|
|
|
* @return
|
|
|
*/
|
|
|
- public static Date getTime(int num) {
|
|
|
+ public Date getTime(int num) {
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.setTime(new Date());
|
|
|
cal.add(Calendar.HOUR, num);
|
|
|
@@ -615,7 +627,7 @@ public class SmartlockUtil {
|
|
|
|
|
|
// AuthCheckIn(new SlUser() , "");
|
|
|
|
|
|
- //addUser(new SlUser() , "");
|
|
|
+ //addUser(new SlUser() , "");
|
|
|
|
|
|
// System.out.println(checkUserExis("C008","1"));
|
|
|
|
|
|
@@ -625,5 +637,23 @@ public class SmartlockUtil {
|
|
|
//getRoomDetails("109");
|
|
|
|
|
|
//System.out.println(getRandom(6));
|
|
|
+
|
|
|
+ String token = null;
|
|
|
+ String url = "http://192.168.1.66/login/1/gettoken?userlogin=admin&password=admin123";
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+
|
|
|
+ HttpRequest request = HttpRequest.post(url)
|
|
|
+ .header("Content-Type", "application/json")
|
|
|
+ .body(json.toString());
|
|
|
+ HttpResponse response = request.execute();
|
|
|
+ logger.info(response.body());
|
|
|
+ String resultMsg = JSON.parseObject(response.body()).get("resultMsg").toString();
|
|
|
+ //请求是否成功
|
|
|
+ if (SmartlockUtil.resultMsg.equals(resultMsg)) {
|
|
|
+ token = JSON.parseObject(JSON.parseObject(response.body()).get("result").toString()).get("token").toString();
|
|
|
+ } else {
|
|
|
+ logger.info("智能锁获取token失败:" + resultMsg);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|