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 }