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
a617508b
Commit
a617508b
authored
Nov 11, 2020
by
chongfu.liang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/2.0.6-农工商商品兑换券' into qa
# Conflicts: # order-application-service/pom.xml
parents
4cb7af02
b214030f
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
518 additions
and
8 deletions
+518
-8
order-application-service/src/main/java/cn/freemud/constant/CommonRedisKeyConstant.java
+6
-0
order-application-service/src/main/java/cn/freemud/controller/CreateOrderController.java
+11
-0
order-application-service/src/main/java/cn/freemud/entities/Active.java
+166
-0
order-application-service/src/main/java/cn/freemud/entities/BatchQueryActivityInfoResponse.java
+19
-0
order-application-service/src/main/java/cn/freemud/entities/dto/BatchQueryActivityInfoResponseDto.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/GetCouponDetailResponseDto.java
+4
-0
order-application-service/src/main/java/cn/freemud/entities/vo/NgsSellCouponCreateOrderVo.java
+37
-0
order-application-service/src/main/java/cn/freemud/service/CouponService.java
+5
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+9
-0
order-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+18
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+6
-3
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
+231
-4
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtInfoDto.java
+5
-0
No files found.
order-application-service/src/main/java/cn/freemud/constant/CommonRedisKeyConstant.java
View file @
a617508b
...
@@ -10,4 +10,10 @@ public class CommonRedisKeyConstant {
...
@@ -10,4 +10,10 @@ public class CommonRedisKeyConstant {
* 不需要授权得url
* 不需要授权得url
*/
*/
public
final
static
String
SAAS_NOT_AUTHORIZED_URL
=
"saas:micro:not:authorized:url"
;
public
final
static
String
SAAS_NOT_AUTHORIZED_URL
=
"saas:micro:not:authorized:url"
;
/**
* 农工商流水号
*/
public
final
static
String
NGS_FLOWNO_PARTNER_DATE_NO
=
"ngs:flowno:partner:date:no"
;
}
}
order-application-service/src/main/java/cn/freemud/controller/CreateOrderController.java
View file @
a617508b
package
cn
.
freemud
.
controller
;
package
cn
.
freemud
.
controller
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.NgsSellCouponCreateOrderVo
;
import
cn.freemud.entities.vo.SellCouponCreateOrderVo
;
import
cn.freemud.entities.vo.SellCouponCreateOrderVo
;
import
cn.freemud.service.impl.SellCouponOrderServiceImpl
;
import
cn.freemud.service.impl.SellCouponOrderServiceImpl
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
...
@@ -43,4 +44,14 @@ public class CreateOrderController {
...
@@ -43,4 +44,14 @@ public class CreateOrderController {
return
sellCouponOrderService
.
createOrder
(
requestVo
);
return
sellCouponOrderService
.
createOrder
(
requestVo
);
}
}
/**
* 农工商卖券订单创建
*/
@ApiAnnotation
(
logMessage
=
"sellCouponOrderCreate"
)
@PostMapping
(
"/ngs/sellCouponOrder/create"
)
public
BaseResponse
ngsSellCouponOrderCreate
(
@Validated
@LogParams
@RequestBody
NgsSellCouponCreateOrderVo
requestVo
)
{
return
sellCouponOrderService
.
ngsCouponOrderCreate
(
requestVo
);
}
}
}
order-application-service/src/main/java/cn/freemud/entities/Active.java
0 → 100644
View file @
a617508b
package
cn
.
freemud
.
entities
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
Active
{
@JSONField
(
name
=
"ActiveId"
)
private
Integer
ActiveId
;
@JSONField
(
name
=
"EBCode"
)
private
String
EBCode
;
@JSONField
(
name
=
"Type"
)
private
Integer
Type
;
@JSONField
(
name
=
"PartnerID"
)
private
Integer
PartnerID
;
@JSONField
(
name
=
"PlatformItemId"
)
private
String
PlatformItemId
;
@JSONField
(
name
=
"State"
)
private
Integer
State
;
@JSONField
(
name
=
"CreateUser"
)
private
String
CreateUser
;
@JSONField
(
name
=
"CreateDate"
)
private
String
CreateDate
;
@JSONField
(
name
=
"LastEditUser"
)
private
String
LastEditUser
;
@JSONField
(
name
=
"LastEditDate"
)
private
String
LastEditDate
;
@JSONField
(
name
=
"ActiveCode"
)
private
String
ActiveCode
;
@JSONField
(
name
=
"ActiveName"
)
private
String
ActiveName
;
@JSONField
(
name
=
"StartDate"
)
private
String
StartDate
;
@JSONField
(
name
=
"EndDate"
)
private
String
EndDate
;
@JSONField
(
name
=
"ShouldRedeemAll"
)
private
Boolean
ShouldRedeemAll
;
@JSONField
(
name
=
"PromotionType"
)
private
String
PromotionType
;
@JSONField
(
name
=
"Exclusive"
)
private
Boolean
Exclusive
;
@JSONField
(
name
=
"MinAmount"
)
private
BigDecimal
MinAmount
;
@JSONField
(
name
=
"MaxRedeemTimes"
)
private
Integer
MaxRedeemTimes
;
@JSONField
(
name
=
"MaxSendOut"
)
private
Integer
MaxSendOut
;
@JSONField
(
name
=
"Cost"
)
private
BigDecimal
Cost
;
@JSONField
(
name
=
"BusinessID"
)
private
Integer
BusinessID
;
@JSONField
(
name
=
"ActiveDesc"
)
private
String
ActiveDesc
;
@JSONField
(
name
=
"Percentage"
)
private
Double
percentage
;
@JSONField
(
name
=
"Inventory"
)
private
Integer
inventory
;
@JSONField
(
name
=
"PercentDiscount"
)
private
BigDecimal
PercentDiscount
;
@JSONField
(
name
=
"MaxDiscount"
)
private
Integer
MaxDiscount
;
@JSONField
(
name
=
"AppId"
)
private
String
AppId
;
@JSONField
(
name
=
"FromDayEffective"
)
private
Integer
FromDayEffective
;
@JSONField
(
name
=
"Effective"
)
private
Integer
Effective
;
@JSONField
(
name
=
"EffectiveStart"
)
private
Date
EffectiveStart
;
@JSONField
(
name
=
"EffectiveEnd"
)
private
Date
EffectiveEnd
;
@JSONField
(
name
=
"RedeemChannel"
)
private
String
RedeemChannel
;
@JSONField
(
name
=
"MerchantDiscountPrice"
)
private
BigDecimal
MerchantDiscountPrice
;
@JSONField
(
name
=
"PlatformDiscountPrice"
)
private
BigDecimal
PlatformDiscountPrice
;
@JSONField
(
name
=
"OtherDiscountPrice"
)
private
BigDecimal
OtherDiscountPrice
;
@JSONField
(
name
=
"salePrice"
)
private
Integer
salePrice
;
@JSONField
(
name
=
"voucherFaceValue"
)
private
Integer
voucherFaceValue
;
}
order-application-service/src/main/java/cn/freemud/entities/BatchQueryActivityInfoResponse.java
0 → 100644
View file @
a617508b
package
cn
.
freemud
.
entities
;
import
java.util.List
;
public
class
BatchQueryActivityInfoResponse
{
/**
* 状态码
*/
private
String
statusCode
;
/**
* 状态码描述
*/
private
String
msg
;
private
List
<
Active
>
activities
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/BatchQueryActivityInfoResponseDto.java
View file @
a617508b
package
cn
.
freemud
.
entities
.
dto
;
package
cn
.
freemud
.
entities
.
dto
;
import
c
om.freemud.card.sdk.vo.coupon
.Active
;
import
c
n.freemud.entities
.Active
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/GetCouponDetailResponseDto.java
View file @
a617508b
...
@@ -80,6 +80,10 @@ public class GetCouponDetailResponseDto {
...
@@ -80,6 +80,10 @@ public class GetCouponDetailResponseDto {
private
String
startString
;
private
String
startString
;
@JsonProperty
(
"State"
)
@JsonProperty
(
"State"
)
private
Integer
state
;
private
Integer
state
;
@JsonProperty
(
"SalePrice"
)
private
Integer
salePrice
;
@JsonProperty
(
"OriginalPrice"
)
private
Integer
originalPrice
;
@JsonProperty
(
"Type"
)
@JsonProperty
(
"Type"
)
private
Integer
type
;
private
Integer
type
;
}
}
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/NgsSellCouponCreateOrderVo.java
0 → 100644
View file @
a617508b
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
@Data
public
class
NgsSellCouponCreateOrderVo
{
@NotEmpty
(
message
=
"sessionId 不能为空"
)
private
String
sessionId
;
/**
* svc 储值卡支付使用
*/
private
String
cardCode
;
@NotEmpty
(
message
=
"券号 不能为空"
)
private
String
activityCode
;
/**
* 业务类型
*/
@NotEmpty
(
message
=
"bizType 业务类型不能为空"
)
private
String
bizType
;
/**
* 版本号
*/
// @NotEmpty(message = "version 版本号不能为空")
private
String
version
;
@NotEmpty
(
message
=
"appId"
)
private
String
appId
;
}
order-application-service/src/main/java/cn/freemud/service/CouponService.java
View file @
a617508b
...
@@ -13,6 +13,8 @@
...
@@ -13,6 +13,8 @@
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.entities.dto.BatchQueryActivityInfoRequestDto
;
import
cn.freemud.entities.dto.BatchQueryActivityInfoResponseDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse
;
import
cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse
;
import
cn.freemud.entities.vo.ActivityClassifyCouponBean
;
import
cn.freemud.entities.vo.ActivityClassifyCouponBean
;
...
@@ -31,6 +33,9 @@ public interface CouponService {
...
@@ -31,6 +33,9 @@ public interface CouponService {
*/
*/
GetCouponDetailResponseDto
getMemberCoupon
(
GetMemberCouponRequestVo
requestVo
);
GetCouponDetailResponseDto
getMemberCoupon
(
GetMemberCouponRequestVo
requestVo
);
BatchQueryActivityInfoResponseDto
batchQueryActivityInfo
(
BatchQueryActivityInfoRequestDto
requestDto
);
/**
/**
* 获取卡券服务商户密钥
* 获取卡券服务商户密钥
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
a617508b
...
@@ -140,6 +140,15 @@ public class CheckOrder {
...
@@ -140,6 +140,15 @@ public class CheckOrder {
return
userLoginInfoDto
;
return
userLoginInfoDto
;
}
}
public
AssortmentCustomerInfoVo
getMemberNew
(
String
sessionId
)
{
// 通过sessionId查询缓存中会员id
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
return
userLoginInfoDto
;
}
/**
/**
* 查询门店信息
* 查询门店信息
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
a617508b
...
@@ -156,6 +156,24 @@ public class CouponServiceImpl implements CouponService {
...
@@ -156,6 +156,24 @@ public class CouponServiceImpl implements CouponService {
return
null
;
return
null
;
}
}
@Override
public
BatchQueryActivityInfoResponseDto
batchQueryActivityInfo
(
BatchQueryActivityInfoRequestDto
requestDto
)
{
String
appSecret
=
this
.
getAppSecret
(
String
.
valueOf
(
requestDto
.
getPartnerId
()));
// requestDto.setActiveCode(calActiveCodes);
// 书写逻辑
// requestDto.setPartnerId(Integer.valueOf(partnerId));
String
sign
=
SignUtil
.
createMD5Sign
(
requestDto
,
appSecret
);
requestDto
.
setSign
(
sign
);
BatchQueryActivityInfoResponseDto
batchQueryActivityInfoResponseDto
=
cardBinClient
.
batchQueryActivityInfo
(
requestDto
);
if
(
Objects
.
equals
(
batchQueryActivityInfoResponseDto
.
getStatusCode
(),
ResponseCodeConstant
.
RESPONSE_SUCCESS_0_STR
)
&&
CollectionUtils
.
isNotEmpty
(
batchQueryActivityInfoResponseDto
.
getActivities
()))
{
return
batchQueryActivityInfoResponseDto
;
}
return
null
;
}
/**
/**
* 获取会员服务的优惠券列表
* 获取会员服务的优惠券列表
*
*
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
a617508b
...
@@ -2231,7 +2231,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2231,7 +2231,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse
=
uSvcPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getUnionPayCard
());
orderPayResponse
=
uSvcPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getUnionPayCard
());
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createPrepayRequestDto
.
getPartnerId
());
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createPrepayRequestDto
.
getPartnerId
());
orderPayResponse
=
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getCardAmount
(),
transId
,
partnerPayOvertime
);
orderPayResponse
=
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getCardAmount
(),
transId
,
partnerPayOvertime
,
createPrepayRequestDto
.
getOrderExtInfoDTO
()
);
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
cardCode
))
{
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
cardCode
))
{
//svc卡支付
//svc卡支付
orderPayResponse
=
svcPay
(
cardCode
,
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
());
orderPayResponse
=
svcPay
(
cardCode
,
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
());
...
@@ -2393,10 +2393,13 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2393,10 +2393,13 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getMessage
(),
null
);
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getMessage
(),
null
);
}
}
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
,
String
transId
,
String
partnerPayOvertime
)
{
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
,
String
transId
,
String
partnerPayOvertime
,
OrderExtInfoDto
orderExtInfoDto
)
{
OrderPayResponse
orderPayResponse
;
OrderPayResponse
orderPayResponse
;
try
{
try
{
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
,
partnerPayOvertime
);
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
,
partnerPayOvertime
);
if
(
orderExtInfoDto
!=
null
&&
StringUtils
.
isNotBlank
(
orderExtInfoDto
.
getStationId
()))
{
request
.
setStationId
(
orderExtInfoDto
.
getStationId
());
}
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
log
.
error
(
"支付SDK返回信息错误,trackingNo:{} request:{} response:{}"
,
trackingNo
,
JSONObject
.
toJSONString
(
request
),
JSONObject
.
toJSONString
(
responseBase
));
log
.
error
(
"支付SDK返回信息错误,trackingNo:{} request:{} response:{}"
,
trackingNo
,
JSONObject
.
toJSONString
(
request
),
JSONObject
.
toJSONString
(
responseBase
));
...
@@ -2869,7 +2872,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2869,7 +2872,7 @@ public class OrderServiceImpl implements Orderservice {
//唤起微信支付
//唤起微信支付
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
createOrderVo
.
getCardCode
())
&&
StringUtils
.
isBlank
(
createOrderVo
.
getFaceCode
()))
{
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
createOrderVo
.
getCardCode
())
&&
StringUtils
.
isBlank
(
createOrderVo
.
getFaceCode
()))
{
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createOrderVo
.
getPartnerId
());
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createOrderVo
.
getPartnerId
());
orderPayResponse
=
getPreOrderPay
(
fatherBeanListOne
,
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
cardAmount
,
fatherBeanListOne
.
getOid
(),
partnerPayOvertime
);
orderPayResponse
=
getPreOrderPay
(
fatherBeanListOne
,
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
cardAmount
,
fatherBeanListOne
.
getOid
(),
partnerPayOvertime
,
null
);
return
orderPayResponse
;
return
orderPayResponse
;
}
}
//储值卡支付
//储值卡支付
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
View file @
a617508b
...
@@ -4,9 +4,12 @@ import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter;
...
@@ -4,9 +4,12 @@ import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.constant.CommonRedisKeyConstant
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.Active
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.vo.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.NgsSellCouponCreateOrderVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.SellCouponCreateOrderVo
;
import
cn.freemud.entities.vo.SellCouponCreateOrderVo
;
import
cn.freemud.enums.OrderBeanType
;
import
cn.freemud.enums.OrderBeanType
;
...
@@ -14,6 +17,7 @@ import cn.freemud.enums.ResponseResult;
...
@@ -14,6 +17,7 @@ import cn.freemud.enums.ResponseResult;
import
cn.freemud.enums.UserLoginChannelEnum
;
import
cn.freemud.enums.UserLoginChannelEnum
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -53,6 +57,7 @@ import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponTy
...
@@ -53,6 +57,7 @@ import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponTy
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -60,9 +65,14 @@ import org.apache.commons.collections4.CollectionUtils;
...
@@ -60,9 +65,14 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.text.DecimalFormat
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
...
@@ -98,15 +108,27 @@ public class SellCouponOrderServiceImpl {
...
@@ -98,15 +108,27 @@ public class SellCouponOrderServiceImpl {
private
OrderAdapter
orderAdapter
;
private
OrderAdapter
orderAdapter
;
@Autowired
@Autowired
private
OrderSdkAdapter
orderSdkAdapter
;
private
OrderSdkAdapter
orderSdkAdapter
;
@Autowired
private
RedisCache
redisCache
;
@Autowired
private
CouponService
couponService
;
@Value
(
"${coupon.app.id}"
)
@Value
(
"${coupon.app.id}"
)
private
String
appId
;
private
String
appId
;
@Value
(
"#{${ngs.virtual.store.idmap:null}}"
)
private
Map
<
String
,
String
>
storeIdMap
;
@Value
(
"${ngs.partnerId.easy}"
)
private
String
easyPartnerId
;
@Value
(
"${ngs.partnerId.supermarket}"
)
private
String
supermarketPartnerId
;
private
final
String
SUCCESS
=
"100"
;
private
final
String
SUCCESS
=
"100"
;
private
final
String
ngsCouponProductId
=
"76161384"
;
/**
/**
* 卖券订单创建
* 卖券订单创建
*/
*/
...
@@ -208,6 +230,100 @@ public class SellCouponOrderServiceImpl {
...
@@ -208,6 +230,100 @@ public class SellCouponOrderServiceImpl {
return
orderservice
.
createPrepayOrder
(
createPrepayRequestDto
);
return
orderservice
.
createPrepayOrder
(
createPrepayRequestDto
);
}
}
public
BaseResponse
ngsCouponOrderCreate
(
NgsSellCouponCreateOrderVo
requestVo
){
// 查询用户信息、校验svc卡
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkOrder
.
getMemberNew
(
requestVo
.
getSessionId
());
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
partnerId
=
userLoginInfoDto
.
getPartnerId
();
// 构建创建订单入参
CreateOrderRequest
createOrderRequest
=
ngsConvent2NEWCreateOrderRequest
(
requestVo
,
userLoginInfoDto
);
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
<
OrderInfoReqs
>
orderInfoReqsBaseResponse
=
orderSdkService
.
createOrder
(
createOrderRequest
,
trackingNo
);
CreateOrderResponse
createOrderResponse
=
orderSdkAdapter
.
convent2NEWOrderInfoReqs
(
orderInfoReqsBaseResponse
);
if
(
createOrderResponse
==
null
||
createOrderResponse
.
getErrcode
()
!=
100
){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_CREATE_ERROR
);
}
//创建支付
CreatePrepayRequestDto
createPrepayRequestDto
=
new
CreatePrepayRequestDto
();
createPrepayRequestDto
.
setPartnerId
(
partnerId
);
createPrepayRequestDto
.
setTransId
(
orderInfoReqsBaseResponse
.
getResult
().
getOrderCode
());
createPrepayRequestDto
.
setWxAppId
(
userLoginInfoDto
.
getWxAppId
());
createPrepayRequestDto
.
setOpenId
(
userLoginInfoDto
.
getOpenId
());
createPrepayRequestDto
.
setCardCode
(
requestVo
.
getCardCode
());
createPrepayRequestDto
.
setPayCode
(
null
);
createPrepayRequestDto
.
setFatherOrderBean
(
createOrderResponse
.
getData
());
createPrepayRequestDto
.
setProductOrderBean
(
createOrderResponse
.
getData
());
createPrepayRequestDto
.
setTotalAmount
(
createOrderRequest
.
getSettlementAmount
());
createPrepayRequestDto
.
setCardAmount
(
0
);
OrderExtInfoDto
orderExtInfoDto
=
new
OrderExtInfoDto
();
String
deliveryHoursDayStart
=
""
;
String
deliveryHoursDayEnd
=
""
;
orderExtInfoDto
.
setDeliveryHoursDayStart
(
deliveryHoursDayStart
);
orderExtInfoDto
.
setDeliveryHoursDayEnd
(
deliveryHoursDayEnd
);
orderExtInfoDto
.
setOpenid
(
userLoginInfoDto
.
getOpenId
());
orderExtInfoDto
.
setAppid
(
userLoginInfoDto
.
getWxAppId
());
orderExtInfoDto
.
setSessionId
(
requestVo
.
getSessionId
());
Integer
serviceTime
=
0
;
if
(
Objects
.
equals
(
serviceTime
,
null
))
{
serviceTime
=
50
;
}
orderExtInfoDto
.
setServiceTime
(
serviceTime
);
orderExtInfoDto
.
setVersion
(
requestVo
.
getVersion
());
// 扩展字段中存储 sessionKey
orderExtInfoDto
.
setSessionKey
(
userLoginInfoDto
.
getSessionKey
());
orderExtInfoDto
.
setFromAppId
(
userLoginInfoDto
.
getWxAppId
());
String
date
=
DateUtil
.
convert2String
(
new
Date
(),
"yyyyMMdd"
);
String
key
=
this
.
getFolwNo
(
partnerId
,
date
);
int
flowno
=
0
;
RedisTemplate
redisTemplate
=
redisCache
.
getRedisTemplate
();
if
(
redisTemplate
.
opsForValue
().
setIfAbsent
(
key
,
0
))
{
redisTemplate
.
expire
(
key
,
24
,
TimeUnit
.
HOURS
);
}
else
{
flowno
=
redisTemplate
.
opsForValue
().
increment
(
key
,
1
).
intValue
();
}
String
stationid
=
getStationId
(
date
,
requestVo
.
getAppId
(),
flowno
);
orderExtInfoDto
.
setStationId
(
stationid
);
createPrepayRequestDto
.
setOrderExtInfoDTO
(
orderExtInfoDto
);
return
orderservice
.
createPrepayOrder
(
createPrepayRequestDto
);
}
private
String
getStationId
(
String
date
,
String
appid
,
int
flowno
)
{
String
stationid
=
""
;
int
length
=
String
.
valueOf
(
flowno
).
length
();
if
(
easyPartnerId
.
equals
(
appid
)){
stationid
=
date
+
"6600000001"
;
for
(
int
i
=
0
;
i
<
5
-
length
;
i
++){
stationid
+=
"0"
;
}
stationid
+=
flowno
;
}
else
if
(
supermarketPartnerId
.
equals
(
appid
))
{
stationid
=
date
+
"9988800001"
;
for
(
int
i
=
0
;
i
<
5
-
length
;
i
++){
stationid
+=
"0"
;
}
stationid
+=
flowno
;
}
return
stationid
;
}
private
String
getFolwNo
(
String
partnerId
,
String
date
){
return
CommonRedisKeyConstant
.
NGS_FLOWNO_PARTNER_DATE_NO
+
":"
+
partnerId
+
":"
+
date
;
}
/**
/**
* 批量查询活动详情
* 批量查询活动详情
*
*
...
@@ -382,6 +498,111 @@ public class SellCouponOrderServiceImpl {
...
@@ -382,6 +498,111 @@ public class SellCouponOrderServiceImpl {
}
}
private
CreateOrderRequest
ngsConvent2NEWCreateOrderRequest
(
NgsSellCouponCreateOrderVo
requestVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
){
CreateOrderRequest
request
=
new
CreateOrderRequest
();
Integer
orderClient
=
OrderClientType
.
SAAS
.
getIndex
();
if
(
UserLoginChannelEnum
.
ALIPAY
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
())){
orderClient
=
OrderClientType
.
ALIPAY
.
getIndex
();
}
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
())){
orderClient
=
OrderClientType
.
APP
.
getIndex
();
}
String
partnerId
=
userLoginInfoDto
.
getPartnerId
();
request
.
setOrderClient
(
orderClient
);
request
.
setPartnerId
(
partnerId
);
request
.
setStoreId
(
storeIdMap
.
get
(
partnerId
));
//买券虚拟订单
request
.
setBizType
(
6
);
//1:线上支付 2:线下支付
request
.
setPayType
(
1
);
request
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
request
.
setUserName
(
userLoginInfoDto
.
getNickName
());
request
.
setStoreName
(
"虚拟门店"
);
request
.
setThirdStoreId
(
""
);
request
.
setOrderState
(
1
);
request
.
setPayState
(
1
);
if
(
StringUtils
.
isNotBlank
(
requestVo
.
getCardCode
())){
request
.
setPayChannel
(
"10102"
);
request
.
setPayChannelName
(
"储值卡支付"
);
}
// TODO 商品信息 从券码查
// TODO 通过活动号查询金额
String
activityCode
=
requestVo
.
getActivityCode
();
BatchQueryActivityInfoRequestDto
queryActivityInfoRequestDto
=
new
BatchQueryActivityInfoRequestDto
();
queryActivityInfoRequestDto
.
setActiveCode
(
Arrays
.
asList
(
activityCode
));
queryActivityInfoRequestDto
.
setPartnerId
(
Integer
.
valueOf
(
partnerId
));
BatchQueryActivityInfoResponseDto
batchQueryActivityInfoResponseDto
=
couponService
.
batchQueryActivityInfo
(
queryActivityInfoRequestDto
);
Active
active
=
batchQueryActivityInfoResponseDto
.
getActivities
().
get
(
0
);
// GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean = productInfosResponse.getProducts().get(0);
//订单原始金额,单位分
//用户在界面上看到的支付金额
request
.
setSettlementAmount
(
active
.
getSalePrice
().
longValue
());
//实际支付现金金额,扣除支付自生优惠,单位分`
request
.
setActualPayAmount
(
active
.
getSalePrice
().
longValue
());
request
.
setOriginalAmount
(
active
.
getVoucherFaceValue
().
longValue
());
request
.
setOrderType
(
OrderType
.
GENERAL_DINE_IN
.
getIndex
());
//商品信息转换
List
<
OrderItemCreateReq
>
orderItemList
=
new
ArrayList
<>();
OrderItemCreateReq
orderItemCreateReq
=
new
OrderItemCreateReq
();
orderItemCreateReq
.
setSalePrice
(
active
.
getSalePrice
().
longValue
());
orderItemCreateReq
.
setProductPrice
(
active
.
getVoucherFaceValue
().
longValue
());
orderItemCreateReq
.
setSettlementPrice
(
active
.
getSalePrice
().
longValue
());
orderItemCreateReq
.
setPartnerId
(
partnerId
);
orderItemCreateReq
.
setProductId
(
ngsCouponProductId
);
orderItemCreateReq
.
setProductSpec
(
ngsCouponProductId
);
orderItemCreateReq
.
setProductName
(
"卖券虚拟商品"
);
orderItemCreateReq
.
setProductSpecName
(
"卖券虚拟商品"
);
orderItemCreateReq
.
setProductSeq
(
1
);
orderItemCreateReq
.
setProductCode
(
ngsCouponProductId
);
orderItemCreateReq
.
setThirdProductId
(
""
);
orderItemCreateReq
.
setProductQuantity
(
1
);
OrderProductAddInfoDto
orderProductAddInfoDto
=
new
OrderProductAddInfoDto
();
List
<
ProductBindingCouponType
>
productBindingCoupons
=
new
ArrayList
<>();
ProductBindingCouponType
productBindingCouponType2
=
new
ProductBindingCouponType
();
productBindingCouponType2
.
setActivityCode
(
active
.
getActiveCode
());
productBindingCouponType2
.
setNum
(
1
);
productBindingCouponType2
.
setActivityName
(
active
.
getActiveName
());
productBindingCoupons
.
add
(
productBindingCouponType2
);
orderProductAddInfoDto
.
setProductBindingCoupons
(
productBindingCoupons
);
orderItemCreateReq
.
setExtInfo
(
JSONObject
.
toJSONString
(
orderProductAddInfoDto
));
orderItemList
.
add
(
orderItemCreateReq
);
//商品信息赋值
request
.
setOrderItemList
(
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
());
return
request
;
}
/**
/**
*
*
* @param message
* @param message
...
@@ -454,5 +675,11 @@ public class SellCouponOrderServiceImpl {
...
@@ -454,5 +675,11 @@ public class SellCouponOrderServiceImpl {
return
couponDetailResponse
.
getData
().
getDetails
();
return
couponDetailResponse
.
getData
().
getDetails
();
}
}
private
Long
pointToFen
(
double
price
)
{
DecimalFormat
df
=
new
DecimalFormat
(
"#.00"
);
price
=
Double
.
valueOf
(
df
.
format
(
price
));
long
money
=
(
long
)
(
price
*
100
);
return
money
;
}
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtInfoDto.java
View file @
a617508b
...
@@ -182,5 +182,10 @@ public class OrderExtInfoDto {
...
@@ -182,5 +182,10 @@ public class OrderExtInfoDto {
private
Integer
sendPointMaxNum
;
private
Integer
sendPointMaxNum
;
private
Integer
sendPointValidityDateDays
;
private
Integer
sendPointValidityDateDays
;
/**
* 唤起预支付设备号
*/
private
String
stationId
;
}
}
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