diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
index b1f72c515..6ba570bf7 100644
--- a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
@@ -24,9 +24,12 @@ import au.com.royalpay.payment.manage.mappers.system.ClientBankAccountMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.manage.merchants.core.ClientManager;
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
+import au.com.royalpay.payment.manage.system.core.TradeSecureService;
+import au.com.royalpay.payment.manage.system.core.beans.TradeSecureFile;
import au.com.royalpay.payment.manage.tradelog.core.TradeLogService;
import au.com.royalpay.payment.tools.CommonConsts;
import au.com.royalpay.payment.tools.defines.TradeType;
+import au.com.royalpay.payment.tools.env.SysConfigManager;
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.http.HttpUtils;
import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider;
@@ -40,6 +43,7 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.dom4j.Element;
+import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@@ -121,6 +125,10 @@ public class TestController implements ApplicationEventPublisherAware {
private HfUpdateService hfUpdateService;
@Resource
private ClientManager clientManager;
+ @Resource
+ private SysConfigManager sysConfigManager;
+ @Resource
+ private TradeSecureService tradeSecureService;
private final static String EMAIL = "lily.tao@royalpay.com.au,bella.sun@royalpay.com.au,astro.dai@royalpay.com.au,taylor.dang@royalpay.com.au";
@ManagerMapping(value = "/{clientMoniker}/export/agreepdf", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.DIRECTOR, ManagerRole.OPERATOR})
@@ -434,13 +442,25 @@ public class TestController implements ApplicationEventPublisherAware {
@ManagerMapping(value = "/partner/reset_password", method = RequestMethod.GET, role = ManagerRole.DEVELOPER)
public void resetPartnerPassword() {
- final List emails = new ArrayList<>();
- List emailList = Arrays.asList(EMAIL.split(","));
- emailList.stream().forEach(email -> {
- if (!emails.contains(email)) {
- emails.add(email);
- }
- });
- clientManager.updateAllPartnerPassword("PINE", emails);
+ //抄送人邮箱
+ JSONObject sysConfig = sysConfigManager.getSysConfig();
+ String ccMail = sysConfig.getString("reset_password.cc_list");
+ //账号白名单
+ String accountWhiteList = sysConfig.getString("reset_password.account_white_list");
+ if (StringUtils.isEmpty(ccMail)) {
+ throw new BadRequestException("抄送人不能为空");
+ }
+ if (accountWhiteList == null) {
+ accountWhiteList = "";
+ }
+ List emailList = Arrays.asList(ccMail.split(","));
+ clientManager.updateAllPartnerPassword("PINE", emailList, accountWhiteList);
+ }
+
+ @ManagerMapping(value = "/secure/hanyin_reports/{date}", role = ManagerRole.DEVELOPER, method = RequestMethod.GET)
+ public void downloadHanyinSecureReports(@PathVariable String date, HttpServletResponse response) {
+ TradeSecureFile file = tradeSecureService.getSecureReportFile(DateTime.parse(date).toDate());
+ file.writeToHttp(response);
}
+
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java
index f8579d039..f73031649 100644
--- a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java
+++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java
@@ -8,8 +8,6 @@ import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.apache.ibatis.annotations.Param;
-import org.joda.time.DateTime;
-import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import java.util.Date;
@@ -102,6 +100,7 @@ public interface TransactionMapper {
BigDecimal TotalAmountForBDPrize(@Param("year") int year, @Param("month") int month, @Param("bd_id") String bd_id);
BigDecimal TotalAmountForBDLeaderPrize(@Param("year") int year, @Param("month") int month, @Param("bd_group") String bd_group);
+
BigDecimal TotalAmountForSydneyGMPrize(@Param("year") int year, @Param("month") int month);
List listTransactionForCityPartnerCommissionByDate(@Param("year") int year, @Param("month") int month);
@@ -120,9 +119,9 @@ public interface TransactionMapper {
@AdvanceSelect(addonWhereClause = "transaction_type='Credit'")
int countOrders(@Param("client_id") int client_id);
- List listDailyTransactions(@Param("from") Date from, @Param("to") Date to, @Param("dev_id") String devId, @Param("client_id") int clientId,@Param("client_ids")String [] client_ids);
+ List listDailyTransactions(@Param("from") Date from, @Param("to") Date to, @Param("dev_id") String devId, @Param("client_id") int clientId, @Param("client_ids") String[] client_ids);
- JSONObject analysisRetailDailyReport(@Param("from") Date from, @Param("to") Date to, @Param("dev_id") String devId, @Param("client_id") int clientId,@Param("client_ids")String [] client_ids);
+ JSONObject analysisRetailDailyReport(@Param("from") Date from, @Param("to") Date to, @Param("dev_id") String devId, @Param("client_id") int clientId, @Param("client_ids") String[] client_ids);
@AutoSql(type = SqlType.SELECT)
@AdvanceSelect(addonWhereClause = "system_generate=1")
@@ -156,6 +155,7 @@ public interface TransactionMapper {
/**
* 付款退款都是同一个退款单号
+ *
* @param clientId
* @param systemTransactionId
* @return
@@ -164,4 +164,14 @@ public interface TransactionMapper {
PageList findByClientIdAndSystemTransactionId(@Param("client_id") int clientId,
@Param("system_transaction_id") String systemTransactionId,
PageBounds pageBounds);
+
+ List listCreditTransactionsForSecure(Date from, Date to);
+
+ List listDebitTransactionsForSecure(Date from, Date to);
+
+ JSONObject getClearDetailTotal(JSONObject params);
+
+ List getSettlementLogDetailList(@Param("clientOrders") List clientOrders, @Param("client_id") int clientId);
+
+ List getClientOrderByTransactionTime(JSONObject params);
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java
index c1ca75c61..a6e740d7a 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java
@@ -355,7 +355,9 @@ public interface ClientManager {
void subYeepayMerchantApplication(String clientMoniker,JSONObject merchantInfo, JSONObject manager);
- void updateAllPartnerPassword(String clientMoniker, List emails);
+ void reSubYeepayMerchantApplication(String clientMoniker,JSONObject merchantInfo, JSONObject manager);
+
+ void updateAllPartnerPassword(String clientMoniker, List emails, String accountWhiteList);
void postponeClientRate(Date now, Date yearTomorrow, String expireDate, JSONObject client);
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java
index 571e74f66..e891f3789 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java
@@ -3720,9 +3720,20 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
merchantInfo.put("create_time",new Date());
merchantInfo.put("operator",manager.getString("display_name"));
merchantInfo.put("client_id",client.getIntValue("client_id"));
- merchantInfo.put("vouchers",merchantInfo.getJSONObject("vouchers").toJSONString());
+ merchantInfo.put("client_id",merchantInfo.getString("client_id"));
+// merchantInfo.put("vouchers",merchantInfo.getJSONObject("vouchers").toJSONString());
+ List directorsAll = new ArrayList<>();
+ List executivesAll = new ArrayList<>();
+ directorsAll.add(merchantInfo.getJSONObject("directors"));
+ executivesAll.add(merchantInfo.getJSONObject("executives"));
+ JSONObject extInfo = new JSONObject();
+ extInfo.put("directors",directorsAll);
+ extInfo.put("executives",executivesAll);
+ merchantInfo.put("extinfo",extInfo.toJSONString());
yeePayClientConfigMapper.saveMerchantConfig(merchantInfo);
JSONObject yeepayConfig = yeePayClientConfigMapper.findMerchantConfig(client.getIntValue("client_id"));
+ yeepayConfig.put("company_website",merchantInfo.getString("company_website"));
+ yeepayConfig.put("abn",merchantInfo.getString("abn"));
SubmerchantRegisterResult result = yeePayClient.registerMerchant(client,yeepayConfig);
if(result.getStatus().equals("FAILED")){
throw new BadRequestException(result.getErrorMsg());
@@ -3733,6 +3744,35 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
clientMapper.update(client);
}
+ @Override
+ public void reSubYeepayMerchantApplication(String clientMoniker, JSONObject merchantInfo, JSONObject manager) {
+ JSONObject client = getClientInfoByMoniker(clientMoniker);
+ if (client == null) {
+ throw new InvalidShortIdException();
+ }
+ checkOrgPermission(manager, client);
+ JSONObject yeepayConfig = yeePayClientConfigMapper.findMerchantConfigBySub(merchantInfo.getString("subMerchantId"));
+ List directorsAll = new ArrayList<>();
+ List executivesAll = new ArrayList<>();
+ directorsAll.add(merchantInfo.getJSONObject("directors"));
+ executivesAll.add(merchantInfo.getJSONObject("executives"));
+ JSONObject extInfo = new JSONObject();
+ extInfo.put("directors",directorsAll);
+ extInfo.put("executives",executivesAll);
+ yeepayConfig.put("extinfo",extInfo.toJSONString());
+ yeepayConfig.put("industry",merchantInfo.getString("industry"));
+ yeepayConfig.put("business_content",merchantInfo.getString("business_content"));
+ yeepayConfig.put("business_licence",merchantInfo.getString("business_licence"));
+ yeePayClientConfigMapper.update(yeepayConfig);
+ yeepayConfig.put("company_website",merchantInfo.getString("company_website"));
+ yeepayConfig.put("abn",merchantInfo.getString("abn"));
+ yeepayConfig.put("mode","UPDATE");
+ SubmerchantRegisterResult result = yeePayClient.registerMerchant(client,yeepayConfig);
+ if(result.getStatus().equals("FAILED")){
+ throw new BadRequestException(result.getErrorMsg());
+ }
+ }
+
@Override
public List listMerchantIds(String clientMoniker, JSONObject manager) {
JSONObject client = getClientInfoByMoniker(clientMoniker);
@@ -4089,24 +4129,28 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
return "";
}
@Override
- public void updateAllPartnerPassword(String clientMoniker, List emails) {
+ @Transactional
+ public void updateAllPartnerPassword(String clientMoniker, List emails, String accountWhiteList) {
JSONObject client = getClientInfoByMoniker(clientMoniker);
if (client == null) {
throw new InvalidShortIdException();
}
List partners = clientAccountMapper.partnerAndSubPartnerAccounts(client.getIntValue("client_id"));
- partners.stream().forEach(partner -> {
- String pwd = RandomStringUtils.random(8, true, true);
- String salt = PasswordUtils.newSalt();
- String pwdHash = PasswordUtils.hashPwd(pwd, salt);
- partner.put("salt", salt);
- partner.put("password_hash", pwdHash);
- partner.put("password_aes", PasswordUtils.encryptAESPwd(pwd));
- deviceManager.deviceOffline(partner.getString("account_id"));
- clientAccountMapper.update(partner);
- signInAccountService.clearAccountCache(partner.getString("account_id"));
- partner.put("password", pwd);
- });
+ partners = partners.stream().filter(partner -> !Arrays.asList(accountWhiteList.split(",")).contains(partner.getString("username"))).collect(Collectors.toList());
+ partners.forEach(
+ partner -> {
+ String pwd = RandomStringUtils.random(8, true, true);
+ String salt = PasswordUtils.newSalt();
+ String pwdHash = PasswordUtils.hashPwd(pwd, salt);
+ partner.put("salt", salt);
+ partner.put("password_hash", pwdHash);
+ partner.put("password_aes", PasswordUtils.encryptAESPwd(pwd));
+ deviceManager.deviceOffline(partner.getString("account_id"));
+ clientAccountMapper.update(partner);
+ signInAccountService.clearAccountCache(partner.getString("account_id"));
+ partner.put("password", pwd);
+ }
+ );
sendTestMerchantPassword(partners, emails);
}
@@ -4339,6 +4383,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
mailService.sendEmail("测试商户账户已更新", emails.isEmpty() ? "" : StringUtils.join(emails, ","), "", content);
} catch (Exception ignored) {
logger.error("邮件发送失败", ignored);
+ throw new BadRequestException("邮件发送失败");
}
}).start();
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java
index 3b9dcdb6d..fcf6f6d07 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java
@@ -615,6 +615,11 @@ public class PartnerManageController {
clientManager.subYeepayMerchantApplication(clientMoniker, merchantInfo,manager);
}
+ @ManagerMapping(value = "/{clientMoniker}/updateYeepaySubMerchantId", method = RequestMethod.POST, role = {ManagerRole.OPERATOR, ManagerRole.ADMIN})
+ public void reSubYeepayMerchantApplication(@PathVariable String clientMoniker,@RequestBody JSONObject merchantInfo,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) {
+ clientManager.reSubYeepayMerchantApplication(clientMoniker, merchantInfo,manager);
+ }
+
@RequestMapping(value = "/compliance", method = RequestMethod.GET)
@RequireManager(role = { ManagerRole.OPERATOR})
public JSONObject lisPartnersByCompliance(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, PartnerQuery query) {
diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java b/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java
new file mode 100644
index 000000000..bd2eaa596
--- /dev/null
+++ b/src/main/java/au/com/royalpay/payment/manage/system/core/TradeSecureService.java
@@ -0,0 +1,17 @@
+package au.com.royalpay.payment.manage.system.core;
+
+import au.com.royalpay.payment.manage.system.core.beans.TradeSecureFile;
+
+import java.util.Date;
+
+/**
+ * Create by yixian at 2019-01-08 3:17
+ */
+public interface TradeSecureService {
+ void uploadSecureReportYesterday();
+
+ void uploadSecureReport(Date date);
+
+ TradeSecureFile getSecureReportFile(Date date);
+
+}
diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java b/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java
new file mode 100644
index 000000000..76b558dc8
--- /dev/null
+++ b/src/main/java/au/com/royalpay/payment/manage/system/core/beans/TradeSecureFile.java
@@ -0,0 +1,149 @@
+package au.com.royalpay.payment.manage.system.core.beans;
+
+import au.com.royalpay.payment.tools.defines.TradeType;
+import au.com.royalpay.payment.tools.env.PlatformEnvironment;
+import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
+import au.com.royalpay.payment.tools.utils.CurrencyAmountUtils;
+import com.alibaba.fastjson.JSONObject;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+import java.util.stream.Collectors;
+
+/**
+ * Create by yixian at 2019-01-08 3:27
+ */
+public class TradeSecureFile {
+ private static final DateTimeZone zone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+ private final String pid;
+ private final DateTime transDate;
+ private final DateTime createTime;
+ private List tradeItems;
+ private byte[] content;
+
+ public TradeSecureFile(String pid, Date transDate) {
+ this.pid = pid;
+ this.transDate = new DateTime(transDate).withZoneRetainFields(zone).withMillisOfDay(0);
+ this.tradeItems = new ArrayList<>();
+ this.createTime = DateTime.now(zone);
+ }
+
+ public DateTime getTransDate() {
+ return transDate;
+ }
+
+ public Date getFromTime() {
+ return transDate.withZone(DateTimeZone.forTimeZone(TimeZone.getDefault())).toDate();
+ }
+
+ public Date getToTime() {
+ return transDate.plusDays(1).withZone(DateTimeZone.forTimeZone(TimeZone.getDefault())).toDate();
+ }
+
+ public TradeSecureFile addTransactions(List transactions) {
+ tradeItems.addAll(transactions.stream().map(TradeItem::new).collect(Collectors.toList()));
+ return this;
+ }
+
+ public void writeToHttp(HttpServletResponse response) {
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment; filename=" + filename());
+ try (OutputStream ous = response.getOutputStream()) {
+ ous.write(content());
+ ous.flush();
+ } catch (IOException e) {
+ throw new ServerErrorException(e);
+ }
+ }
+
+ public String filename() {
+ return String.join("_", transDate.toString("yyMMdd"), pid, createTime.toString("yyMMddHHmmss")) + ".txt";
+ }
+
+ public byte[] content() {
+ return content == null ? build() : content;
+ }
+
+ private byte[] build() {
+
+ try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ PrintWriter writer = new PrintWriter(new OutputStreamWriter(bos, StandardCharsets.UTF_8))) {
+ writer.println(headerLine());
+ for (TradeItem item : tradeItems) {
+ writer.println(item.line());
+ }
+ content = bos.toByteArray();
+ return content;
+ } catch (IOException e) {
+ throw new ServerErrorException(e);
+ }
+ }
+
+ private String headerLine() {
+ int totalCount = tradeItems.size();
+ BigDecimal totalCredit = tradeItems.stream().filter(TradeItem::isCredit).map(TradeItem::getClearingAmount)
+ .reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+ BigDecimal totalDebit = tradeItems.stream().filter(TradeItem::isDebit).map(TradeItem::getClearingAmount)
+ .reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+ String date = transDate.toString("yyyy-MM-dd");
+ String[] columns = {String.valueOf(totalCount), totalCredit.toPlainString(), totalDebit.toPlainString(), date, pid};
+ return String.join("|", columns);
+ }
+
+ class TradeItem {
+
+ private String clientMoniker;
+ private String orderId;
+ private String channel;
+ private TradeType gateway;
+ private BigDecimal price;
+ private BigDecimal clearingAmount;
+ private String currency;
+ private BigDecimal exchangeRate;
+ private String transactionType;
+ private Date transactionTime;
+
+ public TradeItem(JSONObject item) {
+ clientMoniker = item.getString("client_moniker");
+ transactionType = item.getString("transaction_type");
+ orderId = isCredit() ? item.getString("order_id") : item.getString("out_refund_id");
+ channel = item.getString("order_channel");
+ gateway = TradeType.fromGatewayNumber(item.getIntValue("gateway"));
+ currency = item.getString("transaction_currency");
+ price = CurrencyAmountUtils.scale(item.getBigDecimal("transaction_amount"), currency);
+ clearingAmount = CurrencyAmountUtils.scale(item.getBigDecimal("clearing_amount"), PlatformEnvironment.getEnv().getForeignCurrency());
+ exchangeRate = item.getBigDecimal("exchange_rate");
+ transactionTime = item.getDate("transaction_time");
+ }
+
+ public String line() {
+ String[] columns = {clientMoniker, orderId, channel, gateway.toString(), price.toPlainString(), clearingAmount.toPlainString(), currency,
+ exchangeRate.toPlainString(), filterStatus(), new DateTime(transactionTime).withZone(zone).toString()};
+ return String.join("|", columns);
+ }
+
+ private String filterStatus() {
+ return isCredit() ? "SUCCESS" : "REFUND";
+ }
+
+ public boolean isCredit() {
+ return "Credit".equals(transactionType);
+ }
+
+ public boolean isDebit() {
+ return "Debit".equals(transactionType);
+ }
+
+ public BigDecimal getClearingAmount() {
+ return clearingAmount;
+ }
+ }
+}
diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java b/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java
new file mode 100644
index 000000000..34ffe6f09
--- /dev/null
+++ b/src/main/java/au/com/royalpay/payment/manage/system/core/impl/TradeSecureServiceHanyinImpl.java
@@ -0,0 +1,107 @@
+package au.com.royalpay.payment.manage.system.core.impl;
+
+import au.com.royalpay.payment.core.exceptions.ChannelNetworkException;
+import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper;
+import au.com.royalpay.payment.manage.system.core.TradeSecureService;
+import au.com.royalpay.payment.manage.system.core.beans.TradeSecureFile;
+import au.com.royalpay.payment.tools.env.SysConfigManager;
+import com.alibaba.fastjson.JSONObject;
+import com.jcraft.jsch.*;
+import org.apache.commons.vfs2.FileSystemOptions;
+import org.apache.commons.vfs2.provider.sftp.SftpClientFactory;
+import org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder;
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Create by yixian at 2019-01-08 3:26
+ */
+@Service
+public class TradeSecureServiceHanyinImpl implements TradeSecureService {
+ private Logger logger = LoggerFactory.getLogger(getClass());
+ @Value("${app.hanyin-secure.pid:ROYALPAY}")
+ private String pid;
+ @Value("${app.hanyin-secure.sftp-host}")
+ private String sftpHost;
+ @Value("${app.hanyin-secure.sftp-port}")
+ private int sftpPort;
+ @Value("${app.hanyin-secure.sftp-username}")
+ private String sftpUsername;
+ @Value("${app.hanyin-secure.sftp-pwd}")
+ private String sftpPwd;
+ @Resource
+ private TransactionMapper transactionMapper;
+ @Resource
+ private SysConfigManager sysConfigManager;
+
+ @Override
+ public void uploadSecureReportYesterday() {
+ if (!sysConfigManager.getSysConfig().getBooleanValue("enable_hanyin_uploading")) {
+ return;
+ }
+ logger.debug("start uploading secure report");
+ uploadSecureReport(DateTime.now().plusDays(-1).withMillisOfDay(0).toDate());
+ }
+
+ @Override
+ public void uploadSecureReport(Date date) {
+ TradeSecureFile file = getSecureReportFile(date);
+ sftpUpload(file);
+ }
+
+ private void sftpUpload(TradeSecureFile file) {
+ Session session = null;
+ ChannelSftp command = null;
+ try {
+ session = initSFTPConnection();
+ Channel channel = session.openChannel("sftp");
+ channel.connect();
+ command = (ChannelSftp) channel;
+ command.ls("/royalpay");
+ String dir = "/royalpay/" + file.getTransDate().toString("yyyyMMdd");
+ logger.debug("removing dir:{}", dir);
+ command.rmdir(dir);
+ logger.debug("rmdir success");
+ logger.debug("mk dir:{}", dir);
+ command.mkdir(dir);
+ String dest = dir + file.filename();
+ logger.debug("rmdir success, start uploading file:{}", dest);
+ command.put(new ByteArrayInputStream(file.content()), dest);
+ } catch (IOException | JSchException | SftpException e) {
+ throw new ChannelNetworkException("Upload Secure file failed", e);
+ } finally {
+ if (command != null && command.isConnected()) {
+ command.exit();
+ session.disconnect();
+ }
+ }
+ }
+
+ private Session initSFTPConnection() throws IOException {
+ FileSystemOptions fso = new FileSystemOptions();
+ SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fso, "no");
+ return SftpClientFactory.createConnection(sftpHost, sftpPort,
+ sftpUsername.toCharArray(), sftpPwd.toCharArray(), fso);
+ }
+
+ @Override
+ public TradeSecureFile getSecureReportFile(Date date) {
+ TradeSecureFile file = new TradeSecureFile(pid, date);
+ Date from = file.getFromTime();
+ Date to = file.getToTime();
+ List credits = transactionMapper.listCreditTransactionsForSecure(from, to);
+ file.addTransactions(credits);
+ List debits = transactionMapper.listDebitTransactionsForSecure(from, to);
+ file.addTransactions(debits);
+ return file;
+ }
+}
diff --git a/src/main/java/au/com/royalpay/payment/manage/task/SecureTask.java b/src/main/java/au/com/royalpay/payment/manage/task/SecureTask.java
new file mode 100644
index 000000000..b54a6c2ed
--- /dev/null
+++ b/src/main/java/au/com/royalpay/payment/manage/task/SecureTask.java
@@ -0,0 +1,26 @@
+package au.com.royalpay.payment.manage.task;
+
+import au.com.royalpay.payment.manage.system.core.TradeSecureService;
+import au.com.royalpay.payment.tools.scheduler.SynchronizedScheduler;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * Create by yixian at 2019-01-08 3:13
+ */
+@Component
+@ConditionalOnProperty(value = "app.run-tasks", havingValue = "true")
+public class SecureTask {
+ @Resource
+ private SynchronizedScheduler synchronizedScheduler;
+ @Resource
+ private TradeSecureService tradeSecureService;
+
+ @Scheduled(cron = "0 0 3 * * *")
+ public void pushSecureFile(){
+ synchronizedScheduler.executeProcess("task:secure_file_uploading",600_000,()->tradeSecureService.uploadSecureReportYesterday());
+ }
+}
diff --git a/src/main/java/au/com/royalpay/payment/manage/task/UpdatePartnerPasswordTask.java b/src/main/java/au/com/royalpay/payment/manage/task/UpdatePartnerPasswordTask.java
index c063e1e95..e60fcc7f6 100644
--- a/src/main/java/au/com/royalpay/payment/manage/task/UpdatePartnerPasswordTask.java
+++ b/src/main/java/au/com/royalpay/payment/manage/task/UpdatePartnerPasswordTask.java
@@ -2,7 +2,12 @@ package au.com.royalpay.payment.manage.task;
import au.com.royalpay.payment.manage.mappers.system.ManagerMapper;
import au.com.royalpay.payment.manage.merchants.core.ClientManager;
+import au.com.royalpay.payment.tools.env.SysConfigManager;
+import au.com.royalpay.payment.tools.env.mappers.SysConfigMapper;
+import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.scheduler.SynchronizedScheduler;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -23,21 +28,26 @@ public class UpdatePartnerPasswordTask {
@Resource
private SynchronizedScheduler synchronizedScheduler;
@Resource
- private ManagerMapper managerMapper;
+ private SysConfigManager sysConfigManager;
- private final static String EMAIL = "lily.tao@royalpay.com.au,bella.sun@royalpay.com.au,astro.dai@royalpay.com.au,taylor.dang@royalpay.com.au";
+// private final static String EMAIL = "lily.tao@royalpay.com.au,bella.sun@royalpay.com.au,astro.dai@royalpay.com.au,taylor.dang@royalpay.com.au";
@Scheduled(cron = "0 0 9 28 * ?")
public void resetPartnerPassword() {
synchronizedScheduler.executeProcess("manage_task:resetPartnerPassword", 300_000, () -> {
- final List emails = new ArrayList<>();
- List emailList = Arrays.asList(EMAIL.split(","));
- emailList.stream().forEach(email -> {
- if (!emails.contains(email)) {
- emails.add(email);
- }
- });
- clientManager.updateAllPartnerPassword("PINE", emails);
+ //抄送人邮箱
+ JSONObject sysConfig = sysConfigManager.getSysConfig();
+ String ccMail = sysConfig.getString("reset_password.cc_list");
+ //账号白名单
+ String accountWhiteList = sysConfig.getString("reset_password.account_white_list");
+ if (StringUtils.isEmpty(ccMail)) {
+ throw new BadRequestException("抄送人不能为空");
+ }
+ if (accountWhiteList == null) {
+ accountWhiteList = "";
+ }
+ List emailList = Arrays.asList(ccMail.split(","));
+ clientManager.updateAllPartnerPassword("PINE", emailList, accountWhiteList);
});
}
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java
index 48b32e802..1fb0b3185 100644
--- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java
+++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/TradeLogService.java
@@ -50,4 +50,6 @@ public interface TradeLogService {
void fullReleasePreAuthorization(JSONObject account, TradeLogQuery query)throws Exception;
PageList listPreRefundClients(PreRefundQueryBean params);
+
+ void exportSettlementLog(TradeLogQuery query, JSONObject partner, HttpServletResponse response);
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java
index 64eff18d1..a992efea2 100644
--- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java
@@ -28,6 +28,7 @@ import au.com.royalpay.payment.manage.organizations.core.OrgManager;
import au.com.royalpay.payment.manage.tradelog.beans.PreRefundQueryBean;
import au.com.royalpay.payment.manage.tradelog.beans.TradeLogQuery;
import au.com.royalpay.payment.manage.tradelog.core.TradeLogService;
+import au.com.royalpay.payment.tools.defines.TradeType;
import au.com.royalpay.payment.tools.env.PlatformEnvironment;
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
@@ -68,6 +69,8 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@@ -1177,4 +1180,97 @@ public class TradeLogServiceImpl implements TradeLogService {
return transactionMapper.listPreRefundClients(new PageBounds(params.getPage(), params.getLimit()));
}
+ @Override
+ public void exportSettlementLog(TradeLogQuery query, JSONObject partner, HttpServletResponse resp) {
+ int client_id = partner.getIntValue("client_id");
+ String begin = query.getDatefrom() == null ?"":query.getDatefrom();
+ String end = query.getDateto() == null ?"":query.getDateto();
+ String timezone = partner.getJSONObject("client").getString("timezone");
+ JSONObject params = query.toParams(timezone);
+ params.put("client_id", client_id);
+ List clientOrderList = transactionMapper.getClientOrderByTransactionTime(params);
+ List clientOrders = new ArrayList<>(clientOrderList.size());
+ clientOrderList.parallelStream().forEach(p->{
+ clientOrders.add(p.getInteger("clearing_order"));
+ });
+ List settlementLogDetailList = transactionMapper.getSettlementLogDetailList(clientOrders, client_id);
+ OutputStream ous = null;
+ try {
+ JSONObject clearDetailTotal = transactionMapper.getClearDetailTotal(params);
+ resp.setContentType("application/octet-stream;");
+ resp.addHeader("Content-Disposition",
+ "attachment; filename=" + "Merchant_Settlement_Info_" + begin + "_" + end + ".xlsx");
+ ous = resp.getOutputStream();
+ Workbook wb = new XSSFWorkbook();
+ Cell cell = null;
+ Font font = wb.createFont();
+ font.setBoldweight(Font.BOLDWEIGHT_BOLD);
+ font.setFontHeightInPoints((short) 10);
+ CellStyle analysisStyle = wb.createCellStyle();
+ analysisStyle.setFont(font);
+ Sheet sheet = wb.createSheet("Merchant_Settlement_Info_" + begin + "_" + end);
+ int rowNum = 0;
+ Row row = sheet.createRow(rowNum);
+ String[] title = {"order Id", "Client Order Id", "Transaction Time", "Channel", "Gateway", "Exchange Rate", "Transaction Type", "Currency",
+ "Input Amount", "Total Amount", "Clearing Amount", "Sruchange Rate", "Settle Amount", "Remark", "Dev No"};
+ String[] analysis = {"Total Credit", "Total Debit", "Gross Amount", "Total Charge", "Net Amount"};
+ for (int i = 0; i < title.length; i++) {
+ row.createCell(i, Cell.CELL_TYPE_STRING).setCellValue(title[i]);
+ }
+
+ JSONObject device;
+ String clientDevId = "";
+ for (JSONObject settle : settlementLogDetailList) {
+ if (settle.getBigDecimal("clearing_amount").compareTo(BigDecimal.ZERO) == 0) {
+ continue;
+ }
+ row = sheet.createRow(++rowNum);
+ row.createCell(0, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("order_id"));
+ row.createCell(1, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("client_order_id"));
+ row.createCell(2, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("transaction_time"));
+ row.createCell(3, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("channel"));
+ if (settle.getInteger("gateway") != null) {
+ row.createCell(4, Cell.CELL_TYPE_STRING).setCellValue(TradeType.fromGatewayNumber(settle.getIntValue("gateway")).getTradeType());
+ } else {
+ row.createCell(4, Cell.CELL_TYPE_STRING).setCellValue("-");
+ }
+ row.createCell(5, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("exchange_rate").setScale(5, BigDecimal.ROUND_DOWN).toPlainString());
+ row.createCell(6, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("transaction_type"));
+ row.createCell(7, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("transaction_currency"));
+ row.createCell(8, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("display_amount") == null ? ""
+ : settle.getBigDecimal("display_amount").setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
+ row.createCell(9, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("transaction_amount") == null ? ""
+ : settle.getBigDecimal("transaction_amount").setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
+ row.createCell(10, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("clearing_amount") == null ? ""
+ : settle.getBigDecimal("clearing_amount").setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
+ row.createCell(11, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("rate") == null? "": settle.getBigDecimal("rate").toPlainString() + "%");
+ row.createCell(12, Cell.CELL_TYPE_STRING).setCellValue(settle.getBigDecimal("settle_amount") == null ? ""
+ : settle.getBigDecimal("settle_amount").setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
+ row.createCell(13, Cell.CELL_TYPE_STRING).setCellValue(settle.getString("order_detail"));
+ device = clientDeviceMapper.find(settle.getString("dev_id"));
+ if (device != null)
+ clientDevId = device.getString("client_dev_id");
+ row.createCell(14, Cell.CELL_TYPE_STRING).setCellValue(clientDevId);
+ }
+ row = sheet.createRow(++rowNum);
+ for (int i = 0; i < analysis.length; i++) {
+ cell = row.createCell(i, Cell.CELL_TYPE_STRING);
+ cell.setCellStyle(analysisStyle);
+ cell.setCellValue(analysis[i]);
+ }
+ row = sheet.createRow(++rowNum);
+ row.createCell(0, Cell.CELL_TYPE_STRING).setCellValue(clearDetailTotal.getString("total_payment"));
+ row.createCell(1, Cell.CELL_TYPE_STRING).setCellValue(clearDetailTotal.getString("total_refund"));
+ row.createCell(2, Cell.CELL_TYPE_STRING).setCellValue(clearDetailTotal.getString("gross_amount"));
+ row.createCell(3, Cell.CELL_TYPE_STRING).setCellValue(clearDetailTotal.getString("total_charge"));
+ row.createCell(4, Cell.CELL_TYPE_STRING).setCellValue(clearDetailTotal.getString("clearing_amount"));
+
+ wb.write(ous);
+ ous.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ IOUtils.closeQuietly(ous);
+ }
+ }
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java
index 8e8761618..27275b973 100644
--- a/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/web/TradeFlowController.java
@@ -59,5 +59,10 @@ public class TradeFlowController {
return tradeLogService.getClientUnClearedAmount(partner).toString();
}
+ @PartnerMapping(value = "/settlement/log/excel",method = RequestMethod.GET)
+ @ResponseBody
+ public void exportSettlementLog(TradeLogQuery query, @ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject partner, HttpServletResponse response) {
+ tradeLogService.exportSettlementLog(query, partner, response);
+ }
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 5be79cb73..2fb9b46a9 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -133,3 +133,11 @@ settle.abafile.bank.ANZ.apca=514624
settle.abafile.bank.ANZ.bsb=013006
settle.abafile.bank.ANZ.account-no=837022519
settle.abafile.bank.ANZ.account-name=Tunnel Show Pty Ltd
+
+
+# 瀚银Secure
+app.hanyin-secure.pid=ROYALPAY
+app.hanyin-secure.sftp-host=180.168.61.86
+app.hanyin-secure.sftp-port=28480
+app.hanyin-secure.sftp-username=royalpay
+app.hanyin-secure.sftp-pwd=royalpay
\ No newline at end of file
diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialBDConfigMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialBDConfigMapper.xml
index 55dd4eb35..563654312 100644
--- a/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialBDConfigMapper.xml
+++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialBDConfigMapper.xml
@@ -10,10 +10,11 @@
c.city,
c.get_prize,
c.bd_group,
- c.kpi_amount
+ c.kpi_amount,
+ m.is_valid
FROM sys_managers m
LEFT JOIN financial_bd_config c ON c.manager_id = m.manager_id
- WHERE m.role & 4 > 0 AND m.is_valid = 1 AND (m.org_id = 1 OR m.org_id IS NULL)
+ WHERE m.role & 4 > 0 AND (m.org_id = 1 OR m.org_id IS NULL)
]]>
diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml
index 906de6d47..16a367b1b 100644
--- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml
+++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml
@@ -4,13 +4,19 @@
- DELETE t FROM pmt_transactions t
- INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order
- WHERE d.clearing_id = #{clearing_id} AND t.transaction_type = 'Debit' AND t.refund_id IS NULL and t.channel='Settlement'
+ DELETE t
+ FROM pmt_transactions t
+ INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order
+ WHERE d.clearing_id = #{clearing_id}
+ AND t.transaction_type = 'Debit'
+ AND t.refund_id IS NULL
+ and t.channel = 'Settlement'
@@ -461,77 +465,66 @@
= DATE(t.transaction_time)
- AND date(r.active_time) <= DATE(t.transaction_time)
- INNER JOIN sys_bank_accounts a ON a.client_id = t.client_id
- WHERE
- t.transaction_time >= #{from} AND t.transaction_time < #{to} AND t.channel != 'Settlement'
+ INNER JOIN sys_client_config c ON t.client_id = c.client_id AND c.skip_clearing = 0
+ LEFT JOIN sys_client_rates r ON r.client_id = t.client_id
+ AND date(r.expiry_time) >= DATE(t.transaction_time)
+ AND date(r.active_time) <= DATE(t.transaction_time)
+ INNER JOIN sys_bank_accounts a ON a.client_id = t.client_id
+ WHERE t.transaction_time >= #{from}
+ AND t.transaction_time < #{to}
+ AND t.channel != 'Settlement'
GROUP BY t.client_id) temp
WHERE clearing_amount != 0
-
-
]]>
= DATE(t.transaction_time)
- AND date(r.active_time) <= DATE(t.transaction_time)
- INNER JOIN sys_bank_accounts a ON a.client_id = t.client_id
- WHERE
- t.transaction_time >= #{from} AND t.transaction_time < #{to} AND t.channel != 'Settlement'
- GROUP BY t.client_id) temp
+ FROM (SELECT round(sum(if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount)) *
+ (100 - ifnull(min(r.rate_value), 1.6))) / 100 clearing_amount
+ FROM pmt_transactions t
+ INNER JOIN sys_client_config c ON t.client_id = c.client_id AND c.skip_clearing = 0
+ LEFT JOIN sys_client_rates r ON r.client_id = t.client_id
+ AND date(r.expiry_time) >= DATE(t.transaction_time)
+ AND date(r.active_time) <= DATE(t.transaction_time)
+ INNER JOIN sys_bank_accounts a ON a.client_id = t.client_id
+ WHERE t.transaction_time >= #{from}
+ AND t.transaction_time < #{to}
+ AND t.channel != 'Settlement'
+ GROUP BY t.client_id) temp
WHERE temp.clearing_amount != 0
-
-
]]>
= date(#{begin}) AND
- date(transaction_time) <= date(#{end})
-
-
+ WHERE client_id = #{client_id}
+ AND date(transaction_time) >= date(#{begin})
+ AND date(transaction_time) <= date(#{end})
]]>
- SELECT
- t.*,
- cl.client_moniker
+ SELECT t.*,
+ cl.client_moniker
FROM pmt_transactions t
- INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order
- INNER JOIN log_clearing c ON c.clearing_id = d.clearing_id AND c.clearing_id = #{clear_id}
- INNER JOIN sys_clients cl ON cl.client_id = t.client_id
- inner join sys_client_config cc on cc.clear_id = cl.client_id and cc.is_valid = 1
- WHERE t.transaction_type = 'Credit' OR t.refund_id IS NOT NULL
+ INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order
+ INNER JOIN log_clearing c ON c.clearing_id = d.clearing_id AND c.clearing_id = #{clear_id}
+ INNER JOIN sys_clients cl ON cl.client_id = t.client_id
+ inner join sys_client_config cc on cc.clear_id = cl.client_id and cc.is_valid = 1
+ WHERE t.transaction_type = 'Credit'
+ OR t.refund_id IS NOT NULL
ORDER BY t.order_id ASC
@@ -560,259 +553,267 @@
temp.create_time)
- and d.bd_id=#{bd_id}
-
-
+ select sum(if(temp.transaction_type = 'Credit', temp.clearing_amount * d.proportion,
+ -temp.clearing_amount * d.proportion))
+ total
+ FROM (SELECT l.client_id,l.clearing_amount,l.refund_id,l.transaction_type,o.create_time
+ FROM pmt_transactions l
+ INNER JOIN pmt_orders o
+ ON o.order_id = l.order_id
+ and year(o.create_time) = #{year} AND month(o.create_time) = #{month}
+ where (l.transaction_type = 'Credit' or l.refund_id is not null)
+ ) temp
+ INNER JOIN sys_client_bd d ON temp.client_id = d.client_id AND d.start_date <= temp.create_time and
+ d.is_valid = '1'
+ AND (d.end_date is null or d.end_date > temp.create_time)
+ and d.bd_id = #{bd_id}
]]>
- SELECT
- ifnull(sum(t.total),0)
- total
+ SELECT ifnull(sum(t.total), 0)
+ total
FROM statistics_customer_order t
- INNER JOIN sys_clients c ON c.client_id = t.client_id AND c.org_id = 1
- WHERE year(t.date) = #{year} AND month(t.date) = #{month}
- and t.client_id!=0
- and t.client_id in
- (SELECT b.client_id FROM sys_client_bd b
- INNER JOIN financial_bd_config c ON c.manager_id=b.bd_id
- where b.is_valid=1 and b.start_date<=now() and (b.end_date is null or b.end_date >= now())
- AND c.bd_group=#{bd_group} or c.manager_id=#{bd_group})
+ INNER JOIN sys_clients c ON c.client_id = t.client_id AND c.org_id = 1
+ WHERE year(t.date) = #{year}
+ AND month(t.date) = #{month}
+ and t.client_id != 0
+ and t.client_id in
+ (SELECT b.client_id
+ FROM sys_client_bd b
+ INNER JOIN financial_bd_config c ON c.manager_id = b.bd_id
+ where b.is_valid = 1 and b.start_date <= now() and (b.end_date is null or b.end_date >= now())
+ AND c.bd_group = #{bd_group}
+ or c.manager_id = #{bd_group})
- SELECT
- ifnull(sum(t.total),0)
- total
+ SELECT ifnull(sum(t.total), 0)
+ total
FROM statistics_customer_order t
- INNER JOIN sys_clients c ON c.client_id = t.client_id AND c.org_id = 1
- WHERE year(t.date) = #{year} AND month(t.date) = #{month}
- and t.client_id!=0
- and t.client_id in
- (SELECT b.client_id FROM sys_client_bd b
- INNER JOIN financial_bd_config c ON c.manager_id=b.bd_id
- where b.is_valid=1 and b.start_date<=now() and (b.end_date is null or b.end_date >= now())
- AND c.city='Sydney')
+ INNER JOIN sys_clients c ON c.client_id = t.client_id AND c.org_id = 1
+ WHERE year(t.date) = #{year}
+ AND month(t.date) = #{month}
+ and t.client_id != 0
+ and t.client_id in
+ (SELECT b.client_id
+ FROM sys_client_bd b
+ INNER JOIN financial_bd_config c ON c.manager_id = b.bd_id
+ where b.is_valid = 1
+ and b.start_date <= now()
+ and (b.end_date is null or b.end_date >= now())
+ AND c.city = 'Sydney')
= t.transaction_time AND
- r.rate_name = 'Wechat'), 1) wechat_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'Alipay'), 1) alipay_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'Bestpay'), 1) bestpay_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'jd'), 1) jd_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'AlipayOnline'), 2.0) AlipayOnline_rate_value
+ SELECT sum(if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount)) * b.proportion
+ total,
+ t.client_id,
+ m.org_id,
+ c.approve_time client_create_time,
+ c.source client_source,
+ date(t.transaction_time) trade_date,
+ t.channel channel,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'Wechat'), 1) wechat_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'Alipay'), 1) alipay_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'Bestpay'), 1) bestpay_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'jd'), 1) jd_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'AlipayOnline'), 2.0) AlipayOnline_rate_value
FROM pmt_transactions t
- INNER JOIN sys_clients c ON c.client_id = t.client_id
- INNER JOIN sys_client_bd b ON b.client_id = c.client_id AND b.start_date <= t.transaction_time
- AND (b.end_date IS NULL OR b.end_date >= t.transaction_time) AND
- b.is_valid = 1
- INNER JOIN sys_managers m ON m.manager_id = b.bd_id
- INNER JOIN sys_org so
- ON m.org_id = so.org_id AND so.is_valid = 1 AND so.type = 0 AND so.citypartner = 1 AND so.commission = 1
- WHERE year(t.transaction_time) = #{year} AND month(t.transaction_time) = #{month} AND t.channel != 'Settlement'
+ INNER JOIN sys_clients c ON c.client_id = t.client_id
+ INNER JOIN sys_client_bd b ON b.client_id = c.client_id AND b.start_date <= t.transaction_time
+ AND (b.end_date IS NULL OR b.end_date >= t.transaction_time) AND
+ b.is_valid = 1
+ INNER JOIN sys_managers m ON m.manager_id = b.bd_id
+ INNER JOIN sys_org so
+ ON m.org_id = so.org_id AND so.is_valid = 1 AND so.type = 0 AND so.citypartner = 1 AND
+ so.commission = 1
+ WHERE year(t.transaction_time) = #{year}
+ AND month(t.transaction_time) = #{month}
+ AND t.channel != 'Settlement'
GROUP BY t.client_id, trade_date, channel
ORDER BY c.org_id ASC, t.client_id ASC, trade_date ASC
-
-
]]>
+ ]]>
+ ]]>
- SELECT
- sum(if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount))
- total,
- t.client_id client_id,
- so.org_id org_id,
- c.source client_source,
- date(t.transaction_time) trade_date,
- ifnull(so.rate_value, 1) rate_value
+ SELECT sum(if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount))
+ total,
+ t.client_id client_id,
+ so.org_id org_id,
+ c.source client_source,
+ date(t.transaction_time) trade_date,
+ ifnull(so.rate_value, 1) rate_value
FROM pmt_transactions t
- INNER JOIN sys_clients c ON c.client_id = t.client_id
- inner join sys_client_config cc on cc.client_id = c.client_id
- INNER JOIN sys_org so
- ON c.referrer_id = so.org_id AND so.is_valid = 1 AND so.type = 1 AND so.commission = 1
- WHERE year(t.transaction_time) = #{year} AND month(t.transaction_time) = #{month} AND t.channel != 'Settlement'
+ INNER JOIN sys_clients c ON c.client_id = t.client_id
+ inner join sys_client_config cc on cc.client_id = c.client_id
+ INNER JOIN sys_org so
+ ON c.referrer_id = so.org_id AND so.is_valid = 1 AND so.type = 1 AND so.commission = 1
+ WHERE year(t.transaction_time) = #{year}
+ AND month(t.transaction_time) = #{month}
+ AND t.channel != 'Settlement'
GROUP BY so.org_id, trade_date, t.client_id
ORDER BY c.org_id ASC, t.client_id ASC, trade_date ASC
= t.transaction_time AND
- r.rate_name = 'Wechat'), 1) wechat_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'Alipay'), 1) alipay_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'Bestpay'), 1) bestpay_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'jd'), 1) jd_rate_value,
- ifnull((SELECT min(r.rate_value)
- FROM sys_client_rates r
- WHERE r.client_id = t.client_id AND r.active_time <= t.transaction_time AND
- r.expiry_time >= t.transaction_time AND
- r.rate_name = 'AlipayOnline'), 2.0) AlipayOnline_rate_value
+ SELECT sum(if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount))
+ total,
+ t.client_id client_id,
+ c.approve_time client_create_time,
+ c.source client_source,
+ date(t.transaction_time) trade_date,
+ t.channel channel,
+ ifnull(so.rate_value, 1) rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'Wechat'), 1) wechat_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'Alipay'), 1) alipay_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'Bestpay'), 1) bestpay_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'jd'), 1) jd_rate_value,
+ ifnull((SELECT min(r.rate_value)
+ FROM sys_client_rates r
+ WHERE r.client_id = t.client_id
+ AND r.active_time <= t.transaction_time
+ AND r.expiry_time >= t.transaction_time
+ AND r.rate_name = 'AlipayOnline'), 2.0) AlipayOnline_rate_value
FROM pmt_transactions t
- INNER JOIN sys_clients c ON c.client_id = t.client_id
- INNER JOIN sys_org so
- ON c.org_id = so.org_id AND so.is_valid = 1 AND so.type = 0 AND so.parent_org_id = #{parent_org_id}
- WHERE year(t.transaction_time) = #{year} AND month(t.transaction_time) = #{month} AND t.channel != 'Settlement'
+ INNER JOIN sys_clients c ON c.client_id = t.client_id
+ INNER JOIN sys_org so
+ ON c.org_id = so.org_id AND so.is_valid = 1 AND so.type = 0 AND so.parent_org_id = #{parent_org_id}
+ WHERE year(t.transaction_time) = #{year}
+ AND month(t.transaction_time) = #{month}
+ AND t.channel != 'Settlement'
GROUP BY t.client_id, trade_date, channel
ORDER BY c.org_id ASC, t.client_id ASC, trade_date ASC
-
-
]]>
1
- ORDER BY
- subval DESC) t
-
-
+ FROM (SELECT c.client_moniker,
+ a.client_id,
+ a.total_credit,
+ a.total_debit,
+ a.total_debit - a.total_credit subval
+ FROM (
+ SELECT sum(
+ IF(
+ t.transaction_type = 'Credit',
+ t.clearing_amount,
+ 0
+ )
+ ) total_credit,
+ sum(
+ IF(
+ t.transaction_type = 'Debit',
+ t.clearing_amount,
+ 0
+ )
+ ) total_debit,
+ t.client_id
+ FROM pmt_transactions t
+ WHERE t.clearing_status = 1
+ AND (date(t.clearing_time) <= date(#{end}) OR t.clearing_time IS NULL)
+ GROUP BY t.client_id
+ ) a
+ INNER JOIN sys_clients c ON c.client_id = a.client_id
+ AND c.client_id != 9
+ AND (
+ c.parent_client_id != 9
+ OR c.parent_client_id IS NULL
+ )
+ WHERE abs(total_credit - total_debit) > 1
+ ORDER BY subval DESC) t
]]>
@@ -866,37 +867,35 @@ select sum(if(temp.transaction_type='Credit',temp.clearing_amount*d.proportion,
SELECT t.*
FROM pmt_transactions t
- WHERE t.channel = 'Settlement' AND t.clearing_order = #{clearing_order}
+ WHERE t.channel = 'Settlement'
+ AND t.clearing_order = #{clearing_order}
SELECT ifnull(sum(t.clearing_amount), 0)
FROM pmt_transactions t
- INNER JOIN pmt_orders o
- ON o.order_id = t.order_id AND o.transaction_date BETWEEN #{startDate} AND #{endDate} AND
- o.customer_id = #{customer_id}
- WHERE t.system_generate = 0 AND t.transaction_type = 'Credit'
+ INNER JOIN pmt_orders o
+ ON o.order_id = t.order_id AND o.transaction_date BETWEEN #{startDate} AND #{endDate} AND
+ o.customer_id = #{customer_id}
+ WHERE t.system_generate = 0
+ AND t.transaction_type = 'Credit'
@@ -951,41 +950,152 @@ select sum(if(temp.transaction_type='Credit',temp.clearing_amount*d.proportion,
group by client_id
- SELECT
- date(transaction_time) trans_date,
- sum(if(transaction_type = 'Credit', clearing_amount, -clearing_amount)) clearing_amount,
- sum(if(transaction_type = 'Credit', settle_amount, -settle_amount)) settle_amount
+ SELECT date(transaction_time) trans_date,
+ sum(if(transaction_type = 'Credit', clearing_amount, -clearing_amount)) clearing_amount,
+ sum(if(transaction_type = 'Credit', settle_amount, -settle_amount)) settle_amount
FROM pmt_transactions t
- WHERE t.client_id = #{client_id} AND t.clearing_status = 0 AND date(t.transaction_time)<=date(#{max_settle_to})
+ WHERE t.client_id = #{client_id}
+ AND t.clearing_status = 0
+ AND date(t.transaction_time) <= date(#{max_settle_to})
GROUP BY trans_date
ORDER BY trans_date DESC
- SELECT sum(clearing_amount) clear_amount,
- sum(channel_surcharge) charge_amount ,
+ SELECT sum(clearing_amount) clear_amount,
+ sum(channel_surcharge) charge_amount,
transaction_type
- FROM pmt_transactions where channel='hf'
- AND transaction_time >= #{datefrom}
- AND transaction_time <= #{dateto}
- GROUP BY transaction_type
+ FROM pmt_transactions
+ where channel = 'hf'
+ AND transaction_time >= #{datefrom}
+ AND transaction_time <= #{dateto}
+ GROUP BY transaction_type
- select sum(if(transaction_type='Credit',t.clearing_amount,0)) gross_payment,
- sum(if(transaction_type='Credit',1,0)) pay_count,
- sum(if(transaction_type='Debit',t.clearing_amount,0)) total_refund,
- sum(if(transaction_type='Debit',1,0)) refund_count,
- min(t.transaction_time) period_start,
- max(t.transaction_time) period_end,
- cd.bsb_no,
- cd.account_no,
- cd.account_name
+ select sum(if(transaction_type = 'Credit', t.clearing_amount, 0)) gross_payment,
+ sum(if(transaction_type = 'Credit', 1, 0)) pay_count,
+ sum(if(transaction_type = 'Debit', t.clearing_amount, 0)) total_refund,
+ sum(if(transaction_type = 'Debit', 1, 0)) refund_count,
+ min(t.transaction_time) period_start,
+ max(t.transaction_time) period_end,
+ cd.bsb_no,
+ cd.account_no,
+ cd.account_name
from pmt_transactions t
- inner join log_clearing_detail cd on cd.clear_detail_id=t.clearing_order
- where t.client_id=#{clientId} and t.system_generate=0 and t.clearing_status=1 and t.transaction_time between #{from} and #{to}
- and t.channel!='Settlement'
+ inner join log_clearing_detail cd on cd.clear_detail_id = t.clearing_order
+ where t.client_id = #{clientId}
+ and t.system_generate = 0
+ and t.clearing_status = 1
+ and t.transaction_time between #{from} and #{to}
+ and t.channel != 'Settlement'
group by cd.bsb_no,cd.account_no
order by period_start
+
+ select c.client_moniker,
+ o.order_id,
+ o.gateway,
+ t.transaction_amount,
+ t.transaction_currency,
+ t.order_channel,
+ t.clearing_amount,
+ t.exchange_rate,
+ t.transaction_time,
+ t.transaction_type
+ from pmt_transactions t
+ inner join pmt_orders o on o.order_id = t.order_id
+ inner join sys_clients c on c.client_id = t.client_id
+ where t.transaction_time between #{from} and #{to}
+ and t.channel not in ('Settlement', 'System')
+ and t.system_generate = 0
+ and t.transaction_type = 'Credit'
+
+
+ select c.client_moniker,
+ o.order_id,
+ o.gateway,
+ r.out_refund_id,
+ t.transaction_amount,
+ t.transaction_currency,
+ t.order_channel,
+ t.clearing_amount,
+ t.exchange_rate,
+ t.transaction_time,
+ t.transaction_type
+ from pmt_transactions t
+ inner join pmt_orders o on o.order_id = t.order_id
+ inner join sys_clients c on c.client_id = t.client_id
+ inner join pmt_refunds r on r.refund_id = t.refund_id
+ where t.transaction_time between #{from} and #{to}
+ and t.channel not in ('Settlement', 'System')
+ and t.system_generate = 0
+ and t.transaction_type = 'Debit'
+
+
+
+ and t.transaction_time >= #{from}
+ and t.transaction_time < #{to}
+ GROUP BY
+ t.order_id) temp
+
+
+
+
+
+ AND t.clearing_order IN
+
+ #{clearing_order}
+
+
+ ORDER BY transaction_time DESC
+
+
+
+
+ and t.transaction_time >= #{from}
+ and t.transaction_time < #{to}
+
diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml
index 72c1f9331..f4e4a3aa8 100644
--- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml
+++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml
@@ -241,7 +241,7 @@
#{org_id}
and c.referrer_id=#{referrer_id}
- and c.is_valid=1
+ and c.is_valid=0
diff --git a/src/main/resources/templates/mail/risk_upload_mail.html b/src/main/resources/templates/mail/risk_upload_mail.html
index 2c068115d..155293c49 100644
--- a/src/main/resources/templates/mail/risk_upload_mail.html
+++ b/src/main/resources/templates/mail/risk_upload_mail.html
@@ -9,7 +9,8 @@
请于
- 下午5:00(悉尼时间)前提供腾讯被查商户
+ 下午5:00(悉尼时间)前
+ 提供腾讯支付宝被查商户
()的以下材料:
diff --git a/src/main/ui/merchant_application.html b/src/main/ui/merchant_application.html
index 7db72db3a..e932ae63a 100644
--- a/src/main/ui/merchant_application.html
+++ b/src/main/ui/merchant_application.html
@@ -349,7 +349,7 @@
+ placeholder="Merchant Name" required maxlength="15">
-
{{order.customer_payment_amount|currency:order.currency+' '}} Paid
+ {{order.display_amount|currency:order.currency+' '}} Paid
Success!
Pay Time:{{order.pay_time_local}}
diff --git a/src/main/ui/static/config/bdprize/templates/bd_commission_config_dialog.html b/src/main/ui/static/config/bdprize/templates/bd_commission_config_dialog.html
index 4a5a96951..7e507227d 100644
--- a/src/main/ui/static/config/bdprize/templates/bd_commission_config_dialog.html
+++ b/src/main/ui/static/config/bdprize/templates/bd_commission_config_dialog.html
@@ -124,7 +124,8 @@
- |
+ {{bd.display_name}} |
+ {{bd.display_name}} (Left Company) |
|
diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js
index 64372f1d9..0807c0f7a 100644
--- a/src/main/ui/static/payment/partner/partner-manage.js
+++ b/src/main/ui/static/payment/partner/partner-manage.js
@@ -647,7 +647,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
$scope.showFile();
$scope.passClient = function () {
if(!$scope.partner.wechat_institution_merchant_id){
- commonDialog.alert({title: 'info', content: 'Wechat Institution Merchant Id not Refresh', type: 'info'});
+ commonDialog.alert({title: 'info', content: 'HF Institution Merchant Id not Refresh', type: 'info'});
return;
}
if ($scope.partner.enable_hf) {
@@ -1297,7 +1297,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
}]);
app.controller('partnerPaymentInfoCtrl', ['$scope', '$http', '$state', 'commonDialog','$uibModal', '$sce', function ($scope, $http, $state, commonDialog,$uibModal, $sce) {
- $scope.refresh = false;
$scope.copyHfLink = function() {
var e=document.getElementById("cpbt");
e.select();
@@ -1452,23 +1451,26 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
};
$scope.ctrl = {};
$scope.saveSubMerchantId = function () {
- if(!$scope.refresh){
- commonDialog.alert({title: 'info', content: 'Wechat Institution Merchant Id not Refresh', type: 'info'});
- return;
- }
-
$http.put('/sys/partners/' + $scope.partner.client_moniker + '/payment_config', {sub_merchant_id: $scope.paymentInfo.sub_merchant_id}).then(function (resp) {
+ $scope.refreshInstitutionAfterSaveMerchantId();
+ }, function (resp) {
+ commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'})
+ });
+ };
+
+ $scope.refreshInstitutionAfterSaveMerchantId = function () {
+ $http.put('/sys/partners/' + $scope.partner.client_moniker + '/wechat_institution_merchant_id', {wechat_institution_merchant_id: $scope.paymentInfo.wechat_institution_merchant_id}).then(function (resp) {
commonDialog.alert({
title: 'Success',
- content: 'Modify Wechat Sub Merchant ID successfully',
+ content: 'Modify Wechat Sub Merchant ID And Refresh Wechat Institution Merchant Id successfully',
type: 'success'
});
- $scope.refresh = false;
$scope.loadPartnerPaymentInfo();
}, function (resp) {
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'})
});
};
+
$scope.refreshWechatInstitutionMerchantId = function () {
$http.put('/sys/partners/' + $scope.partner.client_moniker + '/wechat_institution_merchant_id', {wechat_institution_merchant_id: $scope.paymentInfo.wechat_institution_merchant_id}).then(function (resp) {
commonDialog.alert({
@@ -1476,7 +1478,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
content: 'Refresh Wechat Institution Merchant Id successfully',
type: 'success'
});
- $scope.refresh = true;
$scope.loadPartnerPaymentInfo();
}, function (resp) {
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'})
@@ -3401,6 +3402,22 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
$scope.loadSubMerchantInfos();
})
};
+ $scope.updateYeepaySubMerchantId = function (sub_merchant_id) {
+ $uibModal.open({
+ templateUrl: '/static/payment/partner/templates/update_yeepay_sub_merchant_id.html',
+ controller: 'updateYeepaySubMerchantIdCtrl',
+ resolve: {
+ subMerchantInfo: function () {
+ return $scope.partner;
+ },
+ subMerchantId: function () {
+ return sub_merchant_id;
+ }
+ }
+ }).result.then(function () {
+ $scope.loadSubMerchantInfos();
+ })
+ };
$scope.loadSubMerchantInfos();
}]);
app.controller('applyWxSubMerchantIdCtrl', ['$scope', '$http', '$uibModal', '$state', 'subMerchantInfo', '$filter', 'merchantIds', 'commonDialog', function ($scope, $http, $uibModal, $state, subMerchantInfo, $filter, merchantIds, commonDialog) {
@@ -3504,58 +3521,64 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
$scope.subMerchantInfo = angular.copy(subMerchantInfo);
var vouchers={};
- var merchantId = '';
+ $scope.directors={};
+ $scope.executives={};
+ $scope.industry = '';
+ $scope.business_content = '';
+ var merchantInfo = {};
+ var merchantId = '';
- $scope.uploadLegalIDcardFront = function (file) {
- if (file != null) {
- if (file.size > 3 * 1024 * 1024) {
- commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
- } else {
- $scope.legalIDcardFrontProgress = {value: 0};
- Upload.upload({
- url: '/attachment/yeepayFiles',
- data: {file: file}
- }).then(function (resp) {
- delete $scope.legalIDcardFrontProgress;
- $scope.legalIDcardFront = resp.data.path;
- vouchers['legalIDcardFront'] = resp.data.path;
- merchantId = resp.data.merchantId;
- commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
- }, function (resp) {
- delete $scope.legalIDcardFrontProgress;
- commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
- }, function (evt) {
- $scope.legalIDcardFrontProgress.value = parseInt(100 * evt.loaded / evt.total);
- })
- }
- }
- };
- $scope.uploadLegalIDcardBack = function (file) {
- if (file != null) {
- if (file.size > 3 * 1024 * 1024) {
- commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
- } else {
- $scope.legalIDcardBackProgress = {value: 0};
- Upload.upload({
- url: '/attachment/yeepayFiles',
- data: {file: file}
- }).then(function (resp) {
- delete $scope.legalIDcardBackProgress;
- $scope.legalIDcardBack = resp.data.path;
- vouchers['legalIDcardBack'] = resp.data.path;
- merchantId = resp.data.merchantId;
- commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
- }, function (resp) {
- delete $scope.legalIDcardBackProgress;
- commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
- }, function (evt) {
- $scope.legalIDcardBackProgress.value = parseInt(100 * evt.loaded / evt.total);
- })
- }
- }
- };
+ // $scope.uploadLegalIDcardFront = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.legalIDcardFrontProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.legalIDcardFrontProgress;
+ // $scope.legalIDcardFront = resp.data.path;
+ // vouchers['legalIDcardFront'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.legalIDcardFrontProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.legalIDcardFrontProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+ //
+ // $scope.uploadLegalIDcardBack = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.legalIDcardBackProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.legalIDcardBackProgress;
+ // $scope.legalIDcardBack = resp.data.path;
+ // vouchers['legalIDcardBack'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.legalIDcardBackProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.legalIDcardBackProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
$scope.uploadBusinessLicence = function (file) {
if (file != null) {
@@ -3569,7 +3592,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}).then(function (resp) {
delete $scope.businessLicenceProgress;
$scope.businessLicence = resp.data.path;
- vouchers['businessLicence'] = resp.data.path;
+ merchantInfo['business_licence'] = resp.data.path;
merchantId = resp.data.merchantId;
commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
}, function (resp) {
@@ -3582,133 +3605,492 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
};
- $scope.uploadTaxLevel = function (file) {
+ // $scope.uploadTaxLevel = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.taxLevelProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.taxLevelProgress;
+ // $scope.taxLevel = resp.data.path;
+ // vouchers['taxLevel'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.taxLevelProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.taxLevelProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ // $scope.uploadBankAccountOpen = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.bankAccountOpenProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.bankAccountOpenProgress;
+ // $scope.bankAccountOpen = resp.data.path;
+ // vouchers['bankAccountOpen'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.bankAccountOpenProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.bankAccountOpenProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ // $scope.uploadOrgCode = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.orgCodeProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.orgCodeProgress;
+ // $scope.orgCode = resp.data.path;
+ // vouchers['orgCode'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.orgCodeProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.orgCodeProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+ //
+ // $scope.uploadNonStanProtocol = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.nonStanProtocolProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.nonStanProtocolProgress;
+ // $scope.nonStanProtocol = resp.data.path;
+ // vouchers['nonStanProtocol'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.nonStanProtocolProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.nonStanProtocolProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+ //
+ // $scope.uploadZipPath = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.zipPathProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.zipPathProgress;
+ // $scope.zipPath = resp.data.path;
+ // vouchers['zipPath'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.zipPathProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.zipPathProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ $scope.uploadDirectorPassport = function (file) {
if (file != null) {
if (file.size > 3 * 1024 * 1024) {
commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
} else {
- $scope.taxLevelProgress = {value: 0};
+ $scope.directorPassportProgress = {value: 0};
Upload.upload({
url: '/attachment/yeepayFiles',
data: {file: file}
}).then(function (resp) {
- delete $scope.taxLevelProgress;
- $scope.taxLevel = resp.data.path;
- vouchers['taxLevel'] = resp.data.path;
+ delete $scope.directorPassportProgress;
+ $scope.directorPassport = resp.data.path;
+ $scope.directors.filePath = resp.data.path;
merchantId = resp.data.merchantId;
commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
}, function (resp) {
- delete $scope.taxLevelProgress;
+ delete $scope.directorPassportProgress;
commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
}, function (evt) {
- $scope.taxLevelProgress.value = parseInt(100 * evt.loaded / evt.total);
+ $scope.directorPassportProgress.value = parseInt(100 * evt.loaded / evt.total);
})
}
}
};
- $scope.uploadBankAccountOpen = function (file) {
+ $scope.uploadExecutivePassport = function (file) {
if (file != null) {
if (file.size > 3 * 1024 * 1024) {
commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
} else {
- $scope.bankAccountOpenProgress = {value: 0};
+ $scope.executivePassportProgress = {value: 0};
Upload.upload({
url: '/attachment/yeepayFiles',
data: {file: file}
}).then(function (resp) {
- delete $scope.bankAccountOpenProgress;
- $scope.bankAccountOpen = resp.data.path;
- vouchers['bankAccountOpen'] = resp.data.path;
+ delete $scope.executivePassportProgress;
+ $scope.executivePassport = resp.data.path;
+ $scope.executives.filePath = resp.data.path;
merchantId = resp.data.merchantId;
commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
}, function (resp) {
- delete $scope.bankAccountOpenProgress;
+ delete $scope.executivePassportProgress;
commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
}, function (evt) {
- $scope.bankAccountOpenProgress.value = parseInt(100 * evt.loaded / evt.total);
+ $scope.executivePassportProgress.value = parseInt(100 * evt.loaded / evt.total);
})
}
}
};
- $scope.uploadOrgCode = function (file) {
+ $scope.saveYeepayApply = function (form) {
+ $scope.errmsg = null;
+ if (form.$invalid) {
+ angular.forEach(form, function (item, key) {
+ if (key.indexOf('$') < 0) {
+ item.$dirty = true;
+ }
+ });
+ return;
+ }
+ // angular.forEach(form, function (item, key) {
+ // if(item !=null) {
+ // if(item.$name !=null) {
+ // merchantInfo[key] = item.$modelValue;
+ // }
+ // }
+ // });
+ merchantInfo['company_website'] = $scope.subMerchantInfo.company_website;
+ merchantInfo['abn'] = $scope.subMerchantInfo.abn;
+ merchantInfo['executives'] = $scope.executives;
+ merchantInfo['directors'] = $scope.directors;
+ merchantInfo['business_content'] = $scope.business_content;
+ merchantInfo['industry'] = $scope.industry;
+ merchantInfo['merchantId'] = merchantId;
+ $http.post('/sys/partners/' + $scope.subMerchantInfo.client_moniker + '/registYeepaySubMerchantId', merchantInfo).then(function (resp) {
+ $scope.apply_sub_merchant_id = resp.data;
+ $scope.$close();
+ if (subMerchantInfo.yeepay_sub_merchant_id != null) {
+ commonDialog.alert({
+ title: 'Success',
+ content: 'Modify Yeepay Sub Merchant ID successfully',
+ type: 'success'
+ });
+ $state.reload();
+ }
+ }, function (resp) {
+ commonDialog.alert({
+ title: 'Error',
+ content: resp.data.message,
+ type: 'error'
+ });
+ })
+ }
+ }]);
+
+ app.controller('updateYeepaySubMerchantIdCtrl', ['$scope', '$http', '$uibModal', '$state','subMerchantInfo','yeepayIndustryMap','yeepayBusinessContentMap','$filter', 'commonDialog','Upload','subMerchantId', function ($scope, $http, $uibModal, $state,subMerchantInfo,yeepayIndustryMap,yeepayBusinessContentMap,$filter, commonDialog,Upload,subMerchantId) {
+ $scope.yeepay_industries = yeepayIndustryMap.configs();
+ $scope.yeepay_business_contents = yeepayBusinessContentMap.configs();
+ $scope.subMerchantInfo = angular.copy(subMerchantInfo);
+ var vouchers={};
+
+ $scope.directors={};
+ $scope.executives={};
+ $scope.industry = '';
+ $scope.business_content = '';
+ var merchantInfo = {};
+
+ var merchantId = '';
+
+
+ // $scope.uploadLegalIDcardFront = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.legalIDcardFrontProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.legalIDcardFrontProgress;
+ // $scope.legalIDcardFront = resp.data.path;
+ // vouchers['legalIDcardFront'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.legalIDcardFrontProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.legalIDcardFrontProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+ //
+ // $scope.uploadLegalIDcardBack = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.legalIDcardBackProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.legalIDcardBackProgress;
+ // $scope.legalIDcardBack = resp.data.path;
+ // vouchers['legalIDcardBack'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.legalIDcardBackProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.legalIDcardBackProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ $scope.uploadBusinessLicence = function (file) {
if (file != null) {
if (file.size > 3 * 1024 * 1024) {
commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
} else {
- $scope.orgCodeProgress = {value: 0};
+ $scope.businessLicenceProgress = {value: 0};
Upload.upload({
url: '/attachment/yeepayFiles',
data: {file: file}
}).then(function (resp) {
- delete $scope.orgCodeProgress;
- $scope.orgCode = resp.data.path;
- vouchers['orgCode'] = resp.data.path;
+ delete $scope.businessLicenceProgress;
+ $scope.businessLicence = resp.data.path;
+ merchantInfo['business_licence'] = resp.data.path;
merchantId = resp.data.merchantId;
commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
}, function (resp) {
- delete $scope.orgCodeProgress;
+ delete $scope.businessLicenceProgress;
commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
}, function (evt) {
- $scope.orgCodeProgress.value = parseInt(100 * evt.loaded / evt.total);
+ $scope.businessLicenceProgress.value = parseInt(100 * evt.loaded / evt.total);
})
}
}
};
- $scope.uploadNonStanProtocol = function (file) {
+ // $scope.uploadTaxLevel = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.taxLevelProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.taxLevelProgress;
+ // $scope.taxLevel = resp.data.path;
+ // vouchers['taxLevel'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.taxLevelProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.taxLevelProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ // $scope.uploadBankAccountOpen = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.bankAccountOpenProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.bankAccountOpenProgress;
+ // $scope.bankAccountOpen = resp.data.path;
+ // vouchers['bankAccountOpen'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.bankAccountOpenProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.bankAccountOpenProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ // $scope.uploadOrgCode = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.orgCodeProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.orgCodeProgress;
+ // $scope.orgCode = resp.data.path;
+ // vouchers['orgCode'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.orgCodeProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.orgCodeProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+ //
+ // $scope.uploadNonStanProtocol = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.nonStanProtocolProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.nonStanProtocolProgress;
+ // $scope.nonStanProtocol = resp.data.path;
+ // vouchers['nonStanProtocol'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.nonStanProtocolProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.nonStanProtocolProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+ //
+ // $scope.uploadZipPath = function (file) {
+ // if (file != null) {
+ // if (file.size > 3 * 1024 * 1024) {
+ // commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
+ // } else {
+ // $scope.zipPathProgress = {value: 0};
+ // Upload.upload({
+ // url: '/attachment/yeepayFiles',
+ // data: {file: file}
+ // }).then(function (resp) {
+ // delete $scope.zipPathProgress;
+ // $scope.zipPath = resp.data.path;
+ // vouchers['zipPath'] = resp.data.path;
+ // merchantId = resp.data.merchantId;
+ // commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
+ // }, function (resp) {
+ // delete $scope.zipPathProgress;
+ // commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
+ // }, function (evt) {
+ // $scope.zipPathProgress.value = parseInt(100 * evt.loaded / evt.total);
+ // })
+ // }
+ // }
+ // };
+
+ $scope.uploadDirectorPassport = function (file) {
if (file != null) {
if (file.size > 3 * 1024 * 1024) {
commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
} else {
- $scope.nonStanProtocolProgress = {value: 0};
+ $scope.directorPassportProgress = {value: 0};
Upload.upload({
url: '/attachment/yeepayFiles',
data: {file: file}
}).then(function (resp) {
- delete $scope.nonStanProtocolProgress;
- $scope.nonStanProtocol = resp.data.path;
- vouchers['nonStanProtocol'] = resp.data.path;
+ delete $scope.directorPassportProgress;
+ $scope.directorPassport = resp.data.path;
+ $scope.directors.filePath = resp.data.path;
merchantId = resp.data.merchantId;
commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
}, function (resp) {
- delete $scope.nonStanProtocolProgress;
+ delete $scope.directorPassportProgress;
commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
}, function (evt) {
- $scope.nonStanProtocolProgress.value = parseInt(100 * evt.loaded / evt.total);
+ $scope.directorPassportProgress.value = parseInt(100 * evt.loaded / evt.total);
})
}
}
};
- $scope.uploadZipPath = function (file) {
+ $scope.uploadExecutivePassport = function (file) {
if (file != null) {
if (file.size > 3 * 1024 * 1024) {
commonDialog.alert({title: 'Error', content: '文件大小不能超过3MB,请压缩后重试', type: 'error'})
} else {
- $scope.zipPathProgress = {value: 0};
+ $scope.executivePassportProgress = {value: 0};
Upload.upload({
url: '/attachment/yeepayFiles',
data: {file: file}
}).then(function (resp) {
- delete $scope.zipPathProgress;
- $scope.zipPath = resp.data.path;
- vouchers['zipPath'] = resp.data.path;
+ delete $scope.executivePassportProgress;
+ $scope.executivePassport = resp.data.path;
+ $scope.executives.filePath = resp.data.path;
merchantId = resp.data.merchantId;
commonDialog.alert({title: 'Upload Success', content: 'Upload Success', type: 'success'})
}, function (resp) {
- delete $scope.zipPathProgress;
+ delete $scope.executivePassportProgress;
commonDialog.alert({title: 'Upload Failed', content: resp.data.message, type: 'error'})
}, function (evt) {
- $scope.zipPathProgress.value = parseInt(100 * evt.loaded / evt.total);
+ $scope.executivePassportProgress.value = parseInt(100 * evt.loaded / evt.total);
})
}
}
};
- $scope.saveYeepayApply = function (form) {
- var merchantInfo = {};
+ $scope.updateYeepayApply = function (form) {
$scope.errmsg = null;
if (form.$invalid) {
angular.forEach(form, function (item, key) {
@@ -3718,22 +4100,28 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
});
return;
}
- angular.forEach(form, function (item, key) {
- if(item !=null) {
- if(item.$name !=null) {
- merchantInfo[key] = item.$modelValue;
- }
- }
- });
- merchantInfo['vouchers'] = vouchers;
+ // angular.forEach(form, function (item, key) {
+ // if(item !=null) {
+ // if(item.$name !=null) {
+ // merchantInfo[key] = item.$modelValue;
+ // }
+ // }
+ // });
+ merchantInfo['company_website'] = $scope.subMerchantInfo.company_website;
+ merchantInfo['abn'] = $scope.subMerchantInfo.abn;
+ merchantInfo['executives'] = $scope.executives;
+ merchantInfo['subMerchantId'] = angular.copy(subMerchantId);
+ merchantInfo['directors'] = $scope.directors;
+ merchantInfo['business_content'] = $scope.business_content;
+ merchantInfo['industry'] = $scope.industry;
merchantInfo['merchantId'] = merchantId;
- $http.post('/sys/partners/' + $scope.subMerchantInfo.client_moniker + '/registYeepaySubMerchantId', merchantInfo).then(function (resp) {
+ $http.post('/sys/partners/' + $scope.subMerchantInfo.client_moniker + '/updateYeepaySubMerchantId', merchantInfo).then(function (resp) {
$scope.apply_sub_merchant_id = resp.data;
$scope.$close();
if (subMerchantInfo.yeepay_sub_merchant_id != null) {
commonDialog.alert({
title: 'Success',
- content: 'Modify Yeepay Sub Merchant ID successfully',
+ content: 'Update Successfully,Please Wait For Review!',
type: 'success'
});
$state.reload();
@@ -3748,6 +4136,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
}]);
+
app.controller('permissionClientCtrl', ['$scope', '$http', '$uibModal', '$state', '$filter', 'commonDialog', function ($scope, $http, $uibModal, $state, $filter, commonDialog) {
$scope.clientPermission = {client_moniker:$scope.partner.client_moniker};
$scope.loadPermissionList = function () {
diff --git a/src/main/ui/static/payment/partner/templates/add_partner.html b/src/main/ui/static/payment/partner/templates/add_partner.html
index c1346de5a..89a606210 100644
--- a/src/main/ui/static/payment/partner/templates/add_partner.html
+++ b/src/main/ui/static/payment/partner/templates/add_partner.html
@@ -77,7 +77,7 @@
+ maxlength="15">
short name for WeChat payment display
and partner
name
@@ -86,7 +86,7 @@
Required
Field
Less
- Than 50
+ Than 15
Characters(including symbols and spaces)
diff --git a/src/main/ui/static/payment/partner/templates/add_sub_partner_dialog.html b/src/main/ui/static/payment/partner/templates/add_sub_partner_dialog.html
index 52463ae66..811427ab5 100644
--- a/src/main/ui/static/payment/partner/templates/add_sub_partner_dialog.html
+++ b/src/main/ui/static/payment/partner/templates/add_sub_partner_dialog.html
@@ -58,13 +58,13 @@
+ name="short_name" id="short-name-input" required maxlength="15">
short name for WeChat payment display and partner
name
Required Field
-
Less Than 50
+
Less Than 15
Characters(including symbols and spaces)
diff --git a/src/main/ui/static/payment/partner/templates/apply_rpay_sub_merchant_id.html b/src/main/ui/static/payment/partner/templates/apply_rpay_sub_merchant_id.html
index f7d130c75..9a720b6aa 100644
--- a/src/main/ui/static/payment/partner/templates/apply_rpay_sub_merchant_id.html
+++ b/src/main/ui/static/payment/partner/templates/apply_rpay_sub_merchant_id.html
@@ -37,10 +37,10 @@
+ type="text" name="company_shortname" id="company_shortname_input" required maxlength="15">
Required Field
-
Length is more than 50
+
Length is more than 15
diff --git a/src/main/ui/static/payment/partner/templates/apply_yeepay_sub_merchant_id.html b/src/main/ui/static/payment/partner/templates/apply_yeepay_sub_merchant_id.html
index c58fc37e2..6eed12f07 100644
--- a/src/main/ui/static/payment/partner/templates/apply_yeepay_sub_merchant_id.html
+++ b/src/main/ui/static/payment/partner/templates/apply_yeepay_sub_merchant_id.html
@@ -11,7 +11,7 @@
@@ -28,7 +28,7 @@
@@ -39,38 +39,62 @@
-
diff --git a/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html b/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html
index c27eedccf..1353495e3 100644
--- a/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html
+++ b/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html
@@ -33,7 +33,7 @@
-
{{order.customer_payment_amount|currency:order.currency+' '}} Paid
+ {{order.display_amount|currency:order.currency+' '}} Paid
Success!
Pay Time:{{order.pay_time_local}}