DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sReqData, $sMsg); if ($errCode == 0) { // 解密成功,sMsg即为xml格式的明文 //var_dump($sMsg); // TODO: 对明文的处理 $sMsgData = json_decode(json_encode(simplexml_load_string($sMsg, 'SimpleXMLElement', LIBXML_NOCDATA)), true); //$sql="insert into API_Json (method,Json) values ('contactsApi','".json_encode($sMsgData)."')"; //$UPsql = sqlsrv_query($conn,$sql); $Event = $sMsgData['Event']; //事件的类型 if ($Event=='change_contact'){ $ChangeType = $sMsgData['ChangeType']; //create_user成员新建,update_user成员更新,delete_user成员删除,create_party新增部门,update_party更新部门,delete_party删除部门 //新增成员事件 if ($ChangeType=='create_user'){ $OA_User = $sMsgData['UserID']; $OA_Name=empty($sMsgData['Name'])!=false ? "" : $sMsgData['Name']; $OA_gender=empty($sMsgData['Gender'])!=false ? 1 : $sMsgData['Gender']; $OA_mobile=empty($sMsgData['Mobile'])!=false ? "" : $sMsgData['Mobile']; $OA_email=empty($sMsgData['Email'])!=false ? "" : $sMsgData['Email']; $OA_Position=empty($sMsgData['Position'])!=false ? "" : $sMsgData['Position']; $OA_weixinAvatar=empty($sMsgData['Avatar'])!=false ? "" : $sMsgData['Avatar']; if (!empty($sMsgData['Department'])) { $OA_Department = $sMsgData['Department']; $DepartmentArray = explode(',',$OA_Department); $OA_DepartmentID=$DepartmentArray[0]; }else{ $OA_DepartmentID=1; } $OA_CompetencyID=0; //其它信息 $IdentityCard=""; if (!empty($sMsgData['ExtAttr'])) { if (!empty($sMsgData['ExtAttr']['Item'])) { $v=0; foreach ($sMsgData['ExtAttr']['Item'] as $value) { foreach ($value as $value1) { //身份证 if ($IdentityCard=="1" and is_numeric($value1)) {$IdentityCard=$value1;} if ($value1=="身份证" and $IdentityCard=="") {$IdentityCard="1";} //身份证--end } $v=$v+1; } } } if ($IdentityCard=="1" or $IdentityCard=="0") {$IdentityCard="";} //默认部门权限设定 $OA_Power=""; $OA_OrderClass=""; $sql="select OA_Power,OA_OrderClass,vtext from dictionary,OA_User where OA_User=vtext+'_部门' and vtitle='OA_Department' and vID=".$OA_DepartmentID; $data = sqlsrv_query($conn,$sql); if($data == true){ if (sqlsrv_rows_affected($data)!=0) { while($rs = sqlsrv_fetch_array($data) ) { $OA_Power = $rs['OA_Power']; $OA_OrderClass = $rs['OA_OrderClass']; $OA_DepartmentName = $rs['vtext']; if (stripos($OA_DepartmentName,'客服')!=false){ $OA_CompetencyID=1; }elseif (stripos($OA_DepartmentName,'车队')!=false or stripos($OA_DepartmentName,'司机')!=false or stripos($OA_DepartmentName,'车管')!=false){ $OA_CompetencyID=2; }elseif (stripos($OA_DepartmentName,'医生')!=false or stripos($OA_DepartmentName,'医疗')!=false){ $OA_CompetencyID=3; }elseif (stripos($OA_DepartmentName,'护士')!=false or stripos($OA_DepartmentName,'护理')!=false){ $OA_CompetencyID=4; } } } } $sql="insert into OA_User (OA_User,OA_Pass,OA_Name,OA_weixinUserID,OA_gender,OA_mobile,OA_weixinID,OA_email,OA_IdentityCard,OA_Position,OA_province,OA_city,OA_execLevel,OA_Power,OA_DepartmentID,OA_OrderClass,Post_Name,Post_MoneyP,Post_MoneyP1) values ('".$OA_User."',pwdencrypt('000000'),'".$OA_Name."','".$OA_User."',".$OA_gender.",'".$OA_mobile."','','".$OA_email."','".$IdentityCard."','".$OA_Position."','','',1,'".$OA_Power."',".$OA_DepartmentID.",'".$OA_OrderClass."','',0,0.5)"; $UPsql = sqlsrv_query($conn,$sql); if ($OA_CompetencyID!=0){ $sql="select OA_User_ID from OA_User where OA_User='".$OA_User."'"; $data = sqlsrv_query($conn,$sql); if($data == true){ if (sqlsrv_rows_affected($data)!=0) { while($rs = sqlsrv_fetch_array($data) ) { $OA_UserID = $rs['OA_User_ID']; $sql="insert into OA_Competency (OA_CompetencyID,OA_CompetencyUserID) values (".$OA_CompetencyID.",".$OA_UserID.")"; $UPsql = sqlsrv_query($conn,$sql); } } } } } //新增成员事件----end //更新成员事件 if ($ChangeType=='update_user'){ $UserID = $sMsgData['UserID']; $UPdate_Sql="OA_weixinUserID='".$UserID."'"; if (!empty($sMsgData['NewUserID'])) {$UPdate_Sql = "OA_weixinUserID='".$sMsgData['NewUserID']."'";} //成员名称,变更时推送 if (!empty($sMsgData['Name'])) {$UPdate_Sql = $UPdate_Sql.",OA_Name='".$sMsgData['Name']."'";} //成员名称,变更时推送 if (!empty($sMsgData['Mobile'])) {$UPdate_Sql = $UPdate_Sql.",OA_mobile='".$sMsgData['Mobile']."'";} //手机号码,变更时推送 if (!empty($sMsgData['Email'])) {$UPdate_Sql = $UPdate_Sql.",OA_email='".$sMsgData['Email']."'";} //邮箱,变更时推送 if (!empty($sMsgData['Avatar'])) {$UPdate_Sql = $UPdate_Sql.",OA_weixinAvatar='".$sMsgData['Avatar']."'";} //头像url。注:如果要获取小图将url最后的”/0”改成”/100”即可。变更时推送 if (!empty($sMsgData['Position'])) {$UPdate_Sql = $UPdate_Sql.",OA_Position='".$sMsgData['Position']."'";} //职位信息。长度为0~64个字节,变更时推送 //成员部门列表,变更时推送,仅返回该应用有查看权限的部门id if (!empty($sMsgData['Department'])) { $OA_Department = $sMsgData['Department']; $DepartmentArray = explode(',',$OA_Department); $OA_DepartmentID=$DepartmentArray[0]; $UPdate_Sql = $UPdate_Sql.",OA_DepartmentID=".$OA_DepartmentID; } //激活状态:1=激活或关注, 2=禁用, 4=未激活(重新启用未激活用户或者退出企业并且取消关注时触发) if (!empty($sMsgData['Status'])) { $Status = $sMsgData['Status']; if ($Status==2){ $UPdate_Sql = $UPdate_Sql.",OA_execLevel=-1,OA_weixinStatus=".$Status; }else { $UPdate_Sql = $UPdate_Sql.",OA_weixinStatus=".$Status; } } //其它信息 $IdentityCard=""; if (!empty($sMsgData['ExtAttr'])) { if (!empty($sMsgData['ExtAttr']['Item'])) { $v=0; foreach ($sMsgData['ExtAttr']['Item'] as $value) { foreach ($value as $value1) { //身份证 if ($IdentityCard=="1" and is_numeric($value1)) {$IdentityCard=$value1;} if ($value1=="身份证" and $IdentityCard=="") {$IdentityCard="1";} //身份证--end } $v=$v+1; } } } if ($IdentityCard=="1" or $IdentityCard=="0") {$IdentityCard="";} $UPdate_Sql = $UPdate_Sql.",OA_IdentityCard='".$IdentityCard."'"; //更新数据库 if (!empty($UPdate_Sql) and !empty($UserID)) { $sql="update OA_User set ".$UPdate_Sql." where OA_weixinUserID='".$UserID."'"; $UPsql = sqlsrv_query($conn,$sql); } } //更新成员事件----end //delete_user成员删除 if ($ChangeType=='delete_user'){ $UserID = $sMsgData['UserID']; //更新数据库 if (!empty($UserID)) { $sql="delete from OA_User where OA_weixinUserID='".$UserID."'"; $UPsql = sqlsrv_query($conn,$sql); } } //成员删除----end //create_party新增部门 if ($ChangeType=='create_party'){ $department_id = $sMsgData['Id']; //部门id $department_name = $sMsgData['Name']; //部门名称 $department_parentid = $sMsgData['ParentId']; //父亲部门id。根部门为1 $department_order = $sMsgData['Order']; //在父部门中的次序值。order值小的排序靠前。 If (!empty($department_id) and !empty($department_name)) { $sql="select id,vtext from dictionary where vtitle='OA_Department' and vID=".$department_id; $data = sqlsrv_query($conn,$sql); if($data == true){ if (sqlsrv_rows_affected($data)!=0) { while($rs = sqlsrv_fetch_array($data) ) { $ID = $rs['id']; $vtext = $rs['vtext']; $sql="update dictionary set vID=".$department_id.",vtext='".$department_name."',vType=".$department_parentid.",vOrder=".$department_order." where id=".$ID; $UPsql = sqlsrv_query($conn,$sql); $sql="update OA_User set OA_User='".$department_name."_部门',OA_Name='".$department_name."_部门' where OA_execLevel=3 and OA_User='".$vtext."_部门'"; $UPsql = sqlsrv_query($conn,$sql); } }else{ $sql="Insert into dictionary (vID,vtext,vType,vOrder,vtitle) values (".$department_id.",'".$department_name."',".$department_parentid.",".$department_order.",'OA_Department')"; $UPsql = sqlsrv_query($conn,$sql); $sql="Insert into OA_User (OA_User,OA_Pass,OA_Name,OA_execLevel,OA_Power) values ('".$department_name."_部门',pwdencrypt('000000'),'".$department_name."_部门',3,'')"; $UPsql = sqlsrv_query($conn,$sql); } } } } //新增部门事件----end //change_contact更新部门 if ($ChangeType=='update_party'){ $department_id = $sMsgData['Id']; //部门id $department_name=empty($sMsgData['Name'])!=false ? "" : $sMsgData['Name']; //部门名称 $department_parentid=empty($sMsgData['ParentId'])!=false ? "" : $sMsgData['ParentId']; //父亲部门id。根部门为1 $department_order=empty($sMsgData['Order'])!=false ? "" : $sMsgData['Order']; //在父部门中的次序值。order值小的排序靠前。 If (!empty($department_id) and !empty($department_name)) { $sql="select id,vtext from dictionary where vtitle='OA_Department' and vID=".$department_id; $data = sqlsrv_query($conn,$sql); if($data == true){ if (sqlsrv_rows_affected($data)!=0) { while($rs = sqlsrv_fetch_array($data) ) { $ID = $rs['id']; $vtext = $rs['vtext']; $UPdate_Sql="vID=".$department_id; if (!empty($department_name)) {$UPdate_Sql = $UPdate_Sql.",vtext='".$department_name."'";} if (!empty($department_parentid)) {$UPdate_Sql = $UPdate_Sql.",vType=".$department_parentid;} if (!empty($department_order)) {$UPdate_Sql = $UPdate_Sql.",vOrder=".$department_order;} $sql="update dictionary set ".$UPdate_Sql." where id=".$ID; $UPsql = sqlsrv_query($conn,$sql); if (!empty($department_name)) { $sql="update OA_User set OA_User='".$department_name."_部门',OA_Name='".$department_name."_部门' where OA_execLevel=3 and OA_User='".$vtext."_部门'"; $UPsql = sqlsrv_query($conn,$sql); } } } } } } //更新部门事件----end //delete_party删除部门 if ($ChangeType=='delete_party'){ $department_id = $sMsgData['Id']; //部门id If (!empty($department_id)) { $sql="select id,vtext from dictionary where vtitle='OA_Department' and vID=".$department_id; $data = sqlsrv_query($conn,$sql); if($data == true){ if (sqlsrv_rows_affected($data)!=0) { while($rs = sqlsrv_fetch_array($data) ) { $ID = $rs['id']; $vtext = $rs['vtext']; $sql="delete from dictionary where id=".$ID; $UPsql = sqlsrv_query($conn,$sql); $sql="delete from OA_User where OA_execLevel=3 and OA_User='".$vtext."_部门'"; $UPsql = sqlsrv_query($conn,$sql); } } } } } //删除部门----end } } else { //print("ERR: " . $errCode . "\n\n"); $sql="insert into API_Json (method,Json) values ('contactsApiErr','".$errCode."')"; $UPsql = sqlsrv_query($conn,$sql); //exit(-1); } exit(); ?>