From 029d0710a0dfbe26a01e2c49d6459a5880d4db79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AE=87=E8=88=AA?= <653809315@qq.com> Date: Tue, 27 Aug 2024 10:41:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=88=97=E8=A1=A8=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/service/impl/GoodsServiceImpl.java | 39 ++++++++++++++++--- .../java/com/wyh/common/entity/GoodsImg.java | 27 +++++++++++++ .../com/wyh/common/mapper/GoodsImgMapper.java | 13 +++++++ .../validator/goods/GoodsCreateValidate.java | 2 +- .../validator/goods/GoodsUpdateValidate.java | 2 +- .../main/java/com/wyh/common/vo/CartVo.java | 10 ++++- .../wyh/common/vo/goods/GoodsDetailVo.java | 2 +- .../wyh/common/vo/goods/GoodsListedVo.java | 3 +- .../front/service/impl/GoodsServiceImpl.java | 9 +++++ admin/src/views/goods/edit.vue | 11 ++---- admin/src/views/goods/index.vue | 24 ++++++------ 11 files changed, 112 insertions(+), 30 deletions(-) create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/GoodsImg.java create mode 100644 ZJ-java/ZJ-common/src/main/java/com/wyh/common/mapper/GoodsImgMapper.java diff --git a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsServiceImpl.java b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsServiceImpl.java index 139d1e0..f243b7b 100644 --- a/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsServiceImpl.java +++ b/ZJ-java/ZJ-admin/src/main/java/com/wyh/admin/service/impl/GoodsServiceImpl.java @@ -9,9 +9,11 @@ import com.wyh.admin.service.IGoodsService; import com.wyh.admin.validate.commons.PageValidate; import com.wyh.common.config.GlobalConfig; import com.wyh.common.core.PageResult; +import com.wyh.common.entity.GoodsImg; import com.wyh.common.entity.goods.Goods; import com.wyh.common.entity.goods.GoodsCate; import com.wyh.common.entity.goods.GoodsExpand; +import com.wyh.common.mapper.GoodsImgMapper; import com.wyh.common.mapper.goods.GoodsCateMapper; import com.wyh.common.mapper.goods.GoodsExpandMapper; import com.wyh.common.mapper.goods.GoodsMapper; @@ -30,6 +32,7 @@ import javax.annotation.Resource; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; /** * 产品信息实现类 @@ -37,7 +40,10 @@ import java.util.List; */ @Service public class GoodsServiceImpl implements IGoodsService { - + + + @Resource + GoodsImgMapper goodsImgMapper; @Resource GoodsMapper goodsMapper; @@ -81,12 +87,14 @@ public class GoodsServiceImpl implements IGoodsService { item.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime())); if (item.getCateId() != null) { GoodsCate goodsCate = goodsCateMapper.selectOne(Wrappers.lambdaQuery().eq(GoodsCate::getId, item.getCateId()).eq(GoodsCate::getIsDelete, 0)); - GoodsCate goodsCate1 = goodsCateMapper.selectOne(Wrappers.lambdaQuery().eq(GoodsCate::getId, (goodsCate.getPid())).eq(GoodsCate::getIsDelete, 0)); - - item.setCateName(goodsCate1.getName() + "-" + goodsCate.getName()); } + List goodsImgs = goodsImgMapper.selectList(Wrappers.lambdaQuery().eq(GoodsImg::getGoodsId, item.getId())); + if (CollectionUtils.isNotEmpty(goodsImgs)) { + List collect = goodsImgs.stream().map(GoodsImg::getImgUrl).collect(Collectors.toList()); + item.setGoodsListImg(collect); + } } return PageResult.iPageHandle(iPage); @@ -111,6 +119,9 @@ public class GoodsServiceImpl implements IGoodsService { GoodsDetailVo vo = new GoodsDetailVo(); BeanUtils.copyProperties(model, vo); + List goodsImgs = goodsImgMapper.selectList(Wrappers.lambdaQuery().eq(GoodsImg::getGoodsId, id)); + List collect = goodsImgs.stream().map(GoodsImg::getImgUrl).collect(Collectors.toList()); + vo.setGoodsListImg(collect); LinkedList goodsExpands = new LinkedList<>(goodsExpandMapper.selectList( new QueryWrapper() .eq("goods_id", id) @@ -134,7 +145,6 @@ public class GoodsServiceImpl implements IGoodsService { model.setGoodsName(createValidate.getGoodsName()); model.setPrice(createValidate.getPrice()); model.setGoodsImg(createValidate.getGoodsImg()); - model.setGoodsListImg(createValidate.getGoodsListImg()); model.setSort(createValidate.getSort()); model.setType(createValidate.getType()); model.setIsDownload(createValidate.getIsDownload()); @@ -142,6 +152,15 @@ public class GoodsServiceImpl implements IGoodsService { model.setCateId(createValidate.getCateId()); goodsMapper.insert(model); + if(CollectionUtils.isNotEmpty(createValidate.getGoodsListImg())){ + goodsImgMapper.delete(Wrappers.lambdaQuery().eq(GoodsImg::getGoodsId, model.getId())); + for (String s : createValidate.getGoodsListImg()) { + GoodsImg goodsImg = new GoodsImg(); + goodsImg.setGoodsId(model.getId()); + goodsImg.setImgUrl(s); + goodsImgMapper.insert(goodsImg); + } + } if (CollectionUtils.isNotEmpty(createValidate.getGoodsExpand())) { for (GoodsExpand item : createValidate.getGoodsExpand()) { GoodsExpand goodsExpand = new GoodsExpand(); @@ -174,13 +193,21 @@ public class GoodsServiceImpl implements IGoodsService { model.setGoodsName(updateValidate.getGoodsName()); model.setPrice(updateValidate.getPrice()); model.setGoodsImg(updateValidate.getGoodsImg()); - model.setGoodsListImg(updateValidate.getGoodsListImg()); model.setSort(updateValidate.getSort()); model.setType(updateValidate.getType()); model.setIsDownload(updateValidate.getIsDownload()); model.setSummary(updateValidate.getSummary()); model.setCateId(updateValidate.getCateId()); goodsMapper.updateById(model); + if(CollectionUtils.isNotEmpty(updateValidate.getGoodsListImg())){ + goodsImgMapper.delete(Wrappers.lambdaQuery().eq(GoodsImg::getGoodsId, model.getId())); + for (String s : updateValidate.getGoodsListImg()) { + GoodsImg goodsImg = new GoodsImg(); + goodsImg.setGoodsId(model.getId()); + goodsImg.setImgUrl(s); + goodsImgMapper.insert(goodsImg); + } + } if (CollectionUtils.isNotEmpty(updateValidate.getGoodsExpand())) { goodsExpandMapper.delete(Wrappers.lambdaQuery().eq(GoodsExpand::getGoodsId, model.getId())); for (GoodsExpand item : updateValidate.getGoodsExpand()) { diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/GoodsImg.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/GoodsImg.java new file mode 100644 index 0000000..763ee23 --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/entity/GoodsImg.java @@ -0,0 +1,27 @@ +package com.wyh.common.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("产品列表图信息实体") +public class GoodsImg implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value="id", type= IdType.AUTO) + @ApiModelProperty(value = "") + private Integer id; + + @ApiModelProperty(value = "") + private Integer goodsId; + + @ApiModelProperty(value = "") + private String imgUrl; + +} \ No newline at end of file diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/mapper/GoodsImgMapper.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/mapper/GoodsImgMapper.java new file mode 100644 index 0000000..5fe7bbd --- /dev/null +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/mapper/GoodsImgMapper.java @@ -0,0 +1,13 @@ +package com.wyh.common.mapper; + +import com.wyh.common.core.basics.IBaseMapper; +import com.wyh.common.entity.GoodsImg; +import org.apache.ibatis.annotations.Mapper; + +/** + * 产品列表图信息Mapper + * @author wyh + */ +@Mapper +public interface GoodsImgMapper extends IBaseMapper { +} diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsCreateValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsCreateValidate.java index 2edbdd8..e606fcb 100644 --- a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsCreateValidate.java +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsCreateValidate.java @@ -30,7 +30,7 @@ public class GoodsCreateValidate implements Serializable { @NotNull(message = "goodsListImg参数缺失") @ApiModelProperty(value = "产品列表图") - private String goodsListImg; + private List goodsListImg; @NotNull(message = "sort参数缺失") @ApiModelProperty(value = "排序") diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsUpdateValidate.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsUpdateValidate.java index 2929182..b5058a6 100644 --- a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsUpdateValidate.java +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/validator/goods/GoodsUpdateValidate.java @@ -39,7 +39,7 @@ public class GoodsUpdateValidate implements Serializable { @NotNull(message = "goodsListImg参数缺失") @ApiModelProperty(value = "产品列表图") - private String goodsListImg; + private List goodsListImg; @NotNull(message = "sort参数缺失") @ApiModelProperty(value = "排序") diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/CartVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/CartVo.java index 9345320..28fdc7b 100644 --- a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/CartVo.java +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/CartVo.java @@ -1,15 +1,23 @@ package com.wyh.common.vo; import com.wyh.common.entity.goods.Goods; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; import java.util.List; @Data -public class CartVo { +@ApiModel("购物车") +public class CartVo implements Serializable { + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "购物车商品列表") private List goodsList; + @ApiModelProperty(value = "购物车商品总价") private BigDecimal totalPrice; + @ApiModelProperty(value = "购物车选中商品总金额") private BigDecimal checkTotalPrice; } diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsDetailVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsDetailVo.java index 72dea9f..387a26b 100644 --- a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsDetailVo.java +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsDetailVo.java @@ -28,7 +28,7 @@ public class GoodsDetailVo implements Serializable { private String goodsImg; @ApiModelProperty(value = "产品列表图") - private String goodsListImg; + private List goodsListImg; @ApiModelProperty(value = "排序") private Integer sort; diff --git a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsListedVo.java b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsListedVo.java index 7bbb71b..f66b1b8 100644 --- a/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsListedVo.java +++ b/ZJ-java/ZJ-common/src/main/java/com/wyh/common/vo/goods/GoodsListedVo.java @@ -6,6 +6,7 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; +import java.util.List; @Data @ApiModel("产品信息列表Vo") @@ -32,7 +33,7 @@ public class GoodsListedVo implements Serializable { private String goodsImg; @ApiModelProperty(value = "产品列表图") - private String goodsListImg; + private List goodsListImg; @ApiModelProperty(value = "排序") private Integer sort; diff --git a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/GoodsServiceImpl.java b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/GoodsServiceImpl.java index 348b60d..21cb87f 100644 --- a/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/GoodsServiceImpl.java +++ b/ZJ-java/ZJ-front/src/main/java/com/wyh/front/service/impl/GoodsServiceImpl.java @@ -8,9 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.query.MPJQueryWrapper; import com.wyh.common.config.GlobalConfig; import com.wyh.common.core.PageResult; +import com.wyh.common.entity.GoodsImg; import com.wyh.common.entity.goods.Goods; import com.wyh.common.entity.goods.GoodsCate; import com.wyh.common.entity.goods.GoodsExpand; +import com.wyh.common.mapper.GoodsImgMapper; import com.wyh.common.mapper.goods.GoodsCateMapper; import com.wyh.common.mapper.goods.GoodsExpandMapper; import com.wyh.common.mapper.goods.GoodsMapper; @@ -31,6 +33,7 @@ import javax.annotation.Resource; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; @Service public class GoodsServiceImpl implements GoodsService { @@ -38,6 +41,9 @@ public class GoodsServiceImpl implements GoodsService { @Resource private GoodsMapper goodsMapper; + @Resource + private GoodsImgMapper goodsImgMapper; + @Resource private GoodsCateMapper goodsCateMapper; @@ -124,6 +130,9 @@ public class GoodsServiceImpl implements GoodsService { GoodsDetailVo vo = new GoodsDetailVo(); BeanUtils.copyProperties(model, vo); + List goodsImgs = goodsImgMapper.selectList(Wrappers.lambdaQuery().eq(GoodsImg::getGoodsId, id)); + List collect = goodsImgs.stream().map(GoodsImg::getImgUrl).collect(Collectors.toList()); + vo.setGoodsListImg(collect); LinkedList goodsExpands = new LinkedList<>(goodsExpandMapper.selectList( new QueryWrapper() .eq("goods_id", id) diff --git a/admin/src/views/goods/edit.vue b/admin/src/views/goods/edit.vue index 0f5e110..707aede 100644 --- a/admin/src/views/goods/edit.vue +++ b/admin/src/views/goods/edit.vue @@ -35,7 +35,7 @@ - +
@@ -192,9 +192,6 @@ const { optionsData } = useDictOptions<{ const handleSubmit = async () => { await formRef.value?.validate() const data: any = { ...formData } - for (let i = 0; i < inputs.value.length; i++) { - formData.goodsExpand.push(inputs.value[i]); - } mode.value == 'edit' ? await goodsEdit(data) : await goodsAdd(data) popupRef.value?.close() feedback.msgSuccess('操作成功') @@ -213,6 +210,9 @@ const setFormData = async (data: Record) => { formData[key] = data[key] } } + for (let i = 0; i < data.goodsExpand.length; i++) { + inputs.value.push(data.goodsExpand[i]) + } } const getDetail = async (row: Record) => { @@ -220,9 +220,6 @@ const getDetail = async (row: Record) => { id: row.id }) setFormData(data) - for (let i = 0; i < data.goodsExpand.length; i++) { - inputs.value.push(data.goodsExpand[i]) - } } const handleClose = () => { diff --git a/admin/src/views/goods/index.vue b/admin/src/views/goods/index.vue index 5512003..aaff2bd 100644 --- a/admin/src/views/goods/index.vue +++ b/admin/src/views/goods/index.vue @@ -56,18 +56,18 @@ /> - - - + + + + + + + + + + + +