Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
A
Afrishop refactored project
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Whispa
Afrishop refactored project
Commits
75cbdd0c
提交
75cbdd0c
authored
11月 30, 2020
作者:
吴德鹏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Optimized coupons
上级
3799d742
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
70 行增加
和
24 行删除
+70
-24
OrderController.java
.../com/example/afrishop_v3/controllers/OrderController.java
+58
-23
TbCfOrder.java
src/main/java/com/example/afrishop_v3/models/TbCfOrder.java
+12
-1
没有找到文件。
src/main/java/com/example/afrishop_v3/controllers/OrderController.java
浏览文件 @
75cbdd0c
...
...
@@ -35,6 +35,7 @@ import static org.springframework.data.domain.Sort.Order.desc;
@RestController
@RequestMapping
(
"/order"
)
public
class
OrderController
extends
Controller
{
private
final
TbCfToicouponRepository
couponRepository
;
private
final
TbCfOrderRepository
repository
;
private
final
TbCfCartRecordRRepository
cartRepository
;
private
final
TbCfAddressRepository
addressRepository
;
...
...
@@ -47,7 +48,8 @@ public class OrderController extends Controller {
private
final
AuthenticationUser
user
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
OrderController
.
class
);
public
OrderController
(
TbCfOrderRepository
repository
,
TbCfCartRecordRRepository
cartRepository
,
TbCfAddressRepository
addressRepository
,
TbCfToicouponRepository
toicouponRepository
,
TbCfStationItemRepository
itemRepository
,
TbCfItemSkuRepository
itemSkuRepository
,
TbCfItemCommentRepository
commentRepository
,
TbCfExpressTemplateRepository
templateRepository
,
@Qualifier
(
"tbCfExchangeRepository"
)
TbCfExchangeRepository
exchangeRepository
,
AuthenticationUser
user
)
{
public
OrderController
(
TbCfToicouponRepository
couponRepository
,
TbCfOrderRepository
repository
,
TbCfCartRecordRRepository
cartRepository
,
TbCfAddressRepository
addressRepository
,
TbCfToicouponRepository
toicouponRepository
,
TbCfStationItemRepository
itemRepository
,
TbCfItemSkuRepository
itemSkuRepository
,
TbCfItemCommentRepository
commentRepository
,
TbCfExpressTemplateRepository
templateRepository
,
@Qualifier
(
"tbCfExchangeRepository"
)
TbCfExchangeRepository
exchangeRepository
,
AuthenticationUser
user
)
{
this
.
couponRepository
=
couponRepository
;
this
.
repository
=
repository
;
this
.
cartRepository
=
cartRepository
;
this
.
addressRepository
=
addressRepository
;
...
...
@@ -60,7 +62,7 @@ public class OrderController extends Controller {
this
.
user
=
user
;
}
private
TbCfCartRecordR
getCart
(
TbCfStationItem
item
,
String
itemSku
,
Integer
itemNum
,
BigDecimal
price
,
String
itemSkuId
,
String
image
)
{
private
TbCfCartRecordR
getCart
(
TbCfStationItem
item
,
String
itemSku
,
Integer
itemNum
,
BigDecimal
price
,
String
itemSkuId
,
String
image
)
{
TbCfCartRecordR
record
=
new
TbCfCartRecordR
();
...
...
@@ -73,7 +75,7 @@ public class OrderController extends Controller {
record
.
setTemplate
(
item
.
getExpress
());
record
.
setItemTitle
(
item
.
getItemName
());
record
.
setItemPrice
(
price
);
record
.
setItemImg
(
image
==
null
?
item
.
catchSingleImage
()
:
image
);
record
.
setItemImg
(
image
==
null
?
item
.
catchSingleImage
()
:
image
);
return
record
;
}
...
...
@@ -99,6 +101,7 @@ public class OrderController extends Controller {
@RequestParam
(
value
=
"toitableId"
,
required
=
false
)
String
toitableId
)
{
TbCfOrder
order
=
new
TbCfOrder
();
Optional
<
TbCfExpressTemplate
>
templateOptional
=
templateRepository
.
findFirstByIsDefault
(
1
);
templateOptional
.
ifPresent
(
order:
:
setDefaultTemplate
);
...
...
@@ -119,10 +122,11 @@ public class OrderController extends Controller {
TbCfStationItem
item
=
byId
.
get
();
List
<
TbCfCartRecordR
>
list
=
new
ArrayList
<>();
TbCfItemSkus
itemSkus
=
skuOptional
.
get
();
list
.
add
(
getCart
(
item
,
itemSku
,
itemNum
,
itemSkus
.
getSkuPrice
(),
itemSkuId
,
itemSkus
.
getSkuImg
()));
BigDecimal
orderPrice
=
itemSkus
.
getSkuPrice
().
multiply
(
new
BigDecimal
(
itemNum
));
Map
<
String
,
Object
>
map
=
queryUserAvailableCoupons
(
orderPrice
);
list
.
add
(
getCart
(
item
,
itemSku
,
itemNum
,
itemSkus
.
getSkuPrice
(),
itemSkuId
,
itemSkus
.
getSkuImg
()));
order
.
setCouponId
(
toitableId
);
if
(
toitableId
!=
null
&&
!
toitableId
.
isEmpty
())
{
...
...
@@ -135,7 +139,7 @@ public class OrderController extends Controller {
}
}
order
.
setCouponMap
(
map
);
order
.
getItemOrderListFromCartList
(
list
,
itemRepository
);
return
new
Result
<>(
order
);
...
...
@@ -145,13 +149,19 @@ public class OrderController extends Controller {
public
Result
<
TbCfOrder
>
settleAccount
(
@RequestBody
String
[]
ids
,
@RequestParam
(
value
=
"toitableId"
,
required
=
false
)
String
toitableId
)
{
//String userId = user.userId();
List
<
TbCfCartRecordR
>
allByUserId
=
cartRepository
.
findAllByCartRecordIdIn
(
ids
);
BigDecimal
orderPrice
=
BigDecimal
.
ZERO
;
for
(
TbCfCartRecordR
cart
:
allByUserId
)
{
orderPrice
=
orderPrice
.
add
(
cart
.
getItemPrice
().
multiply
(
new
BigDecimal
(
cart
.
getItemNum
())));
}
Map
<
String
,
Object
>
couponMap
=
queryUserAvailableCoupons
(
orderPrice
);
if
(
allByUserId
.
isEmpty
())
{
return
new
Result
<>(
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
(),
"There are no items in the shopping cart"
);
}
TbCfOrder
order
=
new
TbCfOrder
();
order
.
setCouponMap
(
couponMap
);
Optional
<
TbCfExpressTemplate
>
templateOptional
=
templateRepository
.
findFirstByIsDefault
(
1
);
templateOptional
.
ifPresent
(
order:
:
setDefaultTemplate
);
...
...
@@ -208,6 +218,7 @@ public class OrderController extends Controller {
boolean
payNow
=
!
noPayNow
;
// BigDecimal orderPrice=BigDecimal.ZERO;
if
(
payNow
)
{
Optional
<
TbCfStationItem
>
byId
=
itemRepository
.
findById
(
itemId
);
...
...
@@ -229,8 +240,8 @@ public class OrderController extends Controller {
// }
TbCfItemSkus
skuObj
=
skuOptional
.
get
();
allByUserId
.
add
(
getCart
(
stationItem
,
itemSku
,
itemNum
,
skuObj
.
getSkuPrice
(),
itemSkuId
,
skuObj
.
getSkuImg
()));
// orderPrice=skuObj.getSkuPrice().multiply(new BigDecimal(itemNum));
allByUserId
.
add
(
getCart
(
stationItem
,
itemSku
,
itemNum
,
skuObj
.
getSkuPrice
(),
itemSkuId
,
skuObj
.
getSkuImg
()));
}
else
{
System
.
out
.
println
(
Arrays
.
toString
(
tbCfOrder
.
getIds
()));
...
...
@@ -242,8 +253,12 @@ public class OrderController extends Controller {
// if (!success) {
// return new Result<>(v_code, "Goods in short stock!");
// }
// }
// for (TbCfCartRecordR cart : allByUserId) {
// orderPrice = orderPrice.add(cart.getItemPrice().multiply(new BigDecimal(cart.getItemNum())));
// }
}
// Map<String, Object> map = queryUserAvailableCoupons(orderPrice);
String
addressId
=
tbCfOrder
.
getDeliveryAddressId
();
...
...
@@ -260,7 +275,7 @@ public class OrderController extends Controller {
TbCfOrder
order
=
new
TbCfOrder
();
// order.setCouponMap(map);
order
.
setUserName
(
user
.
display
());
TbCfAddress
address
=
addressOptional
.
get
();
...
...
@@ -305,7 +320,6 @@ public class OrderController extends Controller {
TbCfOrder
save
=
repository
.
save
(
order
);
if
(
tbCfToicoupon
!=
null
)
{
tbCfToicoupon
.
setEnableFlag
(
0
);
toicouponRepository
.
save
(
tbCfToicoupon
);
...
...
@@ -317,10 +331,10 @@ public class OrderController extends Controller {
String
[]
strings
=
collect
.
toArray
(
new
String
[]{});
if
(
payNow
)
{
cartRepository
.
updateItemQuantity_
(
itemId
,
itemNum
);
cartRepository
.
updateSkuQuantity_
(
itemSkuId
,
itemNum
);
}
else
{
if
(
payNow
)
{
cartRepository
.
updateItemQuantity_
(
itemId
,
itemNum
);
cartRepository
.
updateSkuQuantity_
(
itemSkuId
,
itemNum
);
}
else
{
cartRepository
.
updateSkuQuantity
(
strings
);
cartRepository
.
updateItemQuantity
(
strings
);
}
...
...
@@ -365,9 +379,9 @@ public class OrderController extends Controller {
Page
<
OrderCount
>
list
;
PageRequest
of
=
PageRequest
.
of
(
pageNum
,
pageSize
,
sort
(
sort
));
String
userId
=
user
.
getUserId
();
if
(
orderStatus
!=
null
)
{
list
=
repository
.
findAllByUserIdWithStatus
(
userId
,
user
,
orderStatus
,
of
);
}
else
if
(
orderStatus
!=
null
)
{
list
=
repository
.
findAllByUserIdWithStatus
(
userId
,
user
,
orderStatus
,
of
);
}
else
list
=
repository
.
findAllByUserId
(
userId
,
user
,
of
);
list
.
forEach
(
v
->
v
.
getOrder
().
setCommentCount
(
v
.
getCommented
()));
...
...
@@ -472,7 +486,7 @@ public class OrderController extends Controller {
String
minutes
=
"160"
;
Date
current
=
new
Date
();
if
(
!
optionalTbCfOrder
.
isPresent
()
)
{
if
(!
optionalTbCfOrder
.
isPresent
())
{
return
new
Result
<>(
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
(),
"Order not found"
);
}
...
...
@@ -483,13 +497,13 @@ public class OrderController extends Controller {
Calendar
instance
=
Calendar
.
getInstance
();
instance
.
setTime
(
orderTime
);
instance
.
add
(
Calendar
.
DATE
,
1
);
instance
.
add
(
Calendar
.
DATE
,
1
);
long
time
=
instance
.
getTime
().
getTime
();
long
difference
=
time
-
current
.
getTime
();
if
(
difference
>
0
)
{
if
(
difference
>
0
)
{
Duration
duration
=
Duration
.
ofMillis
(
difference
);
...
...
@@ -506,4 +520,25 @@ public class OrderController extends Controller {
return
new
Result
<>(
tbCfOrder
,
"Order found !"
);
}
public
Map
<
String
,
Object
>
queryUserAvailableCoupons
(
BigDecimal
orderPrice
)
{
Map
<
String
,
Object
>
couponMap
=
new
HashMap
<>();
//可使用的优惠券
LinkedList
<
TbCfToicoupon
>
availableCoupon
=
new
LinkedList
();
//不可使用的优惠券
LinkedList
<
TbCfToicoupon
>
unAvailableCoupon
=
new
LinkedList
();
List
<
TbCfToicoupon
>
couponList
=
couponRepository
.
queryUserAvailableCoupon
(
user
.
userId
());
couponList
.
forEach
(
coupon
->
{
boolean
available
=
orderPrice
.
compareTo
(
coupon
.
withAmount
())
>=
0
;
if
(
available
)
{
availableCoupon
.
add
(
coupon
);
}
else
{
unAvailableCoupon
.
add
(
coupon
);
}
});
couponMap
.
put
(
"availableCoupon"
,
availableCoupon
);
couponMap
.
put
(
"unAvailableCoupon"
,
unAvailableCoupon
);
return
couponMap
;
}
}
src/main/java/com/example/afrishop_v3/models/TbCfOrder.java
浏览文件 @
75cbdd0c
...
...
@@ -155,7 +155,18 @@ public class TbCfOrder {
*/
private
String
remarkInfo
;
// @JsonIgnore
@Transient
private
Map
<
String
,
Object
>
couponMap
;
public
Map
<
String
,
Object
>
getCouponMap
()
{
return
couponMap
;
}
public
void
setCouponMap
(
Map
<
String
,
Object
>
couponMap
)
{
this
.
couponMap
=
couponMap
;
}
// @JsonIgnore
// @JoinColumn(columnDefinition = "user_id",name = "user_id")
// @ManyToOne(fetch = FetchType.LAZY)
// private TbCfUserInfo userInfo;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论