Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
d06e51ba
提交
d06e51ba
authored
8月 04, 2020
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除已经迁移完的商品代码
上级
dfd25c15
隐藏空白字符变更
内嵌
并排
正在显示
28 个修改的文件
包含
13 行增加
和
890 行删除
+13
-890
ProductBrangPageBO.java
...coder/mall/product/biz/bo/product/ProductBrangPageBO.java
+0
-26
ProductSpuDetailBO.java
...coder/mall/product/biz/bo/product/ProductSpuDetailBO.java
+0
-105
ProductSpuPageBO.java
...iocoder/mall/product/biz/bo/product/ProductSpuPageBO.java
+0
-25
ProductSpuService.java
...coder/mall/product/biz/service/spu/ProductSpuService.java
+0
-15
pom.xml
moved/product/product-rest/pom.xml
+0
-41
AdminsProductAttrController.java
...uct/rest/controller/attr/AdminsProductAttrController.java
+0
-54
UserFavoriteController.java
...duct/rest/controller/favorite/UserFavoriteController.java
+0
-19
ProductAttrConvert.java
...er/mall/product/rest/convert/attr/ProductAttrConvert.java
+0
-20
ProductAttrAddRequest.java
...mall/product/rest/request/attr/ProductAttrAddRequest.java
+0
-19
ProductAttrPageRequest.java
...all/product/rest/request/attr/ProductAttrPageRequest.java
+0
-19
ProductAttrUpdateRequest.java
...l/product/rest/request/attr/ProductAttrUpdateRequest.java
+0
-25
ProductAttrValueAddRequest.java
...product/rest/request/attr/ProductAttrValueAddRequest.java
+0
-26
ProductAttrValueUpdateRequest.java
...duct/rest/request/attr/ProductAttrValueUpdateRequest.java
+0
-29
AdminsProductAttrPageResponse.java
...uct/rest/response/attr/AdminsProductAttrPageResponse.java
+0
-66
AdminsProductAttrSimpleResponse.java
...t/rest/response/attr/AdminsProductAttrSimpleResponse.java
+0
-38
AdminsProductAttrValueResponse.java
...ct/rest/response/attr/AdminsProductAttrValueResponse.java
+0
-26
AdminsProdutAttrResponse.java
.../product/rest/response/attr/AdminsProdutAttrResponse.java
+0
-24
pom.xml
moved/product/product-rpc-api/pom.xml
+0
-34
ProductSpuRpc.java
...n/java/cn/iocoder/mall/product/rpc/api/ProductSpuRpc.java
+0
-12
ProductSpuDetailResponse.java
...r/mall/product/rpc/response/ProductSpuDetailResponse.java
+0
-127
pom.xml
moved/product/product-rpc/pom.xml
+0
-40
ProductSpuConvert.java
...n/iocoder/mall/product/rpc/convert/ProductSpuConvert.java
+0
-16
ProductSpuRpcImpl.java
...va/cn/iocoder/mall/product/rpc/rpc/ProductSpuRpcImpl.java
+0
-24
ProductSpuServiceImpl.java
...n/iocoder/mall/product/service/ProductSpuServiceImpl.java
+0
-21
UsersProductSpuController.java
...plication/controller/users/UsersProductSpuController.java
+0
-37
ProductAttrKeyValueRespDTO.java
...oductservice/rpc/attr/dto/ProductAttrKeyValueRespDTO.java
+8
-1
ProductSpuController.http
...mall/shopweb/controller/product/ProductSpuController.http
+4
-0
ProductSpuController.java
...mall/shopweb/controller/product/ProductSpuController.java
+1
-1
没有找到文件。
moved/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/bo/product/ProductBrangPageBO.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
biz
.
bo
.
product
;
import
cn.iocoder.mall.product.biz.bo.brand.ProductBrandBO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 商品品牌分页 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductBrangPageBO
implements
Serializable
{
/**
* 品牌数组
*/
private
List
<
ProductBrandBO
>
brands
;
/**
* 总数
*/
private
Integer
count
;
}
moved/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/bo/product/ProductSpuDetailBO.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
biz
.
bo
.
product
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 商品 Spu 明细 BO(包括 Sku 明细)
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductSpuDetailBO
implements
Serializable
{
/**
* SPU 编号
*/
private
Integer
id
;
// ========== 基本信息 =========
/**
* SPU 名字
*/
private
String
name
;
/**
* 卖点
*/
private
String
sellPoint
;
/**
* 描述
*/
private
String
description
;
/**
* 分类编号
*/
private
Integer
cid
;
/**
* 分类名
*/
private
String
categoryName
;
/**
* 商品主图地址
*
* 数组,以逗号分隔
*
* 建议尺寸:800*800像素,你可以拖拽图片调整顺序,最多上传15张
*/
private
List
<
String
>
picUrls
;
// ========== 其他信息 =========
/**
* 是否上架商品(是否可见)。
*
* true 为已上架
* false 为已下架
*/
private
Boolean
visible
;
/**
* 排序字段
*/
private
Integer
sort
;
// ========== SKU =========
/**
* SKU 数组
*/
private
List
<
Sku
>
skus
;
/**
* 商品 Sku 明细 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Sku
implements
Serializable
{
/**
* sku 编号
*/
private
Integer
id
;
/**
* 商品编号
*/
private
Integer
spuId
;
/**
* 图片地址
*/
private
String
picURL
;
/**
* 规格值数组
*/
private
List
<
ProductAttrAndValuePairBO
>
attrs
;
/**
* 价格,单位:分
*/
private
Integer
price
;
/**
* 库存数量
*/
private
Integer
quantity
;
}
}
moved/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/bo/product/ProductSpuPageBO.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
biz
.
bo
.
product
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 商品 SPU 分页 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductSpuPageBO
implements
Serializable
{
/**
* Spu 数组
*/
private
List
<
ProductSpuBO
>
list
;
/**
* 总量
*/
private
Integer
total
;
}
moved/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/spu/ProductSpuService.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
biz
.
service
.
spu
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
public
interface
ProductSpuService
{
/**
* 获取SPU明细
*
* @param id spuId
* @return SPU明细
*/
ProductSpuDetailBO
getProductSpuDetail
(
Integer
id
);
}
moved/product/product-rest/pom.xml
deleted
100644 → 0
浏览文件 @
dfd25c15
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
product
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
product-rest
</artifactId>
<description>
提供 system 服务的 Rest 接口的实现,提供对外调用
</description>
<dependencies>
<!-- Mall 相关 -->
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-biz
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- Web 相关 -->
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
mall-spring-boot-starter-web
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
mall-spring-boot-starter-security
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
mall-spring-boot-starter-swagger
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</project>
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/controller/attr/AdminsProductAttrController.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
controller
.
attr
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrSimpleWithValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrWithValueBO
;
import
cn.iocoder.mall.product.biz.dto.attr.*
;
import
cn.iocoder.mall.product.biz.service.attr.ProductAttrService
;
import
cn.iocoder.mall.product.rest.convert.attr.ProductAttrConvert
;
import
cn.iocoder.mall.product.rest.request.attr.ProductAttrPageRequest
;
import
cn.iocoder.mall.product.rest.request.attr.ProductAttrAddRequest
;
import
cn.iocoder.mall.product.rest.request.attr.ProductAttrUpdateRequest
;
import
cn.iocoder.mall.product.rest.request.attr.ProductAttrValueAddRequest
;
import
cn.iocoder.mall.product.rest.response.attr.AdminsProductAttrPageResponse
;
import
cn.iocoder.mall.product.rest.response.attr.AdminsProductAttrSimpleResponse
;
import
cn.iocoder.mall.product.rest.response.attr.AdminsProdutAttrResponse
;
import
cn.iocoder.mall.product.rest.response.attr.AdminsProductAttrValueResponse
;
import
cn.iocoder.mall.security.core.context.AdminSecurityContextHolder
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 商品规格
*
* @author lanmao
* @version 1.0
* @date 2020/05/06 16:36
*/
@RestController
@RequestMapping
(
"admins"
)
@Api
(
"商品规格"
)
public
class
AdminsProductAttrController
{
@Autowired
private
ProductAttrService
productAttrService
;
@GetMapping
(
"/attr/tree"
)
@ApiOperation
(
value
=
"获得规格树结构"
,
notes
=
"该接口返回的信息更为精简。一般用于前端缓存数据字典到本地。"
)
public
CommonResult
<
List
<
AdminsProductAttrSimpleResponse
>>
tree
()
{
// 查询全列表
List
<
ProductAttrSimpleWithValueBO
>
result
=
productAttrService
.
getProductAttrList
();
return
CommonResult
.
success
(
ProductAttrConvert
.
INSTANCE
.
convertSimple
(
result
));
}
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/controller/favorite/UserFavoriteController.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
controller
.
favorite
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 用户收藏
* @author xiaofeng
* @date 2019/07/07 11:06
* @version 1.0
*/
@RestController
@RequestMapping
(
"users/favorite"
)
@Api
(
"用户收藏"
)
// TODO FROM 芋艿 to ilnhj:controller 分包的话,还是按照模块。然后通过 Admins 和 Users 前缀,区分不同的 Controlller
public
class
UserFavoriteController
{
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/convert/attr/ProductAttrConvert.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
convert
.
attr
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrSimpleWithValueBO
;
import
cn.iocoder.mall.product.rest.response.attr.AdminsProductAttrSimpleResponse
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
ProductAttrConvert
{
ProductAttrConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductAttrConvert
.
class
);
@Mappings
({})
List
<
AdminsProductAttrSimpleResponse
>
convertSimple
(
List
<
ProductAttrSimpleWithValueBO
>
simpleList
);
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/request/attr/ProductAttrAddRequest.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
request
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
@ApiModel
(
"商品 - 规格模块 - 商品规格添加 Request"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrAddRequest
{
@ApiModelProperty
(
name
=
"name"
,
value
=
"规格名"
,
required
=
true
,
example
=
"颜色"
)
@NotEmpty
(
message
=
"规格名不能为空"
)
private
String
name
;
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/request/attr/ProductAttrPageRequest.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
request
.
attr
;
import
cn.iocoder.common.framework.vo.PageParam
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
@ApiModel
(
"商品 - 规格模块 - 商品规格 Request"
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductAttrPageRequest
extends
PageParam
{
@ApiModelProperty
(
value
=
"商品规格名字,模糊匹配"
,
example
=
"材料"
)
private
String
name
;
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/request/attr/ProductAttrUpdateRequest.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
request
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"商品 - 规格模块 - 商品规格修改 Request"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrUpdateRequest
{
@ApiModelProperty
(
name
=
"id"
,
value
=
"规格编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"规格编号不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"name"
,
value
=
"规格名"
,
required
=
true
,
example
=
"颜色"
)
@NotEmpty
(
message
=
"规格名不能为空"
)
private
String
name
;
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/request/attr/ProductAttrValueAddRequest.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
request
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"商品 - 规格模块 - 商品规格值添加 Request"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueAddRequest
{
@ApiModelProperty
(
name
=
"attrId"
,
value
=
"规格编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"规格编号不能为空"
)
private
Integer
attrId
;
/**
* 名称
*/
@ApiModelProperty
(
name
=
"name"
,
value
=
"规格值名"
,
required
=
true
,
example
=
"红色"
)
@NotEmpty
(
message
=
"规格值名不能为空"
)
private
String
name
;
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/request/attr/ProductAttrValueUpdateRequest.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
request
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* Product 规格值修改 DTO
* <p>
* 注意,不允许修改所属规格
*/
@ApiModel
(
"商品 - 规格模块 - 商品规格值修改 Request"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueUpdateRequest
{
@ApiModelProperty
(
name
=
"id"
,
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"规格值编号不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
@NotEmpty
(
message
=
"规格名不能为空"
)
private
String
name
;
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/response/attr/AdminsProductAttrPageResponse.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
response
.
attr
;
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
;
@ApiModel
(
"商品管理 - 商品规格模块 - 商品规格分页信息 Response"
)
@Data
@Accessors
(
chain
=
true
)
public
class
AdminsProductAttrPageResponse
{
/**
* 规格编号
*/
private
Integer
id
;
/**
* 规格名
*/
private
String
name
;
/**
* 状态
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 规格值数组
*/
private
List
<
ProductAttrValue
>
values
;
@ApiModel
(
"规格值"
)
@Data
@Accessors
(
chain
=
true
)
public
static
class
ProductAttrValue
{
/**
* 规格值编号
*/
@ApiModelProperty
(
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
/**
* 规格值名
*/
@ApiModelProperty
(
value
=
"规格值名"
,
required
=
true
,
example
=
"小"
)
private
String
name
;
/**
* 状态
*/
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
)
private
Integer
status
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳格式"
)
private
Date
createTime
;
}
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/response/attr/AdminsProductAttrSimpleResponse.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
response
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
@ApiModel
(
value
=
"商品规格精简 VO"
,
description
=
"带有规格值数组"
)
@Data
@Accessors
(
chain
=
true
)
public
class
AdminsProductAttrSimpleResponse
{
@ApiModelProperty
(
value
=
"规格编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格名"
,
required
=
true
,
example
=
"颜色"
)
private
String
name
;
@ApiModelProperty
(
value
=
"规格值数组"
,
required
=
true
)
private
List
<
ProductAttrValue
>
values
;
@ApiModel
(
"规格值"
)
@Data
@Accessors
(
chain
=
true
)
public
static
class
ProductAttrValue
{
/**
* 规格值编号
*/
@ApiModelProperty
(
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
/**
* 规格值名
*/
@ApiModelProperty
(
value
=
"规格值名"
,
required
=
true
,
example
=
"小"
)
private
String
name
;
}
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/response/attr/AdminsProductAttrValueResponse.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
response
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
@ApiModel
(
value
=
"商品规格值 VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
AdminsProductAttrValueResponse
{
@ApiModelProperty
(
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
attrId
;
@ApiModelProperty
(
value
=
"规格名"
,
required
=
true
,
example
=
"颜色"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳"
)
private
Date
createTime
;
}
moved/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/response/attr/AdminsProdutAttrResponse.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rest
.
response
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
@ApiModel
(
value
=
"商品规格 VO"
,
description
=
"不带有规格值数组"
)
@Data
@Accessors
(
chain
=
true
)
public
class
AdminsProdutAttrResponse
{
@ApiModelProperty
(
value
=
"规格编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格名"
,
required
=
true
,
example
=
"颜色"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳"
)
private
Date
createTime
;
}
moved/product/product-rpc-api/pom.xml
deleted
100644 → 0
浏览文件 @
dfd25c15
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
product
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
product-rpc-api
</artifactId>
<dependencies>
<!-- Mall 相关 -->
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-biz-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- 工具类相关 -->
<dependency>
<groupId>
javax.validation
</groupId>
<artifactId>
validation-api
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
</dependencies>
</project>
moved/product/product-rpc-api/src/main/java/cn/iocoder/mall/product/rpc/api/ProductSpuRpc.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
api
;
import
cn.iocoder.mall.product.rpc.response.ProductSpuDetailResponse
;
/**
* @author Rai
*/
public
interface
ProductSpuRpc
{
ProductSpuDetailResponse
getProductSpuDetail
(
Integer
spuId
);
}
moved/product/product-rpc-api/src/main/java/cn/iocoder/mall/product/rpc/response/ProductSpuDetailResponse.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
response
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 商品 Spu 明细 BO(包括 Sku 明细)
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductSpuDetailResponse
implements
Serializable
{
/**
* SPU 编号
*/
private
Integer
id
;
// ========== 基本信息 =========
/**
* SPU 名字
*/
private
String
name
;
/**
* 卖点
*/
private
String
sellPoint
;
/**
* 描述
*/
private
String
description
;
/**
* 分类编号
*/
private
Integer
cid
;
/**
* 分类名
*/
private
String
categoryName
;
/**
* 商品主图地址
* <p>
* 数组,以逗号分隔
* <p>
* 建议尺寸:800*800像素,你可以拖拽图片调整顺序,最多上传15张
*/
private
List
<
String
>
picUrls
;
// ========== 其他信息 =========
/**
* 是否上架商品(是否可见)。
* <p>
* true 为已上架
* false 为已下架
*/
private
Boolean
visible
;
/**
* 排序字段
*/
private
Integer
sort
;
// ========== SKU =========
/**
* SKU 数组
*/
private
List
<
Sku
>
skus
;
/**
* 商品 Sku 明细 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Sku
implements
Serializable
{
/**
* sku 编号
*/
private
Integer
id
;
/**
* 商品编号
*/
private
Integer
spuId
;
/**
* 图片地址
*/
private
String
picURL
;
/**
* 规格值数组
*/
private
List
<
ProductAttrAndValuePair
>
attrs
;
/**
* 价格,单位:分
*/
private
Integer
price
;
/**
* 库存数量
*/
private
Integer
quantity
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
ProductAttrAndValuePair
implements
Serializable
{
/**
* 规格编号
*/
private
Integer
attrId
;
/**
* 规格名
*/
private
String
attrName
;
/**
* 规格值
*/
private
Integer
attrValueId
;
/**
* 规格值名
*/
private
String
attrValueName
;
}
}
moved/product/product-rpc/pom.xml
deleted
100644 → 0
浏览文件 @
dfd25c15
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
product
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
product-rpc
</artifactId>
<dependencies>
<!-- Mall 相关 -->
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-rpc-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-biz
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- RPC 相关 -->
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-dubbo
</artifactId>
</dependency>
<!-- Registry 和 Config 相关 -->
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-discovery
</artifactId>
</dependency>
</dependencies>
</project>
moved/product/product-rpc/src/main/java/cn/iocoder/mall/product/rpc/convert/ProductSpuConvert.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
convert
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.rpc.response.ProductSpuDetailResponse
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
@Mapper
public
interface
ProductSpuConvert
{
ProductSpuConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductSpuConvert
.
class
);
@Mappings
({})
ProductSpuDetailResponse
convertDetail
(
ProductSpuDetailBO
productSpuDetail
);
}
moved/product/product-rpc/src/main/java/cn/iocoder/mall/product/rpc/rpc/ProductSpuRpcImpl.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
rpc
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.biz.service.spu.ProductSpuService
;
import
cn.iocoder.mall.product.rpc.api.ProductSpuRpc
;
import
cn.iocoder.mall.product.rpc.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.rpc.response.ProductSpuDetailResponse
;
import
org.apache.dubbo.config.annotation.Service
;
import
org.springframework.beans.factory.annotation.Autowired
;
@Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuService.version}"
)
public
class
ProductSpuRpcImpl
implements
ProductSpuRpc
{
@Autowired
private
ProductSpuService
productSpuService
;
@Override
public
ProductSpuDetailResponse
getProductSpuDetail
(
Integer
spuId
)
{
ProductSpuDetailBO
productSpuDetail
=
productSpuService
.
getProductSpuDetail
(
spuId
);
return
ProductSpuConvert
.
INSTANCE
.
convertDetail
(
productSpuDetail
);
}
}
moved/product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductSpuServiceImpl.java
浏览文件 @
d06e51ba
...
@@ -49,27 +49,6 @@ public class ProductSpuServiceImpl implements ProductSpuService {
...
@@ -49,27 +49,6 @@ public class ProductSpuServiceImpl implements ProductSpuService {
// return ProductSpuConvert.INSTANCE.convert(productSpuDO);
// return ProductSpuConvert.INSTANCE.convert(productSpuDO);
// }
// }
@Override
public
ProductSpuDetailBO
getProductSpuDetail
(
Integer
id
)
{
// 校验商品 spu 存在
ProductSpuDO
spu
=
productSpuMapper
.
selectById
(
id
);
if
(
spu
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
ProductErrorCodeEnum
.
PRODUCT_SPU_NOT_EXISTS
.
getCode
());
}
// 获得商品分类分类
ProductCategoryDO
category
=
productCategoryService
.
getProductCategory
(
spu
.
getCid
());
Assert
.
notNull
(
category
,
String
.
format
(
"分类编号(%d) 对应"
,
spu
.
getCid
()));
// 获得商品 sku 数组
List
<
ProductSkuDO
>
skus
=
productSkuMapper
.
selectListBySpuIdAndStatus
(
id
,
ProductSpuConstants
.
SKU_STATUS_ENABLE
);
// 获得规格
Set
<
Integer
>
productAttrValueIds
=
new
HashSet
<>();
skus
.
forEach
(
sku
->
productAttrValueIds
.
addAll
(
StringUtil
.
splitToInt
(
sku
.
getAttrs
(),
","
)));
List
<
ProductAttrAndValuePairBO
>
attrAndValuePairList
=
productAttrService
.
validProductAttrAndValue
(
productAttrValueIds
,
false
);
// 读取规格时,不考虑规格是否被禁用
// 返回成功
return
ProductSpuConvert
.
INSTANCE
.
convert2
(
spu
,
skus
,
attrAndValuePairList
,
category
);
}
@Override
@Override
public
Boolean
updateProductSpuSort
(
Integer
adminId
,
Integer
spuId
,
Integer
sort
)
{
public
Boolean
updateProductSpuSort
(
Integer
adminId
,
Integer
spuId
,
Integer
sort
)
{
// 校验 Spu 是否存在
// 校验 Spu 是否存在
...
...
moved/product/product-start/src/main/java/cn/iocoder/mall/product/application/controller/users/UsersProductSpuController.java
deleted
100644 → 0
浏览文件 @
dfd25c15
package
cn
.
iocoder
.
mall
.
product
.
application
.
controller
.
users
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.product.api.ProductSpuService
;
import
cn.iocoder.mall.product.api.bo.ProductSpuPageBO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuPageDTO
;
import
cn.iocoder.mall.product.application.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuPageVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
@RestController
@RequestMapping
(
"users/spu"
)
@Api
(
"商品 SPU + SKU"
)
public
class
UsersProductSpuController
{
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuService.version}"
)
private
ProductSpuService
productSpuService
;
@GetMapping
(
"/info"
)
@ApiOperation
(
"商品 SPU 明细"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"SPU 编号"
,
required
=
true
,
example
=
"100"
)
public
CommonResult
<
UsersProductSpuDetailVO
>
info
(
@RequestParam
(
"id"
)
Integer
id
)
{
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert4
(
productSpuService
.
getProductSpuDetail
(
id
)));
}
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrKeyValueRespDTO.java
浏览文件 @
d06e51ba
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
attr
.
dto
;
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
attr
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
/**
* 商品规格 KEY + VALUE 对的 Response DTO
* 商品规格 KEY + VALUE 对的 Response DTO
*/
*/
public
class
ProductAttrKeyValueRespDTO
{
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrKeyValueRespDTO
implements
Serializable
{
/**
/**
* 规格 KEY 编号
* 规格 KEY 编号
...
...
shop-web-app/src/main/java/cn/iocoder/mall/shopweb/controller/product/ProductSpuController.http
浏览文件 @
d06e51ba
...
@@ -6,4 +6,8 @@ Content-Type: application/x-www-form-urlencoded
...
@@ -6,4 +6,8 @@ Content-Type: application/x-www-form-urlencoded
GET {{shop-api-base-url}}/product-spu/search-condition?keyword=骚气
GET {{shop-api-base-url}}/product-spu/search-condition?keyword=骚气
Content-Type: application/x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded
### /product-spu/get-detail 成功
GET {{shop-api-base-url}}/product-spu/get-detail?id=63
Content-Type: application/x-www-form-urlencoded
###
###
shop-web-app/src/main/java/cn/iocoder/mall/shopweb/controller/product/ProductSpuController.java
浏览文件 @
d06e51ba
...
@@ -42,7 +42,7 @@ public class ProductSpuController {
...
@@ -42,7 +42,7 @@ public class ProductSpuController {
return
success
(
productSpuManager
.
getProductSpuSearchCondition
(
keyword
));
return
success
(
productSpuManager
.
getProductSpuSearchCondition
(
keyword
));
}
}
@GetMapping
(
"/get
_
detail"
)
@GetMapping
(
"/get
-
detail"
)
@ApiOperation
(
"获得商品 SPU 的明细,包括 SKU 等等信息"
)
@ApiOperation
(
"获得商品 SPU 的明细,包括 SKU 等等信息"
)
@ApiImplicitParam
(
name
=
"id"
,
required
=
true
,
value
=
"商品 SPU 编号"
,
example
=
"1024"
)
@ApiImplicitParam
(
name
=
"id"
,
required
=
true
,
value
=
"商品 SPU 编号"
,
example
=
"1024"
)
public
CommonResult
<
ProductSpuDetailRespVO
>
getProductSpuDetail
(
@RequestParam
(
"id"
)
Integer
id
)
{
public
CommonResult
<
ProductSpuDetailRespVO
>
getProductSpuDetail
(
@RequestParam
(
"id"
)
Integer
id
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论