package logic import ( "context" "lone-services/pkg/modelbase" "lone-services/pkg/utils" "lone-services/pkg/validate" sale "lone-services/rpc/sale/pb" "lone-services/services/sale/internal/dao" "lone-services/services/sale/internal/model" "lone-services/services/sale/internal/svc" "lone-services/services/sale/validator" "github.com/zeromicro/go-zero/core/logx" ) type GroupItemsLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGroupItemsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GroupItemsLogic { return &GroupItemsLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } func (l *GroupItemsLogic) GroupItems(in *sale.GroupItemsReq) (*sale.Response, error) { var req validator.GroupItemsValidator if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty { return outResponse(utils.ErrorParams, msg), nil } page := int(req.Page) size := int(req.PageSize) if page < modelbase.DefaultPage { page = modelbase.DefaultPage } if size < modelbase.DefaultPage { size = modelbase.DefaultSize } w := modelbase.Params{ Page: page, Size: size, Order: "id desc", Like: map[string]string{}, } if req.Name != utils.StringEmpty { w.Like["name LIKE ?"] = "%" + req.Name + "%" } var list []dao.SaleGroup result, err := model.SaleGroupModel{}.Init().Page(w, &list) if err != nil { l.Errorf("group items: %v", err) return failResponse(utils.Fail), nil } return okResponse(map[string]any{ "count": result.Count, "items": list, }), nil }