|  | @@ -10,6 +10,10 @@ class BuildingApiController extends DooController {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	public $staff;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	public $authApp = 'scConstruct';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public $authToken = 'sc@ConS!tru@ct*88';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	function __construct() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -22,6 +26,83 @@ class BuildingApiController extends DooController {
 | 
	
		
			
				|  |  |  		exit;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 员工列表
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	public function StaffList() {
 | 
	
		
			
				|  |  | +		Doo::loadModel('staff');
 | 
	
		
			
				|  |  | +		$staff = new staff();
 | 
	
		
			
				|  |  | +		$staffList = $staff->find(array('select' => 'sid,username,nature,cid,departmentID,category,qq,phone,telephone', 'where' => 'sid!=1 and nature!=4', 'asArray' => TRUE));
 | 
	
		
			
				|  |  | +		Doo::loadModel('department');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		$department = new department();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		foreach($staffList as $k => $v) {
 | 
	
		
			
				|  |  | +			$staffList[$k]['departmentName'] = $v['departmentID'] != 0 ? $department->getDepartmentByDid($v['departmentID'])['departmentName'] : '';
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		echo json_encode($staffList,true);
 | 
	
		
			
				|  |  | +		exit;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 计量支付后台登录
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	public function auth() {
 | 
	
		
			
				|  |  | +		if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['app']) && isset($_POST['time']) && isset($_POST['token'])) {
 | 
	
		
			
				|  |  | +			// 先判断token和time的加密是是否一致,防止被其它接口调用
 | 
	
		
			
				|  |  | +			$token = $this->getSignature($this->authToken.$_POST['time'], $this->authToken);
 | 
	
		
			
				|  |  | +			if ($_POST['app'] == $this->authApp && $_POST['token'] == $token) {
 | 
	
		
			
				|  |  | +				Doo::loadModel('staff');
 | 
	
		
			
				|  |  | +				$staff = new staff();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				$staffInfo = $staff->getStaffByName($_POST['username']);
 | 
	
		
			
				|  |  | +				if (!empty($staffInfo) && $staffInfo['passwork'] == md5($_POST['password'])) {
 | 
	
		
			
				|  |  | +					echo json_encode(array('err' => 0, 'data' => array(
 | 
	
		
			
				|  |  | +						'username' => $staffInfo['username'],
 | 
	
		
			
				|  |  | +						'office' => $staffInfo['cid'],
 | 
	
		
			
				|  |  | +						'category' => $staffInfo['category'],
 | 
	
		
			
				|  |  | +						'email' => $staffInfo['email'],
 | 
	
		
			
				|  |  | +						'telephone' => $staffInfo['telephone'],
 | 
	
		
			
				|  |  | +						'qq' => $staffInfo['qq'],
 | 
	
		
			
				|  |  | +						'fixedphone' => $staffInfo['phone'],
 | 
	
		
			
				|  |  | +						'position' => $staffInfo['position']
 | 
	
		
			
				|  |  | +					)
 | 
	
		
			
				|  |  | +					));
 | 
	
		
			
				|  |  | +					exit;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		echo json_encode(array('err' => '参数有误'));
 | 
	
		
			
				|  |  | +		exit;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// HMAC-SHA1+base64 加密方法
 | 
	
		
			
				|  |  | +	function getSignature($str, $key) {
 | 
	
		
			
				|  |  | +		$signature = "";
 | 
	
		
			
				|  |  | +		if (function_exists('hash_hmac')) {
 | 
	
		
			
				|  |  | +			$signature = base64_encode(hash_hmac("sha1", $str, $key, true));
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			$blocksize = 64;
 | 
	
		
			
				|  |  | +			$hashfunc = 'sha1';
 | 
	
		
			
				|  |  | +			if (strlen($key) > $blocksize) {
 | 
	
		
			
				|  |  | +				$key = pack('H*', $hashfunc($key));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			$key = str_pad($key, $blocksize, chr(0x00));
 | 
	
		
			
				|  |  | +			$ipad = str_repeat(chr(0x36), $blocksize);
 | 
	
		
			
				|  |  | +			$opad = str_repeat(chr(0x5c), $blocksize);
 | 
	
		
			
				|  |  | +			$hmac = pack(
 | 
	
		
			
				|  |  | +				'H*', $hashfunc(
 | 
	
		
			
				|  |  | +					($key ^ $opad) . pack(
 | 
	
		
			
				|  |  | +						'H*', $hashfunc(
 | 
	
		
			
				|  |  | +							($key ^ $ipad) . $str
 | 
	
		
			
				|  |  | +						)
 | 
	
		
			
				|  |  | +					)
 | 
	
		
			
				|  |  | +				)
 | 
	
		
			
				|  |  | +			);
 | 
	
		
			
				|  |  | +			$signature = base64_encode($hmac);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return $signature;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ?>
 |