update
This commit is contained in:
parent
798e7aae92
commit
7b753da3d9
|
|
@ -163,6 +163,7 @@ type GetUserInfoResponse struct {
|
|||
Amount int `json:"amount"`
|
||||
Role int `json:"role"`
|
||||
UserPets []UserPetInfo `json:"userPets"`
|
||||
Car models.ServiceCar `json:"car"`
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
|
|
@ -188,6 +189,12 @@ func (p DefParty) getUserInfo() web_iris.Party {
|
|||
if getUserInfoResponse.Amount == 0 {
|
||||
getUserInfoResponse.Discount = 1
|
||||
}
|
||||
if userInfo.Role == 1 {
|
||||
var serviceCarUser models.ServiceCarUser
|
||||
database.Instance().Model(&models.ServiceCarUser{}).Where("uid = ?", userInfo.Id).Find(&serviceCarUser)
|
||||
getUserInfoResponse.Car = CarMap[serviceCarUser.CarId]
|
||||
getUserInfoResponse.Car.ServiceAddr = ServiceAddrMap[getUserInfoResponse.Car.ServiceAddrId]
|
||||
}
|
||||
Success(ctx, headerInfo, getUserInfoResponse)
|
||||
})
|
||||
}}
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@ func (p DefParty) carServiceOrderList() web_iris.Party {
|
|||
}
|
||||
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).Order(clause.OrderByColumn{Column: clause.Column{Name: "order_mains.service_time"}, Desc: false}).Offset((carServiceOrderListRequest.PageNo - 1) * carServiceOrderListRequest.PageSize).Limit(carServiceOrderListRequest.PageSize).Find(&orderMains)
|
||||
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).Order(clause.OrderByColumn{Column: clause.Column{Name: "order_mains.service_time"}, Desc: true}).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).Order(clause.OrderByColumn{Column: clause.Column{Name: "order_mains.service_time"}, Desc: false}).Offset((carServiceOrderListRequest.PageNo - 1) * carServiceOrderListRequest.PageSize).Limit(carServiceOrderListRequest.PageSize).Find(&orderMains)
|
||||
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).Order(clause.OrderByColumn{Column: clause.Column{Name: "order_mains.service_time"}, Desc: true}).Offset((carServiceOrderListRequest.PageNo - 1) * carServiceOrderListRequest.PageSize).Limit(carServiceOrderListRequest.PageSize).Find(&orderMains)
|
||||
}
|
||||
var orderDetails []OrderDetail
|
||||
for _, value := range orderMains {
|
||||
|
|
@ -102,11 +102,7 @@ func (p DefParty) carServiceProcess() web_iris.Party {
|
|||
OrderExistError.Fail(ctx, carServiceProcessRequest)
|
||||
return
|
||||
}
|
||||
database.Instance().Model(&models.OrderServiceRecord{}).Create(&models.OrderServiceRecord{
|
||||
OrderId: carServiceProcessRequest.SubOrderId,
|
||||
FilePath: carServiceProcessRequest.FileName,
|
||||
Type: carServiceProcessRequest.Type,
|
||||
})
|
||||
|
||||
var mainOrder models.OrderMain
|
||||
database.Instance().Model(&models.OrderMain{}).Where("order_id = ?", subOrderInfo.MainOrderId).Find(&mainOrder)
|
||||
if mainOrder.Id == 0 {
|
||||
|
|
@ -118,6 +114,11 @@ func (p DefParty) carServiceProcess() web_iris.Party {
|
|||
OrderError.Fail(ctx, carServiceProcessRequest)
|
||||
return
|
||||
}
|
||||
if carServiceProcessRequest.PayAmount > 0 {
|
||||
subOrderInfo.PayAmount = carServiceProcessRequest.PayAmount
|
||||
subOrderInfo.PayTime = time.Now()
|
||||
subOrderInfo.PayStatus = 1
|
||||
}
|
||||
subOrderInfo.OrderStatus = 2
|
||||
mainOrder.OrderStatus = 2
|
||||
database.Instance().Save(&mainOrder)
|
||||
|
|
@ -128,21 +129,35 @@ func (p DefParty) carServiceProcess() web_iris.Party {
|
|||
return
|
||||
}
|
||||
subOrderInfo.OrderStatus = 3
|
||||
if carServiceProcessRequest.PayAmount > 0 {
|
||||
subOrderInfo.PayAmount = carServiceProcessRequest.PayAmount
|
||||
if subOrderInfo.PayAmount == 0 {
|
||||
subOrderInfo.PayAmount = subOrderInfo.TotalAmount
|
||||
}
|
||||
subOrderInfo.PayTime = time.Now()
|
||||
subOrderInfo.PayStatus = 1
|
||||
}
|
||||
subOrderInfo.PayRemark = carServiceProcessRequest.PayRemark
|
||||
database.Instance().Save(&subOrderInfo)
|
||||
var count int64
|
||||
database.Instance().Model(&models.OrderSub{}).Where("main_order_id = ?", subOrderInfo.MainOrderId).Count(&count)
|
||||
var countStatus int64
|
||||
database.Instance().Model(&models.OrderSub{}).Where("main_order_id = ? and status = 3", subOrderInfo.MainOrderId).Count(&countStatus)
|
||||
var payStatus int64
|
||||
database.Instance().Model(&models.OrderSub{}).Where("main_order_id = ? and pay_status = 1", subOrderInfo.MainOrderId).Count(&payStatus)
|
||||
if count == payStatus {
|
||||
mainOrder.PayStatus = 1
|
||||
database.Instance().Save(&mainOrder)
|
||||
}
|
||||
if count == countStatus {
|
||||
mainOrder.OrderStatus = 3
|
||||
database.Instance().Save(&mainOrder)
|
||||
}
|
||||
} else if carServiceProcessRequest.Type == 3 {
|
||||
subOrderInfo.PayRemark = carServiceProcessRequest.PayRemark
|
||||
database.Instance().Save(&subOrderInfo)
|
||||
database.Instance().Model(&models.OrderServiceRecord{}).Create(&models.OrderServiceRecord{
|
||||
OrderId: carServiceProcessRequest.SubOrderId,
|
||||
FilePath: carServiceProcessRequest.FileName,
|
||||
Type: carServiceProcessRequest.Type,
|
||||
})
|
||||
}
|
||||
Success(ctx, carServiceProcessRequest, CarServiceProcessResponse{GetOrderDetail(mainOrder.OrderId)})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/kataras/iris/v12"
|
||||
"github.com/kataras/iris/v12/context"
|
||||
"go.uber.org/zap"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"io"
|
||||
"pet-house.com/business/models"
|
||||
|
|
@ -120,7 +121,8 @@ func (p DefParty) orderCreate() web_iris.Party {
|
|||
PayType: 1,
|
||||
Discount: 100,
|
||||
TotalAmount: totalAmount,
|
||||
PayAmount: 0,
|
||||
PayAmount: totalAmount,
|
||||
PayTime: time.Now(),
|
||||
ProjectionServiceTime: projectionServiceTime,
|
||||
}
|
||||
orderTotalAmount = orderTotalAmount + int(totalAmount)
|
||||
|
|
@ -133,19 +135,24 @@ func (p DefParty) orderCreate() web_iris.Party {
|
|||
orderMain.ProjectionServiceTime = projectionServiceTimeAll
|
||||
var userInfo *models.User
|
||||
database.Instance().Model(&models.User{}).Where("id = ?", headerBaseInfo.Uid).Find(&userInfo)
|
||||
if userInfo.Discount > 0 {
|
||||
orderTotalAmount = orderTotalAmount * (userInfo.Discount / 100)
|
||||
}
|
||||
tx := database.Instance().Begin()
|
||||
var db4 *gorm.DB
|
||||
if userInfo.Amount >= orderTotalAmount {
|
||||
orderMain.PayStatus = 1
|
||||
orderMain.PayTotalAmount = orderTotalAmount
|
||||
userInfo.Amount = userInfo.Amount - orderTotalAmount
|
||||
updateValues := map[string]interface{}{
|
||||
"Amount": userInfo.Amount,
|
||||
}
|
||||
tx.Model(&userInfo).Updates(&updateValues)
|
||||
db4 = tx.Model(&userInfo).Updates(&updateValues)
|
||||
}
|
||||
db := tx.Model(&models.OrderDetail{}).CreateInBatches(&orderSubDetailList, len(orderSubDetailList))
|
||||
db1 := tx.Model(&models.OrderSub{}).CreateInBatches(&orderSubList, len(orderSubList))
|
||||
db2 := tx.Model(&models.OrderMain{}).Create(&orderMain)
|
||||
if db.Error != nil || db1.Error != nil || db2.Error != nil {
|
||||
if db4.Error != nil || db.Error != nil || db1.Error != nil || db2.Error != nil {
|
||||
tx.Callback()
|
||||
orderLock.Unlock()
|
||||
zap_server.ZAPLOG.Error("订单插入失败", zap.Any("db", db.Error), zap.Any("db1", db1.Error), zap.Any("db2", db2.Error))
|
||||
|
|
|
|||
|
|
@ -111,6 +111,8 @@ type SystemConfig struct {
|
|||
ConfigType string `json:"configType"` //类型 0banner 1关于我们 2客服电话
|
||||
ContentType int `json:"contentType"` //1文本 2链接
|
||||
Sort int `json:"sort"` //排序位
|
||||
JumpType int `gorm:"default:0" json:"JumpType"` //跳转类型 0无法跳转 1跳转外部 2跳转内部
|
||||
JumpUrl string `json:"jumpUrl"` //跳转url
|
||||
CreateTime time.Time `gorm:"type:timestamp;default:CURRENT_TIMESTAMP" json:"-"` //创建时间
|
||||
}
|
||||
|
||||
|
|
@ -126,6 +128,8 @@ type OrderMain struct {
|
|||
ServiceRemark string `json:"serviceRemark"` //服务备注
|
||||
CreateTime time.Time `gorm:"type:timestamp;default:CURRENT_TIMESTAMP" json:"createTime"` //创建时间
|
||||
PayStatus int `gorm:"default:0" json:"payStatus"` //支付状态 0未支付 1已支付
|
||||
DispatchStatus int `gorm:"default:0" json:"dispatchStatus"` //派单状态 0未派单 1已派单
|
||||
PayTotalAmount int `json:"payTotalAmount"` //支付总金额
|
||||
}
|
||||
|
||||
// OrderSub 子订单
|
||||
|
|
@ -139,6 +143,7 @@ type OrderSub struct {
|
|||
Discount int `json:"discount"` //折扣
|
||||
TotalAmount int32 `gorm:"not null" json:"totalAmount"` //总金额
|
||||
ProjectionServiceTime int `json:"projectionServiceTime"` //服务预估时长
|
||||
PayStatus int `gorm:"default:0" json:"payStatus"` //支付状态 0未支付 1已支付
|
||||
PayAmount int32 `json:"payAmount"` //实际支付金额
|
||||
PayTime time.Time `gorm:"type:timestamp;" json:"payTime"` //支付时间
|
||||
PayRemark string `json:"payRemark"` //支付备注
|
||||
|
|
|
|||
Loading…
Reference in New Issue