From d6074bc055520bdc4c3ec6cf18b08369c142b9d8 Mon Sep 17 00:00:00 2001 From: luoyang Date: Thu, 14 Nov 2019 09:57:01 +0800 Subject: [PATCH 01/28] =?UTF-8?q?fix=20source=5Fagree=5Ffile=20=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../manage/mappers/system/ClientFilesMapper.java | 2 ++ .../manage/merchants/core/ClientManager.java | 2 ++ .../merchants/core/impls/ClientManagerImpl.java | 14 +++++++++++--- .../merchants/web/PartnerManageController.java | 2 +- .../manage/mappers/system/ClientFilesMapper.xml | 6 ++++++ 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 61d66e2cd..c6167da35 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 1.2.83 + 1.2.84 UTF-8 1.4.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.java index 78894f1bc..9d16b9fcc 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.java @@ -40,6 +40,8 @@ public interface ClientFilesMapper { List findFileByClientAndType(@Param("client_id") int client_id, @Param("file_name") String file_name); + JSONObject getSourceAgreeFilesByClientId(@Param("client_id") int clientId); + void deleteByClientAndFileId(@Param("file_id") String file_id); void deleteAggreeByClientId(@Param("client_id") int file_id); 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 17bbd4737..5df0a155e 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 @@ -242,6 +242,8 @@ public interface ClientManager { JSONObject getAllAuthFiles(JSONObject manager, String clientMoniker); + JSONObject getSourceAgreeFiles(JSONObject manage, String clientMoniker); + void deleteAuthFiles(String fileId); void deleteAuthFilesByAdmin(String fileId); 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 e58eae0a9..093c6de17 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 @@ -3353,6 +3353,17 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return fileJson; } + @Override + public JSONObject getSourceAgreeFiles(JSONObject manage, String clientMoniker) { + JSONObject client = getClientInfoByMoniker(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } + JSONObject sourceFile = clientFilesMapper.getSourceAgreeFilesByClientId(client.getIntValue("client_id")); + sourceFile.put(sourceFile.getString("file_name"), sourceFile.getString("file_value")); + return sourceFile; + } + @Override public JSONObject getAllAuthFiles(JSONObject manager, String clientMoniker) { JSONObject client = getClientInfoByMoniker(clientMoniker); @@ -3382,7 +3393,6 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return fileJson; } - @Override public JSONObject getClientViewAuthFiles(JSONObject manager, String clientMoniker) { JSONObject client = getClientInfoByMoniker(clientMoniker); @@ -3414,8 +3424,6 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } - ; - @Override public void deleteAuthFiles(String fileId) { JSONObject file = clientFilesMapper.findFileById(fileId); 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 d88feea7e..fe64de521 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 @@ -538,7 +538,7 @@ public class PartnerManageController { @ManagerMapping(value = "/{clientMoniker}/file/source_agree_file", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR, ManagerRole.BD_USER, ManagerRole.SERVANT}) public JSONObject getSourceAgreeAuthFiles(@PathVariable String clientMoniker, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { - return clientManager.getAuthFiles(manager, clientMoniker); + return clientManager.getSourceAgreeFiles(manager, clientMoniker); } @ManagerMapping(value = "/auth_file/{fileId}/delete", method = RequestMethod.PUT, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER}) diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.xml index c8967b6bf..6977ee40a 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientFilesMapper.xml @@ -13,6 +13,12 @@ update sys_files set is_valid = 0 where file_id = #{file_id} + + + Required Field + + + +
+ +
+ + Required Field +
+
+
> + +
+
+ +
%
+
+
+
+ No less than 0.0% +
+
+ Required Field +
+
+ +
+
+
> + +
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/src/main/ui/static/payment/partner/templates/partner_detail.html b/src/main/ui/static/payment/partner/templates/partner_detail.html index 42063210f..d0c9800e6 100644 --- a/src/main/ui/static/payment/partner/templates/partner_detail.html +++ b/src/main/ui/static/payment/partner/templates/partner_detail.html @@ -295,6 +295,9 @@
  • Permissions
  • +
  • + Incremental Service +
  • From fbf83fcb35f3332c94eea4f0d7f3e26f75790c43 Mon Sep 17 00:00:00 2001 From: liuxinxin Date: Thu, 14 Nov 2019 18:13:18 +0800 Subject: [PATCH 03/28] =?UTF-8?q?=E3=80=90R=E3=80=91=E5=95=86=E6=88=B7?= =?UTF-8?q?=E7=AB=AF&=E8=BF=90=E8=90=A5=E7=AB=AF=E8=AE=A2=E5=8D=95source?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/mappers/payment/OrderMapper.java | 4 + .../payment/SysClientIncrementalMapper.java | 25 + .../merchants/web/PartnerViewController.java | 6 + .../manage/tradelog/beans/TradeLogQuery.java | 11 + .../manage/tradelog/core/TradeLogService.java | 4 + .../core/impls/TradeLogServiceImpl.java | 68 +++ .../web/ManageTradelogController.java | 7 + .../manage/mappers/payment/OrderMapper.xml | 199 +++++++- .../mappers/payment/TransactionMapper.xml | 2 +- src/main/ui/index.html | 5 + src/main/ui/manage.html | 5 + src/main/ui/static/images/royalpay_sign_s.png | Bin 0 -> 415 bytes src/main/ui/static/images/yangmatou_sign.png | Bin 0 -> 432 bytes .../ui/static/invoice/invoice_assistant.js | 28 +- .../invoice/templates/invoice_assistant.html | 8 +- .../tradelog/templates/balance_report.html | 6 +- .../templates/incremental_trade_logs.html | 436 ++++++++++++++++++ .../partner_incremental_trade_logs.html | 387 ++++++++++++++++ .../templates/partner_trade_logs.html | 17 +- .../tradelog/templates/trade_logs.html | 19 +- .../payment/tradelog/tradelog-manage.js | 163 ++++++- .../ui/static/payment/tradelog/tradelog.js | 265 ++++++++++- .../ui/static/payment/tradelog/transflow.js | 27 +- 23 files changed, 1673 insertions(+), 19 deletions(-) create mode 100644 src/main/java/au/com/royalpay/payment/manage/mappers/payment/SysClientIncrementalMapper.java create mode 100644 src/main/ui/static/images/royalpay_sign_s.png create mode 100644 src/main/ui/static/images/yangmatou_sign.png create mode 100644 src/main/ui/static/payment/tradelog/templates/incremental_trade_logs.html create mode 100644 src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java index e10baf602..57d95ccaf 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java @@ -30,10 +30,14 @@ public interface OrderMapper { PageList listOrders(JSONObject params, PageBounds pagination); + PageList listIncrementalOrders(JSONObject params, PageBounds pagination); + List listOrdersNoPage(JSONObject params); PageList listOrdersByClients(JSONObject params, PageBounds pagination); + PageList listIncrementalOrdersByClients(JSONObject params, PageBounds pagination); + JSONObject analysisOrders(JSONObject params); JSONObject getOrderDetail(@Param("order_id") String orderId); diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/SysClientIncrementalMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/SysClientIncrementalMapper.java new file mode 100644 index 000000000..4b1f2990d --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/SysClientIncrementalMapper.java @@ -0,0 +1,25 @@ +package au.com.royalpay.payment.manage.mappers.payment; + +import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper; +import cn.yixblog.support.mybatis.autosql.annotations.AutoSql; +import cn.yixblog.support.mybatis.autosql.annotations.SqlType; +import com.alibaba.fastjson.JSONObject; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * Created by liuxinxin on 2019-11-12. + */ +@AutoMapper(tablename = "sys_client_incremental", pkName = "incremental_id") +public interface SysClientIncrementalMapper { + + @Select("SELECT incremental_rate_value FROM sys_client_incremental WHERE channel = #{channel} AND client_id = #{client_id} ") + String findByChannelAndClientId(@Param("client_id") String clientId,@Param("channel") String channel); + + @AutoSql(type = SqlType.SELECT) + List find(@Param("client_id") String clientId); + + +} diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java index 188fd1031..752ecfed4 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java @@ -301,6 +301,12 @@ public class PartnerViewController { return tradeLogService.listPartnerTradeLogs(null, account, account.getString("client_moniker"), query, account.getJSONObject("client").getString("timezone")); } + @PartnerMapping(value = "/incremental_trade_logs", method = RequestMethod.GET) + @ResponseBody + public JSONObject listIncrementalTradeLogs(@ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject account, TradeLogQuery query) throws Exception { + return tradeLogService.listPartnerIncrementalTradeLogs(null, account, account.getString("client_moniker"), query, account.getJSONObject("client").getString("timezone")); + } + @PartnerMapping(value = "/trade_logs/{orderId}", method = RequestMethod.GET) @ResponseBody public JSONObject getOrderDetail(@ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject account, @PathVariable String orderId) { diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java index f2c40c9b2..7f11694ef 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java @@ -29,6 +29,7 @@ public class TradeLogQuery { private String datefrom; private String dateto; private int[] gateway; + private String source = "ALL" ; private OrderStatus status = OrderStatus.PAID; private PayChannel channel = PayChannel.ALL; private String[] client_ids; @@ -89,6 +90,8 @@ public class TradeLogQuery { if (client_ids != null) { params.put("client_ids", client_ids); } + + params.put("source", source); params.put("status", status.getStatus()); params.put("channel", channel.getChannels()); @@ -247,4 +250,12 @@ public class TradeLogQuery { public void setorg_id2(String org_id2) { this.org_id2 = org_id2; } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } } 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 53de695e5..c691ba40f 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 @@ -14,8 +14,12 @@ import java.util.List; public interface TradeLogService { JSONObject listPartnerTradeLogs(JSONObject manager, JSONObject account, String clientMoniker, TradeLogQuery query, String timezone) throws Exception; + JSONObject listPartnerIncrementalTradeLogs(JSONObject manager, JSONObject account, String clientMoniker, TradeLogQuery query, String timezone) throws Exception; + JSONObject listAllTradeLogs(TradeLogQuery query, JSONObject manager); + JSONObject listAllIncrementalTradeLogs(TradeLogQuery query, JSONObject manager); + List listOrderRefunds(String orderId, String timezone); void getOrderDetail(Model model, String clientMoniker, String orderId, String openid); 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 f728f5350..3fe129fdd 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 @@ -112,6 +112,8 @@ public class TradeLogServiceImpl implements TradeLogService { @Resource private ManagerCustomerRelationAlipayMapper managerCustomerRelationAlipayMapper; @Resource + private SysClientIncrementalMapper sysClientIncrementalMapper; + @Resource private ClientCustomersMapper clientCustomersMapper; @Resource private ClearingLogMapper clearingLogMapper; @@ -171,6 +173,45 @@ public class TradeLogServiceImpl implements TradeLogService { return result; } + @Override + public JSONObject listPartnerIncrementalTradeLogs(JSONObject manager, JSONObject account, String shortId, TradeLogQuery query, String timezone) throws Exception { + JSONObject client = clientManager.getClientInfoByMoniker(shortId); + if (client == null) { + throw new InvalidShortIdException(); + } + checkOrgPermission(manager, client); + JSONObject params = query.toParams(timezone); + clientManager.validateClients(client.getIntValue("client_id"), params); + params.put("client_id", client.getIntValue("client_id")); + if (manager != null && manager.getInteger("org_id") != null) { + params.put("org_id", manager.getIntValue("org_id")); + } + if(query.getGatewayChild()!=null){ + params.put("trade_type",new ArrayList(){{add(query.getGatewayChild());}}); + } + PageList logs = orderMapper.listIncrementalOrdersByClients(params, + new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc"))); + if (timezone != null) { + TimeZoneUtils.switchTimeZone(logs, timezone, "create_time", "confirm_time", "transaction_time"); + } + if (account != null) { + PartnerRole role = PartnerRole.getRole(account.getIntValue("role")); + if (role == PartnerRole.MANAGER || role == PartnerRole.ADMIN) { + for (JSONObject log : logs) { + log.put("audition", !refundAuditionMapper.listAuditingRefundsOfOrder(log.getString("order_id")).isEmpty()); + } + } + } + for (JSONObject log : logs) { + log.put("rate_value",sysClientIncrementalMapper.findByChannelAndClientId(log.getString("client_id"),log.getString("source"))); + } + JSONObject result = PageListUtils.buildPageListResult(logs); + JSONObject analysis = orderMapper.analysisOrders(params); + result.put("analysis", analysis); + return result; + } + + @Override public JSONObject listAllTradeLogs(TradeLogQuery query, JSONObject manager) { JSONObject params = query.toParams(null); @@ -195,6 +236,33 @@ public class TradeLogServiceImpl implements TradeLogService { return result; } + @Override + public JSONObject listAllIncrementalTradeLogs(TradeLogQuery query, JSONObject manager) { + JSONObject params = query.toParams(null); + if (ManagerRole.BD_USER.hasRole(manager.getIntValue("role")) && !ManagerRole.ORG_MANAGER.hasRole(manager.getIntValue("role"))) { + params.put("bd_user", manager.getString("manager_id")); + } + if (query.isOnlyGroup() && ManagerRole.BD_LEADER.hasRole(manager.getIntValue("role"))) { + params.remove("bd_user"); + params.put("bd_group", manager.getString("manager_id")); + if (query.getGroup_bd() > 0) { + params.put("bd_group_bd", query.getGroup_bd()); + } + } + orgManager.checkOrgIds(manager, params); + if(query.getGatewayChild()!=null){ + params.put("trade_type",new ArrayList(){{add(query.getGatewayChild());}}); + } + PageList logs = orderMapper.listIncrementalOrders(params, new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc"))); + for (JSONObject log : logs) { + log.put("rate_value",sysClientIncrementalMapper.findByChannelAndClientId(log.getString("client_id"),log.getString("source"))); + } + JSONObject result = PageListUtils.buildPageListResult(logs); + JSONObject analysis = orderMapper.analysisOrders(params); + result.put("analysis", analysis); + return result; + } + @Override public List listOrderRefunds(String orderId, String timezone) { diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/web/ManageTradelogController.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/web/ManageTradelogController.java index 68337775e..f81569efb 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/web/ManageTradelogController.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/web/ManageTradelogController.java @@ -34,6 +34,13 @@ public class ManageTradelogController { return tradeLogService.listAllTradeLogs(query, manager); } + @RequestMapping(value = "/incremental",method = RequestMethod.GET) + @ReadOnlyConnection + @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.BD_USER, ManagerRole.OPERATOR, ManagerRole.FINANCIAL_STAFF, ManagerRole.SERVANT, ManagerRole.DIRECTOR}) + public JSONObject listAllIncrementalTradeLogs(TradeLogQuery query, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + return tradeLogService.listAllIncrementalTradeLogs(query, manager); + } + @ManagerMapping(value = "/{tradeId}/refunds", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR, ManagerRole.FINANCIAL_STAFF, ManagerRole.SERVANT, ManagerRole.DIRECTOR}) @ReadOnlyConnection @RequirePartner diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml index 0105fe750..43ec6db95 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml @@ -23,6 +23,7 @@ p.short_name, o.refund_amount refund_fee, o.customer_id, + o.source, sum(t.clearing_amount) clearing_amount, t.refund_id, t.transaction_time, @@ -30,7 +31,11 @@ t.transaction_id, t.exchange_rate, t.clearing_status, - t.settle_amount + t.settle_amount, + t.incremental_surcharge, + t.total_surcharge, + t.tax_amount, + t.surcharge_rate SELECT @@ -42,6 +47,7 @@ o.create_time, o.confirm_time pay_time, o.pre_authorization, + o.source, CASE o.status WHEN 0 THEN 'SUBMITTING' @@ -149,7 +155,148 @@ select oo.order_id,oo.client_id,oo.total_amount,oo.display_amount, oo.customer_payment_amount,oo.coupon_payment_amount,oo.currency, oo.create_time,oo.confirm_time,oo.status,oo.order_description,oo.order_detail, - oo.client_order_id,oo.gateway,oo.channel,oo.pre_authorization,oo.refund_amount,oo.customer_id + oo.client_order_id,oo.gateway,oo.channel,oo.pre_authorization,oo.refund_amount,oo.customer_id,oo.source + from pmt_orders oo + + + + + AND oo.order_detail LIKE #{name_pattern} + + + AND oo.channel = #{search_text} + + + AND oo.order_id = #{search_text} + + + + AND oo.order_id = #{order_id} + + + AND oo.gateway IN + + #{gateway} + + + + AND oo.create_time >= #{from} + + + AND oo.create_time < #{to} + + + AND oo.transaction_date = DATE(#{date}) + + + AND oo.dev_id = #{dev_id} + + + AND + + oo.status = #{std} + + + + AND + + oo.channel = #{chan} + + + + AND + oo.source = #{source} + + + ) o + INNER JOIN sys_clients p + ON p.client_id = o.client_id + AND p.is_valid = 1 + + AND p.client_id IN + + #{client_id} + + + + AND p.client_id = #{client_id} + + LEFT JOIN pmt_transactions t + ON t.order_id = o.order_id + AND t.refund_id IS NULL + AND t.transaction_type = 'Credit' + + + + + AND ( + p.client_moniker = #{search_text} + OR p.short_name LIKE #{name_pattern} + OR o.order_detail LIKE #{name_pattern} + OR t.system_transaction_id = #{search_text} + OR o.channel = #{search_text} + OR o.order_id = #{search_text} + ) + + + AND p.client_moniker = #{search_text} + + + AND p.short_name LIKE #{name_pattern} + + + AND t.system_transaction_id = #{search_text} + + + + AND p.org_id = #{org_id} + + + AND p.org_id IN + + #{org_id} + + + + + AND p.client_id IN( + SELECT distinct 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}) + + AND c.manager_id = #{bd_group_bd} + + ) + + + AND p.client_id in(select distinct d.client_id + from sys_client_bd d + where d.bd_id = #{bd_user} + AND d.is_valid = 1 + AND DATE(d.start_date) <= curdate() + AND (d.end_date IS NULL OR DATE(d.end_date) >= curdate())) + + + GROUP BY o.order_id + + + + + + @@ -396,6 +585,8 @@ count(DISTINCT l.client_id) clients, ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency!='CNY',l.display_amount,0)),0) display_amount, + ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency!='CNY',l.incremental_surcharge,0)),0) + incremental_surcharge, ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency!='CNY' and l.pre_authorization=1,l.display_amount,0)),0) pre_display_amount, ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency='CNY',l.display_amount,0)),0) @@ -475,6 +666,10 @@ o.channel=#{chan} + + and + o.source=#{source} + and p.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 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 99175a97a..b12b9714b 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 @@ -96,7 +96,7 @@ + + + + + + + + + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    +
    +
    + + +
    +
    + +
    +

    + All | + Wechat Pay | + Alipay | + AlipayOnline + | + BestPay | + JD Pay | + HF Pay | + RPay + | + Yeepay | + LakalaPay +

    +
    +
    +
    + +
    +
    +
    + +
    + ~ +
    + +
    + +
    + Today +
    +
    + Yesterday +
    + + + +
    + +
    +
    + +
    +

    + All + +

    +
    +
    + +
    + +
    + + + + +
    +
    +
    +
    +
    + +
    + Transaction Amount + + ( {{analysis.order_count}} Orders ) +
    +
    +
    +
    +
    + +
    + Input Amount + + ( {{analysis.pre_display_amount | currency:'pre authorization '}} ) +
    +
    +
    +
    +
    + +
    + Input Amount + + + ( {{analysis.pre_display_amount | currency:'pre authorization '}} ) + + + + ( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} ) + +
    +
    +
    +
    +
    + +
    + Refund Amount + + + ({{analysis.pre_refund_fee|currency:'pre authorization '}}) + +
    +
    +
    +
    +
    + +
    + Merchants + + +
    +
    +
    +
    +
    + +
    + Incremental Surcharge + +
    +
    +
    +
    +
    +
    +
    +
    +

    Trade Orders + Pre Authorization: +

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PartnerOrder IDAmountInput AmountSystem RateSystem ProfitYangMaTou RateYangMaTou ProfitStatusCreate TimeOperation
    + + {{trade.short_name}}({{trade.client_moniker}}) + + + + + + + + + + + + + + + {{trade.order_id}} + + {{trade.total_amount|currency:trade.currency}} + (-{{trade.refund_fee}}) + {{(trade.surcharge_rate * 100 - trade.rate_value)| number : 2}}%{{(trade.total_surcharge-trade.incremental_surcharge) | number : 2 | currency:trade.currency}}{{trade.source}}:{{(trade.rate_value) | number : 2}}%{{trade.source}}:{{trade.incremental_surcharge | currency:trade.currency}} + + + +
    + +
    +
    + +
    +
    Total Records:{{pagination.totalCount}};Total + Pages:{{pagination.totalPages}} +
    +
    +
    +
    + + + + diff --git a/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html b/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html new file mode 100644 index 000000000..ac8b711f6 --- /dev/null +++ b/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html @@ -0,0 +1,387 @@ + +
    +

    Incremental Orders

    + +
    +
    +
    +

    {{order.display_amount|currency:order.currency+' '}} Paid + Success!

    +

    Pay Time:{{order.pay_time_local}}

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +

    + All | + Wechat Pay | + Alipay | + AlipayOnline | + BestPay | + JD Pay | + HF Pay | + RPay+ | + Yeepay | + LakalaPay +

    +
    +
    +
    + +
    +
    +
    + +
    + ~ +
    + +
    + +
    + Today +
    +
    + Yesterday +
    + + + +
    + +
    + +
    +
    + +
    +

    + All + +

    +
    +
    +
    + +
    +

    + All + +

    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + Transaction Amount + + ( {{analysis.order_count}} Orders ) +
    +
    +
    + +
    +
    + +
    + Input Amount + + ( {{analysis.pre_display_amount | currency:'pre authorization '}} ) +
    +
    +
    +
    +
    + +
    + Input Amount + + + ( {{analysis.pre_display_amount | currency:'pre authorization '}} ) + + + + ( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} ) + +
    +
    +
    +
    +
    + +
    + Refund Amount + + + ({{analysis.pre_refund_fee|currency:'pre authorization '}}) + +
    +
    +
    +
    +
    + +
    + Incremental Surcharge + + +
    +
    +
    +
    +
    +
    +
    +
    +

    Orders

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Client Order IDOrder IDAmountInput AmountSystem RateSystem ProfitIncremental RateIncremental ProfitStatusCreate TimeOperation
    + + + + + + + BestPay + Alipay + AlipayOnline + + + + + + {{trade.order_id}} + + {{trade.total_amount|currency:trade.currency+' '}} + (-{{trade.refund_fee}}) + {{(trade.surcharge_rate * 100 - trade.rate_value)| number : 2}}%{{(trade.total_surcharge-trade.incremental_surcharge) | number : 2 | currency:trade.currency}}{{trade.source}}:{{(trade.rate_value) | number : 2}}%{{trade.source}}:{{trade.incremental_surcharge | currency:trade.currency}}{{0.00 | currency:trade.currency}} + + + + +
    + +
    + +
    +
    +
    +
    +
    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 8b1c3f72b..ad16da97c 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 @@ -109,6 +109,19 @@ ng-model="params.searchText"> +
    + +
    +

    + All | + System | + YangMaTou +

    +
    +
    @@ -406,6 +419,8 @@ + + BestPay @@ -416,7 +431,7 @@ - {{trade.order_id}} + {{trade.order_id}} {{trade.total_amount|currency:trade.currency+' '}} diff --git a/src/main/ui/static/payment/tradelog/templates/trade_logs.html b/src/main/ui/static/payment/tradelog/templates/trade_logs.html index 5b33d2b14..77b3ec4f9 100644 --- a/src/main/ui/static/payment/tradelog/templates/trade_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/trade_logs.html @@ -142,6 +142,19 @@
    --> +
    + +
    +

    + All | + System | + YangMaTou +

    +
    +
    @@ -449,6 +462,10 @@ + + - {{trade.order_id}} + {{trade.order_id}} {{trade.total_amount|currency:trade.currency}} diff --git a/src/main/ui/static/payment/tradelog/tradelog-manage.js b/src/main/ui/static/payment/tradelog/tradelog-manage.js index 77b5e54e7..7cbde9a45 100644 --- a/src/main/ui/static/payment/tradelog/tradelog-manage.js +++ b/src/main/ui/static/payment/tradelog/tradelog-manage.js @@ -13,11 +13,15 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { url: '/refundReview', templateUrl: '/static/payment/tradelog/templates/refund_review.html', controller: 'refundReviewCtrl' + }).state('incremental_trade', { + url: '/incrementalTrade', + templateUrl: '/static/payment/tradelog/templates/incremental_trade_logs.html', + controller: 'globalIncrementalTradeLogCtrl' }) }]); - app.controller('globalTradeLogCtrl', ['$scope', '$http', '$filter', 'commonDialog', 'refunder', 'orderService', - function ($scope, $http, $filter, commonDialog, refunder, orderService) { - $scope.params = {status: 'PAID',channel:'ALL', textType: 'all', datefrom: new Date(), dateto: new Date(),org_name:'ALL'}; + app.controller('globalTradeLogCtrl', ['$scope', '$http', '$filter', 'commonDialog', 'refunder', 'orderService','$sce', + function ($scope, $http, $filter, commonDialog, refunder, orderService,$sce) { + $scope.params = {source: 'ALL',status: 'PAID',channel:'ALL', textType: 'all', datefrom: new Date(), dateto: new Date(),org_name:'ALL'}; $scope.pagination = {}; $scope.today = new Date(); @@ -127,6 +131,7 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { } $http.get('/sys/trade_logs', {params: params}).then(function (resp) { $scope.tradeLogs = resp.data.data; + $scope.htmlToolst(); $scope.pagination = resp.data.pagination; $scope.analysis = resp.data.analysis; $scope.analysis.refund_fee = angular.copy(Math.abs($scope.analysis.refund_fee)); @@ -167,6 +172,30 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { $scope.$on('order_refunded', function () { $scope.loadTradeLogs(); }); + + $scope.htmlToolst = function(){ + for(var i=0;i< $scope.tradeLogs.length;i++){ + var tax_amount = $scope.tradeLogs[i].tax_amount; + var total_surcharge= $scope.tradeLogs[i].total_surcharge; + var incremental_surcharge = $scope.tradeLogs[i].incremental_surcharge; + var total_amount = $scope.tradeLogs[i].total_amount; + var display_amount = $scope.tradeLogs[i].display_amount; + var source = $scope.tradeLogs[i].source; + var system_surcharge = (total_surcharge-incremental_surcharge).toFixed(2); + var tip = '
    ' + + '
    手续费组成
    '+'
    '+ + '

    system:'+ system_surcharge +'

    ' + + '

    '+ source +':'+incremental_surcharge +'

    '; + if(total_surcharge < (total_amount-display_amount).toFixed(2)){ + tip = tip +'

    tax amount:'+ tax_amount +'

    '; + } + tip = tip + '
    '; + $scope.tradeLogs[i].htmlTooltip = $sce.trustAsHtml(tip); + } + } + + + } ]); app.controller('refundReviewCtrl', ['$rootScope', '$scope', '$http', '$state', '$filter', '$uibModal', 'commonDialog', 'orderService', @@ -295,6 +324,134 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { }); }; }]); + app.controller('globalIncrementalTradeLogCtrl', ['$scope', '$http', '$filter', 'commonDialog', 'refunder', 'orderService','$sce', + function ($scope, $http, $filter, commonDialog, refunder, orderService,$sce) { + $scope.params = {source: 'yangmatou',status: 'PAID',channel:'ALL', textType: 'all', datefrom: new Date(), dateto: new Date(),org_name:'ALL'}; + $scope.pagination = {}; + $scope.today = new Date(); + + if (($scope.currentUser.role & parseInt('1000000000', 2)) > 0 && $scope.currentUser.org_id) { + $http.get('/sys/manager_accounts/group/group_bds').then(function (resp) { + $scope.bd_group_bds = resp.data; + $scope.chooseBD('all'); + }); + } + $scope.chooseBD = function (groupBD) { + $scope.params.onlyGroup=true; + if (groupBD == 'all') { + $scope.isAll = true; + $scope.chooseBDId=''; + delete $scope.params.group_bd; + } else { + $scope.chooseBDId=groupBD; + $scope.params.group_bd = groupBD; + $scope.isAll = false; + } + $scope.loadTradeLogs(); + }; + + $scope.chooseToday = function () { + $scope.params.datefrom = $scope.params.dateto = new Date(); + $scope.loadTradeLogs(1); + }; + $scope.chooseYesterday = function () { + var yesterday = new Date(); + yesterday.setDate(yesterday.getDate() - 1); + $scope.params.datefrom = $scope.params.dateto = yesterday; + $scope.loadTradeLogs(1); + }; + $scope.chooseLast7Days = function () { + $scope.params.dateto = new Date(); + var day = new Date(); + day.setDate(day.getDate() - 7); + $scope.params.datefrom = day; + $scope.loadTradeLogs(1); + }; + $scope.thisMonth = function () { + $scope.params.dateto = new Date(); + var monthBegin = new Date(); + monthBegin.setDate(1); + $scope.params.datefrom = monthBegin; + $scope.loadTradeLogs(1); + }; + $scope.lastMonth = function () { + var monthFinish = new Date(); + monthFinish.setDate(0); + $scope.params.dateto = monthFinish; + var monthBegin = new Date(); + monthBegin.setDate(0); + monthBegin.setDate(1); + $scope.params.datefrom = monthBegin; + $scope.loadTradeLogs(1); + }; + if (($scope.currentUser.role & parseInt('1000011', 2)) > 0 && !$scope.currentUser.org_id) { + $scope.org2 = "ALL" + $http.get('/sys/orgs', {params: {}}).then(function (resp) { + $scope.orgs = resp.data; + }); + } + + $scope.loadOrgs = function () { + var params = angular.copy($scope.params); + $http.get('/sys/orgs/orgChild',{params: params}).then(function (resp) { + $scope.orgs_child = resp.data; + }) + }; + if(($scope.currentUser.role & parseInt('1000000000000', 2)) > 0 && ($scope.currentUser.org_id != null)){ + $scope.org2 = "ALL Organizations" + $scope.loadOrgs(); + } + + $scope.loadTradeLogs = function (page) { + var params = angular.copy($scope.params); + if (params.datefrom) { + params.datefrom = $filter('date')(params.datefrom, 'yyyyMMdd'); + } + if (params.dateto) { + params.dateto = $filter('date')(params.dateto, 'yyyyMMdd'); + } + params.page = page || $scope.pagination.page || 1; + if(params.gateway){ + if((params.gateway.sort().toString()!=[0,1].toString()) && (params.gateway.sort().toString()!=[5,6].toString())){ + delete params.gatewayChilds; + delete params.gatewayChild; + } + if(params.gatewayChilds){ + var exist = false + params.gatewayChilds.forEach(function (child) { + if(child==params.gatewayChild){ + exist = true + } + }) + if(!exist){ + params.gatewayChild = null + } + }else{ + delete params.gatewayChild; + } + }else{ + delete params.gatewayChilds; + delete params.gatewayChild; + } + $http.get('/sys/trade_logs/incremental', {params: params}).then(function (resp) { + $scope.tradeLogs = resp.data.data; + $scope.pagination = resp.data.pagination; + $scope.analysis = resp.data.analysis; + $scope.analysis.refund_fee = angular.copy(Math.abs($scope.analysis.refund_fee)); + }); + }; + + $scope.showTradeDetail = function (order) { + orderService.managerOrderDetail(order) + }; + $scope.loadTradeLogs(1); + + $scope.$on('order_refunded', function () { + $scope.loadTradeLogs(); + }); + + } + ]); return app; }); diff --git a/src/main/ui/static/payment/tradelog/tradelog.js b/src/main/ui/static/payment/tradelog/tradelog.js index 710c2c71a..2fc4d2fd8 100644 --- a/src/main/ui/static/payment/tradelog/tradelog.js +++ b/src/main/ui/static/payment/tradelog/tradelog.js @@ -10,11 +10,15 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { url: '/trade', templateUrl: '/static/payment/tradelog/templates/partner_trade_logs.html', controller: 'tradeLogCtrl' + }).state('incremental_trade', { + url: '/IncrementalTrade', + templateUrl: '/static/payment/tradelog/templates/partner_incremental_trade_logs.html', + controller: 'IncrementalTradeLogCtrl' }) }]); - app.controller('tradeLogCtrl', ['$scope', '$http', '$filter', '$timeout', 'partnerRefunder', 'orderService', 'commonDialog', - function ($scope, $http, $filter, $timeout, partnerRefunder, orderService, commonDialog) { - $scope.params = {status: 'PAID', channel :'ALL' ,textType: 'all', datefrom: new Date(), dateto: new Date()}; + app.controller('tradeLogCtrl', ['$scope', '$http', '$filter', '$timeout', 'partnerRefunder', 'orderService', 'commonDialog','$sce', + function ($scope, $http, $filter, $timeout, partnerRefunder, orderService, commonDialog,$sce) { + $scope.params = {source: 'ALL',status: 'PAID', channel :'ALL' ,textType: 'all', datefrom: new Date(), dateto: new Date()}; $scope.pagination = {}; $scope.today = new Date(); $scope.isAll = true; @@ -92,12 +96,49 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { } $http.get('/client/partner_info/trade_logs', {params: params}).then(function (resp) { $scope.tradeLogs = resp.data.data; + $scope.htmlToolst(); $scope.pagination = resp.data.pagination; $scope.analysis = resp.data.analysis; $scope.analysis.refund_fee = angular.copy(Math.abs($scope.analysis.refund_fee)); }); }; + /*$scope.htmlToolst = function(){ + for(var i=0;i< $scope.tradeLogs.length;i++){ + var tax_amount = $scope.tradeLogs[i].tax_amount; + var total_surcharge= $scope.tradeLogs[i].total_surcharge; + var incremental_surcharge = $scope.tradeLogs[i].incremental_surcharge; + var system_surcharge = (total_surcharge-incremental_surcharge).toFixed(2); + $scope.tradeLogs[i].htmlTooltip = $sce.trustAsHtml('
    ' + + '
    手续费组成
    '+'
    '+ + '

    system:'+ system_surcharge +'

    ' + + '

    yangmatou:'+ incremental_surcharge +'

    ' + + '

    tax amount:'+ tax_amount +'

    ' + + '
    '); + } + };*/ + + $scope.htmlToolst = function(){ + for(var i=0;i< $scope.tradeLogs.length;i++){ + var tax_amount = $scope.tradeLogs[i].tax_amount; + var total_surcharge= $scope.tradeLogs[i].total_surcharge; + var incremental_surcharge = $scope.tradeLogs[i].incremental_surcharge; + var total_amount = $scope.tradeLogs[i].total_amount; + var display_amount = $scope.tradeLogs[i].display_amount; + var source = $scope.tradeLogs[i].source; + var system_surcharge = (total_surcharge-incremental_surcharge).toFixed(2); + var tip = '
    ' + + '
    手续费组成
    '+'
    '+ + '

    system:'+ system_surcharge +'

    ' + + '

    '+ source +':'+incremental_surcharge +'

    '; + if(total_surcharge < (total_amount-display_amount).toFixed(2)){ + tip = tip +'

    tax amount:'+ tax_amount +'

    '; + } + tip = tip + '
    '; + $scope.tradeLogs[i].htmlTooltip = $sce.trustAsHtml(tip); + } + } + $scope.gatewaySelected = function (arr) { return $scope.params.gateway != null && $scope.params.gateway.filter(function (gateway) { return arr.indexOf(gateway) >= 0 @@ -254,5 +295,221 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { } }]); + app.controller('IncrementalTradeLogCtrl', ['$scope', '$http', '$filter', '$timeout', 'partnerRefunder', 'orderService', 'commonDialog', + function ($scope, $http, $filter, $timeout, partnerRefunder, orderService, commonDialog) { + $scope.params = {source: 'yangmatou',status: 'PAID', channel :'ALL' ,textType: 'all', datefrom: new Date(), dateto: new Date()}; + $scope.pagination = {}; + $scope.today = new Date(); + $scope.isAll = true; + $scope.isLevel3All = true; + $scope.device_isAll = true; + $scope.dev_params = {client_type:'sunmi',limit:100}; + $scope.clients = [$scope.currentUser.client]; + $scope.showLevel3Clients = false; + + + $scope.chooseToday = function () { + $scope.params.datefrom = $scope.params.dateto = new Date(); + $scope.loadTradeLogs(1); + }; + $scope.chooseYesterday = function () { + var yesterday = new Date(); + yesterday.setDate(yesterday.getDate() - 1); + $scope.params.datefrom = $scope.params.dateto = yesterday; + $scope.loadTradeLogs(1); + }; + $scope.chooseLast7Days = function () { + $scope.params.dateto = new Date(); + var day = new Date(); + day.setDate(day.getDate() - 7); + $scope.params.datefrom = day; + $scope.loadTradeLogs(1); + }; + $scope.thisMonth = function () { + $scope.params.dateto = new Date(); + var monthBegin = new Date(); + monthBegin.setDate(1); + $scope.params.datefrom = monthBegin; + $scope.loadTradeLogs(1); + }; + $scope.lastMonth = function () { + var monthFinish = new Date(); + monthFinish.setDate(0); + $scope.params.dateto = monthFinish; + var monthBegin = new Date(); + monthBegin.setDate(0); + monthBegin.setDate(1); + $scope.params.datefrom = monthBegin; + $scope.loadTradeLogs(1); + }; + $scope.loadTradeLogs = function (page) { + var params = angular.copy($scope.params); + if (params.datefrom) { + params.datefrom = $filter('date')(params.datefrom, 'yyyyMMdd'); + } + if (params.dateto) { + params.dateto = $filter('date')(params.dateto, 'yyyyMMdd'); + } + params.page = page || $scope.pagination.page || 1; + $http.get('/client/partner_info/incremental_trade_logs', {params: params}).then(function (resp) { + $scope.tradeLogs = resp.data.data; + $scope.pagination = resp.data.pagination; + $scope.analysis = resp.data.analysis; + $scope.analysis.refund_fee = angular.copy(Math.abs($scope.analysis.refund_fee)); + }); + }; + + $scope.gatewaySelected = function (arr) { + return $scope.params.gateway != null && $scope.params.gateway.filter(function (gateway) { + return arr.indexOf(gateway) >= 0 + }).length > 0 + }; + $scope.showTradeDetail = function (order) { + orderService.clientOrderDetail(order) + }; + $scope.showPRefundLog = function (orderId) { + partnerRefunder.prefunded(orderId); + }; + $scope.newPRefund = function (orderId) { + partnerRefunder.prefund(orderId).then(function () { + $scope.loadTradeLogs(); + }); + }; + $scope.releasePreAuth = function (orderId) { + commonDialog.confirm({ + title: 'Pre Authorization Completion', + content: 'This bill will be taken into settlement, or you will be able to make a refund order. Are you sure?' + }).then(function () { + $http.put('/client/partner_info/trade_logs/' + orderId + '/release_preauth').then(function (resp) { + $scope.loadTradeLogs(); + }, function (resp) { + commonDialog.alert({title: 'Error!', content: resp.data.message, type: 'error'}) + }) + }) + }; + $scope.alerts = []; + $scope.$on('pe_order_paid', function (evt, order) { + $scope.alerts.push(order); + $timeout(function () { + $scope.alerts.splice(0, 1); + }, 10000); + $scope.loadTradeLogs(); + }); + $scope.chooseClient = function (client) { + if (client == 'all') { + $scope.params.client_ids = angular.copy($scope.clientIds); + $scope.isAll = true; + $scope.chooseClientId = ''; + $scope.dev_params.client_ids = angular.copy($scope.clientIds); + $scope.showLevel3Clients = false; + $scope.listDevices(); + } else if (client.level3Clients) { + $scope.chooseClientId = client.client_id; + $scope.showLevel3Clients = true; + $scope.level3Clients = client.level3Clients; + $scope.isAll = false; + $scope.level3ClientIds = []; + $scope.level3ClientIds.push(client.client_id); + client.level3Clients.forEach(function (client) { + $scope.level3ClientIds.push(client.client_id); + }); + $scope.chooseLevel3Client("all"); + return; + } else { + $scope.chooseClientId = client.client_id; + $scope.params.client_ids = [client.client_id]; + $scope.isAll = false; + $scope.dev_params.client_ids = [client.client_id]; + $scope.showLevel3Clients = false; + $scope.listDevices(); + } + $scope.loadTradeLogs(); + }; + + $scope.chooseLevel3Client = function (client) { + if (client == 'all') { + $scope.params.client_ids = angular.copy($scope.level3ClientIds); + $scope.isLevel3All = true; + $scope.chooseLevel3ClientId = ''; + $scope.dev_params.client_ids = angular.copy($scope.level3ClientIds); + $scope.listDevices(); + } else { + $scope.chooseLevel3ClientId = client.client_id; + $scope.params.client_ids = [client.client_id]; + $scope.isLevel3All = false; + $scope.dev_params.client_ids = [client.client_id]; + $scope.listDevices(); + } + $scope.loadTradeLogs(); + }; + + $scope.listDevices = function () { + var params = angular.copy($scope.dev_params) + $http.get('/client/partner_info/devices', {params: params}).then(function (resp) { + $scope.devices = resp.data.data; + }) + }; + $scope.chooseDevices = function (dev_id) { + if(dev_id == 'all'){ + $scope.chooseDevice_id = ''; + $scope.params.dev_id = null; + $scope.device_isAll = true; + $scope.loadTradeLogs(1); + }else { + $scope.chooseDevice_id = dev_id; + $scope.params.dev_id = dev_id; + $scope.device_isAll = false; + $scope.loadTradeLogs(1); + } + }; + $scope.listDevices(); + + if ($scope.currentUser.client.has_children) { + $http.get('/client/partner_info/sub_partners').then(function (resp) { + var clientList = resp.data; + clientList.forEach(function (client) { + $scope.clients.push(client); + }); + $scope.clientIds = []; + $scope.clients.forEach(function (client) { + $scope.clientIds.push(client.client_id); + if (client.level3Clients) { + client.level3Clients.forEach(function (level3Client) { + $scope.clientIds.push(level3Client.client_id); + }); + } + }); + $scope.params.client_ids = angular.copy($scope.clientIds); + + $scope.loadTradeLogs(1); + //console.log($rootScope.currentUser.client.clientList); + }) + }else{ + $scope.loadTradeLogs(1); + } + + $scope.fullReleasePreAuth = function (){ + var params = angular.copy($scope.params); + if (params.datefrom) { + params.datefrom = $filter('date')(params.datefrom, 'yyyyMMdd'); + } + if (params.dateto) { + params.dateto = $filter('date')(params.dateto, 'yyyyMMdd'); + } + commonDialog.confirm({ + title: 'All Pre Authorization Completion', + content: 'These pre authorization orders will be taken into settlement, or you will be able to make a refund order. Are you sure?' + }).then(function(){ + $http.put('/client/partner_info/trade_logs/full_release_preauth',params).then(function (resp){ + $scope.loadTradeLogs(1); + alert("Success"); + },function (resp) { + commonDialog.alert({title: 'Error!', content: resp.data.message, type: 'error'}) + }) + }); + } + + }]); + return app; -}); \ No newline at end of file +}); diff --git a/src/main/ui/static/payment/tradelog/transflow.js b/src/main/ui/static/payment/tradelog/transflow.js index 540409d51..0d79ae790 100644 --- a/src/main/ui/static/payment/tradelog/transflow.js +++ b/src/main/ui/static/payment/tradelog/transflow.js @@ -12,7 +12,7 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { controller: 'balanceListCtrl' }) }]); - app.controller('balanceListCtrl', ['$scope', '$http', '$filter', '$timeout', 'refunder', 'orderService', function ($scope, $http, $filter, $timeout, refunder) { + app.controller('balanceListCtrl', ['$scope', '$http', '$filter', '$timeout', 'refunder', 'orderService','$sce', function ($scope, $http, $filter, $timeout, refunder,orderService,$sce) { $scope.params = {}; $scope.pagination = {}; $scope.params.clearing_status = -1; @@ -91,6 +91,7 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { params.page = page || $scope.pagination.page || 1; $http.get('/client/trans_flow', {params: params}).then(function (resp) { $scope.tradeLogs = resp.data.data; + $scope.htmlToolst(); $scope.pagination = resp.data.pagination; $scope.analysis = resp.data.analysis; $scope.analysis.refund_fee = angular.copy(Math.abs($scope.analysis.refund_fee)); @@ -214,7 +215,29 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { }else { $scope.chooseLast7Days(); } + + $scope.htmlToolst = function(){ + for(var i=0;i< $scope.tradeLogs.length;i++){ + var tax_amount = $scope.tradeLogs[i].tax_amount; + var total_surcharge= $scope.tradeLogs[i].total_surcharge; + var incremental_surcharge = $scope.tradeLogs[i].incremental_surcharge; + var channel_surcharge = $scope.tradeLogs[i].channel_surcharge; + var royal_surcharge = $scope.tradeLogs[i].royal_surcharge; + var system_surcharge = (total_surcharge-incremental_surcharge).toFixed(2); + var channel = $scope.tradeLogs[i].source; + var tip = '
    ' + + '
    手续费组成
    '+'
    '+ + '

    system:'+ system_surcharge +'

    ' + + '

    '+channel+':'+ incremental_surcharge +'

    '; + if(total_surcharge <= (royal_surcharge+incremental_surcharge+channel_surcharge+tax_amount)){ + tip = tip +'

    tax amount:'+ tax_amount +'

    '; + } + tip = tip + '
    '; + $scope.tradeLogs[i].htmlTooltip = $sce.trustAsHtml(tip); + } + }; + }]); return app; -}); \ No newline at end of file +}); From 0e4901bfb3edb339b9409806e1da440f98d9c634 Mon Sep 17 00:00:00 2001 From: duLingLing Date: Fri, 15 Nov 2019 14:17:05 +0800 Subject: [PATCH 04/28] =?UTF-8?q?Upd:=E5=95=86=E6=88=B7=E7=AB=AF=E5=A2=9E?= =?UTF-8?q?=E5=80=BC=E6=B8=A0=E9=81=93=E4=BF=A1=E6=81=AF=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/impls/ClientManagerImpl.java | 2 +- .../partner-incremental-service.js | 232 ++++++++- .../partner_incremental_service.html | 114 ++++- .../partner_incremental_service_info.html | 439 +++++++++++++++++- 4 files changed, 757 insertions(+), 30 deletions(-) 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 f6ea8af94..11f8d5d18 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 @@ -5959,7 +5959,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } - public void changeSwitchIncrementalService(String clientMoniker, JSONObject incrementalService, JSONObject manager){ + public void changeSwitchIncrementalService(String clientMoniker, JSONObject incrementalService, JSONObject manager){ JSONObject client = clientMapper.findClientByMoniker(clientMoniker); if(client==null){ throw new InvalidShortIdException(); diff --git a/src/main/ui/static/incrementalService/partner-incremental-service.js b/src/main/ui/static/incrementalService/partner-incremental-service.js index 31039d31c..ad4dcf3d6 100644 --- a/src/main/ui/static/incrementalService/partner-incremental-service.js +++ b/src/main/ui/static/incrementalService/partner-incremental-service.js @@ -21,16 +21,25 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { } }); }]); + app.controller('partnerIncrementalServiceCtrl', ['$scope', '$http', '$state', 'partner', function ($scope, $http, $state, partner) { $scope.serviceAll = []; $scope.channelOptions = []; + $scope.windowHeight = document.body.clientWidth; + document.getElementsByTagName("body"). + debugger $scope.clientInfo = angular.copy(partner.data); $scope.initDate = function(){ $http.get("/client/partner_info/"+$scope.clientInfo.client_moniker+"/incremental_service").then(function (res) { $scope.serviceAll = res.data.all_service; $scope.serviceAll.forEach(function(service){ - service.logo_url = '/static/images/'+service.channel+'.jpg' + service.logo_url = '/static/images/'+'yangmatou'+'.jpg' }) + for (var i=0;i<5;i++){ + $scope.serviceAll.forEach(function(service){ + service.logo_url = '/static/images/'+'yangmatou'+'.jpg' + }) + } $scope.channelOptions = res.data.incremental_channel; }) } @@ -39,8 +48,225 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { $state.go('partnerIncrementalServiceInfo', {service: service,partner:$scope.clientInfo}); } }]); - app.controller('partnerIncrementalServiceInfoCtrl',['$scope', '$http', '$state','$stateParams',function($scope,$http,$state,$stateParams){ - debugger + + app.controller('partnerIncrementalServiceInfoCtrl',['$scope', '$http', '$state','$stateParams','$filter', '$timeout', 'partnerRefunder', 'orderService', 'commonDialog', + function($scope,$http,$state,$stateParams,$filter, $timeout, partnerRefunder, orderService, commonDialog){ + $scope.serviceInfo = {} + $scope.initDate = function () { + $scope.serviceInfo = angular.copy($stateParams.service) + } + $scope.initDate(); + $scope.params = {source: $scope.serviceInfo.channel,status: 'PAID', channel :'ALL' ,textType: 'all', datefrom: new Date(), dateto: new Date()}; + $scope.pagination = {}; + $scope.today = new Date(); + $scope.isAll = true; + $scope.isLevel3All = true; + $scope.device_isAll = true; + $scope.dev_params = {client_type:'sunmi',limit:100}; + $scope.clients = [$scope.currentUser.client]; + $scope.showLevel3Clients = false; + + + $scope.chooseToday = function () { + $scope.params.datefrom = $scope.params.dateto = new Date(); + $scope.loadTradeLogs(1); + }; + $scope.chooseYesterday = function () { + var yesterday = new Date(); + yesterday.setDate(yesterday.getDate() - 1); + $scope.params.datefrom = $scope.params.dateto = yesterday; + $scope.loadTradeLogs(1); + }; + $scope.chooseLast7Days = function () { + $scope.params.dateto = new Date(); + var day = new Date(); + day.setDate(day.getDate() - 7); + $scope.params.datefrom = day; + $scope.loadTradeLogs(1); + }; + $scope.thisMonth = function () { + $scope.params.dateto = new Date(); + var monthBegin = new Date(); + monthBegin.setDate(1); + $scope.params.datefrom = monthBegin; + $scope.loadTradeLogs(1); + }; + $scope.lastMonth = function () { + var monthFinish = new Date(); + monthFinish.setDate(0); + $scope.params.dateto = monthFinish; + var monthBegin = new Date(); + monthBegin.setDate(0); + monthBegin.setDate(1); + $scope.params.datefrom = monthBegin; + $scope.loadTradeLogs(1); + }; + $scope.loadTradeLogs = function (page) { + var params = angular.copy($scope.params); + if (params.datefrom) { + params.datefrom = $filter('date')(params.datefrom, 'yyyyMMdd'); + } + if (params.dateto) { + params.dateto = $filter('date')(params.dateto, 'yyyyMMdd'); + } + params.page = page || $scope.pagination.page || 1; + $http.get('/client/partner_info/incremental_trade_logs', {params: params}).then(function (resp) { + $scope.tradeLogs = resp.data.data; + $scope.pagination = resp.data.pagination; + $scope.analysis = resp.data.analysis; + $scope.analysis.refund_fee = angular.copy(Math.abs($scope.analysis.refund_fee)); + }); + }; + + $scope.gatewaySelected = function (arr) { + return $scope.params.gateway != null && $scope.params.gateway.filter(function (gateway) { + return arr.indexOf(gateway) >= 0 + }).length > 0 + }; + $scope.showTradeDetail = function (order) { + orderService.clientOrderDetail(order) + }; + $scope.showPRefundLog = function (orderId) { + partnerRefunder.prefunded(orderId); + }; + $scope.newPRefund = function (orderId) { + partnerRefunder.prefund(orderId).then(function () { + $scope.loadTradeLogs(); + }); + }; + $scope.releasePreAuth = function (orderId) { + commonDialog.confirm({ + title: 'Pre Authorization Completion', + content: 'This bill will be taken into settlement, or you will be able to make a refund order. Are you sure?' + }).then(function () { + $http.put('/client/partner_info/trade_logs/' + orderId + '/release_preauth').then(function (resp) { + $scope.loadTradeLogs(); + }, function (resp) { + commonDialog.alert({title: 'Error!', content: resp.data.message, type: 'error'}) + }) + }) + }; + $scope.alerts = []; + $scope.$on('pe_order_paid', function (evt, order) { + $scope.alerts.push(order); + $timeout(function () { + $scope.alerts.splice(0, 1); + }, 10000); + $scope.loadTradeLogs(); + }); + $scope.chooseClient = function (client) { + if (client == 'all') { + $scope.params.client_ids = angular.copy($scope.clientIds); + $scope.isAll = true; + $scope.chooseClientId = ''; + $scope.dev_params.client_ids = angular.copy($scope.clientIds); + $scope.showLevel3Clients = false; + $scope.listDevices(); + } else if (client.level3Clients) { + $scope.chooseClientId = client.client_id; + $scope.showLevel3Clients = true; + $scope.level3Clients = client.level3Clients; + $scope.isAll = false; + $scope.level3ClientIds = []; + $scope.level3ClientIds.push(client.client_id); + client.level3Clients.forEach(function (client) { + $scope.level3ClientIds.push(client.client_id); + }); + $scope.chooseLevel3Client("all"); + return; + } else { + $scope.chooseClientId = client.client_id; + $scope.params.client_ids = [client.client_id]; + $scope.isAll = false; + $scope.dev_params.client_ids = [client.client_id]; + $scope.showLevel3Clients = false; + $scope.listDevices(); + } + $scope.loadTradeLogs(); + }; + + $scope.chooseLevel3Client = function (client) { + if (client == 'all') { + $scope.params.client_ids = angular.copy($scope.level3ClientIds); + $scope.isLevel3All = true; + $scope.chooseLevel3ClientId = ''; + $scope.dev_params.client_ids = angular.copy($scope.level3ClientIds); + $scope.listDevices(); + } else { + $scope.chooseLevel3ClientId = client.client_id; + $scope.params.client_ids = [client.client_id]; + $scope.isLevel3All = false; + $scope.dev_params.client_ids = [client.client_id]; + $scope.listDevices(); + } + $scope.loadTradeLogs(); + }; + + $scope.listDevices = function () { + var params = angular.copy($scope.dev_params) + $http.get('/client/partner_info/devices', {params: params}).then(function (resp) { + $scope.devices = resp.data.data; + }) + }; + $scope.chooseDevices = function (dev_id) { + if(dev_id == 'all'){ + $scope.chooseDevice_id = ''; + $scope.params.dev_id = null; + $scope.device_isAll = true; + $scope.loadTradeLogs(1); + }else { + $scope.chooseDevice_id = dev_id; + $scope.params.dev_id = dev_id; + $scope.device_isAll = false; + $scope.loadTradeLogs(1); + } + }; + $scope.listDevices(); + + if ($scope.currentUser.client.has_children) { + $http.get('/client/partner_info/sub_partners').then(function (resp) { + var clientList = resp.data; + clientList.forEach(function (client) { + $scope.clients.push(client); + }); + $scope.clientIds = []; + $scope.clients.forEach(function (client) { + $scope.clientIds.push(client.client_id); + if (client.level3Clients) { + client.level3Clients.forEach(function (level3Client) { + $scope.clientIds.push(level3Client.client_id); + }); + } + }); + $scope.params.client_ids = angular.copy($scope.clientIds); + + $scope.loadTradeLogs(1); + //console.log($rootScope.currentUser.client.clientList); + }) + }else{ + $scope.loadTradeLogs(1); + } + + $scope.fullReleasePreAuth = function (){ + var params = angular.copy($scope.params); + if (params.datefrom) { + params.datefrom = $filter('date')(params.datefrom, 'yyyyMMdd'); + } + if (params.dateto) { + params.dateto = $filter('date')(params.dateto, 'yyyyMMdd'); + } + commonDialog.confirm({ + title: 'All Pre Authorization Completion', + content: 'These pre authorization orders will be taken into settlement, or you will be able to make a refund order. Are you sure?' + }).then(function(){ + $http.put('/client/partner_info/trade_logs/full_release_preauth',params).then(function (resp){ + $scope.loadTradeLogs(1); + alert("Success"); + },function (resp) { + commonDialog.alert({title: 'Error!', content: resp.data.message, type: 'error'}) + }) + }); + } }]); return app; }); diff --git a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html index 7bc4bb1ec..5c82c1f48 100644 --- a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html +++ b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html @@ -1,20 +1,102 @@ -
    -

    {{serviceAll.length>0?'已开通增值服务':'您尚未开通任何增值服务'}}

    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    + +
    +

    Service List

    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + {{service.channel+'小程序'}} +
    +
    +
    +
    + +
    +
    + {{service.incremental_mode==1?'固定手续费':'固定金额扣款'}} +
    +
    +
    +
    + +
    +
    + {{service.incremental_mode==1?service.incremental_rate_value+'%':service.total_incremental_amount}} +
    +
    +
    +

    您尚未开通任何增值渠道点击去开通

    \ No newline at end of file diff --git a/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html b/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html index 566549bdf..8360463c6 100644 --- a/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html +++ b/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html @@ -1,10 +1,429 @@ - - - - - Title - - - - - \ No newline at end of file + +
    +

    + + {{serviceInfo.channel}} + Service Info

    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + {{serviceInfo.incremental_mode==1?'固定手续费':'固定金额扣款' }} +
    +
    + + {{serviceInfo.incremental_rate_value+'%'}} +
    +
    + + {{serviceInfo.incremental_rate_value}} +
    +
    + + {{serviceInfo.create_time }} +
    +
    + + {{serviceInfo.is_valid?'启用':'禁用' }} +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +

    + All | + Wechat Pay | + Alipay | + AlipayOnline | + BestPay | + JD Pay | + HF Pay | + RPay+ | + Yeepay | + LakalaPay +

    +
    +
    +
    + +
    +
    +
    + +
    + ~ +
    + +
    + +
    + Today +
    +
    + Yesterday +
    + + + +
    + +
    + +
    +
    + +
    +

    + All + +

    +
    +
    +
    + +
    +

    + All + +

    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + Transaction Amount + + ( {{analysis.order_count}} Orders ) +
    +
    +
    + +
    +
    + +
    + Input Amount + + ( {{analysis.pre_display_amount | currency:'pre authorization '}} ) +
    +
    +
    +
    +
    + +
    + Input Amount + + + ( {{analysis.pre_display_amount | currency:'pre authorization '}} ) + + + + ( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} ) + +
    +
    +
    +
    +
    + +
    + Refund Amount + + + ({{analysis.pre_refund_fee|currency:'pre authorization '}}) + +
    +
    +
    +
    +
    + +
    + Incremental Surcharge + + +
    +
    +
    +
    +
    +
    +
    +
    +

    Orders

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Client Order IDOrder IDAmountInput AmountSystem RateSystem ProfitIncremental RateIncremental ProfitStatusCreate TimeOperation
    + + + + + + + BestPay + Alipay + AlipayOnline + + + + + + {{trade.order_id}} + + {{trade.total_amount|currency:trade.currency+' '}} + (-{{trade.refund_fee}}) + {{(trade.surcharge_rate * 100 - trade.rate_value)| number : 2}}%{{(trade.total_surcharge-trade.incremental_surcharge) | number : 2 | currency:trade.currency}}{{trade.source}}:{{(trade.rate_value) | number : 2}}%{{trade.source}}:{{trade.incremental_surcharge | currency:trade.currency}}{{0.00 | currency:trade.currency}} + + + + +
    + +
    + +
    +
    +
    +
    +
    \ No newline at end of file From 4da2eb338ab711b71a6351078a9c019b92ff6a88 Mon Sep 17 00:00:00 2001 From: duLingLing Date: Fri, 15 Nov 2019 16:27:01 +0800 Subject: [PATCH 05/28] =?UTF-8?q?Upd:=E6=B7=BB=E5=8A=A0=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=EF=BC=8C=E6=A0=B9=E6=8D=AE=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=90=8C=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/impls/ClientManagerImpl.java | 105 +++++++++--------- .../manage/signin/web/SignInController.java | 2 +- src/main/ui/index.html | 2 +- .../partner-incremental-service.js | 9 +- .../partner_incremental_service.html | 77 +++++++------ .../static/payment/partner/partner-manage.js | 2 +- .../templates/incremental_service_dialog.html | 32 +++--- 7 files changed, 118 insertions(+), 111 deletions(-) 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 11f8d5d18..cf3e60100 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 @@ -106,7 +106,6 @@ import org.springframework.ui.Model; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine; @@ -124,11 +123,12 @@ import java.math.RoundingMode; import java.net.URISyntaxException; import java.net.URL; import java.net.URLDecoder; -import java.security.*; +import java.security.InvalidParameterException; +import java.security.KeyPair; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; -import java.util.List; import java.util.*; +import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -271,8 +271,6 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid @Resource private ClientConfigMapper clientConfigMapper; @Resource - private PermissionPartnerModuleMapper permissionPartnerModuleMapper; - @Resource private PermissionPartnerManagerImpl permissionPartnerManagerImpl; @Resource private RiskAttentionMerchantsMapper riskAttentionMerchantsMapper; @@ -360,7 +358,6 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (manager != null) { checkClientOrg(manager, client); } - String same_phone = clientMapper.findSamePhone(client.getString("contact_phone")).getString("a"); if (same_phone != null && client.getString("contact_phone") != null && same_phone.contains(" ")) { same_phone = same_phone.replace(client.getString("client_moniker"), ""); @@ -1584,7 +1581,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid private void checkPhoneAndWechatExist(NewAccountBean account) { List accounts = clientAccountMapper.findByPhone(account.getContactPhone(), account.getNation_code().startsWith("+") ? account.getNation_code() : "+" + account.getNation_code()); - if ( accounts != null && accounts.size()>0) { + if (accounts != null && accounts.size() > 0) { throw new BadRequestException("Mobile phone number has been bound to other accounts"); } } @@ -1657,13 +1654,13 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (account == null) { throw new BadRequestException("account not exists"); } - if(user.getString("openid")!=null && !"".equals(user.getString("openid"))) { + if (user.getString("openid") != null && !"".equals(user.getString("openid"))) { if (clientAccountMapper.findByWechatOpenId(user.getString("openid")).size() > 0) { throw new BadRequestException("The WeChat has been linked to other accounts"); } } - if(user.getString("unioinid")!=null && !"".equals(user.getString("unioinid"))){ - if(clientAccountMapper.findByWechatUnionId(user.getString("unioinid")).size()>0 ){ + if (user.getString("unioinid") != null && !"".equals(user.getString("unioinid"))) { + if (clientAccountMapper.findByWechatUnionId(user.getString("unioinid")).size() > 0) { throw new BadRequestException("The WeChat has been linked to other accounts"); } } @@ -5903,76 +5900,76 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return key; } - public JSONObject partnerIncrementalService(String clientMoniker){ + public JSONObject partnerIncrementalService(String clientMoniker) { JSONObject client = clientMapper.findClientByMoniker(clientMoniker); - if(client==null){ + if (client == null) { throw new InvalidShortIdException(); } List service = clientIncrementalMapper.findAllByclientMoniker(client.getInteger("client_id")); - List incrementalChannels = new ArrayList<>(); + List incrementalChannels = new ArrayList<>(); for (IncrementalChannel e : IncrementalChannel.values()) { boolean exist = false; - for(JSONObject s : service){ - exist = e.getChannel().equals(s.getString("channel")); - if(exist){ - break; - } - } - if(!exist){ - incrementalChannels.add(e.getChannel()); - } + for (JSONObject s : service) { + exist = e.getChannel().equals(s.getString("channel")); + if (exist) { + break; + } + } + if (!exist) { + incrementalChannels.add(e.getChannel()); + } } incrementalChannels.remove("system"); - return new JSONObject(){{ - put("all_service",service); - put("incremental_channel",incrementalChannels); - }}; + return new JSONObject() {{ + put("all_service", service); + put("incremental_channel", incrementalChannels); + }}; } - public void changePartnerIncrementalService(String clientMoniker, JSONObject incrementalService,JSONObject manager){ + public void changePartnerIncrementalService(String clientMoniker, JSONObject incrementalService, JSONObject manager) { JSONObject client = clientMapper.findClientByMoniker(clientMoniker); - if(client==null){ + if (client == null) { throw new InvalidShortIdException(); } - JSONObject existIncrementalService = clientIncrementalMapper.findByClinetIdAndChannel(client.getInteger("client_id"),incrementalService.getString("channel")); + JSONObject existIncrementalService = clientIncrementalMapper.findByClinetIdAndChannel(client.getInteger("client_id"), incrementalService.getString("channel")); JSONObject saveIncrementalService = new JSONObject(); - if(existIncrementalService==null){ - saveIncrementalService.put("incremental_id",UUID.randomUUID().toString()); - saveIncrementalService.put("channel",incrementalService.getString("channel")); - saveIncrementalService.put("create_time",new Date()); - saveIncrementalService.put("update_time",new Date()); - saveIncrementalService.put("is_valid",1); - }else{ - saveIncrementalService.put("incremental_id",incrementalService.getString("incremental_id")); - saveIncrementalService.put("update_time",new Date()); - } - saveIncrementalService.put("client_id",client.getInteger("client_id")); - saveIncrementalService.put("operator",manager.getString("display_name")); - saveIncrementalService.put("incremental_mode",incrementalService.getInteger("incremental_mode")); - saveIncrementalService.put("incremental_rate_value",incrementalService.getInteger("incremental_mode")==1?incrementalService.getString("incremental_rate_value"):0); - saveIncrementalService.put("total_incremental_amount",incrementalService.getInteger("incremental_mode")!=1?incrementalService.getString("total_incremental_amount"):0); - if(existIncrementalService==null){ + if (existIncrementalService == null) { + saveIncrementalService.put("incremental_id", UUID.randomUUID().toString()); + saveIncrementalService.put("channel", incrementalService.getString("channel")); + saveIncrementalService.put("create_time", new Date()); + saveIncrementalService.put("update_time", new Date()); + saveIncrementalService.put("is_valid", 1); + } else { + saveIncrementalService.put("incremental_id", incrementalService.getString("incremental_id")); + saveIncrementalService.put("update_time", new Date()); + } + saveIncrementalService.put("client_id", client.getInteger("client_id")); + saveIncrementalService.put("operator", manager.getString("display_name")); + saveIncrementalService.put("incremental_mode", incrementalService.getInteger("incremental_mode")); + saveIncrementalService.put("incremental_rate_value", incrementalService.getInteger("incremental_mode") == 1 ? incrementalService.getString("incremental_rate_value") : 0); + saveIncrementalService.put("total_incremental_amount", incrementalService.getInteger("incremental_mode") != 1 ? incrementalService.getString("total_incremental_amount") : 0); + if (existIncrementalService == null) { clientIncrementalMapper.save(saveIncrementalService); - }else{ + } else { clientIncrementalMapper.update(saveIncrementalService); } } - public void changeSwitchIncrementalService(String clientMoniker, JSONObject incrementalService, JSONObject manager){ + public void changeSwitchIncrementalService(String clientMoniker, JSONObject incrementalService, JSONObject manager) { JSONObject client = clientMapper.findClientByMoniker(clientMoniker); - if(client==null){ + if (client == null) { throw new InvalidShortIdException(); } - JSONObject existIncrementalService = clientIncrementalMapper.findByClinetIdAndChannel(client.getInteger("client_id"),incrementalService.getString("channel")); - if(existIncrementalService==null){ + JSONObject existIncrementalService = clientIncrementalMapper.findByClinetIdAndChannel(client.getInteger("client_id"), incrementalService.getString("channel")); + if (existIncrementalService == null) { throw new BadRequestException("Incremental service is not exist"); } - existIncrementalService.put("update_time",new Date()); - existIncrementalService.put("incremental_id",incrementalService.getString("incremental_id")); - existIncrementalService.put("is_valid",incrementalService.getInteger("is_valid")); - existIncrementalService.put("operator",manager.getString("display_name")); + existIncrementalService.put("update_time", new Date()); + existIncrementalService.put("incremental_id", incrementalService.getString("incremental_id")); + existIncrementalService.put("is_valid", incrementalService.getInteger("is_valid")); + existIncrementalService.put("operator", manager.getString("display_name")); clientIncrementalMapper.update(existIncrementalService); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/web/SignInController.java b/src/main/java/au/com/royalpay/payment/manage/signin/web/SignInController.java index 0bc258cfb..b7e7a3f67 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/web/SignInController.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/web/SignInController.java @@ -60,7 +60,6 @@ public class SignInController { private ManagerTodoNoticeProvider[] managerTodoNoticeProviders; @Resource private ClientManager clientManager; - @Resource private ManagerAccountsService managerAccountsService; @@ -191,6 +190,7 @@ public class SignInController { @PartnerMapping(value = "/current_partner", method = RequestMethod.GET) public JSONObject partnerLoginStatus(@ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject partner) { + partner.put("has_incremental_setvice",clientManager.partnerIncrementalService(partner.getString("client_moniker")).getJSONArray("all_service").size()>0); return partner; } diff --git a/src/main/ui/index.html b/src/main/ui/index.html index 16eb1a20b..2d9bedac9 100644 --- a/src/main/ui/index.html +++ b/src/main/ui/index.html @@ -1040,7 +1040,7 @@ margin-bottom: 10%;"/> -
  • +
  • R Service
  • diff --git a/src/main/ui/static/incrementalService/partner-incremental-service.js b/src/main/ui/static/incrementalService/partner-incremental-service.js index ad4dcf3d6..529c7799b 100644 --- a/src/main/ui/static/incrementalService/partner-incremental-service.js +++ b/src/main/ui/static/incrementalService/partner-incremental-service.js @@ -26,20 +26,13 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { $scope.serviceAll = []; $scope.channelOptions = []; $scope.windowHeight = document.body.clientWidth; - document.getElementsByTagName("body"). - debugger $scope.clientInfo = angular.copy(partner.data); $scope.initDate = function(){ $http.get("/client/partner_info/"+$scope.clientInfo.client_moniker+"/incremental_service").then(function (res) { $scope.serviceAll = res.data.all_service; $scope.serviceAll.forEach(function(service){ - service.logo_url = '/static/images/'+'yangmatou'+'.jpg' + service.logo_url = '/static/images/'+service.channel+'.jpg' }) - for (var i=0;i<5;i++){ - $scope.serviceAll.forEach(function(service){ - service.logo_url = '/static/images/'+'yangmatou'+'.jpg' - }) - } $scope.channelOptions = res.data.incremental_channel; }) } diff --git a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html index 5c82c1f48..759fe5e58 100644 --- a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html +++ b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html @@ -30,19 +30,21 @@ } .img_auto_height_width { - width: 100%; - height: 100%; + width: 75%; + height: 60%; display: flex; align-items: center; justify-content: center; - padding-left: 12%; + padding-left: 32%; text-align: center; + margin-bottom: 30px; } .label-right{ float: right; } .border-show{ margin: 4px 0px; + font-size: 16px; } .service-background:hover{ background: #7C8085; @@ -62,41 +64,52 @@
  • Service List
  • -
    +
    -
    -
    - -
    -
    - -
    -
    - {{service.channel+'小程序'}} -
    -
    -
    -
    - -
    -
    - {{service.incremental_mode==1?'固定手续费':'固定金额扣款'}} -
    -
    -
    -
    - -
    -
    - {{service.incremental_mode==1?service.incremental_rate_value+'%':service.total_incremental_amount}} +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + {{service.channel+'小程序'}} +
    +
    +
    +
    + +
    +
    + {{service.incremental_mode==1?'固定手续费':'固定金额扣款'}} +
    +
    +
    +
    + +
    +
    + {{service.incremental_mode==1?service.incremental_rate_value+'%':service.total_incremental_amount}} +
    +
    +
    +
    + +
    +
    + {{service.is_valid?'启用':'禁用' }} +
    +
    +
    -

    您尚未开通任何增值渠道点击去开通

    \ No newline at end of file diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 571f4e043..9fb781d55 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -5295,7 +5295,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter $http.post('/sys/partners/'+params.clientMoniker+'/incremental_service',$scope.model).then(function(res){ commonDialog.alert({ title: 'Success', - content: $scope.isCreate?'Create':'Update'+' Service Successful!', + content: $scope.isCreate?'Create Service Successful!':'Update Service Successful!', type: 'success' }); $scope.ctrl.sending = false; diff --git a/src/main/ui/static/payment/partner/templates/incremental_service_dialog.html b/src/main/ui/static/payment/partner/templates/incremental_service_dialog.html index 2dd5e9ec9..0c2de0935 100644 --- a/src/main/ui/static/payment/partner/templates/incremental_service_dialog.html +++ b/src/main/ui/static/payment/partner/templates/incremental_service_dialog.html @@ -6,10 +6,9 @@
    -
    - +
    @@ -31,31 +30,36 @@ Required Field
    -
    > - +
    +
    - +
    %
    -
    +
    - No less than 0.0% + No less than 0% +
    +
    + No less than 100%
    Required Field
    -
    -
    > - +
    +
    -
    + min="0" maxlength="20" id="total_incremental_amount" required> +
    +
    + Required Field +
    +
    From 29873c5006741d2525bb75a48299414bb1de9488 Mon Sep 17 00:00:00 2001 From: duLingLing Date: Fri, 15 Nov 2019 17:20:18 +0800 Subject: [PATCH 06/28] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E5=A2=9E=E5=80=BC=E6=9C=8D=E5=8A=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/partner_incremental_service.html | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html index 759fe5e58..ae08f1c5a 100644 --- a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html +++ b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html @@ -30,14 +30,15 @@ } .img_auto_height_width { - width: 75%; - height: 60%; + width: 65%; + height: 55%; display: flex; align-items: center; justify-content: center; - padding-left: 32%; + padding-left: 40%; text-align: center; margin-bottom: 30px; + margin-top: 30px; } .label-right{ float: right; @@ -47,15 +48,17 @@ font-size: 16px; } .service-background:hover{ - background: #7C8085; + background: #C7CBD0; color: white; } .service-background{ cursor:pointer; color: #7C8085; background: #ECF0F5; - padding: 10px 20px ; - width: 70%; + padding-top: 10px ; + width: 85%; + padding-bottom: 10px; + border-radius:10px; }
    @@ -71,7 +74,7 @@
    -
    +
    From f7c049a2d6282457afaf40a7e313b4afc4e5701a Mon Sep 17 00:00:00 2001 From: duLingLing Date: Mon, 18 Nov 2019 18:03:53 +1200 Subject: [PATCH 07/28] =?UTF-8?q?Upd:App=E6=9F=A5=E7=9C=8B=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E6=B5=81=E6=B0=B4=E6=B1=87=E6=80=BB=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../core/impls/RetailAppServiceImp.java | 3 --- .../manage/tradelog/beans/TradeLogQuery.java | 24 ++++++++----------- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/pom.xml b/pom.xml index c6167da35..92e9ca0c3 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 1.2.84 + 1.2.85 UTF-8 1.4.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java index e040bfce4..8c5e25cc9 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java @@ -964,9 +964,6 @@ public class RetailAppServiceImp implements RetailAppService { ArrayList dateContains = new ArrayList<>(); for (JSONObject order : orders) { Calendar calendar = (Calendar) order.get("transaction_time"); - if (timezone != null) { - calendar.setTimeZone(TimeZone.getTimeZone(timezone)); - } String tradeDate = DateFormatUtils.format(calendar, "yyyy-MM-dd", calendar.getTimeZone()); String tradeTime = DateFormatUtils.format(calendar, "HH:mm:ss", calendar.getTimeZone()); order.put("trade_date", tradeDate); diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java index f2c40c9b2..b5f92b810 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java @@ -2,16 +2,15 @@ package au.com.royalpay.payment.manage.tradelog.beans; import au.com.royalpay.payment.core.beans.OrderStatus; import au.com.royalpay.payment.core.beans.PayChannel; -import au.com.royalpay.payment.core.exceptions.ParamInvalidException; import au.com.royalpay.payment.tools.defines.TradeType; -import au.com.royalpay.payment.tools.utils.TimeZoneUtils; import com.alibaba.fastjson.JSONObject; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; +import org.joda.time.format.DateTimeFormat; import java.text.DateFormat; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -53,19 +52,16 @@ public class TradeLogQuery { public JSONObject toParams(String timezone) { JSONObject params = new JSONObject(); if (datefrom != null) { - try { - params.put("from", TimeZoneUtils.formatTime(format.parse(datefrom),"yyyy-MM-dd HH:mm:ss",timezone!=null?timezone:"Australia/Melbourne")); - } catch (ParseException e) { - throw new ParamInvalidException("datefrom", "error.payment.valid.invalid_date_format"); - } + DateTime fromDate = DateTime.parse(datefrom, DateTimeFormat.forPattern("yyyyMMdd")) + .withZoneRetainFields(DateTimeZone.forTimeZone(TimeZone.getTimeZone(StringUtils.isNotBlank(timezone) ? timezone : "Australia/Melbourne"))).withZone(DateTimeZone.getDefault()); + params.put("from", fromDate.toDate()); } if (dateto != null) { - try { - params.put("to", TimeZoneUtils.formatTime(DateUtils.addDays(format.parse(dateto), 1),"yyyy-MM-dd HH:mm:ss",timezone!=null?timezone:"Australia/Melbourne")); - } catch (ParseException e) { - throw new ParamInvalidException("dateto", "error.payment.valid.invalid_date_format"); - } + DateTime toDate = DateTime.parse(dateto, DateTimeFormat.forPattern("yyyyMMdd")) + .withZoneRetainFields(DateTimeZone.forTimeZone(TimeZone.getTimeZone(StringUtils.isNotBlank(timezone) ? timezone : "Australia/Melbourne"))).withZone(DateTimeZone.getDefault()); + params.put("to", DateUtils.addDays(toDate.toDate(), 1)); } + if (StringUtils.isNotBlank(searchText)) { params.put("search_text", searchText); if (StringUtils.isNotBlank(textType)) { From a8f659549cba623f0108d24ae66fc4c700e56da2 Mon Sep 17 00:00:00 2001 From: duLingLing Date: Mon, 18 Nov 2019 19:02:02 +1200 Subject: [PATCH 08/28] =?UTF-8?q?Upd:=E4=BA=A4=E6=98=93=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=9D=A1=E4=BB=B6-=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E6=97=A0=E8=BF=9B=E8=A1=8C=E6=97=B6=E5=8C=BA=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../manage/appclient/beans/AppQueryBean.java | 20 +++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 92e9ca0c3..d19b81d7a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 1.2.85 + 1.2.86 UTF-8 1.4.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/beans/AppQueryBean.java b/src/main/java/au/com/royalpay/payment/manage/appclient/beans/AppQueryBean.java index c6ca197eb..560b13ea4 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/beans/AppQueryBean.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/beans/AppQueryBean.java @@ -42,16 +42,20 @@ public class AppQueryBean { public JSONObject toParams() { JSONObject params = new JSONObject(); if (begin != null) { - DateTime fromDate = DateTime.parse(begin, DateTimeFormat.forPattern("yyyyMMdd")) - .withZoneRetainFields(DateTimeZone.forTimeZone(TimeZone.getTimeZone(StringUtils.isNotBlank(timezone)?timezone:"Australia/Melbourne"))).withZone(DateTimeZone.getDefault()); - params.put("begin", fromDate.toDate()); - params.put("from", fromDate.toDate()); + try { + params.put("begin", format.parse(begin)); + params.put("from", format.parse(begin)); + } catch (ParseException e) { + throw new ParamInvalidException("begin", "error.payment.valid.invalid_date_format"); + } } if (end != null) { - DateTime toDate = DateTime.parse(end, DateTimeFormat.forPattern("yyyyMMdd")) - .withZoneRetainFields(DateTimeZone.forTimeZone(TimeZone.getTimeZone(StringUtils.isNotBlank(timezone)?timezone:"Australia/Melbourne"))).withZone(DateTimeZone.getDefault()); - params.put("end", DateUtils.addDays(toDate.toDate(), 1)); - params.put("to", DateUtils.addDays(toDate.toDate(), 1)); + try { + params.put("end", DateUtils.addDays(format.parse(end), 1)); + params.put("to", DateUtils.addDays(format.parse(end), 1)); + } catch (ParseException e) { + throw new ParamInvalidException("end", "error.payment.valid.invalid_date_format"); + } } if (gateway != null && gateway.length > 0) { List tradeTypes = new ArrayList<>(); From 1054f018b0e9093fe59a1e04153b9e8a3ed3cdbe Mon Sep 17 00:00:00 2001 From: liuxinxin Date: Mon, 18 Nov 2019 16:32:44 +0800 Subject: [PATCH 09/28] =?UTF-8?q?=E3=80=90R=E3=80=91=E5=95=86=E6=88=B7?= =?UTF-8?q?=E7=AB=AF&=E8=BF=90=E8=90=A5=E7=AB=AF=E8=AE=A2=E5=8D=95source?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/core/impl/CleanServiceImpl.java | 7 +++++++ .../tradelog/core/impls/TradeLogServiceImpl.java | 3 ++- .../payment/manage/mappers/payment/OrderMapper.xml | 4 ++++ .../manage/mappers/payment/TransactionMapper.xml | 4 +++- .../partner_incremental_service_info.html | 3 ++- .../templates/partner_incremental_trade_logs.html | 1 + .../templates/partner_settlement_dialog.html | 14 ++++++++++++-- 7 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java index bdce657cf..d26342ad5 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java @@ -5,6 +5,7 @@ import au.com.royalpay.payment.core.exceptions.InvalidShortIdException; import au.com.royalpay.payment.core.tasksupport.SettlementSupport; import au.com.royalpay.payment.manage.management.clearing.core.CleanService; import au.com.royalpay.payment.manage.mappers.log.*; +import au.com.royalpay.payment.manage.mappers.payment.SysClientIncrementalMapper; import au.com.royalpay.payment.manage.mappers.payment.TaskManualSettleMapper; import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper; import au.com.royalpay.payment.manage.mappers.system.*; @@ -133,6 +134,8 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider @Resource private ClearingDistributedSurchargeMapper clearingDistributedSurchargeMapper; @Resource + private SysClientIncrementalMapper sysClientIncrementalMapper; + @Resource private Locker locker; @Resource @@ -727,6 +730,10 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider } List transactions = transactionMapper.listTransactionsOfClearingOrder(clearClient.getIntValue("clear_detail_id"), new PageBounds(Order.formString("order_id.asc"))); + + for (JSONObject transaction : transactions) { + transaction.put("rate_value",StringUtils.defaultString(sysClientIncrementalMapper.findByChannelAndClientId(transaction.getString("client_id"),transaction.getString("source")) ,"0")); + } String timezone_client = client.getString("timezone"); if (timezone_client != null) { transactions.parallelStream().forEach(p -> { 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 3fe129fdd..f5a1d60c0 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 @@ -803,6 +803,7 @@ public class TradeLogServiceImpl implements TradeLogService { row.createCell(18, Cell.CELL_TYPE_STRING).setCellValue(data.getString("gateway")); row.createCell(19, Cell.CELL_TYPE_STRING).setCellValue(data.getString("order_detail")); row.createCell(20, Cell.CELL_TYPE_STRING).setCellValue(data.getString("dev_id")); + row.createCell(21, Cell.CELL_TYPE_STRING).setCellValue(StringUtils.defaultString(data.getString("incremental_surcharge"),"0.0000")); } @Override @@ -1452,7 +1453,7 @@ public class TradeLogServiceImpl implements TradeLogService { String[] title = {"Transaction Time", "Client Order ID", "System Order ID", "Client Moniker", "Short Name", "Order ID", "Channel", "Input Amount", "Transaction Amount", "Transaction Currency", "Clearing Amount", "Settle Amount", "Surcharge", "GST", "Settle Date", "Exchange Rate", - "Transaction Type", "Clearing Status", "Gateway", "Remark", "Dev No"}; + "Transaction Type", "Clearing Status", "Gateway", "Remark", "Dev No","Incremental Surcharge"}; for (int j = 0; j < title.length; j++) { row.createCell(j, Cell.CELL_TYPE_STRING).setCellValue(title[j]); } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml index 43ec6db95..de1110881 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml @@ -587,6 +587,10 @@ display_amount, ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency!='CNY',l.incremental_surcharge,0)),0) incremental_surcharge, + ifnull(sum(if(l.transaction_type='Debit' and l.refund_id is not null and l.currency!='CNY',l.incremental_surcharge,0)),0) + refund_incremental_surcharge, + ifnull(sum(if(l.currency!='CNY',l.incremental_surcharge,0)),0) + all_incremental_surcharge, ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency!='CNY' and l.pre_authorization=1,l.display_amount,0)),0) pre_display_amount, ifnull(sum(if(l.transaction_type='Credit' and l.refund_id is null and l.currency='CNY',l.display_amount,0)),0) 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 b12b9714b..70e315367 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 @@ -949,13 +949,15 @@ Date: Tue, 19 Nov 2019 10:04:45 +0800 Subject: [PATCH 13/28] =?UTF-8?q?Upd:=E8=B0=83=E6=95=B4R=20Service=20?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partner_incremental_service.html | 46 ++++++++++++------- .../partner_incremental_service_info.html | 12 ++--- .../templates/incremental_service.html | 4 +- .../partner/templates/partner_detail.html | 2 +- 4 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html index ae08f1c5a..82be10daa 100644 --- a/src/main/ui/static/incrementalService/templates/partner_incremental_service.html +++ b/src/main/ui/static/incrementalService/templates/partner_incremental_service.html @@ -46,35 +46,41 @@ .border-show{ margin: 4px 0px; font-size: 16px; - } - .service-background:hover{ - background: #C7CBD0; - color: white; + border-bottom: 1px solid ; + border-bottom-color: #F06101; + width: 90%; + text-align: center; + margin-left: 5%; } .service-background{ - cursor:pointer; - color: #7C8085; - background: #ECF0F5; padding-top: 10px ; - width: 85%; - padding-bottom: 10px; + border: 2px solid #F06101; + margin: 30px 12%; border-radius:10px; } + .service-info-button{ + cursor:pointer; + height: 35px; + line-height: 35px; + width: 100% ; + text-align: center; + color: white; + }
    -

    Service List

    +

    R Service

    -
    -
    -
    -
    +
    +
    +
    +
    @@ -100,12 +106,18 @@ {{service.incremental_mode==1?service.incremental_rate_value+'%':service.total_incremental_amount}}
    -
    +
    - {{service.is_valid?'启用':'禁用' }} + {{service.is_valid?'已启用':'已禁用' }} +
    +
    +
    +
    + 查看详情
    diff --git a/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html b/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html index 69ec63dab..723cf378b 100644 --- a/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html +++ b/src/main/ui/static/incrementalService/templates/partner_incremental_service_info.html @@ -104,13 +104,9 @@ {{serviceInfo.incremental_mode==1?'固定手续费':'固定金额扣款' }}
    -
    - - {{serviceInfo.incremental_rate_value+'%'}} -
    -
    - - {{serviceInfo.incremental_rate_value}} +
    + + {{serviceInfo.incremental_mode==1?serviceInfo.incremental_rate_value+'%':serviceInfo.total_incremental_amount}}
    @@ -118,7 +114,7 @@
    - {{serviceInfo.is_valid?'启用':'禁用' }} + {{serviceInfo.is_valid?'已启用':'已禁用' }}
    diff --git a/src/main/ui/static/payment/partner/templates/incremental_service.html b/src/main/ui/static/payment/partner/templates/incremental_service.html index 764ee448b..470294117 100644 --- a/src/main/ui/static/payment/partner/templates/incremental_service.html +++ b/src/main/ui/static/payment/partner/templates/incremental_service.html @@ -9,7 +9,7 @@ Channel Mode Rate Value - Total Amount + Amount Operator Create Time Update Time @@ -28,7 +28,7 @@ {{service.update_time}} | - {{service.is_valid?'Disabled':'Enable'}} + {{service.is_valid?'禁用':'启用'}} diff --git a/src/main/ui/static/payment/partner/templates/partner_detail.html b/src/main/ui/static/payment/partner/templates/partner_detail.html index d0c9800e6..b30926745 100644 --- a/src/main/ui/static/payment/partner/templates/partner_detail.html +++ b/src/main/ui/static/payment/partner/templates/partner_detail.html @@ -296,7 +296,7 @@ Permissions
  • - Incremental Service + R Service
  • From a1da428d5655b8783086665ddb65f966820a7277 Mon Sep 17 00:00:00 2001 From: liuxinxin Date: Tue, 19 Nov 2019 10:07:42 +0800 Subject: [PATCH 14/28] =?UTF-8?q?=E3=80=90R=E3=80=91=E5=95=86=E6=88=B7?= =?UTF-8?q?=E7=AB=AF&=E8=BF=90=E8=90=A5=E7=AB=AF=E8=AE=A2=E5=8D=95source?= =?UTF-8?q?=E5=A4=84=E7=90=86=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/mappers/cashback/CashbackRecordsMapper.xml | 4 ++-- .../cashback/templates/partner_cashback_records.html | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/cashback/CashbackRecordsMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/cashback/CashbackRecordsMapper.xml index c511a96e9..d9ce45e15 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/cashback/CashbackRecordsMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/cashback/CashbackRecordsMapper.xml @@ -19,8 +19,8 @@ + ,i.incremental_rate as rate_value FROM pmt_orders o INNER JOIN sys_clients p ON p.client_id=o.client_id and p.is_valid=1 @@ -551,6 +552,7 @@ and p.client_id=#{client_id} LEFT JOIN pmt_transactions t on t.order_id=o.order_id and t.refund_id is null and t.transaction_type='Credit' + LEFT JOIN pmt_incremental_detail i on i.transaction_id = t.transaction_id and o.create_time >= #{from} and o.create_time < #{to} From fcbaeae8088e3bdbc314ddb8d3e8197468cfa19a Mon Sep 17 00:00:00 2001 From: luoyang Date: Thu, 21 Nov 2019 14:28:10 +0800 Subject: [PATCH 28/28] add R services --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 80ca87f6b..cbab74ac7 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 1.2.88 + 1.2.89 UTF-8 1.4.0