diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java index df9201ece..9f81e22c7 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java @@ -39,8 +39,8 @@ import java.util.concurrent.TimeUnit; * Created by davep on 2016-07-28. */ @Service -public class DashboardServiceImpl implements DashboardService,DashboardAnalysisTask { - private Logger logger = LoggerFactory.getLogger(getClass()); +public class DashboardServiceImpl implements DashboardService, DashboardAnalysisTask { + private final Logger logger = LoggerFactory.getLogger(getClass()); @Resource private ClientAnalysisMapper clientAnalysisMapper; @Resource @@ -64,25 +64,24 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT private MerchantInfoProvider merchantInfoProvider; - @Override public JSONObject getCommonAnalysis1(JSONObject params) { String jsonStr = stringRedisTemplate.boundValueOps("org_commonAnalysis1" + params.getString("org_id") + params.getString("begin")).get(); JSONObject commonAnalysis1 = JSON.parseObject(jsonStr); - if(commonAnalysis1 != null){ + if (commonAnalysis1 != null) { return commonAnalysis1; } JSONObject res = new JSONObject(); - if(params.getDate("end").after(new Date())){ - if(params.getDate("begin").compareTo(DateUtils.addDays(params.getDate("end"), -1))==0){ - res = transactionAnalysisMapper.getClientTransaction(params); - }else { + if (params.getDate("end").after(new Date())) { + if (params.getDate("begin").compareTo(DateUtils.addDays(params.getDate("end"), -1)) == 0) { + res = transactionAnalysisMapper.getClientTransaction(params); + } else { res = customerAndOrdersStatisticsMapper.getCommonCount(params); } - }else { - res = customerAndOrdersStatisticsMapper.getCommonCount(params); + } else { + res = customerAndOrdersStatisticsMapper.getCommonCount(params); } - stringRedisTemplate.boundValueOps("org_commonAnalysis1"+params.getString("org_id")+params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("org_commonAnalysis1" + params.getString("org_id") + params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); return res; } @@ -91,7 +90,7 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT public JSONObject getCommonAnalysis3(JSONObject params) { String jsonStr = stringRedisTemplate.boundValueOps("org_commonAnalysis3" + params.getString("org_id") + params.getString("begin")).get(); JSONObject commonAnalysis3 = JSON.parseObject(jsonStr); - if(commonAnalysis3 != null){ + if (commonAnalysis3 != null) { return commonAnalysis3; } JSONObject res = new JSONObject(); @@ -100,7 +99,7 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT //res.put("total_partners", clientAnalysisMapper.countClients(params)); // 统计所有的商户,包括禁用的 res.put("total_partners", clientAnalysisMapper.countClientsAll(params)); - stringRedisTemplate.boundValueOps("org_commonAnalysis3"+params.getString("org_id")+params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("org_commonAnalysis3" + params.getString("org_id") + params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); return res; } @@ -108,25 +107,25 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT public JSONObject getCommonAnalysis2(JSONObject params) { String jsonStr = stringRedisTemplate.boundValueOps("org_commonAnalysis2" + params.getString("org_id") + params.getString("begin")).get(); JSONObject commonAnalysis2 = JSON.parseObject(jsonStr); - if(commonAnalysis2 != null){ + if (commonAnalysis2 != null) { return commonAnalysis2; } JSONObject res = new JSONObject(); - if(params.getDate("end").after(new Date())){ - if(params.getDate("begin").compareTo(DateUtils.addDays(params.getDate("end"), -1))==0){ + if (params.getDate("end").after(new Date())) { + if (params.getDate("begin").compareTo(DateUtils.addDays(params.getDate("end"), -1)) == 0) { res.put("total_customers", transactionAnalysisMapper.countCustomers(params)); - res.put("old_customers", transactionAnalysisMapper.countOldCustomers(params)); res.put("traded_partners", clientAnalysisMapper.countTradedPartners(params)); - }else { + } else { res = getYesOrLasMonth(params); } - }else { + } else { res = getYesOrLasMonth(params); } - stringRedisTemplate.boundValueOps("org_commonAnalysis2"+params.getString("org_id")+params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("org_commonAnalysis2" + params.getString("org_id") + params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); return res; } - private JSONObject getYesOrLasMonth(JSONObject params){ + + private JSONObject getYesOrLasMonth(JSONObject params) { JSONObject res = new JSONObject(); res.put("traded_partners", customerAndOrdersStatisticsMapper.countTradedClients(params)); res.put("total_customers", customerAndOrdersStatisticsMapper.countTotalCustomers(params)); @@ -138,7 +137,7 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT public JSONObject getCommonAnalysis4(JSONObject params) { String jsonStr = stringRedisTemplate.boundValueOps("org_commonAnalysis4" + params.getString("org_id") + params.getString("begin")).get(); JSONObject commonAnalysis4 = JSON.parseObject(jsonStr); - if(commonAnalysis4 != null){ + if (commonAnalysis4 != null) { return commonAnalysis4; } JSONObject res = new JSONObject(); @@ -146,22 +145,22 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT if (!topOrders.isEmpty()) { res.put("top_amount_order", topOrders.get(0)); } - stringRedisTemplate.boundValueOps("org_commonAnalysis4"+params.getString("org_id")+params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("org_commonAnalysis4" + params.getString("org_id") + params.getString("begin")).set(res.toJSONString(), 5, TimeUnit.MINUTES); return res; } @Override public List getTradeInTypes(JSONObject params) { - String jsonStr = stringRedisTemplate.boundValueOps("tradeInTypes"+params.getString("org_id")+ params.getString("begin")).get(); - List tradeInTypes = JSONObject.parseArray(jsonStr,JSONObject.class); - if(tradeInTypes != null){ + String jsonStr = stringRedisTemplate.boundValueOps("tradeInTypes" + params.getString("org_id") + params.getString("begin")).get(); + List tradeInTypes = JSONObject.parseArray(jsonStr, JSONObject.class); + if (tradeInTypes != null) { return tradeInTypes; } if (params.containsKey("client_id")) { clientManager.queryModifyClientIds(params.getInteger("client_id"), params); } List res = transactionAnalysisMapper.getTradeAmountInTypes(params); - stringRedisTemplate.boundValueOps("tradeInTypes"+params.getString("org_id")+ params.getString("begin")).set(res.toString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("tradeInTypes" + params.getString("org_id") + params.getString("begin")).set(res.toString(), 5, TimeUnit.MINUTES); return res; } @@ -175,14 +174,14 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT @Override public List getTopTradePartnersNew(JSONObject params) { - String jsonStr = stringRedisTemplate.boundValueOps("topTradePartnersNew"+params.getString("org_id")+ params.getString("begin")).get(); - List topTradePartnersNew = JSONObject.parseArray(jsonStr,JSONObject.class); - if(topTradePartnersNew != null){ + String jsonStr = stringRedisTemplate.boundValueOps("topTradePartnersNew" + params.getString("org_id") + params.getString("begin")).get(); + List topTradePartnersNew = JSONObject.parseArray(jsonStr, JSONObject.class); + if (topTradePartnersNew != null) { return topTradePartnersNew; } params.putIfAbsent("rankType", "aud_fee"); List res = clientAnalysisMapper.listPartnersTradeAmountNew(params); - stringRedisTemplate.boundValueOps("topTradePartnersNew"+params.getString("org_id")+ params.getString("begin")).set(res.toString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("topTradePartnersNew" + params.getString("org_id") + params.getString("begin")).set(res.toString(), 5, TimeUnit.MINUTES); return res; } @@ -277,6 +276,7 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT analysis.add(wechatHtml5); return analysis; } + @Override public List getPartnerTradeAnalysisInDays(JSONObject params) { int date_range = Integer.parseInt(DurationFormatUtils.formatPeriod(params.getDate("begin").getTime(), params.getDate("end").getTime(), "dd")); @@ -293,16 +293,16 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT @Override public List getTradeAnalysisInDays(JSONObject params) { - String jsonStr = stringRedisTemplate.boundValueOps("tradeAnalysisInDays"+params.getString("org_id")+ params.getString("begin")).get(); - List tradeAnalysisInDays = JSONObject.parseArray(jsonStr,JSONObject.class); - if(tradeAnalysisInDays != null){ + String jsonStr = stringRedisTemplate.boundValueOps("tradeAnalysisInDays" + params.getString("org_id") + params.getString("begin")).get(); + List tradeAnalysisInDays = JSONObject.parseArray(jsonStr, JSONObject.class); + if (tradeAnalysisInDays != null) { return tradeAnalysisInDays; } if (!params.containsKey("client_ids") && !params.containsKey("org_id")) { params.put("client_id", 0); } List res = customerAndOrdersStatisticsMapper.getSumCustomersAnalysis(params); - stringRedisTemplate.boundValueOps("tradeAnalysisInDays"+params.getString("org_id")+ params.getString("begin")).set(res.toString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("tradeAnalysisInDays" + params.getString("org_id") + params.getString("begin")).set(res.toString(), 5, TimeUnit.MINUTES); return res; } @@ -330,11 +330,11 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT params.put("client_id", partner.getIntValue("client_id")); clientManager.queryModifyClientIds(partner.getIntValue("client_id"), params); JSONObject today = getTransJSONO(params); - params.put("begin",DateUtils.addDays(params.getDate("begin"),-1)); - params.put("end",DateUtils.addDays(params.getDate("end"),-1)); + params.put("begin", DateUtils.addDays(params.getDate("begin"), -1)); + params.put("end", DateUtils.addDays(params.getDate("end"), -1)); JSONObject yes = getTransJSONO(params); - res.put("today",today); - res.put("yes",yes); + res.put("today", today); + res.put("yes", yes); // res.put("not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); // params.put("channel", "system"); // res.put("sys_not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); @@ -342,18 +342,19 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT // res.put("rpaypmt_card_not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); // params.put("channel", "rpaypmt_dd"); // res.put("rpaypmt_dd_not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); - res.put("trade_amount_rise",yes.getBigDecimal("trade_amount").compareTo(BigDecimal.ZERO)>0 ? (today.getBigDecimal("trade_amount").subtract(yes.getBigDecimal("trade_amount"))).divide(yes.getBigDecimal("trade_amount"), 4, RoundingMode.HALF_UP):BigDecimal.ZERO); + res.put("trade_amount_rise", yes.getBigDecimal("trade_amount").compareTo(BigDecimal.ZERO) > 0 ? (today.getBigDecimal("trade_amount").subtract(yes.getBigDecimal("trade_amount"))).divide(yes.getBigDecimal("trade_amount"), 4, RoundingMode.HALF_UP) : BigDecimal.ZERO); res.put("trade_count_rise", yes.getIntValue("trade_count") > 0 ? (today.getBigDecimal("trade_count").subtract(yes.getBigDecimal("trade_count"))).divide(yes.getBigDecimal("trade_count"), 4, RoundingMode.HALF_UP) : 0); res.put("customers_rise", yes.getIntValue("customers") > 0 ? (today.getBigDecimal("customers").subtract(yes.getBigDecimal("customers"))).divide(yes.getBigDecimal("customers"), 4, RoundingMode.HALF_UP) : 0); params.remove("begin"); params.remove("end"); List logs = transactionMapper.listSettlementLogTotal(params); - res.put("latest_settle",logs.isEmpty()?BigDecimal.ZERO:logs.get(0).getBigDecimal("income")); + res.put("latest_settle", logs.isEmpty() ? BigDecimal.ZERO : logs.get(0).getBigDecimal("income")); return res; } /** * 根据渠道号分别加载未清算金额 + * * @param partner * @param partnerAnalysisBean * @return @@ -374,16 +375,17 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT params.put("hide_sub_mch", mchConfig.getBooleanValue("hide_sub_mch")); params.put("client_id", partner.getIntValue("client_id")); clientManager.queryModifyClientIds(partner.getIntValue("client_id"), params); - params.put("begin",DateUtils.addDays(params.getDate("begin"),-1)); - params.put("end",DateUtils.addDays(params.getDate("end"),-1)); - String key="not_settled"; - if(StringUtils.isNotEmpty(params.getString("channel"))){ - key=params.getString("channel")+"_not_settled"; + params.put("begin", DateUtils.addDays(params.getDate("begin"), -1)); + params.put("end", DateUtils.addDays(params.getDate("end"), -1)); + String key = "not_settled"; + if (StringUtils.isNotEmpty(params.getString("channel"))) { + key = params.getString("channel") + "_not_settled"; } res.put(key, new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); return res; } - private JSONObject getTransJSONO(JSONObject params){ + + private JSONObject getTransJSONO(JSONObject params) { JSONObject res = new JSONObject(); JSONObject object = transactionAnalysisMapper.getClientTransaction(params); res.put("trade_amount", object.getBigDecimal("trade_amount")); @@ -391,6 +393,7 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT res.put("customers", transactionAnalysisMapper.countCustomers(params)); return res; } + @Override public List getTradeAnalysisInHours(JSONObject partner, AnalysisBean partnerAnalysisBean) { String timezone = partner.getJSONObject("client").getString("timezone"); @@ -446,22 +449,22 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT throw new ParamInvalidException("end", "error.payment.valid.invalid_time"); } List listChannelRate = new ArrayList<>(); - Map exchangeRateMap = new TreeMap<>(); - String[] channels = {"Wechat","Alipay"}; - for (String channel:channels){ + Map exchangeRateMap = new TreeMap<>(); + String[] channels = {"Wechat", "Alipay"}; + for (String channel : channels) { channelsExchangeRate(beginDate, endDate, exchangeRateMap, channel); } - for (Date date:exchangeRateMap.keySet()){ + for (Date date : exchangeRateMap.keySet()) { JSONObject total = exchangeRateMap.get(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); String time = sdf.format(date); - total.put("date",time); - for (String channel:channels){ - if(total.getJSONObject(channel)==null){ + total.put("date", time); + for (String channel : channels) { + if (total.getJSONObject(channel) == null) { JSONObject mockAnalysis = new JSONObject(); - mockAnalysis.put("exchange_rate",0); - mockAnalysis.put("date",time); - total.put(channel,mockAnalysis); + mockAnalysis.put("exchange_rate", 0); + mockAnalysis.put("date", time); + total.put(channel, mockAnalysis); } } listChannelRate.add(total); @@ -469,17 +472,17 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT return listChannelRate; } - public void channelsExchangeRate(Date beginDate,Date endDate,Map exchangeRateMap, String channel){ + public void channelsExchangeRate(Date beginDate, Date endDate, Map exchangeRateMap, String channel) { - List channelRates = exchangeRateMapper.listExchangeRates(beginDate, endDate,channel); - for (JSONObject analysisItem:channelRates){ + List channelRates = exchangeRateMapper.listExchangeRates(beginDate, endDate, channel); + for (JSONObject analysisItem : channelRates) { Date date = analysisItem.getDate("date"); JSONObject dataItem = exchangeRateMap.get(date); - if(dataItem==null){ + if (dataItem == null) { dataItem = new JSONObject(); - exchangeRateMap.put(date,dataItem); + exchangeRateMap.put(date, dataItem); } - dataItem.put(channel,analysisItem); + dataItem.put(channel, analysisItem); } } @@ -502,16 +505,16 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT public JSONObject getNewRecord() { String jsonStr = stringRedisTemplate.boundValueOps("newRecord").get(); JSONObject newRecord = JSON.parseObject(jsonStr); - if(newRecord != null){ + if (newRecord != null) { return newRecord; } JSONObject max_amount = customerAndOrdersStatisticsMapper.getMaxAmount(0); JSONObject max_orders = customerAndOrdersStatisticsMapper.getMaxOrders(0); JSONObject maxTransactionPartners = customerAndOrdersStatisticsMapper.getMaxTransactionPartners(); JSONObject res = new JSONObject(); - res.put("max_amount",max_amount); - res.put("max_orders",max_orders); - res.put("max_transaction_partners",maxTransactionPartners); + res.put("max_amount", max_amount); + res.put("max_orders", max_orders); + res.put("max_transaction_partners", maxTransactionPartners); stringRedisTemplate.boundValueOps("newRecord").set(res.toJSONString(), 5, TimeUnit.MINUTES); return res; } @@ -523,38 +526,43 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT } @Override - public void generateCustomersAndOrdersStatistics(Date analysisDate){ + public void generateCustomersAndOrdersStatistics(Date analysisDate) { DateFormat format = new SimpleDateFormat("yyyyMMdd"); String date = format.format(analysisDate); - List clients =clientMapper.listClients(); - for (JSONObject client:clients){ + List clients = clientMapper.listClients(); + for (JSONObject client : clients) { generateData(format, date, client); } JSONObject totalObject = new JSONObject(); - totalObject.put("client_id",0); - generateData(format,date,totalObject); + totalObject.put("client_id", 0); + generateData(format, date, totalObject); + logger.info("generate customer and orders statistics on {} done", date); } /** * 重新生成执行商户下某日消费者数据 + * * @param analysisDate * @param clientId */ - public void generateCustomersAndOrdersStatisticsByClientMoniker(Date analysisDate,String clientId){ + public void generateCustomersAndOrdersStatisticsByClientMoniker(Date analysisDate, String clientId) { DateFormat format = new SimpleDateFormat("yyyyMMdd"); String date = format.format(analysisDate); - List clients =clientMapper.listClients(); - for (JSONObject client:clients){ - if(client.getString("client_id").equals(clientId)){ + List clients = clientMapper.listClients(); + for (JSONObject client : clients) { + if (client.getString("client_id").equals(clientId)) { generateData(format, date, client); } } } private void generateData(DateFormat format, String date, JSONObject client) { + if (client.getIntValue("client_id") == 0) { + logger.info("analysising platform customers data", new RuntimeException("debug exception")); + } JSONObject params = new JSONObject(); - String timezone =client.getString("timezone"); - if (timezone!=null){ + String timezone = client.getString("timezone"); + if (timezone != null) { format.setTimeZone(TimeZone.getTimeZone(timezone)); } try { @@ -563,17 +571,17 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT } catch (ParseException e) { throw new ParamInvalidException("date", "error.payment.valid.invalid_date_format"); } - if (client.getIntValue("client_id")!=0){ - params.put("client_id",client.getIntValue("client_id")); + if (client.getIntValue("client_id") != 0) { + params.put("client_id", client.getIntValue("client_id")); } List records = transactionAnalysisMapper.getCustomersAndOrdersInDaysUseInScheduled(params); - if (!records.isEmpty()){ + if (!records.isEmpty()) { JSONObject deleteParams = new JSONObject(); - deleteParams.put("begin",params.getDate("begin")); - deleteParams.put("end",params.getDate("end")); - deleteParams.put("client_id",params.getIntValue("client_id")); + deleteParams.put("begin", params.getDate("begin")); + deleteParams.put("end", params.getDate("end")); + deleteParams.put("client_id", params.getIntValue("client_id")); customerAndOrdersStatisticsMapper.delete(deleteParams); - for (JSONObject record:records){ + for (JSONObject record : records) { String sdate = format.format(record.getDate("date")); try { params.put("begin", format.parse(sdate)); @@ -581,17 +589,16 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT } catch (ParseException e) { throw new ParamInvalidException("date", "error.payment.valid.invalid_date_format"); } - params.put("channel",record.getString("channel")); + params.put("channel", record.getString("channel")); int newCustomers = 0; - int oldCustomers = transactionAnalysisMapper.countOldCustomers(params); - if (client.getIntValue("client_id")==0){ - newCustomers = record.getIntValue("customers")-oldCustomers; - }else { + int oldCustomers=0; + if (client.getIntValue("client_id") != 0) { + oldCustomers = transactionAnalysisMapper.countOldCustomers(params); newCustomers = transactionAnalysisMapper.countNewCustomers(params); } - record.put("new_customers",newCustomers); - record.put("old_customers",oldCustomers); - record.put("client_id",client.getIntValue("client_id")); + record.put("new_customers", newCustomers); + record.put("old_customers", oldCustomers); + record.put("client_id", client.getIntValue("client_id")); if (StringUtils.equalsIgnoreCase("rpaypmt_card", record.getString("channel")) || StringUtils.equalsIgnoreCase("rpaypmt_dd", record.getString("channel"))) { record.put("single_amount", record.getBigDecimal("total").divide(record.getBigDecimal("orders"), 2, RoundingMode.HALF_UP)); } @@ -599,37 +606,40 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT } } } + @Override public JSONObject getPlatformAmount(JSONObject params) { String jsonStr = stringRedisTemplate.boundValueOps("org_ChannelAnalysis" + params.getString("org_id") + params.getString("begin")).get(); JSONObject channelAnalysis = JSON.parseObject(jsonStr); - if(channelAnalysis != null){ + if (channelAnalysis != null) { return channelAnalysis; - }else { + } else { JSONObject resp; - if(params.getDate("end").compareTo(new Date()) > 0){ - if(params.getDate("begin").compareTo(DateUtils.addDays(params.getDate("end"), -1))==0){ + if (params.getDate("end").compareTo(new Date()) > 0) { + if (params.getDate("begin").compareTo(DateUtils.addDays(params.getDate("end"), -1)) == 0) { resp = getTodayChannelCount(params); - }else { + } else { resp = customerAndOrdersStatisticsMapper.getChannelCommonCount(params); } - }else { + } else { resp = customerAndOrdersStatisticsMapper.getChannelCommonCount(params); } - stringRedisTemplate.boundValueOps("org_ChannelAnalysis"+ params.getString("org_id")+params.getString("begin")).set(resp.toJSONString(), 5, TimeUnit.MINUTES); + stringRedisTemplate.boundValueOps("org_ChannelAnalysis" + params.getString("org_id") + params.getString("begin")).set(resp.toJSONString(), 5, TimeUnit.MINUTES); return resp; } } - private JSONObject getTodayChannelCount(JSONObject params){ - String[] channels = new String[]{"Wechat", "Alipay", "AlipayOnline", "Rpay", "rpaypmt_card", "rpaypmt_dd","ApsInStore","ApsCashier"}; + + private JSONObject getTodayChannelCount(JSONObject params) { + String[] channels = new String[]{"Wechat", "Alipay", "AlipayOnline", "Rpay", "rpaypmt_card", "rpaypmt_dd","ApsInStore","ApsCashier"}; JSONObject resp = new JSONObject(); - for(String channel:channels) { + for (String channel : channels) { params.put("channel", channel); - resp.put(channel.toLowerCase()+"amount", transactionAnalysisMapper.getPlatformAmount(params).getBigDecimal("amount")); - resp.put(channel.toLowerCase()+"_order_count", transactionAnalysisMapper.getPlatformAmount(params).getIntValue("order_count")); + resp.put(channel.toLowerCase() + "amount", transactionAnalysisMapper.getPlatformAmount(params).getBigDecimal("amount")); + resp.put(channel.toLowerCase() + "_order_count", transactionAnalysisMapper.getPlatformAmount(params).getIntValue("order_count")); } return resp; } + @Override public JSONObject getOrderAndCustomerPerDay(JSONObject partner, AnalysisBean partnerAnalysisBean) { String timezone = partner.getJSONObject("client").getString("timezone"); 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 612514062..a1abe55b4 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 @@ -26,6 +26,7 @@ import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.*; +import org.joda.time.DateTime; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -263,10 +264,10 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { @Transactional public void generateold(String monthStr) { Date mon = checkMonth(monthStr); - Calendar monthCal = Calendar.getInstance(); - monthCal.setTime(mon); - int year = monthCal.get(Calendar.YEAR); - int month = monthCal.get(Calendar.MONTH) + 1; + DateTime begin = new DateTime(mon); + DateTime end = begin.plusMonths(1); + int year = begin.getYear(); + int month = begin.getMonthOfYear(); JSONObject sysConfig = sysConfigManager.getSysConfig(); BigDecimal alipayChargeRate = new BigDecimal("0.6"); @@ -290,7 +291,7 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { channelMap.put("Wechat", "Wechat"); channelMap.put("AlipayOnline", "AlipayOnline"); Set orgIds = new HashSet<>(); - List transactionAnalysis = transactionMapper.listTransactionsForCityPartnerCommission(year, month); + List transactionAnalysis = transactionMapper.listTransactionsForCityPartnerCommission(begin.toDate(), end.toDate()); Map results = new HashMap<>(); for (JSONObject analysisDay : transactionAnalysis) { int orgId = analysisDay.getIntValue("org_id"); @@ -343,10 +344,12 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { @Transactional public void generate(String monthStr) { Date mon = checkMonth(monthStr); - Calendar monthCal = Calendar.getInstance(); - monthCal.setTime(mon); - int year = monthCal.get(Calendar.YEAR); - int month = monthCal.get(Calendar.MONTH) + 1; + DateTime begin = new DateTime(mon); + DateTime timeinterval1=begin.plusDays(10); + DateTime timeinterval2=begin.plusDays(20); + DateTime end = begin.plusMonths(1); + int year = begin.getYear(); + int month = begin.getMonthOfYear(); // List list = financialPartnerCommissionMapper.list(year, month); // if (list != null && !list.isEmpty()) { @@ -401,7 +404,16 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { channelCharge.put("onlineInterchangeChargeRate", onlineInterchangeChargeRate); channelCharge.put("onlineServiceChargeRate", onlineServiceChargeRate); - List transactionDetail = transactionMapper.listTransactionForCityPartnerCommissionByDate(year, month); + List transactionDetail=new ArrayList<>(); + long time1=System.currentTimeMillis(); + List transactionDetail1 = transactionMapper.listTransactionForCityPartnerCommissionByDate(begin.toDate(), timeinterval1.toDate()); + List transactionDetail2 = transactionMapper.listTransactionForCityPartnerCommissionByDate(timeinterval1.toDate(), timeinterval2.toDate()); + List transactionDetail3 = transactionMapper.listTransactionForCityPartnerCommissionByDate(timeinterval2.toDate(), end.toDate()); + long time2=System.currentTimeMillis(); + System.out.println("=====>time:"+(time2-time1)); + transactionDetail.addAll(transactionDetail1); + transactionDetail.addAll(transactionDetail2); + transactionDetail.addAll(transactionDetail3); transactionDetail.forEach(item -> { if (StringUtils.equalsIgnoreCase("AlipayPlus", item.getString("channel"))) { item.put("channel", item.getString("pay_type")); @@ -1175,15 +1187,22 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { @Transactional public void generateReferrer(String monthStr) { Date mon = checkMonth(monthStr); - Calendar monthCal = Calendar.getInstance(); - monthCal.setTime(mon); - int year = monthCal.get(Calendar.YEAR); - int month = monthCal.get(Calendar.MONTH) + 1; + DateTime begin = new DateTime(mon); + DateTime timeinterval1=begin.plusDays(10); + DateTime timeinterval2=begin.plusDays(20); + DateTime end = begin.plusMonths(1); + int year = begin.getYear(); + int month = begin.getMonthOfYear(); financialReferrerCommissionDetailMapper.clearData(year, month); financialReferrerCommissionMapper.clearData(year, month); - - List transactionAnalysis = transactionMapper.listTransactionsForReferrerCommission(year, month); + List transactionAnalysis=new ArrayList<>(); + List transactionAnalysis1 = transactionMapper.listTransactionsForReferrerCommission(begin.toDate(), timeinterval1.toDate()); + List transactionAnalysis2 = transactionMapper.listTransactionsForReferrerCommission(timeinterval1.toDate(), timeinterval2.toDate()); + List transactionAnalysis3 = transactionMapper.listTransactionsForReferrerCommission(timeinterval2.toDate(), end.toDate()); + transactionAnalysis.addAll(transactionAnalysis1); + transactionAnalysis.addAll(transactionAnalysis2); + transactionAnalysis.addAll(transactionAnalysis3); Map results = new HashMap<>(); for (JSONObject analysisDay : transactionAnalysis) { Integer orgId = analysisDay.getInteger("org_id"); @@ -1262,14 +1281,22 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService { public void generateAgent(String monthStr, JSONObject channelCharge) { Date mon = checkMonth(monthStr); - Calendar monthCal = Calendar.getInstance(); - monthCal.setTime(mon); - int year = monthCal.get(Calendar.YEAR); - int month = monthCal.get(Calendar.MONTH) + 1; + DateTime begin = new DateTime(mon); + DateTime timeinterval1=begin.plusDays(10); + DateTime timeinterval2=begin.plusDays(20); + DateTime end = begin.plusMonths(1); + int year = begin.getYear(); + int month = begin.getMonthOfYear(); financialAgentCommissionMapper.clearData(year, month); financialAgentCommissionDetailMapper.clearData(year, month); - List transactionDetail = transactionMapper.listTransactionForCityPartnerAgentCommissionByDate(year, month); + List transactionDetail=new ArrayList<>(); + List transactionDetail1 = transactionMapper.listTransactionForCityPartnerAgentCommissionByDate(begin.toDate(), timeinterval1.toDate()); + List transactionDetail2 = transactionMapper.listTransactionForCityPartnerAgentCommissionByDate(timeinterval1.toDate(), timeinterval2.toDate()); + List transactionDetail3 = transactionMapper.listTransactionForCityPartnerAgentCommissionByDate(timeinterval2.toDate(), end.toDate()); + transactionDetail.addAll(transactionDetail1); + transactionDetail.addAll(transactionDetail2); + transactionDetail.addAll(transactionDetail3); transactionDetail.forEach(item -> { if (StringUtils.equalsIgnoreCase("AlipayPlus", item.getString("channel"))) { item.put("channel", item.getString("pay_type")); diff --git a/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java index 23cc25d9c..27c0c2c20 100644 --- a/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java @@ -58,9 +58,9 @@ public class DataAnalysisServiceImpl implements DataAnalysisService { response.put("max_order", 0); } //总消费人数 - response.put("total_customers", transactionAnalysisMapper.countCustomers(params)); + response.put("total_customers", 0); //老客户人数 - response.put("old_customers", transactionAnalysisMapper.countOldCustomers(params)); + response.put("old_customers", 0); return response; } diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java index db7ca8c13..5a676fcba 100644 --- a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java +++ b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java @@ -1,10 +1,15 @@ package au.com.royalpay.payment.manage.dev.web; +import au.com.royalpay.payment.channels.alipay.config.AlipayConfig; +import au.com.royalpay.payment.channels.alipay.config.AlipayEnvironment; +import au.com.royalpay.payment.channels.alipay.runtime.AlipayOnlineApi; +import au.com.royalpay.payment.channels.alipay.runtime.AlipayRetailApi; import au.com.royalpay.payment.channels.wechat.runtime.beans.SubMerchantInfoInheritance; import au.com.royalpay.payment.channels.wechat.runtime.impls.WxPayMerchantRegister; import au.com.royalpay.payment.channels.wechat.runtime.mappers.PaymentChannelMccGoodMapper; import au.com.royalpay.payment.core.PaymentApi; import au.com.royalpay.payment.core.PaymentDevHelper; +import au.com.royalpay.payment.core.beans.EmptyMerchantApplication; import au.com.royalpay.payment.core.exceptions.InvalidShortIdException; import au.com.royalpay.payment.core.impls.MerchantChannelApplicationManager; import au.com.royalpay.payment.core.mappers.PmtCustomReportMapper; @@ -37,6 +42,7 @@ import au.com.royalpay.payment.tools.exceptions.ServerErrorException; import au.com.royalpay.payment.tools.http.HttpUtils; import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; +import au.com.royalpay.payment.tools.scheduler.SynchronizedScheduler; import au.com.royalpay.payment.tools.utils.PdfUtils; import au.com.royalpay.payment.tools.utils.TimeZoneUtils; import com.alibaba.fastjson.JSON; @@ -62,12 +68,10 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.math.RoundingMode; +import java.security.InvalidParameterException; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.util.*; /** * Created by yixian on 2016-07-06. @@ -77,6 +81,8 @@ import java.util.Optional; public class TestController { private final Logger logger = LoggerFactory.getLogger(getClass()); @Resource + private SynchronizedScheduler synchronizedScheduler; + @Resource private OrderMapper orderMapper; @Resource private RefundMapper refundMapper; @@ -178,7 +184,8 @@ public class TestController { } /** - * 第二个版本的合同 + * 第二个版本的合同 + * * @param clientMoniker * @param manager * @param httpResponse @@ -186,95 +193,95 @@ public class TestController { */ @ManagerMapping(value = "/{clientMoniker}/export/aggregate/agreepdf", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.DIRECTOR, ManagerRole.OPERATOR}) public void exportAggregateAgreeFile(@PathVariable String clientMoniker, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, HttpServletResponse httpResponse) { - logger.info("===>exportAggregateAgreeFile:path:"+aggragatePdfPath); + logger.info("===>exportAggregateAgreeFile:path:" + aggragatePdfPath); httpResponse.setContentType("application/pdf"); httpResponse.setHeader("content-disposition", "attachment;filename=" + clientMoniker + "_AGREEMENT_" + new Date() + ".pdf"); try { - ServletOutputStream sos = httpResponse.getOutputStream(); + ServletOutputStream sos = httpResponse.getOutputStream(); - JSONObject client = clientMapper.findClientByMoniker(clientMoniker); - if (client == null) { - throw new InvalidShortIdException(); - } - String address = client.getString("address").trim(); - if (address.contains(",")) { - client.put("address", address.substring(0, address.lastIndexOf(",")).trim()); - client.put("address_sub", address.substring(address.lastIndexOf(",") + 1).trim()); - } - if (client.getString("acn") != null && !client.getString("acn").equals("")) { - client.put("acn_type", "ACN: (" + client.getString("acn") + ")"); - client.put("company_name_acn", client.getString("company_name") + " (ACN " + client.getString("acn") + ")"); - } else { - client.put("acn_type", "ABN: (" + client.getString("abn") + ")"); - client.put("company_name_acn", client.getString("company_name") + " (ABN " + client.getString("abn") + ")"); - } + JSONObject client = clientMapper.findClientByMoniker(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } + String address = client.getString("address").trim(); + if (address.contains(",")) { + client.put("address", address.substring(0, address.lastIndexOf(",")).trim()); + client.put("address_sub", address.substring(address.lastIndexOf(",") + 1).trim()); + } + if (client.getString("acn") != null && !client.getString("acn").equals("")) { + client.put("acn_type", "ACN: (" + client.getString("acn") + ")"); + client.put("company_name_acn", client.getString("company_name") + " (ACN " + client.getString("acn") + ")"); + } else { + client.put("acn_type", "ABN: (" + client.getString("abn") + ")"); + client.put("company_name_acn", client.getString("company_name") + " (ABN " + client.getString("abn") + ")"); + } - JSONObject weChatRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Wechat"); - if (weChatRate == null) { - throw new BadRequestException("The Partner's Rate is not config!"); - } - client.put("wechat_rate", weChatRate.getBigDecimal("rate_value").setScale(2, RoundingMode.DOWN)); - client.put("clean", "T+"+weChatRate.getString("clean_days")); - client.put("clean_days", weChatRate.getString("clean_days")); - client.put("located_country", "Australia"); - if("1".equalsIgnoreCase(weChatRate.getString("clean_days"))){ + JSONObject weChatRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Wechat"); + if (weChatRate == null) { + throw new BadRequestException("The Partner's Rate is not config!"); + } + client.put("wechat_rate", weChatRate.getBigDecimal("rate_value").setScale(2, RoundingMode.DOWN)); + client.put("clean", "T+" + weChatRate.getString("clean_days")); + client.put("clean_days", weChatRate.getString("clean_days")); + client.put("located_country", "Australia"); + if ("1".equalsIgnoreCase(weChatRate.getString("clean_days"))) { // clean_1 clean_1_friday clean_1_saturday - // first, second, third or fourth - client.put("clean_1", weChatRate.getString("clean_days")); - client.put("clean_1_friday", "first"); - client.put("clean_1_saturday", "second"); - }else if("2".equalsIgnoreCase(weChatRate.getString("clean_days"))){ - client.put("clean_1", weChatRate.getString("clean_days")); - client.put("clean_1_friday", "second"); - client.put("clean_1_saturday", "third"); - - }else if("3".equalsIgnoreCase(weChatRate.getString("clean_days"))){ - client.put("clean_1", weChatRate.getString("clean_days")); - client.put("clean_1_friday", "third"); - client.put("clean_1_saturday", "fourth"); - } - - try { - JSONObject alipayRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Alipay"); - if (alipayRate != null) { - client.put("alipay_rate", alipayRate.getBigDecimal("rate_value").setScale(2, RoundingMode.DOWN)); + // first, second, third or fourth + client.put("clean_1", weChatRate.getString("clean_days")); + client.put("clean_1_friday", "first"); + client.put("clean_1_saturday", "second"); + } else if ("2".equalsIgnoreCase(weChatRate.getString("clean_days"))) { + client.put("clean_1", weChatRate.getString("clean_days")); + client.put("clean_1_friday", "second"); + client.put("clean_1_saturday", "third"); + + } else if ("3".equalsIgnoreCase(weChatRate.getString("clean_days"))) { + client.put("clean_1", weChatRate.getString("clean_days")); + client.put("clean_1_friday", "third"); + client.put("clean_1_saturday", "fourth"); } - JSONObject alipayOnlineRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "AlipayOnline"); - if (alipayOnlineRate != null) { - client.put("alipay_online_rate", alipayOnlineRate.getBigDecimal("rate_value").setScale(2, RoundingMode.DOWN)); + + try { + JSONObject alipayRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Alipay"); + if (alipayRate != null) { + client.put("alipay_rate", alipayRate.getBigDecimal("rate_value").setScale(2, RoundingMode.DOWN)); + } + JSONObject alipayOnlineRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "AlipayOnline"); + if (alipayOnlineRate != null) { + client.put("alipay_online_rate", alipayOnlineRate.getBigDecimal("rate_value").setScale(2, RoundingMode.DOWN)); + } + } catch (Exception ignored) { + //do nothing } - } catch (Exception ignored) { - //do nothing - } - JSONObject account = getBankAccountByClientId(client.getIntValue("client_id")); - if (account == null || account.size() <= 0) { - throw new BadRequestException("The Partner's Account is not config!"); - } + JSONObject account = getBankAccountByClientId(client.getIntValue("client_id")); + if (account == null || account.size() <= 0) { + throw new BadRequestException("The Partner's Account is not config!"); + } - client.put("bank", account.getString("bank")); - client.put("bsb_no", account.getString("bsb_no")); - client.put("account_no", account.getString("account_no")); - client.put("account_name", account.getString("account_name")); - String start_date = DateFormatUtils.format(new Date(), "dd/MM/yyyy"); - client.put("start_date", start_date); - Date endDate = TimeZoneUtils.nextYearByCurrDay(); - String end_date = DateFormatUtils.format(endDate, "dd/MM/yyyy"); - client.put("end_date", end_date); - JSONObject clientLegal = sysClientLegalPersonMapper.findRepresentativeInfo(client.getIntValue("client_id")); - if (clientLegal != null) { - client.put("legal_person", clientLegal.getString("representative_person")); - client.put("legal_job_title", clientLegal.getString("job_title")); - client.put("legal_phone", clientLegal.getString("phone")); - client.put("legal_email", clientLegal.getString("email")); - client.put("client_contract_manager", clientLegal.getString("representative_person"));//client contract manager - } + client.put("bank", account.getString("bank")); + client.put("bsb_no", account.getString("bsb_no")); + client.put("account_no", account.getString("account_no")); + client.put("account_name", account.getString("account_name")); + String start_date = DateFormatUtils.format(new Date(), "dd/MM/yyyy"); + client.put("start_date", start_date); + Date endDate = TimeZoneUtils.nextYearByCurrDay(); + String end_date = DateFormatUtils.format(endDate, "dd/MM/yyyy"); + client.put("end_date", end_date); + JSONObject clientLegal = sysClientLegalPersonMapper.findRepresentativeInfo(client.getIntValue("client_id")); + if (clientLegal != null) { + client.put("legal_person", clientLegal.getString("representative_person")); + client.put("legal_job_title", clientLegal.getString("job_title")); + client.put("legal_phone", clientLegal.getString("phone")); + client.put("legal_email", clientLegal.getString("email")); + client.put("client_contract_manager", clientLegal.getString("representative_person"));//client contract manager + } - PdfUtils pdu = new PdfUtils(); - pdu.setTemplatePdfPath(aggragatePdfPath); - pdu.setPdfTemplate(client); - File file = new File(clientMoniker + "_agreement.pdf"); + PdfUtils pdu = new PdfUtils(); + pdu.setTemplatePdfPath(aggragatePdfPath); + pdu.setPdfTemplate(client); + File file = new File(clientMoniker + "_agreement.pdf"); ByteArrayOutputStream bos = pdu.templetPdfBos(file); @@ -285,6 +292,7 @@ public class TestController { e.printStackTrace(); } } + /** * 制作卡支付合同 * @@ -464,8 +472,15 @@ public class TestController { } @GetMapping(value = "/task/analysisDashboard") - public void analysisDashboard(@RequestParam("date") String date) throws ParseException { - dashboardService.generateCustomersAndOrdersStatistics(DateUtils.parseDate(date, "yyyyMMdd")); + public void analysisDashboard(@RequestParam("date") String date) { + synchronizedScheduler.executeProcess("manage_task:dashboardTask", 120_000, + () -> { + try { + dashboardService.generateCustomersAndOrdersStatistics(DateUtils.parseDate(date, "yyyyMMdd")); + } catch (ParseException e) { + logger.error("invalid input date:{}", date); + } + }); } @@ -567,70 +582,69 @@ public class TestController { /** * 批量更新微信子商户号 */ - @ManagerMapping(value = "/batch_update_wxsubmerchantId", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.DIRECTOR, ManagerRole.OPERATOR, ManagerRole.DEVELOPER}) + @ManagerMapping(value = "/batch_update_wxsubmerchantId", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.DIRECTOR, ManagerRole.OPERATOR, ManagerRole.DEVELOPER}) public void batchUpdateWxSubmerchantId() { - List findSubMerchantIdHistorys=sysWxMerchantApplyMapper.findSubMerchantIdHistorys(); - if(findSubMerchantIdHistorys==null)return; - logger.info("=========>batchUpdateWxSubmerchantId:"+findSubMerchantIdHistorys.size()); + List findSubMerchantIdHistorys = sysWxMerchantApplyMapper.findSubMerchantIdHistorys(); + if (findSubMerchantIdHistorys == null) return; + logger.info("=========>batchUpdateWxSubmerchantId:" + findSubMerchantIdHistorys.size()); findSubMerchantIdHistorys.parallelStream().forEach(jsonObject -> { JSONObject clientJson = clientMapper.findClient(jsonObject.getInteger("client_id")); JSONObject wechatMcc = paymentChannelMccGoodMapper.findWechatPayMccByClientId(jsonObject.getIntValue("client_id")); JSONObject clientConfig = clientConfigMapper.find(jsonObject.getIntValue("client_id")); - if(clientJson==null){ - logger.info("=========>没有查询到client:"+jsonObject.getInteger("client_id")); + if (clientJson == null) { + logger.info("=========>没有查询到client:" + jsonObject.getInteger("client_id")); return; } - if(wechatMcc==null){ - logger.info("=========>没有查询到mcc:"+jsonObject.getInteger("client_id")); + if (wechatMcc == null) { + logger.info("=========>没有查询到mcc:" + jsonObject.getInteger("client_id")); return; } // company_name short_name industry company_phone contact_person contact_phone contact_email 这些字段不能为空 - if(TextUtils.isEmpty(clientJson.getString("short_name"))|| - TextUtils.isEmpty(clientJson.getString("industry"))|| - TextUtils.isEmpty(clientJson.getString("company_phone"))|| - TextUtils.isEmpty(clientJson.getString("contact_phone"))|| - TextUtils.isEmpty(clientJson.getString("contact_person"))|| - TextUtils.isEmpty(clientJson.getString("contact_email"))|| - TextUtils.isEmpty(wechatMcc.getString("mc_code"))){ - logger.error("=======>数据不完整:clientid:"+jsonObject.getInteger("client_id")+""); + if (TextUtils.isEmpty(clientJson.getString("short_name")) || + TextUtils.isEmpty(clientJson.getString("industry")) || + TextUtils.isEmpty(clientJson.getString("company_phone")) || + TextUtils.isEmpty(clientJson.getString("contact_phone")) || + TextUtils.isEmpty(clientJson.getString("contact_person")) || + TextUtils.isEmpty(clientJson.getString("contact_email")) || + TextUtils.isEmpty(wechatMcc.getString("mc_code"))) { + logger.error("=======>数据不完整:clientid:" + jsonObject.getInteger("client_id") + ""); return; } - NewSubMerchantIdApply newSubMerchantIdApply=new NewSubMerchantIdApply(); + NewSubMerchantIdApply newSubMerchantIdApply = new NewSubMerchantIdApply(); newSubMerchantIdApply.setMerchant_id(jsonObject.getString("merchant_id")); newSubMerchantIdApply.setSub_mch_id(jsonObject.getString("sub_merchant_id")); newSubMerchantIdApply.setMerchantRemark(jsonObject.getString("merchant_remark")); - newSubMerchantIdApply.setMerchant_name(cutLength(jsonObject.getString("merchant_name"),50)); - newSubMerchantIdApply.setAddress(cutLength(clientJson.getString("address"),128)); - newSubMerchantIdApply.setMerchant_shortname(cutLength(clientJson.getString("short_name"),64)); + newSubMerchantIdApply.setMerchant_name(cutLength(jsonObject.getString("merchant_name"), 50)); + newSubMerchantIdApply.setAddress(cutLength(clientJson.getString("address"), 128)); + newSubMerchantIdApply.setMerchant_shortname(cutLength(clientJson.getString("short_name"), 64)); newSubMerchantIdApply.setBusiness_category(clientJson.getString("industry")); - newSubMerchantIdApply.setWebsite(cutLength(clientJson.getString("company_website"),100)); - newSubMerchantIdApply.setOffice_phone(cutLength(clientJson.getString("company_phone"),20)); - newSubMerchantIdApply.setContact_phone(cutLength(clientJson.getString("contact_phone"),16)); - newSubMerchantIdApply.setContact_name(cutLength(clientJson.getString("contact_person"),32)); - newSubMerchantIdApply.setContact_email(cutLength(clientJson.getString("contact_email"),50)); - newSubMerchantIdApply.setMcc_code(cutLength(wechatMcc.getString("mc_code"),10)); - - if(!TextUtils.isEmpty(clientConfig.getString("client_pay_type"))){ - if(clientConfig.getString("client_pay_type").indexOf("1")>=0 - &&clientConfig.getString("client_pay_type").indexOf("2")>=0){ + newSubMerchantIdApply.setWebsite(cutLength(clientJson.getString("company_website"), 100)); + newSubMerchantIdApply.setOffice_phone(cutLength(clientJson.getString("company_phone"), 20)); + newSubMerchantIdApply.setContact_phone(cutLength(clientJson.getString("contact_phone"), 16)); + newSubMerchantIdApply.setContact_name(cutLength(clientJson.getString("contact_person"), 32)); + newSubMerchantIdApply.setContact_email(cutLength(clientJson.getString("contact_email"), 50)); + newSubMerchantIdApply.setMcc_code(cutLength(wechatMcc.getString("mc_code"), 10)); + + if (!TextUtils.isEmpty(clientConfig.getString("client_pay_type"))) { + if (clientConfig.getString("client_pay_type").indexOf("1") >= 0 + && clientConfig.getString("client_pay_type").indexOf("2") >= 0) { newSubMerchantIdApply.setBusiness_type("BOTH"); - }else if(clientConfig.getString("client_pay_type").indexOf("1")>=0){ + } else if (clientConfig.getString("client_pay_type").indexOf("1") >= 0) { newSubMerchantIdApply.setBusiness_type("ONLINE"); - } - else if(clientConfig.getString("client_pay_type").indexOf("2")>=0){ + } else if (clientConfig.getString("client_pay_type").indexOf("2") >= 0) { newSubMerchantIdApply.setBusiness_type("OFFLINE"); } - }else{ + } else { newSubMerchantIdApply.setBusiness_type("BOTH"); } if (!TextUtils.isEmpty(clientJson.getString("business_structure"))) { - newSubMerchantIdApply.setMerchant_type(clientJson.getString("business_structure").equals("Registered body(Sole Trader)")?"INDIVIDUAL":"ENTERPRISE") ; - }else{ - newSubMerchantIdApply.setMerchant_type("INDIVIDUAL") ; + newSubMerchantIdApply.setMerchant_type(clientJson.getString("business_structure").equals("Registered body(Sole Trader)") ? "INDIVIDUAL" : "ENTERPRISE"); + } else { + newSubMerchantIdApply.setMerchant_type("INDIVIDUAL"); } - newSubMerchantIdApply.setCompany_register_no(cutLength(TextUtils.isEmpty(clientJson.getString("acn"))?clientJson.getString("abn"):clientJson.getString("acn"),50)); + newSubMerchantIdApply.setCompany_register_no(cutLength(TextUtils.isEmpty(clientJson.getString("acn")) ? clientJson.getString("abn") : clientJson.getString("acn"), 50)); if (!TextUtils.isEmpty(clientJson.getString("certificat_expire_date"))) { newSubMerchantIdApply.setCertificat_expire_date(clientJson.getString("certificat_expire_date")); } else { @@ -638,34 +652,32 @@ public class TestController { } - if("ENTERPRISE".equalsIgnoreCase(newSubMerchantIdApply.getMerchant_type())&&TextUtils.isEmpty(newSubMerchantIdApply.getCompany_register_no())){ - logger.error("=======>公司注册号为空:clientid:"+clientJson.getInteger("client_id")+":"+clientJson.getString("client_moniker")); + if ("ENTERPRISE".equalsIgnoreCase(newSubMerchantIdApply.getMerchant_type()) && TextUtils.isEmpty(newSubMerchantIdApply.getCompany_register_no())) { + logger.error("=======>公司注册号为空:clientid:" + clientJson.getInteger("client_id") + ":" + clientJson.getString("client_moniker")); return; } - if("BOTH".equalsIgnoreCase(newSubMerchantIdApply.getBusiness_type())&&(TextUtils.isEmpty(newSubMerchantIdApply.getAddress())|| - TextUtils.isEmpty(newSubMerchantIdApply.getWebsite()))){ - logger.error("=======>公司类型为BOTH:网址或地址为空:clientid:"+clientJson.getInteger("client_id")+":"+clientJson.getString("client_moniker")); + if ("BOTH".equalsIgnoreCase(newSubMerchantIdApply.getBusiness_type()) && (TextUtils.isEmpty(newSubMerchantIdApply.getAddress()) || + TextUtils.isEmpty(newSubMerchantIdApply.getWebsite()))) { + logger.error("=======>公司类型为BOTH:网址或地址为空:clientid:" + clientJson.getInteger("client_id") + ":" + clientJson.getString("client_moniker")); return; - } - else if("OFFLINE".equalsIgnoreCase(newSubMerchantIdApply.getBusiness_type())&&(TextUtils.isEmpty(newSubMerchantIdApply.getAddress()))){ - logger.error("=======>公司类型为OFFLINE:地址为空:clientid:"+clientJson.getInteger("client_id")+":"+clientJson.getString("client_moniker")); + } else if ("OFFLINE".equalsIgnoreCase(newSubMerchantIdApply.getBusiness_type()) && (TextUtils.isEmpty(newSubMerchantIdApply.getAddress()))) { + logger.error("=======>公司类型为OFFLINE:地址为空:clientid:" + clientJson.getInteger("client_id") + ":" + clientJson.getString("client_moniker")); return; - } - else if("ONLINE".equalsIgnoreCase(newSubMerchantIdApply.getBusiness_type())&& - TextUtils.isEmpty(newSubMerchantIdApply.getWebsite())){ - logger.error("=======>公司类型为ONLINE:网址为空:clientid:"+clientJson.getInteger("client_id")+":"+clientJson.getString("client_moniker")); + } else if ("ONLINE".equalsIgnoreCase(newSubMerchantIdApply.getBusiness_type()) && + TextUtils.isEmpty(newSubMerchantIdApply.getWebsite())) { + logger.error("=======>公司类型为ONLINE:网址为空:clientid:" + clientJson.getInteger("client_id") + ":" + clientJson.getString("client_moniker")); return; } JSONObject params = newSubMerchantIdApply.insertObject(clientJson); params.put("merchant_app_id", jsonObject.getString("merchant_app_id")); SubMerchantInfoInheritance subMerchantInfo = JSON.toJavaObject(params, SubMerchantInfoInheritance.class); - params.put("operator","System"); + params.put("operator", "System"); WxPayMerchantRegister register = Optional.ofNullable(merchantChannelApplicationManager.getRegister(WxPayMerchantRegister.class)) .orElseThrow(() -> new ServerErrorException("No Register found for wechat")); - JSONObject manager=new JSONObject(); - manager.put("display_name","System"); + JSONObject manager = new JSONObject(); + manager.put("display_name", "System"); register.modifyForBatch(jsonObject.getString("merchant_app_id"), clientJson, subMerchantInfo, manager); try { Thread.sleep(500); @@ -677,6 +689,7 @@ public class TestController { } + /** * 批量更新微信子商户号 */ @@ -784,13 +797,104 @@ public class TestController { // // // } - public String cutLength(String str,int maxlen){ - if(TextUtils.isEmpty(str))return ""; - if(str.length()>maxlen){ - return str.substring(0,maxlen); - }else{ - return str; + public String cutLength(String str, int maxlen) { + if (TextUtils.isEmpty(str)) return ""; + if (str.length() > maxlen) { + return str.substring(0, maxlen); + } else { + return str; } } + + /** + * 批量更新支付宝子商户号报备 + */ + @GetMapping(value = "/batch_update_alipayapply") + public void batchUpdateAlipayApply() { + logger.info("=======>batchUpdateAlipayApply=开始批量更新支付宝"); + String[] alipayonlines = new String[]{}; + StringBuilder sb=new StringBuilder(); + Arrays.stream(alipayonlines).forEach( + clientMoniker -> { + JSONObject client = clientMapper.findClientByMoniker(clientMoniker); + if (client == null) { + logger.info("======>alipayonline:" + clientMoniker + ":client为空"); + return; + } + if(TextUtils.isEmpty(client.getString("acn"))){ + client.put("acn",null); + } + logger.info("======>alipayonline:" + clientMoniker); + if (!client.containsKey("company_website")) { + client.put("company_website", "https://www.royalpay.com.au/"); + } + if (StringUtils.isBlank(client.getString("business_structure"))) { + client.put("business_structure", "Registered body(Sole Trader)"); + } + if (StringUtils.isBlank(client.getString("alipayindustry"))) { + logger.info("======>alipayonline:" + clientMoniker + ":alipayindustry为空,给默认值5311"); + client.put("alipayindustry", "5311"); + } + logger.info("======>alipayindustry:register:" + clientMoniker); + sb.append(clientMoniker+","); +// try { +// merchantChannelApplicationManager.getRegister(AlipayOnlineApi.class).apply(client, new EmptyMerchantApplication(), null); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// try { +// Thread.sleep(100); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } + } + + + ); + + String[] alipayRetails = new String[]{ }; + Arrays.stream(alipayRetails).forEach( + clientMoniker -> { + JSONObject client = clientMapper.findClientByMoniker(clientMoniker); + if (client == null) { + logger.info("======>alipayRetail:" + clientMoniker + ":client为空"); + } + if(TextUtils.isEmpty(client.getString("acn"))){ + client.put("acn",null); + } + logger.info("======>alipayRetail:" + clientMoniker); + if (!client.containsKey("store_photo") || !client.containsKey("company_photo")) { + return; + } + + if (StringUtils.isBlank(client.getString("business_structure"))) { + client.put("business_structure", "Registered body(Sole Trader)"); + } + if (StringUtils.isBlank(client.getString("alipayindustry"))) { + logger.info("======>alipayRetail:" + clientMoniker + ":alipayindustry为空,给默认值5311"); + client.put("alipayindustry", "5311"); + } + if(TextUtils.isEmpty(client.getString("acn")) && !TextUtils.isEmpty(client.getString("abn"))) + + logger.info("======>alipayRetail:register:" + clientMoniker); + sb.append(clientMoniker+","); + +// try { +// merchantChannelApplicationManager.getRegister(AlipayRetailApi.class).apply(client, new EmptyMerchantApplication(), null); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// try { +// Thread.sleep(100); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } + } + + ); + logger.info("======>as:" + sb.toString()); + + + } } 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 2d989d1c6..e61bfb6ca 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 @@ -1707,6 +1707,7 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider } } transactionMapper.deleteSettlementTransaction(clearingId); +// transactionMapper.removePreSettleRemark(clearingId); transactionMapper.removeSettleRemark(clearingId); preSettleTaskMapper.resetClearStatus(clearingId); clearingDetailAnalysisMapper.clearAnalysis(clearingId); diff --git a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/SettleTaskServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/SettleTaskServiceImpl.java index 6541bdbcd..4c391876b 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/SettleTaskServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/SettleTaskServiceImpl.java @@ -15,6 +15,8 @@ import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.data.redis.core.StringRedisTemplate; @@ -38,6 +40,7 @@ import java.util.stream.Collectors; @Service public class SettleTaskServiceImpl implements SettleTasksService { + private final Logger logger = LoggerFactory.getLogger(getClass()); private final SysSettlePlanMapper planMapper; private final StringRedisTemplate redisTemplate; private final MerchantInfoProvider mchInfoProvider; @@ -105,8 +108,10 @@ public class SettleTaskServiceImpl implements SettleTasksService { URI uri = UriComponentsBuilder.fromHttpUrl(transactionHost).replacePath(SETTLE_TASK_URI) .build().toUri(); try { + String taskStr = JSON.toJSONString(tasks); + logger.info("submitting settlement task:{}--------->{}", uri, taskStr); restTemplate.exchange(RequestEntity.post(uri).contentType(MediaType.APPLICATION_JSON) - .body(JSON.toJSONString(tasks).getBytes(StandardCharsets.UTF_8)), String.class); + .body(taskStr.getBytes(StandardCharsets.UTF_8)), String.class); } catch (RestClientResponseException e) { String resp = e.getResponseBodyAsString(); try { 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 4278ea9bc..a3e393e9a 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 @@ -60,6 +60,8 @@ public interface TransactionMapper { PageList listSettlementLog(JSONObject params, PageBounds pagination); + PageList listSettlementLogOrigin(JSONObject params, PageBounds pagination); + PageList listSettlementLogForDashbord(JSONObject params, PageBounds pagination); @CountRef(".countSettlementLogInClients") @@ -93,13 +95,13 @@ public interface TransactionMapper { BigDecimal totalAmountForSydneyGMPrize(@Param("year") int year, @Param("month") int month); - List listTransactionForCityPartnerCommissionByDate(@Param("year") int year, @Param("month") int month); + List listTransactionForCityPartnerCommissionByDate(@Param("begin") Date begin, @Param("end") Date end); - List listTransactionForCityPartnerAgentCommissionByDate(@Param("year") int year, @Param("month") int month); + List listTransactionForCityPartnerAgentCommissionByDate(@Param("begin") Date begin, @Param("end") Date end); - List listTransactionsForCityPartnerCommission(@Param("year") int year, @Param("month") int month); + List listTransactionsForCityPartnerCommission(@Param("begin") Date begin, @Param("end") Date end); - List listTransactionsForReferrerCommission(@Param("year") int year, @Param("month") int month); + List listTransactionsForReferrerCommission(@Param("begin") Date begin, @Param("end") Date end); List listTransactionsForAgentCommission(@Param("year") int year, @Param("month") int month, @Param("parent_org_id") int parent_org_id); @@ -131,6 +133,8 @@ public interface TransactionMapper { void removeSettleRemark(@Param("clearing_id") int clearingId); +// void removePreSettleRemark(@Param("clearing_id") int clearingId); + List getHfClearAmount(JSONObject params); List analysisForATOReport(@Param("clientId") int clientId, @Param("channels") List channels, @Param("from") Date startOfMon, @Param("to") Date endOfMon); @@ -163,11 +167,12 @@ public interface TransactionMapper { /** * 日清算 + * * @param beginTime * @param endTime * @return */ - List getSettleDataDailyReport(@Param("beginTime") Date beginTime,@Param("endTime")Date endTime); + List getSettleDataDailyReport(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime); List analysisByChannels(@Param("from") Date from, @Param("to") Date to, @Param("channels") List channels); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRegisterInfo.java b/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRegisterInfo.java index a593580db..0835b7e4b 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRegisterInfo.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRegisterInfo.java @@ -125,6 +125,8 @@ public class ClientRegisterInfo { private String averageCardTransaction; @JSONField(name = "mw_industry") private String mwIndustry; + @JSONField(name = "mc_industry") + private String mcIndustry; @JSONField(name = "enable_international_card") private boolean enableInternaltionCard; @JSONField(name = "enable_cross_payment") @@ -613,6 +615,10 @@ public class ClientRegisterInfo { return mwIndustry; } + public String getMcIndustry() { + return mcIndustry; + } + public void setAverageCardTransaction(String averageCardTransaction) { this.averageCardTransaction = averageCardTransaction; } @@ -629,6 +635,10 @@ public class ClientRegisterInfo { this.mwIndustry = mwIndustry; } + public void setMcIndustry(String mcIndustry) { + this.mcIndustry = mcIndustry; + } + public boolean isEnableCardPayment() { return enableCardPayment; } diff --git a/src/main/java/au/com/royalpay/payment/manage/task/DashboardTaskManager.java b/src/main/java/au/com/royalpay/payment/manage/task/DashboardTaskManager.java index 9003942f1..a89e3e032 100644 --- a/src/main/java/au/com/royalpay/payment/manage/task/DashboardTaskManager.java +++ b/src/main/java/au/com/royalpay/payment/manage/task/DashboardTaskManager.java @@ -23,7 +23,7 @@ public class DashboardTaskManager { @Resource private SynchronizedScheduler synchronizedScheduler; - @Scheduled(cron = "0 0 2 * * ?") + @Scheduled(cron = "0 30 1 * * ?") public void analysisDashboard() { synchronizedScheduler.executeProcess("manage_task:dashboardTask", 120_000, () -> dashboardService.generateCustomersAndOrdersStatistics(DateUtils.addDays(new Date(), -1))); diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml index f6a5c851b..2d3a0aa89 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml @@ -414,11 +414,9 @@ 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 a3ad97ee1..478df93b9 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 @@ -3,13 +3,15 @@ UPDATE pmt_transactions AS t - INNER JOIN log_clearing_detail d ON d.clear_detail_id = t.clearing_order - SET clearing_status = if( - (select count(task_id) from log_presettle_task p where p.clear_detail_id = d.clear_detail_id) > - 0, 4, 0), + INNER JOIN ( + select d.clear_detail_id,count(p.task_id) pre_settle_flag from log_clearing_detail d + left join log_presettle_task p on p.clear_detail_id = d.clear_detail_id + where d.clearing_id=#{clearing_id} + group by d.clear_detail_id) dd + ON dd.clear_detail_id = t.clearing_order + SET clearing_status = if(pre_settle_flag > 0, 4, 0), clearing_order = NULL, clearing_time = NULL - WHERE d.clearing_id = #{clearing_id} DELETE t @@ -559,6 +561,46 @@ + + + - AND t.client_id IN + AND cd.client_id IN #{client_id} @@ -662,29 +706,27 @@ and (c.client_id=#{client_id} or c.parent_client_id=#{client_id}) - and t.transaction_time >= #{from} - and t.transaction_time < #{to} + and cd.report_date >= #{from} + and cd.report_date < #{to} and c.org_id = #{org_id} and c.org_id in #{org_id} - GROUP BY DATE(t.transaction_time) - order by t.clearing_time desc + GROUP BY cd.report_date + order by cd.clearing_id desc + + + +
+

Required + Field

+
+ +
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 cd9d79c4c..bd6776e5f 100644 --- a/src/main/ui/static/payment/partner/templates/partner_detail.html +++ b/src/main/ui/static/payment/partner/templates/partner_detail.html @@ -1370,6 +1370,20 @@ ng-if="$root.complianceCheck.clientInfo">
+
+ +
+ + +
+
diff --git a/src/main/ui/static/payment/partner/templates/partner_edit.html b/src/main/ui/static/payment/partner/templates/partner_edit.html index 8a1f1e890..588de9045 100644 --- a/src/main/ui/static/payment/partner/templates/partner_edit.html +++ b/src/main/ui/static/payment/partner/templates/partner_edit.html @@ -1340,6 +1340,24 @@
+
+ +
+ +
+

Required + Field

+
+
+
diff --git a/uidocker/conf.d/default.conf b/uidocker/conf.d/default.conf index e33878e42..bad9a1de7 100644 --- a/uidocker/conf.d/default.conf +++ b/uidocker/conf.d/default.conf @@ -20,6 +20,9 @@ server { server { listen 3000; server_name _ default; + underscores_in_headers on; + proxy_ignore_client_abort on; + client_max_body_size 0; location ~ ^/api/v1.0/retail/((?!(app|rsvc)).)+ { proxy_pass http://rppaycenter; @@ -31,7 +34,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; @@ -47,7 +50,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; } @@ -61,6 +64,21 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + + + proxy_read_timeout 300s; + } + + location ~ ^/api/v1.0/org_gateway { + proxy_pass http://rpmanage; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; proxy_set_header Real-IP $remote_addr; @@ -83,7 +101,7 @@ server { } - location ~ ^/api/v1.0/((alipay\w*)|(customs)|(rpay)|(yeepay)|(card_payment_view)|(lakala_pay)|(cb_bankpay)|(bestpay)|(hf)|(\w*gateway)|(micropay)|(retail_qrcode)|(share_code)|(payment)|(h5_payment))/ { + location ~ ^/api/v1.0/((alipay\w*)|(customs)|(rpay)|(card_payment_view)|(\w*gateway)|(micropay)|(retail_qrcode)|(share_code)|(payment)|(h5_payment))/ { proxy_pass http://rppaycenter; proxy_http_version 1.1; @@ -93,7 +111,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; @@ -109,7 +127,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; } @@ -124,7 +142,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; @@ -140,7 +158,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; @@ -156,7 +174,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; @@ -172,7 +190,6 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; proxy_read_timeout 300s; @@ -188,7 +205,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; } @@ -203,7 +220,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; } @@ -218,7 +235,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - proxy_set_header Real-IP $remote_addr; + proxy_read_timeout 300s; }