package api import ( "encoding/json" "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/context" "io" "pet-house.com/business/models" "pet-house.com/core/server/database" "pet-house.com/core/server/web/web_iris" ) var CarServiceNum = 1 func GetCarInfo(carId int) models.ServiceCar { return CarMap[carId] } type CarServiceOrderListRequest struct { Status int //订单状态 0所有 1待服务 2服务中 3已完成 PageNo int //页码 PageSize int //数据数量 } type CarServiceOrderListResponse struct { OrderDetails []OrderDetail `json:"orderDetails"` PageNo int `json:"pageNo"` PageSize int `json:"pageSize"` } // carServiceOrderList 车辆订单列表 func (p DefParty) carServiceOrderList() web_iris.Party { return web_iris.Party{Prefix: p.Prefix, PartyFunc: func(index iris.Party) { index.Post(CarBase+"/carServiceOrderList", func(ctx *context.Context) { headerBaseInfo := GetHeaderBaseInfo(ctx) body, _ := io.ReadAll(ctx.Request().Body) var carServiceOrderListRequest CarServiceOrderListRequest json.Unmarshal(body, &carServiceOrderListRequest) var serviceCarUser models.ServiceCarUser database.Instance().Model(&models.ServiceCarUser{}).Where("uid = ?", headerBaseInfo.Uid).Find(&serviceCarUser) if serviceCarUser.Id == 0 { CarNotExistError.Fail(ctx, headerBaseInfo) return } var orderMains []models.OrderMain if carServiceOrderListRequest.Status == 0 { database.Instance().Model(&models.OrderMain{}).Joins("JOIN car_orders ON order_mains.order_id = car_orders.order_id").Where("car_orders.car_id = ? AND order_mains.status > 0", serviceCarUser.CarId).Offset((carServiceOrderListRequest.PageNo - 1) * carServiceOrderListRequest.PageSize).Limit(carServiceOrderListRequest.PageSize).Find(&orderMains) } else { database.Instance().Model(&models.OrderMain{}).Joins("JOIN car_orders ON order_mains.order_id = car_orders.order_id").Where("car_orders.car_id = ? AND order_mains.status = ?", serviceCarUser.CarId, carServiceOrderListRequest.Status).Offset((carServiceOrderListRequest.PageNo - 1) * carServiceOrderListRequest.PageSize).Limit(carServiceOrderListRequest.PageSize).Find(&orderMains) } var orderDetails []OrderDetail for _, value := range orderMains { orderDetails = append(orderDetails, GetOrderDetail(value.OrderId)) } Success(ctx, carServiceOrderListRequest, CarServiceOrderListResponse{orderDetails, carServiceOrderListRequest.PageNo + 1, carServiceOrderListRequest.PageSize}) }) }} }