xuxiuxi
2017-07-28 789b7ff1e420aff8bca618ea1705eb20f4ad0315
VisitFace/document/erdb api½Ó¿ÚÃèÊö.txt
@@ -29,6 +29,14 @@
   }
]
enum StatusID
{
普通访客
黑名单
教师
学生
领导干部
}
select ID, distinct label from VisitorType where RegisterCompanyID = 0 or RegisterCompanyID = "$companyID"
1.2. ImageTypeID
@@ -44,17 +52,17 @@
enum ImageTypeID
{
   Face1 = 1,  // æ­£é¢ç…§ç‰‡1
   Face2 = 2,  // æ­£é¢ç…§ç‰‡2
   FaceLSide = 2,  // ï¼ˆä¸»ä½“观察,<=45度)左侧脸照片
   FaceRSide = 3,  // ï¼ˆä¸»ä½“观察,<=45度)右侧脸照片
   FaceTSide = 4,  // ï¼ˆä¸»ä½“观察,<=45度)顶侧脸照片
   FaceBSide = 5,  // ï¼ˆä¸»ä½“观察,<=45度)底侧脸照片
   FaceUploaded = 2, // ä¸Šä¼ ç…§ç‰‡
   Icon, // å›¾æ ‡
   IdentificationCard, // èº«ä»½è¯ç…§ç‰‡
   BusinessCard, // åç‰‡ç…§ç‰‡
   OtherCard,
   Face1 = 1,  // æ­£é¢ç…§ç‰‡1(交给人脸识别服务)
   Face2 = 2,  // æ­£é¢ç…§ç‰‡2(存放到FaceImage表)
   FaceLSide,  // ï¼ˆä¸»ä½“视角,<=45度)左侧脸照片(存放到FaceImage表)
   FaceRSide,  // ï¼ˆä¸»ä½“视角,<=45度)右侧脸照片(存放到FaceImage表)
   FaceTSide,  // ï¼ˆä¸»ä½“视角,<=45度)顶侧脸照片(存放到FaceImage表)
   FaceBSide,  // ï¼ˆä¸»ä½“视角,<=45度)底侧脸照片(存放到FaceImage表)
   FaceUploaded, // ä¸Šä¼ ç…§ç‰‡ï¼ˆå­˜æ”¾åˆ°FaceImage表)
   Icon, // å›¾æ ‡ï¼ˆå­˜æ”¾åˆ°Image表)
   IdentificationCard, // èº«ä»½è¯ç…§ç‰‡ï¼ˆå­˜æ”¾åˆ°Image表)
   BusinessCard, // åç‰‡ç…§ç‰‡ï¼ˆå­˜æ”¾åˆ°Image表)
   OtherCard, // å…¶ä»–证件(存放到Image表)
}
1.2. StatusID
@@ -70,11 +78,12 @@
enum StatusID
{
普通访客
黑名单
教师
学生
领导干部
未注册
已注册(访客)
来访登记(访客)
签离(访客)
签到(员工)
签退(员工)
}
@@ -101,21 +110,21 @@
a)接收imgs二进制数据
b)转发到人脸识别服务(registerCompanyID, imgs)
c)接收识别结果:<dbid, faceid>,其中<0,0>表示未找到结果,<0,N>表示在访客数据库中找到人脸,<N,M>表示在N公司中匹配人脸M
c)接收识别结果:<dbid, faceid>,其中<(<0),0>表示未找到结果,<(<0),N>表示在访客数据库中找到人脸,<N,M>表示在N公司中匹配人脸M
d) å¯¹äºŽå•个人脸结果:
  if <0,0>
  {
   // æœç´¢æ— ç»“æžœ
  }
  else if (dbid == 0 && faceid != 0)
  else if (dbid < 0 && faceid != 0)
  { // è®¿å®¢
   // select * from VisitFace where faceid="$faceid";
   // select * from Person where
   // select PersonID from FaceImage where RegisterCompanyID="$dbid" and faceid="$faceid";
   // select * from Person where PersonID="$PersonID"
  }
  else if (dbid != 0 && faceid != 0)
  else if (dbid > 0 && faceid != 0)
  { // å‘˜å·¥
     // select * from EmployeeFace where RegisterCompanyID="$dbid" and faceid="$faceid";
   // select * from Person where
     // select * from FaceImage where RegisterCompanyID="$dbid" and faceid="$faceid";
   // select * from Person where PersonID="$PersonID"
  }
  
@@ -157,7 +166,7 @@
Request:
{
   placeID : 123, // è‹¥ä¸º-1则只搜索VisitFaceDB
   visitStatusID : 1 // ç­¾åˆ°ã€ç­¾é€€/签离
   enterOrExit : 1 // ç­¾åˆ°ã€ç­¾é€€/签离
   imgs : [ "image base64" ] // å¯¹åº”多个人的人脸图像
}
Response:
@@ -175,12 +184,12 @@
]
参考a)b)c)d)
参考1.3. a)b)c)d)
e) å¯¹äºŽå•个人脸结果:
   // "$person.id"
   select CompanyID from Place where placeID="$placeID"
   isChecking = select * CheckingCompany where CompanyID = "$CompanyID" and PersonID="$PersonID"
   if (visitStatusID == ç­¾åˆ°) // å…¥å£æ‘„像头
   if (enterOrExit == ç­¾åˆ°) // å…¥å£æ‘„像头
   {
    if (isChecking)
      checking(PersonID, placeID);
@@ -188,13 +197,14 @@
    else
       return person status not changed;
   }
   else if (visitStatusID == ç­¾é€€/签离) // å‡ºå£æ‘„像头
   else if (enterOrExit == ç­¾é€€/签离) // å‡ºå£æ‘„像头
   {
    if (isChecking)
      unchecking(PersonID, placeID);
      return person current status
    else
       unvisit(PersonID, placeID);
      return person current status
   }
   
   checking:
@@ -252,14 +262,15 @@
b) if Person exists return error
c) else insert into Person
d) companyID = (select * from or insert Company where name = "$companyName")
e) department_id , Post_id
f)
2.4. æ³¨å†Œè®¿å®¢äººè„¸(visit face register)
Request:
{
   registerCompanyID : 123,
   personID : 123,
   imgs : [ "image base64" ] // å¯¹åº”一个人的若干个人脸图像
   imgIdentity : "image base64"
   imgs : { ImageTypeID : "image base64" } // å¯¹åº”一个人的若干个人脸图像
}
Response:
{
@@ -268,17 +279,16 @@
a)select exists(*) from person where id="$personID"
b)if not exists return error
c)保存imgIdentity到文件存储,并插入Image表
d)VisitFace.imagePath = ä¿å­˜imgs到文件存储
e)调用人脸识别服务[faceids]=(registerCompanyID, dbid=0, img)
f)对于每一个faceid,insert into VisitFace ("$FaceID", $PersonID, "$VisitFace.imagePath")
c)根据image type保存图片
d)调用人脸识别服务[faceids]=(registerCompanyID, dbid=-1, img)
e)对于每一个faceid,insert into VisitFace ("$FaceID", $PersonID, "$VisitFace.imagePath")
3. æ¥è®¿ç™»è®°
3.1. èŽ·å¾—æ¥è®¿äººå‘˜åˆ—è¡¨
返回按姓名缩写升序的结果
Request:
{
   companyID : 123, // è®¾å¤‡æ‰€åœ¨å­¦æ ¡ID
   companyID : 123, // è®¾å¤‡æ‰€åœ¨å­¦æ ¡ID,0表示所有公司,仅供管理接口使用
   beginPage : 0,
   endPage : 0
}
@@ -286,10 +296,19 @@
[
   {
      personID : 123,
      RegisterCompanyID : 123,
      name : "aaa",
      img : "image url" // éžå­—符串表示使用默认图标
   }
]
set @companyID =1;
select vs.person_id, vs.register_company_id, pe.name, img.image_type, img.image_path
  from visit_stat vs join person pe
  on (@companyID=0 or vs.register_company_id = @companyID) and (vs.person_id = pe.id)
  left outer join Image img
  on (pe.id = img.person_id and img.image_type=8) -- icon
  limit ...
3.2. èŽ·å¾—è¢«è®¿äººå‘˜åˆ—è¡¨
返回按姓名缩写升序的结果
@@ -309,6 +328,9 @@
   }
]
set @companyID =1;
select * from person pe where pe.company_id = @companyID
3.2. æœç´¢
(3. 4. 5. 6.)
来访人员,如果没有给出搜索字段时,显示本校曾经来访人员列表VisitStat;如果给出关键字,则搜索全部人员
@@ -327,6 +349,15 @@
#todo è¢«è®¿è€ƒè™‘和人员列表合并
if isVisitor
   select *
     from visit_stat vs left outer join person pe
     on vs.person_id = person.id
     where vs.register_company_id = "$registerCompanyID" and pe.name_spell like "$nameSpell%"
else
   select * from  person
   where CompanyID = "$registerCompanyID" and name_spell like "$nameSpell%"
3.3. èŽ·å¾—æ¥è®¿/被访人员详细信息(visitor/visitee)
Request:
{