liujie
2026-06-09 c96fbe6b0aeb413a17c429133ee6d81d138144b9
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpCouponController.java
@@ -2,20 +2,24 @@
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 com.xiaopeng.operation.vo.XpBannerListVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestParam;
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;
/**
 * <p>
@@ -25,7 +29,7 @@
 * @author mitao
 * @since 2026-02-03
 */
@Controller
@RestController
@RequestMapping("")
public class XpCouponController {
@@ -36,7 +40,7 @@
    }
    @PostMapping("/inner/xp-coupon/getCouponById")
    @PostMapping("/logan/inner/xp-coupon/getCouponById")
    public R<XpCoupon> getCouponById(@RequestParam Long couponId){
        XpCoupon xpCoupon = xpCouponService.getById(couponId);
        return R.ok(xpCoupon);
@@ -62,9 +66,87 @@
     */
    @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){
        xpCoupon.setStatus(1);
        xpCouponService.save(xpCoupon);
        return R.ok();
    }
    /**
     * 优惠券详情
     */
    @GetMapping("/v1/api/xp-coupon/queryById")
    @ApiOperation(value = "优惠券详情",tags = {"管理后台-优惠券"},response = XpCoupon.class)
    public R<XpCoupon> 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("该优惠券已有用户使用,无法作废 / 删除");
        }
    }
    /**
     * 删除优惠券
     */
    @PostMapping("/v1/api/xp-coupon/updateStatus")
    @ApiOperation(value = "修改优惠券状态",tags = {"管理后台-优惠券"},response = XpCoupon.class)
    @AdminOperationLog(
            businessType = AdminBusinessType.COUPON_MANAGEMENT,
            operationType = AdminOperationType.SWITCH_STATUS,
            contentExpression = "'修改优惠券状态,id=' + #p0",
            appendRequestData = false
    )
    public R<?> updateStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status){
        XpCoupon xpCoupon = xpCouponService.getById(id);
        if(null == xpCoupon){
            return R.fail("优惠券不存在");
        }
        xpCoupon.setStatus(status);
        xpCouponService.updateById(xpCoupon);
        return R.ok();
    }
    @PostMapping("/v1/api/xp-coupon/editCoupon")
    @ApiOperation(value = "编辑优惠券",tags = {"管理后台-优惠券"},response = XpCoupon.class)
    @AdminOperationLog(
            businessType = AdminBusinessType.COUPON_MANAGEMENT,
            operationType = AdminOperationType.EDIT,
            contentExpression = "'编辑优惠券,id=' + #p0",
            appendRequestData = false
    )
    public R<?> editCoupon(@RequestBody XpCoupon coupon){
        xpCouponService.updateById(coupon);
        return R.ok();
    }
}