From 9df05a5ee10bb640624376e30e08fa98bb31eef4 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 9 Jan 2018 19:36:34 +0800 Subject: [PATCH] update --- .../core/CityPartnerPrizeService.java | 12 +- .../impls/CityPartnerPrizeServiceImpl.java | 192 +++++++++++++----- .../web/CityPartnerPrizeController.java | 75 ++++++- .../mappers/payment/TransactionMapper.java | 2 +- .../FinancialAgentCommissionDetailMapper.xml | 17 ++ .../FinancialAgentCommissionMapper.xml | 26 +++ .../mappers/payment/TransactionMapper.xml | 3 +- src/main/ui/manage.html | 7 + .../ui/static/agent/commission/commission.js | 104 ++++++++++ .../templates/agent_commission_detail.html | 185 +++++++++++++++++ .../templates/agent_commission_month.html | 88 ++++++++ .../templates/agent_commission_root.html | 60 ++++++ .../CityPartnerPrizeServiceImplTest.java | 2 +- 13 files changed, 714 insertions(+), 59 deletions(-) create mode 100644 src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionDetailMapper.xml create mode 100644 src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionMapper.xml create mode 100644 src/main/ui/static/agent/commission/commission.js create mode 100644 src/main/ui/static/agent/commission/templates/agent_commission_detail.html create mode 100644 src/main/ui/static/agent/commission/templates/agent_commission_month.html create mode 100644 src/main/ui/static/agent/commission/templates/agent_commission_root.html diff --git a/src/main/java/au/com/royalpay/payment/manage/citypartner/core/CityPartnerPrizeService.java b/src/main/java/au/com/royalpay/payment/manage/citypartner/core/CityPartnerPrizeService.java index 29cdc28f7..23817ffa3 100644 --- a/src/main/java/au/com/royalpay/payment/manage/citypartner/core/CityPartnerPrizeService.java +++ b/src/main/java/au/com/royalpay/payment/manage/citypartner/core/CityPartnerPrizeService.java @@ -21,8 +21,6 @@ public interface CityPartnerPrizeService { void generateReferrer(String month); - void generateAgent(String month); - List listReferrerAvailableMonths(String year); JSONObject getReferrerPrizeInfo(String monthStr); @@ -31,5 +29,15 @@ public interface CityPartnerPrizeService { List getReferrerPrizeInfoList(String monthStr); + void generateAgent(String month,int orgId); + + List listAgentAvailableMonths(String year); + + JSONObject getAgentPrizeInfo(String monthStr); + + JSONObject getAgentPrizeDetail(String monthStr, String orgId); + + List getAgentPrizeInfoList(String monthStr); + } diff --git a/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java index dfb0606cf..a389a3b96 100644 --- a/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java @@ -1,25 +1,5 @@ package au.com.royalpay.payment.manage.citypartner.core.impls; -import java.math.BigDecimal; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.alibaba.fastjson.JSONObject; - import au.com.royalpay.payment.manage.citypartner.beans.AgentCommissionAnalysis; import au.com.royalpay.payment.manage.citypartner.beans.CityPartnerCommissionAnalysis; import au.com.royalpay.payment.manage.citypartner.beans.ReferrerCommissionAnalysis; @@ -36,6 +16,26 @@ import au.com.royalpay.payment.tools.env.SysConfigManager; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.ServerErrorException; +import com.alibaba.fastjson.JSONObject; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + /** * Created by yixian on 2017-03-08. */ @@ -339,7 +339,19 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { } @Override - public void generateAgent(String monthStr) { + @Transactional + public void generateAgent(String monthStr,int orgId) { + JSONObject org = orgMapper.findOne(orgId); + if (org == null) { + // shall never happen + throw new ServerErrorException("Organization Id not exists:" + orgId); + } + JSONObject parnetOrg = orgMapper.findOne(org.getIntValue("parent_org_id")); + if (parnetOrg == null) { + // shall never happen + throw new ServerErrorException("Organization Parent Id not exists:" + org.getIntValue("parent_org_id")); + } + Date mon = checkMonth(monthStr); Calendar monthCal = Calendar.getInstance(); monthCal.setTime(mon); @@ -348,30 +360,13 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { financialAgentCommissionDetailMapper.clearData(year, month); financialAgentCommissionMapper.clearData(year, month); - JSONObject sysConfig = sysConfigManager.getSysConfig(); - BigDecimal alipayChargeRate = new BigDecimal("0.6"); - BigDecimal wechatChargeRate = new BigDecimal("0.6"); - BigDecimal jdChargeRate = new BigDecimal("0.9"); - BigDecimal alipayonlineChargeRate = new BigDecimal("2.0"); - if (sysConfig.getBigDecimal("Alipay_charge_rate") != null) { - alipayChargeRate = sysConfig.getBigDecimal("Alipay_charge_rate"); - } - if (sysConfig.getBigDecimal("Wechat_charge_rate") != null) { - wechatChargeRate = sysConfig.getBigDecimal("Wechat_charge_rate"); - } - if (sysConfig.getBigDecimal("jd_charge_rate") != null) { - jdChargeRate = sysConfig.getBigDecimal("jd_charge_rate"); - } - if (sysConfig.getBigDecimal("alipayonline_charge_rate") != null) { - alipayonlineChargeRate = sysConfig.getBigDecimal("alipayonline_charge_rate"); - } HashMap channelMap = new HashMap<>(); channelMap.put("Alipay", "Alipay"); channelMap.put("Wechat", "Wechat"); channelMap.put("Bestpay", "Bestpay"); channelMap.put("jd","jd"); channelMap.put("AlipayOnline","AlipayOnline"); - List transactionAnalysis = transactionMapper.listTransactionsForAgentCommission(year, month); + List transactionAnalysis = transactionMapper.listTransactionsForAgentCommission(year, month,org.getIntValue("parent_org_id")); Map results = new HashMap<>(); for (JSONObject analysisDay : transactionAnalysis) { String key = analysisDay.getString("channel"); @@ -379,18 +374,6 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { if (!channelMap.containsKey(key)) { continue; } - int orgId = analysisDay.getIntValue("org_id"); - - JSONObject org = orgMapper.findOne(orgId); - if (org == null) { - // shall never happen - throw new ServerErrorException("Organization Id not exists:" + orgId); - } - JSONObject parnetOrg = orgMapper.findOne(org.getIntValue("parent_org_id")); - if (parnetOrg == null) { - // shall never happen - throw new ServerErrorException("Organization Parent Id not exists:" + org.getIntValue("parent_org_id")); - } channel = channel.toLowerCase(); AgentCommissionAnalysis agentCommissionAnalysis = results.get(orgId + channel); if (agentCommissionAnalysis == null) { @@ -526,4 +509,111 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { } } + @Override + public List listAgentAvailableMonths(String year) { + int yearNum = checkValidYear(year); + List months = financialAgentCommissionMapper.listAvailableMonths(yearNum); + List monthObjs = new ArrayList<>(); + for (Integer mon : months) { + JSONObject item = new JSONObject(); + item.put("month", mon); + item.put("monthstr", year + "-" + StringUtils.substring("00" + mon, -2)); + JSONObject chargeInfo = getReferrerPrizeInfo(item.getString("monthstr")); + item.put("org_charge", chargeInfo.getString("org_charge")); + item.put("gross_amount", chargeInfo.getString("gross_amount")); + monthObjs.add(item); + } + return monthObjs; + } + + @Override + public JSONObject getAgentPrizeInfo(String monthStr) { + Date monthDate = parseMonth(monthStr); + Calendar monthCal = Calendar.getInstance(); + monthCal.setTime(monthDate); + int year = monthCal.get(Calendar.YEAR); + int month = monthCal.get(Calendar.MONTH) + 1; + JSONObject sum = new JSONObject(); + sum.put("gross_amount", 0); + sum.put("org_charge", 0); + List referrerPrizes = financialAgentCommissionMapper.list(year, month); + for (JSONObject prize : referrerPrizes) { + plusKey(sum, prize, "gross_amount"); + plusKey(sum, prize, "org_charge"); + prize.put("monthstr", monthStr); + } + sum.put("referrer", referrerPrizes); + sum.put("monthstr", monthStr); + return sum; + } + + @Override + public JSONObject getAgentPrizeDetail(String monthStr, String orgId) { + Date monthDate = parseMonth(monthStr); + Calendar monthCal = Calendar.getInstance(); + monthCal.setTime(monthDate); + int year = monthCal.get(Calendar.YEAR); + int month = monthCal.get(Calendar.MONTH) + 1; + JSONObject result = new JSONObject(); + + List total = financialAgentCommissionMapper.find(year, month, orgId); + if (CollectionUtils.isEmpty(total)) { + return null; + } + List recordIds = new ArrayList<>(); + for (JSONObject jsonObject : total) { + result.put("name", jsonObject.getString("name")); + recordIds.add(jsonObject.getString("record_id")); + } + + List details = financialAgentCommissionDetailMapper.listDetailsByRecordIds(recordIds); + Map> detailMap = new HashMap<>(); + for (JSONObject detail : details) { + String key = detail.getString("client_id"); + if (detailMap.containsKey(key)) { + detailMap.get(key).add(detail); + } else { + List tmpList = new ArrayList<>(); + tmpList.add(detail); + detailMap.put(key, tmpList); + } + } + + List partnerClientInfos = new ArrayList<>(); + BigDecimal resultGrossAmount = BigDecimal.ZERO; + BigDecimal resultOrgCharge = BigDecimal.ZERO; + for (Map.Entry> entry : detailMap.entrySet()) { + JSONObject sumResult = new JSONObject(); + BigDecimal grossAmount = BigDecimal.ZERO; + BigDecimal orgCharge = BigDecimal.ZERO; + String clientMoniker = ""; + for (JSONObject jsonObject : entry.getValue()) { + grossAmount = grossAmount.add(jsonObject.getBigDecimal("gross_amount")); + orgCharge = orgCharge.add(jsonObject.getBigDecimal("org_charge")); + clientMoniker = jsonObject.getString("client_moniker"); + } + resultGrossAmount = resultGrossAmount.add(grossAmount); + resultOrgCharge = resultOrgCharge.add(orgCharge); + sumResult.put("gross_amount", grossAmount); + sumResult.put("org_charge", orgCharge); + sumResult.put("client_moniker", clientMoniker); + partnerClientInfos.add(sumResult); + } + result.put("partner_client_infos", partnerClientInfos); + result.put("monthstr", monthStr); + result.put("gross_amount", resultGrossAmount); + result.put("org_charge", resultOrgCharge); + return result; + } + + @Override + public List getAgentPrizeInfoList(String monthStr) { + Date monthDate = parseMonth(monthStr); + Calendar monthCal = Calendar.getInstance(); + monthCal.setTime(monthDate); + int year = monthCal.get(Calendar.YEAR); + int month = monthCal.get(Calendar.MONTH) + 1; + return financialAgentCommissionMapper.list(year, month); + } + } diff --git a/src/main/java/au/com/royalpay/payment/manage/citypartner/web/CityPartnerPrizeController.java b/src/main/java/au/com/royalpay/payment/manage/citypartner/web/CityPartnerPrizeController.java index eb62f6b82..a5aa46a85 100644 --- a/src/main/java/au/com/royalpay/payment/manage/citypartner/web/CityPartnerPrizeController.java +++ b/src/main/java/au/com/royalpay/payment/manage/citypartner/web/CityPartnerPrizeController.java @@ -2,17 +2,27 @@ package au.com.royalpay.payment.manage.citypartner.web; import au.com.royalpay.payment.manage.citypartner.core.CityPartnerPrizeService; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; +import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; + import com.alibaba.fastjson.JSONObject; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.annotation.Resource; + /** * Created by yixian on 2017-03-08. */ @@ -107,6 +117,7 @@ public class CityPartnerPrizeController { String month = param.getString("month"); cityPartnerPrizeService.generateReferrer(month); } + @ManagerMapping("/referrer/months/{monthStr}/orgs/{orgId}") public JSONObject getreferrerPrizeDetail(@PathVariable String monthStr, @PathVariable String orgId) { return cityPartnerPrizeService.getReferrerPrizeDetail(monthStr, orgId); @@ -160,4 +171,64 @@ public class CityPartnerPrizeController { result.put("partner_info_list",partnerInfos); return result; } + + @RequestMapping(value = "/agent/generate", method = RequestMethod.POST) + public void generateAgent(@RequestBody JSONObject param, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject managerInfo) { + String month = param.getString("month"); + cityPartnerPrizeService.generateAgent(month,managerInfo.getIntValue("org_id")); + } + + @ManagerMapping("/agent/months/{monthStr}/orgs/{orgId}") + public JSONObject getAgentPrizeDetail(@PathVariable String monthStr, @PathVariable String orgId) { + return cityPartnerPrizeService.getAgentPrizeDetail(monthStr, orgId); + } + @RequestMapping("/agent/months") + public List listAgentAvailableMonths(@RequestParam String year) { + return cityPartnerPrizeService.listAgentAvailableMonths(year); + } + @RequestMapping(value = "/agent/months/{monthStr}") + public JSONObject getAgentPrizeInfo(@PathVariable String monthStr) { + List partnerPrizeInfos = cityPartnerPrizeService.getAgentPrizeInfoList(monthStr); + Map> partenerPrizeMap = new HashMap<>(); + for (JSONObject partnerPrizeInfo : partnerPrizeInfos) { + String key = partnerPrizeInfo.getString("org_id"); + if (partenerPrizeMap.containsKey(key)) { + partenerPrizeMap.get(key).add(partnerPrizeInfo); + } else { + List tmpList = new ArrayList<>(); + tmpList.add(partnerPrizeInfo); + partenerPrizeMap.put(key, tmpList); + } + } + JSONObject result = new JSONObject(); + List partnerInfos = new ArrayList<>(partenerPrizeMap.size()); + BigDecimal resultGrossAmount = BigDecimal.ZERO; + BigDecimal resultOrgCharge = BigDecimal.ZERO; + for (Map.Entry> entry : partenerPrizeMap.entrySet()) { + JSONObject sumResult = new JSONObject(); + BigDecimal grossAmount = BigDecimal.ZERO; + BigDecimal orgCharge = BigDecimal.ZERO; + String cityPartnerName = ""; + int org_id = 0; + for (JSONObject jsonObject : entry.getValue()) { + grossAmount = grossAmount.add(jsonObject.getBigDecimal("gross_amount")); + orgCharge = orgCharge.add(jsonObject.getBigDecimal("org_charge")); + org_id = jsonObject.getIntValue("org_id"); + cityPartnerName = jsonObject.getString("name"); + } + sumResult.put("gross_amount", grossAmount); + sumResult.put("org_charge", orgCharge); + sumResult.put("org_name", cityPartnerName); + sumResult.put("org_id", org_id); + sumResult.put("channel_detail", entry.getValue()); + resultGrossAmount = resultGrossAmount.add(grossAmount); + resultOrgCharge = resultOrgCharge.add(orgCharge); + partnerInfos.add(sumResult); + } + result.put("monthstr", monthStr); + result.put("gross_amount",resultGrossAmount); + result.put("org_charge",resultOrgCharge); + result.put("partner_info_list",partnerInfos); + return result; + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java index 8087f6d48..97622c602 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.java @@ -96,7 +96,7 @@ public interface TransactionMapper { List listTransactionsForReferrerCommission(@Param("year") int year, @Param("month") int month); - List listTransactionsForAgentCommission(@Param("year") int year, @Param("month") int month); + List listTransactionsForAgentCommission(@Param("year") int year, @Param("month") int month,@Param("parent_org_id") int parent_org_id); BigDecimal checkBalance(@Param("end") Date endDate); diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionDetailMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionDetailMapper.xml new file mode 100644 index 000000000..a4c412d42 --- /dev/null +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionDetailMapper.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionMapper.xml new file mode 100644 index 000000000..46e5d94b4 --- /dev/null +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/financial/FinancialAgentCommissionMapper.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file 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 7289e89f3..746ab6920 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 @@ -515,7 +515,6 @@ sum(if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount)) total, t.client_id client_id, - so.org_id org_id, c.approve_time client_create_time, c.source client_source, date(t.transaction_time) trade_date, @@ -549,7 +548,7 @@ FROM pmt_transactions t INNER JOIN sys_clients c ON c.client_id = t.client_id INNER JOIN sys_org so - ON c.org_id = so.org_id AND so.is_valid = 1 AND so.type = 0 AND so.parent_org_id is not null + ON c.org_id = so.org_id AND so.is_valid = 1 AND so.type = 0 AND so.parent_org_id = #{parent_org_id} WHERE year(t.transaction_time) = #{year} AND month(t.transaction_time) = #{month} AND t.channel != 'Settlement' GROUP BY t.client_id, trade_date, channel ORDER BY c.org_id ASC, t.client_id ASC, trade_date ASC diff --git a/src/main/ui/manage.html b/src/main/ui/manage.html index ed66924d3..5aaf5297b 100644 --- a/src/main/ui/manage.html +++ b/src/main/ui/manage.html @@ -326,6 +326,13 @@ margin-bottom: 10%;"/> 周末费率减半活动 + +
  • + + 机构数据分析|Agent Analysis + +
  • + diff --git a/src/main/ui/static/agent/commission/commission.js b/src/main/ui/static/agent/commission/commission.js new file mode 100644 index 000000000..ac4a52b8c --- /dev/null +++ b/src/main/ui/static/agent/commission/commission.js @@ -0,0 +1,104 @@ +/** + * Created by yixian on 2017-03-08. + */ +define(['angular','../../agent/commission/commission'], function (angular) { + 'use strict'; + var app = angular.module('agentCommission', ['ui.router']); + app.config(['$stateProvider', function ($stateProvider) { + $stateProvider.state('analysis_agent', { + url: '/analysis_agent/agentcommission', + templateUrl: '/static/agent/commission/templates/agent_commission_root.html', + controller: 'agentCommissionRootCtrl' + }).state('analysis_agent.agentcommission.month', { + url: '/analysis_agent/agentcommission/months/{monthStr}', + templateUrl: '/static/agent/commission/templates/agent_commission_month.html', + controller: 'agentCommissionMonthViewCtrl', + resolve: { + monthData: ['$http', '$stateParams', function ($http, $stateParams) { + return $http.get('/sys/citypartner_prizes/agent/months/' + $stateParams.monthStr); + }] + } + }).state('analysis_agent.agentcommission.month.agentdetail', { + url: '/analysis_agent/agentcommission/{orgId}', + templateUrl: '/static/agent/commission/templates/agent_commission_detail.html', + controller: 'agentCommissionagentDetailCtrl', + resolve: { + detail: ['$http', '$stateParams', function ($http, $stateParams) { + return $http.get('/sys/citypartner_prizes/agent/months/' + $stateParams.monthStr + '/orgs/' + $stateParams.orgId); + }] + } + }) + }]); + + app.controller('agentCommissionRootCtrl', ['$scope', '$http', '$filter', '$state', 'commonDialog', + function ($scope, $http, $filter, $state, commonDialog) { + $scope.generate = {}; + + $scope.generateagentCommission = function () { + $scope.generate.status = {}; + if (!$scope.generate.month) { + commonDialog.alert({ + type: 'error', title: 'Error', content: 'Select a month first!' + }); + return; + } + commonDialog.confirm({ + title: 'Confirm', + content: 'This operation will clear the data generated before, Are you sure?' + }).then(function () { + var params = {month: $filter('date')($scope.generate.month, 'yyyy-MM')}; + $http.post('/sys/citypartner_prizes/agent/generate', params).then(function () { + $state.go('analysis_agent.agentcommission.month', {monthStr: params.month}) + $scope.generate.status = null; + }, function (resp) { + commonDialog.alert({type: 'error', title: 'Error', content: resp.data.message}); + }) + }) + }; + $scope.params = {year: new Date()}; + $scope.months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + $scope.loadAvailableMonths = function () { + $http.get('/sys/citypartner_prizes/agent/months', {params: {year: $scope.params.year.getFullYear()}}).then(function (resp) { + $scope.availableMonths = resp.data; + }); + }; + + $scope.loadAvailableMonths(); + $scope.hasReport = function (mon) { + var has = false; + angular.forEach($scope.availableMonths, function (m) { + if (mon == m.month) { + has = true; + } + }); + return has; + }; + $scope.gotoMonth = function (mon) { + var monthStr = $scope.params.year.getFullYear() + '-' + (('0' + mon).substr(-2)); + $state.go('analysis_agent.agentcommission.month', {monthStr: monthStr}) + }; + }]); + app.controller('agentCommissionMonthViewCtrl', ['$scope', 'monthData', function ($scope, monthData) { + $scope.monthData = monthData.data; + $scope.ctrl = {}; + $scope.active = function (log) { + if($scope.ctrl.activeLog && $scope.ctrl.activeLog.org_id==log.org_id){ + $scope.ctrl.activeLog=null; + return; + } + $scope.ctrl.activeLog=log; + } + }]); + app.controller('agentCommissionagentDetailCtrl', ['$scope', 'detail', function ($scope, detail) { + $scope.detail = detail.data; + $scope.ctrl = {}; + $scope.active = function (log) { + if($scope.ctrl.activeLog && $scope.ctrl.activeLog.client_moniker==log.client_moniker){ + $scope.ctrl.activeLog=null; + return; + } + $scope.ctrl.activeLog=log; + } + }]); + return app; +}); \ No newline at end of file diff --git a/src/main/ui/static/agent/commission/templates/agent_commission_detail.html b/src/main/ui/static/agent/commission/templates/agent_commission_detail.html new file mode 100644 index 000000000..c7d487ca6 --- /dev/null +++ b/src/main/ui/static/agent/commission/templates/agent_commission_detail.html @@ -0,0 +1,185 @@ + + +
    +
    Analysis
    +
    +
    +
    + City Partner: +
    +
    + Month: +
    +
    + Total Transaction:{{detail.total_transaction}} +
    +
    + Total Charge:{{detail.total_charge}} +
    +
    + RoyalPay Charge:{{detail.royalPay_charge}} +
    +
    + Net Charge:{{detail.net_charge}} +
    +
    + City Partner Charge:{{detail.city_partner_charge}} +
    + +
    +
    +
    + +
    +
    +
    Total Transaction:
    +
    Total Charge:
    +
    RoyalPay Charge:
    +
    Net Charge:
    +
    City Partner Charge:
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    Total Transaction:
    +
    Total Charge:
    +
    RoyalPay Charge:
    +
    Net Charge:
    +
    City Partner Charge:
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    Total Transaction:
    +
    Total Charge:
    +
    RoyalPay Charge:
    +
    Net Charge:
    +
    City Partner Charge:
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    Total Transaction:
    +
    Total Charge:
    +
    RoyalPay Charge:
    +
    Net Charge:
    +
    City Partner Charge:
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Client MonikerTransactionTotal ChargeRoyalPay ChargeNet ChargeCity Partner ChargeDetails
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Order Date RangeClient RateTransaction AmountTotal ChargeRoyalPay ChargeNet ChargeCity Partner Chargechannel
    + {{detail.date_from|date:'dd/MMM/yyyy'}}~{{detail.date_to|date:'dd/MMM/yyyy'}} +
    +
    +
    +
    \ No newline at end of file diff --git a/src/main/ui/static/agent/commission/templates/agent_commission_month.html b/src/main/ui/static/agent/commission/templates/agent_commission_month.html new file mode 100644 index 000000000..fede91cc7 --- /dev/null +++ b/src/main/ui/static/agent/commission/templates/agent_commission_month.html @@ -0,0 +1,88 @@ +
    +
    +
    Analysis
    +
    +
    +
    + Month: +
    +
    + Total Charge: +
    +
    + RoyalPay Charge: +
    +
    + Net Charge: +
    +
    + City Partner Charge: +
    +
    +
    +
    +
    +
    Details
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    City Partner NameTransaction AmountTotal ChargeRoyalPay ChargeNet ChargeCity Partner ChargeDetails
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Keep RateTransaction AmountTotal ChargeRoyalPay ChargeNet ChargeCity Partner Chargechannel
    +
    +
    +
    +
    \ No newline at end of file diff --git a/src/main/ui/static/agent/commission/templates/agent_commission_root.html b/src/main/ui/static/agent/commission/templates/agent_commission_root.html new file mode 100644 index 000000000..27478cb97 --- /dev/null +++ b/src/main/ui/static/agent/commission/templates/agent_commission_root.html @@ -0,0 +1,60 @@ + + + + + + + +
    +
    +
    +
    +
    + + +
    + + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Total Charge: + +
    +
    + RoyalPay Charge: + +
    +
    + City Partner Charge: + +
    +
    +
    +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImplTest.java b/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImplTest.java index b172dd524..67dce5ea6 100644 --- a/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImplTest.java +++ b/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImplTest.java @@ -21,7 +21,7 @@ public class CityPartnerPrizeServiceImplTest { private CityPartnerPrizeService cityPartnerPrizeService; @Test public void generateAgent() throws Exception { - cityPartnerPrizeService.generateAgent("2017-06"); + cityPartnerPrizeService.generateAgent("2017-06",9); } } \ No newline at end of file