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