2023怡然:客户提交工单 接口

来自CloudWiki
跳转至: 导航搜索
 from flask import Flask, jsonify, abort, request
import datetime


app = Flask(__name__)
workOrder= [
    {
        'id': 1,
        'user_id': 'xiaoli',
        'title': u'电脑蓝屏',
        'room':u'812',
        'pc_id':u'pc01',
        'desc':u'电脑蓝屏故障,持续10分钟',
        'report_time':u'2023-08-01 14:52',
        'receive_time':u'2023-08-01 15:52',
        'solve_time':u'2023-08-01 16:52',
        'status':u'未解决',
        'type':u'单机故障',
        'solved_by':u'engineer01'
    },
    {
        'id': 1,
        'user_id': 'xiaoli',
        'title': u'上不了网',
        'room':u'812',
        'pc_id':u'pc01',
        'desc':u'上不了网,持续5分钟',
        'report_time':u'2023-08-01 14:52',
        'receive_time':u'2023-08-01 15:52',
        'solve_time':u'2023-08-01 16:52',
        'status':u'已解决',
        'type':u'网络故障',
        'solved_by':u'engineer02'
    },
]

#查看工单列表,GET操作
@app.route('/', methods=['GET'])
@app.route('/workorder/api/v1/order_list', methods=['GET'])
def get_tasks():
    return jsonify({'workOrder': workOrder})

#get one specific order,GET操作
@app.route('/workorder/api/v1/order/<int:id>', methods=['GET'])
def get_task(id):
    for order in workOrder:
        if order['id']==id:
            return jsonify({'workOrder': order})
    abort(404)

#insert a new order,POST操作
@app.route('/workorder/api/v1/add_order', methods=['POST'])
def create_task():
    if not request.form or not 'title' in request.form:
        abort(400)
    new_order= {
        'id': workOrder[-1]['id'] + 1,
        'user_id': request.form['user_id'],
        'title': request.form['title'],
        'room': request.form[''],
        'pc_id': request.form[''],
        'desc': request.form[''],
        'report_time': request.form[''],
        'receive_time': '',
        'solve_time': '',
        'status': '待查看',
        'type': request.form[''],
        'solved_by':''
    }
    workOrder.append(new_order)
    return jsonify({'new_Order': new_order})

#update a task,PUT操作
@app.route('/workorder/api/v1/order/<int:id>/<string:action>/<string:engineer>', methods=['PUT'])
def update_task(id):
    for order in workOrder:
        if order['id'] == id:
            order['solved_by'] = request.form['engineer']
            action = request.form['action']
            current_time = datetime.datetime.now()
            #print(current_time)
            if  action == 'receive' :
                order['receive_time'] =current_time
                order['status']='正在处理'
            elif action == 'solve':
                order['solve_time'] =current_time
                order['status']= '已解决'


        return jsonify({'workOrder': workOrder})
    abort(400)

#delete a book,DELETE操作
@app.route('/workorder/api/v1/order/<int:id>', methods=['DELETE'])
def delete_task(id):
    for order in workOrder:
        if order['id'] == id:
            workOrder.remove(order)
            return jsonify({'result': True})
    abort(404)

    return jsonify({'result': True})


if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True)

运行:nohup python3 manager.py > flask_log.txt 2>&1 &