Cui Zhi Feng
2024-08-29 f7f2ff006ef29b700da8c98fb9c876aed9aa7bef
积分商品
已修改2个文件
已添加9个文件
283 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/constant/Constants.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/request/point/PointGoodsCreateDTO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/request/point/PointGoodsQueryDTO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/request/point/PointGoodsUpdateDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/point/PointGoodsDTO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/point/PointGoodsListDTO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/entity/point/PointGoods.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/point/PointGoodsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/point/PointGoodsService.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/point/PointGoodsMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/表设计.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
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 &gt; #{condition.stockLower}
        </if>
        <if test="condition.stockUpper != null">
            AND p.stock &lt;= #{condition.stockUpper}
        </if>
        <if test="condition.pointLower != null">
            AND p.point &gt; #{condition.pointLower}
        </if>
        <if test="condition.pointUpper != null">
            AND p.point &lt;= #{condition.pointUpper}
        </if>
        ORDER BY p.create_time desc
    </select>
</mapper>
src/main/表设计.xlsx
Binary files differ