package com.zsElectric.boot.app.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zsElectric.boot.app.model.form.CouponForm; import com.zsElectric.boot.app.model.query.CouponPageQuery; import com.zsElectric.boot.app.model.vo.CouponPageVO; import com.zsElectric.boot.app.service.CouponService; import com.zsElectric.boot.common.annotation.Log; import com.zsElectric.boot.common.enums.LogModuleEnum; import com.zsElectric.boot.core.web.PageResult; import com.zsElectric.boot.core.web.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; /** * 优惠券接口 */ @Tag(name = "优惠券接口") @RestController @RequestMapping("/api/v1/app/coupon") @RequiredArgsConstructor public class CouponController { private final CouponService couponService; @Operation(summary = "优惠券分页列表") @GetMapping("/page") @Log(value = "优惠券分页列表", module = LogModuleEnum.OTHER) public PageResult listPagedCoupons(CouponPageQuery queryParams) { IPage result = couponService.listPagedCoupons(queryParams); return PageResult.success(result); } @Operation(summary = "优惠券详情") @GetMapping("/{id}") @Log(value = "优惠券详情", module = LogModuleEnum.OTHER) public Result getCouponFormData( @Parameter(description = "优惠券ID") @PathVariable Long id) { CouponForm formData = couponService.getCouponFormData(id); return Result.success(formData); } @Operation(summary = "新增优惠券") @PostMapping @PreAuthorize("hasRole('ADMIN')") @Log(value = "新增优惠券", module = LogModuleEnum.OTHER) public Result saveCoupon(@RequestBody CouponForm formData) { boolean result = couponService.saveCoupon(formData); return Result.success(result); } @Operation(summary = "修改优惠券") @PutMapping("/{id}") @PreAuthorize("hasRole('ADMIN')") @Log(value = "修改优惠券", module = LogModuleEnum.OTHER) public Result updateCoupon( @Parameter(description = "优惠券ID") @PathVariable Long id, @RequestBody CouponForm formData) { boolean result = couponService.updateCoupon(id, formData); return Result.success(result); } @Operation(summary = "删除优惠券") @DeleteMapping("/{ids}") @PreAuthorize("hasRole('ADMIN')") @Log(value = "删除优惠券", module = LogModuleEnum.OTHER) public Result deleteCoupons( @Parameter(description = "优惠券ID,多个以英文逗号(,)分割") @PathVariable String ids) { boolean result = couponService.deleteCoupons(ids); return Result.success(result); } }