diff --git a/internal/logic/bundleLogic.go b/internal/logic/bundleLogic.go index eeedf4c..6d51b70 100644 --- a/internal/logic/bundleLogic.go +++ b/internal/logic/bundleLogic.go @@ -3,7 +3,6 @@ package logic import ( "encoding/json" "errors" - "fmt" "micro-bundle/internal/dao" "micro-bundle/pkg/app" "micro-bundle/pkg/msg" @@ -60,7 +59,7 @@ func BundleDetail(req *bundle.BundleDetailRequest) (res *bundle.BundleDetailResp func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) { res = &bundle.SaveResponse{} if req.Language == "" { - return res, errors.New("语言参数不能为空") + return res, errors.New("语言不能为空") } if req.Sort <= 0 { return res, errors.New("排序参数需为正整数") @@ -92,7 +91,7 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) if req.Uuid != "" { valueService, existErr := dao.GetValueAddServiceUuidsByBundleUuid(req.Uuid) if existErr != nil { - return res, existErr + return res, errors.New("查询增值服务失败") } if valueService != nil && len(valueService) > 0 { for _, v := range valueService { @@ -108,15 +107,15 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) detail, checkErr := dao.ValueAddServiceDetailByUuidAndLanguage(v.ValueAddUuid, req.Language) if checkErr != nil { if checkErr == gorm.ErrRecordNotFound { - return res, errors.New(fmt.Sprintf("所选增值服务[%s]%s版不存在,请先创建对应增值套餐", v.ServiceName, req.Language)) + return res, errors.New("增值服务不存在") } else { - return res, checkErr + return res, errors.New("查询增值服务失败") } } if detail.PriceType != req.PriceType { if req.Uuid == "" { //中文套餐创建时,币种不一致直接返回错误 - return res, errors.New(fmt.Sprintf("所选增值服务[%s]%s币种与套餐币种不一致", detail.ServiceName, req.Language)) + return res, errors.New("所选增值服务币种与套餐币种不一致") } else { //更新时,判断是否已存在,存在则取消关联 _, ok := existValueService[v.ValueAddUuid] @@ -125,13 +124,13 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) continue } else { //币种不一致,新加币种时返回错误 - return res, errors.New(fmt.Sprintf("所选增值服务[%s]%s币种与套餐币种不一致", detail.ServiceName, req.Language)) + return res, errors.New("所选增值服务币种与套餐币种不一致") } } } if _, exists := selectValueAddServiceCount[int(detail.ServiceType)]; exists { - return res, errors.New(fmt.Sprintf("所选增值服务[%s]类型存在多个", detail.ServiceName)) + return res, errors.New("每种增值服务类型只可选择一个") } selectValueAddServiceCount[int(detail.ServiceType)] = struct{}{} selectService = append(selectService, &model.BundleToValueAddService{ @@ -161,14 +160,14 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) res.Msg = "请先创建中文版本套餐" return res, errors.New("请先创建中文版本套餐") } else { - return res, err + return res, errors.New("获取套餐信息失败") } } } if req.Language == msg.ZH_CN { bundleProfile.UUID = utils.GetUUID() if err = dao.TxCreateBundle(tx, bundleProfile); err != nil { - return res, errors.New("保存中文语言套餐失败: " + err.Error()) + return res, errors.New("创建套餐信息失败") } bundleLang.UUID = bundleProfile.UUID res.Uuid = bundleProfile.UUID @@ -178,7 +177,7 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) } if len(selectService) > 0 { if err = dao.CreateBundleToValueAddService(tx, selectService); err != nil { - return res, errors.New("保存套餐与增值服务关联失败: " + err.Error()) + return res, errors.New("保存套餐与增值服务关联失败") } } } else { @@ -194,11 +193,11 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) //可以改成批量获取 valueDetail, err2 := dao.ValueAddServiceDetailByUuidAndLanguage(v, req.Language) if err2 != nil { - return res, err2 + return res, errors.New("查询增值服务失败") } if valueDetail.PriceType != req.PriceType { if err = tx.Where("bundle_uuid =? AND value_uid =?", bundleLang.UUID, v).Delete(&model.BundleToValueAddService{}).Error; err != nil { - return res, errors.New("删除套餐与增值服务关联失败: " + err.Error()) + return res, errors.New("删除套餐与增值服务关联失败") } count++ } @@ -207,9 +206,8 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) res.CancelNum = int64(count) } if err = dao.TxCreateBundleLang(tx, bundleLang); err != nil { - return res, errors.New("保存语言套餐失败: " + err.Error()) + return res, errors.New("创建套餐信息失败") } - res.Msg = "保存成功" return res, nil } else { return @@ -223,15 +221,11 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) if req.Language == msg.ZH_CN { if len(cancelValueAddService) > 0 { - cancel := "以下增值服务:" for _, v := range cancelValueAddService { - cancel += fmt.Sprintf("[%s]%s", v, req.Language) if err = tx.Where("bundle_uuid = ? AND value_uid = ?", req.Uuid, v).Delete(&model.BundleToValueAddService{}).Error; err != nil { - return res, errors.New("删除套餐与增值服务关联失败: " + err.Error()) + return res, errors.New("删除套餐与增值服务关联失败") } } - cancel += "版币种与套餐币种不一致" - res.Msg = "保存cn成功 " + cancel } res.CancelNum = int64(len(cancelValueAddService)) updateBundle := map[string]interface{}{ @@ -246,18 +240,18 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) "font_color": req.FontColor, } if err = dao.TxUpdateBundle(tx, req.Uuid, updateBundle); err != nil { - return res, err + return res, errors.New("更新套餐信息失败") } // 更新中间表函数 if err = diffUpdateBundleToValueAddService(tx, req.Uuid, selectService); err != nil { tx.Rollback() - return res, err + return res, errors.New("更新套餐与增值服务关联失败") } } else { //更新其他语言时 先获取所有关联增值服务,判断币种是否一致,不一致则取消关联 valueAddService, err := dao.GetBundleToValueAddServiceByBundleUuid(req.Uuid) if err != nil { - return res, err + return res, errors.New("查询套餐与增值服务关联失败") } cancelValueService := make(map[string]string) for _, v := range valueAddService { @@ -266,7 +260,7 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) if checkErr == gorm.ErrRecordNotFound { continue } else { - return res, checkErr + return res, errors.New("查询增值服务失败") } } if detail.PriceType != req.PriceType { @@ -275,15 +269,11 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) } } if int64(len(cancelValueService)) > 0 { - cancel := "以下增值服务:" - for k, v := range cancelValueService { - cancel += fmt.Sprintf("[%s]%s", v, req.Language) + for k, _ := range cancelValueService { if err = tx.Where("bundle_uuid = ? AND value_uid = ?", req.Uuid, k).Delete(&model.BundleToValueAddService{}).Error; err != nil { - return res, errors.New("删除套餐与增值服务关联失败: " + err.Error()) + return res, errors.New("删除套餐与增值服务关联失败") } } - cancel += "版币种与套餐币种不一致,已取消相关关联" - res.Msg = "保存成功 " + cancel res.CancelNum = int64(len(cancelValueService)) } } @@ -294,13 +284,10 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) "price_type": req.PriceType, } if err = dao.TxUpdateBundleLang(tx, req.Uuid, req.Language, updateBundleLang); err != nil { - return res, err + return res, errors.New("更新套餐信息失败") } res.Uuid = req.Uuid - if res.Msg == "" { - res.Msg = "保存成功" - } } return res, nil } @@ -308,7 +295,10 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error) func BundleListV2(req *bundle.BundleListRequest) (res *bundle.BundleListResponse, err error) { res = new(bundle.BundleListResponse) res, err = dao.BundleListV2(req) - return + if err != nil { + return res, errors.New("获取套餐列表失败") + } + return res, nil } func BundleDetailV2(req *bundle.BundleDetailRequest) (res *bundle.BundleDetailResponseV2, err error) { res = new(bundle.BundleDetailResponseV2) @@ -316,14 +306,14 @@ func BundleDetailV2(req *bundle.BundleDetailRequest) (res *bundle.BundleDetailRe bundleProfileLangs := make([]*bundle.BundleProfileLang, 0) selectValueAddServices := make([]*bundle.SelectValueAddService, 0) //已选增值服务 if req.Uuid == "" { - return res, errors.New("uuid不能为空") + return res, errors.New("缺少套餐UUID") } // if req.Language == "" { // return res, errors.New("language不能为空") // } detail, err := dao.BundleDetailV2(req) if err != nil { - res.Msg = err.Error() + return res, errors.New("获取套餐信息失败") } if detail != nil { bundleProfile.Uuid = detail.UUID @@ -404,19 +394,17 @@ func BundleDetailV2(req *bundle.BundleDetailRequest) (res *bundle.BundleDetailRe func HandleShelf(req *bundle.HandShelfRequest) (res *bundle.CommonResponse, err error) { res = new(bundle.CommonResponse) if req.Uuid == "" { - return res, errors.New("uuid不能为空") + return res, errors.New("缺少套餐UUID") } if req.ShelfStatus != 1 && req.ShelfStatus != 2 { - return res, errors.New("Invalid shelf status") + return res, errors.New("状态值无效") } res, err = dao.HandShelf(req.Uuid, req.ShelfStatus) if err != nil { - res.Msg = err.Error() - return res, err + return res, errors.New("更新套餐状态失败") } - res.Msg = "Operation success" return res, nil } @@ -424,7 +412,7 @@ func HandleShelf(req *bundle.HandShelfRequest) (res *bundle.CommonResponse, err func diffUpdateBundleToValueAddService(tx *gorm.DB, bundleUuid string, selectService []*model.BundleToValueAddService) error { oldUuids, err := dao.GetValueAddServiceUuidsByBundleUuid(bundleUuid) if err != nil { - return errors.New("查询旧套餐与增值服务关联失败: " + err.Error()) + return errors.New("查询套餐与增值服务关联失败") } newUuids := make(map[string]*model.BundleToValueAddService) for _, s := range selectService { @@ -451,12 +439,12 @@ func diffUpdateBundleToValueAddService(tx *gorm.DB, bundleUuid string, selectSer } if len(toDel) > 0 { if err = tx.Where("bundle_uuid = ? AND value_uid IN ?", bundleUuid, toDel).Delete(&model.BundleToValueAddService{}).Error; err != nil { - return errors.New("删除套餐与增值服务关联失败: " + err.Error()) + return errors.New("删除套餐与增值服务关联失败") } } if len(toAdd) > 0 { if err = dao.CreateBundleToValueAddService(tx, toAdd); err != nil { - return errors.New("保存套餐与增值服务关联失败: " + err.Error()) + return errors.New("保存套餐与增值服务关联失败") } } return nil @@ -465,7 +453,7 @@ func saveBundleHistory(tx *gorm.DB, bundleUuid string, operator string, operator // 保存历史记录 data, err := dao.GetBundleDetailByUuid(bundleUuid) if err != nil { - return errors.New("查询套餐详情失败: " + err.Error()) + return errors.New("获取套餐信息失败") } bundleToValueAddService := data.BundleToValueAddService data.BundleToValueAddService = nil @@ -477,15 +465,15 @@ func saveBundleHistory(tx *gorm.DB, bundleUuid string, operator string, operator } valueData, err := dao.BatchValueAddServiceDetailTx(tx, valueUuid) if err != nil { - return errors.New("查询增值服务详情失败: " + err.Error()) + return errors.New("查询增值服务详情失败") } j, err := json.Marshal(data) if err != nil { - return errors.New("套餐json转换失败: " + err.Error()) + return errors.New("序列化转换失败") } vJ, err := json.Marshal(valueData) if err != nil { - return errors.New("增值服务json转换失败: " + err.Error()) + return errors.New("序列化转换失败") } history := &model.BundleProfileHistory{ Uuid: bundleUuid, @@ -495,7 +483,7 @@ func saveBundleHistory(tx *gorm.DB, bundleUuid string, operator string, operator OperatorId: operatorId, } if err := tx.Create(history).Error; err != nil { - return errors.New("保存套餐历史记录失败: " + err.Error()) + return errors.New("保存套餐历史记录失败") } return nil } diff --git a/internal/logic/valueAddBundleLogic.go b/internal/logic/valueAddBundleLogic.go index e020d98..b866bf9 100644 --- a/internal/logic/valueAddBundleLogic.go +++ b/internal/logic/valueAddBundleLogic.go @@ -147,15 +147,15 @@ func ValueAddBundleDetail(req *bundle.ValueAddBundleDetailRequest) (res *bundle. func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveResponse, err error) { res = &bundle.SaveResponse{} if in.Language == "" { - return res, errors.New("语言参数不能为空") + return res, errors.New("语言不能为空") } var options model.PriceOptions if in.OriginalPrice == "" { - return res, errors.New("原价参数不能为空") + return res, errors.New("原价不能为空") } originalPrice, parseErr := strconv.ParseFloat(in.OriginalPrice, 32) if parseErr != nil { - return res, parseErr + return res, errors.New("原价格式转换失败") } index := 1 for _, option := range in.Options { @@ -196,7 +196,7 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon Options: options, } if in.Uuid == "" && in.Language != msg.ZH_CN { - return res, errors.New("请先新增简体中文套餐,再添加其他语言版本") + return res, errors.New("请先创建中文版本增值服务") } tx := app.ModuleClients.BundleDB.Begin() defer func() { @@ -214,7 +214,7 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon _, err = dao.ValueAddServiceDetailByUuidAndLanguage(in.Uuid, msg.ZH_CN) if err != nil { if err != gorm.ErrRecordNotFound { - return res, errors.New("请先创建中文套餐") + return res, errors.New("请先创建中文版本增值服务") } else { // // 新语言补充:只要UUID存在即可直接插入新语言 // if in.Uuid != "" { @@ -234,12 +234,12 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon valueAddService.UUID = utils.GetUUID() err = dao.CreateValueAddService(tx, valueAddService) if err != nil { - return res, errors.New("保存中文语言套餐失败: " + err.Error()) + return res, errors.New("保存增值服务失败") } valueAddServiceLang.UUID = valueAddService.UUID res.Uuid = valueAddService.UUID if err = dao.CreateValueAddServiceLang(tx, valueAddServiceLang); err != nil { - return res, errors.New("保存语言套餐失败: " + err.Error()) + return res, errors.New("保存增值服务失败") } } langList := []string{msg.ZH_TW, msg.EN, msg.DE_DE, msg.JS_JP} @@ -258,10 +258,9 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon } otherLang.Language = lang if err = dao.CreateValueAddServiceLang(tx, &otherLang); err != nil { - return res, errors.New(fmt.Sprintf("保存%s语言套餐失败: ", lang) + err.Error()) + return res, errors.New("保存增值服务失败") } } - res.Msg = "保存成功" return } else { return @@ -269,7 +268,7 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon } else { // 已存在,进行更新 if err := saveValueAddServiceHistory(tx, in.Uuid); err != nil { - return res, err + return res, errors.New("保存增值服务历史记录失败") } //中文状态下,更新主表和语言表 if in.Language == msg.ZH_CN { @@ -279,7 +278,7 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon "service_type": in.ServiceType, } if err = dao.UpdateValueAddService(tx, updateService); err != nil { - return res, err + return res, errors.New("更新增值服务失败") } } // 查找所有与该增值服务关联的套餐,若币种不一致则取消关联并统计 @@ -305,10 +304,9 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon "language": in.Language, } if err := dao.UpdateValueAddServiceLang(tx, updateLangService); err != nil { - return res, err + return res, errors.New("更新增值服务失败") } res.Uuid = in.Uuid - res.Msg = "保存成功" res.CancelNum = cancelNum } return @@ -319,8 +317,7 @@ func ValueAddServiceList(req *bundle.ValueAddServiceListRequest) (res *bundle.Va res = &bundle.ValueAddServiceListResponse{} list, total, err := dao.ValueAddServiceList(req) if err != nil { - res.Msg = msg.ErrorValueAddServiceList - return res, err + return res, errors.New("查询增值服务列表失败") } for _, valueAddService := range list { serviceInfo := &bundle.ValueAddService{ @@ -370,7 +367,6 @@ func ValueAddServiceList(req *bundle.ValueAddServiceListRequest) (res *bundle.Va res.ValueAddServiceList = append(res.ValueAddServiceList, serviceInfo) } res.Total = int32(total) - res.Msg = msg.SuccessValueAddServiceList return } @@ -382,7 +378,7 @@ func ValueAddServiceDetail(req *bundle.ValueAddServiceDetailRequest) (res *bundl serviceLangs := []*bundle.ValueAddServiceLang{} if req.Uuid == "" { res.Msg = msg.ErrorValueAddServiceInfo - return res, errors.New("uuid不能为空") + return res, errors.New("缺少套餐UUID") } // if req.Language == "" { // res.Msg = msg.ErrorValueAddServiceInfo @@ -390,8 +386,7 @@ func ValueAddServiceDetail(req *bundle.ValueAddServiceDetailRequest) (res *bundl // } detail, err := dao.ValueAddServiceDetail(req.Uuid) if err != nil { - res.Msg = msg.ErrorValueAddServiceInfo - return res, err + return res, errors.New("查询增值服务详情失败") } if detail != nil && len(detail.ValueAddServiceLang) > 0 { valueAddService.Uuid = detail.UUID @@ -440,7 +435,6 @@ func ValueAddServiceDetail(req *bundle.ValueAddServiceDetailRequest) (res *bundl valueAddService.ServiceLang = serviceLangs res.ValueAddService = valueAddService - res.Msg = msg.SuccessValueAddServiceInfo return } @@ -448,11 +442,11 @@ func saveValueAddServiceHistory(tx *gorm.DB, uuid string) (err error) { // 保存历史记录 data, err := dao.GetValueAddServiceDetailByUuid(tx, uuid) if err != nil { - return errors.New("查询增值服务详情失败: " + err.Error()) + return errors.New("查询增值服务详情失败") } j, err := json.Marshal(data) if err != nil { - return errors.New("json转换失败: " + err.Error()) + return errors.New("序列化转换失败") } history := &model.ValueAddServiceHistory{ Uuid: uuid, @@ -461,21 +455,21 @@ func saveValueAddServiceHistory(tx *gorm.DB, uuid string) (err error) { //OperatorId: operatorId, } if err := tx.Create(history).Error; err != nil { - return errors.New("保存增值服务历史记录失败: " + err.Error()) + return errors.New("保存增值服务历史记录失败") } return nil } func ValueAddServiceDetailByUuidAndLanguage(req *bundle.ValueAddServiceDetailRequest) (res *bundle.ValueAddServiceLang, err error) { res = &bundle.ValueAddServiceLang{} if req.Uuid == "" { - return res, errors.New("uuid不能为空") + return res, errors.New("缺少套餐UUID") } if req.Language == "" { - return res, errors.New("语言选项不能为空") + return res, errors.New("语言不能为空") } detail, err := dao.ValueAddServiceDetailByUuidAndLanguage(req.Uuid, req.Language) if err != nil { - return res, err + return res, errors.New("查询增值服务详情失败") } if detail == nil { return res, errors.New("增值服务不存在") @@ -521,14 +515,14 @@ func ValueAddServiceDetailByUuidAndLanguage(req *bundle.ValueAddServiceDetailReq func CalculatePrice(req *bundle.CalculatePriceRequest) (res *bundle.CalculatePriceResponse, err error) { res = &bundle.CalculatePriceResponse{} if req.Uuid == "" { - return res, errors.New("uuid不能为空") + return res, errors.New("缺少套餐UUID") } if req.Language == "" { - return res, errors.New("语言选项不能为空") + return res, errors.New("语言不能为空") } detail, err := dao.ValueAddServiceDetailByUuidAndLanguage(req.Uuid, req.Language) if err != nil { - return res, err + return res, errors.New("查询增值服务详情失败") } if detail == nil { return res, errors.New("增值服务不存在") @@ -546,7 +540,7 @@ func CalculatePrice(req *bundle.CalculatePriceRequest) (res *bundle.CalculatePri // } price, err := detail.Options.CalculatePrice(detail.PriceMode, req.Num) if err != nil { - return res, err + return res, errors.New("计算价格失败") } res.Price = price return @@ -554,14 +548,14 @@ func CalculatePrice(req *bundle.CalculatePriceRequest) (res *bundle.CalculatePri func BatchGetValueAddServiceLang(req *bundle.BatchGetValueAddServiceLangRequest) (res *bundle.BatchGetValueAddServiceLangResponse, err error) { res = &bundle.BatchGetValueAddServiceLangResponse{} if req.Uuids == nil || len(req.Uuids) == 0 { - return res, errors.New("uuid不能为空") + return res, errors.New("缺少套餐UUID") } if req.Language == "" { - return res, errors.New("语言选项不能为空") + return res, errors.New("语言不能为空") } detail, err := dao.BatchGetValueAddServiceLang(req.Uuids, req.Language) if err != nil { - return res, err + return res, errors.New("查询增值服务详情失败") } for _, v := range detail { langOptions := []*bundle.ValueAddPriceOptions{}