添加文件: server_tb_LinkedMall/internal/service/service.go

This commit is contained in:
renzhiyuan 2026-08-27 16:19:08 +08:00
parent a469e2cb4e
commit 21250b4b28
1 changed files with 382 additions and 0 deletions

View File

@ -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
}