package com.xiaopeng.operation.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient; import com.xiaopeng.api.model.operation.XpCoupon; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.log.annotation.AdminOperationLog; import com.xiaopeng.common.log.enums.AdminBusinessType; import com.xiaopeng.common.log.enums.AdminOperationType; import com.xiaopeng.operation.query.XpCouponListQuery; import com.xiaopeng.operation.service.IXpCouponService; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import org.springframework.stereotype.Controller; import java.util.List; import com.xiaopeng.common.log.annotation.AdminOperationLog; import com.xiaopeng.common.log.enums.AdminBusinessType; import com.xiaopeng.common.log.enums.AdminOperationType; import javax.annotation.Resource; /** *

* 优惠券管理 前端控制器 *

* * @author mitao * @since 2026-02-03 */ @RestController @RequestMapping("") public class XpCouponController { private final IXpCouponService xpCouponService; public XpCouponController(IXpCouponService xpCouponService) { this.xpCouponService = xpCouponService; } @PostMapping("/logan/inner/xp-coupon/getCouponById") public R getCouponById(@RequestParam Long couponId){ XpCoupon xpCoupon = xpCouponService.getById(couponId); return R.ok(xpCoupon); } /** * 优惠券列表 */ @PostMapping("/v1/api/xp-coupon/list") @ApiOperation(value = "优惠券列表",tags = {"管理后台-优惠券"},response = XpCoupon.class) public R> list(@RequestBody XpCouponListQuery query ){ return R.ok(xpCouponService.getList(query)); } /** * // 添加优惠券 * @param xpCoupon * @return */ @PostMapping("/v1/api/xp-coupon/add") @ApiOperation(value = "添加优惠券",tags = {"管理后台-优惠券"},response = XpCoupon.class) @AdminOperationLog( businessType = AdminBusinessType.COUPON_MANAGEMENT, operationType = AdminOperationType.ADD, content = "添加优惠券", appendRequestData = true ) public R add(@RequestBody XpCoupon xpCoupon){ xpCouponService.save(xpCoupon); return R.ok(); } /** * 优惠券详情 */ @GetMapping("/v1/api/xp-coupon/queryById") @ApiOperation(value = "优惠券详情",tags = {"管理后台-优惠券"},response = XpCoupon.class) public R queryById(@RequestParam Long id){ XpCoupon xpCoupon = xpCouponService.getById(id); return R.ok(xpCoupon); } @Resource XpAppUserCouponClient xpAppUserCouponClient; /** * 删除优惠券 */ @DeleteMapping("/v1/api/xp-coupon/deleteById") @ApiOperation(value = "删除优惠券",tags = {"管理后台-优惠券"},response = XpCoupon.class) @AdminOperationLog( businessType = AdminBusinessType.COUPON_MANAGEMENT, operationType = AdminOperationType.DELETE, contentExpression = "'删除优惠券,id=' + #p0", appendRequestData = false ) public R deleteById(@RequestParam Long id){ if (!xpAppUserCouponClient.isHolding(id)){ xpCouponService.removeById(id); return R.ok(); } else{ return R.fail("该优惠券已有用户使用,无法作废 / 删除"); } } }