diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java b/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java index dc2ccbfd1..c1644b28c 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -44,5 +45,7 @@ public interface ClientAnalysisMapper { List notTradeSubMerchantId(); + List tradeSubMerchantIdBy60Days(@Param("begin")Date begin); + List countClientsSettlementCycle(JSONObject params); } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/client/ClientSubMerchantIdMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/client/ClientSubMerchantIdMapper.java index d351576f0..4cf108e6b 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/client/ClientSubMerchantIdMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/client/ClientSubMerchantIdMapper.java @@ -1,11 +1,13 @@ package au.com.royalpay.payment.manage.mappers.client; +import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect; 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 com.github.miemiedev.mybatis.paginator.domain.PageBounds; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -14,6 +16,8 @@ public interface ClientSubMerchantIdMapper { @AutoSql(type = SqlType.SELECT) List listSubMerchantId(PageBounds pageBounds); + List listSubMerchantIdByDiffDays(@Param("begin") int begin,@Param("end") int end); + @AutoSql(type = SqlType.INSERT) void save(JSONObject subMerchantId); @@ -22,4 +26,7 @@ public interface ClientSubMerchantIdMapper { @AutoSql(type = SqlType.DELETE) void delete(@Param("sub_merchant_id") String sub_merchant_id); + + @AutoSql(type = SqlType.DELETE) + void deleteAll(); } diff --git a/src/main/java/au/com/royalpay/payment/manage/merchantid/core/MerchantIdManageService.java b/src/main/java/au/com/royalpay/payment/manage/merchantid/core/MerchantIdManageService.java index b7d0f8503..508da2491 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchantid/core/MerchantIdManageService.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchantid/core/MerchantIdManageService.java @@ -13,7 +13,7 @@ public interface MerchantIdManageService { void generateClientsSunMerchantId(); - JSONObject listNotTradeSubMerchantId(JSONObject manager); + JSONObject listNotTradeSubMerchantId(int type, JSONObject manager); List showClientMoniker(JSONObject manager,String sub_merchant_id); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java index 0af53f8db..bdd26313d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java @@ -19,19 +19,18 @@ import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMethod; import javax.annotation.Resource; import java.io.IOException; import java.net.URISyntaxException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -66,22 +65,41 @@ public class MerchantIdManageServiceImpl implements MerchantIdManageService { return getClientMap(clients); } @Override - public JSONObject listNotTradeSubMerchantId(JSONObject manager) { - List clients = clientSubMerchantIdMapper.listSubMerchantId(new PageBounds(Order.formString("create_time.desc"))); + public JSONObject listNotTradeSubMerchantId(int type, JSONObject manager) { + List clients = new ArrayList<>(); + switch (type) { + case 0: //all + clients = clientSubMerchantIdMapper.listSubMerchantId(new PageBounds(Order.formString("diff_days.desc"))); + break; + case 1://0~15天 + clients = clientSubMerchantIdMapper.listSubMerchantIdByDiffDays(0,15); + break; + case 2://15~30天 + clients = clientSubMerchantIdMapper.listSubMerchantIdByDiffDays(15,30); + break; + case 3://30~45天 + clients = clientSubMerchantIdMapper.listSubMerchantIdByDiffDays(30,45); + break; + case 4://45~60天 + clients = clientSubMerchantIdMapper.listSubMerchantIdByDiffDays(45,60); + break; + default: + break; + } Map> merchantIdMap = clients.stream().filter(t->t.containsKey("merchant_id")).filter(t->t.containsKey("sub_merchant_id")).collect(Collectors.groupingBy(t->t.getString("merchant_id"))); JSONObject returnJason = new JSONObject(); returnJason.put("merchant_id_map",merchantIdMap); returnJason.put("refresh_time",clients.size()>0?clients.get(0).getDate("create_time"):""); return returnJason; } + @Override public void generateClientsSunMerchantId() { + //重构未交易商户号逻辑 String tempSubMerchantIds = sysConfigManager.getSysConfig().getString("temp_sub_mch_id"); - List clients = clientAnalysisMapper.notTradeSubMerchantId(); - List clientSubMerchantId = clientSubMerchantIdMapper.listSubMerchantId(new PageBounds(Order.formString("create_time.desc"))); - Map subMerchantIdMapFromDB = new HashMap<>(); - for (JSONObject id : clientSubMerchantId) { - subMerchantIdMapFromDB.put(id.getString("sub_merchant_id"), id); + List clients = clientAnalysisMapper.tradeSubMerchantIdBy60Days(DateUtils.addDays(new Date(), -60)); + if (clients.size() > 0) { + clientSubMerchantIdMapper.deleteAll(); } for (JSONObject client: clients) { String subMerchantId = client.getString("sub_merchant_id"); @@ -90,15 +108,7 @@ public class MerchantIdManageServiceImpl implements MerchantIdManageService { } String id = client.getString("sub_merchant_id"); client.put("create_time",new Date()); - if (subMerchantIdMapFromDB.containsKey(id)) { - subMerchantIdMapFromDB.remove(id); - clientSubMerchantIdMapper.update(client); - } else { - clientSubMerchantIdMapper.save(client); - } - } - for (String id : subMerchantIdMapFromDB.keySet()) { - clientSubMerchantIdMapper.delete(id); + clientSubMerchantIdMapper.save(client); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/merchantid/web/MerchantIdManageController.java b/src/main/java/au/com/royalpay/payment/manage/merchantid/web/MerchantIdManageController.java index 5e0fc4fc9..22f541d03 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchantid/web/MerchantIdManageController.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchantid/web/MerchantIdManageController.java @@ -38,8 +38,8 @@ public class MerchantIdManageController { @RequestMapping(method = RequestMethod.GET,value = "/trade") @RequireManager(role = {ManagerRole.OPERATOR}) - public JSONObject listNotTradeSubMerchantId(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { - return merchantIdManageService.listNotTradeSubMerchantId(manager); + public JSONObject listNotTradeSubMerchantId(int type,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + return merchantIdManageService.listNotTradeSubMerchantId(type, manager); } @RequestMapping(method = RequestMethod.POST,value = "/refresh") diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml index 86bc1fc60..5356906fb 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml @@ -251,6 +251,26 @@ ]]> GROUP by c.sub_merchant_id + + + select * from cli_sub_merchant_id + where diff_days >=#{begin} + and diff_days <=#{end} + order by diff_days desc + + + \ No newline at end of file diff --git a/src/main/ui/static/payment/merchantid/merchant_id_manager.js b/src/main/ui/static/payment/merchantid/merchant_id_manager.js index 03cdaad63..5f59baa69 100644 --- a/src/main/ui/static/payment/merchantid/merchant_id_manager.js +++ b/src/main/ui/static/payment/merchantid/merchant_id_manager.js @@ -92,9 +92,10 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS // 初始化索引是30 $scope.initEndIndex = 30; - $scope.loadNotTradeClient = function () { + + $scope.loadNotTradeClient = function (type) { $scope.disable_button = true; - $http.get('/sys/merchant_id/trade').then(function (resp) { + $http.get('/sys/merchant_id/trade?type=' + type).then(function (resp) { $scope.notTradeClientsMap = resp.data.merchant_id_map; $scope.refresh_time = resp.data.refresh_time; $scope.disable_button = false; @@ -110,12 +111,12 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS } }); }; - $scope.loadNotTradeClient(); + $scope.loadNotTradeClient(0); $scope.refresh = function () { $scope.disable_button = true; $http.post('/sys/merchant_id/refresh').then(function () { - $scope.loadNotTradeClient(); + $scope.loadNotTradeClient(0); }); }; diff --git a/src/main/ui/static/payment/merchantid/templates/merchant_id_manage.html b/src/main/ui/static/payment/merchantid/templates/merchant_id_manage.html index 8fb25455d..84ab54452 100644 --- a/src/main/ui/static/payment/merchantid/templates/merchant_id_manage.html +++ b/src/main/ui/static/payment/merchantid/templates/merchant_id_manage.html @@ -67,7 +67,7 @@ 商户号列表
  • - 近25天未交易商户号 + 近60天未交易商户号
  • 通用子商户号 diff --git a/src/main/ui/static/payment/merchantid/templates/no_trade_sub_merchant_id.html b/src/main/ui/static/payment/merchantid/templates/no_trade_sub_merchant_id.html index 25a30ccdb..c465a4a03 100644 --- a/src/main/ui/static/payment/merchantid/templates/no_trade_sub_merchant_id.html +++ b/src/main/ui/static/payment/merchantid/templates/no_trade_sub_merchant_id.html @@ -2,6 +2,26 @@
    +
    + ALL +
    +
    + 0-15天 +
    +
    + 15-30天 +
    +
    + 30-45天 +
    +
    + 45-60天 +
    上次刷新时间:{{refresh_time}}    @@ -26,9 +46,9 @@ --> - {{client.sub_merchant_id}}  + {{client.sub_merchant_id}} (last_trade:{{client.last_trade_time|limitTo:10}})