Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
oms-ci-test
Commits
6779575d
提交
6779575d
authored
9月 19, 2023
作者:
zhenjie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
购物车相关接口
上级
57d142fc
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
172 行增加
和
20 行删除
+172
-20
UavCartController.java
...in/java/com/mmc/oms/controller/uav/UavCartController.java
+9
-6
UavCartDao.java
src/main/java/com/mmc/oms/dao/uav/UavCartDao.java
+1
-1
UavCartDO.java
src/main/java/com/mmc/oms/entity/uav/UavCartDO.java
+1
-0
PmsAppApi.java
src/main/java/com/mmc/oms/feign/PmsAppApi.java
+7
-0
PmsAppApiHystrix.java
...main/java/com/mmc/oms/feign/hystrix/PmsAppApiHystrix.java
+9
-0
UavCartDTO.java
src/main/java/com/mmc/oms/model/dto/uav/UavCartDTO.java
+2
-0
PriceStockQO.java
src/main/java/com/mmc/oms/model/qo/uav/PriceStockQO.java
+23
-0
UavCartQO.java
src/main/java/com/mmc/oms/model/qo/uav/UavCartQO.java
+38
-0
UavCartService.java
src/main/java/com/mmc/oms/service/uav/UavCartService.java
+5
-2
UavCartServiceImpl.java
...java/com/mmc/oms/service/uav/impl/UavCartServiceImpl.java
+65
-7
UavCartDao.xml
src/main/resources/mapper/uav/UavCartDao.xml
+12
-4
没有找到文件。
src/main/java/com/mmc/oms/controller/uav/UavCartController.java
浏览文件 @
6779575d
...
...
@@ -4,6 +4,7 @@ import com.mmc.oms.common.result.ResultBody;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderDTO
;
import
com.mmc.oms.model.qo.uav.UavCartQO
;
import
com.mmc.oms.model.vo.uav.UavCartVO
;
import
com.mmc.oms.service.uav.UavCartService
;
import
io.swagger.annotations.*
;
...
...
@@ -11,8 +12,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
* @description: 商城购物车,正常订单可以多商家的商品一起下单;意向订单只能单个商家的商品一起下单。
* @author: zj
* @Date: 2023/9/16 14:37
*/
...
...
@@ -32,9 +35,9 @@ public class UavCartController extends BaseController {
@ApiOperation
(
value
=
"移除"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@
GetMapping
(
"r
emove"
)
public
ResultBody
remove
(
@RequestParam
Integer
id
)
{
return
uavCartService
.
remove
(
id
);
@
PostMapping
(
"batchR
emove"
)
public
ResultBody
batchRemove
(
@RequestBody
List
<
Integer
>
carIds
)
{
return
uavCartService
.
batchRemove
(
carIds
);
}
@ApiOperation
(
value
=
"修改数量"
)
...
...
@@ -47,9 +50,9 @@ public class UavCartController extends BaseController {
@ApiOperation
(
value
=
"购物车列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UavCartDTO
.
class
)})
@
Ge
tMapping
(
"list"
)
public
ResultBody
list
(
@Request
Param
Integer
pageNo
,
@RequestParam
Integer
pageSize
,
@
Pos
tMapping
(
"list"
)
public
ResultBody
list
(
@Request
Body
UavCartQO
uavCartQO
,
HttpServletRequest
request
)
{
return
uavCartService
.
list
(
pageNo
,
pageSize
,
this
.
getCurrentAccount
(
request
));
return
uavCartService
.
list
(
uavCartQO
,
this
.
getCurrentAccount
(
request
));
}
}
src/main/java/com/mmc/oms/dao/uav/UavCartDao.java
浏览文件 @
6779575d
...
...
@@ -14,7 +14,7 @@ import java.util.List;
public
interface
UavCartDao
{
void
addCart
(
UavCartDO
uavCartDO
);
void
remove
(
Integer
id
);
void
batchRemove
(
List
<
Integer
>
carIds
);
UavCartDO
getUavCartDO
(
Integer
id
);
...
...
src/main/java/com/mmc/oms/entity/uav/UavCartDO.java
浏览文件 @
6779575d
...
...
@@ -22,6 +22,7 @@ import java.util.Date;
public
class
UavCartDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3845763818022578395L
;
private
Integer
id
;
private
Integer
version
;
private
Integer
userAccountId
;
private
Integer
thirdBackUserAccountId
;
private
String
companyName
;
...
...
src/main/java/com/mmc/oms/feign/PmsAppApi.java
浏览文件 @
6779575d
...
...
@@ -2,9 +2,13 @@ package com.mmc.oms.feign;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/6/5 15:18
...
...
@@ -13,4 +17,7 @@ import org.springframework.web.bind.annotation.*;
public
interface
PmsAppApi
{
@GetMapping
(
"lease/goods/feignLeaseGoodsInfoByAddressId"
)
public
ResultBody
feignLeaseGoodsInfoByAddressId
(
@RequestParam
Integer
id
);
@GetMapping
(
"app/goods/listPriceStock"
)
List
<
UavCartDTO
>
listPriceStock
(
List
<
PriceStockQO
>
priceStockQOS
);
}
src/main/java/com/mmc/oms/feign/hystrix/PmsAppApiHystrix.java
浏览文件 @
6779575d
package
com
.
mmc
.
oms
.
feign
.
hystrix
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -18,4 +21,10 @@ public class PmsAppApiHystrix implements PmsAppApi {
log
.
info
(
"熔断:PmsAppApiHystrix.feignLeaseGoodsInfoByAddressId==error==>param:{}"
,
id
);
return
null
;
}
@Override
public
List
<
UavCartDTO
>
listPriceStock
(
List
<
PriceStockQO
>
priceStockQOS
)
{
log
.
info
(
"熔断:PmsAppApiHystrix.listPriceStock==error==>param:{}"
,
JSONObject
.
toJSONString
(
priceStockQOS
));
return
null
;
}
}
src/main/java/com/mmc/oms/model/dto/uav/UavCartDTO.java
浏览文件 @
6779575d
...
...
@@ -46,4 +46,6 @@ public class UavCartDTO implements Serializable {
private
String
skuNo
;
@ApiModelProperty
(
value
=
"生成时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"是否展示价格,0 不显示 1显示"
)
private
Integer
priceShow
;
}
src/main/java/com/mmc/oms/model/qo/uav/PriceStockQO.java
0 → 100644
浏览文件 @
6779575d
package
com
.
mmc
.
oms
.
model
.
qo
.
uav
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author: zj
* @Date: 2023/9/19 15:08
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
PriceStockQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"商品id"
)
private
Integer
mallGoodsId
;
@ApiModelProperty
(
value
=
"商品规格名称"
)
private
String
productSpec
;
}
src/main/java/com/mmc/oms/model/qo/uav/UavCartQO.java
0 → 100644
浏览文件 @
6779575d
package
com
.
mmc
.
oms
.
model
.
qo
.
uav
;
import
com.mmc.oms.common.publicinterface.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author: zj
* @Date: 2023/9/19 16:20
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
UavCartQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"订单类型,0正常订单,1意向订单"
,
required
=
true
)
private
Integer
orderType
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
Page
.
class
)
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
Page
.
class
)
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageSize
;
public
void
buildCurrentPage
()
{
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
}
}
src/main/java/com/mmc/oms/service/uav/UavCartService.java
浏览文件 @
6779575d
...
...
@@ -2,8 +2,11 @@ package com.mmc.oms.service.uav;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.qo.uav.UavCartQO
;
import
com.mmc.oms.model.vo.uav.UavCartVO
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/9/16 14:40
...
...
@@ -11,9 +14,9 @@ import com.mmc.oms.model.vo.uav.UavCartVO;
public
interface
UavCartService
{
ResultBody
addCart
(
UavCartVO
uavCartVO
);
ResultBody
remove
(
Integer
id
);
ResultBody
batchRemove
(
List
<
Integer
>
carIds
);
ResultBody
updateNum
(
Integer
id
,
Integer
changeNum
);
ResultBody
list
(
Integer
pageNo
,
Integer
pageSize
,
BaseAccountDTO
currentAccount
);
ResultBody
list
(
UavCartQO
uavCartQO
,
BaseAccountDTO
currentAccount
);
}
src/main/java/com/mmc/oms/service/uav/impl/UavCartServiceImpl.java
浏览文件 @
6779575d
...
...
@@ -6,13 +6,20 @@ import com.mmc.oms.common.result.ResultBody;
import
com.mmc.oms.dao.uav.UavCartDao
;
import
com.mmc.oms.entity.uav.UavCartCompanyDO
;
import
com.mmc.oms.entity.uav.UavCartDO
;
import
com.mmc.oms.enums.UavOrderType
;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.model.dto.uav.UavCartCompanyDTO
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
com.mmc.oms.model.qo.uav.UavCartQO
;
import
com.mmc.oms.model.vo.uav.UavCartVO
;
import
com.mmc.oms.service.uav.UavCartService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -25,6 +32,9 @@ public class UavCartServiceImpl implements UavCartService {
@Autowired
private
UavCartDao
uavCartDao
;
@Autowired
private
PmsAppApi
pmsAppApi
;
@Override
public
ResultBody
addCart
(
UavCartVO
uavCartVO
)
{
UavCartDO
uavCartDO
=
new
UavCartDO
(
uavCartVO
);
...
...
@@ -33,8 +43,8 @@ public class UavCartServiceImpl implements UavCartService {
}
@Override
public
ResultBody
remove
(
Integer
id
)
{
uavCartDao
.
remove
(
id
);
public
ResultBody
batchRemove
(
List
<
Integer
>
carIds
)
{
uavCartDao
.
batchRemove
(
carIds
);
return
ResultBody
.
success
();
}
...
...
@@ -55,16 +65,64 @@ public class UavCartServiceImpl implements UavCartService {
}
@Override
public
ResultBody
list
(
Integer
pageNo
,
Integer
pageSize
,
BaseAccountDTO
currentAccount
)
{
public
ResultBody
list
(
UavCartQO
uavCartQO
,
BaseAccountDTO
currentAccount
)
{
// 区别是正常还是意向
Integer
orderType
=
UavOrderType
.
PAY
.
getCode
();
// 按照第三方企业名称分组查询商品
List
<
Integer
>
list
=
uavCartDao
.
countList
(
currentAccount
.
getUserAccountId
());
if
(
list
.
size
()
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
list
.
size
()));
return
ResultBody
.
success
(
PageResult
.
buildPage
(
uavCartQO
.
getPageNo
(),
uavCartQO
.
getPageSize
()
,
list
.
size
()));
}
Integer
begin
=
(
pageNo
-
1
)
*
pageSize
;
List
<
UavCartCompanyDO
>
uavCartCompanyDOS
=
uavCartDao
.
list
(
begin
,
pageSize
,
currentAccount
.
getUserAccountId
());
Integer
pageNo
=
uavCartQO
.
getPageNo
();
uavCartQO
.
buildCurrentPage
();
List
<
UavCartCompanyDO
>
uavCartCompanyDOS
=
uavCartDao
.
list
(
pageNo
,
uavCartQO
.
getPageSize
(),
currentAccount
.
getUserAccountId
());
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
=
uavCartCompanyDOS
.
stream
().
map
(
UavCartCompanyDO:
:
buildUavCartCompanyDTO
).
collect
(
Collectors
.
toList
());
// 同步商品信息,价格及是否展示
// 根据规格查询商品信息
buildUavCartCompany
(
orderType
,
uavCartCompanyDTOS
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
uavCartQO
.
getPageSize
(),
list
.
size
(),
uavCartCompanyDTOS
));
}
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
list
.
size
(),
uavCartCompanyDTOS
));
private
void
buildUavCartCompany
(
Integer
orderType
,
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
){
List
<
PriceStockQO
>
priceStockQOS
=
new
ArrayList
<>();
for
(
UavCartCompanyDTO
uavCartCompanyDTO
:
uavCartCompanyDTOS
)
{
for
(
UavCartDTO
uavCartDO
:
uavCartCompanyDTO
.
getUavCartDOS
())
{
PriceStockQO
priceStockQO
=
new
PriceStockQO
(
uavCartDO
.
getMallGoodsId
(),
uavCartDO
.
getProductSpec
());
priceStockQOS
.
add
(
priceStockQO
);
}
}
// 最新规格信息
List
<
UavCartDTO
>
uavCartDTOS
=
pmsAppApi
.
listPriceStock
(
priceStockQOS
);
if
(
CollectionUtils
.
isEmpty
(
uavCartDTOS
))
{
return
;
}
// 更新最新的规格信息
for
(
UavCartCompanyDTO
uavCartCompanyDTO
:
uavCartCompanyDTOS
)
{
uavCartCompanyDTO
.
setCompanyName
(
uavCartCompanyDTO
.
getUavCartDOS
().
get
(
0
).
getCompanyName
());
for
(
UavCartDTO
uavCartDTO
:
uavCartCompanyDTO
.
getUavCartDOS
())
{
// 从最新规格中逐个更新
for
(
UavCartDTO
newestUavCartDTO
:
uavCartDTOS
)
{
if
(
uavCartDTO
.
getMallGoodsId
().
equals
(
newestUavCartDTO
.
getMallGoodsId
())
&&
uavCartDTO
.
getProductSpec
().
equals
(
newestUavCartDTO
.
getProductSpec
()))
{
// 不符合的移除
if
(
UavOrderType
.
PAY
.
getCode
().
equals
(
orderType
))
{
if
(
newestUavCartDTO
.
getPriceShow
().
equals
(
0
))
{
uavCartCompanyDTO
.
getUavCartDOS
().
remove
(
uavCartDTO
);
}
}
else
{
if
(
newestUavCartDTO
.
getPriceShow
().
equals
(
1
))
{
uavCartCompanyDTO
.
getUavCartDOS
().
remove
(
uavCartDTO
);
}
}
uavCartDTO
.
setPriceShow
(
newestUavCartDTO
.
getPriceShow
());
uavCartDTO
.
setSalePrice
(
newestUavCartDTO
.
getSalePrice
());
break
;
}
}
}
if
(
CollectionUtils
.
isEmpty
(
uavCartCompanyDTO
.
getUavCartDOS
()))
{
uavCartCompanyDTOS
.
remove
(
uavCartCompanyDTO
);
}
}
}
}
src/main/resources/mapper/uav/UavCartDao.xml
浏览文件 @
6779575d
...
...
@@ -20,12 +20,18 @@
</insert>
<sql
id=
"cart_column"
>
id, user_account_id, third_back_user_account_id, company_name, mall_goods_id, trade_name, price_stock_id,
product_spec, order_num, sale_price, sku_image, sku_no, create_time
id,
version,
user_account_id, third_back_user_account_id, company_name, mall_goods_id, trade_name, price_stock_id,
product_spec, order_num, sale_price, sku_image, sku_no, create_time
</sql>
<update
id=
"remove"
>
update uav_cart set is_deleted = 1 where id = #{id}
<update
id=
"batchRemove"
>
update uav_cart set is_deleted = 1
<where>
<foreach
collection=
"carIds"
item=
"id"
index=
"index"
open=
"id in ("
close=
")"
separator=
","
>
#{id}
</foreach>
</where>
</update>
<update
id=
"updateUavCart"
parameterType=
"com.mmc.oms.entity.uav.UavCartDO"
>
...
...
@@ -70,6 +76,7 @@
FROM uav_cart
where user_account_id = #{userAccountId} and is_deleted = 0
ORDER BY id DESC limit 1000000000) a
group by third_back_user_account_id
limit #{begin}, #{pageSize}
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论