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
77094679
Commit
77094679
authored
Aug 23, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
积分商品
parent
ac99ae22
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
105 additions
and
80 deletions
+105
-80
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserScoreRequest.java
+19
-0
order-application-service/src/main/java/cn/freemud/service/business/impl/OrderBusinessServiceImpl.java
+29
-43
order-application-service/src/main/java/cn/freemud/service/impl/CustomerScoreService.java
+2
-2
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomScoreClient.java
+35
-35
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerApplicationClient.java
+20
-0
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserScoreRequest.java
0 → 100644
View file @
77094679
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
;
private
Integer
productScore
;
}
order-application-service/src/main/java/cn/freemud/service/business/impl/OrderBusinessServiceImpl.java
View file @
77094679
...
@@ -7,10 +7,10 @@ import cn.freemud.amqp.MQService;
...
@@ -7,10 +7,10 @@ import cn.freemud.amqp.MQService;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.GetMemberExtendInfoRequestDto
;
import
cn.freemud.entities.dto.GetMemberExtendInfoRequestDto
;
import
cn.freemud.entities.dto.GetMemberExtendInfoResponseDto
;
import
cn.freemud.entities.dto.GetMemberExtendInfoResponseDto
;
import
cn.freemud.entities.dto.GetUserScoreUserDetailDto
;
import
cn.freemud.entities.dto.user.UserScoreRequest
;
import
cn.freemud.service.business.OrderBusinessService
;
import
cn.freemud.service.business.OrderBusinessService
;
import
cn.freemud.entities.dto.user.CustomerPropertyBaseResponse
;
import
cn.freemud.service.thirdparty.CustomerApplicationClient
;
import
cn.freemud.entities.dto.user.UseScoreRequest
;
import
cn.freemud.service.thirdparty.CustomerPropertyClient
;
import
cn.freemud.service.thirdparty.CustomerClient
;
import
cn.freemud.service.thirdparty.CustomerClient
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -21,10 +21,6 @@ import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCoupo
...
@@ -21,10 +21,6 @@ import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCoupo
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.ThirdPartyLog
;
import
com.freemud.application.sdk.api.log.ThirdPartyLog
;
import
com.freemud.application.sdk.api.membercenter.request.GetMemberExtendInfoRequest
;
import
com.freemud.application.sdk.api.membercenter.request.UserScoreRequest
;
import
com.freemud.application.sdk.api.membercenter.response.GetMemberExtendInfoResponse
;
import
com.freemud.application.sdk.api.membercenter.service.MemberScoreService
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
...
@@ -88,13 +84,12 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
...
@@ -88,13 +84,12 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
@Autowired
@Autowired
private
PromotionSdkService
promotionSdkService
;
private
PromotionSdkService
promotionSdkService
;
@Autowired
@Autowired
private
MemberScoreService
memberScoreService
;
private
CustomerApplicationClient
customerApplicationClient
;
// private MemberScoreService memberScoreService;
@Autowired
@Autowired
private
OfflineCouponSdkService
offlineCouponSdkService
;
private
OfflineCouponSdkService
offlineCouponSdkService
;
@Autowired
@Autowired
private
MQService
mqService
;
private
MQService
mqService
;
@Autowired
private
CustomerPropertyClient
customerPropertyClient
;
@Value
(
"${version.upgrade.weekDay:}"
)
@Value
(
"${version.upgrade.weekDay:}"
)
...
@@ -289,25 +284,11 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
...
@@ -289,25 +284,11 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
activityResponse
.
getCode
(),
"活动库存不足"
);
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
activityResponse
.
getCode
(),
"活动库存不足"
);
}
}
}
}
// 扣减积分,扣减失败冲正积分返回错误
if
(
totalScore
!=
null
&&
totalScore
!=
0
)
{
UseScoreRequest
userScoreRequest
=
convent2UseScoreRequest
(
orderBean
,
totalScore
,
true
);
CustomerPropertyBaseResponse
baseResponse
=
customerPropertyClient
.
useScore
(
userScoreRequest
);
if
(!
Objects
.
equals
(
"100"
,
baseResponse
.
getCode
()))
{
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"积分不足"
,
""
,
null
);
orderCancel
(
cancelOrderRequest
);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
baseResponse
.
getCode
(),
"积分不足"
);
}
}
UserScoreRequest
userScoreRequest
=
orderSdkAdapter
.
convent2UserScoreRequest
(
orderBean
,
accounts
,
tru
e
);
UserScoreRequest
userScoreRequest
=
this
.
convent2UserScoreRequest
(
orderBean
,
accounts
,
true
,
totalScor
e
);
// 扣减积分,扣减失败冲正积分返回错误
// 扣减积分,扣减失败冲正积分返回错误
if
(
userScoreRequest
!=
null
)
{
if
(
userScoreRequest
!=
null
)
{
BaseResponse
userScoreResponse
=
memberScoreService
.
useScore
(
userScoreRequest
,
""
);
GetUserScoreUserDetailDto
userScoreResponse
=
customerApplicationClient
.
useScore
(
userScoreRequest
);
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
userScoreResponse
.
getCode
()))
{
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
userScoreResponse
.
getCode
()))
{
//TODO 失败取消订单,异步冲正库存
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
...
@@ -569,29 +550,34 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
...
@@ -569,29 +550,34 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
return
false
;
return
false
;
}
}
/**
/**
* 积分扣减或冲正
,调会员基础服务
* 积分扣减或冲正
(积分抵现或积分商品活动)
*
*
* @param orderBean 订单
* @param orderBean 订单
* @param accounts 订单优惠明细
* @param isReduce 是否扣减:true扣减;false冲正
* @param isReduce 是否扣减:true扣减;false冲正
* @return
* @return
*/
*/
public
UseScoreRequest
convent2UseScoreRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
Long
totalScore
,
boolean
isReduce
)
{
public
UserScoreRequest
convent2UserScoreRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
,
boolean
isReduce
,
Long
totalScore
)
{
UseScoreRequest
userScoreRequest
=
new
UseScoreRequest
();
UserScoreRequest
userScoreRequest
=
null
;
userScoreRequest
.
setMemberId
(
orderBean
.
getUserId
());
Integer
reduceAmount
=
0
;
userScoreRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
if
(
CollectionUtils
.
isNotEmpty
(
accounts
))
{
userScoreRequest
.
setChangeScore
(
totalScore
.
intValue
());
Optional
<
CreateOrderAccountRequest
>
accountRequest
=
accounts
.
stream
().
filter
(
account
->
account
.
getAccountType
().
getCode
().
equals
(
QueryOrderAccountType
.
CUSTOMER_SCORE
.
getCode
())).
findFirst
();
userScoreRequest
.
setOperationType
(
12
);
if
(
accountRequest
.
isPresent
()
&&
accountRequest
.
get
().
getPrice
()
!=
0
){
userScoreRequest
.
setOperationName
(
"积分兑换"
);
reduceAmount
=
accountRequest
.
get
().
getPrice
().
intValue
();
userScoreRequest
.
setChangeType
(
2
);
}
userScoreRequest
.
setOrderId
(
orderBean
.
getOid
());
}
userScoreRequest
.
setOrgCode
(
""
);
if
(
reduceAmount
!=
0
||
(
totalScore
!=
null
&&
totalScore
!=
0
)){
userScoreRequest
.
setOrgType
(
isReduce
?
1
:
2
);
userScoreRequest
=
new
UserScoreRequest
();
userScoreRequest
.
setIdempotencyBussinessId
(
LogThreadLocal
.
getTrackingNo
());
userScoreRequest
.
setMemberId
(
orderBean
.
getUserId
());
userScoreRequest
.
setIdempotencyBussinessType
(
"5"
);
userScoreRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
userScoreRequest
.
setAppId
(
orderBean
.
getAppId
());
userScoreRequest
.
setReduceAmount
(
reduceAmount
*
-
1
);
userScoreRequest
.
setScoreOrderNo
(
orderBean
.
getOid
());
userScoreRequest
.
setChangeType
(
isReduce
?
2
:
1
);
userScoreRequest
.
setOperationType
(
isReduce
?
14
:
2
);
userScoreRequest
.
setStoreId
(
orderBean
.
getShopId
());
userScoreRequest
.
setProductScore
(
totalScore
.
intValue
());
}
return
userScoreRequest
;
return
userScoreRequest
;
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CustomerScoreService.java
View file @
77094679
...
@@ -8,7 +8,7 @@ import cn.freemud.entities.vo.GetUserScoreUseDetailVo;
...
@@ -8,7 +8,7 @@ import cn.freemud.entities.vo.GetUserScoreUseDetailVo;
import
cn.freemud.entities.vo.ShoppingCartCustomerScoreVo
;
import
cn.freemud.entities.vo.ShoppingCartCustomerScoreVo
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.service.thirdparty.Custom
Score
Client
;
import
cn.freemud.service.thirdparty.Custom
erApplication
Client
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.AppLogUtil
;
import
com.freemud.application.sdk.api.constant.FMStatusCode
;
import
com.freemud.application.sdk.api.constant.FMStatusCode
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
...
@@ -34,7 +34,7 @@ import java.math.BigDecimal;
...
@@ -34,7 +34,7 @@ import java.math.BigDecimal;
@Service
@Service
public
class
CustomerScoreService
implements
IPromotionService
{
public
class
CustomerScoreService
implements
IPromotionService
{
@Autowired
@Autowired
private
Custom
Score
Client
customScoreClient
;
private
Custom
erApplication
Client
customScoreClient
;
@Override
@Override
public
void
updateDiscountApportion
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
OrderBeanRequest
request
,
CalculationDiscountResultDto
calculationDiscountResult
,
CouponPromotionDto
couponPromotionDto
,
ActivityQueryDto
activityQueryDto
,
Boolean
isApportion
)
{
public
void
updateDiscountApportion
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
OrderBeanRequest
request
,
CalculationDiscountResultDto
calculationDiscountResult
,
CouponPromotionDto
couponPromotionDto
,
ActivityQueryDto
activityQueryDto
,
Boolean
isApportion
)
{
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomScoreClient.java
View file @
77094679
package
cn
.
freemud
.
service
.
thirdparty
;
//
package cn.freemud.service.thirdparty;
//
import
cn.freemud.annotations.LogIgnoreFeign
;
//
import cn.freemud.annotations.LogIgnoreFeign;
import
cn.freemud.entities.dto.GetUserScoreUserDetailDto
;
//
import cn.freemud.entities.dto.GetUserScoreUserDetailDto;
import
cn.freemud.entities.vo.GetUserScoreUseDetailVo
;
//
import cn.freemud.entities.vo.GetUserScoreUseDetailVo;
import
org.springframework.cloud.openfeign.FeignClient
;
//
import org.springframework.cloud.openfeign.FeignClient;
import
org.springframework.web.bind.annotation.PostMapping
;
//
import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
//
import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
//
import org.springframework.web.bind.annotation.RequestMapping;
//
/**
/
//
**
* All rights Reserved, Designed By www.freemud.com
//
* All rights Reserved, Designed By www.freemud.com
*
//
*
* @version V1.0
//
* @version V1.0
* @Title:
//
* @Title:
* @Package: cn.freemud.service.thirdparty
//
* @Package: cn.freemud.service.thirdparty
* @Descripttion:
//
* @Descripttion:
* @author: shuhu.hou
//
* @author: shuhu.hou
* @date: 2019/5/11
//
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
//
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
//
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
//
*/
@FeignClient
(
name
=
"customer-application-service"
,
url
=
"${saas.customScoreClient.feign.url}"
)
//
@FeignClient(name = "customer-application-service", url = "${saas.customScoreClient.feign.url}")
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
//
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public
interface
CustomScoreClient
{
//
public interface CustomScoreClient {
//
// TODO: 21-4-1 带合并
// // TODO: 21-4-1 带合并
//
/**
//
/**
* 用户可用积分
//
* 用户可用积分
*/
//
*/
@LogIgnoreFeign
(
logMessage
=
"getUserScoreUseDetail"
)
//
@LogIgnoreFeign(logMessage="getUserScoreUseDetail")
@PostMapping
(
value
=
"/user/scoreUseDetail"
)
//
@PostMapping(value = "/user/scoreUseDetail")
GetUserScoreUserDetailDto
getUserScoreUseDetail
(
@RequestBody
GetUserScoreUseDetailVo
getUserScoreUseDetailVo
);
//
GetUserScoreUserDetailDto getUserScoreUseDetail(@RequestBody GetUserScoreUseDetailVo getUserScoreUseDetailVo);
}
//
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerApplicationClient.java
View file @
77094679
...
@@ -2,9 +2,13 @@ package cn.freemud.service.thirdparty;
...
@@ -2,9 +2,13 @@ package cn.freemud.service.thirdparty;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.GetUserScoreUserDetailDto
;
import
cn.freemud.entities.dto.PurchasePaidRequestDto
;
import
cn.freemud.entities.dto.PurchasePaidRequestDto
;
import
cn.freemud.entities.dto.user.UserScoreRequest
;
import
cn.freemud.entities.vo.GetUserScoreUseDetailVo
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
/**
...
@@ -28,4 +32,20 @@ public interface CustomerApplicationClient {
...
@@ -28,4 +32,20 @@ public interface CustomerApplicationClient {
@PostMapping
(
value
=
"membercard/purchasePaid"
)
@PostMapping
(
value
=
"membercard/purchasePaid"
)
BaseResponse
purchasePaid
(
PurchasePaidRequestDto
requestDto
);
BaseResponse
purchasePaid
(
PurchasePaidRequestDto
requestDto
);
/**
* 用户可用积分
*/
@LogIgnoreFeign
(
logMessage
=
"getUserScoreUseDetail"
)
@PostMapping
(
value
=
"/user/scoreUseDetail"
)
GetUserScoreUserDetailDto
getUserScoreUseDetail
(
@RequestBody
GetUserScoreUseDetailVo
getUserScoreUseDetailVo
);
/**
* 用户可用积分
*/
@LogIgnoreFeign
(
logMessage
=
"useScore"
)
@PostMapping
(
value
=
"/user/useScore"
)
GetUserScoreUserDetailDto
useScore
(
@RequestBody
UserScoreRequest
userScoreRequest
);
}
}
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