def post(self, *args, **kwargs):
        """admin only"""
        result = {
            "errno": 0,
            "reason": ""
        }
        try:
            key = self.get_argument("key")
            user = get_user_by_key(self.session, key)
            if not user:
                result["errno"] = 1
                result["reason"] = u"非法key"
            elif not user.admin:
                result["errno"] = 1
                result["reason"] = u"用户不是管理员"
            else:
                phone_id = self.get_argument("phoneId")
                identifier = self.get_argument("identifier")
                product = self.get_argument("product", default="")
                mode = self.get_argument("mode", default="")
                dpi = self.get_argument("dpi", default="")
                osv = self.get_argument("osv", default="")
                osvalias = self.get_argument("osvalias", default="")
                belongs = self.get_argument("belongs", default="")

                phone = get_phone_by_phone_id(self.session, phone_id)

                if phone:
                    result["errno"] = 1
                    result["reason"] = u"phoneId已存在"
                else:
                    new_phone = register_phone(self.session, phone_id, identifier,
                                               product, mode, dpi, osv, osvalias, belongs)
                    if new_phone:
                        set_borrower(self.session, new_phone, user)
                    else:
                        result["errno"] = 1
                        result["reason"] = u"注册设备失败"
        except tornado.web.MissingArgumentError:
            result["errno"] = 1
            result["reason"] = u"缺少字段"

        return self.write(json.dumps(result))
    def post(self, *args, **kwargs):
        result = {
            "errno": 0,
            "reason": ""
        }

        try:
            key = self.get_argument("key")
            phone_id = self.get_argument("phoneId")
            user = get_user_by_key(self.session, key)
            phone = get_phone_by_phone_id(self.session, phone_id)

            if not user:
                result["errno"] = 1
                result["reason"] = u"非法key"
            elif not phone:
                result["errno"] = 1
                result["reason"] = u"非法phoneId"
            elif user.blacklist is True:
                result["errno"] = 1
                result["reason"] = u"该用户在黑名单"
            elif user.active is False:
                result["errno"] = 1
                result["reason"] = u"该用户不可操作"
            elif phone.active is False:
                result["errno"] = 1
                result["reason"] = u"该设备不可用"
            else:
                if set_borrower(self.session, phone, user):
                    pass
                else:
                    result["errno"] = 1
                    result["reason"] = u"设置失败"
        except tornado.web.MissingArgumentError:
            result["errno"] = 1
            result["reason"] = u"缺少参数"
            return self.write(json.dumps(result))

        return self.write(json.dumps(result))