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
c329f619
Commit
c329f619
authored
Jan 12, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支付成功回掉接口优化demo
parent
1a4bf2c3
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
510 additions
and
0 deletions
+510
-0
order-application-service/src/main/java/cn/freemud/demoTest/adapter/bo/ServiceBOAdapter.java
+13
-0
order-application-service/src/main/java/cn/freemud/demoTest/adapter/dto/dto.java
+4
-0
order-application-service/src/main/java/cn/freemud/demoTest/controller/OrderController.java
+34
-0
order-application-service/src/main/java/cn/freemud/demoTest/entities/ResponseBuilder.java
+27
-0
order-application-service/src/main/java/cn/freemud/demoTest/entities/bo/BasePaySuccessBo.java
+64
-0
order-application-service/src/main/java/cn/freemud/demoTest/entities/dto/OrderInfoDemoDto.java
+12
-0
order-application-service/src/main/java/cn/freemud/demoTest/entities/vo/BasePaySuccessVO.java
+4
-0
order-application-service/src/main/java/cn/freemud/demoTest/enums/PartnerIdEnum.java
+27
-0
order-application-service/src/main/java/cn/freemud/demoTest/enums/TradeBizTypeEnum.java
+29
-0
order-application-service/src/main/java/cn/freemud/demoTest/manager/OrderManager.java
+14
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/AbstractPaySuccessService.java
+70
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/AbstractTradeService.java
+9
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/COCOPaySuccessService.java
+4
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/MAILService.java
+16
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/MEALSService.java
+15
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/McCofePaySuccessService.java
+4
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/OrderService.java
+12
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/PaySuccessService.java
+39
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/PlatformPaySuccessService.java
+22
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/factory/ServiceFactory.java
+34
-0
order-application-service/src/main/java/cn/freemud/demoTest/service/impl/OrderServiceImpl.java
+34
-0
order-application-service/src/main/java/cn/freemud/demoTest/util/BizTypeUtil.java
+23
-0
No files found.
order-application-service/src/main/java/cn/freemud/demoTest/adapter/bo/ServiceBOAdapter.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
adapter
.
bo
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
public
class
ServiceBOAdapter
{
public
BasePaySuccessBo
convert2BasePaySuccessBo
(
PaysuccessNoticeMessage
message
)
{
BasePaySuccessBo
baseAddGoodsVO
=
new
BasePaySuccessBo
();
return
baseAddGoodsVO
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/adapter/dto/dto.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
adapter
.
dto
;
public
class
dto
{
}
order-application-service/src/main/java/cn/freemud/demoTest/controller/OrderController.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
controller
;
import
cn.freemud.demoTest.adapter.bo.ServiceBOAdapter
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.service.OrderService
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
public
class
OrderController
{
@Autowired
private
OrderService
orderService
;
@Autowired
private
ServiceBOAdapter
serviceBOAdapter
;
/**
* 订单支付成功后通知
*/
@ApiAnnotation
(
logMessage
=
"paySuccessCallback"
)
@PostMapping
(
"/paySuccessCallback"
)
public
String
paySuccessCallback
(
@LogParams
@RequestBody
PaysuccessNoticeMessage
message
)
{
BasePaySuccessBo
basePaySuccessBo
=
serviceBOAdapter
.
convert2BasePaySuccessBo
(
message
);
return
orderService
.
paySuccessCallback
(
basePaySuccessBo
);
}
}
order-application-service/src/main/java/cn/freemud/demoTest/entities/ResponseBuilder.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
entities
;
import
cn.freemud.base.entity.BaseResponse
;
public
class
ResponseBuilder
{
private
final
static
String
DEFAULT_VER
=
"1"
;
private
final
static
String
SUCCESS_CODE
=
"100"
;
private
final
static
String
SUCCESS_MESSAGE
=
"SUCCESS"
;
/**
* 无业务响应参数成功返回
* @return
*/
public
static
BaseResponse
success
()
{
return
new
BaseResponse
(
DEFAULT_VER
,
SUCCESS_CODE
,
SUCCESS_MESSAGE
);
}
/**
* 带有业务响应参数成功返回
* @return
*/
public
static
<
T
>
BaseResponse
success
(
T
t
)
{
return
new
BaseResponse
(
SUCCESS_CODE
,
SUCCESS_MESSAGE
,
DEFAULT_VER
,
t
);
}
}
order-application-service/src/main/java/cn/freemud/demoTest/entities/bo/BasePaySuccessBo.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
entities
.
bo
;
import
lombok.Data
;
@Data
public
class
BasePaySuccessBo
{
/**
* 接口版本
*/
private
Integer
resultCode
;
/**
* 非码交易流水号 fmID
*/
private
String
outTradeNo
;
/**
* 支付时终端交易序号
*/
private
String
transId
;
/**
* 订单金额
*/
private
Integer
totalFee
;
/**
* 营业员编号
*/
private
String
openid
;
/**
* 平台优惠
*/
private
double
platformCoupon
;
/**
* 商家优惠
*/
private
double
merchantCoupon
;
/**
* 平台支付订单号(微信订单号)
*/
private
String
paidNo
;
/**
* 渠道方流水号 (比如扫呗,易宝等) 新支付服务做中转使用
*/
private
String
endTransId
;
/**
* 第三方支付商户号 新支付服务做中转使用
*/
private
String
platformMchId
;
/**
* 扫呗商户号 新支付服务做中转使用
*/
private
String
terminalId
;
/**
* 会员规则ID
*/
private
String
ruleId
;
/**
* 消息来源
*/
private
Integer
source
;
}
order-application-service/src/main/java/cn/freemud/demoTest/entities/dto/OrderInfoDemoDto.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
entities
.
dto
;
import
lombok.Data
;
@Data
public
class
OrderInfoDemoDto
{
private
String
source
;
}
order-application-service/src/main/java/cn/freemud/demoTest/entities/vo/BasePaySuccessVO.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
entities
.
vo
;
public
class
BasePaySuccessVO
{
}
order-application-service/src/main/java/cn/freemud/demoTest/enums/PartnerIdEnum.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
enums
;
public
enum
PartnerIdEnum
{
MC_cofe
(
"1628"
,
"麦咖啡"
),
COCO
(
"1516"
,
"coco"
),
;
private
String
partnerId
;
private
String
name
;
PartnerIdEnum
(
String
partnerId
,
String
name
)
{
this
.
partnerId
=
partnerId
;
this
.
name
=
name
;
}
public
String
getPartnerId
()
{
return
partnerId
;
}
public
String
getName
()
{
return
name
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/enums/TradeBizTypeEnum.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
enums
;
public
enum
TradeBizTypeEnum
{
PLATFORM
(
"platform"
,
"平台"
),
MEALS
(
"meals"
,
"围餐"
),
MAIL
(
"mall"
,
"商城"
),
;
private
String
code
;
private
String
message
;
TradeBizTypeEnum
(
String
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
String
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/manager/OrderManager.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
manager
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
public
class
OrderManager
{
public
OrderInfoDemoDto
getOrderInfo
()
{
return
null
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/AbstractPaySuccessService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.demoTest.entities.ResponseBuilder
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
com.alibaba.druid.util.StringUtils
;
public
abstract
class
AbstractPaySuccessService
implements
PaySuccessService
{
public
final
String
paysuccess
(
BasePaySuccessBo
paySuccessBo
,
OrderInfoDemoDto
orderInfoDemoDto
)
{
// 基本参数校验
this
.
checkParams
(
paySuccessBo
);
// 添加商品到购物车
this
.
paySuccessDefault
(
paySuccessBo
);
// 拼装返回体
this
.
paySuccessAfter
(
paySuccessBo
);
return
""
;
}
public
final
BaseResponse
paySuccessDefault
(
BasePaySuccessBo
baseRequestDTO
)
{
return
null
;
}
/**
* 请求基本参数校验
* @return
*/
public
final
BaseResponse
checkParams
(
BasePaySuccessBo
baseRequestDTO
)
{
BaseResponse
commonBaseResponse
=
this
.
checkCommParams
(
baseRequestDTO
);
return
ResponseBuilder
.
success
();
}
public
final
BaseResponse
checkCommParams
(
BasePaySuccessBo
baseRequestDTO
)
{
if
(
StringUtils
.
isEmpty
(
baseRequestDTO
.
getTransId
())){
throw
new
ServiceException
(
ResponseResult
.
PARAMETER_MISSING
);
}
return
ResponseBuilder
.
success
();
}
/**
* 具体业务逻辑校验
*
* @return
*/
public
final
BaseResponse
paySuccessAfter
(
BasePaySuccessBo
baseRequestDTO
)
{
return
ResponseBuilder
.
success
();
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/AbstractTradeService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
public
abstract
class
AbstractTradeService
{
public
abstract
String
paySuccessCallback
(
BasePaySuccessBo
basePaySuccessBo
,
OrderInfoDemoDto
orderInfoDemoDto
);
}
order-application-service/src/main/java/cn/freemud/demoTest/service/COCOPaySuccessService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
public
class
COCOPaySuccessService
extends
AbstractPaySuccessService
{
}
order-application-service/src/main/java/cn/freemud/demoTest/service/MAILService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
public
class
MAILService
extends
AbstractTradeService
{
@Override
public
String
paySuccessCallback
(
BasePaySuccessBo
basePaySuccessBo
,
OrderInfoDemoDto
orderInfoDemoDto
)
{
return
null
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/MEALSService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
public
class
MEALSService
extends
AbstractTradeService
{
@Override
public
String
paySuccessCallback
(
BasePaySuccessBo
basePaySuccessBo
,
OrderInfoDemoDto
orderInfoDemoDto
)
{
return
null
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/McCofePaySuccessService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
public
class
McCofePaySuccessService
extends
AbstractPaySuccessService
{
}
order-application-service/src/main/java/cn/freemud/demoTest/service/OrderService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
public
interface
OrderService
{
/**
* 支付回调处理
*/
String
paySuccessCallback
(
BasePaySuccessBo
paySuccessBo
);
}
order-application-service/src/main/java/cn/freemud/demoTest/service/PaySuccessService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.demoTest.entities.ResponseBuilder
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
public
interface
PaySuccessService
{
/**
* 获取订单信息
* @param baseRequestDTO
* @return
*/
default
BaseResponse
getOrderInfo
(
BasePaySuccessBo
baseRequestDTO
)
{
return
ResponseBuilder
.
success
();
}
/**
* 获取购物车信息
* @param baseRequestDTO
* @return
*/
default
BaseResponse
paySuccessDefault
(
BasePaySuccessBo
baseRequestDTO
)
{
return
ResponseBuilder
.
success
();
}
/**
* 封装客制化返回
* @param baseRequestDTO
* @return
*/
default
BaseResponse
paySuccessAfter
(
BasePaySuccessBo
baseRequestDTO
)
{
return
ResponseBuilder
.
success
();
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/PlatformPaySuccessService.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
import
cn.freemud.demoTest.service.factory.ServiceFactory
;
public
class
PlatformPaySuccessService
extends
AbstractTradeService
{
@Override
public
String
paySuccessCallback
(
BasePaySuccessBo
basePaySuccessBo
,
OrderInfoDemoDto
orderInfoDemoDto
)
{
AbstractPaySuccessService
paySuccessService
=
ServiceFactory
.
createPaySuccessInstance
(
orderInfoDemoDto
.
getSource
());
String
result
=
paySuccessService
.
paysuccess
(
basePaySuccessBo
,
orderInfoDemoDto
);
return
""
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/factory/ServiceFactory.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
.
factory
;
import
cn.freemud.base.ApplicationContextWare
;
import
cn.freemud.demoTest.enums.PartnerIdEnum
;
import
cn.freemud.demoTest.enums.TradeBizTypeEnum
;
import
cn.freemud.demoTest.service.*
;
public
class
ServiceFactory
{
public
static
AbstractTradeService
createTradeInstance
(
String
bizType
)
{
AbstractTradeService
abstractTradeService
=
null
;
if
(
TradeBizTypeEnum
.
PLATFORM
.
getCode
().
equals
(
bizType
))
{
abstractTradeService
=
ApplicationContextWare
.
getBean
(
PlatformPaySuccessService
.
class
);
}
else
if
(
TradeBizTypeEnum
.
MEALS
.
getCode
().
equals
(
bizType
)){
abstractTradeService
=
ApplicationContextWare
.
getBean
(
MEALSService
.
class
);
}
else
if
(
TradeBizTypeEnum
.
MAIL
.
getCode
().
equals
(
bizType
)){
abstractTradeService
=
ApplicationContextWare
.
getBean
(
MAILService
.
class
);
}
return
abstractTradeService
;
}
public
static
AbstractPaySuccessService
createPaySuccessInstance
(
String
parnterId
)
{
AbstractPaySuccessService
abstractPaySuccessService
=
null
;
if
(
PartnerIdEnum
.
MC_cofe
.
getPartnerId
().
equals
(
parnterId
))
{
abstractPaySuccessService
=
ApplicationContextWare
.
getBean
(
McCofePaySuccessService
.
class
);
}
else
if
(
PartnerIdEnum
.
COCO
.
getPartnerId
().
equals
(
parnterId
)){
abstractPaySuccessService
=
ApplicationContextWare
.
getBean
(
COCOPaySuccessService
.
class
);
}
return
abstractPaySuccessService
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/service/impl/OrderServiceImpl.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
service
.
impl
;
import
cn.freemud.demoTest.entities.bo.BasePaySuccessBo
;
import
cn.freemud.demoTest.entities.dto.OrderInfoDemoDto
;
import
cn.freemud.demoTest.enums.TradeBizTypeEnum
;
import
cn.freemud.demoTest.manager.OrderManager
;
import
cn.freemud.demoTest.service.AbstractPaySuccessService
;
import
cn.freemud.demoTest.service.AbstractTradeService
;
import
cn.freemud.demoTest.service.OrderService
;
import
cn.freemud.demoTest.service.factory.ServiceFactory
;
import
cn.freemud.demoTest.util.BizTypeUtil
;
public
class
OrderServiceImpl
implements
OrderService
{
AbstractPaySuccessService
abstractPaySuccessService
;
OrderManager
orderManager
;
@Override
public
String
paySuccessCallback
(
BasePaySuccessBo
basePaySuccessBo
)
{
OrderInfoDemoDto
orderInfoDemoDto
=
orderManager
.
getOrderInfo
();
AbstractTradeService
tradeInstance
=
ServiceFactory
.
createTradeInstance
(
orderInfoDemoDto
.
getSource
());
String
result
=
tradeInstance
.
paySuccessCallback
(
basePaySuccessBo
,
orderInfoDemoDto
);
return
result
;
}
}
order-application-service/src/main/java/cn/freemud/demoTest/util/BizTypeUtil.java
0 → 100644
View file @
c329f619
package
cn
.
freemud
.
demoTest
.
util
;
import
cn.freemud.demoTest.enums.TradeBizTypeEnum
;
import
cn.freemud.enums.OrderChannelType
;
public
class
BizTypeUtil
{
// private final static String macafePartnerId = "";
public
static
TradeBizTypeEnum
getBizType
(
String
channelType
){
if
(
channelType
!=
null
&&
OrderChannelType
.
SAAS
.
getCode
().
equals
(
channelType
))
{
return
TradeBizTypeEnum
.
PLATFORM
;
}
else
if
(
channelType
!=
null
&&
OrderChannelType
.
SAASMALL
.
getCode
().
equals
(
channelType
)){
return
TradeBizTypeEnum
.
MAIL
;
}
else
if
(
channelType
!=
null
&&
OrderChannelType
.
IWC
.
getCode
().
equals
(
channelType
))
{
return
TradeBizTypeEnum
.
MEALS
;
}
return
TradeBizTypeEnum
.
PLATFORM
;
}
}
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