예제 #1
0
    def post(self):
        args = parse.parse_args()
        type = args.get('type')

        if type != '用户留言':
            return error_info(400, '参数错误')

        notice = Notice()
        notice.type = type
        notice.content = args.get('content')
        notice.creator = g.user.id
        notice.date = datetime.datetime.now()
        notice.id = g.user.id + datetime.datetime.now().strftime('%Y%m%d%H%M%S')

        if not notice.save():
            return error_info(400, '操作失败')

        data = {
            "data": marshal(notice, notice_fields),
            "meta": {
                "status": 201,
                "msg": "发布成功"
            }
        }

        return data
예제 #2
0
    def delete(self):
        args = parse_del.parse_args()
        id = args.get('id')
        item_info = ItemInfo.query.filter(ItemInfo.id == id,
                                          ItemInfo.is_delete == False).first()
        if not item_info:
            return error_info(400, '操作失败')
        item_info.is_delete = True
        item_info.save()

        msg = Message()
        msg.content = "您好,你的编号为" + id + "的启事已被管理员强制删除,如有疑问请及时联系管理员。"
        msg.sendId = g.user.id
        msg.date = datetime.datetime.now()
        msg.receiveId = item_info.uid
        msg.id = msg.receiveId + datetime.datetime.now().strftime(
            '%Y%m%d%H%M%S')
        if not msg.save():
            return error_info(400, '操作失败')

        return {
            "data": {
                "id": item_info.id,
                "uid": item_info.uid
            },
            "meta": {
                "status": 204,
                "msg": "删除成功"
            }
        }
예제 #3
0
    def delete(self):
        args = parse.parse_args()
        type = args.get('type')

        item_type = ItemType.query.filter(ItemType.type == type).first()
        if not item_type:
            return error_info(400, "该分类不存在")
        if not item_type.delete():
            return error_info(400, "无法删除")

        data = {"data": None, "meta": {"status": 204, "msg": "删除分类成功"}}
        return data
예제 #4
0
    def post(self):
        args = parse.parse_args()

        if args.get('operation') == 'repost' and args.get('oid') and ItemInfo.query.filter(ItemInfo.id == args.get('oid'), ItemInfo.is_delete == False, ItemInfo.uid == g.user.id).first():
            old_item = ItemInfo.query.filter(ItemInfo.id == args.get('oid'), ItemInfo.is_delete == False, ItemInfo.uid == g.user.id).first()
            old_item.is_delete = True
            item_info = ItemInfo()
            item_info.info = args.get('info')
            item_info.type = args.get('type')
            item_info.desc = args.get('desc')
            item_info.campus = args.get('campus')
            item_info.uid = g.user.id
            item_info.image = args.get('image')
            item_info.date = args.get('date')
            item_info.place = args.get('place')
            item_info.id = item_info.uid + datetime.datetime.now().strftime('%Y%m%d%H%M%S')
            if not item_info.save() and old_item.save():
                return error_info(400, '请检查参数')

        elif args.get('operation') == 'post':
            item_info = ItemInfo()
            item_info.info = args.get('info')
            item_info.type = args.get('type')
            item_info.desc = args.get('desc')
            item_info.campus = args.get('campus')
            item_info.uid = g.user.id
            item_info.image = args.get('image')
            item_info.date = datetime.datetime.strptime(args.get('date'), '%Y-%m-%d')
            item_info.place = args.get('place')
            item_info.id = item_info.uid + datetime.datetime.now().strftime('%Y%m%d%H%M%S')
            if not item_info.save():
                return error_info(400, '请检查参数')
            if args.get('name') and User.query.filter(User.name == args.get('name'), User.is_delete == False).first():
                receive_user = User.query.filter(User.name == args.get('name')).first()
                message = Message()
                message.sendId = '00000'
                message.receiveId = receive_user.id
                message.content = '系统检测到有人捡到了您的有关证件,信息编号为' + item_info.id + ',请及时与拾主进行联系。'
                message.date = datetime.datetime.now()
                message.id = message.receiveId + datetime.datetime.now().strftime('%Y%m%d%H%M%S')
                message.save()

        else:
            return error_info(400, '参数错误')
        data = {
            "data": marshal(item_info, item_info_fields),
            "meta": {
                "status": 201,
                "msg": "发布成功"
            }
        }
        return data
예제 #5
0
    def put(self):
        args = parse.parse_args()
        if args.get('username'):
            if User.query.filter(
                    User.username == args.get('username')).first():
                return error_info(400, "该用户名已存在")
            g.user.username = args.get('username')
        if args.get('name'):
            g.user.name = args.get('name')
        if args.get('phone'):
            g.user.phone = args.get('phone')
        if args.get('password'):
            g.user.password = generate_password_hash(args.get('password'))
        g.user.save()

        token = generate_user_token()
        cache.set(token, g.user.id, timeout=60 * 60 * 24 * 7)

        data = {
            "data": {
                "id": g.user.id,
                "username": g.user.username,
                "phone": g.user.phone,
                "status": g.user.status,
                "token": token
            },
            "meta": {
                "status": 201,
                "msg": "信息更改成功"
            }
        }
        return data
예제 #6
0
    def put(self):
        args = parse.parse_args()
        id = args.get('id')

        message = Message.query.filter(Message.id == id,
                                       Message.receiveId == g.user.id,
                                       Message.status == '0').first()
        if not message:
            return error_info(400, '修改状态失败')

        message.status = '1'
        message.save()

        data = {
            "data": {
                "id": message.id,
                "status": message.status
            },
            "meta": {
                "status": 201,
                "msg": "修改状态成功"
            }
        }

        return data
예제 #7
0
    def post(self):
        args = parse_post.parse_args()
        receiveId = args.get('receiveId')

        message = Message()

        if receiveId == 'all':
            users = session.query(
                User.id).filter(User.is_delete == False).all()
            for user in users:
                msg = Message()
                msg.content = args.get('content')
                msg.sendId = g.user.id
                msg.date = datetime.datetime.now()
                msg.receiveId = user[0]
                msg.id = msg.receiveId + datetime.datetime.now().strftime(
                    '%Y%m%d%H%M%S')
                if not msg.save():
                    return error_info(400, '操作失败')
                message = msg
        else:
            message.content = args.get('content')
            message.sendId = g.user.id
            message.date = datetime.datetime.now()
            user = session.query(User).filter(User.is_delete == False,
                                              User.id == receiveId).first()
            if not user:
                return error_info(400, '用户不存在')

            message.receiveId = receiveId
            message.id = message.receiveId + datetime.datetime.now().strftime(
                '%Y%m%d%H%M%S')
            if not message.save():
                return error_info(400, '操作失败')

        data = {
            "data": marshal(message, message_fields),
            "meta": {
                "status": 201,
                "msg": "消息发送成功"
            }
        }
        return data
예제 #8
0
    def put(self):
        args = parse.parse_args()
        type = args.get('type')
        id = args.get('id')
        if type == 'status':
            user = User.query.filter(User.id == id).first()
            if not user:
                return error_info(400, '该用户不存在')
            user.status = not user.status
            user.save()

            data = {
                "data": {
                    "id": user.id,
                    "status": user.status
                },
                "meta": {
                    "status": 201,
                    "msg": "状态更改成功"
                }
            }
            return data
        elif type == 'password':
            user = User.query.filter(User.id == id).first()
            if not user:
                return error_info(400, '该用户不存在')
            user.password = generate_password_hash('123123')
            user.save()

            data = {
                "data": {
                    "id": user.id,
                    "status": user.status
                },
                "meta": {
                    "status": 201,
                    "msg": "密码重置成功"
                }
            }
            return data
        else:
            return error_info(400, "参数错误")
예제 #9
0
    def post(self):
        args = parse.parse_args()
        type = args.get('type')

        if ItemType.query.filter(ItemType.type == type).first():
            return error_info(400, "该分类已存在")
        item_type = ItemType()
        item_type.type = type
        if not item_type.save():
            return error_info(400, "添加分类失败")

        data = {
            "data": {
                "id": item_type.id,
                "type": item_type.type
            },
            "meta": {
                "status": 201,
                "msg": "添加分类成功"
            }
        }
        return data
예제 #10
0
    def put(self):
        args = parse_edit.parse_args()
        notice = Notice.query.filter(Notice.creator == g.user.id, Notice.id == args.get('id'),
                                Notice.is_delete == False).first()
        if not notice:
            return error_info(400, '操作失败')
        notice.title = args.get('title')
        notice.content = args.get('content')
        notice.creator = g.user.id
        notice.date = datetime.datetime.now()
        notice.id = g.user.id + datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        if not notice.save():
            return error_info(400, '操作失败')

        data = {
            "data": marshal(notice, admin_notice_fields),
            "meta": {
                "status": 201,
                "msg": "发布成功"
            }
        }

        return data
예제 #11
0
    def put(self):
        args = parse_claim.parse_args()

        item = ItemInfo.query.filter(ItemInfo.id == args.get('id'), ItemInfo.is_delete == False, ItemInfo.is_claim == False, ItemInfo.uid == g.user.id).first()
        if item:
            item.is_claim = True
            item.claim_date = datetime.datetime.now().date()
            item.save()
            return {
                "data": marshal(item, item_info_fields),
                "meta": {
                    "status": 201,
                    "msg": "认领成功"
                }
            }
        return error_info(400, "操作失败")
예제 #12
0
    def delete(self):
        args = parse_del.parse_args()
        notice = Notice.query.filter(Notice.creator == g.user.id, Notice.id == args.get('id'), Notice.is_delete == False).first()
        if not notice:
            return error_info(400, '操作失败')

        notice.is_delete = True
        notice.save()
        data = {
            "data": marshal(notice, admin_notice_fields),
            "meta": {
                "status": 204,
                "msg": "删除成功"
            }
        }

        return data
예제 #13
0
    def delete(self):
        args = parse_del.parse_args()
        id = args.get('id')
        item_info = ItemInfo.query.filter(ItemInfo.id == id, ItemInfo.uid == g.user.id, ItemInfo.is_delete == False).first()

        if not item_info:
            return error_info(400, '操作失败')

        item_info.is_delete = True
        item_info.save()

        return {
            "data": {
                "id": item_info.id,
                "uid": item_info.uid
            },
            "meta": {
                "status": 204,
                "msg": "删除成功"
            }
        }
예제 #14
0
    def post(self):
        args = parse.parse_args()

        admin_notice = Notice()
        admin_notice.type = "管理员公告"
        admin_notice.title= args.get('title')
        admin_notice.content = args.get('content')
        admin_notice.creator = g.user.id
        admin_notice.date = datetime.datetime.now()
        admin_notice.id = g.user.id + datetime.datetime.now().strftime('%Y%m%d%H%M%S')

        if not admin_notice.save():
            return error_info(400, '操作失败')

        data = {
            "data": marshal(admin_notice, admin_notice_fields),
            "meta": {
                "status": 201,
                "msg": "发布成功"
            }
        }

        return data
예제 #15
0
    def delete(self):
        args = parse.parse_args()
        id = args.get('id')

        message = Message.query.filter(Message.id == id,
                                       Message.receiveId == g.user.id).first()
        if not message:
            return error_info(400, '删除失败')

        message.status = '2'
        message.save()

        data = {
            "data": {
                "id": message.id,
                "status": message.status
            },
            "meta": {
                "status": 204,
                "msg": "删除成功"
            }
        }

        return data
예제 #16
0
    def post(self):
        args = parse_base.parse_args()
        action = args.get("action")
        id = args.get("id")
        password = args.get("password")

        if action == "register":
            args_register = parse_register.parse_args()
            username = args_register.get("username")

            admin = Admin()
            admin.id = id
            admin.username = username
            admin.password = generate_password_hash(password)

            if not admin.save():
                return error_info(400, "注册失败")
            data = {
                "data": {
                    "id": admin.id,
                    "username": admin.username
                },
                "meta": {
                    "status": 201,
                    "msg": "用户创建成功"
                }
            }
            return data

        elif action == "login":
            user = get_admin(id)

            if not user:
                data = error_info(400, "用户不存在")
                return data
            if not check_password_hash(user.password, password):
                data = error_info(400, "密码错误")
                return data
            if user.is_delete:
                data = error_info(400, "用户不存在")
                return data

            token = generate_admin_token()

            cache.set(token, user.id, timeout=60 * 60 * 24 * 7)

            data = {
                "data": {
                    "id": user.id,
                    "username": user.username,
                    "token": token
                },
                "meta": {
                    "status": 200,
                    "msg": "登录成功"
                }
            }

            return data
        else:
            data = error_info(400, "请提供正确的参数")
            return data
예제 #17
0
    def post(self):
        args = parse_base.parse_args()

        action = args.get("action")
        id = args.get("id")
        password = args.get("password")

        if action == "register":
            args_register = parse_register.parse_args()
            username = args_register.get("username")
            name = args_register.get("name")
            phone = args_register.get("phone")
            if User.query.filter(User.id == id).first():
                return error_info(400, "该用户已注册")
            if User.query.filter(User.username == username).first():
                return error_info(400, "该用户名已存在")

            user = User()
            user.id = id
            user.username = username
            user.password = generate_password_hash(password)
            user.phone = phone
            user.name = name

            if not user.save():
                return error_info(400, "注册失败")

            message = Message()
            message.sendId = '00000'
            message.receiveId = user.id
            message.content = '亲爱的' + user.username + ',欢迎使用上师大失物招领平台,请您在使用过程中遵守相关的规范,如果您有什么疑问可以联系管理员,Email:[email protected], Tel:18933666633。'
            message.date = datetime.datetime.now()
            message.id = message.receiveId + datetime.datetime.now().strftime(
                '%Y%m%d%H%M%S')
            message.save()

            data = {
                "data": {
                    "id": user.id,
                    "username": user.username,
                    "status": user.status,
                },
                "meta": {
                    "status": 201,
                    "msg": "注册成功"
                }
            }
            return data

        elif action == "login":
            user = get_user(id)
            if not user:
                data = error_info(400, "用户不存在")
                return data
            if not check_password_hash(user.password, password):
                data = error_info(400, "密码错误")
                return data
            if user.is_delete:
                data = error_info(400, "用户不存在")
                return data
            if user.status:
                data = error_info(400, "账号已冻结,请尽快联系管理员")
                return data

            token = generate_user_token()
            cache.set(token, user.id, timeout=60 * 60 * 24 * 7)

            data = {
                "data": {
                    "id": user.id,
                    "username": user.username,
                    "phone": user.phone,
                    "status": user.status,
                    "token": token
                },
                "meta": {
                    "status": 200,
                    "msg": "登录成功"
                }
            }

            return data
        else:
            data = error_info(400, "请提供正确的参数")
            return data