From f7f2ff006ef29b700da8c98fb9c876aed9aa7bef Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com> Date: 星期四, 29 八月 2024 14:12:45 +0800 Subject: [PATCH] 积分商品 --- src/main/java/com/mzl/flower/dto/request/point/PointGoodsQueryDTO.java | 28 +++++ src/main/java/com/mzl/flower/dto/response/point/PointGoodsDTO.java | 12 ++ src/main/表设计.xlsx | 0 src/main/java/com/mzl/flower/entity/point/PointGoods.java | 33 ++++++ src/main/resources/mapper/point/PointGoodsMapper.xml | 30 ++++++ src/main/java/com/mzl/flower/constant/Constants.java | 16 +++ src/main/java/com/mzl/flower/service/point/PointGoodsService.java | 78 +++++++++++++++ src/main/java/com/mzl/flower/dto/request/point/PointGoodsCreateDTO.java | 28 +++++ src/main/java/com/mzl/flower/dto/response/point/PointGoodsListDTO.java | 31 ++++++ src/main/java/com/mzl/flower/mapper/point/PointGoodsMapper.java | 16 +++ src/main/java/com/mzl/flower/dto/request/point/PointGoodsUpdateDTO.java | 11 ++ 11 files changed, 283 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java index 04d154f..beace01 100644 --- a/src/main/java/com/mzl/flower/constant/Constants.java +++ b/src/main/java/com/mzl/flower/constant/Constants.java @@ -430,4 +430,20 @@ } } + public enum POINT_GOODS_STATUS { + A("已上架"), + I("已下架"), + ; + + POINT_GOODS_STATUS(String desc) { + this.desc = desc; + } + + private String desc; + + public String getDesc() { + return desc; + } + } + } diff --git a/src/main/java/com/mzl/flower/dto/request/point/PointGoodsCreateDTO.java b/src/main/java/com/mzl/flower/dto/request/point/PointGoodsCreateDTO.java new file mode 100644 index 0000000..0194aa3 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/point/PointGoodsCreateDTO.java @@ -0,0 +1,28 @@ +package com.mzl.flower.dto.request.point; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class PointGoodsCreateDTO { + @ApiModelProperty(value = "商品名称") + private String name; + + @ApiModelProperty(value = "商品描述") + private String description; + + @ApiModelProperty(value = "库存") + private Integer stock; + + @ApiModelProperty(value = "封面图") + private String cover; + + @ApiModelProperty(value = "商品图片") + private List<String> pictureList; + + @ApiModelProperty(value = "兑换积分") + private Integer point; + +} diff --git a/src/main/java/com/mzl/flower/dto/request/point/PointGoodsQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/point/PointGoodsQueryDTO.java new file mode 100644 index 0000000..ff598cd --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/point/PointGoodsQueryDTO.java @@ -0,0 +1,28 @@ +package com.mzl.flower.dto.request.point; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class PointGoodsQueryDTO { + @ApiModelProperty(value = "商品名称") + private String name; + + @ApiModelProperty(value = "状态") + private String status; + + @ApiModelProperty(value = "库存-下限") + private Integer stockLower; + + @ApiModelProperty(value = "库存-上限") + private Integer stockUpper; + + @ApiModelProperty(value = "兑换积分-下限") + private Integer pointLower; + + @ApiModelProperty(value = "兑换积分-上限") + private Integer pointUpper; + +} diff --git a/src/main/java/com/mzl/flower/dto/request/point/PointGoodsUpdateDTO.java b/src/main/java/com/mzl/flower/dto/request/point/PointGoodsUpdateDTO.java new file mode 100644 index 0000000..0e8d586 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/point/PointGoodsUpdateDTO.java @@ -0,0 +1,11 @@ +package com.mzl.flower.dto.request.point; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PointGoodsUpdateDTO extends PointGoodsCreateDTO{ + @ApiModelProperty(value = "id") + private Long id; + +} diff --git a/src/main/java/com/mzl/flower/dto/response/point/PointGoodsDTO.java b/src/main/java/com/mzl/flower/dto/response/point/PointGoodsDTO.java new file mode 100644 index 0000000..ed93b32 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/response/point/PointGoodsDTO.java @@ -0,0 +1,12 @@ +package com.mzl.flower.dto.response.point; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class PointGoodsDTO extends PointGoodsListDTO { + @ApiModelProperty(value = "商品图片") + private List<String> pictureList; +} diff --git a/src/main/java/com/mzl/flower/dto/response/point/PointGoodsListDTO.java b/src/main/java/com/mzl/flower/dto/response/point/PointGoodsListDTO.java new file mode 100644 index 0000000..b455255 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/response/point/PointGoodsListDTO.java @@ -0,0 +1,31 @@ +package com.mzl.flower.dto.response.point; + +import com.mzl.flower.base.AbstractTransDTO; +import com.mzl.flower.base.annotation.DictTrans; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PointGoodsListDTO extends AbstractTransDTO { + private Long id; + + @ApiModelProperty(value = "商品名称") + private String name; + + @ApiModelProperty(value = "商品描述") + private String description; + + @ApiModelProperty(value = "库存") + private Integer stock; + + @ApiModelProperty(value = "封面图") + private String cover; + + @ApiModelProperty(value = "兑换积分") + private Integer point; + + @ApiModelProperty(value = "状态") + @DictTrans(target = "statusStr", codeType = "POINT_GOODS_STATUS") + private String status; + private String statusStr; +} diff --git a/src/main/java/com/mzl/flower/entity/point/PointGoods.java b/src/main/java/com/mzl/flower/entity/point/PointGoods.java new file mode 100644 index 0000000..5b08efd --- /dev/null +++ b/src/main/java/com/mzl/flower/entity/point/PointGoods.java @@ -0,0 +1,33 @@ +package com.mzl.flower.entity.point; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mzl.flower.base.BaseAutoEntity; +import lombok.Data; + +@Data +@TableName("t_point_goods") +public class PointGoods extends BaseAutoEntity { + + @TableField("name") + private String name;//商品名称 + + @TableField("description") + private String description;//商品描述 + + @TableField("stock") + private Integer stock;//库存 + + @TableField("cover") + private String cover;//封面图 + + @TableField("pictures") + private String pictures;//商品图片 + + @TableField("point") + private Integer point;//兑换积分 + + @TableField("status") + private String status;//状态 + +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/mapper/point/PointGoodsMapper.java b/src/main/java/com/mzl/flower/mapper/point/PointGoodsMapper.java new file mode 100644 index 0000000..8825c9b --- /dev/null +++ b/src/main/java/com/mzl/flower/mapper/point/PointGoodsMapper.java @@ -0,0 +1,16 @@ +package com.mzl.flower.mapper.point; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.point.PointGoodsQueryDTO; +import com.mzl.flower.dto.response.point.PointGoodsListDTO; +import com.mzl.flower.entity.point.PointGoods; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface PointGoodsMapper extends BaseMapper<PointGoods> { + List<PointGoodsListDTO> selectGoodsList(Page page, @Param("condition") PointGoodsQueryDTO dto); +} diff --git a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java new file mode 100644 index 0000000..0b25f44 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java @@ -0,0 +1,78 @@ +package com.mzl.flower.service.point; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.config.exception.ValidationException; +import com.mzl.flower.config.security.SecurityUtils; +import com.mzl.flower.constant.Constants; +import com.mzl.flower.dto.request.point.PointGoodsCreateDTO; +import com.mzl.flower.dto.request.point.PointGoodsQueryDTO; +import com.mzl.flower.dto.request.point.PointGoodsUpdateDTO; +import com.mzl.flower.dto.response.point.PointGoodsDTO; +import com.mzl.flower.dto.response.point.PointGoodsListDTO; +import com.mzl.flower.entity.point.PointGoods; +import com.mzl.flower.mapper.point.PointGoodsMapper; +import com.mzl.flower.service.BaseService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@Transactional +public class PointGoodsService extends BaseService { + + @Autowired + private PointGoodsMapper pointGoodsMapper; + + public Long addPointGoods(PointGoodsCreateDTO dto){ + PointGoods p = new PointGoods(); + BeanUtils.copyProperties(dto, p); + p.setPictures(toJSONString(dto.getPictureList())); + p.setStatus(Constants.POINT_GOODS_STATUS.I.name()); + + p.create(SecurityUtils.getUserId()); + pointGoodsMapper.insert(p); + + return p.getId(); + } + + public Long updatePointGoods(PointGoodsUpdateDTO dto){ + PointGoods p = pointGoodsMapper.selectById(dto.getId()); + if(p == null){ + throw new ValidationException("商品未找到"); + } + + BeanUtils.copyProperties(dto, p); + p.setPictures(toJSONString(dto.getPictureList())); + + p.update(SecurityUtils.getUserId()); + pointGoodsMapper.updateById(p); + + return p.getId(); + } + + public void deletePointGoods(Long id){ + pointGoodsMapper.deleteById(id); + } + + public Page<PointGoodsListDTO> selectGoodsList(Page page, PointGoodsQueryDTO dto){ + List<PointGoodsListDTO> ls = pointGoodsMapper.selectGoodsList(page, dto); + + page.setRecords(ls); + return page; + } + + public PointGoodsDTO getGoodsInfo(Long id){ + PointGoods p = pointGoodsMapper.selectById(id); + if(p == null){ + throw new ValidationException("商品未找到"); + } + PointGoodsDTO dto = new PointGoodsDTO(); + BeanUtils.copyProperties(p, dto); + dto.setPictureList(parseArray(p.getPictures(), String.class)); + + return dto; + } +} diff --git a/src/main/resources/mapper/point/PointGoodsMapper.xml b/src/main/resources/mapper/point/PointGoodsMapper.xml new file mode 100644 index 0000000..7e1357a --- /dev/null +++ b/src/main/resources/mapper/point/PointGoodsMapper.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.mzl.flower.mapper.point.PointGoodsMapper"> + + <select id="selectGoodsList" resultType="com.mzl.flower.dto.response.point.PointGoodsListDTO"> + SELECT p.* + FROM t_point_goods p + WHERE p.deleted = 0 + <if test="condition.name != null and condition.name != ''"> + AND p.name LIKE concat('%', #{condition.name},'%') + </if> + <if test="condition.status != null and condition.status != ''"> + AND p.status = #{condition.status} + </if> + <if test="condition.stockLower != null"> + AND p.stock > #{condition.stockLower} + </if> + <if test="condition.stockUpper != null"> + AND p.stock <= #{condition.stockUpper} + </if> + <if test="condition.pointLower != null"> + AND p.point > #{condition.pointLower} + </if> + <if test="condition.pointUpper != null"> + AND p.point <= #{condition.pointUpper} + </if> + ORDER BY p.create_time desc + </select> + +</mapper> \ No newline at end of file diff --git "a/src/main/\350\241\250\350\256\276\350\256\241.xlsx" "b/src/main/\350\241\250\350\256\276\350\256\241.xlsx" index 2e1e3ae..e85ae38 100644 --- "a/src/main/\350\241\250\350\256\276\350\256\241.xlsx" +++ "b/src/main/\350\241\250\350\256\276\350\256\241.xlsx" Binary files differ -- Gitblit v1.9.3