fix
This commit is contained in:
		
							parent
							
								
									3f92a04acd
								
							
						
					
					
						commit
						eb2f4b5717
					
				| @ -8,6 +8,7 @@ import ( | |||||||
| 	"fusenapi/model/gmodel" | 	"fusenapi/model/gmodel" | ||||||
| 	"fusenapi/server/shopping-cart/internal/svc" | 	"fusenapi/server/shopping-cart/internal/svc" | ||||||
| 	"fusenapi/server/shopping-cart/internal/types" | 	"fusenapi/server/shopping-cart/internal/types" | ||||||
|  | 	"fusenapi/service/repositories" | ||||||
| 	"fusenapi/utils/auth" | 	"fusenapi/utils/auth" | ||||||
| 	"fusenapi/utils/basic" | 	"fusenapi/utils/basic" | ||||||
| 	"fusenapi/utils/format" | 	"fusenapi/utils/format" | ||||||
| @ -53,7 +54,6 @@ func (l *CalculateCartPriceLogic) CalculateCartPrice(req *types.CalculateCartPri | |||||||
| 	//获取购物车列表 | 	//获取购物车列表 | ||||||
| 	carts, _, err := l.svcCtx.AllModels.FsShoppingCart.GetAllCartsByParam(l.ctx, gmodel.GetAllCartsByParamReq{ | 	carts, _, err := l.svcCtx.AllModels.FsShoppingCart.GetAllCartsByParam(l.ctx, gmodel.GetAllCartsByParamReq{ | ||||||
| 		Ids:    cartIds, | 		Ids:    cartIds, | ||||||
| 		Fields: "id,size_id,product_id,fitting_id", |  | ||||||
| 		UserId: userinfo.UserId, | 		UserId: userinfo.UserId, | ||||||
| 		Page:   1, | 		Page:   1, | ||||||
| 		Limit:  len(cartIds), | 		Limit:  len(cartIds), | ||||||
| @ -65,6 +65,46 @@ func (l *CalculateCartPriceLogic) CalculateCartPrice(req *types.CalculateCartPri | |||||||
| 	if len(carts) < len(req.CalculateList) { | 	if len(carts) < len(req.CalculateList) { | ||||||
| 		return resp.SetStatusWithMessage(basic.CodeRequestParamsErr, "please refresh page for the shopping cart has changed!!") | 		return resp.SetStatusWithMessage(basic.CodeRequestParamsErr, "please refresh page for the shopping cart has changed!!") | ||||||
| 	} | 	} | ||||||
|  | 	//**************获取相关数据校验变更************ | ||||||
|  | 	var ( | ||||||
|  | 		mapSize             = make(map[int64]gmodel.FsProductSize) | ||||||
|  | 		mapModel            = make(map[int64]gmodel.FsProductModel3d) | ||||||
|  | 		mapTemplate         = make(map[int64]gmodel.FsProductTemplateV2) | ||||||
|  | 		mapSizePrice        = make(map[string]gmodel.FsProductPrice) | ||||||
|  | 		mapProduct          = make(map[int64]gmodel.FsProduct) | ||||||
|  | 		mapResourceMetadata = make(map[string]interface{}) | ||||||
|  | 	) | ||||||
|  | 	//获取相关信息 | ||||||
|  | 	err = NewGetCartsLogic(l.ctx, l.svcCtx).GetRelationInfo(GetRelationInfoReq{ | ||||||
|  | 		Carts:               carts, | ||||||
|  | 		MapSize:             mapSize, | ||||||
|  | 		MapModel:            mapModel, | ||||||
|  | 		MapTemplate:         mapTemplate, | ||||||
|  | 		MapSizePrice:        mapSizePrice, | ||||||
|  | 		MapProduct:          mapProduct, | ||||||
|  | 		MapResourceMetadata: mapResourceMetadata, | ||||||
|  | 	}) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return resp.SetStatusWithMessage(basic.CodeServiceErr, err.Error()) | ||||||
|  | 	} | ||||||
|  | 	//定义map收集变更信息 | ||||||
|  | 	mapCartChange := make(map[int64]string) | ||||||
|  | 	mapSnapshot := make(map[int64]gmodel.CartSnapshot) | ||||||
|  | 	//校验购物车数据是否变更 | ||||||
|  | 	err = l.svcCtx.Repositories.NewShoppingCart.VerifyShoppingCartSnapshotDataChange(repositories.VerifyShoppingCartSnapshotDataChangeReq{ | ||||||
|  | 		Carts:         carts, | ||||||
|  | 		MapSize:       mapSize, | ||||||
|  | 		MapModel:      mapModel, | ||||||
|  | 		MapTemplate:   mapTemplate, | ||||||
|  | 		MapCartChange: mapCartChange, | ||||||
|  | 		MapSnapshot:   mapSnapshot, | ||||||
|  | 		MapProduct:    mapProduct, | ||||||
|  | 	}) | ||||||
|  | 	if err != nil { | ||||||
|  | 		logx.Error("VerifyShoppingCartSnapshotDataChange err:", err.Error()) | ||||||
|  | 		return resp.SetStatusWithMessage(basic.CodeServiceErr, "system err:failed to check shopping cart change data") | ||||||
|  | 	} | ||||||
|  | 	//************************** | ||||||
| 	sizeIds := make([]int64, 0, len(carts)) | 	sizeIds := make([]int64, 0, len(carts)) | ||||||
| 	productIds := make([]int64, 0, len(carts)) | 	productIds := make([]int64, 0, len(carts)) | ||||||
| 	fittingIds := make([]int64, 0, len(carts)) | 	fittingIds := make([]int64, 0, len(carts)) | ||||||
| @ -108,6 +148,10 @@ func (l *CalculateCartPriceLogic) CalculateCartPrice(req *types.CalculateCartPri | |||||||
| 			} | 			} | ||||||
| 			//请求的数量 | 			//请求的数量 | ||||||
| 			reqPurchaseQuantity := mapCalculateQuantity[cart.Id].PurchaseQuantity | 			reqPurchaseQuantity := mapCalculateQuantity[cart.Id].PurchaseQuantity | ||||||
|  | 			//传入数量是<= 0则取数据库的 | ||||||
|  | 			if reqPurchaseQuantity <= 0 { | ||||||
|  | 				reqPurchaseQuantity = *cart.PurchaseQuantity | ||||||
|  | 			} | ||||||
| 			isSelected := int64(0) | 			isSelected := int64(0) | ||||||
| 			if mapCalculateQuantity[cart.Id].IsSelected { | 			if mapCalculateQuantity[cart.Id].IsSelected { | ||||||
| 				isSelected = 1 | 				isSelected = 1 | ||||||
| @ -135,8 +179,8 @@ func (l *CalculateCartPriceLogic) CalculateCartPrice(req *types.CalculateCartPri | |||||||
| 			updData := &gmodel.FsShoppingCart{ | 			updData := &gmodel.FsShoppingCart{ | ||||||
| 				PurchaseQuantity: &reqPurchaseQuantity, | 				PurchaseQuantity: &reqPurchaseQuantity, | ||||||
| 			} | 			} | ||||||
| 			//如果是选中则累加总价 | 			//如果是没有变更且是选中则累加总价 | ||||||
| 			if isSelected == 1 { | 			if _, ok = mapCartChange[cart.Id]; !ok && isSelected == 1 { | ||||||
| 				subTotalPrice += totalPrice | 				subTotalPrice += totalPrice | ||||||
| 				updData.IsSelected = &isSelected | 				updData.IsSelected = &isSelected | ||||||
| 			} | 			} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user