1 Star 0 Fork 0

jackly-chao / joy-admin-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
order.go 3.68 KB
一键复制 编辑 原始数据 按行查看 历史
jackly-chao 提交于 2023-09-28 10:50 . 请求参数绑定的处理
package childTicket
import (
"errors"
"reflect"
"gitee.com/jackly-chao/joy-admin-server/src/global"
"gitee.com/jackly-chao/joy-admin-server/src/global/request"
"gitee.com/jackly-chao/joy-admin-server/src/model/childTicket"
"gorm.io/gorm"
)
type OrderService struct{}
func (s *OrderService) GetOrder(request request.IdRequest) (result childTicket.Order, err error) {
err = global.DbMap[dbName].Model(&childTicket.Order{}).First(&result, request.Id).Error
return
}
func (s *OrderService) GetOrders(request childTicket.OrderRequest) (result []*childTicket.Order, total int64, err error) {
db := global.DbMap[dbName].Model(&childTicket.Order{})
handleRequest(db, request)
err = db.Count(&total).Error
if err != nil {
return
}
db = db.Limit(request.PageSize).Offset(request.PageSize * (request.Page - 1))
err = db.Find(&result).Error
return
}
func (s *OrderService) GetAllOrders(request childTicket.OrderRequest) (result []*childTicket.Order, err error) {
db := global.DbMap[dbName].Model(&childTicket.Order{})
handleRequest(db, request)
err = db.Find(&result).Error
return
}
func (s *OrderService) CreateOrder(request childTicket.Order) (result childTicket.Order, err error) {
db := global.DbMap[dbName].Model(&childTicket.Order{})
err = db.Where("platform_child_id = ?", request.PlatformChildId).First(&result).Error
if !errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("存在相同订单号的订单")
return
}
err = global.DbMap[dbName].Create(&request).Error
return request, err
}
func (s *OrderService) UpdateOrder(request childTicket.Order) (result childTicket.Order, err error) {
db := global.DbMap[dbName].Model(&childTicket.Order{})
err = db.Where("id != ? and platform_child_id = ?", request.Id, request.PlatformChildId).First(&result).Error
if !errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("存在相同订单号的订单")
return
}
err = global.DbMap[dbName].Save(&request).Error
return request, err
}
func handleRequest(db *gorm.DB, request childTicket.OrderRequest) {
if request.OrderNum != "" {
db = db.Where("order_num LIKE ?", "%"+request.OrderNum+"%")
}
if request.PlatformChildId != "" {
db = db.Where("platform_child_id LIKE ?", "%"+request.PlatformChildId+"%")
}
if !reflect.ValueOf(request.ChildStatus).IsNil() {
db = db.Where("child_status = ?", request.ChildStatus)
}
if request.CreateTimeRange != nil && len(request.CreateTimeRange) > 0 {
db = db.Where("create_time >= ? and create_time < ?", request.CreateTimeRange[0], request.CreateTimeRange[1])
}
if request.HandleTimeRange != nil && len(request.HandleTimeRange) > 0 {
db = db.Where("handle_time >= ? and handle_time < ?", request.HandleTimeRange[0], request.HandleTimeRange[1])
}
if request.DepartTimeRange != nil && len(request.DepartTimeRange) > 0 {
db = db.Where("depart_time >= ? and depart_time <= ?", request.DepartTimeRange[0], request.DepartTimeRange[1])
}
if request.DepartStation != "" {
db = db.Where("depart_station LIKE ?", "%"+request.DepartStation+"%")
}
if request.ArriveStation != "" {
db = db.Where("arrive_station LIKE ?", "%"+request.ArriveStation+"%")
}
if request.PassengerName != "" {
db = db.Where("passenger_name LIKE ? or real_passenger_name LIKE ?", "%"+request.PassengerName+"%", "%"+request.PassengerName+"%")
}
if request.CertificateNum != "" {
db = db.Where("certificate_num LIKE ?", "%"+request.CertificateNum+"%")
}
if !reflect.ValueOf(request.PlatformAccountId).IsNil() {
db = db.Where("platform_account_id = ?", request.PlatformAccountId)
}
if !reflect.ValueOf(request.AgencyId).IsNil() {
db = db.Where("agency_id = ?", request.AgencyId)
}
if !reflect.ValueOf(request.UserId).IsNil() {
db = db.Where("user_id = ?", request.UserId)
}
}
Go
1
https://gitee.com/jackly-chao/joy-admin-server.git
git@gitee.com:jackly-chao/joy-admin-server.git
jackly-chao
joy-admin-server
joy-admin-server
01c5a3fec7ab

搜索帮助