ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/HomeGoodsSkuDTO.java
New file @@ -0,0 +1,32 @@ package com.ruoyi.system.api.domain.dto; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class HomeGoodsSkuDTO extends BasePage { @ApiModelProperty(value = "商品名称") private String skuName; @ApiModelProperty(value = "商品分类id") private Long categoryId; @ApiModelProperty(value = "商品系列id") private Long seriesId; @ApiModelProperty(value = "商品品牌id") private Long brandId; @ApiModelProperty(value = "商品香型id") private Long flavorTypeId; @ApiModelProperty(value = "排序方式1.全部2.价格正序3.价格倒序4.销量正序5.销量倒序") private Integer sort; @ApiModelProperty(value = "排序方式1.全部2.30+ 3.30-15 4.15-5") private Integer year; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AuctionGoodsListVO.java
@@ -44,4 +44,7 @@ @ApiModelProperty(value = "是中标 1未中标,2中标") private Integer isStatus; @ApiModelProperty(value = "商品年份") private String years; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/HomeGoodsSkuListVO.java
New file @@ -0,0 +1,32 @@ 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 HomeGoodsSkuListVO { @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 BigDecimal price; @ApiModelProperty(value = "已售数量") private Integer soldQuantity; @ApiModelProperty(value = "封面图") private String coverPic; } ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/forepart/ForepartArticleCommentsController.java
@@ -30,7 +30,7 @@ @PostMapping("/saveMemberArticleComments") @ResponseBody @ApiOperation(value = "用户端-添加或者修改用户评论/回复") public R<T> saveMemberArticleComments(@RequestBody ArticleCommentsDTO articleCommentsDTO) { public R saveMemberArticleComments(@RequestBody ArticleCommentsDTO articleCommentsDTO) { articleCommentsService.saveMemberArticleComments(articleCommentsDTO); return R.ok(); } @@ -38,7 +38,7 @@ @PostMapping("/delMemberArticleComments") @ResponseBody @ApiOperation(value = "用户端-删除用户评论/回复") public R<T> delMemberArticleComments(@RequestBody ArticleCommentsDTO articleCommentsDTO) { public R delMemberArticleComments(@RequestBody ArticleCommentsDTO articleCommentsDTO) { articleCommentsService.delMemberArticleComments(articleCommentsDTO); return R.ok(); } ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/forepart/ForepartArticleController.java
@@ -47,7 +47,7 @@ @PostMapping("/saveMemberArticle") @ResponseBody @ApiOperation(value = "用户端-添加或者修改用户资讯") public R<T> saveMemberArticle(@RequestBody ArticleDTO articleDTO) { public R saveMemberArticle(@RequestBody ArticleDTO articleDTO) { iArticleService.saveMemberArticle(articleDTO); return R.ok(); } @@ -55,7 +55,7 @@ @PostMapping("/delMemberArticle") @ResponseBody @ApiOperation(value = "用户端-删除用户资讯") public R<T> delMemberArticle(@RequestBody ArticleDTO articleDTO) { public R delMemberArticle(@RequestBody ArticleDTO articleDTO) { iArticleService.delMemberArticle(articleDTO); return R.ok(); } @@ -79,7 +79,7 @@ @PostMapping("/getreport") @ResponseBody @ApiOperation(value = "用户端-用户举报举报文章") public R<T> getReport(ArticleDTO articleDTO) { public R getReport(ArticleDTO articleDTO) { iArticleService.getReport(articleDTO); return R.ok(); } ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/forepart/ForepartMemberArticleCollectionController.java
@@ -33,7 +33,7 @@ @PostMapping("/saveMemberArticleCollection") @ResponseBody @ApiOperation(value = "用户端-文章收藏和取消收藏") public R<T> saveMemberArticleCollection( @RequestBody MemberArticleCollectionDTO memberArticleCollectionDTO) { public R saveMemberArticleCollection( @RequestBody MemberArticleCollectionDTO memberArticleCollectionDTO) { memberArticleCollectionService.saveMemberArticleCollection(memberArticleCollectionDTO); return R.ok(); } ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/forepart/ForepartMemberLikeController.java
@@ -29,7 +29,7 @@ @PostMapping("/saveMemberLike") @ResponseBody @ApiOperation(value = "用户端-文章,评论和回复 点赞和取消点赞") public R<T> saveMemberLike(@RequestBody MemberLikeDTO memberLikeDTO) { public R saveMemberLike(@RequestBody MemberLikeDTO memberLikeDTO) { memberLikeService.saveMemberLike(memberLikeDTO); return R.ok(); } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/AuctionSalesroomGoodsInfoVO.java
@@ -84,4 +84,7 @@ @ApiModelProperty(value = "规格单位") private String specUnit; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/vo/ForepartAuctionSalesroomGoodsVO.java
@@ -62,6 +62,7 @@ @ApiModelProperty(value = "规格单位") private String specUnit; @ApiModelProperty(value = "商品年份") private String years; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java
@@ -117,6 +117,7 @@ auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit()); auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName()); auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic()); auctionGoodsVO.setYears(String.valueOf(goodsSkuOne.getYears())); auctionGoodsVOS.add(auctionGoodsVO); } page.setRecords(auctionGoodsVOS); ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -368,6 +368,7 @@ auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit()); auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName()); auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic()); auctionGoodsVO.setYears(String.valueOf(goodsSkuOne.getYears())); auctionGoodsVOS.add(auctionGoodsVO); } @@ -389,7 +390,7 @@ auctionGoodsinfoVO.setEndTime(byId.getEndTime()); auctionGoodsinfoVO.setUnit(goodsSkuOne.getUnit()); auctionGoodsinfoVO.setDescription(goodsSkuOne.getDescription()); auctionGoodsinfoVO.setYears(goodsSkuOne.getYears()); auctionGoodsinfoVO.setYears(String.valueOf(goodsSkuOne.getYears())); GoodsBrand data = goodsSkuClient.getBrandOne(goodsSkuOne.getBrandId(), SecurityConstants.INNER).getData(); GoodsCategory data1 = goodsSkuClient.getCategoryOne(goodsSkuOne.getCategoryId(), SecurityConstants.INNER).getData(); GoodsSeries data2 = goodsSkuClient.getSeriesOne(goodsSkuOne.getSeriesId(), SecurityConstants.INNER).getData(); @@ -406,6 +407,7 @@ auctionGoodsinfoVO.setSpecUnit(goodsSkuOne.getSpecUnit()); auctionGoodsinfoVO.setShareTitle(goodsSkuOne.getShareTitle()); auctionGoodsinfoVO.setSpecUnit(goodsSkuOne.getSpecUnit()); auctionGoodsinfoVO.setYears(String.valueOf(goodsSkuOne.getYears())); LambdaQueryWrapper<AuctionBidRecord> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionType,1); ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java
@@ -454,7 +454,7 @@ AuctionSalesroomGoodsInfoVO.setStartTime(byId1.getStartTime()); AuctionSalesroomGoodsInfoVO.setUnit(goodsSku.getUnit()); AuctionSalesroomGoodsInfoVO.setDescription(goodsSku.getDescription()); AuctionSalesroomGoodsInfoVO.setYears(goodsSku.getYears()); AuctionSalesroomGoodsInfoVO.setYears(String.valueOf(goodsSku.getYears())); GoodsBrand data = goodsSkuClient.getBrandOne(goodsSku.getBrandId(), SecurityConstants.INNER).getData(); GoodsCategory data1 = goodsSkuClient.getCategoryOne(goodsSku.getCategoryId(), SecurityConstants.INNER).getData(); GoodsSeries data2 = goodsSkuClient.getSeriesOne(goodsSku.getSeriesId(), SecurityConstants.INNER).getData(); ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -381,7 +381,7 @@ forepartAuctionSalesroomGoodsVO.setStartingPrice(salesroomGoods.getStartingPrice()); forepartAuctionSalesroomGoodsVO.setSalesroomStock(salesroomGoods.getSalesroomStock()); forepartAuctionSalesroomGoodsVO.setGoodsSkustatus(salesroomGoods.getStatus().getCode()); forepartAuctionSalesroomGoodsVO.setYears(String.valueOf(goodsSku.getYears())); LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsBrandController.java
New file @@ -0,0 +1,42 @@ 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.goods.service.IGoodsBrandService; import com.ruoyi.system.api.domain.GoodsBrand; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 品牌表 前端控制器 * </p> * * @author mitao * @since 2024-05-16 */ @RestController @RequestMapping("/forepart/goods-brand") @RequiredArgsConstructor public class ForepartGoodsBrandController { @Resource private IGoodsBrandService iGoodsBrandService; @PostMapping("/getGoodsSeriesList") @ResponseBody @ApiOperation(value = "用户端-商品筛选获取品牌") public R<List<GoodsBrand>> getGoodsSeriesList() { LambdaQueryWrapper<GoodsBrand> wrapper= Wrappers.lambdaQuery(); wrapper.eq(GoodsBrand::getDelFlag,0); List<GoodsBrand> list = iGoodsBrandService.list(wrapper); return R.ok(list); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsCategoryController.java
New file @@ -0,0 +1,42 @@ 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.security.annotation.InnerAuth; import com.ruoyi.goods.service.IGoodsCategoryService; import com.ruoyi.system.api.domain.GoodsCategory; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 商品分类表 前端控制器 * </p> * * @author mitao * @since 2024-05-16 */ @RestController @RequestMapping("/forepart/goods-category") public class ForepartGoodsCategoryController { @Resource private IGoodsCategoryService iGoodsCategoryService; @InnerAuth @PostMapping("/getCategoryList") @ResponseBody @ApiOperation(value = "用户端-商品筛选获取商品分类") public R<List<GoodsCategory>> getCategoryList() { LambdaQueryWrapper<GoodsCategory> wrapper= Wrappers.lambdaQuery(); wrapper.eq(GoodsCategory::getDelFlag,0); List<GoodsCategory> goodsCategoryOne=iGoodsCategoryService.list(wrapper); return R.ok(goodsCategoryOne); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsFlavorTypeController.java
New file @@ -0,0 +1,41 @@ 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.security.annotation.InnerAuth; import com.ruoyi.goods.service.IGoodsFlavorTypeService; import com.ruoyi.system.api.domain.GoodsCategory; import com.ruoyi.system.api.domain.GoodsFlavorType; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 香型表 前端控制器 * </p> * * @author mitao * @since 2024-05-16 */ @RestController @RequestMapping("/forepart/goods-flavor-type") public class ForepartGoodsFlavorTypeController { @Resource private IGoodsFlavorTypeService iGoodsFlavorTypeService; @PostMapping("/getFlavorTypeList") @ResponseBody @ApiOperation(value = "用户端-商品筛选获取香型") public R<List<GoodsFlavorType>> getFlavorTypeList() { LambdaQueryWrapper<GoodsFlavorType> wrapper= Wrappers.lambdaQuery(); wrapper.eq(GoodsFlavorType::getDelFlag,0); List<GoodsFlavorType> list = iGoodsFlavorTypeService.list(wrapper); return R.ok(list); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSeriesController.java
New file @@ -0,0 +1,42 @@ 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.security.annotation.InnerAuth; import com.ruoyi.goods.service.IGoodsSeriesService; import com.ruoyi.system.api.domain.GoodsFlavorType; import com.ruoyi.system.api.domain.GoodsSeries; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 系列表 前端控制器 * </p> * * @author mitao * @since 2024-05-16 */ @RestController @RequestMapping("/forepart/goods-series") public class ForepartGoodsSeriesController { @Resource private IGoodsSeriesService iGoodsSeriesService; @PostMapping("/getGoodsSeriesList") @ResponseBody @ApiOperation(value = "用户端-商品筛选获取系列") public R<List<GoodsSeries>> getGoodsSeriesList() { LambdaQueryWrapper<GoodsSeries> wrapper= Wrappers.lambdaQuery(); wrapper.eq(GoodsSeries::getDelFlag,0); List<GoodsSeries> list = iGoodsSeriesService.list(wrapper); return R.ok(list); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/forepart/ForepartGoodsSkuController.java
New file @@ -0,0 +1,45 @@ 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 io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 商品表 前端控制器 * </p> * * @author mitao * @since 2024-05-16 */ @RestController @RequestMapping("/forepart/goods-sku") @Api(value = "用户端-首页商品接口", tags = "用户端-首页商品接口", description = "用户端-首页商品接口") public class ForepartGoodsSkuController { @Resource private IGoodsSkuService iGoodsSkuService; @RequestMapping("/getHomeGoodsSkuVOList") @ResponseBody @ApiOperation(value = "用户端-普通拍卖商品列表") public R<PageDTO<HomeGoodsSkuListVO>> getHomeGoodsSkuVOList(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO) { return R.ok(iGoodsSkuService.getHomeGoodsSkuVOList(homeGoodsSkuDTO)); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java
@@ -8,7 +8,11 @@ import com.ruoyi.goods.controller.management.vo.GoodsSkuVO; import com.ruoyi.system.api.domain.GoodsSku; 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 com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; /** @@ -59,4 +63,6 @@ * @param goodsStockUpdDTOS 退货库存数据传输对象 */ void updGoodsStock(List<GoodsStockUpdDTO> goodsStockUpdDTOS); PageDTO<HomeGoodsSkuListVO> getHomeGoodsSkuVOList(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -1,5 +1,6 @@ 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; @@ -25,12 +26,16 @@ import com.ruoyi.system.api.domain.GoodsSeckill; import com.ruoyi.system.api.domain.GoodsSku; 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.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 lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; @@ -263,6 +268,38 @@ } @Override public PageDTO<HomeGoodsSkuListVO> getHomeGoodsSkuVOList(HomeGoodsSkuDTO homeGoodsSkuDTO) { Page<GoodsSku> page = new Page<>(); page.setSize(homeGoodsSkuDTO.getPageSize()); page.setCurrent(homeGoodsSkuDTO.getPageCurr()); LambdaQueryWrapper<GoodsSku> wrapper3= Wrappers.lambdaQuery(); wrapper3.eq(GoodsSku::getDelFlag,0); wrapper3.like(GoodsSku::getSkuName,homeGoodsSkuDTO.getSkuName()); wrapper3.eq(GoodsSku::getSkuName,homeGoodsSkuDTO.getSkuName()); wrapper3.eq(GoodsSku::getBrandId,homeGoodsSkuDTO.getBrandId()); wrapper3.eq(GoodsSku::getCategoryId,homeGoodsSkuDTO.getCategoryId()); wrapper3.eq(GoodsSku::getSeriesId,homeGoodsSkuDTO.getSeriesId()); wrapper3.eq(GoodsSku::getFlavorTypeId,homeGoodsSkuDTO.getFlavorTypeId()); if (homeGoodsSkuDTO.getSort()==2){ wrapper3.orderByAsc(GoodsSku::getPrice); } if (homeGoodsSkuDTO.getSort()==3){ wrapper3.orderByDesc(GoodsSku::getPrice); } if (homeGoodsSkuDTO.getSort()==4){ wrapper3.orderByAsc(GoodsSku::getSoldQuantity); } if (homeGoodsSkuDTO.getSort()==5){ wrapper3.orderByDesc(GoodsSku::getSoldQuantity); } Page<GoodsSku> page1 = this.page(page, wrapper3); PageDTO<HomeGoodsSkuListVO> articleCommentsVOPageDTO = PageDTO.of(page1, HomeGoodsSkuListVO.class); return articleCommentsVOPageDTO; } private boolean updateGoodsStock(GoodsSku skus, Integer auctionStock) { return this.lambdaUpdate() .set(skus.getStock() + auctionStock > 0, GoodsSku::getStock,