diff --git a/server_tb_LinkedMall/internal/service/service.go b/server_tb_LinkedMall/internal/service/service.go new file mode 100644 index 0000000..8e64c0a --- /dev/null +++ b/server_tb_LinkedMall/internal/service/service.go @@ -0,0 +1,382 @@ +package service + +import ( + "encoding/json" + + "server_tb_LinkedMall/internal/biz" + "server_tb_LinkedMall/internal/config" + "server_tb_LinkedMall/internal/entities" +) + +// LinkedMallService 服务层 - 封装业务逻辑,处理响应解析 +type LinkedMallService struct { + biz *biz.LinkedMallBiz +} + +// NewLinkedMallService 创建服务实例 +func NewLinkedMallService(cfg *config.Config) (*LinkedMallService, error) { + bizInstance, err := biz.NewLinkedMallBiz(cfg) + if err != nil { + return nil, err + } + return &LinkedMallService{biz: bizInstance}, nil +} + +// parseData 解析Data字段到目标结构体 +func (s *LinkedMallService) parseData(commonResp *entities.CommonResponse, target interface{}) error { + if commonResp.Data == nil { + return nil + } + dataBytes, err := json.Marshal(commonResp.Data) + if err != nil { + return err + } + return json.Unmarshal(dataBytes, target) +} + +// buildAPIResponse 构建统一API响应 +func (s *LinkedMallService) buildAPIResponse(commonResp *entities.CommonResponse, data interface{}) *entities.APIResponse { + resp := &entities.APIResponse{ + Success: commonResp.Success, + Code: commonResp.Code, + Message: commonResp.Message, + RequestId: commonResp.RequestId, + } + + if commonResp.Success && data != nil { + resp.Data = data + } + if !commonResp.Success { + if commonResp.SubCode != "" { + resp.Message = commonResp.SubMessage + } + } + return resp +} + +// ============================================================ +// 接口 1: ListPurchaserShops +// ============================================================ +func (s *LinkedMallService) ListPurchaserShops(req *entities.ListPurchaserShopsReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ListPurchaserShops(req) + if err != nil { + return nil, err + } + var data entities.ListPurchaserShopsRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 2: GetPurchaserShop +func (s *LinkedMallService) GetPurchaserShop(req *entities.GetPurchaserShopReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.GetPurchaserShop(req) + if err != nil { + return nil, err + } + var data entities.GetPurchaserShopRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 3: ListSelectionProducts +func (s *LinkedMallService) ListSelectionProducts(req *entities.ListSelectionProductsReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ListSelectionProducts(req) + if err != nil { + return nil, err + } + var data entities.ListSelectionProductsRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 4: GetSelectionProduct +func (s *LinkedMallService) GetSelectionProduct(req *entities.GetSelectionProductReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.GetSelectionProduct(req) + if err != nil { + return nil, err + } + var data entities.GetSelectionProductRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 5: GetSelectionProductSaleInfo +func (s *LinkedMallService) GetSelectionProductSaleInfo(req *entities.GetSelectionProductSaleInfoReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.GetSelectionProductSaleInfo(req) + if err != nil { + return nil, err + } + var data entities.GetSelectionProductSaleInfoRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 6: ListSelectionProductSaleInfos +func (s *LinkedMallService) ListSelectionProductSaleInfos(req *entities.ListSelectionProductSaleInfosReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ListSelectionProductSaleInfos(req) + if err != nil { + return nil, err + } + var data entities.ListSelectionProductSaleInfosRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 7: ListSelectionSkuSaleInfos +func (s *LinkedMallService) ListSelectionSkuSaleInfos(req *entities.ListSelectionSkuSaleInfosReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ListSelectionSkuSaleInfos(req) + if err != nil { + return nil, err + } + var data entities.ListSelectionSkuSaleInfosRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 8: ListCategories +func (s *LinkedMallService) ListCategories(req *entities.ListCategoriesReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ListCategories(req) + if err != nil { + return nil, err + } + var data entities.ListCategoriesRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 9: SearchProducts +func (s *LinkedMallService) SearchProducts(req *entities.SearchProductsReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.SearchProducts(req) + if err != nil { + return nil, err + } + var data entities.SearchProductsRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 10: SelectionGroupAddProduct +func (s *LinkedMallService) SelectionGroupAddProduct(req *entities.SelectionGroupAddProductReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.SelectionGroupAddProduct(req) + if err != nil { + return nil, err + } + var data entities.SelectionGroupAddProductRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 11: SelectionGroupRemoveProduct +func (s *LinkedMallService) SelectionGroupRemoveProduct(req *entities.SelectionGroupRemoveProductReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.SelectionGroupRemoveProduct(req) + if err != nil { + return nil, err + } + var data entities.SelectionGroupRemoveProductRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 12: RenderPurchaseOrder +func (s *LinkedMallService) RenderPurchaseOrder(req *entities.RenderPurchaseOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.RenderPurchaseOrder(req) + if err != nil { + return nil, err + } + var data entities.RenderPurchaseOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 13: SplitPurchaseOrder +func (s *LinkedMallService) SplitPurchaseOrder(req *entities.SplitPurchaseOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.SplitPurchaseOrder(req) + if err != nil { + return nil, err + } + var data entities.SplitPurchaseOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 14: CreatePurchaseOrder +func (s *LinkedMallService) CreatePurchaseOrder(req *entities.CreatePurchaseOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.CreatePurchaseOrder(req) + if err != nil { + return nil, err + } + var data entities.CreatePurchaseOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 15: GetPurchaseOrderStatus +func (s *LinkedMallService) GetPurchaseOrderStatus(req *entities.GetPurchaseOrderStatusReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.GetPurchaseOrderStatus(req) + if err != nil { + return nil, err + } + var data entities.GetPurchaseOrderStatusRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 16: GetOrder +func (s *LinkedMallService) GetOrder(req *entities.GetOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.GetOrder(req) + if err != nil { + return nil, err + } + var data entities.GetOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 17: QueryOrders +func (s *LinkedMallService) QueryOrders(req *entities.QueryOrdersReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.QueryOrders(req) + if err != nil { + return nil, err + } + var data entities.QueryOrdersRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 18: ListLogisticsOrders +func (s *LinkedMallService) ListLogisticsOrders(req *entities.ListLogisticsOrdersReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ListLogisticsOrders(req) + if err != nil { + return nil, err + } + var data entities.ListLogisticsOrdersRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 19: ConfirmDisburse +func (s *LinkedMallService) ConfirmDisburse(req *entities.ConfirmDisburseReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.ConfirmDisburse(req) + if err != nil { + return nil, err + } + var data entities.ConfirmDisburseRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 20: RenderRefundOrder +func (s *LinkedMallService) RenderRefundOrder(req *entities.RenderRefundOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.RenderRefundOrder(req) + if err != nil { + return nil, err + } + var data entities.RenderRefundOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 21: CreateRefundOrder +func (s *LinkedMallService) CreateRefundOrder(req *entities.CreateRefundOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.CreateRefundOrder(req) + if err != nil { + return nil, err + } + var data entities.CreateRefundOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 22: CancelRefundOrder +func (s *LinkedMallService) CancelRefundOrder(req *entities.CancelRefundOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.CancelRefundOrder(req) + if err != nil { + return nil, err + } + var data entities.CancelRefundOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 23: GetRefundOrder +func (s *LinkedMallService) GetRefundOrder(req *entities.GetRefundOrderReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.GetRefundOrder(req) + if err != nil { + return nil, err + } + var data entities.GetRefundOrderRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 24: CreateGoodsShippingNotice +func (s *LinkedMallService) CreateGoodsShippingNotice(req *entities.CreateGoodsShippingNoticeReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.CreateGoodsShippingNotice(req) + if err != nil { + return nil, err + } + var data entities.CreateGoodsShippingNoticeRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} + +// 接口 25: QueryChildDivisionCode +func (s *LinkedMallService) QueryChildDivisionCode(req *entities.QueryChildDivisionCodeReq) (*entities.APIResponse, error) { + commonResp, err := s.biz.QueryChildDivisionCode(req) + if err != nil { + return nil, err + } + var data entities.QueryChildDivisionCodeRespData + if commonResp.Success { + _ = s.parseData(commonResp, &data) + } + return s.buildAPIResponse(commonResp, &data), nil +} \ No newline at end of file