From f9a8a5f20efb05d704a3ff9ad40a040435169be2 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 23 Mar 2025 17:45:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/AppCouponController.java | 9 +++ .../basic/controller/pc/CouponController.java | 61 +++++++++++++++++++ .../com/ycwl/basic/mapper/CouponMapper.java | 15 +++++ .../model/pc/coupon/entity/CouponEntity.java | 39 ++++++++++++ .../model/pc/coupon/req/CouponQueryReq.java | 33 ++++++++++ .../model/pc/coupon/resp/CouponRespVO.java | 34 +++++++++++ .../service/impl/pc/CouponServiceImpl.java | 49 +++++++++++++++ .../ycwl/basic/service/pc/CouponService.java | 17 ++++++ src/main/resources/mapper/CouponMapper.xml | 32 ++++++++++ 9 files changed, 289 insertions(+) create mode 100644 src/main/java/com/ycwl/basic/controller/mobile/AppCouponController.java create mode 100644 src/main/java/com/ycwl/basic/controller/pc/CouponController.java create mode 100644 src/main/java/com/ycwl/basic/mapper/CouponMapper.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/coupon/entity/CouponEntity.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/coupon/req/CouponQueryReq.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/coupon/resp/CouponRespVO.java create mode 100644 src/main/java/com/ycwl/basic/service/impl/pc/CouponServiceImpl.java create mode 100644 src/main/java/com/ycwl/basic/service/pc/CouponService.java create mode 100644 src/main/resources/mapper/CouponMapper.xml diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppCouponController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppCouponController.java new file mode 100644 index 0000000..209dc41 --- /dev/null +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppCouponController.java @@ -0,0 +1,9 @@ +package com.ycwl.basic.controller.mobile; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/mobile/controller/v1") +public class AppCouponController { +} diff --git a/src/main/java/com/ycwl/basic/controller/pc/CouponController.java b/src/main/java/com/ycwl/basic/controller/pc/CouponController.java new file mode 100644 index 0000000..4667a19 --- /dev/null +++ b/src/main/java/com/ycwl/basic/controller/pc/CouponController.java @@ -0,0 +1,61 @@ +package com.ycwl.basic.controller.pc; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.ycwl.basic.model.pc.coupon.entity.CouponEntity; +import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq; +import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO; +import com.ycwl.basic.service.pc.CouponService; +import com.ycwl.basic.utils.ApiResponse; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/coupon/v1") +@Api(tags = "优惠券管理") +public class CouponController { + @Autowired + private CouponService couponService; + + @ApiOperation("新增优惠券") + @PostMapping("/add") + public ApiResponse add(@RequestBody CouponEntity coupon) { + return ApiResponse.success(couponService.add(coupon)); + } + + @ApiOperation("更新优惠券") + @PostMapping("/update/{id}") + public ApiResponse update(@PathVariable Integer id, @RequestBody CouponEntity coupon) { + coupon.setId(id); + return ApiResponse.success(couponService.update(coupon)); + } + + @PutMapping("/updateStatus/{id}") + public ApiResponse updateStatus(@PathVariable Integer id) { + return ApiResponse.success(couponService.updateStatus(id)); + } + + @ApiOperation("删除优惠券") + @DeleteMapping("/delete/{id}") + public ApiResponse delete(@PathVariable Integer id) { + return ApiResponse.success(couponService.delete(id)); + } + + @ApiOperation("根据ID查询优惠券") + @GetMapping("/get/{id}") + public ApiResponse getById(@PathVariable Integer id) { + return ApiResponse.success(couponService.getById(id)); + } + + @ApiOperation("分页查询优惠券列表") + @PostMapping("/page") + public ApiResponse> list(@RequestBody CouponQueryReq couponQuery) { + PageHelper.startPage(couponQuery.getPageNum(), couponQuery.getPageSize()); + List list = couponService.list(couponQuery); + PageInfo pageInfo = new PageInfo<>(list); + return ApiResponse.success(pageInfo); + } +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/mapper/CouponMapper.java b/src/main/java/com/ycwl/basic/mapper/CouponMapper.java new file mode 100644 index 0000000..3e97b8c --- /dev/null +++ b/src/main/java/com/ycwl/basic/mapper/CouponMapper.java @@ -0,0 +1,15 @@ +package com.ycwl.basic.mapper; +import com.ycwl.basic.model.pc.coupon.entity.CouponEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq; +import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface CouponMapper extends BaseMapper { + List selectByQuery(CouponQueryReq query); + + int updateStatus(Integer id); +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/model/pc/coupon/entity/CouponEntity.java b/src/main/java/com/ycwl/basic/model/pc/coupon/entity/CouponEntity.java new file mode 100644 index 0000000..cb2ae0b --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/coupon/entity/CouponEntity.java @@ -0,0 +1,39 @@ +package com.ycwl.basic.model.pc.coupon.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("coupon") +public class CouponEntity { + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + private Long scenicId; + + // 新增优惠券名称字段 + private String name; + + /** + * 优惠券类别,0:普通优惠券;1:第一次推送;2:第二次;3:第三次 + */ + private Integer type; + /** + * 价格配置ID,逗号分隔字符串 + */ + private String configIds; + /** + * 0降价,1打折 + */ + private Integer discountType; + private BigDecimal discountPrice; + /** + * 状态:0不开启;1开启 + */ + private Integer status; + private Date createAt; +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/model/pc/coupon/req/CouponQueryReq.java b/src/main/java/com/ycwl/basic/model/pc/coupon/req/CouponQueryReq.java new file mode 100644 index 0000000..94b1959 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/coupon/req/CouponQueryReq.java @@ -0,0 +1,33 @@ +package com.ycwl.basic.model.pc.coupon.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.ycwl.basic.model.common.BaseQueryParameterReq; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +@EqualsAndHashCode(callSuper = true) +@Data +@ApiModel("优惠券查询请求参数") +public class CouponQueryReq extends BaseQueryParameterReq { + @ApiModelProperty("景区ID") + private Long scenicId; + private String name; + + @ApiModelProperty("优惠券类型:0普通/1首次推送/2二次/3三次") + private Integer type; + + @ApiModelProperty("折扣类型:0降价/1打折") + private Integer discountType; + + @ApiModelProperty("状态:0关闭/1开启") + private Integer status; + + @ApiModelProperty("创建时间起始") + private Date createAtStart; + + @ApiModelProperty("创建时间结束") + private Date createAtEnd; +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/model/pc/coupon/resp/CouponRespVO.java b/src/main/java/com/ycwl/basic/model/pc/coupon/resp/CouponRespVO.java new file mode 100644 index 0000000..3f537ff --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/coupon/resp/CouponRespVO.java @@ -0,0 +1,34 @@ +package com.ycwl.basic.model.pc.coupon.resp; + +import lombok.Data; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class CouponRespVO { + private Integer id; + private Long scenicId; + private String scenicName; + + // 新增优惠券名称字段 + private String name; + + /** + * 优惠券类别,0:普通优惠券;1:第一次推送;2:第二次;3:第三次 + */ + private Integer type; + /** + * 价格配置ID,逗号分隔字符串 + */ + private String configIds; + /** + * 0降价,1打折 + */ + private Integer discountType; + private BigDecimal discountPrice; + /** + * 状态:0不开启;1开启 + */ + private Integer status; + private Date createAt; +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/CouponServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/CouponServiceImpl.java new file mode 100644 index 0000000..e86c13f --- /dev/null +++ b/src/main/java/com/ycwl/basic/service/impl/pc/CouponServiceImpl.java @@ -0,0 +1,49 @@ +package com.ycwl.basic.service.impl.pc; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycwl.basic.mapper.CouponMapper; +import com.ycwl.basic.model.pc.coupon.entity.CouponEntity; +import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq; +import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO; +import com.ycwl.basic.service.pc.CouponService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CouponServiceImpl extends ServiceImpl implements CouponService { + + @Autowired + private CouponMapper couponMapper; + + @Override + public Integer add(CouponEntity coupon) { + return couponMapper.insert(coupon); + } + + @Override + public Boolean update(CouponEntity coupon) { + return couponMapper.updateById(coupon) > 0; + } + + @Override + public Boolean delete(Integer id) { + return removeById(id); + } + + @Override + public CouponEntity getById(Integer id) { + return couponMapper.selectById(id); + } + + @Override + public List list(CouponQueryReq query) { + List list = couponMapper.selectByQuery(query); + return list; + } + + @Override + public Boolean updateStatus(Integer id) { + return couponMapper.updateStatus(id) > 0; + } +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/pc/CouponService.java b/src/main/java/com/ycwl/basic/service/pc/CouponService.java new file mode 100644 index 0000000..53ae4f7 --- /dev/null +++ b/src/main/java/com/ycwl/basic/service/pc/CouponService.java @@ -0,0 +1,17 @@ +package com.ycwl.basic.service.pc; + +import com.ycwl.basic.model.pc.coupon.entity.CouponEntity; +import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq; +import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO; + +import java.util.List; + +public interface CouponService { + Integer add(CouponEntity coupon); + Boolean update(CouponEntity coupon); + Boolean delete(Integer id); + CouponEntity getById(Integer id); + List list(CouponQueryReq query); + + Boolean updateStatus(Integer id); +} \ No newline at end of file diff --git a/src/main/resources/mapper/CouponMapper.xml b/src/main/resources/mapper/CouponMapper.xml new file mode 100644 index 0000000..288e926 --- /dev/null +++ b/src/main/resources/mapper/CouponMapper.xml @@ -0,0 +1,32 @@ + + + + + UPDATE coupon + SET status = IF(status = 1, 0, 1) + WHERE id = #{id} + + + \ No newline at end of file