Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
d4aaa4a4
Commit
d4aaa4a4
authored
Aug 11, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
积分商城
parent
29070a7b
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
610 additions
and
2 deletions
+610
-2
order-application-service/src/main/java/cn/freemud/entities/dto/ProductInfosDto.java
+0
-1
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/EntityProductType.java
+23
-0
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/IntegralProductType.java
+82
-0
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/PointMallListProductInfoRequest.java
+45
-0
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/PointMallListProductInfoResponse.java
+12
-0
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/ProductStockRequest.java
+18
-0
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/UpdatePointsMallStocksRequest.java
+41
-0
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserScoreRequest.java
+17
-0
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
+6
-0
order-application-service/src/main/java/cn/freemud/entities/vo/order/CreateOrderProductVo.java
+12
-0
order-application-service/src/main/java/cn/freemud/enums/OrderChannelType.java
+3
-1
order-application-service/src/main/java/cn/freemud/service/PointsMallOrderService.java
+12
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+9
-0
order-application-service/src/main/java/cn/freemud/service/impl/PointsMallOrderServiceImpl.java
+275
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerPropertyClient.java
+22
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/PointMallProductClient.java
+33
-0
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/ProductInfosDto.java
View file @
d4aaa4a4
...
@@ -12,7 +12,6 @@
...
@@ -12,7 +12,6 @@
*/
*/
package
cn
.
freemud
.
entities
.
dto
;
package
cn
.
freemud
.
entities
.
dto
;
import
cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean
;
import
cn.freemud.entities.dto.product.ProductInfo
;
import
cn.freemud.entities.dto.product.ProductInfo
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/EntityProductType.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
product
.
pointsmall
;
import
lombok.Data
;
@Data
public
class
EntityProductType
{
// @ApiModelProperty(value = "商品编号")
private
String
productId
;
// @ApiModelProperty(value = "商品描述")
// private String detailText;
// @ApiModelProperty(value = "商品图片")
protected
String
picture
;
// @ApiModelProperty(value = "商品说明图片")
// private List<String> detailImageList;
// @ApiModelProperty(value = "轮播图")
// private List<String> carouselList;
}
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/IntegralProductType.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
product
.
pointsmall
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
IntegralProductType
{
// @ApiModelProperty(value = "商品编号")
private
String
productId
;
// @ApiModelProperty(value = "商品名称")
private
String
productName
;
// @ApiModelProperty(value = "商品类型(1优惠券,2实物)")
private
Integer
productType
;
// @ApiModelProperty(value = "图片列表")
private
List
<
String
>
pictureList
;
// @ApiModelProperty(value = "优惠券编号")
private
String
couponCode
;
// @ApiModelProperty(value = "兑换方式(1积分,2现金,3积分+现金)")
private
Integer
exchangeType
;
// @ApiModelProperty(value = "积分价格")
private
Integer
integralPrice
;
// @ApiModelProperty(value = "现金价格(分)")
private
Integer
cashPrice
;
// @ApiModelProperty(value = "分类编号")
private
String
categoryId
;
// @ApiModelProperty(value = "分类名称")
private
String
categoryName
;
// @ApiModelProperty(value = "首页推荐(0不推荐,1推荐)")
private
Integer
isRecommend
;
// @ApiModelProperty(value = "开始可售时间")
private
String
startTime
;
// @ApiModelProperty(value = "结束可售时间")
private
String
endTime
;
// @ApiModelProperty(value = "库存限制(1:限制库存, 2不限制库存)")
private
Integer
stockLimit
;
// @ApiModelProperty(value = "用户限购类型(1不限制,2限制每人N件,3限制每人每天N件)")
private
Integer
limitType
;
// @ApiModelProperty(value = "限购数量")
private
Integer
limitNumber
;
// @ApiModelProperty(value = "用户等级限制(1不限制,2限制会员等级,3付费会员,4非付费会员)")
private
Integer
levelType
;
// @ApiModelProperty(value = "会员等级列表")
private
List
<
String
>
levelList
;
// @ApiModelProperty(value = "商品排序值")
private
Integer
sequence
;
// @ApiModelProperty(value = "分类排序值")
private
Integer
categorySequence
;
// @ApiModelProperty(value = "商品状态(1下架,2上架,3售罄,4不在可售时间内,5超过每人总限购数量,6超过每人每天限购数量,7用户等级不足,8用户身份不足)")
private
Integer
status
;
// @ApiModelProperty(value = "实物商品信息")
private
EntityProductType
entityProductInfo
;
// @ApiModelProperty(value = "剩余库存数量")
private
Integer
stockNumber
;
// @ApiModelProperty(value = "已兑换数量")
private
Integer
exchangeNumber
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/PointMallListProductInfoRequest.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
product
.
pointsmall
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: PointMallListProductInfoRequest
* @Package com.freemud.product.contract
* @Description:
* @author yue.liu
* @date: 2021/8/9 14:28
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
PointMallListProductInfoRequest
{
// @ApiModelProperty(value = "商户编号", required = true)
private
String
partnerId
;
private
String
memberId
;
// @ApiModelProperty(value = "商品编号列表")
private
List
<
String
>
productIdList
;
// @ApiModelProperty(value = "会员等级编号列表")
private
List
<
String
>
levelIdList
;
// @ApiModelProperty(value = "会员类型(1付费会员,2非付费会员)")
private
Integer
memberType
;
// @ApiModelProperty(value = "是否校验可售时间(true校验,false不校验)")
private
boolean
isValidateTime
;
// @ApiModelProperty(value = "是否校验库存(true校验,false不校验)")
private
boolean
isValidateStock
;
// @ApiModelProperty(value = "是否校验用户限制(true校验,false不校验)")
private
boolean
isValidateMember
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/PointMallListProductInfoResponse.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
product
.
pointsmall
;
import
lombok.Data
;
@Data
public
class
PointMallListProductInfoResponse
<
T
>
{
private
T
result
;
private
Integer
statusCode
;
private
String
message
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/ProductStockRequest.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
product
.
pointsmall
;
import
lombok.Data
;
@Data
public
class
ProductStockRequest
{
//兑换数量
public
Integer
exchangeNumber
;
//非码商品编号
public
String
productId
;
//库存数量
public
Integer
stockNumber
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/product/pointsmall/UpdatePointsMallStocksRequest.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
product
.
pointsmall
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: UpdateStocksRequest
* @Package com.freemud.product.contract
* @Description:
* @author yue.liu
* @date: 2021/8/9 14:28
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
UpdatePointsMallStocksRequest
{
// @ApiModelProperty(value = "1增加库存或兑换数量,2减少库存,3修改库存,兑换数量只支持新增", required = true)
public
String
changeType
;
// @ApiModelProperty(value = "交易号, maxLength = 36", required = true)
public
String
transNo
;
// @ApiModelProperty("备注, maxLength = 50")
public
String
remark
;
// @ApiModelProperty("交易时间 格式类型 yyyy-MM-dd HH:mm:ss")
public
String
transTime
;
// @ApiModelProperty(value = "商品库存信息,建议数量不要超过500", required = true)
public
List
<
ProductStockRequest
>
productStocks
;
// @ApiModelProperty(value = "会员编号", required = true)
public
String
memberId
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserScoreRequest.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
dto
.
user
;
import
lombok.Data
;
@Data
public
class
UserScoreRequest
{
private
Integer
reduceAmount
;
private
String
scoreOrderNo
;
private
Integer
UseScore
;
private
Integer
changeType
;
private
Integer
operationType
;
private
String
memberId
;
private
String
partnerId
;
private
String
storeId
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
View file @
d4aaa4a4
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
package
cn
.
freemud
.
entities
.
vo
;
package
cn
.
freemud
.
entities
.
vo
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.vo.order.CreateOrderProductVo
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
...
@@ -269,6 +270,11 @@ public class CreateOrderVo {
...
@@ -269,6 +270,11 @@ public class CreateOrderVo {
@Valid
@Valid
@ApiModelProperty
(
value
=
"电子风味卡"
)
@ApiModelProperty
(
value
=
"电子风味卡"
)
private
UnionPayCard
unionPayCard
;
private
UnionPayCard
unionPayCard
;
/**
* 下单商品,积分商城使用
*/
private
List
<
CreateOrderProductVo
>
products
;
/**
/**
* 电子风味卡
* 电子风味卡
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/order/CreateOrderProductVo.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
entities
.
vo
.
order
;
import
lombok.Data
;
@Data
public
class
CreateOrderProductVo
{
private
String
spuId
;
private
String
skuId
;
}
order-application-service/src/main/java/cn/freemud/enums/OrderChannelType.java
View file @
d4aaa4a4
...
@@ -24,7 +24,9 @@ public enum OrderChannelType {
...
@@ -24,7 +24,9 @@ public enum OrderChannelType {
BEAUTIFUL
(
"beautiful"
,
"美业"
),
BEAUTIFUL
(
"beautiful"
,
"美业"
),
APP
(
"app"
,
"APP"
);
APP
(
"app"
,
"APP"
),
POINTSMALL
(
"pointsmall"
,
"积分商城"
);
private
String
code
;
private
String
code
;
...
...
order-application-service/src/main/java/cn/freemud/service/PointsMallOrderService.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.CreateOrderVo
;
public
interface
PointsMallOrderService
{
/**
* 创建订单
*/
BaseResponse
createOrder
(
CreateOrderVo
createOrderVo
);
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
d4aaa4a4
...
@@ -97,6 +97,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -97,6 +97,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
@Autowired
@Autowired
private
MallOrderService
mallOrderService
;
private
MallOrderService
mallOrderService
;
@Autowired
@Autowired
private
PointsMallOrderService
pointsMallOrderService
;
@Autowired
private
AppOrderService
appOrderService
;
private
AppOrderService
appOrderService
;
@Autowired
@Autowired
private
RedisCache
redisCache
;
private
RedisCache
redisCache
;
...
@@ -157,6 +159,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -157,6 +159,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
}
/**
/**
* 积分商城
*/
if
(
OrderChannelType
.
POINTSMALL
.
getCode
().
equals
(
createOrderVo
.
getChannelType
()))
{
return
pointsMallOrderService
.
createOrder
(
createOrderVo
);
}
/**
* 商城订单
* 商城订单
*/
*/
if
(
OrderChannelType
.
SAASMALL
.
getCode
().
equals
(
createOrderVo
.
getChannelType
()))
{
if
(
OrderChannelType
.
SAASMALL
.
getCode
().
equals
(
createOrderVo
.
getChannelType
()))
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/PointsMallOrderServiceImpl.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.Active
;
import
cn.freemud.entities.dto.BatchQueryActivityInfoRequestDto
;
import
cn.freemud.entities.dto.BatchQueryActivityInfoResponseDto
;
import
cn.freemud.entities.dto.product.pointsmall.*
;
import
cn.freemud.entities.dto.user.UserScoreRequest
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.PointsMallOrderService
;
import
cn.freemud.service.thirdparty.CustomerPropertyClient
;
import
cn.freemud.service.thirdparty.PointMallProductClient
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderAffirmReq
;
import
com.freemud.application.sdk.api.ordercenter.request.PaySuccessReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest
;
import
com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto
;
import
com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.util.*
;
public
class
PointsMallOrderServiceImpl
implements
PointsMallOrderService
{
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
PointMallProductClient
pointMallProductClient
;
@Autowired
private
OrderSdkService
orderSdkService
;
@Autowired
private
CouponService
couponService
;
@Autowired
private
CustomerPropertyClient
customerPropertyClient
;
@Override
public
BaseResponse
createOrder
(
CreateOrderVo
createOrderVo
)
{
String
sessionId
=
createOrderVo
.
getSessionId
();
//查询会员信息
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
partnerId
=
userLoginInfoDto
.
getPartnerId
();
String
memberId
=
userLoginInfoDto
.
getMemberId
();
String
skuId
=
""
;
if
(
CollectionUtils
.
isNotEmpty
(
createOrderVo
.
getProducts
())){
createOrderVo
.
getProducts
().
get
(
0
).
getSkuId
();
}
//查询商品信息并且校验用户是否能购买 /product/listProductInfo 查询积分商品详情,可根据入参校验商品
PointMallListProductInfoRequest
productInfoRequest
=
new
PointMallListProductInfoRequest
();
productInfoRequest
.
setPartnerId
(
partnerId
);
productInfoRequest
.
setMemberId
(
memberId
);
productInfoRequest
.
setValidateMember
(
true
);
productInfoRequest
.
setValidateStock
(
true
);
productInfoRequest
.
setValidateTime
(
true
);
PointMallListProductInfoResponse
<
IntegralProductType
>
productInfosDto
=
pointMallProductClient
.
listProductInfo
(
productInfoRequest
);
if
(!
Objects
.
equals
(
100
,
productInfosDto
.
getStatusCode
())){
return
ResponseUtil
.
error
(
productInfosDto
.
getStatusCode
().
toString
(),
productInfosDto
.
getMessage
());
}
String
activityCode
=
productInfosDto
.
getResult
().
getCouponCode
();
Integer
points
=
productInfosDto
.
getResult
().
getIntegralPrice
();
boolean
isCoupon
=
productInfosDto
.
getResult
().
getProductType
()
==
1
;
Active
active
=
null
;
if
(
isCoupon
){
//券商品查询券活动信息校验券有效
BatchQueryActivityInfoRequestDto
queryActivityInfoRequestDto
=
new
BatchQueryActivityInfoRequestDto
();
queryActivityInfoRequestDto
.
setActiveCode
(
Arrays
.
asList
(
activityCode
));
queryActivityInfoRequestDto
.
setPartnerId
(
Integer
.
valueOf
(
partnerId
));
BatchQueryActivityInfoResponseDto
batchQueryActivityInfoResponseDto
=
couponService
.
batchQueryActivityInfo
(
queryActivityInfoRequestDto
);
if
(!
Objects
.
equals
(
"100"
,
batchQueryActivityInfoResponseDto
.
getStatusCode
())){
return
ResponseUtil
.
error
(
batchQueryActivityInfoResponseDto
.
getStatusCode
(),
"优惠券异常"
);
}
active
=
batchQueryActivityInfoResponseDto
.
getActivities
().
get
(
0
);
}
//查询积分信息
//创建订单 order/v2/create
OrderItemCreateReq
orderItemCreateReq
=
convent2OrderItemCreateReq
(
productInfosDto
.
getResult
(),
partnerId
,
skuId
,
active
);
CreateOrderRequest
createOrderRequest
=
convent2NEWCreateOrderRequest
(
OrderClientType
.
I_MEMBER
.
getIndex
(),
userLoginInfoDto
,
orderItemCreateReq
,
""
,
""
,
""
,
4
,
orderItemCreateReq
.
getProductPrice
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
<
OrderInfoReqs
>
createOrderResponse
=
orderSdkService
.
createOrder
(
createOrderRequest
,
""
);
if
(!
Objects
.
equals
(
"100"
,
createOrderResponse
.
getCode
())){
return
ResponseUtil
.
error
(
createOrderResponse
.
getCode
(),
"创建订单异常"
);
}
String
orderCode
=
createOrderResponse
.
getResult
().
getOrderCode
();
//扣减积分商品商品库存 /stock/update
UpdatePointsMallStocksRequest
updatePointsMallStocksRequest
=
new
UpdatePointsMallStocksRequest
();
updatePointsMallStocksRequest
.
setMemberId
(
memberId
);
updatePointsMallStocksRequest
.
setChangeType
(
"2"
);
updatePointsMallStocksRequest
.
setRemark
(
"积分兑换"
);
updatePointsMallStocksRequest
.
setTransTime
(
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
updatePointsMallStocksRequest
.
setTransNo
(
orderCode
);
ProductStockRequest
productStockRequest
=
new
ProductStockRequest
();
productStockRequest
.
setProductId
(
skuId
);
productStockRequest
.
setExchangeNumber
(
1
);
productStockRequest
.
setStockNumber
(
1
);
updatePointsMallStocksRequest
.
setProductStocks
(
Arrays
.
asList
(
productStockRequest
));
PointMallListProductInfoResponse
pointMallListProductInfoResponse
=
pointMallProductClient
.
updateStock
(
updatePointsMallStocksRequest
);
if
(!
Objects
.
equals
(
100
,
pointMallListProductInfoResponse
.
getStatusCode
())){
return
ResponseUtil
.
error
(
createOrderResponse
.
getCode
(),
"扣减库存失败"
);
}
//扣减积分 (失败:失败冲正活动库存)
UserScoreRequest
userScoreRequest
=
new
UserScoreRequest
();
boolean
isReduce
=
true
;
userScoreRequest
.
setMemberId
(
memberId
);
userScoreRequest
.
setPartnerId
(
partnerId
);
userScoreRequest
.
setReduceAmount
(
points
*
-
1
);
userScoreRequest
.
setScoreOrderNo
(
orderCode
);
userScoreRequest
.
setChangeType
(
isReduce
?
2
:
1
);
userScoreRequest
.
setOperationType
(
isReduce
?
14
:
2
);
userScoreRequest
.
setStoreId
(
""
);
BaseResponse
baseResponse
=
customerPropertyClient
.
useScore
(
userScoreRequest
);
if
(!
Objects
.
equals
(
"100"
,
baseResponse
.
getCode
())){
return
ResponseUtil
.
error
(
createOrderResponse
.
getCode
(),
"扣减积分失败"
);
}
//订单完成 (失败:失败冲正活动库存)
String
nickName
=
userLoginInfoDto
.
getNickName
();
if
(
isCoupon
){
OrderAffirmReq
request
=
new
OrderAffirmReq
();
request
.
setOrderCode
(
orderCode
);
request
.
setPayState
(
2
);
request
.
setOperator
(
nickName
);
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
updateOrderStateResp
=
orderSdkService
.
orderAffirm
(
request
,
LogThreadLocal
.
getTrackingNo
());
if
(!
Objects
.
equals
(
"100"
,
createOrderResponse
.
getCode
())){
return
ResponseUtil
.
error
(
createOrderResponse
.
getCode
(),
"创建订单异常"
);
}
//发券
}
else
{
PaySuccessReq
request
=
new
PaySuccessReq
();
request
.
setOrderCode
(
orderCode
);
request
.
setOperator
(
nickName
);
orderSdkService
.
paySuccess
(
request
,
LogThreadLocal
.
getTrackingNo
());
if
(!
Objects
.
equals
(
"100"
,
createOrderResponse
.
getCode
())){
return
ResponseUtil
.
error
(
createOrderResponse
.
getCode
(),
"创建订单异常"
);
}
}
return
ResponseUtil
.
success
();
}
private
void
fail
(
boolean
useScoreFail
,
boolean
orderFail
){
}
private
ProductBindingCouponType
convent2ProductBindingCouponType
(
Active
active
){
ProductBindingCouponType
productBindingCouponType2
=
new
ProductBindingCouponType
();
productBindingCouponType2
.
setActivityCode
(
active
.
getActiveCode
());
productBindingCouponType2
.
setNum
(
1
);
productBindingCouponType2
.
setActivityName
(
active
.
getActiveName
());
return
productBindingCouponType2
;
}
private
OrderItemCreateReq
convent2OrderItemCreateReq
(
IntegralProductType
productBean
,
String
partnerId
,
String
skuId
,
Active
active
){
boolean
isCoupon
=
productBean
.
getProductType
()
==
1
;
Long
price
=
0L
;
if
(
isCoupon
){
price
=
productBean
.
getIntegralPrice
().
longValue
();
}
else
{
price
=
productBean
.
getCashPrice
().
longValue
();
}
OrderItemCreateReq
orderItemCreateReq
=
new
OrderItemCreateReq
();
orderItemCreateReq
.
setPartnerId
(
partnerId
);
orderItemCreateReq
.
setSalePrice
(
price
);
orderItemCreateReq
.
setProductPrice
(
price
);
orderItemCreateReq
.
setSettlementPrice
(
price
);
orderItemCreateReq
.
setProductId
(
skuId
);
orderItemCreateReq
.
setProductSpec
(
skuId
);
orderItemCreateReq
.
setProductName
(
productBean
.
getProductName
());
orderItemCreateReq
.
setProductSpecName
(
productBean
.
getProductName
());
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getPictureList
())){
orderItemCreateReq
.
setProductPicUrl
(
productBean
.
getPictureList
().
get
(
0
));
}
orderItemCreateReq
.
setProductSeq
(
1
);
if
(
productBean
.
getEntityProductInfo
()
!=
null
){
orderItemCreateReq
.
setProductCode
(
productBean
.
getEntityProductInfo
().
getProductId
());
orderItemCreateReq
.
setThirdProductId
(
productBean
.
getEntityProductInfo
().
getProductId
());
orderItemCreateReq
.
setProductPicUrl
(
productBean
.
getEntityProductInfo
().
getPicture
());
}
if
(
isCoupon
){
//添加商品绑定的券
OrderProductAddInfoDto
orderProductAddInfoDto
=
new
OrderProductAddInfoDto
();
List
<
ProductBindingCouponType
>
productBindingCoupons
=
new
ArrayList
<>();
productBindingCoupons
.
add
(
convent2ProductBindingCouponType
(
active
));
orderProductAddInfoDto
.
setProductBindingCoupons
(
productBindingCoupons
);
orderItemCreateReq
.
setExtInfo
(
JSONObject
.
toJSONString
(
orderProductAddInfoDto
));
}
orderItemCreateReq
.
setProductQuantity
(
1
);
return
orderItemCreateReq
;
}
private
CreateOrderRequest
convent2NEWCreateOrderRequest
(
Integer
orderClient
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
OrderItemCreateReq
orderItemList
,
String
shopId
,
String
cardCode
,
String
channel
,
Integer
bizType
,
Long
price
){
CreateOrderRequest
request
=
new
CreateOrderRequest
();
String
partnerId
=
userLoginInfoDto
.
getPartnerId
();
request
.
setOrderClient
(
orderClient
);
request
.
setPartnerId
(
partnerId
);
request
.
setStoreId
(
shopId
);
request
.
setStoreName
(
"虚拟门店"
);
request
.
setThirdStoreId
(
""
);
//买券虚拟订单 不管APP卖券还是平台,依旧保留传入6
request
.
setBizType
(
bizType
);
//1:线上支付 2:线下支付
request
.
setPayType
(
1
);
request
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
request
.
setUserName
(
userLoginInfoDto
.
getNickName
());
request
.
setOrderState
(
1
);
request
.
setPayState
(
1
);
if
(
StringUtils
.
isNotBlank
(
cardCode
)){
request
.
setPayChannel
(
"10102"
);
request
.
setPayChannelName
(
"储值卡支付"
);
}
//订单原始金额,单位分
//用户在界面上看到的支付金额
request
.
setSettlementAmount
(
price
);
//实际支付现金金额,扣除支付自生优惠,单位分`
request
.
setActualPayAmount
(
price
);
request
.
setOriginalAmount
(
price
);
request
.
setOrderType
(
OrderType
.
GENERAL_DINE_IN
.
getIndex
());
//商品信息赋值
request
.
setOrderItemList
(
Arrays
.
asList
(
orderItemList
));
//收货人信息转换
List
<
DeliveryContactInfoCreateReq
>
deliveryContactInfoList
=
new
ArrayList
<>();
DeliveryContactInfoCreateReq
deliveryContactInfoCreateReq
=
new
DeliveryContactInfoCreateReq
();
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
deliveryContactInfoCreateReq
.
setRelateObjectType
(
1
);
//联系方式类型 1:取件 2:收件
deliveryContactInfoCreateReq
.
setInfoType
(
1
);
deliveryContactInfoCreateReq
.
setContactsName
(
userLoginInfoDto
.
getNickName
());
deliveryContactInfoCreateReq
.
setMobile
(
userLoginInfoDto
.
getMobile
());
deliveryContactInfoCreateReq
.
setLatitude
(
null
);
deliveryContactInfoCreateReq
.
setLongitude
(
null
);
deliveryContactInfoCreateReq
.
setAddressDetail
(
null
);
deliveryContactInfoCreateReq
.
setProvince
(
null
);
deliveryContactInfoCreateReq
.
setCity
(
null
);
deliveryContactInfoCreateReq
.
setRegion
(
null
);
deliveryContactInfoList
.
add
(
deliveryContactInfoCreateReq
);
request
.
setDeliveryContactInfoList
(
deliveryContactInfoList
);
request
.
setOperator
(
userLoginInfoDto
.
getNickName
());
request
.
setAppId
(
userLoginInfoDto
.
getWxAppId
());
request
.
setPayChannel
(
channel
);
return
request
;
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerPropertyClient.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.user.UserScoreRequest
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"customer-property-service"
,
url
=
"${saas.customerpropertyclient.feign.url}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CustomerPropertyClient
{
//
@LogIgnoreFeign
(
logMessage
=
"useScore"
)
@PostMapping
(
value
=
"user/useScore"
)
BaseResponse
useScore
(
@RequestBody
UserScoreRequest
userScoreRequest
);
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/PointMallProductClient.java
0 → 100644
View file @
d4aaa4a4
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.entities.dto.product.pointsmall.IntegralProductType
;
import
cn.freemud.entities.dto.product.pointsmall.PointMallListProductInfoRequest
;
import
cn.freemud.entities.dto.product.pointsmall.PointMallListProductInfoResponse
;
import
cn.freemud.entities.dto.product.pointsmall.UpdatePointsMallStocksRequest
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
value
=
"PRODUCTSERVICE"
,
url
=
"http://172.16.19.240:9996/swagger-ui.html#/"
)
//${saas.pointMallProductClient.feign.url}
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
PointMallProductClient
{
/**
* 获取商品的详细信息
*/
@LogIgnoreFeign
(
logMessage
=
"listProductInfos"
,
statusCodeFieldName
=
ResponseCodeKeyConstant
.
STATUS_CODE
)
@PostMapping
(
"/biz/product/listProductInfo"
)
PointMallListProductInfoResponse
<
IntegralProductType
>
listProductInfo
(
@RequestBody
PointMallListProductInfoRequest
productInfoRequest
);
@LogIgnoreFeign
(
logMessage
=
"listProductInfos"
,
statusCodeFieldName
=
ResponseCodeKeyConstant
.
STATUS_CODE
)
@PostMapping
(
"/biz/stock/update"
)
PointMallListProductInfoResponse
updateStock
(
@RequestBody
UpdatePointsMallStocksRequest
updatePointsMallStocksRequest
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment