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; } } } 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; } 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; } 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; } 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; } 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; } 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;//状态 } 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); } 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; } } 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> src/main/表设计.xlsxBinary files differ