解决冲突
This commit is contained in:
commit
f3e29cb7e8
@ -112,3 +112,8 @@ 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)
|
||||
}
|
||||
|
@ -273,7 +273,10 @@ func OrderRecordDetail(req *bundle.OrderRecordsDetailRequest) (res *bundle.Order
|
||||
if req.BundleUUID != "" {
|
||||
query = query.Where("bundle_uuid = ?", req.BundleUUID)
|
||||
}
|
||||
err = query.Order("expiration_time desc").First(&orderRecord).Error
|
||||
if req.Status != 0 {
|
||||
query = query.Where("status = ?", req.Status)
|
||||
}
|
||||
err = query.Order("created_at desc").First(&orderRecord).Error
|
||||
if err != nil {
|
||||
return res, commonErr.ReturnError(err, msg.ErrorGetOrderInfo, "获取订单信息失败: ")
|
||||
}
|
||||
@ -464,6 +467,7 @@ 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,
|
||||
@ -475,28 +479,20 @@ 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
|
||||
|
||||
// SettlementAmount 规则
|
||||
settlementAmount := float32(sub.Amount)
|
||||
if sub.OrderNo == record.OrderNo {
|
||||
settlementAmount = record.TotalAmount
|
||||
}
|
||||
amount := float32(sub.Amount)
|
||||
|
||||
if existing, ok := addMap[orderAddNo]; ok {
|
||||
existing.Amount += float32(sub.Amount)
|
||||
existing.SettlementAmount += settlementAmount
|
||||
existing.Amount += amount
|
||||
} else {
|
||||
addMap[orderAddNo] = &bundle.OrderAddBundleRecordInfo{
|
||||
OrderAddNo: orderAddNo,
|
||||
Amount: float32(sub.Amount),
|
||||
SettlementAmount: settlementAmount,
|
||||
CurrencyType: int32(sub.CurrencyType),
|
||||
//HandlingFee: float32(sub.HandlingFee),
|
||||
//ExchangeRate: float32(sub.ExchangeRate),
|
||||
OrderAddNo: orderAddNo,
|
||||
Amount: amount,
|
||||
CurrencyType: int32(sub.CurrencyType),
|
||||
OrderAddCreateAt: sub.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||
AddPayStatus: int32(sub.PaymentStatus),
|
||||
Contract: sub.SignContract,
|
||||
@ -507,10 +503,16 @@ func OrderRecordsListV2(req *bundle.OrderRecordsRequestV2) (res *bundle.OrderRec
|
||||
}
|
||||
}
|
||||
|
||||
// 将聚合后的子订单添加到主订单返回结构中
|
||||
for _, v := range addMap {
|
||||
orderItem.AddBundleInfo = append(orderItem.AddBundleInfo, v)
|
||||
// 设置 SettlementAmount 并追加到主订单中
|
||||
for orderAddNo, addInfo := range addMap {
|
||||
if orderAddNo == record.OrderNo {
|
||||
addInfo.SettlementAmount = record.TotalAmount
|
||||
} else {
|
||||
addInfo.SettlementAmount = addInfo.Amount
|
||||
}
|
||||
orderItem.AddBundleInfo = append(orderItem.AddBundleInfo, addInfo)
|
||||
}
|
||||
|
||||
res.BundleInfo = append(res.BundleInfo, orderItem)
|
||||
}
|
||||
res.Total = int32(count)
|
||||
@ -540,6 +542,7 @@ 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 {
|
||||
@ -583,7 +586,10 @@ func GetReconciliationList(req *bundle.GetReconciliationListReq) (*bundle.GetRec
|
||||
modelObj = modelObj.Where("pay_channel = ?", req.PayChannel)
|
||||
}
|
||||
if req.BundleOrderOn != "" {
|
||||
modelObj = modelObj.Where("order_no like ?", "%"+req.BundleOrderOn+"%")
|
||||
modelObj = modelObj.Where("bundle_order_on like ?", "%"+req.BundleOrderOn+"%")
|
||||
}
|
||||
if req.BundleAddOrderOn != "" {
|
||||
modelObj = modelObj.Where("bundle_add_order_on like ?", "%"+req.BundleAddOrderOn+"%")
|
||||
}
|
||||
if req.CreatedStart != "" && req.CreatedEnd != "" {
|
||||
modelObj = modelObj.Where("created_at between ? and ?", req.CreatedStart, req.CreatedEnd)
|
||||
@ -602,7 +608,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)).Find(&records).Error; err != nil {
|
||||
if err := modelObj.Offset(int(offset)).Limit(int(req.PageSize)).Order("created_at desc").Find(&records).Error; err != nil {
|
||||
return nil, fmt.Errorf("查询记录失败: %v", err)
|
||||
}
|
||||
|
||||
@ -714,3 +720,43 @@ 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
|
||||
}
|
||||
|
@ -156,3 +156,8 @@ 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
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-triple v1.0.8
|
||||
// - protoc v3.20.3
|
||||
// - protoc v4.24.0--rc1
|
||||
// source: pb/bundle.proto
|
||||
|
||||
package bundle
|
||||
@ -50,11 +50,11 @@ type BundleClient interface {
|
||||
OrderRecordsListV2(ctx context.Context, in *OrderRecordsRequestV2, opts ...grpc_go.CallOption) (*OrderRecordsResponseV2, common.ErrorWithAttachment)
|
||||
OrderListByOrderNo(ctx context.Context, in *OrderInfoByOrderNoRequest, opts ...grpc_go.CallOption) (*OrderInfoByOrderNoResp, common.ErrorWithAttachment)
|
||||
OnlyAddValueListByOrderNo(ctx context.Context, in *OnlyAddValueListByOrderNoRequest, opts ...grpc_go.CallOption) (*OnlyAddValueListByOrderNoResp, common.ErrorWithAttachment)
|
||||
// 增值套餐
|
||||
//增值套餐
|
||||
CreateValueAddBundle(ctx context.Context, in *CreateValueAddBundleRequest, opts ...grpc_go.CallOption) (*CreateValueAddBundleResponse, common.ErrorWithAttachment)
|
||||
ValueAddBundleList(ctx context.Context, in *ValueAddBundleListRequest, opts ...grpc_go.CallOption) (*ValueAddBundleListResponse, common.ErrorWithAttachment)
|
||||
ValueAddBundleDetail(ctx context.Context, in *ValueAddBundleDetailRequest, opts ...grpc_go.CallOption) (*ValueAddBundleDetailResponse, common.ErrorWithAttachment)
|
||||
// 新增值服务
|
||||
//新增值服务
|
||||
SaveValueAddService(ctx context.Context, in *ValueAddServiceLang, opts ...grpc_go.CallOption) (*SaveResponse, common.ErrorWithAttachment)
|
||||
ValueAddServiceList(ctx context.Context, in *ValueAddServiceListRequest, opts ...grpc_go.CallOption) (*ValueAddServiceListResponse, common.ErrorWithAttachment)
|
||||
ValueAddServiceDetail(ctx context.Context, in *ValueAddServiceDetailRequest, opts ...grpc_go.CallOption) (*ValueAddServiceDetailResponse, common.ErrorWithAttachment)
|
||||
@ -75,7 +75,7 @@ type BundleClient interface {
|
||||
GetVedioWorkDetail(ctx context.Context, in *GetVedioWorkDetailReq, opts ...grpc_go.CallOption) (*GetVedioeWorkDetailResp, common.ErrorWithAttachment)
|
||||
ToBeComfirmedWorks(ctx context.Context, in *ToBeComfirmedWorksReq, opts ...grpc_go.CallOption) (*ToBeComfirmedWorksResp, common.ErrorWithAttachment)
|
||||
ConfirmWork(ctx context.Context, in *ConfirmWorkReq, opts ...grpc_go.CallOption) (*ConfirmWorkResp, common.ErrorWithAttachment)
|
||||
// 对账单
|
||||
//对账单
|
||||
GetReconciliationList(ctx context.Context, in *GetReconciliationListReq, opts ...grpc_go.CallOption) (*GetReconciliationListResp, common.ErrorWithAttachment)
|
||||
CreateReconciliation(ctx context.Context, in *ReconciliationInfo, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
|
||||
UpdateReconciliation(ctx context.Context, in *ReconciliationInfo, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
|
||||
@ -456,11 +456,11 @@ type BundleServer interface {
|
||||
OrderRecordsListV2(context.Context, *OrderRecordsRequestV2) (*OrderRecordsResponseV2, error)
|
||||
OrderListByOrderNo(context.Context, *OrderInfoByOrderNoRequest) (*OrderInfoByOrderNoResp, error)
|
||||
OnlyAddValueListByOrderNo(context.Context, *OnlyAddValueListByOrderNoRequest) (*OnlyAddValueListByOrderNoResp, error)
|
||||
// 增值套餐
|
||||
//增值套餐
|
||||
CreateValueAddBundle(context.Context, *CreateValueAddBundleRequest) (*CreateValueAddBundleResponse, error)
|
||||
ValueAddBundleList(context.Context, *ValueAddBundleListRequest) (*ValueAddBundleListResponse, error)
|
||||
ValueAddBundleDetail(context.Context, *ValueAddBundleDetailRequest) (*ValueAddBundleDetailResponse, error)
|
||||
// 新增值服务
|
||||
//新增值服务
|
||||
SaveValueAddService(context.Context, *ValueAddServiceLang) (*SaveResponse, error)
|
||||
ValueAddServiceList(context.Context, *ValueAddServiceListRequest) (*ValueAddServiceListResponse, error)
|
||||
ValueAddServiceDetail(context.Context, *ValueAddServiceDetailRequest) (*ValueAddServiceDetailResponse, error)
|
||||
@ -481,7 +481,7 @@ type BundleServer interface {
|
||||
GetVedioWorkDetail(context.Context, *GetVedioWorkDetailReq) (*GetVedioeWorkDetailResp, error)
|
||||
ToBeComfirmedWorks(context.Context, *ToBeComfirmedWorksReq) (*ToBeComfirmedWorksResp, error)
|
||||
ConfirmWork(context.Context, *ConfirmWorkReq) (*ConfirmWorkResp, error)
|
||||
// 对账单
|
||||
//对账单
|
||||
GetReconciliationList(context.Context, *GetReconciliationListReq) (*GetReconciliationListResp, error)
|
||||
CreateReconciliation(context.Context, *ReconciliationInfo) (*CommonResponse, error)
|
||||
UpdateReconciliation(context.Context, *ReconciliationInfo) (*CommonResponse, error)
|
||||
|
@ -51,8 +51,10 @@ const (
|
||||
ErrorCreateOrderInfo = "创建订单信息失败"
|
||||
SuccessCreateOrderInfo = "创建订单信息成功"
|
||||
|
||||
ErrorUpdateOrderInfo = "更新订单信息失败"
|
||||
SuccessUpdateOrderInfo = "更新订单信息成功"
|
||||
ErrorUpdateOrderInfo = "更新订单信息失败"
|
||||
ErrorDeleteOrderInfo = "删除增值服务失败"
|
||||
SuccessUpdateOrderInfo = "更新订单信息成功"
|
||||
SuccessDeletedOrderInfo = "删除订单信息成功"
|
||||
|
||||
ErrorGetOrderInfo = "获取订单信息失败"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user