| | |
| | | }
|
| | | ]
|
| | |
|
| | | enum StatusID
|
| | | {
|
| | | æ®é访客
|
| | | é»åå
|
| | | æå¸
|
| | | å¦ç
|
| | | é¢å¯¼å¹²é¨
|
| | | }
|
| | | select ID, distinct label from VisitorType where RegisterCompanyID = 0 or RegisterCompanyID = "$companyID"
|
| | |
|
| | | 1.2. ImageTypeID
|
| | | Request:
|
| | | {
|
| | | }
|
| | | Response:
|
| | | [
|
| | | {
|
| | | ID : "label"
|
| | | }
|
| | | ]
|
| | |
|
| | | enum ImageTypeID
|
| | | {
|
| | | Face = 1, // ç
§ç
|
| | | FaceUploaded = 2, // ä¸ä¼ ç
§ç
|
| | | Icon, // 徿
|
| | | |
| | | |
| | | 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
|
| | | Request:
|
| | | {
|
| | | }
|
| | | Response:
|
| | | [
|
| | | {
|
| | | ID : "label"
|
| | | }
|
| | | ]
|
| | |
|
| | | enum StatusID
|
| | | {
|
| | | æªæ³¨å
|
| | | 已注åï¼è®¿å®¢ï¼
|
| | | æ¥è®¿ç»è®°ï¼è®¿å®¢ï¼
|
| | | ç¾ç¦»ï¼è®¿å®¢ï¼
|
| | | ç¾å°ï¼åå·¥ï¼
|
| | | ç¾éï¼åå·¥ï¼
|
| | | }
|
| | |
|
| | |
|
| | | 1.3. 人è¸è¯å«
|
| | | éè¿å¾åè·å¾faceID
|
| | | Request:
|
| | | {
|
| | | registerCompanyID : 123, // è¥ä¸º-1ååªæç´¢VisitFaceDB
|
| | | imgs : [ "image base64" ] // 对åºå¤ä¸ªäººç人è¸å¾å
|
| | | imgs : [ "image base64" ] // 对åºå¤ä¸ªäººç人è¸å¾å # 使ç¨http form post
|
| | | }
|
| | | Response:
|
| | | [
|
| | |
| | | registerCompanyID : 123, //æ¾ä¸å°è¿åVisitDBFaceIDï¼æ¤é¡¹ä¸º-1
|
| | | faceID : 1,
|
| | | isVisitDBFaceID : false, // <dbid=-1, faceid!=-1> : true, <dbid!=-1, faceid!=-1> : false
|
| | | srcImgIdx : 1,
|
| | | srcImgPosX : 123,
|
| | | srcImgPosY : 456,
|
| | | srcImgPosW : 123,
|
| | | srcImgPosH : 456
|
| | | imgUrl : "",
|
| | | imgType : ""
|
| | | },
|
| | | {
|
| | | faceID : -1, // æç´¢æ ç»æ <dbid=-1, faceid=-1>
|
| | | }
|
| | | ]
|
| | |
|
| | | a)æ¥æ¶imgsäºè¿å¶æ°æ®
|
| | | b)转åå°äººè¸è¯å«æå¡(registerCompanyID, imgs)
|
| | | c)æ¥æ¶è¯å«ç»æï¼<dbid, faceid>ï¼å
¶ä¸<(<0),0>è¡¨ç¤ºæªæ¾å°ç»æï¼<(<0),N>表示å¨è®¿å®¢æ°æ®åºä¸æ¾å°äººè¸ï¼<N,M>表示å¨Nå
¬å¸ä¸å¹é
人è¸M
|
| | | d) 对äºå个人è¸ç»æï¼
|
| | | if <0,0>
|
| | | {
|
| | | // æç´¢æ ç»æ
|
| | | }
|
| | | else if (dbid < 0 && faceid != 0)
|
| | | { // 访客
|
| | | // select PersonID from FaceImage where RegisterCompanyID="$dbid" and faceid="$faceid";
|
| | | // select * from Person where PersonID="$PersonID"
|
| | | }
|
| | | else if (dbid > 0 && faceid != 0)
|
| | | { // åå·¥
|
| | | // select * from FaceImage where RegisterCompanyID="$dbid" and faceid="$faceid";
|
| | | // select * from Person where PersonID="$PersonID"
|
| | | }
|
| | | |
| | |
|
| | | 1.4. äººè¸æ»ä½ä¿¡æ¯æ¥è¯¢
|
| | | éè¿faceIDè·å¾Personç®è¦ä¿¡æ¯
|
| | |
| | | Request:
|
| | | {
|
| | | placeID : 123, // è¥ä¸º-1ååªæç´¢VisitFaceDB
|
| | | visitStatusID : 1 // ç¾å°ãç¾é/ç¾ç¦»
|
| | | enterOrExit : 1 // ç¾å°ãç¾é/ç¾ç¦»
|
| | | imgs : [ "image base64" ] // 对åºå¤ä¸ªäººç人è¸å¾å
|
| | | }
|
| | | Response:
|
| | |
| | | //ä¸å¡éè¯¯ï¼ 9.1. éç¨æå/éè¯¯ç»æ
|
| | | }
|
| | | ]
|
| | |
|
| | |
|
| | | åè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 (enterOrExit == ç¾å°) // å
¥å£æå头
|
| | | {
|
| | | if (isChecking)
|
| | | checking(PersonID, placeID);
|
| | | return person current status
|
| | | else
|
| | | return person status not changed;
|
| | | }
|
| | | else if (enterOrExit == ç¾é/ç¾ç¦») // åºå£æå头
|
| | | {
|
| | | if (isChecking)
|
| | | unchecking(PersonID, placeID);
|
| | | return person current status
|
| | | else
|
| | | unvisit(PersonID, placeID);
|
| | | return person current status
|
| | | }
|
| | | |
| | | checking:
|
| | | noNeedInsertNewRecord = select * from Checking where StatusID = "$NewStatusID" and statusDt + 5second > now() and PersonID = "$PersonID" and PlaceID="$PlaceID"
|
| | | if (!noNeedInsertNewRecord)
|
| | | {
|
| | | insert into Checking(...);
|
| | | }
|
| | | |
| | | unvisit
|
| | | noNeedInsertNewRecord = ...
|
| | | if (!noNeedInsertNewRecord)
|
| | | {
|
| | | // get last visit event
|
| | | select * from Visit where VisitorPersonID="$PersonID" and CompanyID="$CompanyID" order by startTime desc limit 1
|
| | | |
| | | insert into Visiting
|
| | | update Visit LastStatusID, lastTime
|
| | | }
|
| | |
|
| | |
|
| | | 1.7. æ¥è¯¢äººåæ¥è®¿/ç¾å°ç¶æ
|
| | | éè¦æ¯ææ¹éæ¥è¯¢
|
| | |
| | | name : "",
|
| | | companyName : "",
|
| | | // ...
|
| | | imgIdentity : "image base64"
|
| | | }
|
| | | Response:
|
| | | {
|
| | |
| | | personID : 123
|
| | | }
|
| | |
|
| | | 2.4. 注å人è¸
|
| | | a) find by name, (IdentityTypeID, identity), phone ... from Person
|
| | | 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" ] // 对åºä¸ä¸ªäººçè¥å¹²ä¸ªäººè¸å¾å
|
| | | imgs : { ImageTypeID : "image base64" } // 对åºä¸ä¸ªäººçè¥å¹²ä¸ªäººè¸å¾å
|
| | | }
|
| | | Response:
|
| | | {
|
| | | faceIDs : [ 123 ]
|
| | | }
|
| | |
|
| | | a)select exists(*) from person where id="$personID"
|
| | | b)if not exists return error
|
| | | 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
|
| | | }
|
| | |
| | | [
|
| | | {
|
| | | 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. è·å¾è¢«è®¿äººåå表
|
| | | è¿åæå§å缩åååºçç»æ
|
| | |
| | | }
|
| | | ]
|
| | |
|
| | | set @companyID =1;
|
| | | select * from person pe where pe.company_id = @companyID
|
| | |
|
| | | 3.2. æç´¢
|
| | | (3. 4. 5. 6.)
|
| | | æ¥è®¿äººåï¼å¦ææ²¡æç»åºæç´¢å段æ¶ï¼æ¾ç¤ºæ¬æ ¡æ¾ç»æ¥è®¿äººåå表VisitStatï¼å¦æç»åºå
³é®åï¼åæç´¢å
¨é¨äººå
|
| | |
| | | }
|
| | |
|
| | | #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:
|
| | |
| | | Response:
|
| | | æå/éè¯¯ç»æ
|
| | |
|
| | | insert or update VisitStat
|
| | |
|
| | | 3.5. è·å¾æè®¿äºç±é项å表
|
| | | Request:
|
| | | {
|