| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <?php/** * 建筑接口控制器 * * @author EllisRan */class BuildingApiController extends DooController {	public $staff;	public $authApp = 'scConstruct';	public $authToken = 'sc@ConS!tru@ct*88';	function __construct() {	}	public function categoryStaff() {		Doo::loadModel('staff');		$staff = new staff();		$stafflist = $staff->getStaffByCidOnBuilding($this->params['cid']);		echo json_encode($stafflist);		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;	}}?>
 |