Compare commits

..

No commits in common. "f3e29cb7e8dbbccfdcbcea69f0ecfc0555405dc9" and "bfc409ed7001901518f954928d40e807dde2db53" have entirely different histories.

6 changed files with 555 additions and 613 deletions

View File

@ -112,8 +112,3 @@ func (b *BundleProvider) OnlyAddValueListByOrderNo(_ context.Context, req *bundl
func (b *BundleProvider) UpdateReconciliationStatusBySerialNumber(_ context.Context, req *bundle.UpdateStatusAndPayTimeBySerialNumber) (res *bundle.CommonResponse, err error) {
return logic.UpdateReconciliationStatusBySerialNumber(req)
}
// 删除订单
func (b *BundleProvider) DeleteValueAddService(_ context.Context, req *bundle.DeleteValueAddServiceRequest) (res *bundle.CommonResponse, err error) {
return logic.DeleteValueAddService(req)
}

View File

@ -273,10 +273,7 @@ func OrderRecordDetail(req *bundle.OrderRecordsDetailRequest) (res *bundle.Order
if req.BundleUUID != "" {
query = query.Where("bundle_uuid = ?", req.BundleUUID)
}
if req.Status != 0 {
query = query.Where("status = ?", req.Status)
}
err = query.Order("created_at desc").First(&orderRecord).Error
err = query.Order("expiration_time desc").First(&orderRecord).Error
if err != nil {
return res, commonErr.ReturnError(err, msg.ErrorGetOrderInfo, "获取订单信息失败: ")
}
@ -467,7 +464,6 @@ func OrderRecordsListV2(req *bundle.OrderRecordsRequestV2) (res *bundle.OrderRec
}
for _, record := range records {
customerID, _ := strconv.ParseInt(record.CustomerID, 10, 64)
orderItem := &bundle.OrderBundleRecordInfo{
OrderNo: record.OrderNo,
BundleName: record.BundleName,
@ -479,20 +475,28 @@ func OrderRecordsListV2(req *bundle.OrderRecordsRequestV2) (res *bundle.OrderRec
CustomerId: customerID,
}
// 聚合子订单
// 构建子订单 map按 orderAddNo 聚合
addMap := make(map[string]*bundle.OrderAddBundleRecordInfo)
for _, sub := range record.BundleOrderValueAdd {
orderAddNo := sub.OrderNo
amount := float32(sub.Amount)
// SettlementAmount 规则
settlementAmount := float32(sub.Amount)
if sub.OrderNo == record.OrderNo {
settlementAmount = record.TotalAmount
}
if existing, ok := addMap[orderAddNo]; ok {
existing.Amount += amount
existing.Amount += float32(sub.Amount)
existing.SettlementAmount += settlementAmount
} else {
addMap[orderAddNo] = &bundle.OrderAddBundleRecordInfo{
OrderAddNo: orderAddNo,
Amount: amount,
Amount: float32(sub.Amount),
SettlementAmount: settlementAmount,
CurrencyType: int32(sub.CurrencyType),
//HandlingFee: float32(sub.HandlingFee),
//ExchangeRate: float32(sub.ExchangeRate),
OrderAddCreateAt: sub.CreatedAt.Format("2006-01-02 15:04:05"),
AddPayStatus: int32(sub.PaymentStatus),
Contract: sub.SignContract,
@ -503,16 +507,10 @@ func OrderRecordsListV2(req *bundle.OrderRecordsRequestV2) (res *bundle.OrderRec
}
}
// 设置 SettlementAmount 并追加到主订单中
for orderAddNo, addInfo := range addMap {
if orderAddNo == record.OrderNo {
addInfo.SettlementAmount = record.TotalAmount
} else {
addInfo.SettlementAmount = addInfo.Amount
// 将聚合后的子订单添加到主订单返回结构中
for _, v := range addMap {
orderItem.AddBundleInfo = append(orderItem.AddBundleInfo, v)
}
orderItem.AddBundleInfo = append(orderItem.AddBundleInfo, addInfo)
}
res.BundleInfo = append(res.BundleInfo, orderItem)
}
res.Total = int32(count)
@ -542,7 +540,6 @@ func OrderListByOrderNo(req *bundle.OrderInfoByOrderNoRequest) (*bundle.OrderInf
Type: int32(addOrder[0].Source),
UserId: uint64(userID),
OrderUUID: addOrder[0].OrderUUID,
UserName: addOrder[0].CustomerName,
}
for _, item := range addOrder {
switch item.ServiceType {
@ -586,10 +583,7 @@ func GetReconciliationList(req *bundle.GetReconciliationListReq) (*bundle.GetRec
modelObj = modelObj.Where("pay_channel = ?", req.PayChannel)
}
if req.BundleOrderOn != "" {
modelObj = modelObj.Where("bundle_order_on like ?", "%"+req.BundleOrderOn+"%")
}
if req.BundleAddOrderOn != "" {
modelObj = modelObj.Where("bundle_add_order_on like ?", "%"+req.BundleAddOrderOn+"%")
modelObj = modelObj.Where("order_no like ?", "%"+req.BundleOrderOn+"%")
}
if req.CreatedStart != "" && req.CreatedEnd != "" {
modelObj = modelObj.Where("created_at between ? and ?", req.CreatedStart, req.CreatedEnd)
@ -608,7 +602,7 @@ func GetReconciliationList(req *bundle.GetReconciliationListReq) (*bundle.GetRec
return res, nil
}
offset := (req.Page - 1) * req.PageSize
if err := modelObj.Offset(int(offset)).Limit(int(req.PageSize)).Order("created_at desc").Find(&records).Error; err != nil {
if err := modelObj.Offset(int(offset)).Limit(int(req.PageSize)).Find(&records).Error; err != nil {
return nil, fmt.Errorf("查询记录失败: %v", err)
}
@ -720,43 +714,3 @@ func UpdateReconciliationStatusBySerialNumber(req *bundle.UpdateStatusAndPayTime
// 返回成功响应
return &bundle.CommonResponse{Msg: "更新成功"}, nil
}
func DeleteValueAddService(req *bundle.DeleteValueAddServiceRequest) (res *bundle.CommonResponse, err error) {
res = new(bundle.CommonResponse)
var paidServices []*model.BundleOrderValueAdd
if err = app.ModuleClients.BundleDB.Model(&model.BundleOrderValueAdd{}).
Where("order_no = ? AND payment_status = 2 and customer_id = ?", req.OrderNo, req.UserID).
Find(&paidServices).Error; err != nil {
res.Msg = msg.ErrorUpdateOrderInfo
return res, commonErr.ReturnError(err, msg.ErrorUpdateOrderInfo, "查询增值服务支付状态失败: ")
}
if len(paidServices) > 0 {
res.Msg = "订单已支付,无法删除"
return res, nil
}
if err = app.ModuleClients.BundleDB.Where("order_no = ?", req.OrderNo).
Delete(&model.BundleOrderValueAdd{}).Error; err != nil {
res.Msg = msg.ErrorDeleteOrderInfo
return res, commonErr.ReturnError(err, msg.ErrorDeleteOrderInfo, "删除增值服务失败: ")
}
var order model.BundleOrderRecords
if err = app.ModuleClients.BundleDB.Model(&model.BundleOrderRecords{}).
Where("order_no = ? and customer_id = ?", req.OrderNo, req.UserID).
First(&order).Error; err != nil {
if !errors.Is(err, gorm.ErrRecordNotFound) {
return nil, nil
}
} else if order.PayType == 2 {
res.Msg = "订单已支付,无法删除"
return res, nil
}
if err = app.ModuleClients.BundleDB.Where("order_no = ?", order.OrderNo).
Delete(&model.BundleOrderRecords{}).Error; err != nil {
res.Msg = msg.ErrorDeleteOrderInfo
return res, commonErr.ReturnError(err, msg.ErrorDeleteOrderInfo, "删除套餐订单服务失败: ")
}
res.Msg = msg.SuccessDeletedOrderInfo
return res, nil
}

View File

@ -156,8 +156,3 @@ func UpdateReconciliationStatusBySerialNumber(req *bundle.UpdateStatusAndPayTime
res, err = dao.UpdateReconciliationStatusBySerialNumber(req)
return
}
func DeleteValueAddService(req *bundle.DeleteValueAddServiceRequest) (res *bundle.CommonResponse, err error) {
res = new(bundle.CommonResponse)
res, err = dao.DeleteValueAddService(req)
return
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.8
// - protoc v4.24.0--rc1
// - protoc v3.20.3
// source: pb/bundle.proto
package bundle

View File

@ -52,9 +52,7 @@ const (
SuccessCreateOrderInfo = "创建订单信息成功"
ErrorUpdateOrderInfo = "更新订单信息失败"
ErrorDeleteOrderInfo = "删除增值服务失败"
SuccessUpdateOrderInfo = "更新订单信息成功"
SuccessDeletedOrderInfo = "删除订单信息成功"
ErrorGetOrderInfo = "获取订单信息失败"