micro-bundle/internal/logic/valueAddBundleLogic.go
2025-03-28 09:23:17 +08:00

97 lines
2.9 KiB
Go

package logic
import (
"micro-bundle/internal/dao"
"micro-bundle/internal/model"
"micro-bundle/pb/bundle"
"micro-bundle/pkg/msg"
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
)
// 增值套餐创建
func CreateValueAddBundle(req *bundle.CreateValueAddBundleRequest) (res *bundle.CreateValueAddBundleResponse, err error) {
res = &bundle.CreateValueAddBundleResponse{}
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,
Type: msg.Custom,
}
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
return
}
// 增值套餐列表
func ValueAddBundleList(req *bundle.ValueAddBundleListRequest) (res *bundle.ValueAddBundleListResponse, err error) {
res = &bundle.ValueAddBundleListResponse{}
valueAddBundleProfile, err := dao.ValueAddBundleList()
if err != nil {
res.Msg = msg.ErrorGetValueAddBundleList
return res, err
}
for _, valueAddBundle := range valueAddBundleProfile {
res.Data = append(res.Data, &bundle.ValueAddBundleProfile{
Uuid: valueAddBundle.UUID,
Num: valueAddBundle.Num,
OriginalPrice: valueAddBundle.OriginalPrice,
DiscountPrice: valueAddBundle.DiscountPrice,
TotalPrice: valueAddBundle.TotalPrice,
SavedAmount: valueAddBundle.SavedAmount,
DiscountPriceStatus: valueAddBundle.DiscountPriceStatus,
Choose: valueAddBundle.Choose,
})
}
res.OriginalPrice = msg.OriginalPrice
res.Total = int32(len(valueAddBundleProfile))
res.Msg = "SUCCESS"
return
}
// 增值套餐详情
func ValueAddBundleDetail(req *bundle.ValueAddBundleDetailRequest) (res *bundle.ValueAddBundleDetailResponse, err error) {
res = &bundle.ValueAddBundleDetailResponse{}
valueAddBundleProfile := &model.ValueAddBundleProfile{}
valueAddBundleProfile, err = dao.ValueAddBundleDetail(req.Uuid)
if err != nil {
res.Msg = msg.ErrorGetValueAddBundleInfo
return res, err
}
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,
}
res.Msg = "SUCCESS"
return
}