package controller import ( "context" adminv1 "tool-api/api/admin/v1" userv1 "tool-api/api/user/v1" "tool-api/internal/logic" ) // ============================================================================ // 优惠券控制器 // // 拆成两个对象分别挂到 UserAuth / AdminAuth 两组: // - Coupon 用户端(P5 /coupon/my、P6 /coupon/validate、P7 /coupon/usable) // - AdminCoupon 管理端(A6–A11) // ============================================================================ // cCoupon 用户端优惠券接口(需用户登录) type cCoupon struct{} // cAdminCoupon 管理端优惠券接口(需管理员登录) type cAdminCoupon struct{} var ( Coupon = &cCoupon{} AdminCoupon = &cAdminCoupon{} ) // ===== 用户端 ===== func (c *cCoupon) CouponMy(ctx context.Context, req *userv1.CouponMyReq) (res *userv1.CouponMyRes, err error) { return logic.CouponMy(ctx, req.Status) } func (c *cCoupon) CouponValidate(ctx context.Context, req *userv1.CouponValidateReq) (res *userv1.CouponValidateRes, err error) { return logic.CouponValidate(ctx, req.UserCouponId, req.OrderType, req.TargetKey) } func (c *cCoupon) CouponUsable(ctx context.Context, req *userv1.CouponUsableReq) (res *userv1.CouponUsableRes, err error) { return logic.CouponUsable(ctx, req.OrderType, req.TargetKey, req.OutTradeNo) } // ===== 管理端 ===== func (c *cAdminCoupon) CouponTemplateList(ctx context.Context, req *adminv1.CouponTemplateListReq) (res *adminv1.CouponTemplateListRes, err error) { return logic.AdminCouponTemplateList(ctx, req) } func (c *cAdminCoupon) CouponTemplateSave(ctx context.Context, req *adminv1.CouponTemplateSaveReq) (res *adminv1.CouponTemplateSaveRes, err error) { return logic.AdminCouponTemplateSave(ctx, req) } func (c *cAdminCoupon) CouponTemplateToggle(ctx context.Context, req *adminv1.CouponTemplateToggleReq) (res *adminv1.CouponTemplateToggleRes, err error) { return logic.AdminCouponTemplateToggle(ctx, req.Id, req.Status) } func (c *cAdminCoupon) CouponGrant(ctx context.Context, req *adminv1.CouponGrantReq) (res *adminv1.CouponGrantRes, err error) { return logic.AdminCouponGrant(ctx, req) } func (c *cAdminCoupon) CouponRecordList(ctx context.Context, req *adminv1.CouponRecordListReq) (res *adminv1.CouponRecordListRes, err error) { return logic.AdminCouponRecordList(ctx, req) } func (c *cAdminCoupon) CouponRedeem(ctx context.Context, req *adminv1.CouponRedeemReq) (res *adminv1.CouponRedeemRes, err error) { return logic.AdminCouponRedeem(ctx, req.UserCouponId, req.Remark) }