package com.basic.security.manager.impl.cblite;
|
|
import android.text.TextUtils;
|
|
import com.basic.security.manager.PersonManager;
|
import com.basic.security.manager.impl.sqlite.SlVisitManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.model.Person;
|
import com.basic.security.utils.Constants;
|
import com.basic.security.utils.FacePosition;
|
import com.couchbase.lite.Expression;
|
import com.couchbase.lite.Ordering;
|
|
import java.util.Date;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
public class VisitManager extends BaseManager {
|
|
static List<FacePosition> upLoadVisitRecordToESQueue = new LinkedList();
|
|
//获取最后访问时间
|
public static String getLastVisitTime(String person_id) {
|
if (Constants.useCouchbase) {
|
Expression expression = Expression.property("table").equalTo(Expression.string("visit"))
|
.and(Expression.property("person_id").equalTo(Expression.string(person_id)));
|
Ordering[] orderings = new Ordering[1];
|
orderings[0] = Ordering.property("visit_time").descending();
|
List<ModelAdapter> visit_list = findList(expression, orderings, 1, 0);
|
if (visit_list.size() > 0) {
|
return visit_list.get(0).getString("visit_time");
|
}
|
return "";
|
} else {
|
return SlVisitManager.getLastVisitTime(person_id);
|
}
|
}
|
|
// public static String BASE_URL = "http://192.168.1.182:9200/";
|
// @POST("videopersons/perVideoPicture")
|
//上传访问的人脸到FastDFS数据库 然后获取该图片在FastDFS库中的路径 然后调用后台接口 存储该人的数据到er-lang数据库
|
public static void upLoadVisitRecordToES(FacePosition facePosition) {
|
// new Thread(){
|
// public void run() {
|
// try {
|
// class UpLoadVisitRecordToESHelper {
|
// ModelAdapter savedPersonDocument;
|
// public void execute() {
|
// findPerson();
|
// sendVisitRecordToES();
|
// }
|
// public void findPerson() {
|
// savedPersonDocument = PersonManager.findById(facePosition.compareFeatureResult.personId);
|
// }
|
// public void sendVisitRecordToES() {
|
//
|
// ModelAdapter device = DeviceSettingManager.findById(DeviceManager.getDeviceId());
|
// String deviceName = "";
|
// String deviceAddress = "";
|
// if (device != null) {
|
// deviceName = MutableDocumentUtil.getString(device, "name");
|
// deviceAddress = MutableDocumentUtil.getString(device, "address");
|
// }
|
// RequestParams params = new RequestParams("http://192.168.1.182:9200/videopersons/perVideoPicture");
|
// long time = System.currentTimeMillis();
|
// String picPath = FastDFSUtil.upLoadVisitorPic(facePosition.faceJpgData, time);
|
// params.addBodyParameter("personPicUrl", picPath);
|
// params.addBodyParameter("picAddress", deviceAddress);
|
// params.addBodyParameter("picDate", DateUtil.formatTime(time, "yyyy-MM-dd HH:mm:ss"));
|
// params.addBodyParameter("picSmUrl", picPath);
|
// params.addBodyParameter("indeviceid", DeviceManager.getDeviceId());
|
// params.addBodyParameter("idcard", MutableDocumentUtil.getString(savedPersonDocument, "id_card_number"));
|
// params.addBodyParameter("personId", savedPersonDocument.getId());
|
// params.addBodyParameter("indevicename", deviceName);
|
// x.http().post(params, new Callback.CommonCallback<Object>() {
|
// public void onSuccess(Object result) {
|
// System.out.println("上传访问记录成功");
|
// }
|
// public void onError(Throwable ex, boolean isOnCallback) {}
|
// public void onCancelled(CancelledException cex) {}
|
// public void onFinished() {}
|
// });
|
// }
|
// }
|
//// new UpLoadVisitRecordToESHelper().execute();
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// }
|
// }.start();
|
}
|
|
public static void saveVisitRecord(String person_id, String verify_result) {
|
if (Constants.useCouchbase) {
|
ModelAdapter personDocument = PersonManager.findById(Person.tableName, person_id);
|
ModelAdapter visitorDocument = new ModelAdapter();
|
visitorDocument.setString("table", "visit");
|
visitorDocument.setString("person_id", person_id);
|
visitorDocument.setString("person_name", personDocument.getString("name"));
|
visitorDocument.setString("person_phone", personDocument.getString("phone"));
|
visitorDocument.setString("person_id_number", personDocument.getString("id_card_number"));
|
visitorDocument.setString("person_type", personDocument.getString("type"));
|
visitorDocument.setString("visit_time", new Date().getTime() + "");
|
visitorDocument.setString("verify_result", verify_result);
|
visitorDocument.setString("device_id", DeviceManager.getDeviceId());
|
visitorDocument.setString("company_id", DeviceManager.getCompareId());
|
save(visitorDocument);
|
} else {
|
SlVisitManager.saveVisitRecord(person_id, verify_result);
|
}
|
}
|
|
public static List<ModelAdapter> queryVisitRecords(String selectIdentity, String key_word, boolean descend, long start_time, long end_time, int start, int count) {
|
if (Constants.useCouchbase) {
|
Expression expression = Expression.property("table").equalTo(Expression.string("visit"))
|
.and(Expression.property("visit_time").between(Expression.string(start_time + ""), Expression.string(end_time + "")));
|
|
if (!TextUtils.isEmpty(key_word)) {
|
Expression key = Expression.property("person_name").like(Expression.string("%" + key_word + "%"))
|
.or(Expression.property("person_id_number").like(Expression.string("%" + key_word + "%")))
|
.or(Expression.property("person_phone").like(Expression.string("%" +
|
"" + key_word + "%")));
|
expression = expression.and(key);
|
}
|
Ordering[] orderings = new Ordering[1];
|
if (descend) {
|
orderings[0] = Ordering.property("visit_time").descending();// 时间倒叙
|
} else {
|
orderings[0] = Ordering.property("visit_time").ascending(); // 时间正序
|
}
|
return findList(expression, orderings, count, start); // 分页查询
|
} else {
|
return SlVisitManager.queryVisitRecords(selectIdentity, key_word, descend, start_time, end_time, start, count);
|
}
|
}
|
|
public static List<ModelAdapter> getPersonVisitPassRecords(String person_id, boolean descend) {
|
if (Constants.useCouchbase) {
|
Expression expression = Expression.property("table").equalTo(Expression.string("visit"))
|
.and(Expression.property("person_id").equalTo(Expression.string(person_id)))
|
.and(Expression.property("verify_result").equalTo(Expression.string("0")));
|
Ordering[] orderingArray = new Ordering[1];
|
if (descend) {
|
orderingArray[0] = Ordering.property("visit_time").descending();
|
} else {
|
orderingArray[0] = Ordering.property("visit_time").ascending();
|
}
|
return findList(expression, orderingArray);
|
} else {
|
return SlVisitManager.getPersonVisitPassRecords(person_id, descend);
|
}
|
}
|
|
}
|