コード例 #1
0
    def login_success(user, handler):
        """
        后台用户登录成功之后事物处理函数
        """
        # 设置登录用户cookie信息
        handler.set_curent_user(user)

        user_id = user.id
        login_count = user.login_count if user.login_count else 0
        params = {
            'login_count': login_count + 1,
            'last_login_at': utime.timestamp(3),
            'last_login_ip': handler.request.remote_ip,
        }
        AdminUser.Update.filter(AdminUser.id == user_id).update(params)

        params = {
            'id': 0,
            'user_id': user.id,
            'client': 'web',
            'ip': handler.request.remote_ip,
            'created_at': utime.timestamp(3),
        }
        log = AdminUserLoginLog(**params)
        AdminUserLoginLog.session.add(log)
        AdminUserLoginLog.session.commit()
        return True
コード例 #2
0
ファイル: admin_role.py プロジェクト: leeyisoft/py_admin
    def insert(param):
        """插入

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in AdminRole.__table__.columns.items()]
        param = {k:v for k,v in param.items() if k in columns}
        if 'created_at' in columns:
            param['created_at'] = utime.timestamp(3)
        try:
            obj = AdminRole(**param)
            AdminRole.session.add(obj)
            AdminRole.session.commit()
            return True
        except Exception as e:
            AdminRole.session.rollback()
            SysLogger.error(e)
            raise JsonError('insert error')
コード例 #3
0
ファイル: admin_role.py プロジェクト: leeyisoft/py_admin
    def update(id, param):
        """更新记录

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in AdminRole.__table__.columns.items()]
        param = {k:v for k,v in param.items() if k in columns}
        if 'updated_at' in columns:
            param['updated_at'] = utime.timestamp(3)

        if not id:
            raise JsonError('ID 不能为空')

        try:
            AdminRole.Update.filter(AdminRole.id == id).update(param)
            AdminRole.session.commit()
            return True
        except Exception as e:
            AdminRole.session.rollback()
            SysLogger.error(e)
            raise JsonError('update error')
コード例 #4
0
    def update(key, param):
        """更新记录

        [description]

        Arguments:
            key string -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Config.__table__.columns.items()]
        param = {k: v for k, v in param.items() if k in columns}
        if 'updated_at' in columns:
            param['updated_at'] = utime.timestamp(3)

        if not key:
            raise JsonError('key 不能为空')

        try:
            Config.Update.filter(Config.key == key).update(param)
            Config.session.commit()
            return True
        except Exception as e:
            Config.session.rollback()
            SysLogger.error(e)
            raise JsonError('update error')
コード例 #5
0
ファイル: advertising.py プロジェクト: leeyisoft/py_admin
    def insert(param):
        """插入

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Advertising.__table__.columns.items()]
        param = {k:v for k,v in param.items() if k in columns}
        if 'created_at' in columns:
            param['created_at'] = utime.timestamp(3)

        description = param.get('description', '')
        if len(description) > 255:
            raise JsonError('Data too long for \'description\'')

        if 'start_at' in param.keys():
            param['start_at'] = param['start_at'] if param['start_at'].isnumeric() else 0
        if 'end_at' in param.keys():
            param['end_at'] = param['end_at'] if param['end_at'].isnumeric() else 0
        try:
            obj = Advertising(**param)
            Advertising.session.add(obj)
            Advertising.session.commit()
            return True
        except Exception as e:
            Advertising.session.rollback()
            SysLogger.error(e)
            raise JsonError('insert error')
コード例 #6
0
    def update(id, param):
        """更新记录

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Goods.__table__.columns.items()]
        param = {k: v for k, v in param.items() if k in columns}
        if 'updated_at' in columns:
            param['updated_at'] = utime.timestamp(3)

        if not id:
            raise JsonError('ID 不能为空')

        if 'thumb' in param.keys():
            try:
                param['thumb'] = json_decode(param['thumb'])
            except Exception as e:
                param['thumb'] = {}
        try:
            Goods.Update.filter(Goods.id == id).update(param)
            Goods.session.commit()
            return True
        except Exception as e:
            Goods.session.rollback()
            SysLogger.error(e)
            raise JsonError('update error')
コード例 #7
0
    def insert(param):
        """插入

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Goods.__table__.columns.items()]
        param = {k: v for k, v in param.items() if k in columns}
        if 'created_at' in columns:
            param['created_at'] = utime.timestamp(3)

        if 'thumb' in param.keys():
            try:
                param['thumb'] = json_decode(param['thumb'])
            except Exception as e:
                param['thumb'] = {}
                raise e
        else:
            param['thumb'] = {}

        try:
            obj = Goods(**param)
            Goods.session.add(obj)
            Goods.session.commit()
            return True
        except Exception as e:
            Goods.session.rollback()
            SysLogger.error(e)
            raise JsonError('insert error')
コード例 #8
0
ファイル: article.py プロジェクト: leeyisoft/py_admin
    def insert(param):
        """插入

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Article.__table__.columns.items()]
        param = {k: v for k, v in param.items() if k in columns}
        if 'created_at' in columns:
            param['created_at'] = utime.timestamp(3)

        category_id = param.get('category_id', 0)
        if not category_id:
            raise JsonError('文章分类缺失')

        description = param.get('description', '')
        if len(description) > 255:
            raise JsonError('Data too long for \'description\'')

        try:
            obj = Article(**param)
            Article.session.add(obj)
            Article.session.commit()
            return True
        except Exception as e:
            Article.session.rollback()
            SysLogger.error(e)
            raise JsonError('insert error')
コード例 #9
0
    def update(user_id, param, rsa_encrypt=0):
        """
        保存用户数据
        :param user: 用户数据字典
        :param rsa_encrypt:
        :param user_id:
        :return:
        """
        columns = [i for (i, _) in AdminUser.__table__.columns.items()]
        param = {k: v for k, v in param.items() if k in columns}
        if 'updated_at' in columns:
            param['updated_at'] = utime.timestamp(3)

        if 'username' in param.keys():
            if param['username']:
                if AdminUserService.check_username(param['username'], user_id):
                    raise JsonError('名称已被占用')
            else:
                del param['username']

        if 'password' in param.keys():
            if param['password']:
                if settings.login_pwd_rsa_encrypt and int(
                        rsa_encrypt) == 1 and len(param['password']) > 4:
                    private_key = sys_config('login_rsa_priv_key')
                    param['password'] = RSAEncrypter.decrypt(
                        param['password'], private_key)
                param['password'] = make_password(param['password'])
            else:
                del param['password']

        if 'email' in param.keys():
            if param['email']:
                if AdminUserService.check_email(param['email'], user_id):
                    raise JsonError('邮箱已被占用')
            else:
                param['email'] = None

        if 'mobile' in param.keys():
            if param['mobile']:
                if AdminUserService.check_mobile(param['mobile'], user_id):
                    raise JsonError('电话号码已被占用')
            else:
                param['mobile'] = None

        try:
            if user_id:
                AdminUser.Update.filter(AdminUser.id == user_id).update(param)
            else:
                obj = AdminUser(**param)
                AdminUser.session.add(obj)
        except Exception as e:
            raise e
        else:
            AdminUser.session.commit()
        return True
コード例 #10
0
ファイル: advertising.py プロジェクト: leeyisoft/py_admin
    def get_for_category(category):
        """
        Arguments:
            category string -- category 唯一标识
            limit int -- 查询记录数

        return:
            list
        """
        category_id = AdvertisingCategory.session.query(AdvertisingCategory.id) \
            .filter(AdvertisingCategory.name == category).scalar()
        now_time = utime.timestamp(3)
        row = Advertising.Q \
            .filter(Advertising.category_id == category_id) \
            .filter(Advertising.start_at <= now_time) \
            .filter(or_(Advertising.end_at > now_time, Advertising.end_at == 0)) \
            .filter(Advertising.status == 1) \
            .order_by(Advertising.sort.desc()) \
            .first()
        return row
コード例 #11
0
ファイル: advertising.py プロジェクト: leeyisoft/py_admin
    def update(id, param):
        """更新记录

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Advertising.__table__.columns.items()]
        param = {k:v for k,v in param.items() if k in columns}

        if 'updated_at' in columns:
            param['updated_at'] = utime.timestamp(3)

        if 'start_at' in param.keys():
            param['start_at'] = param['start_at'] if param['start_at'].isnumeric() else 0
        if 'end_at' in param.keys():
            param['end_at'] = param['end_at'] if param['end_at'].isnumeric() else 0

        description = param.get('description', '')
        if len(description) > 255:
            raise JsonError('Data too long for \'description\'')
        if not id:
            raise JsonError('ID 不能为空')

        try:
            Advertising.Update.filter(Advertising.id == id).update(param)
            Advertising.session.commit()
            return True
        except Exception as e:
            Advertising.session.rollback()
            SysLogger.error(e)
            raise JsonError('update error')
コード例 #12
0
ファイル: article.py プロジェクト: leeyisoft/py_admin
    def update(id, param):
        """更新记录

        [description]

        Arguments:
            id int -- 主键
            param dict -- [description]

        return:
            True | JsonError
        """
        columns = [i for (i, _) in Article.__table__.columns.items()]
        param = {k: v for k, v in param.items() if k in columns}
        if 'updated_at' in columns:
            param['updated_at'] = utime.timestamp(3)

        description = param.get('description', '')
        if len(description) > 255:
            raise JsonError('Data too long for \'description\'')

        if not id:
            raise JsonError('ID 不能为空')

        status = param.get('status', None)
        category_id = param.get('category_id', 0)
        if not category_id:
            raise JsonError('文章分类缺失')

        try:
            Article.Update.filter(Article.id == id).update(param)
            Article.session.commit()
            return True
        except Exception as e:
            Article.session.rollback()
            SysLogger.error(e)
            raise JsonError('update error')