master :推广营销返回数据调优;

pull/1121/head
liujiang 2025-05-31 22:52:07 +08:00
parent ec869177b3
commit 59ac41fffb
120 changed files with 1412 additions and 1153 deletions

View File

@ -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<UserOverallResVO> getOverall() {
return R.ok(BeanUtil.toBean(userIndexService.getOverall(), UserOverallResVO.class));
}
}

View File

@ -34,10 +34,6 @@ public class StoreController extends XktBaseController {
final IStoreService storeService;
// TODO 有一个权重,每个档口原始值都相同
@Log(title = "新增档口", businessType = BusinessType.UPDATE)
@PostMapping
public R<Integer> 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<StoreBasicResVO> getInfo(@PathVariable("storeId") Long storeId) {
return R.ok(BeanUtil.toBean(storeService.getInfo(storeId), StoreBasicResVO.class));
public R<StoreResVO> 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<StoreSimpleResVO> getSimpleInfo(@PathVariable("storeId") Long storeId) {
return R.ok(BeanUtil.toBean(storeService.getSimpleInfo(storeId), StoreSimpleResVO.class));
}
@ApiOperation(value = "档口审核是获取档口基本信息", httpMethod = "GET", response = R.class)

View File

@ -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<StoreHomeDecorationVO> 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<List<StoreRecommendResVO>> 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<StoreHomeResVO> 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<StoreHomeProdResVO> getStoreProdInfo(@PathVariable("storeId") Long storeId, @PathVariable("storeProdId") Long storeProdId) {
return R.ok(BeanUtil.toBean(storeHomeService.getStoreProdInfo(storeId, storeProdId), StoreHomeProdResVO.class));
}
}*/
}

View File

@ -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<StoreProdPCResVO> 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<StoreProdStatusCountResVO> getStatusNum(@PathVariable Long storeId) {
return R.ok(BeanUtil.toBean(storeProdService.getStatusNum(storeId), StoreProdStatusCountResVO.class));
}
/**
*

View File

@ -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<UserBrowsingHistory> 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<UserBrowsingHistory> list = userBrowsingHistoryService.selectUserBrowsingHistoryList(userBrowsingHistory);
ExcelUtil<UserBrowsingHistory> util = new ExcelUtil<UserBrowsingHistory>(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));
}
}

View File

@ -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<Integer> 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<UserSubscPageResDTO>> 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<Integer> 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)));
}
}

View File

@ -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<List<PCIndexTopLeftBannerVO>> 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<Page<APPIndexHotSaleDTO>> appIndexHotSalePage(@Validated @RequestBody IndexSearchVO searchVO) throws IOException {

View File

@ -47,6 +47,6 @@ public class AdRoundStoreCreateVO {
private String symbol;
@NotBlank(message = "交易密码不能为空!")
@ApiModelProperty(value = "交易密码")
private String transactionPassword;
private String transactionPassword;
}

View File

@ -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推广图")

View File

@ -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商品")

View File

@ -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商品")

View File

@ -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 {

View File

@ -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商品")

View File

@ -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<String> tags;
}

View File

@ -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商品")

View File

@ -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<String> tags;
}

View File

@ -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 = "左侧列表")

View File

@ -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推广图")

View File

@ -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")

View File

@ -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")

View File

@ -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 商品")

View File

@ -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 档口名称")

View File

@ -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店铺名称")

View File

@ -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店铺名称")

View File

@ -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推广图")

View File

@ -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推广图")

View File

@ -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推广图")

View File

@ -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商品")

View File

@ -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推广图")

View File

@ -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推广图")

View File

@ -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推广图")

View File

@ -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 推广图")

View File

@ -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 = "搜索次数")

View File

@ -15,7 +15,7 @@ import lombok.Data;
public class StoreApproveResVO {
@ApiModelProperty(value = "档口基本信息")
private StoreBasicResVO basic;
private StoreResVO basic;
@ApiModelProperty(value = "档口认证信息")
private StoreCertResVO certificate;

View File

@ -15,7 +15,7 @@ import java.util.Date;
*/
@ApiModel("档口基本信息")
@Data
public class StoreBasicResVO {
public class StoreResVO {
@ApiModelProperty(value = "档口ID")
private Long storeId;

View File

@ -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;
}

View File

@ -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<String> tags;
}

View File

@ -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;

View File

@ -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<SPPCColorVO> colorList;
@ApiModelProperty(value = "档口类目属性")
private StoreProdCateAttrVO cateAttr;
@ApiModelProperty(value = "详情内容")
private String detail;
@ApiModelProperty(value = "商品主图视频及主图")
private List<StoreProdFileVO> 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<SPPCSizeStockVO> 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;
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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:";
}

View File

@ -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<Integer> PIC_SEARCH_INSERT_POSITIONS = new HashSet<>(Arrays.asList(4, 8, 12, 16, 19));
/**
* 广 2 9 18 27 36
*/
public static final Set<Integer> STORE_RECOMMEND_INSERT_POSITIONS = new HashSet<>(Arrays.asList(2, 9, 18, 27, 36));
}

View File

@ -574,6 +574,32 @@ public class XktTask {
}
/**
* 2
*/
@Transactional
public void dailyUpdateUserSearchHistory(){
// TODO
// TODO
// TODO
// TODO
}
/**
* 3redis
*/
@Transactional
public void dailyUpdateSearchHotToRedis(){
// TODO
// TODO
// TODO
// TODO
}
/**
*

View File

@ -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();
}
}

View File

@ -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;
}

View File

@ -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 {
}

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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 = "标题")

View File

@ -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 = "是否广告")

View File

@ -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 = "是否广告")

View File

@ -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 = "是否广告")

View File

@ -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 = "是否广告")

View File

@ -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<String> tags;
}

View File

@ -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 = "是否广告")

View File

@ -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<String> tags;
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 = "是否广告")

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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推广图")

View File

@ -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 {

View File

@ -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 = "是否广告")

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -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 {

View File

@ -15,7 +15,7 @@ import lombok.Data;
public class StoreApproveResDTO {
@ApiModelProperty(value = "档口基本信息")
private StoreBasicResDTO basic;
private StoreResDTO basic;
@ApiModelProperty(value = "档口认证信息")
private StoreCertResDTO certificate;

View File

@ -15,7 +15,7 @@ import java.util.Date;
*/
@ApiModel("档口基本信息")
@Data
public class StoreBasicResDTO {
public class StoreResDTO {
@ApiModelProperty(value = "档口ID")
private Long storeId;

View File

@ -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;
}

View File

@ -19,7 +19,7 @@ import java.util.List;
public class StoreHomeDecorationDTO {
@ApiModelProperty(value = "档口首页装修大轮播图")
private List<BigBannerDTO> bigBannerList;
private List<BigBannerDTO> bannerList;
@ApiModelProperty(value = "档口首页装修其它图部分")
private List<DecorationDTO> decorList;

View File

@ -22,7 +22,7 @@ public class StoreHomeDecorationResDTO {
@ApiModelProperty(value = "档口首页装修模板Num")
private Integer templateNum;
@ApiModelProperty(value = "档口首页装修大轮播图")
private List<DecorationDTO> bigBannerList;
private List<DecorationDTO> bannerList;
@ApiModelProperty(value = "档口首页装修其它图部分")
private List<DecorationDTO> decorationList;

View File

@ -39,7 +39,6 @@ public class StoreHomeProdResDTO {
private List<DecorationVO> recommendedList;
@Data
@ApiModel(value = "档口首页大轮播图")
@Accessors(chain = true)
public static class DecorationVO {
@ApiModelProperty(value = "业务类型ID如果选择不跳转 不传选择跳转店铺传storeId选择跳转商品传storeProdId")

View File

@ -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<String> tags;
}

View File

@ -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<StoreProdSkuItemDTO> colorList;
@ApiModelProperty(value = "档口类目属性")
private StoreProdCateAttrDTO cateAttr;
@ApiModelProperty(value = "详情内容")
private String detail;
@ApiModelProperty(value = "商品主图视频及主图")
private List<StoreProdFileResDTO> 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;
}
}

View File

@ -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<SPSISizeStockDTO> 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;
}
}

View File

@ -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<SPColorDTO> 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<SPSizeStockDTO> 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<StoreProdSkuItemDTO> colorList;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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<StoreHomepage> {
/**
*
*
* @param id
* @return
*/
public StoreHomepage selectStoreHomepageByStoreHomeId(Long id);
/**
*
*
*
* @param storeHomepage
* @return
* @param storeId ID
* @return List<StoreHomeProdTypeResDTO>
*/
public List<StoreHomepage> selectStoreHomepageList(StoreHomepage storeHomepage);
List<StoreRecommendResDTO> 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);
}

View File

@ -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<Store> {
/**
*
*
* @param id
* @return
*/
public Store selectStoreByStoreId(Long id);
/**
*
@ -30,15 +25,7 @@ public interface StoreMapper extends BaseMapper<Store> {
* @param store
* @return
*/
public List<Store> selectStoreList(Store store);
/**
*
*
* @param store
* @return
*/
public int insertStore(Store store);
List<Store> selectStoreList(Store store);
/**
*
@ -46,24 +33,17 @@ public interface StoreMapper extends BaseMapper<Store> {
* @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<StorePageResDTO> selectStorePage(StorePageDTO pageDTO);
/**
* PC
*
* @param storeId ID
* @param userId ID
* @return StoreBasicResDTO
*/
StoreSimpleResDTO getSimpleInfo(@Param("storeId") Long storeId, @Param("userId") Long userId);
}

View File

@ -74,8 +74,17 @@ public interface StoreProductFileMapper extends BaseMapper<StoreProductFile> {
/**
* 4
*
* @return List<StoreProdFileLatestFourProdDTO>
*/
List<StoreProdFileLatestFourProdDTO> selectLatestFourProdList();
/**
* ID
*
* @param storeProdId ID
* @return List<StoreProdFileResDTO>
*/
List<StoreProdFileResDTO> selectVideoAndMainPicList(Long storeProdId);
}

View File

@ -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<StoreProduct> {
* @return List<PicSearchAdvertDTO>
*/
List<StoreProdViewDTO> getStoreProdViewAttr(@Param("storeProdIdList") List<Long> 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<StoreProduct> {
/**
* 20
* @param yesterday
*
* @param yesterday
* @param oneWeekAgo
* @return List<DailyStoreTagDTO>
*/
List<DailyStoreTagDTO> 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<Integer> statusList);
}

View File

@ -12,51 +12,5 @@ import java.util.List;
* @date 2025-03-26
*/
public interface UserBrowsingHistoryMapper extends BaseMapper<UserBrowsingHistory> {
/**
*
*
* @param id
* @return
*/
public UserBrowsingHistory selectUserBrowsingHistoryByUserBrowHisId(Long id);
/**
*
*
* @param userBrowsingHistory
* @return
*/
public List<UserBrowsingHistory> 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);
}

View File

@ -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<UserSubscriptions> {
/**
* 10
*
* @return
*/
List<DailyStoreTagDTO> selectTop10List();
/**
*
*
* @param userId ID
* @return UserOverallResDTO
*/
UserOverallResDTO getOverall(Long userId);
}

View File

@ -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<StoreRecommendResDTO>
*/
List<StoreRecommendResDTO> getStoreRecommendList(Long storeId);
}

Some files were not shown because too many files have changed in this diff Show More