from('syweb_admin,syweb_app') ->where('syweb_admin.app_id=syweb_app.id and syweb_app.appid=? and syweb_admin.username=? and syweb_admin.password=? and syweb_admin.type=3', $appid,$username,$password) ->get($this->db ,null); if(count($res)>0){ $result[0]["error"] = "0"; $result[0]["data"] = $res[0]; }else{ $result[0]["error"] = "1"; $result[0]["error_code"] = 1; // 用户名或密码不存在 } return $result; } /** * 增加应用管理员(错误代码:10200-10250) * @route({"POST","/add"}) * @param({"appid","$._POST.appid"}) 应用appid * @param({"devkey","$._POST.devkey"}) 开发者key * @param({"username","$._POST.username"}) 用户名账号 * @param({"nickname","$._POST.nickname"}) 用户昵称 * @param({"password","$._POST.password"}) 用户密码 * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 */ public function add($appid="",$devkey="",$username="",$nickname="",$password="") { $result = array(); $insertData = array(); if( empty($appid) ){ $result["error"] = '1'; $result["error_code"] = 10001; $result["msg"] = "未传入appid参数"; return $result; } if( empty($devkey) ){ $result["error"] = '1'; $result["error_code"] = 10002; $result["msg"] = "未传入devkey参数"; return $result; } $devList = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1',$devkey) ->get($this->db ,null); if( empty($devList) || count($devList)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10003; $result["msg"] = "devkey无效"; return $result; } $devInfo = $devList[0]; $appList = Sql::select('syweb_app.*') ->from('syweb_app') ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid,$devInfo['id']) ->get($this->db ,null); if( empty($appList) || count($appList)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10004; $result["msg"] = "指定的应用不存在或未被审核"; return $result; } $appInfo = $appList[0]; $insertData['app_id'] = $appInfo["id"]; if( empty($username) ){ $result["error"] = '1'; $result["error_code"] = 10200; $result["msg"] = '请输入管理员账号。'; return $result; } if( !checklen($username) ){ $result["error"] = '1'; $result["error_code"] = 10201; $result["msg"] = '管理员用户名必须是大于5位小于15位!'; return $result; } $managerInfo = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.username=?', $username) ->get($this->db ,null); if( !empty($managerInfo) && count($managerInfo)>0 ){ $result["error"] = '1'; $result["error_code"] = 10202; $result["msg"] = '指定的管理员账号已经存在。'; return $result; } $insertData['username'] = $username; if( empty($password) ){ $result["error"] = '1'; $result["error_code"] = 10203; $result["msg"] = '请传入管理员密码!'; return $result; } if( !checklen($password) ){ $result["error"] = '1'; $result["error_code"] = 10204; $result["msg"] = '管理员密码必须是大于8位小于16位!'; return $result; } $insertData['password'] = md5($password); if( empty($nickname) ){ $result["error"] = '1'; $result["error_code"] = 10205; $result["msg"] = '请输入管理员昵称!'; return $result; } $insertData['nickname'] = $nickname; $insertData['type'] = 3; $insertData['status'] = 1; $insertData['createtime'] = time(); $pdo = $this->db; $pdo->beginTransaction(); $managerId = Sql::insertInto('syweb_admin')->values($insertData)->exec($pdo)->lastInsertId(); $pdo->commit(); if ( !empty($managerId) && is_numeric($managerId) && $managerId>0 ) { unset($insertData["password"]); unset($insertData["type"]); $insertData["id"] = $managerId; $result["error"] = '0'; $result["data"] = $insertData; $result["msg"] = "添加管理员成功。"; return $result; }else{ $result["error"] = '1'; $result["error_code"] = 10206; $result["msg"] = '添加管理员失败。'; return $result; } } /** * 修改应用管理员(错误代码:10200-10250) * @route({"POST","/edit"}) * @param({"appid","$._POST.appid"}) 应用appid * @param({"devkey","$._POST.devkey"}) 开发者key * @param({"username","$._POST.username"}) 用户名账号 * @param({"nickname","$._POST.nickname"}) 用户昵称 * @param({"password","$._POST.password"}) 用户密码 * @param({"oldpassword","$._POST.oldpassword"}) 用户原始密码 * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 */ public function edit($appid="",$devkey="",$username="",$nickname="",$password="",$oldpassword="") { $result = array(); $updateData = array(); if( empty($appid) ){ $result["error"] = '1'; $result["error_code"] = 10001; $result["msg"] = "未传入appid参数"; return $result; } if( empty($devkey) ){ $result["error"] = '1'; $result["error_code"] = 10002; $result["msg"] = "未传入devkey参数"; return $result; } $devList = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1',$devkey) ->get($this->db ,null); if( empty($devList) || count($devList)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10003; $result["msg"] = "devkey无效"; return $result; } $devInfo = $devList[0]; $appList = Sql::select('syweb_app.*') ->from('syweb_app') ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid,$devInfo['id']) ->get($this->db ,null); if( empty($appList) || count($appList)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10004; $result["msg"] = "指定的应用不存在或未被审核"; return $result; } $appInfo = $appList[0]; if( empty($username) ){ $result["error"] = '1'; $result["error_code"] = 10200; $result["msg"] = '请输入要修改的管理员账号。'; return $result; } $managerInfo = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.username=?',$username) ->get($this->db ,null); if( empty($managerInfo) || count($managerInfo)<0 ){ $result["error"] = '1'; $result["error_code"] = 10201; $result["msg"] = '指定的管理员账号不存在。'; return $result; } if( empty($password) && empty($nickname) ){ $result["error"] = '1'; $result["error_code"] = 10202; $result["msg"] = '请指定修改昵称或是密码'; return $result; } if( !empty($password) && !checklen($password) ){ $result["error"] = '1'; $result["error_code"] = 10203; $result["msg"] = '管理员密码必须是大于8位小于16位!'; return $result; } if( !empty($password) && empty($oldpassword) ){ $result["error"] = '1'; $result["error_code"] = 10204; $result["msg"] = '要修改密码必须提供原密码。'; return $result; } if( !empty($password) ){ $managerInfo = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.username=? and syweb_admin.password=?',$username,md5($oldpassword)) ->get($this->db ,null); if( empty($managerInfo) || count($managerInfo)<0 ){ $result["error"] = '1'; $result["error_code"] = 10205; $result["msg"] = '原始密码不符。'; return $result; } } $fieldsCount = 0; $updateSql = Sql::update('syweb_admin'); if ( !empty($nickname) ) { $updateSql->set("nickname",$nickname); $fieldsCount = $fieldsCount +1; } if ( !empty($password) ) { $updateSql->set("password",md5($password)); $fieldsCount = $fieldsCount +1; } // 修改限定条件 begin $condition = array(); $conditionStr = " username='".$username."'"; if(!empty($conditionStr)){ $updateSql->where($conditionStr); } // 修改限定条件 end $pdo = $this->db; $pdo->beginTransaction(); if($fieldsCount>0){ $updateCount = $updateSql->exec($pdo); } $pdo->commit(); if( !$updateCount ){ $result["error"] = '0'; $result["msg"] = '数据修改成功。'; return $result; }else{ $result["error"] = '1'; $result["error_code"] = 10206; $result["msg"] = '数据修改失败。'; return $result; } } /** * 增加应用管理员(错误代码:10300-10350) * @route({"POST","/delete"}) * @param({"appid","$._POST.appid"}) 应用appid * @param({"devkey","$._POST.devkey"}) 开发者key * @param({"username","$._POST.username"}) 用户名账号 * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 */ public function delete($appid="",$devkey="",$username="") { $result = array(); $insertData = array(); if( empty($appid) ){ $result["error"] = '1'; $result["error_code"] = 10001; $result["msg"] = "未传入appid参数"; return $result; } if( empty($devkey) ){ $result["error"] = '1'; $result["error_code"] = 10002; $result["msg"] = "未传入devkey参数"; return $result; } $devList = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1',$devkey) ->get($this->db ,null); if( empty($devList) || count($devList)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10003; $result["msg"] = "devkey无效"; return $result; } $devInfo = $devList[0]; $appList = Sql::select('syweb_app.*') ->from('syweb_app') ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid,$devInfo['id']) ->get($this->db ,null); if( empty($appList) || count($appList)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10004; $result["msg"] = "指定的应用不存在或未被审核"; return $result; } $appInfo = $appList[0]; $insertData['app_id'] = $appInfo["id"]; if( empty($username) ){ $result["error"] = '1'; $result["error_code"] = 10300; $result["msg"] = '请输入要删除的管理员账号。'; return $result; } $managerInfo = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.username=?', $username) ->get($this->db ,null); if( empty($managerInfo) || count($managerInfo)<=0 ){ $result["error"] = '1'; $result["error_code"] = 10301; $result["msg"] = '指定的管理员账号不存在。'; return $result; } $condition .= " `username` = '".$username."'"; $pdo = $this->db; $pdo->beginTransaction(); $delResult = Sql::deleteFrom('syweb_admin')->where($condition)->exec($this->db); $pdo->commit(); $managerInfo = Sql::select('syweb_admin.*') ->from('syweb_admin') ->where('syweb_admin.username=?', $username) ->get($this->db ,null); if( empty($managerInfo) || count($managerInfo)<=0 ){ $result["error"] = '0'; $result["msg"] = "删除管理员成功。"; return $result; }else{ $result["error"] = '1'; $result["error_code"] = 10302; $result["msg"] = '删除管理员失败。'; } } /** * 查询指定应用中的管理员列表 * @route({"POST","/list"}) * @param({"appid","$._POST.appid"}) 应用appid * @param({"devkey","$._POST.devkey"}) 开发者key * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 */ public function queryList($appid="",$devkey="") { $fields = " syweb_admin.id,syweb_admin.username,syweb_admin.nickname,syweb_admin.app_id,syweb_admin.createtime "; if( empty($appid) ){ $result["status"] = '0'; $result["message"] = '请传入appid参数。'; return $result; } $appInfo = Sql::select('syweb_app.*') ->from('syweb_app') ->where('syweb_app.appid=?', $appid) ->get($this->db ,null); if(empty($appInfo) && count($appInfo)<=0){ $result["status"] = '0'; $result["message"] = '指定的应用不存在,请检查appid参数。'; return $result; } if(empty($devkey)){ $result["status"] = '0'; $result["message"] = '请传入devkey参数。'; return $result; } $managerList = Sql::select($fields) ->from('syweb_admin,syweb_app') ->where('syweb_admin.app_id=syweb_app.id and syweb_app.appid=? and syweb_admin.type=3', $appid) ->get($this->db ,null); if(!empty($managerList) && count($managerList)>0){ $result["status"] = '0'; $result["data"] = $managerList; return $result; } else { $result["status"] = '0'; $result["data"] = array(); return $result; } } /** * 根据用户名查询用户详细信息 * @route({"POST","/query"}) * @param({"appid","$._POST.appid"}) 应用appid * @param({"devkey","$._POST.devkey"}) 开发者key * @param({"username","$._POST.username"}) 用户名 * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 */ public function query($appid,$devkey,$username) { if(empty($appid)){ $result["status"] = '0'; $result["message"] = '请传入appid参数。'; return $result; } $appInfo = Sql::select('syweb_app.*') ->from('syweb_app') ->where('syweb_app.appid=?', $appid) ->get($this->db ,null); if(empty($appInfo) || count($appInfo)<=0){ $result["status"] = '0'; $result["message"] = '指定的应用不存在,请检查appid参数。'; return $result; } if(empty($devkey)){ $result["status"] = '0'; $result["message"] = '请传入devkey参数。'; return $result; } if(empty($username)){ $result["status"] = '0'; $result["message"] = '请传入username参数。'; return $result; } $res = Sql::select('syweb_admin.id,syweb_admin.username,syweb_admin.nickname,syweb_admin.app_id,syweb_admin.createtime') ->from('syweb_admin,syweb_app') ->where('syweb_admin.app_id=syweb_app.id and syweb_app.appid=? and syweb_admin.username=? and syweb_admin.type=3', $appid,$username) ->get($this->db ,null); if(count($res)>0){ $result[0]["error"] = "0"; $result[0]["data"] = $res[0]; }else{ $result[0]["error"] = "1"; $result[0]["error_code"] = 1; // 指定的用户不存在 } return $result; } /** @inject("ioc_factory") */ private $factory; /** * @property({"default":"@db"}) * @var PDO */ public $db; }