master:商城首页商品详情接口完善;
parent
a7d3165f18
commit
99b5466e5f
|
|
@ -158,6 +158,16 @@ public class StoreProductController extends XktBaseController {
|
|||
return R.ok(BeanUtil.toBean(storeProdService.getStatusNum(storeId), StoreProdStatusCountResVO.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品各个状态下的分类数量
|
||||
*/
|
||||
@ApiOperation(value = "获取商品各个状态下的分类数量", httpMethod = "POST", response = R.class)
|
||||
@PostMapping(value = "/status/cate/num/{storeId}")
|
||||
public R<List<StoreProdStatusCateCountResVO>> getStatusCateNum(@Validated @RequestBody StoreProdStatusCateNumVO cateCountVO) {
|
||||
return R.ok(BeanUtil.copyToList(storeProdService.getStatusCateNum(
|
||||
BeanUtil.toBean(cateCountVO, StoreProdStatusCateNumDTO.class)), StoreProdStatusCateCountResVO.class));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出档口商品列表
|
||||
|
|
|
|||
|
|
@ -6,8 +6,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;
|
||||
import java.util.Date;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
|
|||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
|
|||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ public class StoreOrderPrintRespVO {
|
|||
|
||||
@ApiModelProperty(value = "物流单号")
|
||||
private String expressWaybillNo;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "文件流Base64编码")
|
||||
private String result;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
|
|||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
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;
|
||||
|
|
@ -12,7 +11,6 @@ import lombok.Data;
|
|||
*/
|
||||
@ApiModel("档口返回基本数据")
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class StoreSimpleResVO {
|
||||
|
||||
@ApiModelProperty(value = "档口模板ID")
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import lombok.Data;
|
|||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import lombok.Data;
|
|||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModel;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package com.ruoyi.web.controller.xkt.vo.storeProd;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel("档口商品各个状态下分类数量")
|
||||
@Data
|
||||
public class StoreProdStatusCateCountResVO {
|
||||
|
||||
@ApiModelProperty(value = "商品状态")
|
||||
private Integer prodStatus;
|
||||
@ApiModelProperty(value = "状态下分类数量")
|
||||
List<SPSCCCateCountVO> cateCountList;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class SPSCCCateCountVO {
|
||||
@ApiModelProperty(value = "商品分类ID")
|
||||
private Long prodCateId;
|
||||
@ApiModelProperty(value = "商品分类名称")
|
||||
private String prodCateName;
|
||||
@ApiModelProperty(value = "商品分类数量")
|
||||
private Integer cateCount;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.ruoyi.web.controller.xkt.vo.storeProd;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel("档口状态下分类数量")
|
||||
@Data
|
||||
public class StoreProdStatusCateNumVO {
|
||||
|
||||
@NotNull(message = "档口ID不能为空!")
|
||||
@ApiModelProperty(value = "档口ID", required = true)
|
||||
private Long storeId;
|
||||
@ApiModelProperty(value = "商品状态列表")
|
||||
@NotNull(message = "商品状态列表不能为空!")
|
||||
List<Integer> prodStatusList;
|
||||
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModel;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import io.swagger.annotations.ApiModelProperty;
|
|||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ import io.swagger.annotations.ApiModel;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
|
|||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ spring:
|
|||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://47.100.64.234:3377/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://127.0.0.1:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: root
|
||||
password: hongtu56@Mysql0212
|
||||
password: 123456
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
|
|
|
|||
|
|
@ -100,13 +100,13 @@ spring:
|
|||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
host: 47.100.64.234
|
||||
host: 127.0.0.1
|
||||
# 端口,默认为6379
|
||||
port: 6699
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
# 密码
|
||||
password: hongtu56@Redis0212
|
||||
password:
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
|
|||
*/
|
||||
@ApiModel("档口返回基本数据")
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Accessors(chain = true)
|
||||
public class StoreSimpleResDTO {
|
||||
|
||||
@ApiModelProperty(value = "档口模板ID")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
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;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel("档口商品各个状态下分类数量")
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class StoreProdStatusCateCountDTO {
|
||||
|
||||
@ApiModelProperty(value = "商品状态")
|
||||
private Integer prodStatus;
|
||||
@ApiModelProperty(value = "商品分类ID")
|
||||
private Long prodCateId;
|
||||
@ApiModelProperty(value = "商品分类名称")
|
||||
private String prodCateName;
|
||||
@ApiModelProperty(value = "商品分类数量")
|
||||
private Integer cateCount;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
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;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel("档口商品各个状态下分类数量")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class StoreProdStatusCateCountResDTO {
|
||||
|
||||
@ApiModelProperty(value = "商品状态")
|
||||
private Integer prodStatus;
|
||||
@ApiModelProperty(value = "状态下分类数量")
|
||||
List<SPSCCCateCountDTO> cateCountList;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class SPSCCCateCountDTO {
|
||||
@ApiModelProperty(value = "商品分类ID")
|
||||
private Long prodCateId;
|
||||
@ApiModelProperty(value = "商品分类名称")
|
||||
private String prodCateName;
|
||||
@ApiModelProperty(value = "商品分类数量")
|
||||
private Integer cateCount;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.ruoyi.xkt.dto.storeProduct;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel("档口状态下分类数量")
|
||||
@Data
|
||||
public class StoreProdStatusCateNumDTO {
|
||||
|
||||
@ApiModelProperty(value = "档口ID")
|
||||
private Long storeId;
|
||||
@ApiModelProperty(value = "商品状态列表")
|
||||
List<Integer> prodStatusList;
|
||||
|
||||
}
|
||||
|
|
@ -19,14 +19,6 @@ import java.util.List;
|
|||
@Repository
|
||||
public interface StoreMapper extends BaseMapper<Store> {
|
||||
|
||||
/**
|
||||
* 查询档口列表
|
||||
*
|
||||
* @param store 档口
|
||||
* @return 档口集合
|
||||
*/
|
||||
List<Store> selectStoreList(Store store);
|
||||
|
||||
/**
|
||||
* 修改档口
|
||||
*
|
||||
|
|
@ -41,9 +33,8 @@ public interface StoreMapper extends BaseMapper<Store> {
|
|||
* PC 商城首页 获取档口基本信息
|
||||
*
|
||||
* @param storeId 档口ID
|
||||
* @param userId 用户ID
|
||||
* @return StoreBasicResDTO
|
||||
*/
|
||||
StoreSimpleResDTO getSimpleInfo(@Param("storeId") Long storeId, @Param("userId") Long userId);
|
||||
StoreSimpleResDTO getSimpleInfo(@Param("storeId") Long storeId);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,14 +35,6 @@ public interface StoreProductMapper extends BaseMapper<StoreProduct> {
|
|||
*/
|
||||
List<StoreProdFuzzyResPicDTO> fuzzyQueryResPicList(@Param("storeId") Long storeId, @Param("prodArtNum") String prodArtNum);
|
||||
|
||||
/**
|
||||
* 查询档口的在售、尾货、下架数量
|
||||
*
|
||||
* @param storeId 档口ID
|
||||
* @return StoreProdCountDTO
|
||||
*/
|
||||
StoreProdStatusCountDTO selectStatusCount(Long storeId);
|
||||
|
||||
/**
|
||||
* 档口商品ID列表
|
||||
*
|
||||
|
|
@ -120,11 +112,19 @@ public interface StoreProductMapper extends BaseMapper<StoreProduct> {
|
|||
|
||||
/**
|
||||
* 获取档口各个状态的数量
|
||||
* @param storeId 档口ID
|
||||
*
|
||||
* @param storeId 档口ID
|
||||
* @param statusList 状态列表
|
||||
* @return StoreProdStatusCountResDTO
|
||||
*/
|
||||
StoreProdStatusCountResDTO getStatusNum(@Param("storeId") Long storeId, @Param("statusList") List<Integer> statusList);
|
||||
|
||||
/**
|
||||
* 获取档口各个状态的分类数量
|
||||
*
|
||||
* @param cateNumDTO 查询入参
|
||||
* @return StoreProdStatusCateCountResDTO
|
||||
*/
|
||||
List<StoreProdStatusCateCountDTO> getStatusCateNum(StoreProdStatusCateNumDTO cateNumDTO);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -134,4 +134,11 @@ public interface IStoreProductService {
|
|||
*/
|
||||
StoreProdStatusCountResDTO getStatusNum(Long storeId);
|
||||
|
||||
/**
|
||||
* 获取商品状态下分类数量
|
||||
*
|
||||
* @param dto 查询入参
|
||||
* @return StoreProdStatusCateCountResDTO
|
||||
*/
|
||||
List<StoreProdStatusCateCountResDTO> getStatusCateNum(StoreProdStatusCateNumDTO dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,12 +7,10 @@ import com.ruoyi.common.constant.HttpStatus;
|
|||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.xkt.domain.*;
|
||||
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.*;
|
||||
import com.ruoyi.xkt.enums.AdDisplayType;
|
||||
import com.ruoyi.xkt.enums.HomepageJumpType;
|
||||
import com.ruoyi.xkt.enums.HomepageType;
|
||||
import com.ruoyi.xkt.mapper.*;
|
||||
import com.ruoyi.xkt.service.IStoreHomepageService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
|
|||
|
|
@ -709,6 +709,23 @@ public class StoreProductServiceImpl implements IStoreProductService {
|
|||
.asList(EProductStatus.ON_SALE.getValue(), EProductStatus.TAIL_GOODS.getValue(), EProductStatus.OFF_SALE.getValue()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品状态下分类数量
|
||||
*
|
||||
* @param cateNumDTO 查询入参
|
||||
* @return StoreProdStatusCateCountResDTO
|
||||
*/
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public List<StoreProdStatusCateCountResDTO> getStatusCateNum(StoreProdStatusCateNumDTO cateNumDTO) {
|
||||
List<StoreProdStatusCateCountDTO> statusCateNumList = this.storeProdMapper.getStatusCateNum(cateNumDTO);
|
||||
List<StoreProdStatusCateCountResDTO> countList = new ArrayList<>();
|
||||
statusCateNumList.stream().collect(Collectors.groupingBy(StoreProdStatusCateCountDTO::getProdStatus))
|
||||
.forEach((prodStatus, cateList) -> countList.add(new StoreProdStatusCateCountResDTO().setProdStatus(prodStatus)
|
||||
.setCateCountList(BeanUtil.copyToList(cateList, StoreProdStatusCateCountResDTO.SPSCCCateCountDTO.class))));
|
||||
return countList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前商品的sku列表
|
||||
*
|
||||
|
|
|
|||
|
|
@ -356,7 +356,12 @@ public class StoreServiceImpl implements IStoreService {
|
|||
@Override
|
||||
@Transactional (readOnly = true)
|
||||
public StoreSimpleResDTO getSimpleInfo(Long storeId) {
|
||||
return this.storeMapper.getSimpleInfo(storeId, SecurityUtils.getUserId());
|
||||
StoreSimpleResDTO simpleDTO = this.storeMapper.getSimpleInfo(storeId);
|
||||
final Long userId = SecurityUtils.getUserId();
|
||||
UserSubscriptions userSub = ObjectUtils.isEmpty(userId) ? null
|
||||
: this.userSubMapper.selectOne(new LambdaQueryWrapper<UserSubscriptions>().eq(UserSubscriptions::getUserId, userId)
|
||||
.eq(UserSubscriptions::getStoreId, storeId).eq(UserSubscriptions::getDelFlag, Constants.UNDELETED));
|
||||
return simpleDTO.setFocus(ObjectUtils.isNotEmpty(userSub) ? Boolean.TRUE : Boolean.FALSE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue