Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zhiliao
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
注册表
注册表
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
svn
zhiliao
Commits
7e89971d
提交
7e89971d
authored
4月 28, 2020
作者:
zhouzhigang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
上级
ffd5dca7
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
175 行增加
和
3 行删除
+175
-3
FgOrderForm.java
...main/java/com/zrqx/order/commons/form/fg/FgOrderForm.java
+3
-0
WapOrderForm.java
...ain/java/com/zrqx/order/commons/form/fg/WapOrderForm.java
+12
-0
FgOrderController.java
.../java/com/zrqx/order/fg/controller/FgOrderController.java
+9
-0
FgOrderService.java
...c/main/java/com/zrqx/order/fg/service/FgOrderService.java
+11
-0
FgOrderServiceImpl.java
...in/java/com/zrqx/order/fg/service/FgOrderServiceImpl.java
+30
-0
FgPayController.java
...main/java/com/zrqx/pay/fg/controller/FgPayController.java
+7
-0
FgPayService.java
...y/src/main/java/com/zrqx/pay/fg/service/FgPayService.java
+11
-0
FgPayServiceImpl.java
...c/main/java/com/zrqx/pay/fg/service/FgPayServiceImpl.java
+59
-3
FgTransferLogService.java
...in/java/com/zrqx/pay/fg/service/FgTransferLogService.java
+8
-0
FgTransferLogServiceImpl.java
...ava/com/zrqx/pay/fg/service/FgTransferLogServiceImpl.java
+25
-0
没有找到文件。
app/order/src/main/java/com/zrqx/order/commons/form/fg/FgOrderForm.java
浏览文件 @
7e89971d
...
...
@@ -48,5 +48,8 @@ public class FgOrderForm {
@ApiModelProperty
(
"邮费 必传,如果没有邮费传值0"
)
private
BigDecimal
express
;
@ApiModelProperty
(
"来源(0 pc,1 wap,2 app)"
)
private
String
source
;
}
app/order/src/main/java/com/zrqx/order/commons/form/fg/WapOrderForm.java
0 → 100644
浏览文件 @
7e89971d
package
com
.
zrqx
.
order
.
commons
.
form
.
fg
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
WapOrderForm
extends
FgOrderForm
{
@ApiModelProperty
(
"支付类型 0支付宝 1微信"
)
private
String
payType
;
}
app/order/src/main/java/com/zrqx/order/fg/controller/FgOrderController.java
浏览文件 @
7e89971d
...
...
@@ -34,6 +34,7 @@ import com.zrqx.order.commons.form.fg.FgQueryOrderPageForm;
import
com.zrqx.order.commons.form.fg.FgQueryRecentlyForm
;
import
com.zrqx.order.commons.form.fg.FgTopUpOrderForm
;
import
com.zrqx.order.commons.form.fg.SaveOrderCommentForm
;
import
com.zrqx.order.commons.form.fg.WapOrderForm
;
import
com.zrqx.order.commons.model.Order
;
import
com.zrqx.order.commons.vo.fg.FgBuyOrderInfoPageVo
;
import
com.zrqx.order.commons.vo.fg.FgOrderInfoPageVo
;
...
...
@@ -94,6 +95,14 @@ public class FgOrderController {
return
CallBack
.
success
(
result
);
}
@ApiOperation
(
"wap生成订单并支付"
)
@PostMapping
(
"/wap/pay/order"
)
public
CallBack
<
PayInfoVo
>
createOrderAndPay
(
@RequestBody
WapOrderForm
form
){
Integer
orderId
=
fgOrderService
.
createOrder
(
form
);
Order
o
=
fgOrderService
.
notNull
(
orderId
);
return
CallBack
.
success
(
fgOrderService
.
payWap
(
o
,
form
.
getSource
(),
form
.
getPayType
()));
}
@ApiOperation
(
"接收聚合支付调用----拿到支付回调修改订单状态"
)
@PostMapping
(
"/receive/pay_callback"
)
...
...
app/order/src/main/java/com/zrqx/order/fg/service/FgOrderService.java
浏览文件 @
7e89971d
...
...
@@ -49,6 +49,17 @@ public interface FgOrderService extends BaseService<Order, Integer>{
Integer
createOrder
(
BigDecimal
price
);
/**
* Description: 订单根据不同的来源和支付类型发起支付
* @param o 订单
* @param source 订单来源 用于标识pc或wap,支付pc和wap发起支付不同
* @param payType 支付类型
* @return com.zrqx.core.vo.pay.PayInfoVo
* @author lpf
* @date 2020-04-09 10:49
*/
PayInfoVo
payWap
(
Order
o
,
String
source
,
String
payType
);
/**
* 接收三方调用----拿到支付回调修改订单状态
* @param form 支付结果
* @author lw
...
...
app/order/src/main/java/com/zrqx/order/fg/service/FgOrderServiceImpl.java
浏览文件 @
7e89971d
...
...
@@ -199,6 +199,36 @@ public class FgOrderServiceImpl extends BaseServiceImpl<Order, Integer> implemen
logger
.
info
(
"创建订单:infoList:"
+
infoList
);
return
o
.
getId
();
}
@Override
public
PayInfoVo
payWap
(
Order
order
,
String
source
,
String
payType
)
{
validateOrder
(
order
);
CallBack
<
PayInfoVo
>
result
=
fgPayClient
.
pay
(
order
.
getCode
(),
source
,
payType
);
if
(
PayTypeEnum
.
BALANCE
.
getCode
().
equals
(
payType
))
{
OrderTypeInterface
orderTypeService
=
springContext
.
getEnumsBindBean
(
OrderTypeEnum
.
class
,
order
.
getOrderType
(),
OrderTypeInterface
.
class
);
if
(
result
.
hasEntity
()
&&
result
.
getData
().
getIsPay
())
{
PayQueryReturnVo
payQueryReturnVo
=
this
.
createPayQueryReturnVo
(
order
);
orderTypeService
.
paySuccess
(
order
,
payQueryReturnVo
);
}
logger
.
warn
(
"FgOrderServiceImpl#pay余额支付失败"
);
return
null
;
}
return
result
.
hasEntity
()
?
result
.
getData
()
:
new
PayInfoVo
(
false
,
null
,
"发起支付失败"
);
}
/**
* Description: 验证订单的归属人是否为当前登录用户,如果不属于则抛出BaseException
* @param o
* @return boolean
* @author lpf
* @date 2020-04-09 10:58
*/
private
void
validateOrder
(
Order
o
)
{
if
(
o
.
getCreater
()
!=
null
&&
o
.
getCreater
().
equals
(
fgRedisManage
.
getMember
().
getId
()))
{
return
;
}
throw
new
BaseException
(
"订单:"
+
o
.
getCode
()
+
",不属于当前登录用户"
);
}
/**
* 获取前台提交订单详情表单
...
...
app/pay/src/main/java/com/zrqx/pay/fg/controller/FgPayController.java
浏览文件 @
7e89971d
...
...
@@ -32,6 +32,13 @@ public class FgPayController {
return
CallBack
.
success
(
fgPayService
.
pay
(
orderCode
,
payType
));
}
@ApiOperation
(
"支付(根据不同的来源和支付类型发起支付)"
)
@GetMapping
(
"/pay-wap"
)
public
CallBack
<
PayInfoVo
>
pay
(
String
orderCode
,
String
source
,
String
payType
)
{
return
CallBack
.
success
(
fgPayService
.
pay
(
orderCode
,
source
,
payType
));
}
@ApiOperation
(
"接收三方调用----获取订单详情"
)
@GetMapping
(
"/get/order_info"
)
public
CallBack
<
OrderPayVo
>
getOrderPayVo
(
String
code
){
...
...
app/pay/src/main/java/com/zrqx/pay/fg/service/FgPayService.java
浏览文件 @
7e89971d
...
...
@@ -16,6 +16,17 @@ public interface FgPayService {
* @date: 2019年1月21日 下午5:17:16
*/
PayInfoVo
pay
(
String
orderCode
,
String
payType
);
/**
* Description: 根据不同的来源不同的支付类型发起支付
* @param orderCode 订单code
* @param source 来源
* @param payType 支付类型
* @return com.zrqx.core.vo.pay.PayInfoVo
* @author lpf
* @date 2020-04-09 11:27
*/
PayInfoVo
pay
(
String
orderCode
,
String
source
,
String
payType
);
/**
* 调用订单----获取订单详情
...
...
app/pay/src/main/java/com/zrqx/pay/fg/service/FgPayServiceImpl.java
浏览文件 @
7e89971d
...
...
@@ -17,8 +17,10 @@ import com.zrqx.core.client.vo.order.OrderPayVo;
import
com.zrqx.core.client.vo.pay.PayInfoVo
;
import
com.zrqx.core.client.vo.third.pay.payquery.PayQueryReturnVo
;
import
com.zrqx.core.commons.redis.Redis
;
import
com.zrqx.core.enums.SourceEnum
;
import
com.zrqx.core.enums.order.OrderTypeEnum
;
import
com.zrqx.core.enums.third.pay.PayTypeEnum
;
import
com.zrqx.core.enums.third.pay.WeChartType
;
import
com.zrqx.core.exception.BaseException
;
import
com.zrqx.core.util.response.CallBack
;
import
com.zrqx.pay.commons.form.BalanceUpdateForm
;
...
...
@@ -46,6 +48,8 @@ public class FgPayServiceImpl implements FgPayService {
private
FgAssetsManage
fgAssetsManage
;
@Autowired
private
Redis
redis
;
@Autowired
private
FgTransferLogService
transferLogService
;
/**
...
...
@@ -101,10 +105,62 @@ public class FgPayServiceImpl implements FgPayService {
log
.
info
(
"调用三方服务获取支付url完成-------\n"
+
result
.
getData
());
String
response
=
result
.
getData
();
transferLog
Mapper
.
insert
(
new
TransferLog
(
"pay"
,
"去支付(获取页面或二维码url)"
,
"order"
,
"third"
,
transferLog
Service
.
insert
(
new
TransferLog
(
"pay"
,
"去支付(获取页面或二维码url)"
,
"order"
,
"third"
,
orderCode
,
"orderCode:"
+
orderCode
+
"paytype:"
+
payType
,
response
,
new
Date
()));
return
new
PayInfoVo
(
false
,
response
,
null
);
}
@Override
public
PayInfoVo
pay
(
String
orderCode
,
String
source
,
String
payType
)
{
if
(
fgPayRecordManage
.
checkOrderIsConsume
(
orderCode
))
{
log
.
error
(
"订单:"
+
orderCode
+
"已经被支付"
);
return
new
PayInfoVo
(
false
,
null
,
"该订单已经被支付"
);
}
CallBack
<
OrderPayVo
>
OrderPayVoResult
=
fgOrderClient
.
getOrderInfo
(
orderCode
);
if
(
OrderPayVoResult
==
null
||
OrderPayVoResult
.
getData
()
==
null
)
{
return
new
PayInfoVo
(
false
,
null
,
"获取订单失败"
);
}
OrderPayVo
orderPayVo
=
OrderPayVoResult
.
getData
();
// 余额支付
if
(
PayTypeEnum
.
BALANCE
.
getCode
().
equals
(
payType
)){
BalanceUpdateForm
balanceUpdateForm
=
new
BalanceUpdateForm
(
redis
.
getMember
().
getId
(),
0
-
new
Double
(
orderPayVo
.
getPayment
()));
log
.
info
(
"订单:"
+
orderCode
+
"开始进行余额支付-------\n参数:"
+
balanceUpdateForm
);
UpdateMemberAssetsResultVo
resultVo
=
fgAssetsManage
.
balanceUpdate
(
balanceUpdateForm
);
if
(
resultVo
.
getIsUpdate
())
{
fgPayRecordManage
.
insertPayRecordManage
(
new
PayRecordForm
(
Double
.
parseDouble
(
orderPayVo
.
getPayment
()),
resultVo
.
getBalance
(),
1
,
payType
,
orderCode
,
1
));
}
// 返回支付成功,订单服务修改状态
return
new
PayInfoVo
(
resultVo
.
getIsUpdate
(),
null
,
resultVo
.
getMessage
());
}
// 三方支付
ToPayForm
toPayForm
=
new
ToPayForm
();
toPayForm
.
setOut_trade_no
(
orderCode
);
toPayForm
.
setPayType
(
payType
);
// if(PayTypeEnum.WECHAT.getCode().equals(payType)){
if
(
SourceEnum
.
PC
.
getCode
().
equals
(
source
))
{
toPayForm
.
setTrade_type
(
WeChartType
.
NATIVE
.
getCode
());
}
else
{
toPayForm
.
setTrade_type
(
WeChartType
.
H5
.
getCode
());
}
// }
log
.
info
(
"开始调用三方服务获取支付url-------"
);
CallBack
<
String
>
result
=
thirdClient
.
getPayUrl
(
toPayForm
);
if
(
result
==
null
||
result
.
notEntity
())
{
return
new
PayInfoVo
(
false
,
null
,
"支付失败"
);
}
log
.
info
(
"调用三方服务获取支付url完成-------\n"
+
result
.
getData
());
String
response
=
result
.
getData
();
transferLogService
.
insert
(
new
TransferLog
(
"pay"
,
"去支付(获取页面或二维码url)"
,
"order"
,
"third"
,
orderCode
,
"orderCode:"
+
orderCode
+
"paytype:"
+
payType
,
response
,
new
Date
()));
return
new
PayInfoVo
(
false
,
response
,
null
);
}
/**
* 调用订单----获取订单详情
...
...
@@ -176,7 +232,7 @@ public class FgPayServiceImpl implements FgPayService {
}
}
log
.
info
(
form
.
getOut_trade_no
()
+
"开始添加日志-------------------"
);
transferLog
Mapper
.
insert
(
new
TransferLog
(
"receiveThirdCall"
,
"接收支付回调并调用订单修改状态"
,
"third"
,
"order"
,
transferLog
Service
.
insert
(
new
TransferLog
(
"receiveThirdCall"
,
"接收支付回调并调用订单修改状态"
,
"third"
,
"order"
,
form
.
getOut_trade_no
(),
"code:"
+
form
.
getOut_trade_no
()
+
"paytype:"
+
form
.
getPayType
()
,
String
.
valueOf
(
result
.
notEntity
()
?
false
:
result
.
getData
()),
new
Date
()));
...
...
@@ -208,7 +264,7 @@ public class FgPayServiceImpl implements FgPayService {
}
catch
(
JsonProcessingException
e
)
{
log
.
error
(
"对象转String 失败"
);
}
transferLog
Mapper
.
insert
(
new
TransferLog
(
"queryPayInfo"
,
"获取支付详情"
,
"third"
,
"order"
,
transferLog
Service
.
insert
(
new
TransferLog
(
"queryPayInfo"
,
"获取支付详情"
,
"third"
,
"order"
,
orderCode
,
"code:"
+
orderCode
+
"paytype:"
+
payType
,
mapJakcson
,
new
Date
()));
return
result
.
hasEntity
()
?
result
.
getData
()
:
null
;
...
...
app/pay/src/main/java/com/zrqx/pay/fg/service/FgTransferLogService.java
0 → 100644
浏览文件 @
7e89971d
package
com
.
zrqx
.
pay
.
fg
.
service
;
import
com.zrqx.core.service.BaseService
;
import
com.zrqx.pay.commons.model.TransferLog
;
public
interface
FgTransferLogService
extends
BaseService
<
TransferLog
,
Integer
>{
}
app/pay/src/main/java/com/zrqx/pay/fg/service/FgTransferLogServiceImpl.java
0 → 100644
浏览文件 @
7e89971d
package
com
.
zrqx
.
pay
.
fg
.
service
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.zrqx.core.mapper.BaseMapper
;
import
com.zrqx.core.service.BaseServiceImpl
;
import
com.zrqx.pay.commons.model.TransferLog
;
import
com.zrqx.pay.fg.mapper.FgTransferLogMapper
;
@Service
public
class
FgTransferLogServiceImpl
extends
BaseServiceImpl
<
TransferLog
,
Integer
>
implements
FgTransferLogService
{
@Autowired
private
FgTransferLogMapper
fgTransferLogMapper
;
@Override
public
BaseMapper
<
TransferLog
>
getMapper
()
{
return
fgTransferLogMapper
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论