package dao import ( "github.com/jinzhu/copier" "micro-bundle/internal/model" "micro-bundle/pb/bundle" "micro-bundle/pkg/app" commonErr "micro-bundle/pkg/err" "micro-bundle/pkg/msg" "micro-bundle/pkg/utils" ) func CreateOrderRecord(orderRecord *model.BundleOrderRecords) (res *bundle.CommonResponse, err error) { res = new(bundle.CommonResponse) orderRecord.UUID = app.ModuleClients.SfNode.Generate().Base64() orderRecord.OrderNo = utils.GetOrderNo() err = app.ModuleClients.BundleDB.Model(&model.BundleProfile{}).Create(&orderRecord).Error if err != nil { res.Msg = msg.ErrorCreateOrderInfo return res, commonErr.ReturnError(err, msg.ErrorCreateOrderInfo, "创建订单信息失败: ") } res.Uuid = orderRecord.UUID res.Msg = msg.SuccessCreateOrderInfo return } func UpdateOrderRecord(orderRecord *model.BundleOrderRecords) (res *bundle.CommonResponse, err error) { res = new(bundle.CommonResponse) err = app.ModuleClients.BundleDB.Model(&model.BundleProfile{}).Where("uuid = ?", orderRecord.UUID).Updates(orderRecord).Error if err != nil { res.Msg = msg.ErrorUpdateOrderInfo return res, commonErr.ReturnError(err, msg.ErrorUpdateOrderInfo, "更新订单信息失败: ") } res.Uuid = orderRecord.UUID res.Msg = msg.SuccessUpdateOrderInfo return } func UpdateOrderRecordByOrderNO(orderRecord *model.BundleOrderRecords) (res *bundle.CommonResponse, err error) { res = new(bundle.CommonResponse) err = app.ModuleClients.BundleDB.Model(&model.BundleProfile{}).Where("order_no = ?", orderRecord.OrderNo).Updates(orderRecord).Error if err != nil { res.Msg = msg.ErrorUpdateOrderInfo return res, commonErr.ReturnError(err, msg.ErrorUpdateOrderInfo, "更新订单信息失败: ") } res.Uuid = orderRecord.UUID res.Msg = msg.SuccessUpdateOrderInfo return } func OrderRecordsList(req *bundle.OrderRecordsRequest) (res *bundle.OrderRecordsResponse, err error) { res = new(bundle.OrderRecordsResponse) res.OrderRecords = make([]*bundle.OrderRecord, 0) records := make([]*model.BundleOrderRecords, 0) query := app.ModuleClients.BundleDB.Model(&model.BundleOrderRecords{}) if req.CustomerNum != "" { query = query.Where("customer_num like ?", "%"+req.CustomerNum+"%") } if req.CustomerName != "" { query = query.Where("customer_name like ?", "%"+req.CustomerName+"%") } if req.BundleName != "" { query = query.Where("bundle_name like ?", "%"+req.BundleName+"%") } if req.BundleUUID != "" { query = query.Where("bundle_uuid = ?", req.BundleUUID) } if req.OrderNo != "" { query = query.Where("order_no like ?", "%"+req.OrderNo+"%") } if req.Status != 0 { query = query.Where("status = ?", req.Status) } if req.StartSignedTime != "" { query = query.Where("signed_time >= ?", req.StartSignedTime) } if req.EndSignedTime != "" { query = query.Where("signed_time <= ?", req.EndSignedTime) } if req.StartPayTime != "" { query = query.Where("pay_time >= ?", req.StartPayTime) } if req.EndPayTime != "" { query = query.Where("pay_time <= ?", req.EndPayTime) } count := *query err = query.Limit(int(req.PageSize)).Offset(int(req.Page-1) * int(req.PageSize)).Find(&records).Error if err != nil { return res, commonErr.ReturnError(err, msg.ErrorGetOrderList, "获取订单信息失败: ") } _ = copier.CopyWithOption(&res.OrderRecords, &records, copier.Option{DeepCopy: true}) var total int64 count.Count(&total) res.Total = int32(total) return } func OrderRecordDetail(req *bundle.OrderRecordsDetailRequest) (res *bundle.OrderRecord, err error) { res = new(bundle.OrderRecord) orderRecord := new(model.BundleOrderRecords) query := app.ModuleClients.BundleDB if req.Uuid != "" { query = query.Where("uuid = ?", req.Uuid) } if req.OrderNo != "" { query = query.Where("order_no = ?", req.OrderNo) } err = query.First(&orderRecord).Error if err != nil { return res, commonErr.ReturnError(err, msg.ErrorGetOrderInfo, "获取订单信息失败: ") } _ = copier.CopyWithOption(&res, &orderRecord, copier.Option{DeepCopy: true}) return }