def update_order(): if current_user is not None and current_user.is_privileged(UserType.staff): orderid = request.args.get("orderid", -1) if int(orderid) == -1: abort(404) elif int(orderid) == 0: abort(404) order = Orders.query.filter(Orders.orderid == orderid).first() if order is None: return render_template("error.html", message="查找不到与之匹配的订单") order.paytypename = PayType.getName(order.paytype) order.statusname = OrderStatus.getName(order.status) return render_template( "update_order.html", username=current_user.username, order=order, orderStatus=OrderStatus.getAll(), payTypes=PayType.getAll(), index=6, ) else: abort(403)
def userorders(): if current_user is not None and current_user.is_privileged(UserType.registered): page = request.args.get("page", 1) if page < 1: page = 1 # 暂时只考虑课程(ptype=1) data = Users.query.with_entities(Users.username, Users.name, Course.name, Orders.amount, Orders.income, Orders.status, Orders.paytype, Orders.orderid, Orders.operator, CourseSchedule.time)\ .join(Orders, Orders.username == Users.username)\ .filter(Users.uid == current_user.uid)\ .filter(Orders.cid == Course.cid)\ .filter(Orders.csid == CourseSchedule.csid)\ .paginate(int(page), config.PAGE_ITEMS, False) orderDataList = [] for item in data.items: orderData = {} orderData['username'] = item[0] orderData['name'] = item[1] orderData['coursename'] = item[2] orderData['amount'] = item[3] orderData['income'] = item[4] orderData['orderstatusname'] = OrderStatus.getName(item[5]) orderData['paytpyename'] = PayType.getName(item[6]) orderData['orderid'] = item[7] orderData['operator'] = item[8] orderData['schedulename'] = item[9] orderDataList.append(orderData) data.items = orderDataList return render_template('userorders.html', username=current_user.username, pagination=data) else: abort(403)
def searchorders(): if current_user is not None and current_user.is_privileged(UserType.staff): page = request.args.get("page", 1) if page < 1: page = 1 username = request.args.get("username") pattern = "%" + username + "%" # 支持模糊查询 data = ( Users.query.with_entities( Users.username, Users.name, Course.name, Orders.amount, Orders.income, Orders.status, Orders.paytype, Orders.orderid, Orders.operator, CourseSchedule.time, ) .join(Orders, Orders.username == Users.username) .join(OrderItem, OrderItem.orderid == Orders.orderid) .filter(Users.username.like(pattern)) .filter(OrderItem.pid == Course.cid) .filter(OrderItem.subid == CourseSchedule.csid) .paginate(int(page), config.PAGE_ITEMS, False) ) orderDataList = [] for item in data.items: orderData = {} orderData["username"] = item[0] orderData["name"] = item[1] orderData["coursename"] = item[2] orderData["amount"] = item[3] orderData["income"] = item[4] orderData["orderstatusname"] = OrderStatus.getName(item[5]) orderData["paytpyename"] = PayType.getName(item[6]) orderData["orderid"] = item[7] orderData["operator"] = item[8] orderData["schedulename"] = item[9] orderDataList.append(orderData) data.items = orderDataList return render_template("orders.html", username=current_user.username, pagination=data, index=6) else: abort(403)