提交 d3b8a353 authored 作者: jacksmith1988's avatar jacksmith1988

//init

上级 ed53a40a
...@@ -160,4 +160,8 @@ public class Constant { ...@@ -160,4 +160,8 @@ public class Constant {
public static final String 下级账号查询范围_指定账号及直接下级 = "20"; public static final String 下级账号查询范围_指定账号及直接下级 = "20";
public static final String 支付渠道_银行卡 = "bankcard";
public static final String 支付渠道_微信码 = "wechat";
public static final String 支付渠道_支付宝码 = "alipay";
} }
...@@ -58,6 +58,18 @@ public class GatheringCode { ...@@ -58,6 +58,18 @@ public class GatheringCode {
*/ */
private String payee; private String payee;
/**
* 开户行
*/
private String bankAddress;
/**
* 卡号
*/
private String bankCode;
/**
* 卡户主
*/
private String bankUsername;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -54,6 +54,19 @@ public class GatheringCodeParam { ...@@ -54,6 +54,19 @@ public class GatheringCodeParam {
private String storageId; private String storageId;
/**
* 开户行
*/
private String bankAddress;
/**
* 卡号
*/
private String bankCode;
/**
* 卡户主
*/
private String bankUsername;
public GatheringCode convertToPo(String userAccountId) { public GatheringCode convertToPo(String userAccountId) {
GatheringCode po = new GatheringCode(); GatheringCode po = new GatheringCode();
BeanUtils.copyProperties(this, po); BeanUtils.copyProperties(this, po);
......
...@@ -157,18 +157,21 @@ public class GatheringCodeService { ...@@ -157,18 +157,21 @@ public class GatheringCodeService {
@ParamValid @ParamValid
@Transactional @Transactional
public void addOrUpdateGatheringCode(GatheringCodeParam param, String userAccountId) { public void addOrUpdateGatheringCode(GatheringCodeParam param, String userAccountId) {
if (param.getFixedGatheringAmount()) { /*if (param.getFixedGatheringAmount()) {
if (param.getGatheringAmount() == null) { if (param.getGatheringAmount() == null) {
throw new BizException(BizError.参数异常); throw new BizException(BizError.参数异常);
} }
if (param.getGatheringAmount() <= 0) { if (param.getGatheringAmount() <= 0) {
throw new BizException(BizError.参数异常); throw new BizException(BizError.参数异常);
} }
} }*/
// 新增 // 新增
if (StrUtil.isBlank(param.getId())) { if (StrUtil.isBlank(param.getId())) {
GatheringCode gatheringCode = param.convertToPo(userAccountId); GatheringCode gatheringCode = param.convertToPo(userAccountId);
gatheringCodeRepo.save(gatheringCode); gatheringCodeRepo.save(gatheringCode);
if (param.getGatheringChannelCode().equals("bankcard")) {
return;
}
associateGatheringCodeStorage(param.getStorageId(), gatheringCode.getId()); associateGatheringCodeStorage(param.getStorageId(), gatheringCode.getId());
} }
// 修改 // 修改
...@@ -180,6 +183,9 @@ public class GatheringCodeService { ...@@ -180,6 +183,9 @@ public class GatheringCodeService {
} }
BeanUtils.copyProperties(param, gatheringCode); BeanUtils.copyProperties(param, gatheringCode);
gatheringCodeRepo.save(gatheringCode); gatheringCodeRepo.save(gatheringCode);
if (param.getGatheringChannelCode().equals("bankcard")) {
return;
}
associateGatheringCodeStorage(param.getStorageId(), gatheringCode.getId()); associateGatheringCodeStorage(param.getStorageId(), gatheringCode.getId());
} }
} }
......
...@@ -37,6 +37,7 @@ import cn.hutool.core.date.DateField; ...@@ -37,6 +37,7 @@ import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestAlgorithm; import cn.hutool.crypto.digest.DigestAlgorithm;
import cn.hutool.crypto.digest.Digester; import cn.hutool.crypto.digest.Digester;
...@@ -111,6 +112,8 @@ public class MerchantOrderService { ...@@ -111,6 +112,8 @@ public class MerchantOrderService {
@Autowired @Autowired
private OrderRebateRepo orderRebateRepo; private OrderRebateRepo orderRebateRepo;
@Transactional(readOnly = true) @Transactional(readOnly = true)
public MerchantOrderDetailsVO findMerchantOrderDetailsById(@NotBlank String orderId) { public MerchantOrderDetailsVO findMerchantOrderDetailsById(@NotBlank String orderId) {
MerchantOrderDetailsVO vo = MerchantOrderDetailsVO.convertFor(merchantOrderRepo.getOne(orderId)); MerchantOrderDetailsVO vo = MerchantOrderDetailsVO.convertFor(merchantOrderRepo.getOne(orderId));
...@@ -119,8 +122,6 @@ public class MerchantOrderService { ...@@ -119,8 +122,6 @@ public class MerchantOrderService {
/** /**
* 客服取消订单退款 * 客服取消订单退款
*
* @param orderId
*/ */
@Transactional @Transactional
public void customerServiceCancelOrderRefund(@NotBlank String orderId) { public void customerServiceCancelOrderRefund(@NotBlank String orderId) {
...@@ -168,10 +169,12 @@ public class MerchantOrderService { ...@@ -168,10 +169,12 @@ public class MerchantOrderService {
log.error("商户订单不存在;orderNo:{}", orderNo); log.error("商户订单不存在;orderNo:{}", orderNo);
throw new BizException(BizError.商户订单不存在); throw new BizException(BizError.商户订单不存在);
} }
String gatheringCodeStorageId = getGatheringCodeStorageId(order.getReceivedAccountId(), GatheringCode gatheringCode = getGatheringCode(order.getReceivedAccountId(),
order.getGatheringChannelCode(), order.getGatheringAmount()); order.getGatheringChannelCode(), order.getGatheringAmount());
OrderGatheringCodeVO vo = OrderGatheringCodeVO.convertFor(order); OrderGatheringCodeVO vo = OrderGatheringCodeVO.convertFor(order);
vo.setGatheringCodeStorageId(gatheringCodeStorageId); vo.setGatheringCodeStorageId(gatheringCode.getStorageId());
vo.setGatheringCode(gatheringCode);
return vo; return vo;
} }
...@@ -197,6 +200,28 @@ public class MerchantOrderService { ...@@ -197,6 +200,28 @@ public class MerchantOrderService {
return null; 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 @Transactional
public void userConfirmToPaid(@NotBlank String userAccountId, @NotBlank String orderId) { public void userConfirmToPaid(@NotBlank String userAccountId, @NotBlank String orderId) {
MerchantOrder platformOrder = merchantOrderRepo.findByIdAndReceivedAccountId(orderId, userAccountId); MerchantOrder platformOrder = merchantOrderRepo.findByIdAndReceivedAccountId(orderId, userAccountId);
...@@ -214,8 +239,6 @@ public class MerchantOrderService { ...@@ -214,8 +239,6 @@ public class MerchantOrderService {
/** /**
* 客服确认已支付 * 客服确认已支付
*
* @param orderId
*/ */
@Transactional @Transactional
public void customerServiceConfirmToPaid(@NotBlank String orderId, String note) { public void customerServiceConfirmToPaid(@NotBlank String orderId, String note) {
...@@ -253,8 +276,6 @@ public class MerchantOrderService { ...@@ -253,8 +276,6 @@ public class MerchantOrderService {
/** /**
* 生成订单返点 * 生成订单返点
*
* @param bettingOrder
*/ */
public void generateOrderRebate(MerchantOrder merchantOrder) { public void generateOrderRebate(MerchantOrder merchantOrder) {
UserAccount userAccount = merchantOrder.getReceivedAccount(); UserAccount userAccount = merchantOrder.getReceivedAccount();
...@@ -283,8 +304,6 @@ public class MerchantOrderService { ...@@ -283,8 +304,6 @@ public class MerchantOrderService {
/** /**
* 通知指定的订单进行返点结算 * 通知指定的订单进行返点结算
*
* @param issueId
*/ */
@Transactional(readOnly = true) @Transactional(readOnly = true)
public void noticeOrderRebateSettlement(@NotBlank String orderId) { public void noticeOrderRebateSettlement(@NotBlank String orderId) {
...@@ -398,14 +417,17 @@ public class MerchantOrderService { ...@@ -398,14 +417,17 @@ public class MerchantOrderService {
merchantOrder.setPayInfoId(payInfo.getId()); merchantOrder.setPayInfoId(payInfo.getId());
merchantOrderRepo.save(merchantOrder); merchantOrderRepo.save(merchantOrder);
merchantOrderPayInfoRepo.save(payInfo); 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); return MerchantOrderVO.convertFor(merchantOrder);
} }
/** /**
* 接单 * 接单
*
* @param param
* @return
*/ */
@Lock(keys = "'receiveOrder_' + #orderId") @Lock(keys = "'receiveOrder_' + #orderId")
@Transactional @Transactional
...@@ -423,7 +445,8 @@ public class MerchantOrderService { ...@@ -423,7 +445,8 @@ public class MerchantOrderService {
} }
String gatheringCodeStorageId = getGatheringCodeStorageId(userAccountId, String gatheringCodeStorageId = getGatheringCodeStorageId(userAccountId,
platformOrder.getGatheringChannelCode(), platformOrder.getGatheringAmount()); platformOrder.getGatheringChannelCode(), platformOrder.getGatheringAmount());
if (StrUtil.isBlank(gatheringCodeStorageId)) { //支付宝和微信才有收款码
if (StrUtil.isBlank(gatheringCodeStorageId) && !platformOrder.getGatheringChannelCode().equals(Constant.支付渠道_银行卡) ) {
throw new BizException(BizError.无法接单找不到对应金额的收款码); throw new BizException(BizError.无法接单找不到对应金额的收款码);
} }
// 校验用户是否达到接单上限,若达到上限,则不能接单 // 校验用户是否达到接单上限,若达到上限,则不能接单
...@@ -550,8 +573,6 @@ public class MerchantOrderService { ...@@ -550,8 +573,6 @@ public class MerchantOrderService {
/** /**
* 取消订单 * 取消订单
*
* @param id
*/ */
@Transactional @Transactional
public void cancelOrder(@NotBlank String id) { public void cancelOrder(@NotBlank String id) {
...@@ -566,8 +587,6 @@ public class MerchantOrderService { ...@@ -566,8 +587,6 @@ public class MerchantOrderService {
/** /**
* 商户取消订单 * 商户取消订单
*
* @param id
*/ */
@Transactional @Transactional
public void merchatCancelOrder(@NotBlank String merchantId, @NotBlank String id) { public void merchatCancelOrder(@NotBlank String merchantId, @NotBlank String id) {
...@@ -628,13 +647,18 @@ public class MerchantOrderService { ...@@ -628,13 +647,18 @@ public class MerchantOrderService {
merchantOrder.setPayInfoId(payInfo.getId()); merchantOrder.setPayInfoId(payInfo.getId());
merchantOrderRepo.save(merchantOrder); merchantOrderRepo.save(merchantOrder);
merchantOrderPayInfoRepo.save(payInfo); 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()); return StartOrderSuccessVO.convertFor(merchantOrder.getOrderNo());
} }
/** /**
* 支付成功异步通知 * 支付成功异步通知
*
* @param merchantOrderId
*/ */
@Transactional @Transactional
public String paySuccessAsynNotice(@NotBlank String merchantOrderId) { public String paySuccessAsynNotice(@NotBlank String merchantOrderId) {
......
...@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import me.zohar.runscore.dictconfig.DictHolder; import me.zohar.runscore.dictconfig.DictHolder;
import me.zohar.runscore.gatheringcode.domain.GatheringCode;
import me.zohar.runscore.merchant.domain.MerchantOrder; import me.zohar.runscore.merchant.domain.MerchantOrder;
@Data @Data
...@@ -58,6 +59,8 @@ public class OrderGatheringCodeVO { ...@@ -58,6 +59,8 @@ public class OrderGatheringCodeVO {
private String gatheringCodeUrl; private String gatheringCodeUrl;
private GatheringCode gatheringCode;
/** /**
* 同步通知地址 * 同步通知地址
*/ */
...@@ -75,4 +78,5 @@ public class OrderGatheringCodeVO { ...@@ -75,4 +78,5 @@ public class OrderGatheringCodeVO {
return vo; return vo;
} }
} }
...@@ -32,6 +32,7 @@ public class LoginLog { ...@@ -32,6 +32,7 @@ public class LoginLog {
/** /**
* 登录系统 * 登录系统
*/ */
@Column(name="`system`")
private String system; private String system;
/** /**
......
...@@ -3,6 +3,8 @@ package me.zohar.runscore.useraccount.repo; ...@@ -3,6 +3,8 @@ package me.zohar.runscore.useraccount.repo;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
import me.zohar.runscore.useraccount.domain.UserAccount; import me.zohar.runscore.useraccount.domain.UserAccount;
...@@ -12,4 +14,5 @@ public interface UserAccountRepo extends JpaRepository<UserAccount, String>, Jpa ...@@ -12,4 +14,5 @@ public interface UserAccountRepo extends JpaRepository<UserAccount, String>, Jpa
Long countByInviterId(String inviterId); Long countByInviterId(String inviterId);
List<UserAccount> findAllByAccountType(String accountType);
} }
...@@ -19,6 +19,11 @@ public class ApiController { ...@@ -19,6 +19,11 @@ public class ApiController {
@Autowired @Autowired
private MerchantOrderService platformOrderService; private MerchantOrderService platformOrderService;
/**
* 商户开单,获取支付方式,返回银行卡信息或者支付码信息
* @param param
* @return
*/
@PostMapping("/startOrder") @PostMapping("/startOrder")
@ResponseBody @ResponseBody
public Result startOrder(StartOrderParam param) { public Result startOrder(StartOrderParam param) {
......
...@@ -15,11 +15,12 @@ public class StartOrderTest { ...@@ -15,11 +15,12 @@ public class StartOrderTest {
*/ */
public static void main(String[] args) { public static void main(String[] args) {
String merchantNum = "201906001"; String merchantNum = "1001";
String merchantOrderNo = "20190629023134U936283877"; String merchantOrderNo = "20190629023134U936283878";
Double amount = 100d; Double amount = 100d;
String notifyUrl = "http://xhbc10.com/index.php/Pay/Paynotify"; 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 String sign = merchantNum + merchantOrderNo
+ new DecimalFormat("###################.###########").format(amount) + notifyUrl + secretKey; + new DecimalFormat("###################.###########").format(amount) + notifyUrl + secretKey;
System.out.println(sign); System.out.println(sign);
......
...@@ -135,9 +135,12 @@ var gatheringCodeVM = new Vue({ ...@@ -135,9 +135,12 @@ var gatheringCodeVM = new Vue({
that.editGatheringCode = { that.editGatheringCode = {
gatheringChannelCode : '', gatheringChannelCode : '',
state : '', state : '',
fixedGatheringAmount : true, fixedGatheringAmount : false,
gatheringAmount : '', gatheringAmount : '',
payee : '' payee : '',
bankAddress:'',
bankCode:'',
bankUsername:''
}; };
that.showEditGatheringCodePageInner(); that.showEditGatheringCodePageInner();
that.initFileUploadWidget(); that.initFileUploadWidget();
...@@ -187,24 +190,24 @@ var gatheringCodeVM = new Vue({ ...@@ -187,24 +190,24 @@ var gatheringCodeVM = new Vue({
}); });
return; return;
} }
if (editGatheringCode.fixedGatheringAmount == null) { // if (editGatheringCode.fixedGatheringAmount == null) {
layer.alert('请选择是否固定收款金额', { // layer.alert('请选择是否固定收款金额', {
title : '提示', // title : '提示',
icon : 7, // icon : 7,
time : 3000 // time : 3000
}); // });
return; // return;
} // }
if (editGatheringCode.fixedGatheringAmount) { // if (editGatheringCode.fixedGatheringAmount) {
if (editGatheringCode.gatheringAmount == null || editGatheringCode.gatheringAmount == '') { // if (editGatheringCode.gatheringAmount == null || editGatheringCode.gatheringAmount == '') {
layer.alert('请输入收款金额', { // layer.alert('请输入收款金额', {
title : '提示', // title : '提示',
icon : 7, // icon : 7,
time : 3000 // time : 3000
}); // });
return; // return;
} // }
} // }
if (editGatheringCode.payee == null || editGatheringCode.payee == '') { if (editGatheringCode.payee == null || editGatheringCode.payee == '') {
layer.alert('请选择收款人', { layer.alert('请选择收款人', {
title : '提示', title : '提示',
...@@ -214,11 +217,12 @@ var gatheringCodeVM = new Vue({ ...@@ -214,11 +217,12 @@ var gatheringCodeVM = new Vue({
return; return;
} }
if ($('.gathering-code-pic').fileinput('getPreview').content.length != 0) { if ($('.gathering-code-pic').fileinput('getPreview').content.length != 0 || editGatheringCode.gatheringChannelCode =='bankcard') {
that.addOrUpdateGatheringCodeInner(); that.addOrUpdateGatheringCodeInner();
} else { } else {
var filesCount = $('.gathering-code-pic').fileinput('getFilesCount'); var filesCount = $('.gathering-code-pic').fileinput('getFilesCount');
if (filesCount == 0) { console.log(editGatheringCode.gatheringChannelCode);
if (filesCount == 0 ) {
layer.alert('请选择要上传的图片', { layer.alert('请选择要上传的图片', {
title : '提示', title : '提示',
icon : 7, icon : 7,
......
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>收款码</title> <title>收款码</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css"> <link rel="stylesheet"
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> href="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.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/popper.js/1.12.5/umd/popper.min.js"></script>
<script src="https://cdn.staticfile.org/vue/2.4.2/vue.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-resource/1.5.1/vue-resource.min.js"></script> <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
<script src="https://cdn.bootcss.com/dayjs/1.7.8/dayjs.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/layer/2.3/layer.js"></script> <script src="https://cdn.bootcss.com/dayjs/1.7.8/dayjs.min.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://cdn.bootcss.com/layer/2.3/layer.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/fileinput.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/css/fileinput.min.css"
<script src="/js/common/common.js"></script> media="all" rel="stylesheet" type="text/css"/>
<link href="/css/common/common.css" rel="stylesheet" type="text/css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.1/js/fileinput.min.js"></script>
<style type="text/css"> <script src="/js/common/common.js"></script>
.account-change { <link href="/css/common/common.css" rel="stylesheet" type="text/css">
<style type="text/css">
.account-change {
background-color: #fff;; background-color: #fff;;
margin-bottom: 1rem; margin-bottom: 1rem;
display: flex; display: flex;
...@@ -25,54 +27,63 @@ ...@@ -25,54 +27,63 @@
padding-right: 0.2rem; padding-right: 0.2rem;
padding-top: 0.5rem; padding-top: 0.5rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
} }
.account-change-body { .account-change-body {
flex: 4; flex: 4;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.account-change-body-item label { .account-change-body-item label {
text-align: end; text-align: end;
width: 5rem; width: 5rem;
margin-right: 0.5rem; margin-right: 0.5rem;
} }
.account-change-body-item span { .account-change-body-item span {
min-width: 5rem; min-width: 5rem;
display: inline-block; display: inline-block;
} }
.account-change-body-item button { .account-change-body-item button {
width: 48%; width: 48%;
} }
.account-change-body-item-highlight { .account-change-body-item-highlight {
color: #c3606a; color: #c3606a;
} }
.page-link { .page-link {
color: #007bff !important color: #007bff !important
} }
</style> </style>
</head> </head>
<body> <body>
<div th:replace="common/header::html"></div> <div th:replace="common/header::html"></div>
<div id="gatheringCode" v-cloak> <div id="gatheringCode" v-cloak>
<div class="page-body" style="background: #f2f2f2;" v-show="showGatheringCodeFlag"> <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;"> <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"> <select class="form-control" style="width: 2.2rem; height: 3rem;" v-model="state">
<option value="">状态</option> <option value="">状态</option>
<option v-for="dictItem in gatheringCodeStateDictItems" :value="dictItem.dictItemCode">{{dictItem.dictItemName}}</option> <option v-for="dictItem in gatheringCodeStateDictItems"
</select> <select class="form-control" style="width: 6.2rem; height: 3rem;" v-model="gatheringChannelCode"> :value="dictItem.dictItemCode">{{dictItem.dictItemName}}
</option>
</select> <select class="form-control" style="width: 6.2rem; height: 3rem;"
v-model="gatheringChannelCode">
<option value="">收款渠道</option> <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> </select>
<div class="input-group-append"> <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> </div>
<div class="account-change" v-for="gatheringCode in gatheringCodes"> <div class="account-change" v-for="gatheringCode in gatheringCodes">
...@@ -81,21 +92,30 @@ ...@@ -81,21 +92,30 @@
<label>创建时间:</label> <span>{{gatheringCode.createTime}}</span> <label>创建时间:</label> <span>{{gatheringCode.createTime}}</span>
</div> </div>
<div class="account-change-body-item"> <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>
<div class="account-change-body-item"> <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>
<div class="account-change-body-item"> <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-info btn-lg" type="button"
<button class="btn btn-outline-danger btn-lg" type="button" v-on:click="delGatheringCode(gatheringCode.id)">删除</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>
</div> </div>
<div style="padding-left: 13rem;"> <div style="padding-left: 13rem;">
<ul class="pagination"> <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="totalPage > 0 && pageNum > 1"
<li class="page-item"><a class="page-link" v-show="pageNum >= 1 && pageNum < totalPage" v-on:click="nextPage">下一页</a></li> 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> </ul>
</div> </div>
</div> </div>
...@@ -103,15 +123,21 @@ ...@@ -103,15 +123,21 @@
<div class="container" style="margin-top: 1.3rem;"> <div class="container" style="margin-top: 1.3rem;">
<form> <form>
<div class="form-group"> <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 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> </select>
</div> </div>
<div class="form-group"> <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 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> </select>
</div> </div>
<!--<div class="form-group"> <!--<div class="form-group">
...@@ -123,21 +149,35 @@ ...@@ -123,21 +149,35 @@
</label> <input type="number" class="form-control" v-model="editGatheringCode.gatheringAmount" :disabled="!editGatheringCode.fixedGatheringAmount"> </label> <input type="number" class="form-control" v-model="editGatheringCode.gatheringAmount" :disabled="!editGatheringCode.fixedGatheringAmount">
</div>--> </div>-->
<div class="form-group"> <div class="form-group">
<label>收款人:</label> <input type="text" class="form-control" v-model="editGatheringCode.payee"> <label>收款人:</label> <input type="text" class="form-control"
</div> v-model="editGatheringCode.payee">
<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>
<div class="form-group" v-show="editGatheringCode.gatheringChannelCode != 'bankcard'"> <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"> <label>收款码:</label> <input type="file" class="form-control gathering-code-pic">
</div> </div>
<button type="button" class="btn btn-danger btn-lg btn-block" v-on:click="addOrUpdateGatheringCode">保存</button> <button type="button" class="btn btn-danger btn-lg btn-block"
<button type="button" class="btn btn-light btn-lg btn-block" v-on:click="hideEditGatheringCodePage">返回</button> v-on:click="addOrUpdateGatheringCode">保存
</button>
<button type="button" class="btn btn-light btn-lg btn-block"
v-on:click="hideEditGatheringCodePage">返回
</button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
<div th:replace="common/footer::html"></div> <div th:replace="common/footer::html"></div>
<script type="text/javascript" src="/js/gathering-code.js"></script> <script type="text/javascript" src="/js/gathering-code.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论