Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
3e485c2d
提交
3e485c2d
authored
4月 09, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
后端:删除购物车模块,合并到订单模块
后端:设计订单价格计算相关方法
上级
6eda8734
隐藏空白字符变更
内嵌
并排
正在显示
32 个修改的文件
包含
535 行增加
和
413 行删除
+535
-413
pom.xml
cart/cart-application/pom.xml
+0
-70
CartApplication.java
...ava/cn/iocoder/mall/cart/application/CartApplication.java
+0
-13
MVCConfiguration.java
...ocoder/mall/cart/application/config/MVCConfiguration.java
+0
-42
SwaggerConfiguration.java
...er/mall/cart/application/config/SwaggerConfiguration.java
+0
-36
application.yaml
cart/cart-application/src/main/resources/application.yaml
+0
-9
pom.xml
cart/cart-service-api/pom.xml
+0
-40
CartService.java
...i/src/main/java/cn/iocoder/mall/cart/api/CartService.java
+0
-4
CartErrorCodeEnum.java
.../cn/iocoder/mall/cart/api/constant/CartErrorCodeEnum.java
+0
-28
pom.xml
cart/cart-service-impl/pom.xml
+0
-66
DatabaseConfiguration.java
...n/iocoder/mall/cart/biz/config/DatabaseConfiguration.java
+0
-14
ServiceExceptionConfiguration.java
...r/mall/cart/biz/config/ServiceExceptionConfiguration.java
+0
-19
package-info.java
.../src/main/java/cn/iocoder/mall/cart/biz/package-info.java
+0
-1
application.yaml
...t-service-impl/src/main/resources/config/application.yaml
+0
-44
pom.xml
cart/pom.xml
+0
-21
UsersCartController.java
...der/application/controller/users/UsersCartController.java
+22
-0
UsersOrderController.java
...er/application/controller/users/UsersOrderController.java
+0
-1
FeeMessageVO.java
...va/cn/iocoder/mall/order/application/vo/FeeMessageVO.java
+26
-0
UsersCartItemVO.java
...cn/iocoder/mall/order/application/vo/UsersCartItemVO.java
+5
-0
UsersCartListVO.java
...cn/iocoder/mall/order/application/vo/UsersCartListVO.java
+11
-0
CartService.java
.../src/main/java/cn/iocoder/mall/order/api/CartService.java
+99
-0
OrderService.java
...src/main/java/cn/iocoder/mall/order/api/OrderService.java
+9
-4
CalcOrderPriceBO.java
...n/java/cn/iocoder/mall/order/api/bo/CalcOrderPriceBO.java
+99
-0
CartBO.java
...pi/src/main/java/cn/iocoder/mall/order/api/bo/CartBO.java
+24
-0
CartItemBO.java
...rc/main/java/cn/iocoder/mall/order/api/bo/CartItemBO.java
+15
-0
CartItemGroupBO.java
...in/java/cn/iocoder/mall/order/api/bo/CartItemGroupBO.java
+21
-0
FeeDetailBO.java
...c/main/java/cn/iocoder/mall/order/api/bo/FeeDetailBO.java
+4
-0
FeeMessageBO.java
.../main/java/cn/iocoder/mall/order/api/bo/FeeMessageBO.java
+26
-0
MerchantItemGroup.java
.../java/cn/iocoder/mall/order/api/bo/MerchantItemGroup.java
+19
-0
PostageDetailBO.java
...in/java/cn/iocoder/mall/order/api/bo/PostageDetailBO.java
+14
-0
CalcOrderPriceDTO.java
...java/cn/iocoder/mall/order/api/dto/CalcOrderPriceDTO.java
+41
-0
CartItemDO.java
...java/cn/iocoder/mall/order/biz/dataobject/CartItemDO.java
+100
-0
pom.xml
pom.xml
+0
-1
没有找到文件。
cart/cart-application/pom.xml
deleted
100644 → 0
浏览文件 @
6eda8734
<?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>
cart
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
cart-application
</artifactId>
<dependencies>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
user-sdk
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
dubbo
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.boot
</groupId>
<artifactId>
dubbo-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.curator
</groupId>
<artifactId>
curator-framework
</artifactId>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<optional>
true
</optional>
</dependency>
</dependencies>
</project>
cart/cart-application/src/main/java/cn/iocoder/mall/cart/application/CartApplication.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
application
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
(
scanBasePackages
=
{
"cn.iocoder.mall.cart"
})
public
class
CartApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
CartApplication
.
class
,
args
);
}
}
cart/cart-application/src/main/java/cn/iocoder/mall/cart/application/config/MVCConfiguration.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
application
.
config
;
import
cn.iocoder.common.framework.config.GlobalExceptionHandler
;
import
cn.iocoder.common.framework.servlet.CorsFilter
;
import
org.springframework.boot.web.servlet.FilterRegistrationBean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.web.servlet.config.annotation.*
;
@EnableWebMvc
@Configuration
@Import
(
value
=
{
GlobalExceptionHandler
.
class
})
// 统一全局返回
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
// @Autowired
// private SecurityInterceptor securityInterceptor;
// @Reference
// private OAuth2Service oauth2Service;
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// registry.addInterceptor(securityInterceptor);
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
@Bean
public
FilterRegistrationBean
<
CorsFilter
>
corsFilter
()
{
FilterRegistrationBean
<
CorsFilter
>
registrationBean
=
new
FilterRegistrationBean
<>();
registrationBean
.
setFilter
(
new
CorsFilter
());
registrationBean
.
addUrlPatterns
(
"/*"
);
return
registrationBean
;
}
}
cart/cart-application/src/main/java/cn/iocoder/mall/cart/application/config/SwaggerConfiguration.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
application
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
@Configuration
@EnableSwagger2
public
class
SwaggerConfiguration
{
@Bean
public
Docket
createRestApi
()
{
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
())
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"cn.iocoder.mall.biz.application.controller"
))
.
paths
(
PathSelectors
.
any
())
.
build
();
}
private
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
"购物车子系统"
)
.
description
(
"购物车子系统"
)
.
termsOfServiceUrl
(
"http://www.iocoder.cn"
)
.
version
(
"1.0.0"
)
.
build
();
}
}
cart/cart-application/src/main/resources/application.yaml
deleted
100644 → 0
浏览文件 @
6eda8734
spring
:
application
:
name
:
cart-application
# server
server
:
port
:
18086
servlet
:
context-path
:
/cart-api/
cart/cart-service-api/pom.xml
deleted
100644 → 0
浏览文件 @
6eda8734
<?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>
cart
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
cart-service-api
</artifactId>
<dependencies>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
javax.validation
</groupId>
<artifactId>
validation-api
</artifactId>
</dependency>
<dependency>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct
</artifactId>
<!-- use mapstruct-jdk8 for Java 8 or higher -->
</dependency>
<dependency>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct-jdk8
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
</dependencies>
</project>
cart/cart-service-api/src/main/java/cn/iocoder/mall/cart/api/CartService.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
api
;
public
interface
CartService
{
}
cart/cart-service-api/src/main/java/cn/iocoder/mall/cart/api/constant/CartErrorCodeEnum.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
api
.
constant
;
/**
* 错误码枚举类
*
* 购物车系统,使用 1-005-000-000 段
*/
public
enum
CartErrorCodeEnum
{
;
private
final
int
code
;
private
final
String
message
;
CartErrorCodeEnum
(
int
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
}
cart/cart-service-impl/pom.xml
deleted
100644 → 0
浏览文件 @
6eda8734
<?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>
cart
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
cart-service-impl
</artifactId>
<dependencies>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
dubbo
</artifactId>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
cart-service-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-jdbc
</artifactId>
</dependency>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
</dependency>
<dependency>
<groupId>
com.xuxueli
</groupId>
<artifactId>
xxl-job-core
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.rocketmq
</groupId>
<artifactId>
rocketmq-spring-boot-starter
</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 提供给 mapstruct 使用 -->
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
cart/cart-service-impl/src/main/java/cn/iocoder/mall/cart/biz/config/DatabaseConfiguration.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
biz
.
config
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
@Configuration
@MapperScan
(
"cn.iocoder.mall.cart.biz.dao"
)
// 扫描对应的 Mapper 接口
@EnableTransactionManagement
(
proxyTargetClass
=
true
)
// 启动事务管理。为什么使用 proxyTargetClass 参数,参见 https://blog.csdn.net/huang_550/article/details/76492600
public
class
DatabaseConfiguration
{
// 数据源,使用 HikariCP
}
cart/cart-service-impl/src/main/java/cn/iocoder/mall/cart/biz/config/ServiceExceptionConfiguration.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
biz
.
config
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.mall.cart.api.constant.CartErrorCodeEnum
;
import
org.springframework.boot.context.event.ApplicationReadyEvent
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.event.EventListener
;
@Configuration
public
class
ServiceExceptionConfiguration
{
@EventListener
(
ApplicationReadyEvent
.
class
)
// 可参考 https://www.cnblogs.com/ssslinppp/p/7607509.html
public
void
initMessages
()
{
for
(
CartErrorCodeEnum
item
:
CartErrorCodeEnum
.
values
())
{
ServiceExceptionUtil
.
put
(
item
.
getCode
(),
item
.
getMessage
());
}
}
}
cart/cart-service-impl/src/main/java/cn/iocoder/mall/cart/biz/package-info.java
deleted
100644 → 0
浏览文件 @
6eda8734
package
cn
.
iocoder
.
mall
.
cart
.
biz
;
cart/cart-service-impl/src/main/resources/config/application.yaml
deleted
100644 → 0
浏览文件 @
6eda8734
spring
:
# datasource
datasource
:
url
:
jdbc:mysql://180.167.213.26:13306/mall_cart?useSSL=false&useUnicode=true&characterEncoding=UTF-8
driver-class-name
:
com.mysql.jdbc.Driver
username
:
root
password
:
${MALL_MYSQL_PASSWORD}
# mybatis
mybatis
:
config-location
:
classpath:mybatis-config.xml
mapper-locations
:
classpath:mapper/*.xml
type-aliases-package
:
cn.iocoder.mall.cart.biz.dataobject
# dubbo
dubbo
:
application
:
name
:
cart-service
registry
:
address
:
zookeeper://127.0.0.1:2181
protocol
:
port
:
-1
name
:
dubbo
scan
:
base-packages
:
cn.iocoder.mall.cart.biz.service
# xxl-job
#xxl:
# job:
# admin:
# addresses: http://127.0.0.1:8080/xxl-job-admin
# executor:
# appname: cart-job-executor
# ip:
# port: 0
# logpath: /Users/yunai/logs/xxl-job/
# logretentiondays: 1
# accessToken:
# rocketmq
#rocketmq:
# name-server: 127.0.0.1:9876
# producer:
# group: cart-producer-group
cart/pom.xml
deleted
100644 → 0
浏览文件 @
6eda8734
<?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>
mall-parent
</artifactId>
<groupId>
cn.iocoder.mall
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
cart
</artifactId>
<packaging>
pom
</packaging>
<modules>
<module>
cart-application
</module>
<module>
cart-service-api
</module>
<module>
cart-service-impl
</module>
</modules>
</project>
order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/UsersCartController.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
application
.
controller
.
users
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.order.api.CartService
;
import
cn.iocoder.mall.order.api.OrderService
;
public
class
UsersCartController
{
// TODO 注入
private
CartService
cartService
;
// TODO 注入
private
OrderService
orderService
;
public
CommonResult
<
Object
>
confirmOrder
()
{
// 查询购物车列表(选中的)
// cartService.list(userId, true);
// 查询确认订单信息的明细
return
null
;
}
}
order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/UsersOrderController.java
浏览文件 @
3e485c2d
...
@@ -6,7 +6,6 @@ import cn.iocoder.mall.order.api.bo.OrderCreateBO;
...
@@ -6,7 +6,6 @@ import cn.iocoder.mall.order.api.bo.OrderCreateBO;
import
cn.iocoder.mall.order.api.bo.OrderPageBO
;
import
cn.iocoder.mall.order.api.bo.OrderPageBO
;
import
cn.iocoder.mall.order.api.dto.OrderCreateDTO
;
import
cn.iocoder.mall.order.api.dto.OrderCreateDTO
;
import
cn.iocoder.mall.order.api.dto.OrderQueryDTO
;
import
cn.iocoder.mall.order.api.dto.OrderQueryDTO
;
import
cn.iocoder.mall.order.api.dto.OrderUserPageDTO
;
import
cn.iocoder.mall.order.application.convert.OrderConvertAPP
;
import
cn.iocoder.mall.order.application.convert.OrderConvertAPP
;
import
cn.iocoder.mall.order.application.po.user.OrderCreatePO
;
import
cn.iocoder.mall.order.application.po.user.OrderCreatePO
;
import
cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder
;
import
cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder
;
...
...
order/order-application/src/main/java/cn/iocoder/mall/order/application/vo/FeeMessageVO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
application
.
vo
;
public
class
FeeMessageVO
{
/**
* 总价
*/
private
Integer
originalTotal
;
/**
* 优惠总价
*
* 注意,满多少元包邮,不算在优惠中。
*/
private
Integer
discountTotal
;
/**
* 邮费
*/
private
Integer
postageTotal
;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private
Integer
presentTotal
;
}
order/order-application/src/main/java/cn/iocoder/mall/order/application/vo/UsersCartItemVO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
application
.
vo
;
public
class
UsersCartItemVO
{
}
order/order-application/src/main/java/cn/iocoder/mall/order/application/vo/UsersCartListVO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
application
.
vo
;
import
java.util.List
;
public
class
UsersCartListVO
{
private
List
<
UsersCartItemVO
>
items
;
private
FeeMessageVO
feeMessage
;
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/CartService.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.order.api.bo.CartBO
;
import
cn.iocoder.mall.order.api.bo.CartItemBO
;
import
cn.iocoder.mall.order.api.bo.OrderCreateBO
;
import
org.springframework.lang.Nullable
;
import
java.util.List
;
public
interface
CartService
{
// ========== 购物车 Item 的逻辑 ==========
/**
* 添加商品至购物车
*
* @param userId 用户编号
* @param skuId 商品 SKU 编号
* @param quantity 数量
* @return 是否成功
*/
CommonResult
<
Boolean
>
add
(
Integer
userId
,
Integer
skuId
,
Integer
quantity
);
/**
* 购物车更新商品数量
*
* @param userId 用户编号
* @param skuId 商品 SKU 编号
* @param quantity 数量
* @return 是否成功
*/
CommonResult
<
Boolean
>
updateQuantity
(
Integer
userId
,
Integer
skuId
,
Integer
quantity
);
/**
* 购物车更新商品是否选中
*
* @param userId 用户编号
* @param skuId 商品 SKU 编号
* @return 是否成功
*/
CommonResult
<
Boolean
>
updateSelected
(
Integer
userId
,
Integer
skuId
);
/**
* 购物车删除商品
*
* @param userId 用户编号
* @param skuIds 商品 SKU 编号的数组
*
* @return 是否成功
*/
CommonResult
<
Boolean
>
delete
(
Integer
userId
,
List
<
Integer
>
skuIds
);
/**
* 清空购物车
*
* @param userId 用户编号
* @return 是否成功
*/
CommonResult
<
Boolean
>
deleteAll
(
Integer
userId
);
/**
* 查询用户在购物车中的商品数量
*
* @param userId 用户编号
* @return 商品数量
*/
CommonResult
<
Integer
>
count
(
Integer
userId
,
String
nobody
,
Integer
shopId
);
/**
* 显示买家购物车中的商品列表,并根据 selected 进行过滤。
*
* @param userId 用户编号
* @param selected 是否选中。若为空,则不进行筛选
* @return 购物车中商品列表信息
*/
List
<
CartItemBO
>
list
(
Integer
userId
,
@Nullable
Boolean
selected
);
// ========== 购物车与订单相关的逻辑 ==========
/**
* 获得购物车明细
*
* TODO 芋艿,可能放在 Controller 更合适
*
* @param userId 用户编号
* @return 购物车明细
*/
CommonResult
<
CartBO
>
details
(
Integer
userId
);
/**
* 基于购物车创建订单
*
* @param userId 用户编号
* @return 订单信息
*/
CommonResult
<
OrderCreateBO
>
createOrder
(
Integer
userId
);
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderService.java
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
;
package
cn
.
iocoder
.
mall
.
order
.
api
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.order.api.bo.OrderCreateBO
;
import
cn.iocoder.mall.order.api.bo.*
;
import
cn.iocoder.mall.order.api.bo.OrderItemBO
;
import
cn.iocoder.mall.order.api.bo.OrderPageBO
;
import
cn.iocoder.mall.order.api.bo.OrderRecipientBO
;
import
cn.iocoder.mall.order.api.dto.*
;
import
cn.iocoder.mall.order.api.dto.*
;
import
java.util.List
;
import
java.util.List
;
...
@@ -41,6 +38,14 @@ public interface OrderService {
...
@@ -41,6 +38,14 @@ public interface OrderService {
*/
*/
CommonResult
<
OrderRecipientBO
>
getOrderRecipientBO
(
Integer
orderId
);
CommonResult
<
OrderRecipientBO
>
getOrderRecipientBO
(
Integer
orderId
);
/**
* 计算订单金额,返回计算结果
*
* @param calcOrderPriceDTO 计算订单金额 DTO
* @return 计算订单金额结果
*/
CalcOrderPriceBO
calcOrderPrice
(
CalcOrderPriceDTO
calcOrderPriceDTO
);
/**
/**
* 订单 - 创建
* 订单 - 创建
*
*
...
...
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/CalcOrderPriceBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* 计算订单价格结果 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CalcOrderPriceBO
{
/**
* 商品分组数组
*/
private
List
<
ItemGroup
>
itemGroups
;
/**
* 邮费信息
*/
private
Postage
postage
;
/**
* 费用
*/
private
Fee
fee
;
/**
* 商品分组
*
* 多个商品,参加同一个活动,从而形成分组。
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
ItemGroup
{
// TODO 优惠活动
private
Object
activity
;
/**
* 商品数组
*/
private
List
<
Item
>
items
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
Item
{
// TODO 信息要相当完整
}
/**
* 费用(合计)
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Fee
{
/**
* 总价
*/
private
Integer
originalTotal
;
/**
* 优惠总价
*
* 注意,满多少元包邮,不算在优惠中。
*/
private
Integer
discountTotal
;
/**
* 邮费
*/
private
Integer
postageTotal
;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private
Integer
presentTotal
;
}
/**
* 邮费信息
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Postage
{
/**
* 需要满足多少钱,可以包邮。单位:分
*/
private
Integer
threshold
;
}
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/CartBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* 购物车明细 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CartBO
{
/**
* 商品分组数组
*/
private
List
<
CartItemGroupBO
>
itemGroups
;
/**
* 费用
*/
private
FeeMessageBO
fee
;
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/CartItemBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 购物车的商品信息 DO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CartItemBO
{
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/CartItemGroupBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
import
java.util.List
;
/**
* 商品分组 BO
*
* 主要目的是,多个商品,
*/
public
class
CartItemGroupBO
{
/**
* TODO 芋艿,活动
*/
private
Object
activity
;
/**
* 商品数组
*/
private
List
<
CartItemBO
>
items
;
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/FeeDetailBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
public
class
FeeDetailBO
{
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/FeeMessageBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
public
class
FeeMessageBO
{
/**
* 总价
*/
private
Integer
originalTotal
;
/**
* 优惠总价
*
* 注意,满多少元包邮,不算在优惠中。
*/
private
Integer
discountTotal
;
/**
* 邮费
*/
private
Integer
postageTotal
;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private
Integer
presentTotal
;
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/MerchantItemGroup.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
import
java.util.List
;
/**
* 商家商品分组
*/
public
class
MerchantItemGroup
{
/**
* 商品分组数组
*/
private
List
<
CartItemGroupBO
>
itemGroups
;
/**
* 运费详情
*/
private
PostageDetailBO
postageDetail
;
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/PostageDetailBO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
bo
;
public
class
PostageDetailBO
{
// "description": "有品甄选商品,即有品配送和第三方商家发货的商品,2018年1月1日起,单笔订单满99元免运费,不满99元收10元运费。",
// "leftTotal": "0.00",
// "merchantName": "有品配送",
// "postFee": "0.00",
// "postage": "10.00",
// "postageType": 0,
// "selCount": 14,
// "threshold": "99.00"
}
order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/CalcOrderPriceDTO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
api
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* 计算订单价格 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CalcOrderPriceDTO
{
/**
* 商品数组
*/
private
List
<
Integer
>
items
;
@Data
@Accessors
(
chain
=
true
)
private
static
class
Item
{
/**
* SKU 编号
*/
private
Integer
skuId
;
/**
* 数量
*/
private
Integer
quantity
;
/**
* 是否选中
*
* 注意下,目前只有在购物车的时候,才可能出现该属性为 false 。其它情况下,都会为 true 为主。
*/
private
Boolean
selected
;
}
}
order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/CartItemDO.java
0 → 100644
浏览文件 @
3e485c2d
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.common.framework.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
/**
* 购物车的商品信息
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CartItemDO
extends
BaseDO
{
// ========= 基础字段 BEGIN =========
/**
* 编号,唯一自增。
*/
private
Integer
id
;
/**
* 状态
*
* 1-正常
* 2-主动删除
* 3-下单删除
*/
private
Integer
status
;
/**
* 商品在购物车中的删除时间
*/
private
Date
deleteTime
;
/**
* 是否选中
*/
private
Boolean
selected
;
// ========= 基础字段 END =========
// ========= 买家信息 BEGIN =========
/**
* 用户编号
*/
private
Integer
userId
;
// /**
// * 会话 key
// */
// private String nobody;
// ========= 买家信息 END =========
// ========= 商品信息 BEGIN =========
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 商品 SKU 编号
*/
private
Integer
skuId
;
/**
* 商品购买数量
*/
private
Integer
quantity
;
// TODO 冗余字段
// ========= 商品信息 END =========
// ========= 交易信息 BEGIN =========
/**
* 订单编号
*/
private
String
orderId
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
// ========= 交易信息 BEGIN =========
// ========= 优惠信息 BEGIN =========
// /**
// * 商品营销活动编号
// */
// private Integer activityId;
// /**
// * 商品营销活动类型
// */
// private Integer activityType;
// ========= 优惠信息 END =========
}
pom.xml
浏览文件 @
3e485c2d
...
@@ -22,7 +22,6 @@
...
@@ -22,7 +22,6 @@
<module>
ops
</module>
<module>
ops
</module>
<module>
pay
</module>
<module>
pay
</module>
<module>
promotion
</module>
<module>
promotion
</module>
<module>
cart
</module>
</modules>
</modules>
<packaging>
pom
</packaging>
<packaging>
pom
</packaging>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论