Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
R
run-score
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
jackma
run-score
Commits
d3b8a353
提交
d3b8a353
authored
11月 01, 2021
作者:
jacksmith1988
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
//init
上级
ed53a40a
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
222 行增加
和
104 行删除
+222
-104
Constant.java
...i/src/main/java/me/zohar/runscore/constants/Constant.java
+4
-0
GatheringCode.java
...me/zohar/runscore/gatheringcode/domain/GatheringCode.java
+12
-0
GatheringCodeParam.java
...ohar/runscore/gatheringcode/param/GatheringCodeParam.java
+13
-0
GatheringCodeService.java
.../runscore/gatheringcode/service/GatheringCodeService.java
+8
-2
MerchantOrderService.java
...zohar/runscore/merchant/service/MerchantOrderService.java
+44
-20
OrderGatheringCodeVO.java
...a/me/zohar/runscore/merchant/vo/OrderGatheringCodeVO.java
+4
-0
LoginLog.java
...n/java/me/zohar/runscore/useraccount/domain/LoginLog.java
+1
-0
UserAccountRepo.java
...a/me/zohar/runscore/useraccount/repo/UserAccountRepo.java
+3
-0
ApiController.java
.../java/me/zohar/runscore/api/controller/ApiController.java
+5
-0
StartOrderTest.java
.../src/test/java/me/zohar/runscore/test/StartOrderTest.java
+4
-3
gathering-code.js
...ore-mobile/src/main/resources/static/js/gathering-code.js
+26
-22
gathering-code.html
...e-mobile/src/main/resources/templates/gathering-code.html
+98
-57
没有找到文件。
runscore-api/src/main/java/me/zohar/runscore/constants/Constant.java
浏览文件 @
d3b8a353
...
...
@@ -160,4 +160,8 @@ public class Constant {
public
static
final
String
下级账号查询范围
_
指定账号及直接下级
=
"20"
;
public
static
final
String
支付渠道
_
银行卡
=
"bankcard"
;
public
static
final
String
支付渠道
_
微信码
=
"wechat"
;
public
static
final
String
支付渠道
_
支付宝码
=
"alipay"
;
}
runscore-api/src/main/java/me/zohar/runscore/gatheringcode/domain/GatheringCode.java
浏览文件 @
d3b8a353
...
...
@@ -58,6 +58,18 @@ public class GatheringCode {
*/
private
String
payee
;
/**
* 开户行
*/
private
String
bankAddress
;
/**
* 卡号
*/
private
String
bankCode
;
/**
* 卡户主
*/
private
String
bankUsername
;
/**
* 创建时间
*/
...
...
runscore-api/src/main/java/me/zohar/runscore/gatheringcode/param/GatheringCodeParam.java
浏览文件 @
d3b8a353
...
...
@@ -54,6 +54,19 @@ public class GatheringCodeParam {
private
String
storageId
;
/**
* 开户行
*/
private
String
bankAddress
;
/**
* 卡号
*/
private
String
bankCode
;
/**
* 卡户主
*/
private
String
bankUsername
;
public
GatheringCode
convertToPo
(
String
userAccountId
)
{
GatheringCode
po
=
new
GatheringCode
();
BeanUtils
.
copyProperties
(
this
,
po
);
...
...
runscore-api/src/main/java/me/zohar/runscore/gatheringcode/service/GatheringCodeService.java
浏览文件 @
d3b8a353
...
...
@@ -157,18 +157,21 @@ public class GatheringCodeService {
@ParamValid
@Transactional
public
void
addOrUpdateGatheringCode
(
GatheringCodeParam
param
,
String
userAccountId
)
{
if
(
param
.
getFixedGatheringAmount
())
{
/*
if (param.getFixedGatheringAmount()) {
if (param.getGatheringAmount() == null) {
throw new BizException(BizError.参数异常);
}
if (param.getGatheringAmount() <= 0) {
throw new BizException(BizError.参数异常);
}
}
}
*/
// 新增
if
(
StrUtil
.
isBlank
(
param
.
getId
()))
{
GatheringCode
gatheringCode
=
param
.
convertToPo
(
userAccountId
);
gatheringCodeRepo
.
save
(
gatheringCode
);
if
(
param
.
getGatheringChannelCode
().
equals
(
"bankcard"
))
{
return
;
}
associateGatheringCodeStorage
(
param
.
getStorageId
(),
gatheringCode
.
getId
());
}
// 修改
...
...
@@ -180,6 +183,9 @@ public class GatheringCodeService {
}
BeanUtils
.
copyProperties
(
param
,
gatheringCode
);
gatheringCodeRepo
.
save
(
gatheringCode
);
if
(
param
.
getGatheringChannelCode
().
equals
(
"bankcard"
))
{
return
;
}
associateGatheringCodeStorage
(
param
.
getStorageId
(),
gatheringCode
.
getId
());
}
}
...
...
runscore-api/src/main/java/me/zohar/runscore/merchant/service/MerchantOrderService.java
浏览文件 @
d3b8a353
...
...
@@ -37,6 +37,7 @@ import cn.hutool.core.date.DateField;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.crypto.digest.DigestAlgorithm
;
import
cn.hutool.crypto.digest.Digester
;
...
...
@@ -111,6 +112,8 @@ public class MerchantOrderService {
@Autowired
private
OrderRebateRepo
orderRebateRepo
;
@Transactional
(
readOnly
=
true
)
public
MerchantOrderDetailsVO
findMerchantOrderDetailsById
(
@NotBlank
String
orderId
)
{
MerchantOrderDetailsVO
vo
=
MerchantOrderDetailsVO
.
convertFor
(
merchantOrderRepo
.
getOne
(
orderId
));
...
...
@@ -119,8 +122,6 @@ public class MerchantOrderService {
/**
* 客服取消订单退款
*
* @param orderId
*/
@Transactional
public
void
customerServiceCancelOrderRefund
(
@NotBlank
String
orderId
)
{
...
...
@@ -168,10 +169,12 @@ public class MerchantOrderService {
log
.
error
(
"商户订单不存在;orderNo:{}"
,
orderNo
);
throw
new
BizException
(
BizError
.
商户订单不存在
);
}
String
gatheringCodeStorageId
=
getGatheringCodeStorageId
(
order
.
getReceivedAccountId
(),
GatheringCode
gatheringCode
=
getGatheringCode
(
order
.
getReceivedAccountId
(),
order
.
getGatheringChannelCode
(),
order
.
getGatheringAmount
());
OrderGatheringCodeVO
vo
=
OrderGatheringCodeVO
.
convertFor
(
order
);
vo
.
setGatheringCodeStorageId
(
gatheringCodeStorageId
);
vo
.
setGatheringCodeStorageId
(
gatheringCode
.
getStorageId
());
vo
.
setGatheringCode
(
gatheringCode
);
return
vo
;
}
...
...
@@ -197,6 +200,28 @@ public class MerchantOrderService {
return
null
;
}
@Transactional
(
readOnly
=
true
)
public
GatheringCode
getGatheringCode
(
String
receivedAccountId
,
String
gatheringChannelCode
,
Double
gatheringAmount
)
{
ReceiveOrderSetting
merchantOrderSetting
=
platformOrderSettingRepo
.
findTopByOrderByLatelyUpdateTime
();
if
(
merchantOrderSetting
.
getUnfixedGatheringCodeReceiveOrder
())
{
GatheringCode
gatheringCode
=
gatheringCodeRepo
.
findTopByUserAccountIdAndGatheringChannelCodeAndFixedGatheringAmountIsFalse
(
receivedAccountId
,
gatheringChannelCode
);
if
(
gatheringCode
!=
null
)
{
return
gatheringCode
;
}
}
else
{
GatheringCode
gatheringCode
=
gatheringCodeRepo
.
findTopByUserAccountIdAndGatheringChannelCodeAndGatheringAmount
(
receivedAccountId
,
gatheringChannelCode
,
gatheringAmount
);
if
(
gatheringCode
!=
null
)
{
return
gatheringCode
;
}
}
return
null
;
}
@Transactional
public
void
userConfirmToPaid
(
@NotBlank
String
userAccountId
,
@NotBlank
String
orderId
)
{
MerchantOrder
platformOrder
=
merchantOrderRepo
.
findByIdAndReceivedAccountId
(
orderId
,
userAccountId
);
...
...
@@ -214,8 +239,6 @@ public class MerchantOrderService {
/**
* 客服确认已支付
*
* @param orderId
*/
@Transactional
public
void
customerServiceConfirmToPaid
(
@NotBlank
String
orderId
,
String
note
)
{
...
...
@@ -253,8 +276,6 @@ public class MerchantOrderService {
/**
* 生成订单返点
*
* @param bettingOrder
*/
public
void
generateOrderRebate
(
MerchantOrder
merchantOrder
)
{
UserAccount
userAccount
=
merchantOrder
.
getReceivedAccount
();
...
...
@@ -283,8 +304,6 @@ public class MerchantOrderService {
/**
* 通知指定的订单进行返点结算
*
* @param issueId
*/
@Transactional
(
readOnly
=
true
)
public
void
noticeOrderRebateSettlement
(
@NotBlank
String
orderId
)
{
...
...
@@ -398,14 +417,17 @@ public class MerchantOrderService {
merchantOrder
.
setPayInfoId
(
payInfo
.
getId
());
merchantOrderRepo
.
save
(
merchantOrder
);
merchantOrderPayInfoRepo
.
save
(
payInfo
);
//todo this is temporary code 这里要匹配有资源的用户接单
List
<
UserAccount
>
userAccounts
=
userAccountRepo
.
findAllByAccountType
(
Constant
.
账号类型
_
会员
);
;
this
.
receiveOrder
(
userAccounts
.
get
(
RandomUtil
.
randomInt
(
0
,
userAccounts
.
size
())).
getId
(),
merchantOrder
.
getId
());
return
MerchantOrderVO
.
convertFor
(
merchantOrder
);
}
/**
* 接单
*
* @param param
* @return
*/
@Lock
(
keys
=
"'receiveOrder_' + #orderId"
)
@Transactional
...
...
@@ -423,7 +445,8 @@ public class MerchantOrderService {
}
String
gatheringCodeStorageId
=
getGatheringCodeStorageId
(
userAccountId
,
platformOrder
.
getGatheringChannelCode
(),
platformOrder
.
getGatheringAmount
());
if
(
StrUtil
.
isBlank
(
gatheringCodeStorageId
))
{
//支付宝和微信才有收款码
if
(
StrUtil
.
isBlank
(
gatheringCodeStorageId
)
&&
!
platformOrder
.
getGatheringChannelCode
().
equals
(
Constant
.
支付渠道
_
银行卡
)
)
{
throw
new
BizException
(
BizError
.
无法接单找不到对应金额的收款码
);
}
// 校验用户是否达到接单上限,若达到上限,则不能接单
...
...
@@ -550,8 +573,6 @@ public class MerchantOrderService {
/**
* 取消订单
*
* @param id
*/
@Transactional
public
void
cancelOrder
(
@NotBlank
String
id
)
{
...
...
@@ -566,8 +587,6 @@ public class MerchantOrderService {
/**
* 商户取消订单
*
* @param id
*/
@Transactional
public
void
merchatCancelOrder
(
@NotBlank
String
merchantId
,
@NotBlank
String
id
)
{
...
...
@@ -628,13 +647,18 @@ public class MerchantOrderService {
merchantOrder
.
setPayInfoId
(
payInfo
.
getId
());
merchantOrderRepo
.
save
(
merchantOrder
);
merchantOrderPayInfoRepo
.
save
(
payInfo
);
//todo this is temporary code 这里要匹配有资源的用户接单
List
<
UserAccount
>
userAccounts
=
userAccountRepo
.
findAllByAccountType
(
Constant
.
账号类型
_
会员
);
;
this
.
receiveOrder
(
userAccounts
.
get
(
RandomUtil
.
randomInt
(
0
,
userAccounts
.
size
())).
getId
(),
merchantOrder
.
getId
());
return
StartOrderSuccessVO
.
convertFor
(
merchantOrder
.
getOrderNo
());
}
/**
* 支付成功异步通知
*
* @param merchantOrderId
*/
@Transactional
public
String
paySuccessAsynNotice
(
@NotBlank
String
merchantOrderId
)
{
...
...
runscore-api/src/main/java/me/zohar/runscore/merchant/vo/OrderGatheringCodeVO.java
浏览文件 @
d3b8a353
...
...
@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import
lombok.Data
;
import
me.zohar.runscore.dictconfig.DictHolder
;
import
me.zohar.runscore.gatheringcode.domain.GatheringCode
;
import
me.zohar.runscore.merchant.domain.MerchantOrder
;
@Data
...
...
@@ -58,6 +59,8 @@ public class OrderGatheringCodeVO {
private
String
gatheringCodeUrl
;
private
GatheringCode
gatheringCode
;
/**
* 同步通知地址
*/
...
...
@@ -75,4 +78,5 @@ public class OrderGatheringCodeVO {
return
vo
;
}
}
runscore-api/src/main/java/me/zohar/runscore/useraccount/domain/LoginLog.java
浏览文件 @
d3b8a353
...
...
@@ -32,6 +32,7 @@ public class LoginLog {
/**
* 登录系统
*/
@Column
(
name
=
"`system`"
)
private
String
system
;
/**
...
...
runscore-api/src/main/java/me/zohar/runscore/useraccount/repo/UserAccountRepo.java
浏览文件 @
d3b8a353
...
...
@@ -3,6 +3,8 @@ package me.zohar.runscore.useraccount.repo;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
java.util.List
;
import
me.zohar.runscore.useraccount.domain.UserAccount
;
...
...
@@ -12,4 +14,5 @@ public interface UserAccountRepo extends JpaRepository<UserAccount, String>, Jpa
Long
countByInviterId
(
String
inviterId
);
List
<
UserAccount
>
findAllByAccountType
(
String
accountType
);
}
runscore-merchant/src/main/java/me/zohar/runscore/api/controller/ApiController.java
浏览文件 @
d3b8a353
...
...
@@ -19,6 +19,11 @@ public class ApiController {
@Autowired
private
MerchantOrderService
platformOrderService
;
/**
* 商户开单,获取支付方式,返回银行卡信息或者支付码信息
* @param param
* @return
*/
@PostMapping
(
"/startOrder"
)
@ResponseBody
public
Result
startOrder
(
StartOrderParam
param
)
{
...
...
runscore-merchant/src/test/java/me/zohar/runscore/test/StartOrderTest.java
浏览文件 @
d3b8a353
...
...
@@ -15,11 +15,12 @@ public class StartOrderTest {
*/
public
static
void
main
(
String
[]
args
)
{
String
merchantNum
=
"
201906
001"
;
String
merchantOrderNo
=
"20190629023134U93628387
7
"
;
String
merchantNum
=
"
1
001"
;
String
merchantOrderNo
=
"20190629023134U93628387
8
"
;
Double
amount
=
100
d
;
String
notifyUrl
=
"http://xhbc10.com/index.php/Pay/Paynotify"
;
String
secretKey
=
"l54x9426o68962464"
;
//String returnUrl = "http://xhbc10.com/index.php/Pay/Paynotify";
String
secretKey
=
"456"
;
String
sign
=
merchantNum
+
merchantOrderNo
+
new
DecimalFormat
(
"###################.###########"
).
format
(
amount
)
+
notifyUrl
+
secretKey
;
System
.
out
.
println
(
sign
);
...
...
runscore-mobile/src/main/resources/static/js/gathering-code.js
浏览文件 @
d3b8a353
...
...
@@ -135,9 +135,12 @@ var gatheringCodeVM = new Vue({
that
.
editGatheringCode
=
{
gatheringChannelCode
:
''
,
state
:
''
,
fixedGatheringAmount
:
tru
e
,
fixedGatheringAmount
:
fals
e
,
gatheringAmount
:
''
,
payee
:
''
payee
:
''
,
bankAddress
:
''
,
bankCode
:
''
,
bankUsername
:
''
};
that
.
showEditGatheringCodePageInner
();
that
.
initFileUploadWidget
();
...
...
@@ -187,24 +190,24 @@ var gatheringCodeVM = new Vue({
});
return
;
}
if
(
editGatheringCode
.
fixedGatheringAmount
==
null
)
{
layer
.
alert
(
'请选择是否固定收款金额'
,
{
title
:
'提示'
,
icon
:
7
,
time
:
3000
});
return
;
}
if
(
editGatheringCode
.
fixedGatheringAmount
)
{
if
(
editGatheringCode
.
gatheringAmount
==
null
||
editGatheringCode
.
gatheringAmount
==
''
)
{
layer
.
alert
(
'请输入收款金额'
,
{
title
:
'提示'
,
icon
:
7
,
time
:
3000
});
return
;
}
}
//
if (editGatheringCode.fixedGatheringAmount == null) {
//
layer.alert('请选择是否固定收款金额', {
//
title : '提示',
//
icon : 7,
//
time : 3000
//
});
//
return;
//
}
//
if (editGatheringCode.fixedGatheringAmount) {
//
if (editGatheringCode.gatheringAmount == null || editGatheringCode.gatheringAmount == '') {
//
layer.alert('请输入收款金额', {
//
title : '提示',
//
icon : 7,
//
time : 3000
//
});
//
return;
//
}
//
}
if
(
editGatheringCode
.
payee
==
null
||
editGatheringCode
.
payee
==
''
)
{
layer
.
alert
(
'请选择收款人'
,
{
title
:
'提示'
,
...
...
@@ -214,11 +217,12 @@ var gatheringCodeVM = new Vue({
return
;
}
if
(
$
(
'.gathering-code-pic'
).
fileinput
(
'getPreview'
).
content
.
length
!=
0
)
{
if
(
$
(
'.gathering-code-pic'
).
fileinput
(
'getPreview'
).
content
.
length
!=
0
||
editGatheringCode
.
gatheringChannelCode
==
'bankcard'
)
{
that
.
addOrUpdateGatheringCodeInner
();
}
else
{
var
filesCount
=
$
(
'.gathering-code-pic'
).
fileinput
(
'getFilesCount'
);
if
(
filesCount
==
0
)
{
console
.
log
(
editGatheringCode
.
gatheringChannelCode
);
if
(
filesCount
==
0
)
{
layer
.
alert
(
'请选择要上传的图片'
,
{
title
:
'提示'
,
icon
:
7
,
...
...
runscore-mobile/src/main/resources/templates/gathering-code.html
浏览文件 @
d3b8a353
<!DOCTYPE html>
<html
xmlns:th=
"http://www.thymeleaf.org"
>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, shrink-to-fit=no"
>
<title>
收款码
</title>
<link
rel=
"stylesheet"
href=
"https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css"
>
<script
src=
"https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/twitter-bootstrap/4.1.0/js/bootstrap.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/vue/2.4.2/vue.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"
></script>
<script
src=
"https://cdn.bootcss.com/dayjs/1.7.8/dayjs.min.js"
></script>
<script
src=
"https://cdn.bootcss.com/layer/2.3/layer.js"
></script>
<link
href=
"https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/css/fileinput.min.css"
media=
"all"
rel=
"stylesheet"
type=
"text/css"
/>
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/fileinput.min.js"
></script>
<script
src=
"/js/common/common.js"
></script>
<link
href=
"/css/common/common.css"
rel=
"stylesheet"
type=
"text/css"
>
<style
type=
"text/css"
>
.account-change
{
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, shrink-to-fit=no"
>
<title>
收款码
</title>
<link
rel=
"stylesheet"
href=
"https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css"
>
<script
src=
"https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/twitter-bootstrap/4.1.0/js/bootstrap.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/vue/2.4.2/vue.min.js"
></script>
<script
src=
"https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"
></script>
<script
src=
"https://cdn.bootcss.com/dayjs/1.7.8/dayjs.min.js"
></script>
<script
src=
"https://cdn.bootcss.com/layer/2.3/layer.js"
></script>
<link
href=
"https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/css/fileinput.min.css"
media=
"all"
rel=
"stylesheet"
type=
"text/css"
/>
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/fileinput.min.js"
></script>
<script
src=
"/js/common/common.js"
></script>
<link
href=
"/css/common/common.css"
rel=
"stylesheet"
type=
"text/css"
>
<style
type=
"text/css"
>
.account-change
{
background-color
:
#fff
;
;
margin-bottom
:
1rem
;
display
:
flex
;
...
...
@@ -25,54 +27,63 @@
padding-right
:
0.2rem
;
padding-top
:
0.5rem
;
padding-bottom
:
0.5rem
;
}
}
.account-change-body
{
.account-change-body
{
flex
:
4
;
display
:
flex
;
flex-direction
:
column
;
}
}
.account-change-body-item
label
{
.account-change-body-item
label
{
text-align
:
end
;
width
:
5rem
;
margin-right
:
0.5rem
;
}
}
.account-change-body-item
span
{
.account-change-body-item
span
{
min-width
:
5rem
;
display
:
inline-block
;
}
}
.account-change-body-item
button
{
.account-change-body-item
button
{
width
:
48%
;
}
}
.account-change-body-item-highlight
{
.account-change-body-item-highlight
{
color
:
#c3606a
;
}
}
.page-link
{
.page-link
{
color
:
#007bff
!important
}
</style>
}
</style>
</head>
<body>
<div
th:replace=
"common/header::html"
></div>
<div
id=
"gatheringCode"
v-cloak
>
<div
th:replace=
"common/header::html"
></div>
<div
id=
"gatheringCode"
v-cloak
>
<div
class=
"page-body"
style=
"background: #f2f2f2;"
v-show=
"showGatheringCodeFlag"
>
<button
type=
"button"
style=
"margin-top: 0.3rem;"
class=
"btn btn-outline-info btn-lg btn-block"
v-on:click=
"showEditGatheringCodePage()"
>
添加收款码
</button>
<button
type=
"button"
style=
"margin-top: 0.3rem;"
class=
"btn btn-outline-info btn-lg btn-block"
v-on:click=
"showEditGatheringCodePage()"
>
添加收款码
</button>
<div
class=
"input-group"
style=
"padding-bottom: 0.3rem; padding-top: 0.3rem;"
>
<select
class=
"form-control"
style=
"width: 2.2rem; height: 3rem;"
v-model=
"state"
>
<option
value=
""
>
状态
</option>
<option
v-for=
"dictItem in gatheringCodeStateDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
</select>
<select
class=
"form-control"
style=
"width: 6.2rem; height: 3rem;"
v-model=
"gatheringChannelCode"
>
<option
v-for=
"dictItem in gatheringCodeStateDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
</select>
<select
class=
"form-control"
style=
"width: 6.2rem; height: 3rem;"
v-model=
"gatheringChannelCode"
>
<option
value=
""
>
收款渠道
</option>
<option
v-for=
"dictItem in gatheringChannelDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
<option
v-for=
"dictItem in gatheringChannelDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
</select>
<div
class=
"input-group-append"
>
<button
class=
"btn btn-outline-secondary"
type=
"button"
v-on:click=
"query"
>
查询
</button>
<button
class=
"btn btn-outline-secondary"
type=
"button"
v-on:click=
"query"
>
查询
</button>
</div>
</div>
<div
class=
"account-change"
v-for=
"gatheringCode in gatheringCodes"
>
...
...
@@ -81,21 +92,30 @@
<label>
创建时间:
</label>
<span>
{{gatheringCode.createTime}}
</span>
</div>
<div
class=
"account-change-body-item"
>
<label>
收款渠道:
</label>
<span>
{{gatheringCode.gatheringChannelName}}
</span><label>
状态:
</label>
<span>
{{gatheringCode.stateName}}
</span>
<label>
收款渠道:
</label>
<span>
{{gatheringCode.gatheringChannelName}}
</span><label>
状态:
</label>
<span>
{{gatheringCode.stateName}}
</span>
</div>
<div
class=
"account-change-body-item"
>
<label>
收款金额:
</label>
<span
class=
"account-change-body-item-highlight"
>
{{gatheringCode.fixedGatheringAmount ? gatheringCode.gatheringAmount + '元' : '不固定'}}
</span><label>
收款人:
</label>
<span
class=
"account-change-body-item-highlight"
>
{{gatheringCode.payee}}
</span>
<label>
收款金额:
</label>
<span
class=
"account-change-body-item-highlight"
>
{{gatheringCode.fixedGatheringAmount ? gatheringCode.gatheringAmount + '元' : '不固定'}}
</span><label>
收款人:
</label>
<span
class=
"account-change-body-item-highlight"
>
{{gatheringCode.payee}}
</span>
</div>
<div
class=
"account-change-body-item"
>
<button
class=
"btn btn-outline-info btn-lg"
type=
"button"
v-on:click=
"showEditGatheringCodePage(gatheringCode.id)"
>
编辑
</button>
<button
class=
"btn btn-outline-danger btn-lg"
type=
"button"
v-on:click=
"delGatheringCode(gatheringCode.id)"
>
删除
</button>
<button
class=
"btn btn-outline-info btn-lg"
type=
"button"
v-on:click=
"showEditGatheringCodePage(gatheringCode.id)"
>
编辑
</button>
<button
class=
"btn btn-outline-danger btn-lg"
type=
"button"
v-on:click=
"delGatheringCode(gatheringCode.id)"
>
删除
</button>
</div>
</div>
</div>
<div
style=
"padding-left: 13rem;"
>
<ul
class=
"pagination"
>
<li
class=
"page-item"
><a
class=
"page-link"
v-show=
"totalPage > 0 && pageNum > 1"
v-on:click=
"prePage"
>
上一页
</a></li>
<li
class=
"page-item"
><a
class=
"page-link"
v-show=
"pageNum >= 1 && pageNum < totalPage"
v-on:click=
"nextPage"
>
下一页
</a></li>
<li
class=
"page-item"
><a
class=
"page-link"
v-show=
"totalPage > 0 && pageNum > 1"
v-on:click=
"prePage"
>
上一页
</a></li>
<li
class=
"page-item"
><a
class=
"page-link"
v-show=
"pageNum >= 1 && pageNum < totalPage"
v-on:click=
"nextPage"
>
下一页
</a></li>
</ul>
</div>
</div>
...
...
@@ -103,15 +123,21 @@
<div
class=
"container"
style=
"margin-top: 1.3rem;"
>
<form>
<div
class=
"form-group"
>
<label>
收款渠道:
</label>
<select
class=
"form-control"
v-model=
"editGatheringCode.gatheringChannelCode"
@
change=
"alert(editGatheringCode.gatheringChannelCode);"
>
<label>
收款渠道:
</label>
<select
class=
"form-control"
v-model=
"editGatheringCode.gatheringChannelCode"
>
<option
value=
""
>
请选择
</option>
<option
v-for=
"dictItem in gatheringChannelDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
<option
v-for=
"dictItem in gatheringChannelDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
</select>
</div>
<div
class=
"form-group"
>
<label>
状态:
</label>
<select
class=
"form-control"
v-model=
"editGatheringCode.state"
>
<label>
状态:
</label>
<select
class=
"form-control"
v-model=
"editGatheringCode.state"
>
<option
value=
""
>
请选择
</option>
<option
v-for=
"dictItem in gatheringCodeStateDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
<option
v-for=
"dictItem in gatheringCodeStateDictItems"
:value=
"dictItem.dictItemCode"
>
{{dictItem.dictItemName}}
</option>
</select>
</div>
<!--<div class="form-group">
...
...
@@ -123,21 +149,35 @@
</label> <input type="number" class="form-control" v-model="editGatheringCode.gatheringAmount" :disabled="!editGatheringCode.fixedGatheringAmount">
</div>-->
<div
class=
"form-group"
>
<label>
收款人:
</label>
<input
type=
"text"
class=
"form-control"
v-model=
"editGatheringCode.payee"
>
</div>
<div
class=
"form-group"
v-show=
"editGatheringCode.gatheringChannelCode == 'bankcard'"
style=
""
><label>
银行卡号:
</label>
<input
type=
"text"
class=
"form-control"
>
<label>
开户行:
</label>
<input
type=
"text"
class=
"form-control"
>
<label>
卡姓名:
</label>
<input
type=
"text"
class=
"form-control"
></div>
<div
class=
"form-group"
v-show=
"editGatheringCode.gatheringChannelCode != 'bankcard'"
>
<label>
收款人:
</label>
<input
type=
"text"
class=
"form-control"
v-model=
"editGatheringCode.payee"
>
</div>
<div
class=
"form-group"
v-show=
"editGatheringCode.gatheringChannelCode == 'bankcard'"
style=
""
>
<label>
银行卡号:
</label>
<input
type=
"text"
class=
"form-control"
v-model=
"editGatheringCode.bankCode"
>
<label>
开户行:
</label>
<input
type=
"text"
class=
"form-control"
v-model=
"editGatheringCode.bankAddress"
>
<label>
卡户主:
</label>
<input
type=
"text"
class=
"form-control"
v-model=
"editGatheringCode.bankUsername"
>
</div>
<div
class=
"form-group"
v-show=
"editGatheringCode.gatheringChannelCode != 'bankcard'"
>
<label>
收款码:
</label>
<input
type=
"file"
class=
"form-control gathering-code-pic"
>
</div>
<button
type=
"button"
class=
"btn btn-danger btn-lg btn-block"
v-on:click=
"addOrUpdateGatheringCode"
>
保存
</button>
<button
type=
"button"
class=
"btn btn-light btn-lg btn-block"
v-on:click=
"hideEditGatheringCodePage"
>
返回
</button>
<button
type=
"button"
class=
"btn btn-danger btn-lg btn-block"
v-on:click=
"addOrUpdateGatheringCode"
>
保存
</button>
<button
type=
"button"
class=
"btn btn-light btn-lg btn-block"
v-on:click=
"hideEditGatheringCodePage"
>
返回
</button>
</form>
</div>
</div>
</div>
<div
th:replace=
"common/footer::html"
></div>
<script
type=
"text/javascript"
src=
"/js/gathering-code.js"
></script>
</div>
<div
th:replace=
"common/footer::html"
></div>
<script
type=
"text/javascript"
src=
"/js/gathering-code.js"
></script>
</body>
</html>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论