97 lines
2.9 KiB
Go
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
|
|
}
|