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
6dbe1827
Commit
6dbe1827
authored
Nov 09, 2021
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
移除sdk调用券码接口 改成feign调用
Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent
161e42b5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
156 additions
and
61 deletions
+156
-61
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/coupon/CouponResponseDTO.java
+22
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/coupon/FastBatchQueryTemplateInfoRequest.java
+26
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/coupon/FastTemplateInfoResponseVO.java
+66
-0
shopping-cart-application-service/src/main/java/cn/freemud/handle/GetActivityMsgHandle.java
+27
-61
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineClient.java
+15
-0
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/coupon/CouponResponseDTO.java
0 → 100644
View file @
6dbe1827
package
cn
.
freemud
.
entities
.
dto
.
coupon
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/11/9 下午2:45
* @description :
*/
@Data
public
class
CouponResponseDTO
<
T
>
{
private
Integer
statusCode
;
/**
* 返回信息
*/
private
String
msg
;
private
T
result
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/coupon/FastBatchQueryTemplateInfoRequest.java
0 → 100644
View file @
6dbe1827
package
cn
.
freemud
.
entities
.
dto
.
coupon
;
import
lombok.Data
;
import
java.util.Set
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/11/9 下午2:42
* @description :
*/
@Data
public
class
FastBatchQueryTemplateInfoRequest
{
/**
* 商户号
*/
private
String
partnerId
;
/**
* 模板编号列表
*/
private
Set
<
String
>
templateCode
;
private
String
trackingNo
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/coupon/FastTemplateInfoResponseVO.java
0 → 100644
View file @
6dbe1827
package
cn
.
freemud
.
entities
.
dto
.
coupon
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/11/9 下午2:43
* @description :
*/
@Data
public
class
FastTemplateInfoResponseVO
{
@ApiModelProperty
(
value
=
"模板编号"
,
required
=
true
)
private
String
templateCode
;
@ApiModelProperty
(
value
=
"模板名称"
,
required
=
true
)
private
String
templateName
;
@ApiModelProperty
(
value
=
"券类型:0 商品券 1 代金券 3 折扣券 4 换购券 5 配送券 6商品兑换券 7买M免N券"
,
required
=
true
)
private
Integer
type
;
@ApiModelProperty
(
"券子类型,目前只对商品券生效,0:白名单商品券,1:黑名单商品券"
)
private
Integer
subType
;
@ApiModelProperty
(
value
=
"固定有效期开始时间,格式YYYY-MM-DD HH:mm:ss"
,
required
=
true
)
private
Date
effectiveStartTime
;
@ApiModelProperty
(
value
=
"固定有效结束时间,格式YYYY-MM-DD HH:mm:ss"
,
required
=
true
)
private
Date
effectiveEndTime
;
@ApiModelProperty
(
value
=
"领券结束时间,格式YYYY-MM-DD HH:mm:ss"
,
required
=
true
)
private
Date
receiveEndTime
;
@ApiModelProperty
(
value
=
"领券开始时间,格式YYYY-MM-DD HH:mm:ss"
,
required
=
true
)
private
Date
receiveStartTime
;
@ApiModelProperty
(
value
=
"启用金额,单位:分"
,
required
=
true
)
private
Integer
minAmount
;
@ApiModelProperty
(
value
=
"券面值,折扣券时,10代表1折,65代表6.5折。其他券时单位为分,如100=1元"
,
required
=
true
)
private
Integer
faceValue
;
@ApiModelProperty
(
"固定时长有效期类型的券,领取后等待生效天数,0代表立即生效。"
)
private
Integer
fromDayEffective
;
@ApiModelProperty
(
"固定时长有效期类型的券,生效后几天内有效"
)
private
Integer
effectiveDays
;
@ApiModelProperty
(
"券图片"
)
private
String
logo
;
@ApiModelProperty
(
"券扩展类型"
)
private
Integer
extentType
;
@ApiModelProperty
(
"门店限制类型,当“门店或渠道限制类型”为“门店限制”时生效,当 1:所有门店,2:部分门店,3:发券指定门店"
)
private
Integer
storeLimitType
;
@ApiModelProperty
(
"门店或渠道限制类型,1:门店限制,2:渠道限制"
)
private
Integer
storeChannelLimitType
;
@ApiModelProperty
(
"活动状态:0未启用、 1启用、2开始、 3结束、 4暂停、5作废、6禁用"
)
private
Integer
status
;
}
shopping-cart-application-service/src/main/java/cn/freemud/handle/GetActivityMsgHandle.java
View file @
6dbe1827
package
cn
.
freemud
.
handle
;
package
cn
.
freemud
.
handle
;
import
cn.freemud.entities.dto.BindingCouponTypeDto
;
import
cn.freemud.entities.dto.BindingCouponTypeDto
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
import
cn.freemud.entities.dto.coupon.FastBatchQueryTemplateInfoRequest
;
import
cn.freemud.entities.dto.coupon.FastTemplateInfoResponseVO
;
import
cn.freemud.entities.vo.CouponMsg
;
import
cn.freemud.entities.vo.CouponMsg
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.redis.RedisCache
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.couponcenter.online.domain.ActiveDetailVO
;
import
com.freemud.application.sdk.api.couponcenter.online.domain.AppKeyVO
;
import
com.freemud.application.sdk.api.couponcenter.online.request.ActiveBatchQueryRequest
;
import
com.freemud.application.sdk.api.couponcenter.online.request.PartnerRequest
;
import
com.freemud.application.sdk.api.couponcenter.online.service.FMActiveSdkService
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.sdk.api.assortment.shoppingcart.util.ShoppingSdkLogUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -34,8 +23,8 @@ import java.util.stream.Collectors;
...
@@ -34,8 +23,8 @@ import java.util.stream.Collectors;
@Component
@Component
public
class
GetActivityMsgHandle
{
public
class
GetActivityMsgHandle
{
@
Value
(
"${coupon.app.id}"
)
@
Autowired
private
String
appId
;
private
CouponOnlineClient
couponOnlineClient
;
/**
/**
* fisherman 获取 虚拟商品 券数据
* fisherman 获取 虚拟商品 券数据
...
@@ -48,19 +37,19 @@ public class GetActivityMsgHandle {
...
@@ -48,19 +37,19 @@ public class GetActivityMsgHandle {
List
<
CouponMsg
>
retList
=
new
ArrayList
<>();
List
<
CouponMsg
>
retList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
productBindingCoupons
))
{
if
(
CollectionUtils
.
isNotEmpty
(
productBindingCoupons
))
{
// 处理 券数据 这里链路有问题 效率有点低, 后续需要优化
// 处理 券数据 这里链路有问题 效率有点低, 后续需要优化
Lis
t
<
String
>
activityCodes
=
productBindingCoupons
.
stream
()
Se
t
<
String
>
activityCodes
=
productBindingCoupons
.
stream
()
.
map
(
BindingCouponTypeDto:
:
getActivityCode
)
.
map
(
BindingCouponTypeDto:
:
getActivityCode
)
.
collect
(
Collectors
.
to
Lis
t
());
.
collect
(
Collectors
.
to
Se
t
());
List
<
ActiveDetail
VO
>
activeDetailVOS
=
this
.
batchQueryActivityInfo
(
activityCodes
,
partnerId
);
List
<
FastTemplateInfoResponse
VO
>
activeDetailVOS
=
this
.
batchQueryActivityInfo
(
activityCodes
,
partnerId
);
if
(
CollectionUtils
.
isNotEmpty
(
activeDetailVOS
))
{
if
(
CollectionUtils
.
isNotEmpty
(
activeDetailVOS
))
{
// 设置 券名称 数量
// 设置 券名称 数量
Map
<
String
,
ActiveDetailVO
>
collect
=
activeDetailVOS
.
stream
().
collect
(
Collectors
.
toMap
(
ActiveDetailVO:
:
getActiv
eCode
,
a
->
a
,
(
k1
,
k2
)
->
k1
));
Map
<
String
,
FastTemplateInfoResponseVO
>
collect
=
activeDetailVOS
.
stream
().
collect
(
Collectors
.
toMap
(
FastTemplateInfoResponseVO:
:
getTemplat
eCode
,
a
->
a
,
(
k1
,
k2
)
->
k1
));
productBindingCoupons
.
forEach
(
coupon
->
{
productBindingCoupons
.
forEach
(
coupon
->
{
CouponMsg
msg
=
new
CouponMsg
();
CouponMsg
msg
=
new
CouponMsg
();
ActiveDetail
VO
activeDetailVO
=
collect
.
get
(
coupon
.
getActivityCode
());
FastTemplateInfoResponse
VO
activeDetailVO
=
collect
.
get
(
coupon
.
getActivityCode
());
msg
.
setActivityCode
(
coupon
.
getActivityCode
());
msg
.
setActivityCode
(
coupon
.
getActivityCode
());
msg
.
setNum
(
coupon
.
getNum
());
msg
.
setNum
(
coupon
.
getNum
());
msg
.
setActivityName
(
activeDetailVO
.
get
Activ
eName
());
msg
.
setActivityName
(
activeDetailVO
.
get
Templat
eName
());
retList
.
add
(
msg
);
retList
.
add
(
msg
);
});
});
}
}
...
@@ -68,45 +57,22 @@ public class GetActivityMsgHandle {
...
@@ -68,45 +57,22 @@ public class GetActivityMsgHandle {
return
retList
;
return
retList
;
}
}
private
List
<
ActiveDetailVO
>
batchQueryActivityInfo
(
Lis
t
<
String
>
activityCodes
,
String
partnerId
)
{
private
List
<
FastTemplateInfoResponseVO
>
batchQueryActivityInfo
(
Se
t
<
String
>
activityCodes
,
String
partnerId
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
appKey
=
this
.
getAppKey
(
partnerId
,
trackingNo
);
FastBatchQueryTemplateInfoRequest
request
=
new
FastBatchQueryTemplateInfoRequest
();
if
(
StringUtils
.
isEmpty
(
appKey
))
{
request
.
setPartnerId
(
partnerId
);
return
null
;
request
.
setTemplateCode
(
activityCodes
);
}
request
.
setTrackingNo
(
trackingNo
);
ActiveBatchQueryRequest
activeBatchQueryRequest
=
new
ActiveBatchQueryRequest
();
//去重
CouponResponseDTO
<
List
<
FastTemplateInfoResponseVO
>>
responseDTO
=
couponOnlineClient
.
fastBatchQueryTemplateInfo
(
request
);
List
<
String
>
activeCodes
=
new
ArrayList
<>(
new
HashSet
(
activityCodes
));
if
(
responseDTO
==
null
activeBatchQueryRequest
.
setActiveCode
(
activeCodes
);
||
!
Objects
.
equals
(
responseDTO
.
getStatusCode
(),
100
)
activeBatchQueryRequest
.
setAppSecret
(
appKey
);
||
CollectionUtils
.
isEmpty
(
responseDTO
.
getResult
()))
{
activeBatchQueryRequest
.
setPartnerId
(
Integer
.
parseInt
(
partnerId
));
FMActiveSdkService
fmActiveSdkService
=
SDKCommonBaseContextWare
.
getBean
(
FMActiveSdkService
.
class
);
BaseResponse
<
List
<
ActiveDetailVO
>>
batchQueryResponse
=
fmActiveSdkService
.
batchQueryActivityInfo
(
activeBatchQueryRequest
,
trackingNo
);
if
(
batchQueryResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
batchQueryResponse
.
getCode
())
||
CollectionUtils
.
isEmpty
(
batchQueryResponse
.
getData
()))
{
return
null
;
return
null
;
}
}
return
batchQueryResponse
.
getData
();
}
private
String
getAppKey
(
String
partnerId
,
String
trackingNo
)
{
List
<
FastTemplateInfoResponseVO
>
result
=
responseDTO
.
getResult
();
RedisCache
redisCache
=
SDKCommonBaseContextWare
.
getBean
(
RedisCache
.
class
);
return
result
;
String
key
=
"kgd:coupon:appKey:partner:"
;
String
appKey
=
redisCache
.
getValue
(
key
+
partnerId
);
if
(
StringUtils
.
isEmpty
(
appKey
))
{
PartnerRequest
partnerRequest
=
new
PartnerRequest
();
partnerRequest
.
setPartnerId
(
Integer
.
parseInt
(
partnerId
));
partnerRequest
.
setAppId
(
appId
);
FMActiveSdkService
fmActiveSdkService
=
SDKCommonBaseContextWare
.
getBean
(
FMActiveSdkService
.
class
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
AppKeyVO
>
appKeyVOBaseResponse
=
fmActiveSdkService
.
getAppKey
(
partnerRequest
,
trackingNo
);
if
(
appKeyVOBaseResponse
==
null
||
!
"100"
.
equals
(
appKeyVOBaseResponse
.
getCode
())
||
appKeyVOBaseResponse
.
getData
()
==
null
||
StringUtils
.
isEmpty
(
appKeyVOBaseResponse
.
getData
().
getAppKey
()))
{
return
null
;
}
appKey
=
appKeyVOBaseResponse
.
getData
().
getAppKey
();
redisCache
.
save
(
key
+
partnerId
,
appKey
);
}
return
appKey
;
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineClient.java
View file @
6dbe1827
...
@@ -5,12 +5,17 @@ import cn.freemud.annotations.IgnoreFeignLogAnnotation;
...
@@ -5,12 +5,17 @@ import cn.freemud.annotations.IgnoreFeignLogAnnotation;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
import
cn.freemud.entities.dto.coupon.FastBatchQueryTemplateInfoRequest
;
import
cn.freemud.entities.dto.coupon.FastTemplateInfoResponseVO
;
import
cn.freemud.interceptor.FormSupportConfig
;
import
cn.freemud.interceptor.FormSupportConfig
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
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.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@FeignClient
(
name
=
"OPEN-STORE-ONLINE-COUPON-SERVICE"
,
url
=
"${saas.coupononlineclient.feign.url}"
,
configuration
=
FormSupportConfig
.
class
)
@FeignClient
(
name
=
"OPEN-STORE-ONLINE-COUPON-SERVICE"
,
url
=
"${saas.coupononlineclient.feign.url}"
,
configuration
=
FormSupportConfig
.
class
)
...
@@ -24,4 +29,14 @@ public interface CouponOnlineClient {
...
@@ -24,4 +29,14 @@ public interface CouponOnlineClient {
)
)
GetCouponDetailResponseDto
getCouponDetails
(
@RequestParam
Map
<
String
,
?>
map
);
GetCouponDetailResponseDto
getCouponDetails
(
@RequestParam
Map
<
String
,
?>
map
);
/**
* 新版 根据券模板查询 券基础信息数据
* @param request
* @return
*/
@IgnoreFeignLogAnnotation
(
logMessage
=
"fastBatchQueryTemplateInfo"
,
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
,
statusCodeFieldName
=
ResponseCodeKeyConstant
.
STATUS_CODE
)
@PostMapping
(
value
=
"/fastBatchQueryTemplateInfo"
)
CouponResponseDTO
<
List
<
FastTemplateInfoResponseVO
>>
fastBatchQueryTemplateInfo
(
@RequestBody
FastBatchQueryTemplateInfoRequest
request
);
}
}
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