Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
0b35a92b
提交
0b35a92b
authored
4月 20, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
前端 + 后端:支付界面~
上级
3a27ae5d
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
91 行增加
和
40 行删除
+91
-40
pay.js
mobile-web/src/api/pay.js
+24
-0
request.js
mobile-web/src/config/request.js
+3
-3
router.js
mobile-web/src/config/router.js
+7
-0
index.vue
mobile-web/src/page/pay/index.vue
+19
-23
list.vue
mobile-web/src/page/user/order/list.vue
+7
-1
pom.xml
pay/pay-application/pom.xml
+5
-0
PayTransactionController.java
...pplication/controller/users/PayTransactionController.java
+10
-6
PayTransactionService.java
...n/java/cn/iocoder/mall/pay/api/PayTransactionService.java
+3
-2
PayErrorCodeEnum.java
...va/cn/iocoder/mall/pay/api/constant/PayErrorCodeEnum.java
+2
-3
PayServiceImpl.java
.../java/cn/iocoder/mall/pay/biz/service/PayServiceImpl.java
+11
-2
没有找到文件。
mobile-web/src/api/pay.js
0 → 100644
浏览文件 @
0b35a92b
import
request
from
"../config/request"
;
export
function
getTransaction
(
appId
,
orderId
)
{
return
request
({
url
:
'/pay-api/users/transaction/get'
,
method
:
'get'
,
params
:
{
appId
,
orderId
}
});
}
export
function
submitTransaction
(
appId
,
orderId
,
payChannel
)
{
return
request
({
url
:
'/pay-api/users/transaction/submit'
,
method
:
'post'
,
params
:
{
appId
,
orderId
,
payChannel
}
});
}
mobile-web/src/config/request.js
浏览文件 @
0b35a92b
...
...
@@ -21,11 +21,11 @@ const serviceRouter = function(requestUrl) {
},
'/promotion-api'
:
{
prefix
:
'/promotion-api'
,
target
:
'http://127.0.0.1:18085/
/
promotion-api'
,
target
:
'http://127.0.0.1:18085/promotion-api'
,
},
'/pay-api'
:
{
prefix
:
'/pay-api'
,
target
:
'http://127.0.0.1:18084/
/promotion
-api'
,
target
:
'http://127.0.0.1:18084/
pay
-api'
,
},
};
...
...
@@ -48,7 +48,7 @@ const serviceRouter = function(requestUrl) {
},
'/pay-api'
:
{
prefix
:
'/pay-api'
,
target
:
'http://api.shop.iocoder.cn:18099/p
romotion
-api'
,
target
:
'http://api.shop.iocoder.cn:18099/p
ay
-api'
,
},
};
...
...
mobile-web/src/config/router.js
浏览文件 @
0b35a92b
...
...
@@ -203,6 +203,13 @@ const routes = [
meta
:
{
title
:
'优惠劵领取'
}
},
{
path
:
'/pay'
,
component
:
()
=>
import
(
'../page/pay/index'
),
meta
:
{
title
:
'收银台'
}
}
];
...
...
mobile-web/src/page/pay/index.vue
浏览文件 @
0b35a92b
<
template
>
<div>
<headerNav
title=
"收银台"
/>
<van-cell-group>
<van-cell
title=
"
优惠劵编号"
:value=
"couponTemplate.id
"
/>
<van-cell
title=
"
优惠劵名"
:value=
"couponTemplate.title"
/>
<van-cell
title=
"
订单商品名"
:value=
"transaction.orderSubject
"
/>
<van-cell
title=
"
价格"
:value=
"transaction.price / 100.0"
/>
</van-cell-group>
<van-button
slot=
"button"
size=
"small"
type=
"primary"
@
click=
"
onFetchClick"
>
领取优惠劵
</van-button>
<van-button
slot=
"button"
size=
"small"
type=
"primary"
@
click=
"
submit(9999)"
>
模拟支付
</van-button>
</div>
</
template
>
<
script
>
import
{
getCouponTemplate
,
doAddCouponCard
}
from
'../../api/promotion'
;
import
{
getTransaction
,
submitTransaction
}
from
'../../api/pay'
;
import
pingpp
from
'pingpp-js'
;
import
{
Dialog
}
from
'vant'
;
import
{
setLoginToken
}
from
'../../utils/cache'
;
export
default
{
data
()
{
return
{
couponTemplate
:
{
}
appId
:
this
.
$route
.
query
.
appId
,
orderId
:
this
.
$route
.
query
.
orderId
,
transaction
:
{},
}
},
mounted
()
{
let
id
=
this
.
$route
.
query
.
id
;
let
response
=
getCouponTemplate
(
id
);
let
response
=
getTransaction
(
this
.
appId
,
this
.
orderId
);
response
.
then
(
data
=>
{
this
.
couponTemplate
=
data
;
this
.
transaction
=
data
;
});
},
methods
:
{
onFetchClick
:
function
(
)
{
submit
(
payChannel
)
{
let
that
=
this
;
let
id
=
this
.
$route
.
query
.
id
;
let
response
=
doAddCouponCard
(
id
);
response
.
then
(
data
=>
{
Dialog
.
alert
({
title
:
'系统提示'
,
message
:
'领取成功'
,
beforeClose
:
function
(
action
,
done
)
{
// 关闭弹窗
done
();
// 跳转到我的优惠劵
that
.
$router
.
push
(
'/user/coupon'
);
}
debugger
;
submitTransaction
(
this
.
appId
,
this
.
orderId
,
payChannel
).
then
(
data
=>
{
pingpp
.
createPayment
(
data
.
invokeResponse
,
function
(
result
,
err
)
{
debugger
;
console
.
log
(
result
);
console
.
log
(
err
.
msg
);
console
.
log
(
err
.
extra
);
});
});
}
...
...
mobile-web/src/page/user/order/list.vue
浏览文件 @
0b35a92b
...
...
@@ -38,7 +38,9 @@
<van-button
v-if=
"[3,4,5].indexOf(item.status) != -1"
size=
"small"
>
查看物流
</van-button>
</router-link>
<van-button
v-if=
"item.status === 3 "
size=
"small"
v-on:click=
"clickConfirmReceiving(item)"
>
确认收货
</van-button>
<van-button
v-if=
"item.status === 1 "
size=
"small"
type=
"danger"
>
支付
</van-button>
<van-button
v-if=
"item.status === 1 "
size=
"small"
type=
"danger"
@
click=
"goPay(item.orderid)"
>
支付
</van-button>
</div>
</van-panel>
</van-cell-group>
...
...
@@ -60,6 +62,10 @@
}
},
methods
:
{
goPay
(
itemId
)
{
this
.
$router
.
push
(
'/pay?appId=POd4RC6a&orderId='
+
itemId
);
},
onTabChange
(
index
)
{
// status 和 tab index 对应的关系
const
statusArray
=
[
null
,
1
,
3
,
4
,
5
];
...
...
pay/pay-application/pom.xml
浏览文件 @
0b35a92b
...
...
@@ -27,6 +27,11 @@
<artifactId>
admin-sdk
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
user-sdk
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
pay/pay-application/src/main/java/cn/iocoder/mall/pay/application/controller/users/PayTransactionController.java
浏览文件 @
0b35a92b
...
...
@@ -3,15 +3,14 @@ package cn.iocoder.mall.pay.application.controller.users;
import
cn.iocoder.common.framework.util.HttpUtil
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.pay.api.PayTransactionService
;
import
cn.iocoder.mall.pay.api.bo.PayTransactionBO
;
import
cn.iocoder.mall.pay.api.bo.PayTransactionSubmitBO
;
import
cn.iocoder.mall.pay.api.constant.PayChannelEnum
;
import
cn.iocoder.mall.pay.api.dto.PayTransactionSubmitDTO
;
import
cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder
;
import
com.alibaba.dubbo.config.annotation.Reference
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.BufferedReader
;
...
...
@@ -24,6 +23,12 @@ public class PayTransactionController {
@Reference
(
validation
=
"true"
)
private
PayTransactionService
payService
;
@GetMapping
(
"/get"
)
public
CommonResult
<
PayTransactionBO
>
get
(
@RequestParam
(
"appId"
)
String
appId
,
@RequestParam
(
"orderId"
)
String
orderId
)
{
return
payService
.
getTransaction
(
UserSecurityContextHolder
.
getContext
().
getUserId
(),
appId
,
orderId
);
}
@PostMapping
(
"/submit"
)
// TODO api 注释
// TODO result 后面改下
public
CommonResult
<
PayTransactionSubmitBO
>
submit
(
HttpServletRequest
request
,
...
...
@@ -56,4 +61,4 @@ public class PayTransactionController {
return
result
.
isSuccess
()
?
"success"
:
"failure"
;
}
}
\ No newline at end of file
}
pay/pay-service-api/src/main/java/cn/iocoder/mall/pay/api/PayTransactionService.java
浏览文件 @
0b35a92b
...
...
@@ -8,6 +8,8 @@ import cn.iocoder.mall.pay.api.dto.PayTransactionSubmitDTO;
public
interface
PayTransactionService
{
CommonResult
<
PayTransactionBO
>
getTransaction
(
Integer
userId
,
String
appId
,
String
orderId
);
CommonResult
<
PayTransactionBO
>
createTransaction
(
PayTransactionCreateDTO
payTransactionCreateDTO
);
CommonResult
<
PayTransactionSubmitBO
>
submitTransaction
(
PayTransactionSubmitDTO
payTransactionSubmitDTO
);
...
...
@@ -26,4 +28,4 @@ public interface PayTransactionService {
CommonResult
cancelTransaction
();
// TODO 1. params 2. result
}
\ No newline at end of file
}
pay/pay-service-api/src/main/java/cn/iocoder/mall/pay/api/constant/PayErrorCodeEnum.java
浏览文件 @
0b35a92b
...
...
@@ -14,9 +14,9 @@ public enum PayErrorCodeEnum {
// ========== TRANSACTION 模块 ==========
PAY_TRANSACTION_NOT_FOUND
(
100401000
,
"支付交易单不存在"
),
PAY_TRANSACTION_STATUS_IS_NOT_WAITING
(
100401001
,
"支付交易单不处于待支付"
),
PAY_TRANSACTION_EXTENSION_NOT_FOUND
(
100401002
,
"支付交易拓展单不存在"
),
PAY_TRANSACTION_EXTENSION_STATUS_IS_NOT_WAITING
(
100401003
,
"支付交易拓展单不处于待支付"
),
PAY_TRANSACTION_ERROR_USER
(
100401004
,
"支付交易单用户不正确"
),
;
private
final
int
code
;
...
...
@@ -35,4 +35,4 @@ public enum PayErrorCodeEnum {
return
message
;
}
}
\ No newline at end of file
}
pay/pay-service-impl/src/main/java/cn/iocoder/mall/pay/biz/service/PayServiceImpl.java
浏览文件 @
0b35a92b
...
...
@@ -53,6 +53,16 @@ public class PayServiceImpl implements PayTransactionService {
@Resource
private
RocketMQTemplate
rocketMQTemplate
;
@Override
public
CommonResult
<
PayTransactionBO
>
getTransaction
(
Integer
userId
,
String
appId
,
String
orderId
)
{
PayTransactionDO
payTransaction
=
payTransactionMapper
.
selectByAppIdAndOrderId
(
appId
,
orderId
);
if
(
payTransaction
==
null
)
{
return
ServiceExceptionUtil
.
error
(
PayErrorCodeEnum
.
PAY_TRANSACTION_NOT_FOUND
.
getCode
());
}
// TODO 芋艿 userId 的校验
return
CommonResult
.
success
(
PayTransactionConvert
.
INSTANCE
.
convert
(
payTransaction
));
}
@Override
@SuppressWarnings
(
"Duplicates"
)
public
CommonResult
<
PayTransactionBO
>
createTransaction
(
PayTransactionCreateDTO
payTransactionCreateDTO
)
{
...
...
@@ -205,4 +215,4 @@ public class PayServiceImpl implements PayTransactionService {
}
}
\ No newline at end of file
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论