60 lines
2.5 KiB
Go
60 lines
2.5 KiB
Go
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})
|
|
})
|
|
}}
|
|
}
|