From 4607cf5737cf68bbf5132cf02e88d3cc325d8a2e Mon Sep 17 00:00:00 2001 From: rentaiming <806181662@qq.com> Date: 星期六, 01 六月 2024 18:46:19 +0800 Subject: [PATCH] 用户端 商品 --- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuListVO.java | 5 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsGroupPurchaseController.java | 38 +++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java | 74 +++++++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java | 34 +++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java | 107 ++++++++++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java | 3 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsBrowseRecordController.java | 37 +++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuInfoVO.java | 79 +++++++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java | 5 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/vo/GoodsGroupPurchaseInfoVO.java | 77 +++++++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrowseRecordService.java | 6 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrowseRecordServiceImpl.java | 57 +++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/HomeGoodsSkuDTO.java | 6 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java | 9 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSkuController.java | 14 15 files changed, 541 insertions(+), 10 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/HomeGoodsSkuDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/HomeGoodsSkuDTO.java index fe27a0a..884419f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/HomeGoodsSkuDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/HomeGoodsSkuDTO.java @@ -6,9 +6,12 @@ @Data public class HomeGoodsSkuDTO extends BasePage { + @ApiModelProperty(value = "商品名称") private String skuName; + @ApiModelProperty(value = "商品skuId") + private Long goodsSkuId; @ApiModelProperty(value = "商品分类id") private Long categoryId; @@ -28,5 +31,8 @@ @ApiModelProperty(value = "排序方式1.全部2.30+ 3.30-15 4.15-5") private Integer year; + @ApiModelProperty(value = "会员id") + private Long memberId; + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuInfoVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuInfoVO.java new file mode 100644 index 0000000..84de4f7 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuInfoVO.java @@ -0,0 +1,79 @@ +package com.ruoyi.system.api.domain.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class HomeGoodsSkuInfoVO { + @ApiModelProperty(value = "商品id") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + @ApiModelProperty(value = "商品名称") + private String skuName; + + @ApiModelProperty(value = "商品年份") + private String years; + + @ApiModelProperty(value = "商品分类") + private String category; + + @ApiModelProperty(value = "商品系列") + private String series; + + @ApiModelProperty(value = "商品品牌") + private String brand; + + @ApiModelProperty(value = "商品香型") + private String flavorType; + + @ApiModelProperty(value = "商品价格") + private BigDecimal price; + + @ApiModelProperty(value = "库存") + private Integer stock; + + @ApiModelProperty(value = "已售数量") + private Integer soldQuantity; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "规格") + private String spec; + + @ApiModelProperty(value = "规格单位") + private String specUnit; + + @ApiModelProperty(value = "封面图") + private String coverPic; + + @ApiModelProperty(value = "详情图,不超过五张图片") + private String album; + + @ApiModelProperty(value = "分享标题") + private String shareTitle; + + @ApiModelProperty(value = "分享图片") + private String sharePic; + + @ApiModelProperty(value = "商品描述") + private String description; + + @ApiModelProperty(value = "商品说明") + private String detail; + + @ApiModelProperty(value = "排序") + private Integer sortNum; + + @ApiModelProperty(value = "是收藏 1未收藏,2收藏") + private Integer isCollection; + + @ApiModelProperty(value = "是团购 1没有团购,2有团购") + private Integer isGoodsGroupPurchase; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuListVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuListVO.java index 04b4faa..e57eca3 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuListVO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuListVO.java @@ -29,4 +29,9 @@ @ApiModelProperty(value = "封面图") private String coverPic; + @ApiModelProperty(value = "是收藏 1未收藏,2收藏") + private Integer isCollection; + + + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsBrowseRecordController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsBrowseRecordController.java new file mode 100644 index 0000000..612a8fb --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsBrowseRecordController.java @@ -0,0 +1,37 @@ +package com.ruoyi.goods.controller.forepart; + + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.goods.service.IGoodsBrowseRecordService; +import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * <p> + * 会员商品浏览记录表 前端控制器 + * </p> + * + * @author mitao + * @since 2024-05-30 + */ +@RestController +@RequestMapping("/forepart/goods-browse-record") +public class ForepartGoodsBrowseRecordController { + @Resource + private IGoodsBrowseRecordService iGoodsBrowseRecordService; + @RequestMapping("/geBrowseRecordList") + @ResponseBody + @ApiOperation(value = "用户端-我的浏览的普通商品") + public R<PageDTO<HomeGoodsSkuListVO>> geBrowseRecordList(@RequestBody AuctionCollectionDTO auctionCollectionDTO) { + return R.ok(iGoodsBrowseRecordService.geBrowseRecordList(auctionCollectionDTO)); + } + +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsGroupPurchaseController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsGroupPurchaseController.java new file mode 100644 index 0000000..9051af8 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsGroupPurchaseController.java @@ -0,0 +1,38 @@ +package com.ruoyi.goods.controller.forepart; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.goods.controller.forepart.vo.GoodsGroupPurchaseInfoVO; +import com.ruoyi.goods.service.IGoodsGroupPurchaseService; +import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuInfoVO; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * <p> + * 商品团购表 前端控制器 + * </p> + * + * @author mitao + * @since 2024-05-16 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +@RequestMapping("/forepart/goods-group-purchase") +public class ForepartGoodsGroupPurchaseController { + + private final IGoodsGroupPurchaseService goodsGroupPurchaseService; + + @RequestMapping("/getGoodsGroupPurchaseInfo") + @ResponseBody + @ApiOperation(value = "用户端-团购商品详情") + public R<GoodsGroupPurchaseInfoVO> getGoodsGroupPurchaseInfo(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO) { + return R.ok(goodsGroupPurchaseService.getGoodsGroupPurchaseInfo(homeGoodsSkuDTO)); + } +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSkuController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSkuController.java index 0d83a5b..722e107 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSkuController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSkuController.java @@ -1,22 +1,17 @@ package com.ruoyi.goods.controller.forepart; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.service.IGoodsSkuService; -import com.ruoyi.system.api.domain.GoodsBrand; -import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; -import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.List; /** * <p> @@ -41,5 +36,12 @@ return R.ok(iGoodsSkuService.getHomeGoodsSkuVOList(homeGoodsSkuDTO)); } + @RequestMapping("/getHomeGoodsSkuInfoVO") + @ResponseBody + @ApiOperation(value = "用户端-普通拍卖商品详情") + public R<HomeGoodsSkuInfoVO> getHomeGoodsSkuInfo(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO) { + return R.ok(iGoodsSkuService.getHomeGoodsSkuInfo(homeGoodsSkuDTO)); + } + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/vo/GoodsGroupPurchaseInfoVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/vo/GoodsGroupPurchaseInfoVO.java new file mode 100644 index 0000000..5bb11f6 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/vo/GoodsGroupPurchaseInfoVO.java @@ -0,0 +1,77 @@ +package com.ruoyi.goods.controller.forepart.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.ruoyi.common.core.enums.GroupStatusEnum; +import com.ruoyi.common.core.enums.ListingStatusEnum; +import com.ruoyi.common.core.enums.StartStatusEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +@Data +public class GoodsGroupPurchaseInfoVO { + @ApiModelProperty(value = "商品id") + private Long goodsSkuId; + + @ApiModelProperty(value = "商品名称") + private String goodsSkuName; + @ApiModelProperty(value = "商品年份") + private String years; + + @ApiModelProperty(value = "封面图") + private String coverPic; + + @ApiModelProperty(value = "商品价格") + private BigDecimal price; + + + @ApiModelProperty(value = "分享标题") + @TableField("share_title") + private String shareTitle; + + @ApiModelProperty(value = "分享图片") + @TableField("share_pic") + private String sharePic; + + @ApiModelProperty(value = "团购价格") + @TableField("group_purchase_price") + private BigDecimal groupPurchasePrice; + + @ApiModelProperty(value = "成团人数") + @TableField("group_size") + private Integer groupSize; + + @ApiModelProperty(value = "限购数量") + @TableField("limit_number") + private Integer limitNumber; + + @ApiModelProperty(value = "当前人数") + @TableField("current_number") + private Integer currentNumber; + + @ApiModelProperty(value = "团购开始时间") + @TableField("start_time") + private LocalDateTime startTime; + + @ApiModelProperty(value = "团购结束时间") + @TableField("end_time") + private LocalDateTime endTime; + + @ApiModelProperty(value = "参团说明") + @TableField("description") + private String description; + + @ApiModelProperty(value = "开始状态 0=未开始 1=已开始 2=已结束 ") + @TableField("start_status") + private StartStatusEnum startStatus; + + @ApiModelProperty(value = "上架状态 0=已上架 1=已下架") + @TableField("listing_status") + private ListingStatusEnum listingStatus; + + @ApiModelProperty(value = "成团状态 0=待成团 1=已成团 2=成团失败") + @TableField("group_status") + private GroupStatusEnum groupStatus; + +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrowseRecordService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrowseRecordService.java index 97743e7..1db571d 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrowseRecordService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrowseRecordService.java @@ -1,7 +1,11 @@ package com.ruoyi.goods.service; +import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.GoodsBrowseRecord; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -12,5 +16,5 @@ * @since 2024-05-30 */ public interface IGoodsBrowseRecordService extends IService<GoodsBrowseRecord> { - + PageDTO<HomeGoodsSkuListVO> geBrowseRecordList(@RequestBody AuctionCollectionDTO auctionCollectionDTO); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java index 1550c37..5ec4038 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java @@ -7,7 +7,10 @@ import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery; import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO; import com.ruoyi.goods.domain.GoodsGroupPurchase; +import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; +import com.ruoyi.goods.controller.forepart.vo.GoodsGroupPurchaseInfoVO; +import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -69,4 +72,6 @@ * @param id 团购商品id */ void stopImmediately(Long id); + + GoodsGroupPurchaseInfoVO getGoodsGroupPurchaseInfo(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java index 7c2e329..8693f69 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java @@ -11,6 +11,7 @@ import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuInfoVO; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -65,4 +66,6 @@ void updGoodsStock(List<GoodsStockUpdDTO> goodsStockUpdDTOS); PageDTO<HomeGoodsSkuListVO> getHomeGoodsSkuVOList(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO); + + HomeGoodsSkuInfoVO getHomeGoodsSkuInfo(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java index 907e374..d7ac1c7 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IMemberGoodsCollectionService.java @@ -1,7 +1,12 @@ package com.ruoyi.goods.service; +import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.MemberGoodsCollection; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO; +import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -13,4 +18,8 @@ */ public interface IMemberGoodsCollectionService extends IService<MemberGoodsCollection> { + void saveGoodsCollection(AuctionCollectionDTO auctionCollectionDTO); + + PageDTO<HomeGoodsSkuListVO> getGoodsCollectionList(@RequestBody AuctionCollectionDTO auctionCollectionDTO); + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrowseRecordServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrowseRecordServiceImpl.java index 0c44780..4a04dfa 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrowseRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrowseRecordServiceImpl.java @@ -1,10 +1,28 @@ package com.ruoyi.goods.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.GoodsBrowseRecord; +import com.ruoyi.goods.domain.MemberGoodsCollection; import com.ruoyi.goods.mapper.GoodsBrowseRecordMapper; +import com.ruoyi.goods.mapper.GoodsSkuMapper; import com.ruoyi.goods.service.IGoodsBrowseRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * <p> @@ -16,5 +34,44 @@ */ @Service public class GoodsBrowseRecordServiceImpl extends ServiceImpl<GoodsBrowseRecordMapper, GoodsBrowseRecord> implements IGoodsBrowseRecordService { + @Resource + private GoodsSkuMapper goodsSkuMapper; + @Resource + private GoodsSkuClient goodsSkuClient; + + @Override + public PageDTO<HomeGoodsSkuListVO> geBrowseRecordList(AuctionCollectionDTO auctionCollectionDTO) { + + + Set<Long> goodsSkuIdList1 = null; + if (StringUtils.isNotEmpty(auctionCollectionDTO.getGoodsSkuName())) { + List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionCollectionDTO.getGoodsSkuName(), + SecurityConstants.INNER) + .getData(); + goodsSkuIdList1 = goodsSku.stream().map(GoodsSku::getId) + .collect(Collectors.toSet()); + } + + Page<HomeGoodsSkuListVO> page = new Page<>(); + page.setSize(auctionCollectionDTO.getPageSize()); + page.setCurrent(auctionCollectionDTO.getPageCurr()); + LambdaQueryWrapper<GoodsBrowseRecord> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(GoodsBrowseRecord::getMemberId,auctionCollectionDTO.getMemberId()); + wrapper.in(GoodsBrowseRecord::getGoodsSkuId,goodsSkuIdList1); + List<GoodsBrowseRecord> list = this.list(wrapper); + + List<HomeGoodsSkuListVO> auctionGoodsVOS=new ArrayList<>(); + for (GoodsBrowseRecord auctionCollection:list){ + HomeGoodsSkuListVO auctionGoodsVO=new HomeGoodsSkuListVO(); + GoodsSku goodsSku = goodsSkuMapper.selectById(auctionCollection.getGoodsSkuId()); + auctionGoodsVO.setId(goodsSku.getId()); + auctionGoodsVO.setPrice(goodsSku.getPrice()); + auctionGoodsVO.setCoverPic(goodsSku.getCoverPic()); + auctionGoodsVO.setSkuName(goodsSku.getSkuName()); + auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity()); + } + page.setRecords(auctionGoodsVOS); + return PageDTO.of(page); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java index 1991a32..f2cdbce 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java @@ -1,5 +1,7 @@ package com.ruoyi.goods.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; @@ -15,10 +17,12 @@ import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.goods.controller.forepart.vo.GoodsGroupPurchaseInfoVO; import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO; import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery; import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO; import com.ruoyi.goods.domain.GoodsGroupPurchase; +import com.ruoyi.goods.domain.MemberGoodsCollection; import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper; import com.ruoyi.goods.service.IGoodsGroupPurchaseService; import com.ruoyi.goods.service.IGoodsSkuService; @@ -27,6 +31,7 @@ import com.ruoyi.system.api.constants.NotificationTypeConstant; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.Order; +import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; @@ -274,4 +279,33 @@ .eq(GoodsGroupPurchase::getId, id).update(); } } + + @Override + public GoodsGroupPurchaseInfoVO getGoodsGroupPurchaseInfo(HomeGoodsSkuDTO homeGoodsSkuDTO) { + GoodsSku byId = goodsSkuService.getById(homeGoodsSkuDTO.getGoodsSkuId()); + + LambdaQueryWrapper<GoodsGroupPurchase> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(GoodsGroupPurchase::getDelFlag,0); + wrapper3.eq(GoodsGroupPurchase::getGoodsSkuId,homeGoodsSkuDTO.getGoodsSkuId()); + GoodsGroupPurchase one = this.getOne(wrapper3); + GoodsGroupPurchaseInfoVO goodsGroupPurchaseInfoVO=new GoodsGroupPurchaseInfoVO(); + goodsGroupPurchaseInfoVO.setGoodsSkuId(one.getId()); + goodsGroupPurchaseInfoVO.setGoodsSkuName(byId.getSkuName()); + goodsGroupPurchaseInfoVO.setYears(String.valueOf(byId.getYears().getYear())); + goodsGroupPurchaseInfoVO.setCoverPic(byId.getCoverPic()); + goodsGroupPurchaseInfoVO.setPrice(byId.getPrice()); + goodsGroupPurchaseInfoVO.setShareTitle(byId.getShareTitle()); + goodsGroupPurchaseInfoVO.setSharePic(byId.getSharePic()); + goodsGroupPurchaseInfoVO.setGroupPurchasePrice(one.getGroupPurchasePrice()); + goodsGroupPurchaseInfoVO.setGroupSize(one.getGroupSize()); + goodsGroupPurchaseInfoVO.setLimitNumber(one.getLimitNumber()); + goodsGroupPurchaseInfoVO.setStartTime(one.getStartTime()); + goodsGroupPurchaseInfoVO.setEndTime(one.getEndTime()); + goodsGroupPurchaseInfoVO.setDescription(one.getDescription()); + goodsGroupPurchaseInfoVO.setStartStatus(one.getStartStatus()); + goodsGroupPurchaseInfoVO.setListingStatus(one.getListingStatus()); + goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus()); + + return goodsGroupPurchaseInfoVO; + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java index 04afe89..c04b4bb 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.enums.ListingStatusEnum; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; @@ -18,24 +19,29 @@ import com.ruoyi.goods.controller.management.vo.GoodsSkuVO; import com.ruoyi.goods.domain.GoodsGroupPurchase; import com.ruoyi.goods.domain.GoodsInfoTitleValue; +import com.ruoyi.goods.domain.MemberGoodsCollection; import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper; import com.ruoyi.goods.mapper.GoodsSeckillMapper; import com.ruoyi.goods.mapper.GoodsSkuMapper; import com.ruoyi.goods.service.IGoodsInfoTitleValueService; import com.ruoyi.goods.service.IGoodsSkuService; -import com.ruoyi.system.api.domain.GoodsSeckill; -import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.goods.service.IMemberGoodsCollectionService; +import com.ruoyi.system.api.domain.*; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuInfoVO; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; @@ -43,6 +49,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; /** * <p> @@ -61,6 +69,12 @@ private final GoodsSeckillMapper goodsSeckillMapper; private final GoodsGroupPurchaseMapper goodsGroupPurchaseMapper; private final RedissonClient redissonClient; + @Resource + private GoodsSkuClient goodsSkuClient; + + @Resource + private IMemberGoodsCollectionService iMemberGoodsCollectionService; + private static final ObjectMapper objectMapper = new ObjectMapper(); @@ -276,6 +290,7 @@ LambdaQueryWrapper<GoodsSku> wrapper3= Wrappers.lambdaQuery(); wrapper3.eq(GoodsSku::getDelFlag,0); + wrapper3.eq(GoodsSku::getListingStatus,0); wrapper3.like(GoodsSku::getSkuName,homeGoodsSkuDTO.getSkuName()); wrapper3.eq(GoodsSku::getSkuName,homeGoodsSkuDTO.getSkuName()); wrapper3.eq(GoodsSku::getBrandId,homeGoodsSkuDTO.getBrandId()); @@ -294,12 +309,98 @@ if (homeGoodsSkuDTO.getSort()==5){ wrapper3.orderByDesc(GoodsSku::getSoldQuantity); } + if(homeGoodsSkuDTO.getYear()==2){ + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDateTime newTime7 = now.minusYears(30); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + wrapper3.gt(GoodsSku::getYears,parseTime7); + } + if(homeGoodsSkuDTO.getYear()==3){ + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDateTime newTime7 = now.minusYears(30); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + + LocalDateTime newTime15 = now.minusYears(15); + String formattedDate15 = newTime15.format(formatter); + LocalDateTime parseTime15= LocalDateTime.parse(formattedDate15, formatter); + wrapper3.gt(GoodsSku::getYears, parseTime15) + .le(GoodsSku::getYears, parseTime7); + } + + if(homeGoodsSkuDTO.getYear()==3){ + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDateTime newTime7 = now.minusYears(5); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + + LocalDateTime newTime15 = now.minusYears(15); + String formattedDate15 = newTime15.format(formatter); + LocalDateTime parseTime15= LocalDateTime.parse(formattedDate15, formatter); + wrapper3.ge(GoodsSku::getYears, parseTime7) + .le(GoodsSku::getYears, parseTime15); + } + wrapper3.orderByAsc(GoodsSku::getSortNum); Page<GoodsSku> page1 = this.page(page, wrapper3); PageDTO<HomeGoodsSkuListVO> articleCommentsVOPageDTO = PageDTO.of(page1, HomeGoodsSkuListVO.class); return articleCommentsVOPageDTO; } + @Override + public HomeGoodsSkuInfoVO getHomeGoodsSkuInfo(HomeGoodsSkuDTO homeGoodsSkuDTO) { + GoodsSku byId = this.getById(homeGoodsSkuDTO.getGoodsSkuId()); + HomeGoodsSkuInfoVO homeGoodsSkuInfoVO=new HomeGoodsSkuInfoVO(); + homeGoodsSkuInfoVO.setId(byId.getId()); + homeGoodsSkuInfoVO.setSkuName(byId.getSkuName()); + homeGoodsSkuInfoVO.setYears(String.valueOf(byId.getYears().getYear())); + GoodsBrand data = goodsSkuClient.getBrandOne(byId.getBrandId(), SecurityConstants.INNER).getData(); + GoodsCategory data1 = goodsSkuClient.getCategoryOne(byId.getCategoryId(), SecurityConstants.INNER).getData(); + GoodsSeries data2 = goodsSkuClient.getSeriesOne(byId.getSeriesId(), SecurityConstants.INNER).getData(); + GoodsFlavorType data3 = goodsSkuClient.getFlavorTypeOne(byId.getFlavorTypeId(), SecurityConstants.INNER).getData(); + homeGoodsSkuInfoVO.setBrand(data.getBrandName()); + homeGoodsSkuInfoVO.setCategory(data1.getCategoryName()); + homeGoodsSkuInfoVO.setSeries(data2.getSeriesName()); + homeGoodsSkuInfoVO.setFlavorType(data3.getFlavorTypeName()); + homeGoodsSkuInfoVO.setPrice(byId.getPrice()); + homeGoodsSkuInfoVO.setSoldQuantity(byId.getSoldQuantity()); + homeGoodsSkuInfoVO.setUnit(byId.getUnit()); + homeGoodsSkuInfoVO.setSpec(byId.getSpec()); + homeGoodsSkuInfoVO.setSpecUnit(byId.getSpecUnit()); + homeGoodsSkuInfoVO.setCoverPic(byId.getCoverPic()); + homeGoodsSkuInfoVO.setAlbum(byId.getAlbum()); + homeGoodsSkuInfoVO.setDescription(byId.getDescription()); + homeGoodsSkuInfoVO.setDetail(byId.getDetail()); + homeGoodsSkuInfoVO.setShareTitle(byId.getShareTitle()); + homeGoodsSkuInfoVO.setSharePic(byId.getSharePic()); + + LambdaQueryWrapper<MemberGoodsCollection> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(MemberGoodsCollection::getDelFlag,0); + wrapper3.eq(MemberGoodsCollection::getMemberId,homeGoodsSkuDTO.getMemberId()); + wrapper3.eq(MemberGoodsCollection::getTargetId,homeGoodsSkuDTO.getGoodsSkuId()); + List<MemberGoodsCollection> list = iMemberGoodsCollectionService.list(wrapper3); + if (list.size()>0){ + homeGoodsSkuInfoVO.setIsCollection(2); + }else{ + homeGoodsSkuInfoVO.setIsCollection(1); + } + LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper1 =new LambdaQueryWrapper<>(); + queryWrapper1.eq(GoodsGroupPurchase::getListingStatus, + ListingStatusEnum.ON_SHELVES) + .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId()); + GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectOne(queryWrapper1); + if (goodsGroupPurchase!=null){ + homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(2); + }else{ + homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(1); + } + return homeGoodsSkuInfoVO; + } + private boolean updateGoodsStock(GoodsSku skus, Integer auctionStock) { return this.lambdaUpdate() .set(skus.getStock() + auctionStock > 0, GoodsSku::getStock, diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java index 93d95ed..48bb229 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java @@ -1,10 +1,26 @@ package com.ruoyi.goods.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.domain.MemberGoodsCollection; +import com.ruoyi.goods.mapper.GoodsSkuMapper; import com.ruoyi.goods.mapper.MemberGoodsCollectionMapper; import com.ruoyi.goods.service.IMemberGoodsCollectionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.api.domain.AuctionGoods; +import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO; +import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; +import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * <p> @@ -17,4 +33,62 @@ @Service public class MemberGoodsCollectionServiceImpl extends ServiceImpl<MemberGoodsCollectionMapper, MemberGoodsCollection> implements IMemberGoodsCollectionService { + + @Resource + private GoodsSkuMapper goodsSkuMapper; + + @Override + public void saveGoodsCollection(AuctionCollectionDTO auctionCollectionDTO) { + if (auctionCollectionDTO.getMemberId()!=null) { + throw new ServiceException("用户ID不能为空"); + } + if (auctionCollectionDTO.getState()!=null) { + throw new ServiceException("类型不能为空"); + } + + LambdaQueryWrapper< MemberGoodsCollection> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(MemberGoodsCollection::getMemberId,auctionCollectionDTO.getMemberId()); + wrapper.eq(MemberGoodsCollection::getTargetId,auctionCollectionDTO.getGoodsSkuId()); + if (auctionCollectionDTO.getState()==1){ + List<MemberGoodsCollection> list = this.list(wrapper); + if (list.size()==0){ + MemberGoodsCollection m =new MemberGoodsCollection(); + m.setMemberId(auctionCollectionDTO.getMemberId()); + m.setTargetId(auctionCollectionDTO.getGoodsSkuId()); + this.save(m); + } + }else{ + List<MemberGoodsCollection> list = this.list(wrapper); + if (list.size()>0){ + for (MemberGoodsCollection memberArticleCollection:list){ + this.removeById(memberArticleCollection); + } + } + + } + } + + @Override + public PageDTO<HomeGoodsSkuListVO> getGoodsCollectionList(AuctionCollectionDTO auctionCollectionDTO) { + Page<HomeGoodsSkuListVO> page = new Page<>(); + page.setSize(auctionCollectionDTO.getPageSize()); + page.setCurrent(auctionCollectionDTO.getPageCurr()); + LambdaQueryWrapper< MemberGoodsCollection> wrapper= Wrappers.lambdaQuery(); + wrapper.eq(MemberGoodsCollection::getMemberId,auctionCollectionDTO.getMemberId()); + List<MemberGoodsCollection> list = this.list(wrapper); + + List<HomeGoodsSkuListVO> auctionGoodsVOS=new ArrayList<>(); + for (MemberGoodsCollection auctionCollection:list){ + HomeGoodsSkuListVO auctionGoodsVO=new HomeGoodsSkuListVO(); + GoodsSku goodsSku = goodsSkuMapper.selectById(auctionCollection.getTargetId()); + auctionGoodsVO.setId(goodsSku.getId()); + auctionGoodsVO.setPrice(goodsSku.getPrice()); + auctionGoodsVO.setCoverPic(goodsSku.getCoverPic()); + auctionGoodsVO.setSkuName(goodsSku.getSkuName()); + auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity()); + auctionGoodsVO.setIsCollection(2); + } + page.setRecords(auctionGoodsVOS); + return PageDTO.of(page); + } } -- Gitblit v1.7.1