micro-bundle/internal/logic/valueAddBundleLogic.go

134 lines
4.0 KiB
Go
Raw Permalink Normal View History

2025-03-25 08:30:09 +00:00
package logic
import (
"micro-bundle/internal/dao"
"micro-bundle/internal/model"
"micro-bundle/pb/bundle"
2025-03-28 01:23:17 +00:00
"micro-bundle/pkg/msg"
2025-03-25 08:30:09 +00:00
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
)
// 增值套餐创建
2025-03-28 01:23:17 +00:00
func CreateValueAddBundle(req *bundle.CreateValueAddBundleRequest) (res *bundle.CreateValueAddBundleResponse, err error) {
res = &bundle.CreateValueAddBundleResponse{}
2025-03-25 08:30:09 +00:00
2025-03-28 01:23:17 +00:00
savedAmount := float32(req.Num * (msg.OriginalPrice - msg.DiscountPrice))
totalPrice := float32(req.Num * msg.DiscountPrice)
valueAddBundleProfile := &model.ValueAddBundleProfile{
UUID: utils.GetUUID(),
Num: req.Num,
OriginalPrice: msg.OriginalPrice,
DiscountPrice: msg.DiscountPrice,
SavedAmount: savedAmount,
TotalPrice: totalPrice,
2025-03-28 18:05:56 +00:00
//Type: msg.Custom,
2025-03-28 01:23:17 +00:00
}
err = dao.CreateValueAddBundle(valueAddBundleProfile)
if err != nil {
res.Msg = msg.ErrorCreateValueAddBundleInfo
return res, err
}
res.Uuid = valueAddBundleProfile.UUID
res.TotalPrice = totalPrice
res.SavedAmount = savedAmount
res.Msg = msg.SuccessCreateValueAddBundleInfo
2025-03-25 08:30:09 +00:00
return
}
// 增值套餐列表
func ValueAddBundleList(req *bundle.ValueAddBundleListRequest) (res *bundle.ValueAddBundleListResponse, err error) {
2025-03-28 01:23:17 +00:00
res = &bundle.ValueAddBundleListResponse{}
2025-03-28 20:59:56 +00:00
var bundleCommonUid string
2025-03-28 23:33:16 +00:00
var bundleProfile *model.BundleProfile
bundleProfile, err = dao.BundleProfileDetail(req.BundleUuid)
2025-03-28 08:47:41 +00:00
if err != nil {
2025-03-28 23:33:16 +00:00
return
2025-03-28 08:47:41 +00:00
} else {
2025-03-28 23:33:16 +00:00
var bundleOrderRecord *model.BundleOrderRecords
2025-03-29 03:22:19 +00:00
bundleOrderRecord, err = dao.GetBundleOrderRecordsByCommonUidAndUserId(bundleProfile.BundleCommonUid, req.UserId)
2025-03-28 23:33:16 +00:00
if err != nil {
err = nil
} else {
bundleCommonUid = bundleOrderRecord.BundleCommonUid
res.OrderNo = true
res.Price = bundleOrderRecord.ValueAddBundleAmount
res.Num = bundleOrderRecord.Num
if bundleOrderRecord.ValueAddBundleUUID != "" {
res.Status = true
}
2025-03-28 08:47:41 +00:00
}
}
2025-03-28 18:05:56 +00:00
valueAddBundleProfile, err := dao.ValueAddBundleList(req.PriceType)
2025-03-28 01:23:17 +00:00
if err != nil {
res.Msg = msg.ErrorGetValueAddBundleList
return res, err
}
for _, valueAddBundle := range valueAddBundleProfile {
2025-03-28 08:47:41 +00:00
valueAddBundleProfileInfo := &bundle.ValueAddBundleProfile{
2025-03-28 01:23:17 +00:00
Uuid: valueAddBundle.UUID,
Num: valueAddBundle.Num,
OriginalPrice: valueAddBundle.OriginalPrice,
DiscountPrice: valueAddBundle.DiscountPrice,
TotalPrice: valueAddBundle.TotalPrice,
SavedAmount: valueAddBundle.SavedAmount,
DiscountPriceStatus: valueAddBundle.DiscountPriceStatus,
Choose: valueAddBundle.Choose,
2025-03-28 08:47:41 +00:00
}
2025-03-28 20:59:56 +00:00
if bundleCommonUid == valueAddBundle.AddBundleCommonUid {
2025-03-28 08:47:41 +00:00
valueAddBundleProfileInfo.Status = true
}
res.Data = append(res.Data, valueAddBundleProfileInfo)
}
2025-03-28 01:23:17 +00:00
res.OriginalPrice = msg.OriginalPrice
res.Total = int32(len(valueAddBundleProfile))
res.Msg = "SUCCESS"
2025-03-25 08:30:09 +00:00
return
}
// 增值套餐详情
func ValueAddBundleDetail(req *bundle.ValueAddBundleDetailRequest) (res *bundle.ValueAddBundleDetailResponse, err error) {
2025-03-28 01:23:17 +00:00
res = &bundle.ValueAddBundleDetailResponse{}
valueAddBundleProfile := &model.ValueAddBundleProfile{}
valueAddBundleProfile, err = dao.ValueAddBundleDetail(req.Uuid)
2025-03-25 08:30:09 +00:00
if err != nil {
2025-03-28 01:23:17 +00:00
res.Msg = msg.ErrorGetValueAddBundleInfo
return res, err
2025-03-25 08:30:09 +00:00
}
2025-03-28 01:23:17 +00:00
res.Data = &bundle.ValueAddBundleProfile{
Uuid: valueAddBundleProfile.UUID,
Num: valueAddBundleProfile.Num,
OriginalPrice: valueAddBundleProfile.OriginalPrice,
DiscountPrice: valueAddBundleProfile.DiscountPrice,
TotalPrice: valueAddBundleProfile.TotalPrice,
SavedAmount: valueAddBundleProfile.SavedAmount,
DiscountPriceStatus: valueAddBundleProfile.DiscountPriceStatus,
Choose: valueAddBundleProfile.Choose,
2025-03-28 20:59:56 +00:00
AddBundleCommonUid: valueAddBundleProfile.AddBundleCommonUid,
2025-03-28 01:23:17 +00:00
}
2025-03-28 02:54:04 +00:00
bundleOrderRecords := &model.BundleOrderRecords{}
bundleOrderRecords, err = dao.BundleOrderRecordsDetailByAddUid(req.Uuid)
if err != nil {
err = nil
} else {
res.PayTime = bundleOrderRecords.PayTime
}
2025-03-28 01:23:17 +00:00
res.Msg = "SUCCESS"
2025-03-25 08:30:09 +00:00
return
}