diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index 79e0b141f..92aea96b2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -1,29 +1,37 @@ package com.ruoyi.web.controller.system; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.utils.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.core.controller.XktBaseController; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.web.controller.xkt.vo.store.StoreResVO; +import com.ruoyi.web.controller.xkt.vo.userIndex.UserOverallResVO; +import com.ruoyi.xkt.service.IStoreService; +import com.ruoyi.xkt.service.IUserIndexService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - * 首页 + * 电商卖家首页 * * @author ruoyi */ +@Api(tags = "电商卖家首页") @RestController -public class SysIndexController { - /** - * 系统基础配置 - */ - @Autowired - private RuoYiConfig ruoyiConfig; +@RequiredArgsConstructor +@RequestMapping("/rest/v1/sys/user/index") +public class SysIndexController extends XktBaseController { - /** - * 访问首页,提示语 - */ - @RequestMapping("/") - public String index() { - return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); + final IUserIndexService userIndexService; + + @ApiOperation(value = "获取用户数据总览", httpMethod = "GET", response = R.class) + @GetMapping(value = "/overall") + public R getOverall() { + return R.ok(BeanUtil.toBean(userIndexService.getOverall(), UserOverallResVO.class)); } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java index b3522c94b..00ae2b2b2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java @@ -34,10 +34,6 @@ public class StoreController extends XktBaseController { final IStoreService storeService; - // TODO 有一个权重,每个档口原始值都相同 - - - @Log(title = "新增档口", businessType = BusinessType.UPDATE) @PostMapping public R create(@Validated @RequestBody StoreCreateVO createVO) { @@ -73,8 +69,14 @@ public class StoreController extends XktBaseController { @ApiOperation(value = "获取档口详细信息", httpMethod = "GET", response = R.class) @GetMapping(value = "/{storeId}") - public R getInfo(@PathVariable("storeId") Long storeId) { - return R.ok(BeanUtil.toBean(storeService.getInfo(storeId), StoreBasicResVO.class)); + public R getInfo(@PathVariable("storeId") Long storeId) { + return R.ok(BeanUtil.toBean(storeService.getInfo(storeId), StoreResVO.class)); + } + + @ApiOperation(value = "PC 商城首页 获取档口基础信息", httpMethod = "GET", response = R.class) + @GetMapping(value = "/simple/{storeId}") + public R getSimpleInfo(@PathVariable("storeId") Long storeId) { + return R.ok(BeanUtil.toBean(storeService.getSimpleInfo(storeId), StoreSimpleResVO.class)); } @ApiOperation(value = "档口审核是获取档口基本信息", httpMethod = "GET", response = R.class) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreHomepageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreHomepageController.java index 1eb79ca8d..a4190a23e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreHomepageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreHomepageController.java @@ -8,7 +8,9 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.web.controller.xkt.vo.storeHomepage.StoreHomeDecorationVO; import com.ruoyi.web.controller.xkt.vo.storeHomepage.StoreHomeProdResVO; import com.ruoyi.web.controller.xkt.vo.storeHomepage.StoreHomeResVO; +import com.ruoyi.web.controller.xkt.vo.storeHomepage.StoreRecommendResVO; import com.ruoyi.xkt.dto.storeHomepage.StoreHomeDecorationDTO; +import com.ruoyi.xkt.dto.storeHomepage.StoreRecommendResDTO; import com.ruoyi.xkt.service.IStoreHomepageService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -17,6 +19,8 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 档口首页装修Controller * @@ -31,10 +35,6 @@ public class StoreHomepageController extends XktBaseController { final IStoreHomepageService storeHomeService; - /** - * 新增档口装修数据 - */ -// // @PreAuthorize("@ss.hasPermi('system:homepage:add')") @ApiOperation(value = "新增档口装修数据", httpMethod = "POST", response = R.class) @Log(title = "新增档口装修数据", businessType = BusinessType.INSERT) @PostMapping("/decoration/{storeId}/{templateNum}") @@ -43,20 +43,12 @@ public class StoreHomepageController extends XktBaseController { return R.ok(storeHomeService.insert(storeId, templateNum, BeanUtil.toBean(decorationVO, StoreHomeDecorationDTO.class))); } - /** - * 查询档口装修数据 - */ -// // @PreAuthorize("@ss.hasPermi('system:sale:query')") @ApiOperation(value = "查询档口装修数据", httpMethod = "GET", response = R.class) @GetMapping(value = "/decoration/{storeId}") public R getDecorationInfo(@PathVariable("storeId") Long storeId) { return R.ok(BeanUtil.toBean(storeHomeService.selectByStoreId(storeId), StoreHomeDecorationVO.class)); } - /** - * 修改档口装修数据 - */ - // @PreAuthorize("@ss.hasPermi('system:homepage:edit')") @ApiOperation(value = "修改档口装修数据", httpMethod = "PUT", response = R.class) @Log(title = "修改档口装修数据", businessType = BusinessType.UPDATE) @PutMapping("/decoration/{storeId}/{templateNum}") @@ -65,24 +57,30 @@ public class StoreHomepageController extends XktBaseController { return R.ok(storeHomeService.updateStoreHomepage(storeId, templateNum, BeanUtil.toBean(homepageVO, StoreHomeDecorationDTO.class))); } + @ApiOperation(value = "获取档口推荐商品列表", httpMethod = "GET", response = R.class) + @GetMapping(value = "/recommend/{storeId}") + public R> getStoreRecommendList(@PathVariable("storeId") Long storeId) { + return R.ok(BeanUtil.copyToList(storeHomeService.getStoreRecommendList(storeId), StoreRecommendResVO.class)); + } + /** * 查询档口首页 */ // @PreAuthorize("@ss.hasPermi('system:sale:query')") - @ApiOperation(value = "查询档口首页", httpMethod = "GET", response = R.class) + /* @ApiOperation(value = "查询档口首页", httpMethod = "GET", response = R.class) @GetMapping(value = "/{storeId}") public R getHomepageInfo(@PathVariable("storeId") Long storeId) { return R.ok(BeanUtil.toBean(storeHomeService.getHomepageInfo(storeId), StoreHomeResVO.class)); - } + }*/ /** * 查询档口商品详情 */ // @PreAuthorize("@ss.hasPermi('system:sale:query')") - @ApiOperation(value = "查询档口商品详情", httpMethod = "GET", response = R.class) + /*@ApiOperation(value = "查询档口商品详情", httpMethod = "GET", response = R.class) @GetMapping(value = "/store-prod/{storeId}/{storeProdId}") public R getStoreProdInfo(@PathVariable("storeId") Long storeId, @PathVariable("storeProdId") Long storeProdId) { return R.ok(BeanUtil.toBean(storeHomeService.getStoreProdInfo(storeId, storeProdId), StoreHomeProdResVO.class)); - } + }*/ } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java index 1b5d17bb1..fca0cbec1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java @@ -64,7 +64,6 @@ public class StoreProductController extends XktBaseController { return R.ok(BeanUtil.copyToList(storeProdService.fuzzyQueryResPicList(storeId, prodArtNum), StoreProdFuzzyResPicVO.class)); } - /** * 查询档口商品列表 */ @@ -83,6 +82,15 @@ public class StoreProductController extends XktBaseController { return R.ok(BeanUtil.toBean(storeProdService.selectStoreProductByStoreProdId(storeProdId), StoreProdResVO.class)); } + /** + * PC获取档口商品详细信息 + */ + @ApiOperation(value = "PC获取档口商品详细信息", httpMethod = "GET", response = R.class) + @GetMapping(value = "/pc/detail/{storeProdId}") + public R getPCInfo(@PathVariable("storeProdId") Long storeProdId) { + return R.ok(BeanUtil.toBean(storeProdService.getPCInfo(storeProdId), StoreProdPCResVO.class)); + } + /** * APP获取档口商品详细信息 */ @@ -92,7 +100,6 @@ public class StoreProductController extends XktBaseController { return R.ok(BeanUtil.toBean(storeProdService.getAppInfo(storeProdId), StoreProdAppResVO.class)); } - /** * 获取档口商品颜色及sku等 */ @@ -142,6 +149,15 @@ public class StoreProductController extends XktBaseController { return R.ok(BeanUtil.toBean(storeProdService.getStoreProductPicSpace(BeanUtil.toBean(picSpaceVO, StoreProdPicSpaceDTO.class)), StoreProdPicSpaceResVO.class)); } + /** + * 获取商品各个状态数量 + */ + @ApiOperation(value = "获取商品各个状态数量", httpMethod = "GET", response = R.class) + @GetMapping(value = "/status/num/{storeId}") + public R getStatusNum(@PathVariable Long storeId) { + return R.ok(BeanUtil.toBean(storeProdService.getStatusNum(storeId), StoreProdStatusCountResVO.class)); + } + /** * 导出档口商品列表 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserBrowsingHistoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserBrowsingHistoryController.java index aa94733c8..1ece268b3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserBrowsingHistoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserBrowsingHistoryController.java @@ -1,91 +1,24 @@ package com.ruoyi.web.controller.xkt; -import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.XktBaseController; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.xkt.domain.UserBrowsingHistory; import com.ruoyi.xkt.service.IUserBrowsingHistoryService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.util.List; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** - * 用户浏览历史Controller + * 用户浏览足迹Controller * * @author ruoyi * @date 2025-03-26 */ +@Api(tags = "用户浏览足迹") @RestController -@RequestMapping("/rest/v1/user-brow-hises") +@RequiredArgsConstructor +@RequestMapping("/rest/v1/user-brow-his") public class UserBrowsingHistoryController extends XktBaseController { - @Autowired - private IUserBrowsingHistoryService userBrowsingHistoryService; - /** - * 查询用户浏览历史列表 - */ - // @PreAuthorize("@ss.hasPermi('system:history:list')") - @GetMapping("/list") - public TableDataInfo list(UserBrowsingHistory userBrowsingHistory) { - startPage(); - List list = userBrowsingHistoryService.selectUserBrowsingHistoryList(userBrowsingHistory); - return getDataTable(list); - } + final IUserBrowsingHistoryService userBrowHisService; - /** - * 导出用户浏览历史列表 - */ - // @PreAuthorize("@ss.hasPermi('system:history:export')") - @Log(title = "用户浏览历史", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, UserBrowsingHistory userBrowsingHistory) { - List list = userBrowsingHistoryService.selectUserBrowsingHistoryList(userBrowsingHistory); - ExcelUtil util = new ExcelUtil(UserBrowsingHistory.class); - util.exportExcel(response, list, "用户浏览历史数据"); - } - - /** - * 获取用户浏览历史详细信息 - */ - // @PreAuthorize("@ss.hasPermi('system:history:query')") - @GetMapping(value = "/{userBrowHisId}") - public R getInfo(@PathVariable("userBrowHisId") Long userBrowHisId) { - return success(userBrowsingHistoryService.selectUserBrowsingHistoryByUserBrowHisId(userBrowHisId)); - } - - /** - * 新增用户浏览历史 - */ - // @PreAuthorize("@ss.hasPermi('system:history:add')") - @Log(title = "用户浏览历史", businessType = BusinessType.INSERT) - @PostMapping - public R add(@RequestBody UserBrowsingHistory userBrowsingHistory) { - return success(userBrowsingHistoryService.insertUserBrowsingHistory(userBrowsingHistory)); - } - - /** - * 修改用户浏览历史 - */ - // @PreAuthorize("@ss.hasPermi('system:history:edit')") - @Log(title = "用户浏览历史", businessType = BusinessType.UPDATE) - @PutMapping - public R edit(@RequestBody UserBrowsingHistory userBrowsingHistory) { - return success(userBrowsingHistoryService.updateUserBrowsingHistory(userBrowsingHistory)); - } - - /** - * 删除用户浏览历史 - */ - // @PreAuthorize("@ss.hasPermi('system:history:remove')") - @Log(title = "用户浏览历史", businessType = BusinessType.DELETE) - @DeleteMapping("/{userBrowHisIds}") - public R remove(@PathVariable Long[] userBrowHisIds) { - return success(userBrowsingHistoryService.deleteUserBrowsingHistoryByUserBrowHisIds(userBrowHisIds)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java index 8f8f5da10..db4e3a7b7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java @@ -17,7 +17,6 @@ import com.ruoyi.xkt.service.IUserSubscriptionsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -33,39 +32,27 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("/rest/v1/user-subs") public class UserSubscriptionsController extends XktBaseController { - final IUserSubscriptionsService userSubscService; + final IUserSubscriptionsService userSubService; - /** - * 新增用户关注档口 - */ - // @PreAuthorize("@ss.hasPermi('system:subscriptions:add')") @ApiOperation(value = "新增用户关注档口", httpMethod = "POST", response = R.class) @Log(title = "新增用户关注档口", businessType = BusinessType.INSERT) @PostMapping public R create(@Validated @RequestBody UserSubscVO subscVO) { - return R.ok(userSubscService.create(BeanUtil.toBean(subscVO, UserSubscDTO.class))); + return R.ok(userSubService.create(BeanUtil.toBean(subscVO, UserSubscDTO.class))); } - /** - * 用户关注档口列表 - */ - // @PreAuthorize("@ss.hasPermi('system:favorites:list')") @ApiOperation(value = "用户关注档口列表", httpMethod = "POST", response = R.class) @PostMapping("/page") public R> page(@Validated @RequestBody UserSubscPageVO pageVO) { - return R.ok(userSubscService.page(BeanUtil.toBean(pageVO, UserSubscPageDTO.class))); + return R.ok(userSubService.page(BeanUtil.toBean(pageVO, UserSubscPageDTO.class))); } - /** - * 用户取消关注档口 - */ - // @PreAuthorize("@ss.hasPermi('system:subscriptions:remove')") @ApiOperation(value = "用户取消关注档口", httpMethod = "DELETE", response = R.class) @Log(title = "用户取消关注档口", businessType = BusinessType.DELETE) @DeleteMapping("/batch") public R remove(@Validated @RequestBody UserSubscDeleteVO deleteVO) { - return R.ok(userSubscService.delete(BeanUtil.toBean(deleteVO, UserSubscDeleteDTO.class))); + return R.ok(userSubService.delete(BeanUtil.toBean(deleteVO, UserSubscDeleteDTO.class))); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java index 927b9e4b3..f07385427 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java @@ -59,8 +59,6 @@ public class WebsiteController extends XktBaseController { // TODO 查询先按照storeWeight倒排,之后再按照各种 权重 进行排序 - - final IWebsitePCService websitePCService; final IWebsiteAPPService websiteAPPService; @ApiOperation(value = "PC 首页 为你推荐", httpMethod = "POST", response = R.class) @@ -81,7 +79,6 @@ public class WebsiteController extends XktBaseController { return R.ok(websitePCService.psSearchPage(BeanUtil.toBean(searchVO, IndexSearchDTO.class))); } - @ApiOperation(value = "PC 首页 顶部横向轮播图", httpMethod = "GET", response = R.class) @GetMapping("/pc/index/top/left") public R> getPcIndexTopLeftBanner() { @@ -201,7 +198,6 @@ public class WebsiteController extends XktBaseController { return R.ok(BeanUtil.copyToList(websitePCService.getPcDownloadList(), PCDownloadVO.class)); } - @ApiOperation(value = "APP 首页 精选热卖列表", httpMethod = "POST", response = R.class) @PostMapping("/app/index/hot-sale") public R> appIndexHotSalePage(@Validated @RequestBody IndexSearchVO searchVO) throws IOException { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundStoreCreateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundStoreCreateVO.java index 72c3516bf..ccdb33d39 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundStoreCreateVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundStoreCreateVO.java @@ -47,6 +47,6 @@ public class AdRoundStoreCreateVO { private String symbol; @NotBlank(message = "交易密码不能为空!") @ApiModelProperty(value = "交易密码") - private String transactionPassword; + private String transactionPassword; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/category/APPCateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/category/APPCateVO.java index 00356f8fd..6b556b528 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/category/APPCateVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/category/APPCateVO.java @@ -1,13 +1,10 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.app.category; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import java.math.BigDecimal; - /** * @author liujiang * @version v1.0 @@ -16,7 +13,6 @@ import java.math.BigDecimal; @ApiModel("APP分类页") @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class APPCateVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexHotSaleRightFixVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexHotSaleRightFixVO.java index 37443557f..edd7e58f1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexHotSaleRightFixVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexHotSaleRightFixVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.app.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,6 @@ import java.math.BigDecimal; @ApiModel("APP首页热卖精选右侧固定广告位") @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class APPIndexHotSaleRightFixVO { @ApiModelProperty(value = "2商品") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexMidBrandVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexMidBrandVO.java index a264dfc9f..7677374f3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexMidBrandVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexMidBrandVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.app.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,6 @@ import java.math.BigDecimal; @ApiModel("APP首页品牌好货") @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class APPIndexMidBrandVO { @ApiModelProperty(value = "2商品") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexTopBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexTopBannerVO.java index 2baafb874..8f038c558 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexTopBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/index/APPIndexTopBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.app.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,6 @@ import lombok.experimental.Accessors; */ @ApiModel("APP 首页顶部轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) @Accessors(chain = true) public class APPIndexTopBannerVO { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/own/APPOwnGuessLikeVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/own/APPOwnGuessLikeVO.java index b58cb0b2f..c22821ad1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/own/APPOwnGuessLikeVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/app/own/APPOwnGuessLikeVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.app.own; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -17,7 +16,6 @@ import java.util.List; @ApiModel("APP我的猜你喜欢") @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class APPOwnGuessLikeVO { @ApiModelProperty(value = "2商品") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCDownloadVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCDownloadVO.java index bfe39d3af..4a23f78af 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCDownloadVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCDownloadVO.java @@ -1,11 +1,11 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.List; /** * @author liujiang @@ -14,22 +14,31 @@ import java.math.BigDecimal; */ @ApiModel("PC 下载页") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) public class PCDownloadVO { - @ApiModelProperty(value = "2商品") + @ApiModelProperty(value = "2 商品") private Integer displayType; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(value = "商品货号") + @ApiModelProperty(value = "货号") private String prodArtNum; + @ApiModelProperty(value = "主图") + private String mainPicUrl; + @ApiModelProperty(value = "单价") + private BigDecimal prodPrice; + @ApiModelProperty(value = "标题") + private String prodTitle; + @ApiModelProperty(value = "是否广告") + private Boolean advert; + @ApiModelProperty(value = "是否有视频") + private Boolean hasVideo; @ApiModelProperty(value = "排序") private Integer orderNum; - @ApiModelProperty(value = "售价") - private BigDecimal price; - @ApiModelProperty(value = "商品第一张主图路径") - private String mainPicUrl; - @ApiModelProperty(value = "商品标题") - private String prodTitle; + @ApiModelProperty(value = "标签") + private List tags; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCSearchResultVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCSearchResultVO.java index 8111eb7c2..7155dd3b7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCSearchResultVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCSearchResultVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,7 +13,6 @@ import java.math.BigDecimal; */ @ApiModel("PC 搜索结果") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) public class PCSearchResultVO { @ApiModelProperty(value = "2商品") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCUserCenterVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCUserCenterVO.java index 75f7cbd89..9f9a90c62 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCUserCenterVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/PCUserCenterVO.java @@ -1,11 +1,10 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; +import java.util.List; /** * @author liujiang @@ -14,22 +13,31 @@ import java.math.BigDecimal; */ @ApiModel("PC 用户中心") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) public class PCUserCenterVO { - @ApiModelProperty(value = "2商品") + @ApiModelProperty(value = "2 商品") private Integer displayType; + @ApiModelProperty(value = "档口ID") + private String storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; @ApiModelProperty(value = "档口商品ID") - private Long storeProdId; - @ApiModelProperty(value = "商品货号") + private String storeProdId; + @ApiModelProperty(value = "货号") private String prodArtNum; + @ApiModelProperty(value = "主图") + private String mainPicUrl; + @ApiModelProperty(value = "单价") + private String prodPrice; + @ApiModelProperty(value = "标题") + private String prodTitle; + @ApiModelProperty(value = "是否广告") + private Boolean advert; + @ApiModelProperty(value = "是否有视频") + private Boolean hasVideo; @ApiModelProperty(value = "排序") private Integer orderNum; - @ApiModelProperty(value = "售价") - private BigDecimal price; - @ApiModelProperty(value = "商品第一张主图路径") - private String mainPicUrl; - @ApiModelProperty(value = "商品标题") - private String prodTitle; + @ApiModelProperty(value = "标签") + private List tags; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexBottomPopularVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexBottomPopularVO.java index 040493ac5..bc3b1eb62 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexBottomPopularVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexBottomPopularVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ import java.util.List; */ @ApiModel("PC 首页 人气榜") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexBottomPopularVO { @ApiModelProperty(value = "左侧列表") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexFixedEarVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexFixedEarVO.java index 969389b37..182d00013 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexFixedEarVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexFixedEarVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 首页 两侧固定挂耳") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexFixedEarVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidSalesVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidSalesVO.java index 5d562a8f2..ce4923b6c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidSalesVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidSalesVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ import java.util.List; */ @ApiModel("PC 首页 销售榜") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexMidSalesVO { @ApiModelProperty(value = "分类ID") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidStyleVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidStyleVO.java index 1b2a3f8d6..d87a14c47 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidStyleVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexMidStyleVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ import java.util.List; */ @ApiModel("PC 首页 风格榜") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexMidStyleVO { @ApiModelProperty(value = "档口ID") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchRecommendProdVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchRecommendProdVO.java index 89615a3c6..4d9d84f24 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchRecommendProdVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchRecommendProdVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 首页 搜索框中推荐档口") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexSearchRecommendProdVO { @ApiModelProperty(value = "2 商品") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchUnderlineStoreNameVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchUnderlineStoreNameVO.java index eabe8b00e..5fae27f9b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchUnderlineStoreNameVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexSearchUnderlineStoreNameVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 首页 搜索框下档口名称") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexSearchUnderlineStoreNameVO { @ApiModelProperty(value = "4 档口名称") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopLeftBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopLeftBannerVO.java index fa5ea2216..e072db4ea 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopLeftBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopLeftBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 首页 顶部横向轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexTopLeftBannerVO { @ApiModelProperty(value = "展示类型 1推广图、2商品、3推广图及商品、4店铺名称") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopRightBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopRightBannerVO.java index 0667c69eb..2cb66198c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopRightBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/index/PCIndexTopRightBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 首页 顶部纵向轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCIndexTopRightBannerVO { @ApiModelProperty(value = "展示类型 1推广图、2商品、3推广图及商品、4店铺名称") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewBottomBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewBottomBannerVO.java index 12990d53a..755d655ca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewBottomBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewBottomBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 新品馆 底部横幅") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewBottomBannerVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidBrandVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidBrandVO.java index f3df8019d..4feb78809 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidBrandVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidBrandVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 新品馆 品牌馆") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewMidBrandVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotLeftVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotLeftVO.java index 22b03c5d2..77738ae7d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotLeftVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotLeftVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 新品馆 热卖榜左侧大图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewMidHotLeftVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotRightVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotRightVO.java index 9eae790bf..14ca623e8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotRightVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewMidHotRightVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,7 +13,7 @@ import java.math.BigDecimal; */ @ApiModel("PC 新品馆 热卖榜右侧商品") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewMidHotRightVO { @ApiModelProperty(value = "2商品") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopLeftBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopLeftBannerVO.java index acd08fe89..d2712c425 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopLeftBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopLeftBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 新品馆 顶部横向轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewTopLeftBannerVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopRightVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopRightVO.java index d7191bf41..a4bde7c76 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopRightVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/newProd/PCNewTopRightVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("PC 新品馆 顶部纵向图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewTopRightVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreMidBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreMidBannerVO.java index 942729861..a1ab22ba8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreMidBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreMidBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.store; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.Data; */ @ApiModel("以图搜款") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCStoreMidBannerVO { @ApiModelProperty(value = "1推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreTopBannerVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreTopBannerVO.java index fac176727..29cce5845 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreTopBannerVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/pc/store/PCStoreTopBannerVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.pc.store; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ import java.util.List; */ @ApiModel("PC 档口馆 顶部横幅") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCStoreTopBannerVO { @ApiModelProperty(value = "1 推广图") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/picSearch/PicSearchAdvertVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/picSearch/PicSearchAdvertVO.java index 7691ecf29..f4fe0ddf8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/picSearch/PicSearchAdvertVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/picSearch/PicSearchAdvertVO.java @@ -1,6 +1,5 @@ package com.ruoyi.web.controller.xkt.vo.advertRound.picSearch; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,6 @@ import java.util.List; */ @ApiModel("以图搜款") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) public class PicSearchAdvertVO { @ApiModelProperty(value = "搜索次数") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java index 7696821c3..3e48d37c2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java @@ -15,7 +15,7 @@ import lombok.Data; public class StoreApproveResVO { @ApiModelProperty(value = "档口基本信息") - private StoreBasicResVO basic; + private StoreResVO basic; @ApiModelProperty(value = "档口认证信息") private StoreCertResVO certificate; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreBasicResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreResVO.java similarity index 98% rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreBasicResVO.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreResVO.java index 87a9152a4..06d86aece 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreBasicResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreResVO.java @@ -15,7 +15,7 @@ import java.util.Date; */ @ApiModel("档口基本信息") @Data -public class StoreBasicResVO { +public class StoreResVO { @ApiModelProperty(value = "档口ID") private Long storeId; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreSimpleResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreSimpleResVO.java new file mode 100644 index 000000000..10269a64c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreSimpleResVO.java @@ -0,0 +1,43 @@ +package com.ruoyi.web.controller.xkt.vo.store; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口返回基本数据") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreSimpleResVO { + + @ApiModelProperty(value = "档口模板ID") + private Integer templateNum; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "经营年限") + private Integer operateYears; + @ApiModelProperty(value = "联系电话") + private String contactPhone; + @ApiModelProperty(value = "备选联系电话") + private String contactBackPhone; + @ApiModelProperty(value = "微信账号") + private String wechatAccount; + @ApiModelProperty(value = "QQ账号") + private String qqAccount; + @ApiModelProperty(value = "档口地址") + private String storeAddress; + @ApiModelProperty(value = "法人代表") + private String legalName; + @ApiModelProperty(value = "用户营业执照名称") + private String licenseName; + @ApiModelProperty(value = "是否关注") + private Boolean focus; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeHomepage/StoreRecommendResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeHomepage/StoreRecommendResVO.java new file mode 100644 index 000000000..630fd94e0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeHomepage/StoreRecommendResVO.java @@ -0,0 +1,42 @@ +package com.ruoyi.web.controller.xkt.vo.storeHomepage; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口推荐商品列表") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreRecommendResVO { + + @ApiModelProperty(value = "档口ID") + private String storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口商品ID") + private String storeProdId; + @ApiModelProperty(value = "货号") + private String prodArtNum; + @ApiModelProperty(value = "档口商品定价") + private BigDecimal minPrice; + @ApiModelProperty(value = "档口商品主图") + private String mainPicUrl; + @ApiModelProperty(value = "标题") + private String prodTitle; + @ApiModelProperty(value = "是否广告") + private Boolean advert; + @ApiModelProperty(value = "是否有视频") + private Boolean hasVideo; + @ApiModelProperty(value = "标签") + private List tags; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdAppResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdAppResVO.java index 899e07fe5..9ae702115 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdAppResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdAppResVO.java @@ -18,7 +18,7 @@ import java.util.List; @Data public class StoreProdAppResVO { - @ApiModelProperty(value = "档口商品名称") + @ApiModelProperty(value = "档口商品ID") private Long storeProdId; @ApiModelProperty(value = "档口ID") private Long storeId; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPCResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPCResVO.java new file mode 100644 index 000000000..8c7dde1c1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPCResVO.java @@ -0,0 +1,132 @@ +package com.ruoyi.web.controller.xkt.vo.storeProd; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口商品PC详情") +@Data +public class StoreProdPCResVO { + + @ApiModelProperty(value = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(value = "商品货号") + private String prodArtNum; + @ApiModelProperty(value = "商品标题") + private String prodTitle; + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @ApiModelProperty(value = "是否已收藏商品") + private Boolean collectProd; + @ApiModelProperty(value = "大小码加价") + private Integer overPrice; + @ApiModelProperty(value = "颜色列表") + private List colorList; + @ApiModelProperty(value = "档口类目属性") + private StoreProdCateAttrVO cateAttr; + @ApiModelProperty(value = "详情内容") + private String detail; + @ApiModelProperty(value = "商品主图视频及主图") + private List fileList; + + @Data + public static class SPPCColorVO { + @ApiModelProperty(value = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "档口颜色ID") + private Long storeColorId; + @ApiModelProperty(value = "颜色名称") + private String colorName; + @ApiModelProperty(value = "排序") + private Integer orderNum; + @ApiModelProperty(value = "档口商品定价") + private BigDecimal price; + @ApiModelProperty(value = "尺码库存列表") + List sizeStockList; + } + + @Data + public static class SPPCSizeStockVO { + @ApiModelProperty(value = "档口商品颜色尺码ID") + private Long storeProdColorSizeId; + @ApiModelProperty(value = "商品尺码") + private Integer size; + @ApiModelProperty(value = "是否是标准尺码") + private Integer standard; + @ApiModelProperty(value = "尺码库存") + private Integer stock; + } + + @Data + public static class StoreProdFileVO { + @ApiModelProperty(value = "文件名称") + private String fileName; + @ApiModelProperty(value = "文件路径") + private String fileUrl; + @ApiModelProperty(value = "文件大小") + private BigDecimal fileSize; + @ApiModelProperty(value = "文件类型 1商品主图 2商品主图视频 3下载图片包") + private Integer fileType; + @ApiModelProperty(value = "排序") + private Integer orderNum; + } + + @Data + public static class StoreProdCateAttrVO { + @ApiModelProperty(value = "帮面材质") + private String upperMaterial; + @ApiModelProperty(value = "内里材质") + private String liningMaterial; + @ApiModelProperty(value = "鞋垫材质") + private String insoleMaterial; + @ApiModelProperty(value = "上市季节年份") + private String releaseYearSeason; + @ApiModelProperty(value = "后跟高") + private String heelHeight; + @ApiModelProperty(value = "跟底款式") + private String heelType; + @ApiModelProperty(value = "鞋头款式") + private String toeStyle; + @ApiModelProperty(value = "适合季节") + private String suitableSeason; + @ApiModelProperty(value = "开口深度") + private String collarDepth; + @ApiModelProperty(value = "鞋底材质") + private String outsoleMaterial; + @ApiModelProperty(value = "风格") + private String style; + @ApiModelProperty(value = "款式") + private String design; + @ApiModelProperty(value = "皮质特征") + private String leatherFeatures; + @ApiModelProperty(value = "制作工艺") + private String manufacturingProcess; + @ApiModelProperty(value = "图案") + private String pattern; + @ApiModelProperty(value = "闭合方式") + private String closureType; + @ApiModelProperty(value = "适用场景") + private String occasion; + @ApiModelProperty(value = "适用年龄") + private String suitableAge; + @ApiModelProperty(value = "厚薄") + private String thickness; + @ApiModelProperty(value = "流行元素") + private String fashionElements; + @ApiModelProperty(value = "适用对象") + private String suitablePerson; + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusCountResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusCountResVO.java new file mode 100644 index 000000000..d98366454 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdStatusCountResVO.java @@ -0,0 +1,25 @@ +package com.ruoyi.web.controller.xkt.vo.storeProd; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口商品各个状态数量") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreProdStatusCountResVO { + + @ApiModelProperty(value = "在售数量") + private Integer onSaleNum; + @ApiModelProperty(value = "尾货数量") + private Integer tailGoodsNum; + @ApiModelProperty(value = "已下架数量") + private Integer offSaleNum; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userIndex/UserOverallResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userIndex/UserOverallResVO.java new file mode 100644 index 000000000..146b9c576 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userIndex/UserOverallResVO.java @@ -0,0 +1,27 @@ +package com.ruoyi.web.controller.xkt.vo.userIndex; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家首页返回数据") +@Data +public class UserOverallResVO { + + @ApiModelProperty(value = "图搜热款数量") + private Long searchHotCount; + @ApiModelProperty(value = "进货车数量") + private Long shoppingCartCount; + @ApiModelProperty(value = "关注档口数量") + private Long focusStoreCount; + @ApiModelProperty(value = "收藏商品数量") + private Long collectProdCount; + @ApiModelProperty(value = "代发订单数量") + private Long sendOrderCount; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java index 4c9542870..e5fed0963 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -151,7 +151,6 @@ public class CacheConstants { */ public static final String PC_NEW_RECOMMEND = "pc_new_recommend"; - /** * APP 广告 */ @@ -216,5 +215,10 @@ public class CacheConstants { * 档口馆 档口推荐广告 */ public static final String PC_STORE_RECOMMEND_ADVERT = "pc_store_recommend_advert"; + /** + * 用户搜索历史 + */ + public static final String USER_SEARCH_HISTORY = "user_search_history:"; + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index e2bd4fbd8..6b436f457 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -200,11 +200,14 @@ public class Constants * 平台外部账户ID-支付宝账户 */ public static final Long PLATFORM_ALIPAY_EXTERNAL_ACCOUNT_ID = 1L; - /** * 排序值1 */ public static final Integer ORDER_NUM_1 = 1; + /** + * 档口默认权重 100 + */ + public static final Long STORE_WEIGHT_DEFAULT = 100L; public static final String VERSION_LOCK_ERROR_COMMON_MSG = "系统繁忙,请稍后再试"; @@ -256,11 +259,11 @@ public class Constants * 以图搜款搜索结果,广告插入位置 5 9 13 17 20 */ public static final Set PIC_SEARCH_INSERT_POSITIONS = new HashSet<>(Arrays.asList(4, 8, 12, 16, 19)); - /** * 档口搜索结果,广告插入位置 2 9 18 27 36 */ public static final Set STORE_RECOMMEND_INSERT_POSITIONS = new HashSet<>(Arrays.asList(2, 9, 18, 27, 36)); + } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index 941c6d851..9d585bf56 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -574,6 +574,32 @@ public class XktTask { } + /** + * 每天凌晨2点更新用户搜索历史入库 + */ + @Transactional + public void dailyUpdateUserSearchHistory(){ + + // TODO + // TODO + // TODO + // TODO + + } + + /** + * 每晚凌晨3点更新系统热搜到redis中 + */ + @Transactional + public void dailyUpdateSearchHotToRedis(){ + + // TODO + // TODO + // TODO + // TODO + + } + /** * 自动关闭超时订单 diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/UserBrowsingHistory.java b/xkt/src/main/java/com/ruoyi/xkt/domain/UserBrowsingHistory.java index 3daf8c400..21d226774 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/UserBrowsingHistory.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/UserBrowsingHistory.java @@ -1,13 +1,9 @@ package com.ruoyi.xkt.domain; import com.baomidou.mybatisplus.annotation.TableId; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.XktBaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import java.math.BigDecimal; import java.util.Date; @@ -21,89 +17,48 @@ import java.util.Date; @EqualsAndHashCode(callSuper = true) @Data public class UserBrowsingHistory extends XktBaseEntity { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; /** * 用户浏览足迹ID */ @TableId private Long id; - /** - * sys_user.id + * 用户ID */ - @Excel(name = "sys_user.id") private Long userId; - /** - * sys_file.id + * 档口ID */ - @Excel(name = "sys_file.id") - private Long fileId; - - /** - * store_prod_file.id - */ - @Excel(name = "store_prod_file.id") - private Long storeProdFileId; - - /** - * store.id - */ - @Excel(name = "store.id") private Long storeId; - /** * 档口名称 */ - @Excel(name = "档口名称") private String storeName; - + /** + * 商品ID + */ + private Long storeProdId; /** * 商品货号 */ - @Excel(name = "商品货号") private String prodArtNum; - - /** - * 商品价格 - */ - @Excel(name = "商品价格") - private BigDecimal price; - /** * 商品标题 */ - @Excel(name = "商品标题") private String prodTitle; - + /** + * 第一张主图路径 + */ + private String mainPicUrl; + /** + * 商品价格 + */ + private BigDecimal price; /** * 凭证日期 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "凭证日期", width = 30, dateFormat = "yyyy-MM-dd") private Date voucherDate; - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("userId", getUserId()) - .append("fileId", getFileId()) - .append("storeProdFileId", getStoreProdFileId()) - .append("storeId", getStoreId()) - .append("storeName", getStoreName()) - .append("prodArtNum", getProdArtNum()) - .append("price", getPrice()) - .append("prodTitle", getProdTitle()) - .append("voucherDate", getVoucherDate()) - .append("version", getVersion()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/UserSearchHistory.java b/xkt/src/main/java/com/ruoyi/xkt/domain/UserSearchHistory.java new file mode 100644 index 000000000..1e329351d --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/UserSearchHistory.java @@ -0,0 +1,50 @@ +package com.ruoyi.xkt.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.ruoyi.common.core.domain.XktBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * 用户搜索历史 user_search_history + * + * @author ruoyi + * @date 2025-05-30 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +public class UserSearchHistory extends XktBaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 搜索历史ID + */ + @TableId + private Long id; + /** + * 搜索用户ID + */ + private Long userId; + /** + * 搜索用户名称 + */ + private String userName; + /** + * 搜索内容 + */ + private String searchContent; + /** + * 搜索平台 + */ + private Integer platformId; + /** + * 统计时间 + */ + private Date voucherDate; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/TestDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/TestDTO.java deleted file mode 100644 index 07040c953..000000000 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/TestDTO.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.ruoyi.xkt.dto; - -import com.ruoyi.xkt.domain.Test; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -/** - * @author liangyq - * @date 2025-03-26 14:47 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class TestDTO extends Test { -} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundLatestDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundLatestDTO.java index 1e316a227..58035f017 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundLatestDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundLatestDTO.java @@ -6,8 +6,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import javax.validation.constraints.NotNull; - /** * @author liujiang * @version v1.0 diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundPopularResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundPopularResDTO.java index 7f1611578..5d4b23662 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundPopularResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundPopularResDTO.java @@ -1,13 +1,11 @@ package com.ruoyi.xkt.dto.advertRound; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import java.math.BigDecimal; -import java.util.Date; /** * @author liujiang diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundStoreCreateDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundStoreCreateDTO.java index 5d01fdd7f..cb23c6a68 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundStoreCreateDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundStoreCreateDTO.java @@ -5,8 +5,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.math.BigDecimal; /** @@ -38,6 +36,6 @@ public class AdRoundStoreCreateDTO { @ApiModelProperty(value = "对象锁符号") private String symbol; @ApiModelProperty(value = "交易密码") - private String transactionPassword; + private String transactionPassword; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSaleDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSaleDTO.java index 6e05bd619..abfe5f08e 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSaleDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSaleDTO.java @@ -1,12 +1,10 @@ package com.ruoyi.xkt.dto.advertRound.app.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import java.math.BigDecimal; import java.util.List; /** @@ -28,7 +26,7 @@ public class APPIndexHotSaleDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "标题") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSalePageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSalePageDTO.java index 54e6cd37a..6c040a79b 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSalePageDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexHotSalePageDTO.java @@ -26,7 +26,7 @@ public class APPIndexHotSalePageDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexNewProdDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexNewProdDTO.java index 98511cfa1..c91a1802e 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexNewProdDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexNewProdDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.app.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -27,7 +26,7 @@ public class APPIndexNewProdDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexPopularSaleDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexPopularSaleDTO.java index 944c30532..d59d214eb 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexPopularSaleDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPIndexPopularSaleDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.app.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -27,7 +26,7 @@ public class APPIndexPopularSaleDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java index 69725b29c..ea9a5460a 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java @@ -28,7 +28,7 @@ public class APPSearchDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCDownloadDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCDownloadDTO.java index 5d7a9a358..c6847be54 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCDownloadDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCDownloadDTO.java @@ -1,12 +1,12 @@ package com.ruoyi.xkt.dto.advertRound.pc; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import java.math.BigDecimal; +import java.util.List; /** * @author liujiang @@ -15,23 +15,32 @@ import java.math.BigDecimal; */ @ApiModel("PC 下载页") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) @Accessors(chain = true) public class PCDownloadDTO { - @ApiModelProperty(value = "2商品") + @ApiModelProperty(value = "2 商品") private Integer displayType; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(value = "商品货号") + @ApiModelProperty(value = "货号") private String prodArtNum; + @ApiModelProperty(value = "主图") + private String mainPicUrl; + @ApiModelProperty(value = "单价") + private BigDecimal prodPrice; + @ApiModelProperty(value = "标题") + private String prodTitle; + @ApiModelProperty(value = "是否广告") + private Boolean advert; + @ApiModelProperty(value = "是否有视频") + private Boolean hasVideo; @ApiModelProperty(value = "排序") private Integer orderNum; - @ApiModelProperty(value = "售价") - private BigDecimal price; - @ApiModelProperty(value = "商品第一张主图路径") - private String mainPicUrl; - @ApiModelProperty(value = "商品标题") - private String prodTitle; + @ApiModelProperty(value = "标签") + private List tags; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCSearchDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCSearchDTO.java index 9ab0e1185..bd24fb536 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCSearchDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCSearchDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,6 @@ import java.util.List; @ApiModel("PC 搜索 ") @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class PCSearchDTO { @ApiModelProperty(value = "档口ID") @@ -28,7 +26,7 @@ public class PCSearchDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCUserCenterDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCUserCenterDTO.java index 5ac1d5ec0..9ce18b04f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCUserCenterDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/PCUserCenterDTO.java @@ -1,12 +1,12 @@ package com.ruoyi.xkt.dto.advertRound.pc; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import java.math.BigDecimal; +import java.util.List; /** * @author liujiang @@ -15,23 +15,32 @@ import java.math.BigDecimal; */ @ApiModel("PC 用户中心") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) @Accessors(chain = true) public class PCUserCenterDTO { - @ApiModelProperty(value = "2商品") + @ApiModelProperty(value = "2 商品") private Integer displayType; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; @ApiModelProperty(value = "档口商品ID") private Long storeProdId; - @ApiModelProperty(value = "商品货号") + @ApiModelProperty(value = "货号") private String prodArtNum; + @ApiModelProperty(value = "主图") + private String mainPicUrl; + @ApiModelProperty(value = "单价") + private BigDecimal prodPrice; + @ApiModelProperty(value = "标题") + private String prodTitle; + @ApiModelProperty(value = "是否广告") + private Boolean advert; + @ApiModelProperty(value = "是否有视频") + private Boolean hasVideo; @ApiModelProperty(value = "排序") private Integer orderNum; - @ApiModelProperty(value = "售价") - private BigDecimal price; - @ApiModelProperty(value = "商品第一张主图路径") - private String mainPicUrl; - @ApiModelProperty(value = "商品标题") - private String prodTitle; + @ApiModelProperty(value = "标签") + private List tags; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexBottomPopularDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexBottomPopularDTO.java index a75cda6ae..c70cfa653 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexBottomPopularDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexBottomPopularDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,7 @@ import java.util.List; */ @ApiModel("PC 首页 人气榜") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexBottomPopularDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexFixedEarDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexFixedEarDTO.java index d6a092983..f77a73452 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexFixedEarDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexFixedEarDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 首页 两侧固定挂耳") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexFixedEarDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidSalesDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidSalesDTO.java index 69720e3c1..340ede7ef 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidSalesDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidSalesDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,7 @@ import java.util.List; */ @ApiModel("PC 首页 中部销售榜") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexMidSalesDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidStyleDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidStyleDTO.java index e0d812946..a59716f30 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidStyleDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexMidStyleDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,7 @@ import java.util.List; */ @ApiModel("PC 首页 风格榜") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexMidStyleDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexRecommendDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexRecommendDTO.java index de6d13f44..d52fe7b35 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexRecommendDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexRecommendDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -31,7 +30,7 @@ public class PCIndexRecommendDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchRecommendProdDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchRecommendProdDTO.java index 5ce093d63..3facc9cd0 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchRecommendProdDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchRecommendProdDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 首页 搜索框中推荐档口") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexSearchRecommendProdDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchUnderlineStoreNameDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchUnderlineStoreNameDTO.java index 878a4f316..8da6b3b4a 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchUnderlineStoreNameDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexSearchUnderlineStoreNameDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 首页 搜索框下档口名称") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexSearchUnderlineStoreNameDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopLeftBannerDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopLeftBannerDTO.java index 058dd4df1..8925767e7 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopLeftBannerDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopLeftBannerDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 首页 顶部横向轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexTopLeftBannerDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopRightBannerDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopRightBannerDTO.java index fa73fdd40..4b733c064 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopRightBannerDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/index/PCIndexTopRightBannerDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.index; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 首页 顶部纵向轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCIndexTopRightBannerDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewBottomBannerDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewBottomBannerDTO.java index d0b325d75..d5528a149 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewBottomBannerDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewBottomBannerDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 新品馆 底部横幅") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCNewBottomBannerDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidBrandDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidBrandDTO.java index 622fd79b9..043a378ff 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidBrandDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidBrandDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 新品馆 品牌馆") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCNewMidBrandDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotLeftDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotLeftDTO.java index 3f2247b59..6c256fb6f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotLeftDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotLeftDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,7 +13,7 @@ import lombok.experimental.Accessors; @ApiModel("PC 新品馆 热卖榜左侧大图") @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) + public class PCNewMidHotLeftDTO { @ApiModelProperty(value = "1推广图") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotRightDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotRightDTO.java index 0e6d1e637..1f6c18b81 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotRightDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewMidHotRightDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ import java.math.BigDecimal; */ @ApiModel("PC 新品馆 热卖榜右侧商品") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCNewMidHotRightDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewRecommendDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewRecommendDTO.java index 93f1303e2..1f2212677 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewRecommendDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewRecommendDTO.java @@ -30,7 +30,7 @@ public class PCNewRecommendDTO { @ApiModelProperty(value = "货号") private String prodArtNum; @ApiModelProperty(value = "主图") - private String mainPic; + private String mainPicUrl; @ApiModelProperty(value = "单价") private String prodPrice; @ApiModelProperty(value = "是否广告") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopLeftBannerDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopLeftBannerDTO.java index f3b022d69..ee51dfd45 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopLeftBannerDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopLeftBannerDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 首页 顶部横向轮播图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCNewTopLeftBannerDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopRightDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopRightDTO.java index d31d913f1..5b8c61120 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopRightDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/newProd/PCNewTopRightDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.newProd; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 新品馆 顶部纵向图") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCNewTopRightDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreMidBannerDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreMidBannerDTO.java index c164710b3..d5655178c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreMidBannerDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreMidBannerDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.store; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,7 +12,7 @@ import lombok.experimental.Accessors; */ @ApiModel("PC 档口 底部横幅") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCStoreMidBannerDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreRecommendDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreRecommendDTO.java index 89b6c3a5e..c9614baf3 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreRecommendDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreRecommendDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.store; -import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreTopBannerDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreTopBannerDTO.java index ad206c3fd..7dfcde730 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreTopBannerDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/pc/store/PCStoreTopBannerDTO.java @@ -1,6 +1,5 @@ package com.ruoyi.xkt.dto.advertRound.pc.store; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +15,7 @@ import java.util.List; */ @ApiModel("PC 档口馆 顶部横幅") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PCStoreTopBannerDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/picSearch/PicSearchAdvertDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/picSearch/PicSearchAdvertDTO.java index 93069f29f..81babd35b 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/picSearch/PicSearchAdvertDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/picSearch/PicSearchAdvertDTO.java @@ -1,7 +1,6 @@ package com.ruoyi.xkt.dto.advertRound.picSearch; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -17,7 +16,7 @@ import java.util.List; */ @ApiModel("以图搜款") @Data -@JsonInclude(JsonInclude.Include.NON_NULL) + @Accessors(chain = true) public class PicSearchAdvertDTO { diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java index a3460699a..5afdcd306 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java @@ -15,7 +15,7 @@ import lombok.Data; public class StoreApproveResDTO { @ApiModelProperty(value = "档口基本信息") - private StoreBasicResDTO basic; + private StoreResDTO basic; @ApiModelProperty(value = "档口认证信息") private StoreCertResDTO certificate; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreBasicResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreResDTO.java similarity index 98% rename from xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreBasicResDTO.java rename to xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreResDTO.java index 9fdaa1146..621d19cb9 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreBasicResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreResDTO.java @@ -15,7 +15,7 @@ import java.util.Date; */ @ApiModel("档口基本信息") @Data -public class StoreBasicResDTO { +public class StoreResDTO { @ApiModelProperty(value = "档口ID") private Long storeId; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreSimpleResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreSimpleResDTO.java new file mode 100644 index 000000000..626a9950a --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreSimpleResDTO.java @@ -0,0 +1,43 @@ +package com.ruoyi.xkt.dto.store; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.ruoyi.xkt.dto.storeProduct.StoreProdStatusCountDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口返回基本数据") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreSimpleResDTO { + + @ApiModelProperty(value = "档口模板ID") + private Integer templateNum; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "联系电话") + private String contactPhone; + @ApiModelProperty(value = "备选联系电话") + private String contactBackPhone; + @ApiModelProperty(value = "微信账号") + private String wechatAccount; + @ApiModelProperty(value = "QQ账号") + private String qqAccount; + @ApiModelProperty(value = "档口地址") + private String storeAddress; + @ApiModelProperty(value = "法人代表") + private String legalName; + @ApiModelProperty(value = "用户营业执照名称") + private String licenseName; + @ApiModelProperty(value = "是否关注") + private Boolean focus; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationDTO.java index c93740687..2ef4b5fb8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationDTO.java @@ -19,7 +19,7 @@ import java.util.List; public class StoreHomeDecorationDTO { @ApiModelProperty(value = "档口首页装修大轮播图") - private List bigBannerList; + private List bannerList; @ApiModelProperty(value = "档口首页装修其它图部分") private List decorList; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationResDTO.java index 0692fb8e0..95ffb64e7 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeDecorationResDTO.java @@ -22,7 +22,7 @@ public class StoreHomeDecorationResDTO { @ApiModelProperty(value = "档口首页装修模板Num") private Integer templateNum; @ApiModelProperty(value = "档口首页装修大轮播图") - private List bigBannerList; + private List bannerList; @ApiModelProperty(value = "档口首页装修其它图部分") private List decorationList; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeProdResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeProdResDTO.java index 390743d30..6f76add85 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeProdResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreHomeProdResDTO.java @@ -39,7 +39,6 @@ public class StoreHomeProdResDTO { private List recommendedList; @Data - @ApiModel(value = "档口首页大轮播图") @Accessors(chain = true) public static class DecorationVO { @ApiModelProperty(value = "业务类型ID,如果选择:不跳转 不传,选择:跳转店铺,传storeId,选择:跳转商品,传storeProdId") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreRecommendResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreRecommendResDTO.java new file mode 100644 index 000000000..dea65b002 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeHomepage/StoreRecommendResDTO.java @@ -0,0 +1,44 @@ +package com.ruoyi.xkt.dto.storeHomepage; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口推荐商品列表") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +@Accessors(chain = true) +public class StoreRecommendResDTO { + + @ApiModelProperty(value = "档口ID") + private String storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口商品ID") + private String storeProdId; + @ApiModelProperty(value = "货号") + private String prodArtNum; + @ApiModelProperty(value = "档口商品定价") + private BigDecimal minPrice; + @ApiModelProperty(value = "档口商品主图") + private String mainPicUrl; + @ApiModelProperty(value = "标题") + private String prodTitle; + @ApiModelProperty(value = "是否广告") + private Boolean advert; + @ApiModelProperty(value = "是否有视频") + private Boolean hasVideo; + @ApiModelProperty(value = "标签") + private List tags; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPCResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPCResDTO.java new file mode 100644 index 000000000..b162782ee --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPCResDTO.java @@ -0,0 +1,92 @@ +package com.ruoyi.xkt.dto.storeProduct; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Date; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口商品PC详情") +@Data +@Accessors(chain = true) +public class StoreProdPCResDTO { + + @ApiModelProperty(value = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(value = "商品货号") + private String prodArtNum; + @ApiModelProperty(value = "商品标题") + private String prodTitle; + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @ApiModelProperty(value = "是否已收藏商品") + private Boolean collectProd; + @ApiModelProperty(value = "大小码加价") + private Integer overPrice; + @ApiModelProperty(value = "颜色列表") + private List colorList; + @ApiModelProperty(value = "档口类目属性") + private StoreProdCateAttrDTO cateAttr; + @ApiModelProperty(value = "详情内容") + private String detail; + @ApiModelProperty(value = "商品主图视频及主图") + private List fileList; + + @Data + public static class StoreProdCateAttrDTO { + @ApiModelProperty(value = "帮面材质") + private String upperMaterial; + @ApiModelProperty(value = "内里材质") + private String liningMaterial; + @ApiModelProperty(value = "鞋垫材质") + private String insoleMaterial; + @ApiModelProperty(value = "上市季节年份") + private String releaseYearSeason; + @ApiModelProperty(value = "后跟高") + private String heelHeight; + @ApiModelProperty(value = "跟底款式") + private String heelType; + @ApiModelProperty(value = "鞋头款式") + private String toeStyle; + @ApiModelProperty(value = "适合季节") + private String suitableSeason; + @ApiModelProperty(value = "开口深度") + private String collarDepth; + @ApiModelProperty(value = "鞋底材质") + private String outsoleMaterial; + @ApiModelProperty(value = "风格") + private String style; + @ApiModelProperty(value = "款式") + private String design; + @ApiModelProperty(value = "皮质特征") + private String leatherFeatures; + @ApiModelProperty(value = "制作工艺") + private String manufacturingProcess; + @ApiModelProperty(value = "图案") + private String pattern; + @ApiModelProperty(value = "闭合方式") + private String closureType; + @ApiModelProperty(value = "适用场景") + private String occasion; + @ApiModelProperty(value = "适用年龄") + private String suitableAge; + @ApiModelProperty(value = "厚薄") + private String thickness; + @ApiModelProperty(value = "流行元素") + private String fashionElements; + @ApiModelProperty(value = "适用对象") + private String suitablePerson; + } + + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuItemDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuItemDTO.java new file mode 100644 index 000000000..bc6a46612 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuItemDTO.java @@ -0,0 +1,48 @@ +package com.ruoyi.xkt.dto.storeProduct; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口商品SKU信息") +@Data +@Accessors(chain = true) +public class StoreProdSkuItemDTO { + + @ApiModelProperty(value = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "档口颜色ID") + private Long storeColorId; + @ApiModelProperty(value = "颜色名称") + private String colorName; + @ApiModelProperty(value = "排序") + private Integer orderNum; + @ApiModelProperty(value = "档口商品定价") + private BigDecimal price; + @ApiModelProperty(value = "尺码库存列表") + List sizeStockList; + + @Data + @ApiModel(value = "尺码库存") + @Accessors(chain = true) + public static class SPSISizeStockDTO { + @ApiModelProperty(value = "档口商品颜色尺码ID") + private Long storeProdColorSizeId; + @ApiModelProperty(value = "商品尺码") + private Integer size; + @ApiModelProperty(value = "是否是标准尺码") + private Integer standard; + @ApiModelProperty(value = "尺码库存") + private Integer stock; + } + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuResDTO.java index 2b2adba15..0d09f8c79 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdSkuResDTO.java @@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import java.math.BigDecimal; import java.util.List; /** @@ -27,37 +26,6 @@ public class StoreProdSkuResDTO { @ApiModelProperty(value = "商品货号") private String prodArtNum; @ApiModelProperty(value = "颜色列表") - private List colorList; - - @Data - @ApiModel(value = "档口商品SKU") - public static class SPColorDTO { - @ApiModelProperty(value = "档口商品颜色ID") - private Long storeProdColorId; - @ApiModelProperty(value = "档口颜色ID") - private Long storeColorId; - @ApiModelProperty(value = "颜色名称") - private String colorName; - @ApiModelProperty(value = "排序") - private Integer orderNum; - @ApiModelProperty(value = "档口商品定价") - private BigDecimal price; - @ApiModelProperty(value = "尺码库存列表") - List sizeStockList; - } - - @Data - @ApiModel(value = "尺码库存") - @Accessors(chain = true) - public static class SPSizeStockDTO { - @ApiModelProperty(value = "档口商品颜色尺码ID") - private Long storeProdColorSizeId; - @ApiModelProperty(value = "商品尺码") - private Integer size; - @ApiModelProperty(value = "是否是标准尺码") - private Integer standard; - @ApiModelProperty(value = "尺码库存") - private Integer stock; - } + private List colorList; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdStatusCountResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdStatusCountResDTO.java new file mode 100644 index 000000000..eb68048db --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdStatusCountResDTO.java @@ -0,0 +1,25 @@ +package com.ruoyi.xkt.dto.storeProduct; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口商品各个状态数量") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreProdStatusCountResDTO { + + @ApiModelProperty(value = "在售数量") + private Integer onSaleNum; + @ApiModelProperty(value = "尾货数量") + private Integer tailGoodsNum; + @ApiModelProperty(value = "已下架数量") + private Integer offSaleNum; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/useSearchHistory/UserSearchHistoryDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/useSearchHistory/UserSearchHistoryDTO.java new file mode 100644 index 000000000..ea696f422 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/useSearchHistory/UserSearchHistoryDTO.java @@ -0,0 +1,35 @@ +package com.ruoyi.xkt.dto.useSearchHistory; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("用户搜索记录") +@Data +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSearchHistoryDTO { + + @ApiModelProperty(value = "用户搜索ID") + private Long id; + @ApiModelProperty(value = "用户ID") + private Long userId; + @ApiModelProperty(value = "用户名称") + private String userName; + @ApiModelProperty(value = "搜索内容") + private String searchContent; + @ApiModelProperty(value = "平台ID") + private Integer platformId; + @ApiModelProperty(value = "搜索时间") + private Date searchTime; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userIndex/UserOverallResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userIndex/UserOverallResDTO.java new file mode 100644 index 000000000..78f518762 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userIndex/UserOverallResDTO.java @@ -0,0 +1,29 @@ +package com.ruoyi.xkt.dto.userIndex; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家首页返回数据") +@Data +@Accessors(chain = true) +public class UserOverallResDTO { + + @ApiModelProperty(value = "图搜热款数量") + private Long searchHotCount; + @ApiModelProperty(value = "进货车数量") + private Long shoppingCartCount; + @ApiModelProperty(value = "关注档口数量") + private Long focusStoreCount; + @ApiModelProperty(value = "收藏商品数量") + private Long collectProdCount; + @ApiModelProperty(value = "代发订单数量") + private Long sendOrderCount; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java index fa9503d5a..713a02a07 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java @@ -21,17 +21,21 @@ public class UserSubscPageResDTO { private Long userSubscId; @ApiModelProperty(value = "档口ID") private Long storeId; - @ApiModelProperty(name = "档口名称") + @ApiModelProperty(value = "档口名称") private String storeName; - @ApiModelProperty(name = "联系电话") + @ApiModelProperty(value = "联系电话") private String contactPhone; - @ApiModelProperty(name = "备选联系电话") + @ApiModelProperty(value = "备选联系电话") private String contactBackPhone; - @ApiModelProperty(name = "微信账号") + @ApiModelProperty(value = "微信账号") private String wechatAccount; - @ApiModelProperty(name = "QQ账号") + @ApiModelProperty(value = "QQ账号") private String qqAccount; - @ApiModelProperty(name = "档口地址") + @ApiModelProperty(value = "档口地址") private String storeAddress; + @ApiModelProperty(value = "最近30天销售量") + private Long last30DaysSaleQuantity; + @ApiModelProperty(value = "最近7天新增商品数") + private Long last7DaysNewProdQuantity; } \ No newline at end of file diff --git a/xkt/src/main/java/com/ruoyi/xkt/enums/SearchPlatformType.java b/xkt/src/main/java/com/ruoyi/xkt/enums/SearchPlatformType.java new file mode 100644 index 000000000..834426a29 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/enums/SearchPlatformType.java @@ -0,0 +1,37 @@ +package com.ruoyi.xkt.enums; + +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.exception.ServiceException; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 用户搜索内容的平台 + * + * @author liujiang + * @date 2025-04-02 23:42 + */ +@Getter +@AllArgsConstructor +public enum SearchPlatformType { + + // 电脑端 + PC(1, "PC"), + // APP + APP(2, "APP"), + + + ; + + private final Integer value; + private final String label; + + public static SearchPlatformType of(Integer value) { + for (SearchPlatformType e : SearchPlatformType.values()) { + if (e.getValue().equals(value)) { + return e; + } + } + throw new ServiceException("营销推广展示类型不存在!", HttpStatus.ERROR); + } +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreHomepageMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreHomepageMapper.java index 629abd4d0..3bd58de62 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreHomepageMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreHomepageMapper.java @@ -2,6 +2,8 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.StoreHomepage; +import com.ruoyi.xkt.dto.storeHomepage.StoreRecommendResDTO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,51 +14,13 @@ import java.util.List; * @date 2025-03-26 */ public interface StoreHomepageMapper extends BaseMapper { - /** - * 查询档口首页 - * - * @param id 档口首页主键 - * @return 档口首页 - */ - public StoreHomepage selectStoreHomepageByStoreHomeId(Long id); /** - * 查询档口首页列表 + * 获取档口首页某个类型列表 * - * @param storeHomepage 档口首页 - * @return 档口首页集合 + * @param storeId 档口ID + * @return List */ - public List selectStoreHomepageList(StoreHomepage storeHomepage); + List selectRecommendList(@Param("storeId") Long storeId); - /** - * 新增档口首页 - * - * @param storeHomepage 档口首页 - * @return 结果 - */ - public int insertStoreHomepage(StoreHomepage storeHomepage); - - /** - * 修改档口首页 - * - * @param storeHomepage 档口首页 - * @return 结果 - */ - public int updateStoreHomepage(StoreHomepage storeHomepage); - - /** - * 删除档口首页 - * - * @param id 档口首页主键 - * @return 结果 - */ - public int deleteStoreHomepageByStoreHomeId(Long id); - - /** - * 批量删除档口首页 - * - * @param storeHomeIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteStoreHomepageByStoreHomeIds(Long[] storeHomeIds); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java index bf26ee676..97d2e08f0 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.Store; import com.ruoyi.xkt.dto.store.StorePageDTO; import com.ruoyi.xkt.dto.store.StorePageResDTO; +import com.ruoyi.xkt.dto.store.StoreSimpleResDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -16,13 +18,6 @@ import java.util.List; */ @Repository public interface StoreMapper extends BaseMapper { - /** - * 查询档口 - * - * @param id 档口主键 - * @return 档口 - */ - public Store selectStoreByStoreId(Long id); /** * 查询档口列表 @@ -30,15 +25,7 @@ public interface StoreMapper extends BaseMapper { * @param store 档口 * @return 档口集合 */ - public List selectStoreList(Store store); - - /** - * 新增档口 - * - * @param store 档口 - * @return 结果 - */ - public int insertStore(Store store); + List selectStoreList(Store store); /** * 修改档口 @@ -46,24 +33,17 @@ public interface StoreMapper extends BaseMapper { * @param store 档口 * @return 结果 */ - public int updateStore(Store store); - - /** - * 删除档口 - * - * @param id 档口主键 - * @return 结果 - */ - public int deleteStoreByStoreId(Long id); - - /** - * 批量删除档口 - * - * @param storeIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteStoreByStoreIds(Long[] storeIds); + int updateStore(Store store); List selectStorePage(StorePageDTO pageDTO); + /** + * PC 商城首页 获取档口基本信息 + * + * @param storeId 档口ID + * @param userId 用户ID + * @return StoreBasicResDTO + */ + StoreSimpleResDTO getSimpleInfo(@Param("storeId") Long storeId, @Param("userId") Long userId); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java index 122ac5529..055ee321e 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java @@ -74,8 +74,17 @@ public interface StoreProductFileMapper extends BaseMapper { /** * 筛选档口最新的4个商品及主图 + * * @return List */ List selectLatestFourProdList(); + /** + * 根据商品ID获取商品主图和视频 + * + * @param storeProdId 商品ID + * @return List + */ + List selectVideoAndMainPicList(Long storeProdId); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java index 531b5c10b..baec54916 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java @@ -2,7 +2,6 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.StoreProduct; -import com.ruoyi.xkt.dto.advertRound.picSearch.PicSearchAdvertDTO; import com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO; import com.ruoyi.xkt.dto.storeProduct.*; import org.apache.ibatis.annotations.Param; @@ -90,8 +89,8 @@ public interface StoreProductMapper extends BaseMapper { * @return List */ List getStoreProdViewAttr(@Param("storeProdIdList") List storeProdIdList, - @Param("voucherDateStart") Date voucherDateStart, - @Param("voucherDateEnd") Date voucherDateEnd); + @Param("voucherDateStart") Date voucherDateStart, + @Param("voucherDateEnd") Date voucherDateEnd); /** * 获取图搜热款时,商品的各种基本属性 @@ -103,12 +102,29 @@ public interface StoreProductMapper extends BaseMapper { /** * 获取新款频出的前20名档口 - * @param yesterday 昨天 + * + * @param yesterday 昨天 * @param oneWeekAgo 一周前 * @return List */ List selectTop20List(@Param("yesterday") Date yesterday, @Param("oneWeekAgo") Date oneWeekAgo); + /** + * 获取PC商品详情页信息 + * + * @param storeProdId 当前商品ID + * @param userId 当前登录用户ID + * @return StoreProdPCResDTO + */ + StoreProdPCResDTO selectPCProdInfo(@Param("storeProdId") Long storeProdId, @Param("userId") Long userId); + + /** + * 获取档口各个状态的数量 + * @param storeId 档口ID + * @param statusList 状态列表 + * @return StoreProdStatusCountResDTO + */ + StoreProdStatusCountResDTO getStatusNum(@Param("storeId") Long storeId, @Param("statusList") List statusList); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserBrowsingHistoryMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserBrowsingHistoryMapper.java index 01352156e..b0107ab85 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserBrowsingHistoryMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserBrowsingHistoryMapper.java @@ -12,51 +12,5 @@ import java.util.List; * @date 2025-03-26 */ public interface UserBrowsingHistoryMapper extends BaseMapper { - /** - * 查询用户浏览历史 - * - * @param id 用户浏览历史主键 - * @return 用户浏览历史 - */ - public UserBrowsingHistory selectUserBrowsingHistoryByUserBrowHisId(Long id); - /** - * 查询用户浏览历史列表 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 用户浏览历史集合 - */ - public List selectUserBrowsingHistoryList(UserBrowsingHistory userBrowsingHistory); - - /** - * 新增用户浏览历史 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 结果 - */ - public int insertUserBrowsingHistory(UserBrowsingHistory userBrowsingHistory); - - /** - * 修改用户浏览历史 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 结果 - */ - public int updateUserBrowsingHistory(UserBrowsingHistory userBrowsingHistory); - - /** - * 删除用户浏览历史 - * - * @param id 用户浏览历史主键 - * @return 结果 - */ - public int deleteUserBrowsingHistoryByUserBrowHisId(Long id); - - /** - * 批量删除用户浏览历史 - * - * @param userBrowHisIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteUserBrowsingHistoryByUserBrowHisIds(Long[] userBrowHisIds); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java index 10d3ef510..e4268c5b6 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.UserSubscriptions; import com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO; +import com.ruoyi.xkt.dto.userIndex.UserOverallResDTO; import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO; import org.apache.ibatis.annotations.Param; @@ -27,8 +28,16 @@ public interface UserSubscriptionsMapper extends BaseMapper { /** * 获取档口关注前10 + * * @return */ List selectTop10List(); + /** + * 获取用户数据总览 + * + * @param userId 用户ID + * @return UserOverallResDTO + */ + UserOverallResDTO getOverall(Long userId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreHomepageService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreHomepageService.java index ec18c4b4e..aadaf03f8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreHomepageService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreHomepageService.java @@ -1,9 +1,8 @@ package com.ruoyi.xkt.service; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeDecorationDTO; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeDecorationResDTO; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeProdResDTO; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeResDTO; +import com.ruoyi.xkt.dto.storeHomepage.*; + +import java.util.List; /** * 档口首页Service接口 @@ -58,4 +57,12 @@ public interface IStoreHomepageService { */ StoreHomeProdResDTO getStoreProdInfo(Long storeId, Long storeProdId); + /** + * 获取档口推荐商品列表 + * + * @param storeId 档口ID + * @return List + */ + List getStoreRecommendList(Long storeId); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductService.java index 39dece608..a3acf7855 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductService.java @@ -118,4 +118,20 @@ public interface IStoreProductService { void insertOrUpdateProductStatistics(Long storeProdId, Integer incrViewCount, Integer incrDownloadCount, Integer incrImgSearchCount, Date date); + /** + * PC获取档口商品详情 + * + * @param storeProdId 档口商品ID + * @return StoreProdPCResDTO + */ + StoreProdPCResDTO getPCInfo(Long storeProdId); + + /** + * 获取档口商品各个状态数量 + * + * @param storeId 档口ID + * @return StoreProdStatusCountResDTO + */ + StoreProdStatusCountResDTO getStatusNum(Long storeId); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java index 78a9d73a9..cb6783383 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java @@ -54,12 +54,12 @@ public interface IStoreService { Integer approve(StoreAuditDTO auditDTO); /** - * 获取档口基本信息 + * 获取档口详细信息 * * @param storeId 档口ID * @return StoreBasicResDTO */ - StoreBasicResDTO getInfo(Long storeId); + StoreResDTO getInfo(Long storeId); /** * 审核时获取档口信息 @@ -125,4 +125,11 @@ public interface IStoreService { */ List indexTop10SaleCus(StoreSaleCustomerTop10DTO saleCusTop10DTO); + /** + * PC 商城 获取档口首页简易数据 + * + * @param storeId 档口ID + * @return StoreBasicResDTO + */ + StoreSimpleResDTO getSimpleInfo(Long storeId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/ITestService.java b/xkt/src/main/java/com/ruoyi/xkt/service/ITestService.java deleted file mode 100644 index 8f0888e75..000000000 --- a/xkt/src/main/java/com/ruoyi/xkt/service/ITestService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ruoyi.xkt.service; - -import com.ruoyi.xkt.dto.TestDTO; - -import java.util.List; - -/** - * @author liangyq - * @date 2025-03-18 16:07 - */ -public interface ITestService { - - void insertTest(TestDTO testDTO); - - void updateTest(TestDTO testDTO); - - List listTest(); -} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IUserBrowsingHistoryService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IUserBrowsingHistoryService.java index 25bcb01c0..5ce7ff12f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IUserBrowsingHistoryService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IUserBrowsingHistoryService.java @@ -11,51 +11,5 @@ import java.util.List; * @date 2025-03-26 */ public interface IUserBrowsingHistoryService { - /** - * 查询用户浏览历史 - * - * @param userBrowHisId 用户浏览历史主键 - * @return 用户浏览历史 - */ - public UserBrowsingHistory selectUserBrowsingHistoryByUserBrowHisId(Long userBrowHisId); - /** - * 查询用户浏览历史列表 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 用户浏览历史集合 - */ - public List selectUserBrowsingHistoryList(UserBrowsingHistory userBrowsingHistory); - - /** - * 新增用户浏览历史 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 结果 - */ - public int insertUserBrowsingHistory(UserBrowsingHistory userBrowsingHistory); - - /** - * 修改用户浏览历史 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 结果 - */ - public int updateUserBrowsingHistory(UserBrowsingHistory userBrowsingHistory); - - /** - * 批量删除用户浏览历史 - * - * @param userBrowHisIds 需要删除的用户浏览历史主键集合 - * @return 结果 - */ - public int deleteUserBrowsingHistoryByUserBrowHisIds(Long[] userBrowHisIds); - - /** - * 删除用户浏览历史信息 - * - * @param userBrowHisId 用户浏览历史主键 - * @return 结果 - */ - public int deleteUserBrowsingHistoryByUserBrowHisId(Long userBrowHisId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IUserIndexService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IUserIndexService.java new file mode 100644 index 000000000..5e2773d3b --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IUserIndexService.java @@ -0,0 +1,19 @@ +package com.ruoyi.xkt.service; + +import com.ruoyi.xkt.dto.userIndex.UserOverallResDTO; + +/** + * 用户首页IService + * + * @author ruoyi + * @date 2025-03-26 + */ +public interface IUserIndexService { + + /** + * 获取用户首页数据总览 + * + * @return UserOverallResDTO + */ + UserOverallResDTO getOverall(); +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java index eb4e0a07f..cbd71ef0a 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java @@ -6,12 +6,10 @@ import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.xkt.domain.*; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeDecorationDTO; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeDecorationResDTO; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeProdResDTO; -import com.ruoyi.xkt.dto.storeHomepage.StoreHomeResDTO; +import com.ruoyi.xkt.dto.storeHomepage.*; import com.ruoyi.xkt.dto.storeProdCateAttr.StoreProdCateAttrDTO; import com.ruoyi.xkt.dto.storeProdDetail.StoreProdDetailDTO; +import com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicAndTagDTO; import com.ruoyi.xkt.dto.storeProduct.StoreProdStatusCountDTO; import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO; import com.ruoyi.xkt.enums.FileType; @@ -70,7 +68,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { public Integer insert(Long storeId, Integer templateNum, StoreHomeDecorationDTO homepageDTO) { List homepageList = this.insertToHomepage(storeId, homepageDTO); // 当前档口首页各部分总的文件大小 - BigDecimal totalSize = homepageDTO.getBigBannerList().stream().map(x -> ObjectUtils.defaultIfNull(x.getFileSize(), BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal totalSize = homepageDTO.getBannerList().stream().map(x -> ObjectUtils.defaultIfNull(x.getFileSize(), BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add); Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper().eq(Store::getId, storeId).eq(Store::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); store.setTemplateNum(templateNum); @@ -134,7 +132,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { .collect(Collectors.toList()); return new StoreHomeDecorationResDTO() {{ setTemplateNum(store.getTemplateNum()); - setBigBannerList(bigBannerList); + setBannerList(bigBannerList); setDecorationList(decorList); }}; } @@ -298,6 +296,33 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { }}; } + /** + * 获取档口推荐商品列表 + * + * @param storeId 档口ID + * @return List + */ + @Override + @Transactional(readOnly = true) + public List getStoreRecommendList(Long storeId) { + List recommendList = this.storeHomeMapper.selectList(new LambdaQueryWrapper() + .eq(StoreHomepage::getStoreId, storeId).eq(StoreHomepage::getDelFlag, Constants.UNDELETED) + .eq(StoreHomepage::getFileType, HomepageType.STORE_RECOMMENDED.getValue())); + if (CollectionUtils.isEmpty(recommendList)) { + return Collections.emptyList(); + } + // 商品价格、主图、标签等 + List attrList = this.storeProdMapper.selectPriceAndMainPicAndTagList(recommendList.stream() + .map(StoreHomepage::getBizId).collect(Collectors.toList())); + Map attrMap = attrList.stream() + .collect(Collectors.toMap(StoreProdPriceAndMainPicAndTagDTO::getStoreProdId, Function.identity())); + return recommendList.stream().map(x -> { + StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(x.getBizId()); + final List tags = ObjectUtils.isNotEmpty(dto) && StringUtils.isNotBlank(dto.getTagStr()) ? Arrays.asList(dto.getTagStr().split(",")) : null; + return BeanUtil.toBean(dto, StoreRecommendResDTO.class).setTags(tags); + }).collect(Collectors.toList()); + } + /** * 获取档口商品颜色尺码的库存 * @@ -428,14 +453,14 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { */ private List insertToHomepage(Long storeId, StoreHomeDecorationDTO homepageDTO) { // 新增的首页轮播大图部分 - List bigBannerFileList = homepageDTO.getBigBannerList().stream().filter(x -> StringUtils.isNotBlank(x.getFileUrl()) + List bigBannerFileList = homepageDTO.getBannerList().stream().filter(x -> StringUtils.isNotBlank(x.getFileUrl()) && StringUtils.isNotBlank(x.getFileName()) && ObjectUtils.isNotEmpty(x.getFileSize()) && ObjectUtils.isNotEmpty(x.getOrderNum())) .map(x -> BeanUtil.toBean(x, SysFile.class)).collect(Collectors.toList()); List homePageList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(bigBannerFileList)) { this.fileMapper.insert(bigBannerFileList); Map bigBannerMap = bigBannerFileList.stream().collect(Collectors.toMap(SysFile::getFileName, Function.identity())); - homePageList.addAll(homepageDTO.getBigBannerList().stream().map(x -> BeanUtil.toBean(x, StoreHomepage.class).setStoreId(storeId) + homePageList.addAll(homepageDTO.getBannerList().stream().map(x -> BeanUtil.toBean(x, StoreHomepage.class).setStoreId(storeId) .setFileId(bigBannerMap.containsKey(x.getFileName()) ? bigBannerMap.get(x.getFileName()).getId() : null)) .collect(Collectors.toList())); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java index b5b4255ad..29d9fd1c8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java @@ -23,7 +23,6 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.es.EsClientWrapper; import com.ruoyi.system.domain.dto.productCategory.ProdCateDTO; -import com.ruoyi.xkt.mapper.SysProductCategoryMapper; import com.ruoyi.xkt.domain.*; import com.ruoyi.xkt.dto.es.ESProductDTO; import com.ruoyi.xkt.dto.picture.ProductPicSyncDTO; @@ -95,6 +94,7 @@ public class StoreProductServiceImpl implements IStoreProductService { final StoreCustomerProductDiscountMapper storeCusProdDiscMapper; final IPictureService pictureService; final StoreProductStatisticsMapper storeProductStatisticsMapper; + final StoreHomepageMapper storeHomepageMapper; /** @@ -542,6 +542,12 @@ public class StoreProductServiceImpl implements IStoreProductService { @Override @Transactional(readOnly = true) public StoreProdAppResDTO getAppInfo(Long storeProdId) { + + // TODO APP 商品详情也要加上 主图视频及主图 + // TODO APP 商品详情也要加上 主图视频及主图 + // TODO APP 商品详情也要加上 主图视频及主图 + + StoreProduct storeProd = Optional.ofNullable(this.storeProdMapper.selectOne(new LambdaQueryWrapper() .eq(StoreProduct::getId, storeProdId).eq(StoreProduct::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("档口商品不存在!", HttpStatus.ERROR)); @@ -598,13 +604,13 @@ public class StoreProductServiceImpl implements IStoreProductService { // 获取当前档口商品的sku列表 Map colorSizeStockMap = this.getProdStockList(storeProdId); // 组装所有的档口商品sku - List colorList = prodSkuList.stream().map(x -> BeanUtil.toBean(x, StoreProdSkuResDTO.SPColorDTO.class)).distinct().collect(Collectors.toList()); + List colorList = prodSkuList.stream().map(x -> BeanUtil.toBean(x, StoreProdSkuItemDTO.class)).distinct().collect(Collectors.toList()); // storeColorId的sku列表 Map> colorSizeMap = prodSkuList.stream().collect(Collectors.groupingBy(StoreProdSkuDTO::getStoreColorId)); colorList.forEach(color -> { List sizeList = Optional.ofNullable(colorSizeMap.get(color.getStoreColorId())) .orElseThrow(() -> new ServiceException("获取商品sku失败,请联系客服!", HttpStatus.ERROR)); - color.setSizeStockList(sizeList.stream().map(size -> new StoreProdSkuResDTO.SPSizeStockDTO() + color.setSizeStockList(sizeList.stream().map(size -> new StoreProdSkuItemDTO.SPSISizeStockDTO() .setStoreProdColorSizeId(size.getStoreProdColorSizeId()).setSize(size.getSize()).setStandard(size.getStandard()) .setStock(colorSizeStockMap.get(color.getStoreColorId() + ":" + size.getSize()))) .collect(Collectors.toList())); @@ -645,6 +651,58 @@ public class StoreProductServiceImpl implements IStoreProductService { } } + /** + * PC获取档口商品详情 + * + * @param storeProdId 档口商品ID + * @return StoreProdPCResDTO + */ + @Override + @Transactional(readOnly = true) + public StoreProdPCResDTO getPCInfo(Long storeProdId) { + // 商品基础信息 + StoreProdPCResDTO prodInfoDTO = ObjectUtils.defaultIfNull(this.storeProdMapper.selectPCProdInfo(storeProdId, SecurityUtils.getUserId()), new StoreProdPCResDTO()); + // 获取商品的属性 + StoreProductCategoryAttribute cateAttr = this.storeProdCateAttrMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductCategoryAttribute::getStoreProdId, storeProdId).eq(StoreProductCategoryAttribute::getDelFlag, Constants.UNDELETED)); + prodInfoDTO.setCateAttr(BeanUtil.toBean(cateAttr, StoreProdPCResDTO.StoreProdCateAttrDTO.class)) + // 获取商品的主图视频及主图 + .setFileList(this.storeProdFileMapper.selectVideoAndMainPicList(storeProdId)); + // 档口商品的sku列表 + List prodSkuList = this.storeProdMapper.selectSkuList(storeProdId); + if (CollectionUtils.isEmpty(prodSkuList)) { + return prodInfoDTO.setColorList(null); + } + // 获取当前档口商品的sku列表 + Map colorSizeStockMap = this.getProdStockList(storeProdId); + // 组装所有的档口商品sku + List colorList = prodSkuList.stream().map(x -> BeanUtil.toBean(x, StoreProdSkuItemDTO.class)).distinct().collect(Collectors.toList()); + // storeColorId的sku列表 + Map> colorSizeMap = prodSkuList.stream().collect(Collectors.groupingBy(StoreProdSkuDTO::getStoreColorId)); + colorList.forEach(color -> { + List sizeList = Optional.ofNullable(colorSizeMap.get(color.getStoreColorId())) + .orElseThrow(() -> new ServiceException("获取商品sku失败,请联系客服!", HttpStatus.ERROR)); + color.setSizeStockList(sizeList.stream().map(size -> new StoreProdSkuItemDTO.SPSISizeStockDTO() + .setStoreProdColorSizeId(size.getStoreProdColorSizeId()).setSize(size.getSize()).setStandard(size.getStandard()) + .setStock(colorSizeStockMap.get(color.getStoreColorId() + ":" + size.getSize()))) + .collect(Collectors.toList())); + }); + return prodInfoDTO.setColorList(colorList); + } + + /** + * 获取档口商品各个状态数量 + * + * @param storeId 档口ID + * @return StoreProdStatusCountResDTO + */ + @Override + @Transactional(readOnly = true) + public StoreProdStatusCountResDTO getStatusNum(Long storeId) { + return this.storeProdMapper.getStatusNum(storeId, Arrays + .asList(EProductStatus.ON_SALE.getValue(), EProductStatus.TAIL_GOODS.getValue(), EProductStatus.OFF_SALE.getValue())); + } + /** * 获取当前商品的sku列表 * diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java index 7c0a59716..1c54835ff 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java @@ -73,6 +73,8 @@ public class StoreServiceImpl implements IStoreService { // 当前时间往后推1年为试用期时间 Date oneYearAfter = Date.from(LocalDate.now().plusYears(1).atStartOfDay(ZoneId.systemDefault()).toInstant()); store.setTrialEndTime(oneYearAfter); + // 设置档口默认权重100 + store.setStoreWeight(Constants.STORE_WEIGHT_DEFAULT); int count = this.storeMapper.insert(store); // 创建档口账户 assetService.createInternalAccountIfNotExists(store.getId()); @@ -138,17 +140,17 @@ public class StoreServiceImpl implements IStoreService { } /** - * 获取档口基本信息 + * 获取档口详细信息 * * @param storeId 档口ID * @return StoreBasicResDTO */ @Override @Transactional(readOnly = true) - public StoreBasicResDTO getInfo(Long storeId) { + public StoreResDTO getInfo(Long storeId) { Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper() .eq(Store::getId, storeId))).orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); - StoreBasicResDTO resDTO = BeanUtil.toBean(store, StoreBasicResDTO.class); + StoreResDTO resDTO = BeanUtil.toBean(store, StoreResDTO.class); resDTO.setStoreId(storeId); // TODO 用户名称 @@ -345,4 +347,16 @@ public class StoreServiceImpl implements IStoreService { return this.dailySaleCusMapper.selectTop10SaleCustomerList(saleCusTop10DTO); } + /** + * PC 商城 获取档口首页简易数据 + * + * @param storeId 档口ID + * @return StoreBasicResDTO + */ + @Override + @Transactional (readOnly = true) + public StoreSimpleResDTO getSimpleInfo(Long storeId) { + return this.storeMapper.getSimpleInfo(storeId, SecurityUtils.getUserId()); + } + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/TestServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/TestServiceImpl.java deleted file mode 100644 index 8624271b1..000000000 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/TestServiceImpl.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.ruoyi.xkt.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.xkt.domain.Test; -import com.ruoyi.xkt.dto.TestDTO; -import com.ruoyi.xkt.mapper.TestMapper; -import com.ruoyi.xkt.service.ITestService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; - -/** - * @author liangyq - * @date 2025-03-18 16:08 - */ -@Slf4j -@Service -public class TestServiceImpl implements ITestService { - @Autowired - private TestMapper testMapper; - - @Transactional - @Override - public void insertTest(TestDTO testDTO) { - Test test = new Test(); - test.setDescription(testDTO.getDescription()); - test.setVersion(0L); - testMapper.insert(test); - log.info("插入:{}", test); - } - - @Transactional - @Override - public void updateTest(TestDTO testDTO) { - Test test = new Test(); - test.setId(testDTO.getId()); - test.setDescription(testDTO.getDescription()); - test.setVersion(testDTO.getVersion()); - log.info("修改:{}", testMapper.updateById(test)); - } - - @Override - public List listTest() { - List testList = testMapper.selectList(Wrappers.lambdaQuery(Test.class).eq(Test::getId, 1)); - log.info("查询:{}", testList); - return BeanUtil.copyToList(testList, TestDTO.class); - } -} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserBrowsingHistoryServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserBrowsingHistoryServiceImpl.java index f2018f8b7..f6687e1aa 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserBrowsingHistoryServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserBrowsingHistoryServiceImpl.java @@ -18,77 +18,8 @@ import java.util.List; */ @Service public class UserBrowsingHistoryServiceImpl implements IUserBrowsingHistoryService { - @Autowired - private UserBrowsingHistoryMapper userBrowsingHistoryMapper; - /** - * 查询用户浏览历史 - * - * @param userBrowHisId 用户浏览历史主键 - * @return 用户浏览历史 - */ - @Override - @Transactional(readOnly = true) - public UserBrowsingHistory selectUserBrowsingHistoryByUserBrowHisId(Long userBrowHisId) { - return userBrowsingHistoryMapper.selectUserBrowsingHistoryByUserBrowHisId(userBrowHisId); - } - /** - * 查询用户浏览历史列表 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 用户浏览历史 - */ - @Override - @Transactional(readOnly = true) - public List selectUserBrowsingHistoryList(UserBrowsingHistory userBrowsingHistory) { - return userBrowsingHistoryMapper.selectUserBrowsingHistoryList(userBrowsingHistory); - } - /** - * 新增用户浏览历史 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 结果 - */ - @Override - @Transactional - public int insertUserBrowsingHistory(UserBrowsingHistory userBrowsingHistory) { - userBrowsingHistory.setCreateTime(DateUtils.getNowDate()); - return userBrowsingHistoryMapper.insertUserBrowsingHistory(userBrowsingHistory); - } - /** - * 修改用户浏览历史 - * - * @param userBrowsingHistory 用户浏览历史 - * @return 结果 - */ - @Override - public int updateUserBrowsingHistory(UserBrowsingHistory userBrowsingHistory) { - userBrowsingHistory.setUpdateTime(DateUtils.getNowDate()); - return userBrowsingHistoryMapper.updateUserBrowsingHistory(userBrowsingHistory); - } - - /** - * 批量删除用户浏览历史 - * - * @param userBrowHisIds 需要删除的用户浏览历史主键 - * @return 结果 - */ - @Override - public int deleteUserBrowsingHistoryByUserBrowHisIds(Long[] userBrowHisIds) { - return userBrowsingHistoryMapper.deleteUserBrowsingHistoryByUserBrowHisIds(userBrowHisIds); - } - - /** - * 删除用户浏览历史信息 - * - * @param userBrowHisId 用户浏览历史主键 - * @return 结果 - */ - @Override - public int deleteUserBrowsingHistoryByUserBrowHisId(Long userBrowHisId) { - return userBrowsingHistoryMapper.deleteUserBrowsingHistoryByUserBrowHisId(userBrowHisId); - } } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserIndexServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserIndexServiceImpl.java new file mode 100644 index 000000000..04fe09846 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserIndexServiceImpl.java @@ -0,0 +1,44 @@ +package com.ruoyi.xkt.service.impl; + +import com.ruoyi.common.constant.CacheConstants; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.xkt.dto.storeProduct.StoreProdViewDTO; +import com.ruoyi.xkt.dto.userIndex.UserOverallResDTO; +import com.ruoyi.xkt.mapper.UserSubscriptionsMapper; +import com.ruoyi.xkt.service.IUserIndexService; +import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 用户首页Service业务层处理 + * + * @author ruoyi + * @date 2025-03-26 + */ +@Service +@RequiredArgsConstructor +public class UserIndexServiceImpl implements IUserIndexService { + + final UserSubscriptionsMapper userSubsMapper; + final RedisCache redisCache; + + /** + * 获取用户首页数据总览 + * + * @return UserOverallResDTO + */ + @Override + @Transactional(readOnly = true) + public UserOverallResDTO getOverall() { + UserOverallResDTO overAllDTO = this.userSubsMapper.getOverall(SecurityUtils.getUserId()); + // 图搜热款数量 + List picSearchHotList = redisCache.getCacheObject(CacheConstants.IMG_SEARCH_PRODUCT_HOT); + return overAllDTO.setSearchHotCount(CollectionUtils.isEmpty(picSearchHotList) ? 0L : picSearchHotList.size()); + } + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java index e76884e93..b92f0c154 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java @@ -9,11 +9,15 @@ import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.xkt.domain.StoreProduct; +import com.ruoyi.xkt.domain.StoreSale; import com.ruoyi.xkt.domain.UserSubscriptions; import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDTO; import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDeleteDTO; import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageDTO; import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO; +import com.ruoyi.xkt.mapper.StoreProductMapper; +import com.ruoyi.xkt.mapper.StoreSaleMapper; import com.ruoyi.xkt.mapper.UserSubscriptionsMapper; import com.ruoyi.xkt.service.IUserSubscriptionsService; import lombok.RequiredArgsConstructor; @@ -22,8 +26,12 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; +import java.util.Date; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; /** * 用户关注档口Service业务层处理 @@ -36,6 +44,8 @@ import java.util.Optional; public class UserSubscriptionsServiceImpl implements IUserSubscriptionsService { final UserSubscriptionsMapper userSubscMapper; + final StoreSaleMapper saleMapper; + final StoreProductMapper storeProdMapper; /** @@ -98,10 +108,25 @@ public class UserSubscriptionsServiceImpl implements IUserSubscriptionsService { if (CollectionUtils.isEmpty(list)) { return Page.empty(pageDTO.getPageNum(), pageDTO.getPageSize()); } - - // TODO 获取档口最近30天销量和近7日上新数量 - // TODO 获取档口最近30天销量和近7日上新数量 - + // 今天 + final Date now = java.sql.Date.valueOf(LocalDate.now()); + // 30天前 + final Date before30Days = java.sql.Date.valueOf(LocalDate.now().minusDays(30)); + // 7天前 + final Date before7Days = java.sql.Date.valueOf(LocalDate.now().minusDays(7)); + final List storeIdList = list.stream().map(UserSubscPageResDTO::getStoreId).collect(Collectors.toList()); + List saleList = this.saleMapper.selectList(new LambdaQueryWrapper() + .in(StoreSale::getStoreId, storeIdList).eq(StoreSale::getDelFlag, Constants.UNDELETED) + .between(StoreSale::getVoucherDate, before30Days, now)); + // 最近30天销售数据 + Map saleQuantityMap = saleList.stream().collect(Collectors.groupingBy(StoreSale::getStoreId, Collectors.summingLong(StoreSale::getSaleQuantity))); + List storeProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProduct::getDelFlag, Constants.UNDELETED).in(StoreProduct::getStoreId, storeIdList) + .between(StoreProduct::getCreateTime, before7Days, now)); + // 最近7天上新数据 + Map newProdQuantityMap = storeProdList.stream().collect(Collectors.groupingBy(StoreProduct::getStoreId, Collectors.summingLong(StoreProduct::getId))); + list.forEach(x -> x.setLast30DaysSaleQuantity(saleQuantityMap.getOrDefault(x.getStoreId(), 0L)) + .setLast7DaysNewProdQuantity(newProdQuantityMap.getOrDefault(x.getStoreId(), 0L))); return Page.convert(new PageInfo<>(list)); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java index 4cc427d2b..3608da776 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.xkt.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch._types.SortOrder; @@ -9,10 +10,12 @@ import co.elastic.clients.elasticsearch.core.SearchResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.AdType; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.es.EsClientWrapper; import com.ruoyi.xkt.domain.AdvertRound; import com.ruoyi.xkt.domain.SysFile; @@ -22,10 +25,12 @@ import com.ruoyi.xkt.dto.advertRound.app.own.APPOwnGuessLikeDTO; import com.ruoyi.xkt.dto.es.ESProductDTO; import com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicAndTagDTO; import com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicDTO; +import com.ruoyi.xkt.dto.useSearchHistory.UserSearchHistoryDTO; import com.ruoyi.xkt.dto.website.IndexSearchDTO; import com.ruoyi.xkt.enums.AdBiddingStatus; import com.ruoyi.xkt.enums.AdDisplayType; import com.ruoyi.xkt.enums.AdLaunchStatus; +import com.ruoyi.xkt.enums.SearchPlatformType; import com.ruoyi.xkt.mapper.*; import com.ruoyi.xkt.service.IWebsiteAPPService; import lombok.RequiredArgsConstructor; @@ -111,7 +116,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { .setStoreName(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getStoreName() : "") .setProdPrice(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMinPrice().toString() : null) .setProdArtNum(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdArtNum() : "") - .setMainPic(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); + .setMainPicUrl(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); }).collect(Collectors.toList()); // 放到redis中 有效期1天 this.redisCache.setCacheObject(CacheConstants.APP_INDEX_HOT_SALE_ADVERT, hotSaleList, 1, TimeUnit.DAYS); @@ -165,10 +170,10 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { .setStoreName(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getStoreName() : "") .setProdPrice(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMinPrice().toString() : null) .setProdArtNum(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdArtNum() : "") - .setMainPic(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); + .setMainPicUrl(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); }).collect(Collectors.toList()); // 放到redis中 有效期1天 - this.redisCache.setCacheObject( CacheConstants.APP_INDEX_POPULAR_SALE_ADVERT, popularSaleList, 1, TimeUnit.DAYS); + this.redisCache.setCacheObject(CacheConstants.APP_INDEX_POPULAR_SALE_ADVERT, popularSaleList, 1, TimeUnit.DAYS); // 添加了广告的数据 return new Page<>(page.getPageNum(), page.getPageSize(), page.getPages(), page.getTotal(), insertAdvertsIntoList(realDataList, popularSaleList, Constants.APP_INSERT_POSITIONS)); } @@ -219,7 +224,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { .setStoreName(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getStoreName() : "") .setProdPrice(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMinPrice().toString() : null) .setProdArtNum(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdArtNum() : "") - .setMainPic(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); + .setMainPicUrl(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); }).collect(Collectors.toList()); // 放到redis中 有效期1天 this.redisCache.setCacheObject(CacheConstants.APP_INDEX_NEW_PROD, newProdList, 1, TimeUnit.DAYS); @@ -239,6 +244,9 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { @Override @Transactional(readOnly = true) public Page appSearchPage(IndexSearchDTO searchDTO) throws IOException { + // 更新用户搜索历史 + updateRedisUserSearchHistory(searchDTO.getSearch()); + // 用户搜索结果 Page page = this.search(searchDTO); // 筛选出真实的数据 List realDataList = page.getList().stream() @@ -273,7 +281,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { .setStoreName(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getStoreName() : "") .setProdPrice(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMinPrice().toString() : null) .setProdArtNum(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdArtNum() : "") - .setMainPic(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); + .setMainPicUrl(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : ""); }).collect(Collectors.toList()); // 放到redis中 有效期1天 this.redisCache.setCacheObject(CacheConstants.APP_SEARCH, newProdList, 1, TimeUnit.DAYS); @@ -735,5 +743,24 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { return new Page<>(searchDTO.getPageNum(), searchDTO.getPageSize(), total / searchDTO.getPageSize() + 1, total, esProdList); } + /** + * 更新用户搜索结果到redis + * + * @param search 用户搜索内容 + */ + private void updateRedisUserSearchHistory(String search) { + if (StringUtils.isEmpty(search)) { + return; + } + // 将用户搜索的数据存放到redis中,每晚统一存到数据库中 + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户在redis中的搜索数据 + List userSearchList = CollUtil.defaultIfEmpty(redisCache.getCacheObject(CacheConstants.USER_SEARCH_HISTORY + loginUser.getUserId()), new ArrayList<>()); + userSearchList.add(new UserSearchHistoryDTO().setUserId(loginUser.getUserId()).setUserName(loginUser.getUser().getNickName()).setSearchContent(search) + .setPlatformId(SearchPlatformType.APP.getValue()).setSearchTime(DateUtils.getNowDate())); + // 设置用户搜索历史,不过期 + redisCache.setCacheObject(CacheConstants.USER_SEARCH_HISTORY + loginUser.getUserId(), userSearchList); + } + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsitePCServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsitePCServiceImpl.java index cffe02e8b..80551e0ed 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsitePCServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsitePCServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.xkt.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch._types.query_dsl.*; @@ -8,10 +9,12 @@ import co.elastic.clients.elasticsearch.core.SearchResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.AdType; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.es.EsClientWrapper; import com.ruoyi.xkt.domain.AdvertRound; import com.ruoyi.xkt.domain.DailyStoreTag; @@ -33,11 +36,13 @@ import com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicAndTagDTO; import com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicDTO; import com.ruoyi.xkt.dto.storeProduct.StoreProdViewDTO; import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO; +import com.ruoyi.xkt.dto.useSearchHistory.UserSearchHistoryDTO; import com.ruoyi.xkt.dto.website.IndexSearchDTO; import com.ruoyi.xkt.dto.website.StoreSearchDTO; import com.ruoyi.xkt.enums.AdBiddingStatus; import com.ruoyi.xkt.enums.AdDisplayType; import com.ruoyi.xkt.enums.AdLaunchStatus; +import com.ruoyi.xkt.enums.SearchPlatformType; import com.ruoyi.xkt.mapper.*; import com.ruoyi.xkt.service.IPictureService; import com.ruoyi.xkt.service.IWebsitePCService; @@ -137,7 +142,7 @@ public class WebsitePCServiceImpl implements IWebsitePCService { .setStoreName(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getStoreName() : "") .setProdPrice(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMinPrice().toString() : null) .setProdArtNum(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdArtNum() : "") - .setMainPic(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : "") + .setMainPicUrl(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : "") .setTags(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getTags() : null)); }); }); @@ -211,7 +216,7 @@ public class WebsitePCServiceImpl implements IWebsitePCService { .setStoreName(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getStoreName() : "") .setProdPrice(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMinPrice().toString() : null) .setProdArtNum(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdArtNum() : "") - .setMainPic(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : "") + .setMainPicUrl(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getMainPicUrl() : "") .setTags(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getTags() : null)); }); }); @@ -240,6 +245,9 @@ public class WebsitePCServiceImpl implements IWebsitePCService { @Override @Transactional(readOnly = true) public Page psSearchPage(IndexSearchDTO searchDTO) throws IOException { + // 更新用户搜索历史 + updateRedisUserSearchHistory(searchDTO.getSearch()); + // 获取用户搜索结果列表 Page page = this.search(searchDTO); // 筛选出真实的数据 List realDataList = page.getList().stream() @@ -1227,22 +1235,20 @@ public class WebsitePCServiceImpl implements IWebsitePCService { if (CollectionUtils.isEmpty(oneMonthList)) { return new ArrayList<>(); } - final List storeProdIdList = oneMonthList.stream() - .map(AdvertRound::getProdIdStr).map(Long::parseLong).distinct().collect(Collectors.toList()); - // 档口商品的价格及商品主图map - Map prodPriceAndMainPicMap = CollectionUtils.isEmpty(storeProdIdList) ? new ConcurrentHashMap<>() - : this.storeProdMapper.selectPriceAndMainPicList(storeProdIdList).stream().collect(Collectors - .toMap(StoreProdPriceAndMainPicDTO::getStoreProdId, Function.identity())); + final List storeProdIdList = oneMonthList.stream().map(AdvertRound::getProdIdStr).map(Long::parseLong).distinct().collect(Collectors.toList()); + List attrList = storeProdMapper.selectPriceAndMainPicAndTagList(storeProdIdList); + attrList = attrList.stream().peek(x -> x.setTags(StringUtils.isNotBlank(x.getTagStr()) ? Arrays.asList(x.getTagStr().split(",")) : null)).collect(Collectors.toList()); + Map attrMap = attrList.stream().collect(Collectors.toMap(StoreProdPriceAndMainPicAndTagDTO::getStoreProdId, x -> x)); List launchingList = oneMonthList.stream().filter(x -> Objects.equals(x.getLaunchStatus(), AdLaunchStatus.LAUNCHING.getValue())) .filter(x -> Objects.equals(x.getBiddingStatus(), AdBiddingStatus.BIDDING_SUCCESS.getValue())).collect(Collectors.toList()); List expiredList = oneMonthList.stream().filter(x -> Objects.equals(x.getLaunchStatus(), AdLaunchStatus.EXPIRED.getValue())).collect(Collectors.toList()); if (CollectionUtils.isEmpty(launchingList)) { - pcUserCenterList = expiredList.stream().map(x -> this.getPcUserCenterDTO(x, prodPriceAndMainPicMap)).limit(18).collect(Collectors.toList()); + pcUserCenterList = expiredList.stream().map(x -> this.getPcUserCenterDTO(x, attrMap)).limit(18).collect(Collectors.toList()); for (int i = 0; i < pcUserCenterList.size(); i++) { pcUserCenterList.get(i).setOrderNum(i + 1); } } else { - pcUserCenterList = launchingList.stream().map(x -> this.getPcUserCenterDTO(x, prodPriceAndMainPicMap) + pcUserCenterList = launchingList.stream().map(x -> this.getPcUserCenterDTO(x, attrMap) .setOrderNum(this.positionToNumber(x.getPosition()))).limit(18).collect(Collectors.toList()); } // 放到redis 中 过期时间1天 @@ -1268,22 +1274,20 @@ public class WebsitePCServiceImpl implements IWebsitePCService { if (CollectionUtils.isEmpty(oneMonthList)) { return new ArrayList<>(); } - final List storeProdIdList = oneMonthList.stream() - .map(AdvertRound::getProdIdStr).map(Long::parseLong).distinct().collect(Collectors.toList()); - // 档口商品的价格及商品主图map - Map prodPriceAndMainPicMap = CollectionUtils.isEmpty(storeProdIdList) ? new ConcurrentHashMap<>() - : this.storeProdMapper.selectPriceAndMainPicList(storeProdIdList).stream().collect(Collectors - .toMap(StoreProdPriceAndMainPicDTO::getStoreProdId, Function.identity())); + final List storeProdIdList = oneMonthList.stream().map(AdvertRound::getProdIdStr).map(Long::parseLong).distinct().collect(Collectors.toList()); + List attrList = storeProdMapper.selectPriceAndMainPicAndTagList(storeProdIdList); + attrList = attrList.stream().peek(x -> x.setTags(StringUtils.isNotBlank(x.getTagStr()) ? Arrays.asList(x.getTagStr().split(",")) : null)).collect(Collectors.toList()); + Map attrMap = attrList.stream().collect(Collectors.toMap(StoreProdPriceAndMainPicAndTagDTO::getStoreProdId, x -> x)); List launchingList = oneMonthList.stream().filter(x -> Objects.equals(x.getLaunchStatus(), AdLaunchStatus.LAUNCHING.getValue())) .filter(x -> Objects.equals(x.getBiddingStatus(), AdBiddingStatus.BIDDING_SUCCESS.getValue())).collect(Collectors.toList()); List expiredList = oneMonthList.stream().filter(x -> Objects.equals(x.getLaunchStatus(), AdLaunchStatus.EXPIRED.getValue())).collect(Collectors.toList()); if (CollectionUtils.isEmpty(launchingList)) { - pcDownloadList = expiredList.stream().map(advertRound -> this.getPcDownload(advertRound, prodPriceAndMainPicMap)).limit(10).collect(Collectors.toList()); + pcDownloadList = expiredList.stream().map(advertRound -> this.getPcDownload(advertRound, attrMap)).limit(10).collect(Collectors.toList()); for (int i = 0; i < pcDownloadList.size(); i++) { pcDownloadList.get(i).setOrderNum(i + 1); } } else { - pcDownloadList = launchingList.stream().map(advertRound -> this.getPcDownload(advertRound, prodPriceAndMainPicMap) + pcDownloadList = launchingList.stream().map(advertRound -> this.getPcDownload(advertRound, attrMap) .setOrderNum(this.positionToNumber(advertRound.getPosition()))).limit(10).collect(Collectors.toList()); } // 放到redis 中 过期时间1天 @@ -1294,32 +1298,44 @@ public class WebsitePCServiceImpl implements IWebsitePCService { /** * 获取PC 下载页数据 * - * @param advertRound 下载页广告 - * @param prodPriceAndMainPicMap 商品价格和图片 + * @param advertRound 下载页广告 + * @param attrMap 商品价格和图片等 * @return PCDownloadDTO */ - private PCDownloadDTO getPcDownload(AdvertRound advertRound, Map prodPriceAndMainPicMap) { + private PCDownloadDTO getPcDownload(AdvertRound advertRound, Map attrMap) { final Long storeProdId = Long.parseLong(advertRound.getProdIdStr()); + final StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(storeProdId); return new PCDownloadDTO().setDisplayType(AdDisplayType.PRODUCT.getValue()) - .setPrice(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getMinPrice() : null) - .setProdArtNum(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getProdArtNum() : "") - .setMainPicUrl(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getMainPicUrl() : ""); + .setStoreProdId(storeProdId).setAdvert(Boolean.TRUE) + .setStoreId(ObjectUtils.isNotEmpty(dto) ? dto.getStoreId() : null) + .setStoreName(ObjectUtils.isNotEmpty(dto) ? dto.getStoreName() : "") + .setProdArtNum(ObjectUtils.isNotEmpty(dto) ? dto.getProdArtNum() : "") + .setProdArtNum(ObjectUtils.isNotEmpty(dto) ? dto.getProdArtNum() : "") + .setMainPicUrl(ObjectUtils.isNotEmpty(dto) ? dto.getMainPicUrl() : "") + .setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null) + .setProdTitle(ObjectUtils.isNotEmpty(dto) ? dto.getProdTitle() : "") + .setHasVideo(ObjectUtils.isNotEmpty(dto) ? dto.getHasVideo() : Boolean.FALSE) + .setTags(ObjectUtils.isNotEmpty(dto) ? dto.getTags() : null); } /** * 获取PC 用户中心 广告列表 * - * @param advertRound 用户中心 - * @param prodPriceAndMainPicMap 商品价格及主图等map + * @param advertRound 用户中心 + * @param attrMap 商品价格及主图等map * @return PCUserCenterDTO */ - private PCUserCenterDTO getPcUserCenterDTO(AdvertRound advertRound, Map prodPriceAndMainPicMap) { + private PCUserCenterDTO getPcUserCenterDTO(AdvertRound advertRound, Map attrMap) { final Long storeProdId = Long.parseLong(advertRound.getProdIdStr()); - return new PCUserCenterDTO().setDisplayType(AdDisplayType.PRODUCT.getValue()) - .setPrice(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getMinPrice() : null) - .setProdArtNum(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getProdArtNum() : "") - .setMainPicUrl(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getMainPicUrl() : "") - .setProdTitle(ObjectUtils.isNotEmpty(prodPriceAndMainPicMap.get(storeProdId)) ? prodPriceAndMainPicMap.get(storeProdId).getProdTitle() : ""); + final StoreProdPriceAndMainPicAndTagDTO dto = attrMap.get(storeProdId); + return new PCUserCenterDTO().setDisplayType(AdDisplayType.PRODUCT.getValue()).setStoreId(advertRound.getStoreId()) + .setStoreName(dto.getStoreName()).setStoreProdId(storeProdId).setAdvert(Boolean.TRUE) + .setProdArtNum(ObjectUtils.isNotEmpty(dto) ? dto.getProdArtNum() : "") + .setProdPrice(ObjectUtils.isNotEmpty(dto) ? dto.getMinPrice() : null) + .setMainPicUrl(ObjectUtils.isNotEmpty(dto) ? dto.getMainPicUrl() : "") + .setProdTitle(ObjectUtils.isNotEmpty(dto) ? dto.getProdTitle() : "") + .setHasVideo(ObjectUtils.isNotEmpty(dto) ? dto.getHasVideo() : Boolean.FALSE) + .setTags(ObjectUtils.isNotEmpty(dto) ? dto.getTags() : null); } /** @@ -1691,4 +1707,23 @@ public class WebsitePCServiceImpl implements IWebsitePCService { return mergedList; } + /** + * 更新用户搜索结果到redis + * + * @param search 用户搜索内容 + */ + private void updateRedisUserSearchHistory(String search) { + if (StringUtils.isEmpty(search)) { + return; + } + // 将用户搜索的数据存放到redis中,每晚统一存到数据库中 + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 获取用户在redis中的搜索数据 + List userSearchList = CollUtil.defaultIfEmpty(redisCache.getCacheObject(CacheConstants.USER_SEARCH_HISTORY + loginUser.getUserId()), new ArrayList<>()); + userSearchList.add(new UserSearchHistoryDTO().setUserId(loginUser.getUserId()).setUserName(loginUser.getUser().getNickName()).setSearchContent(search) + .setPlatformId(SearchPlatformType.PC.getValue()).setSearchTime(DateUtils.getNowDate())); + // 设置用户搜索历史,不过期 + redisCache.setCacheObject(CacheConstants.USER_SEARCH_HISTORY + loginUser.getUserId(), userSearchList); + } + } diff --git a/xkt/src/main/resources/mapper/StoreHomepageMapper.xml b/xkt/src/main/resources/mapper/StoreHomepageMapper.xml index acee9a7ba..7eb85f907 100644 --- a/xkt/src/main/resources/mapper/StoreHomepageMapper.xml +++ b/xkt/src/main/resources/mapper/StoreHomepageMapper.xml @@ -3,94 +3,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - select id, store_id, type, file_id, order_num, version, del_flag, create_by, create_time, update_by, update_time from store_homepage - + - - - and store_id = #{storeId} - and type = #{type} - and file_id = #{fileId} - and order_num = #{orderNum} - and version = #{version} - - - - - - insert into store_homepage - - store_id, - type, - file_id, - order_num, - version, - del_flag, - create_by, - create_time, - update_by, - update_time, - - - #{storeId}, - #{type}, - #{fileId}, - #{orderNum}, - #{version}, - #{delFlag}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update store_homepage - - store_id = #{storeId}, - type = #{type}, - file_id = #{fileId}, - order_num = #{orderNum}, - version = #{version}, - del_flag = #{delFlag}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from store_homepage where id = #{id} - - - - delete from store_homepage where id in - - #{id} - - \ No newline at end of file diff --git a/xkt/src/main/resources/mapper/StoreMapper.xml b/xkt/src/main/resources/mapper/StoreMapper.xml index 3e0eae3fb..162d0e9d5 100644 --- a/xkt/src/main/resources/mapper/StoreMapper.xml +++ b/xkt/src/main/resources/mapper/StoreMapper.xml @@ -3,176 +3,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, user_id, store_name, brand_name, login_account, contact_name, contact_phone, contact_back_phone, wechat_account, qq_account, alipay_account, operate_years, store_address, fac_address, prod_scale, integrity_gold, remark, trial_end_time, storage_usage, store_status, template_num, version, del_flag, create_by, create_time, update_by, update_time from store - - - - - - - - insert into store - - user_id, - store_name, - brand_name, - login_account, - contact_name, - contact_phone, - contact_back_phone, - wechat_account, - qq_account, - alipay_account, - operate_years, - store_address, - fac_address, - prod_scale, - integrity_gold, - remark, - trial_end_time, - storage_usage, - store_status, - template_num, - version, - del_flag, - create_by, - create_time, - update_by, - update_time, - - - #{userId}, - #{storeName}, - #{brandName}, - #{loginAccount}, - #{contactName}, - #{contactPhone}, - #{contactBackPhone}, - #{wechatAccount}, - #{qqAccount}, - #{alipayAccount}, - #{operateYears}, - #{storeAddress}, - #{facAddress}, - #{prodScale}, - #{integrityGold}, - #{remark}, - #{trialEndTime}, - #{storageUsage}, - #{storeStatus}, - #{templateNum}, - #{version}, - #{delFlag}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update store - - user_id = #{userId}, - store_name = #{storeName}, - brand_name = #{brandName}, - login_account = #{loginAccount}, - contact_name = #{contactName}, - contact_phone = #{contactPhone}, - contact_back_phone = #{contactBackPhone}, - wechat_account = #{wechatAccount}, - qq_account = #{qqAccount}, - alipay_account = #{alipayAccount}, - operate_years = #{operateYears}, - store_address = #{storeAddress}, - fac_address = #{facAddress}, - prod_scale = #{prodScale}, - integrity_gold = #{integrityGold}, - remark = #{remark}, - trial_end_time = #{trialEndTime}, - storage_usage = #{storageUsage}, - store_status = #{storeStatus}, - template_num = #{templateNum}, - version = #{version}, - del_flag = #{delFlag}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from store where id = #{id} - - - - delete from store where id in - - #{id} - - - + diff --git a/xkt/src/main/resources/mapper/StoreProductFileMapper.xml b/xkt/src/main/resources/mapper/StoreProductFileMapper.xml index 4d634b9f9..a2a031f87 100644 --- a/xkt/src/main/resources/mapper/StoreProductFileMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductFileMapper.xml @@ -133,5 +133,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" rank_num + + \ No newline at end of file diff --git a/xkt/src/main/resources/mapper/StoreProductMapper.xml b/xkt/src/main/resources/mapper/StoreProductMapper.xml index 123ff1e72..a999d9f3b 100644 --- a/xkt/src/main/resources/mapper/StoreProductMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductMapper.xml @@ -87,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM store_product_color spc LEFT JOIN store_product_color_price spcp ON spc.store_color_id = spcp.store_color_id AND spc.store_prod_id = spcp.store_prod_id AND spcp.del_flag = 0 - LEFT JOIN store_product_color_size spcs ON spc.store_color_id = spcs.store_color_id AND spc.store_prod_id = spcs.store_prod_id + LEFT JOIN store_product_color_size spcs ON spc.store_color_id = spcs.store_color_id AND spc.store_prod_id = spcs.store_prod_id AND spcs.del_flag = 0 WHERE spc.del_flag = 0 AND spcs.standard = 1 @@ -225,6 +225,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LIMIT 20 + + + + diff --git a/xkt/src/main/resources/mapper/UserBrowsingHistoryMapper.xml b/xkt/src/main/resources/mapper/UserBrowsingHistoryMapper.xml index 569c67584..b997ecd95 100644 --- a/xkt/src/main/resources/mapper/UserBrowsingHistoryMapper.xml +++ b/xkt/src/main/resources/mapper/UserBrowsingHistoryMapper.xml @@ -3,119 +3,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - - - select id, user_id, file_id, store_prod_file_id, store_id, store_name, prod_art_num, price, prod_title, voucher_date, version, del_flag, create_by, create_time, update_by, update_time from user_browsing_history - - - - - - - - insert into user_browsing_history - - user_id, - file_id, - store_prod_file_id, - store_id, - store_name, - prod_art_num, - price, - prod_title, - voucher_date, - version, - del_flag, - create_by, - create_time, - update_by, - update_time, - - - #{userId}, - #{fileId}, - #{storeProdFileId}, - #{storeId}, - #{storeName}, - #{prodArtNum}, - #{price}, - #{prodTitle}, - #{voucherDate}, - #{version}, - #{delFlag}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update user_browsing_history - - user_id = #{userId}, - file_id = #{fileId}, - store_prod_file_id = #{storeProdFileId}, - store_id = #{storeId}, - store_name = #{storeName}, - prod_art_num = #{prodArtNum}, - price = #{price}, - prod_title = #{prodTitle}, - voucher_date = #{voucherDate}, - version = #{version}, - del_flag = #{delFlag}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from user_browsing_history where id = #{id} - - - - delete from user_browsing_history where id in - - #{id} - - \ No newline at end of file diff --git a/xkt/src/main/resources/mapper/UserSubscriptionsMapper.xml b/xkt/src/main/resources/mapper/UserSubscriptionsMapper.xml index 07a99f134..48d9275d1 100644 --- a/xkt/src/main/resources/mapper/UserSubscriptionsMapper.xml +++ b/xkt/src/main/resources/mapper/UserSubscriptionsMapper.xml @@ -48,5 +48,13 @@ count DESC + + \ No newline at end of file