diff --git a/qieziBackend/src/main/java/com/fanxb/backend/service/impl/ApplicationServiceImpl.java b/qieziBackend/src/main/java/com/fanxb/backend/service/impl/ApplicationServiceImpl.java index 6faf778..5a1fa0e 100644 --- a/qieziBackend/src/main/java/com/fanxb/backend/service/impl/ApplicationServiceImpl.java +++ b/qieziBackend/src/main/java/com/fanxb/backend/service/impl/ApplicationServiceImpl.java @@ -84,21 +84,20 @@ public class ApplicationServiceImpl implements ApplicationService { } int hostId = getHostId(key); - HostPo uvPvData = hostDao.getUvPvById(hostId); - DetailPagePo detailUvPvData = detailPageDao.getUvPvById(hostId, path); - if (detailUvPvData == null) { - detailUvPvData = new DetailPagePo().setHostId(hostId).setPath(path).setUv(1).setPv(1); + HostPo hostData = hostDao.getUvPvById(hostId); + DetailPagePo detailData = detailPageDao.getUvPvById(hostId, path); + if (detailData == null) { + detailData = new DetailPagePo().setHostId(hostId).setPath(path).setUv(0).setPv(0); } - UvPvVo uvPvVo = new UvPvVo(uvPvData.getUv(), uvPvData.getPv(), detailUvPvData.getUv(), detailUvPvData.getPv()); + //数据计算更新 + updateData(NetUtil.getClientIp(request), hostData, detailData); + //写出 + UvPvVo uvPvVo = new UvPvVo(hostData.getUv(), hostData.getPv(), detailData.getUv(), detailData.getPv()); String uvPvVoStr = JSON.toJSONString(uvPvVo); String res = String.format("try{%s(%s);}catch(e){console.error(e);console.log(%s)}", callBack, uvPvVoStr, uvPvVoStr); response.setHeader(Header.CONTENT_TYPE.getValue(), ContentType.JSON.getValue()); response.getOutputStream().write(res.getBytes(StandardCharsets.UTF_8)); response.getOutputStream().flush(); - - //异步数据更新 - DetailPagePo finalDetailUvPvData = detailUvPvData; - ThreadPoolUtil.execute(() -> updateData(NetUtil.getClientIp(request), uvPvData, finalDetailUvPvData)); } /** @@ -111,24 +110,30 @@ public class ApplicationServiceImpl implements ApplicationService { * date 2022/2/16 15:40 */ private void updateData(String ip, HostPo hostPo, DetailPagePo detailPagePo) { - String hostKey = RedisConstant.HOST_UV_PRE + hostPo.getId() + ip; + String hostKey = RedisConstant.HOST_UV_PRE + hostPo.getId() + "_" + ip; String hostVal = stringRedisTemplate.opsForValue().get(hostKey); - hostDao.updateUvPv(hostPo.getId(), hostVal == null ? 1 : 0); + hostPo.setPv(hostPo.getPv() + 1); long tomorrowZero = LocalDate.now().plusDays(1).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); if (hostVal == null) { stringRedisTemplate.opsForValue().set(hostKey, "", tomorrowZero - System.currentTimeMillis(), TimeUnit.MILLISECONDS); + hostPo.setUv(hostPo.getUv() + 1); } - String pageKey = RedisConstant.PAGE_UV_PRE + hostPo.getId() + ip + detailPagePo.getPath(); String pageVal = stringRedisTemplate.opsForValue().get(pageKey); - if (detailPagePo.getId() == null) { - detailPageDao.insertOne(detailPagePo); - } else { - detailPageDao.updateUvPv(detailPagePo.getId(), pageVal == null ? 1 : 0); - } + detailPagePo.setPv(detailPagePo.getPv() + 1); if (pageVal == null) { stringRedisTemplate.opsForValue().set(pageKey, "", tomorrowZero - System.currentTimeMillis(), TimeUnit.MILLISECONDS); + detailPagePo.setUv(detailPagePo.getUv() + 1); } + //异步更新sql + ThreadPoolUtil.execute(() -> { + hostDao.updateUvPv(hostPo.getId(), hostVal == null ? 1 : 0); + if (detailPagePo.getId() == null) { + detailPageDao.insertOne(detailPagePo); + } else { + detailPageDao.updateUvPv(detailPagePo.getId(), pageVal == null ? 1 : 0); + } + }); } /** diff --git a/qiezi_front/public/indexResource/qieziStatistic_v1.js b/qiezi_front/public/indexResource/qieziStatistic_v1.js index 48b3cf5..5286c90 100644 --- a/qiezi_front/public/indexResource/qieziStatistic_v1.js +++ b/qiezi_front/public/indexResource/qieziStatistic_v1.js @@ -4,15 +4,15 @@ var callback = name + "CallBack"; window[callback] = function (a) { var hostPvNode = document.getElementById(name + "HostPv"); - if (hostNode != null) { + if (hostPvNode != null) { document.getElementById(name + "HostPvValue").innerText = a.totalPv; - hostNode.style.display = "inline"; + hostPvNode.style.display = "inline"; } var hostUvNode = document.getElementById(name + "HostUv"); - if (hostNode != null) { - document.getElementById(name + "HostUvValue").innerText = a.totalPv; - hostNode.style.display = "inline"; + if (hostUvNode != null) { + document.getElementById(name + "HostUvValue").innerText = a.totalUv; + hostUvNode.style.display = "inline"; } var postNode = document.getElementById(name + "Post"); @@ -37,14 +37,14 @@ } var key = null; if (window.qieziStatisticKey && window.qieziStatisticKey.trim().length > 0) { - requestHost = window.qieziStatisticKey; + key = window.qieziStatisticKey; } else if (window.CONFIG && window.CONFIG.web_analytics.qieziStatistics.app_key) { var temp = window.CONFIG.web_analytics.qieziStatistics.app_key; if (temp.trim().length > 0) { key = temp; } } - console.Console(requestHost, key); + console.log(requestHost, key); if (!key) { return; } diff --git a/qiezi_front/public/indexResource/qieziStatistic_v1.min.js b/qiezi_front/public/indexResource/qieziStatistic_v1.min.js index 71a368f..27e43de 100644 --- a/qiezi_front/public/indexResource/qieziStatistic_v1.min.js +++ b/qiezi_front/public/indexResource/qieziStatistic_v1.min.js @@ -1,2 +1 @@ -eval(function(e,f,a,d,c,g){c=function(b){return(b0){requestHost=window.qieziStatisticHost}else if(window.CONFIG&&window.CONFIG.web_analytics.qieziStatistics.app_host){var temp=window.CONFIG.web_analytics.qieziStatistics.app_host;if(temp.trim().length>0){requestHost=temp}}var key=null;if(window.qieziStatisticKey&&window.qieziStatisticKey.trim().length>0){key=window.qieziStatisticKey}else if(window.CONFIG&&window.CONFIG.web_analytics.qieziStatistics.app_key){var temp=window.CONFIG.web_analytics.qieziStatistics.app_key;if(temp.trim().length>0){key=temp}}console.log(requestHost,key);if(!key){return}script.src=requestHost+"/qiezi/api/application/visit?callBack="+callback+"&key="+window.qieziStatisticKey;document.getElementsByTagName("head")[0].appendChild(script)},window.qieziStatisticKey==undefined?1000:1,)})(); \ No newline at end of file diff --git a/qiezi_front/vue.config.js b/qiezi_front/vue.config.js index 25985c1..fcb47e3 100644 --- a/qiezi_front/vue.config.js +++ b/qiezi_front/vue.config.js @@ -1,20 +1,20 @@ //本地开发时使用,打包部署时请使用环境变量配置 -//process.env.VUE_APP_QIEZI_HOST = "http://localhost:8080"; -//process.env.VUE_APP_QIEZI_KEY = "aab3cad381f54ca5b7b9abeb2e09320a"; +// process.env.VUE_APP_QIEZI_HOST = "http://localhost:8081"; +// process.env.VUE_APP_QIEZI_KEY = "d862c12a68ad4d579c6066ac2f064a07"; module.exports = { - publicPath:"/manage", - devServer: { - proxy: { - "/qiezi/api": { - //这里最好有一个 / - target: "http://localhost:8088", // 服务器端接口地址 - ws: true, //如果要代理 websockets,配置这个参数 - // 如果是https接口,需要配置这个参数 - changeOrigin: true, //是否跨域 - pathRewrite: { - "^/qiezi/api": "/qiezi/api", - }, - }, - }, - }, + publicPath: "/manage", + devServer: { + proxy: { + "/qiezi/api": { + //这里最好有一个 / + target: "http://localhost:8088", // 服务器端接口地址 + ws: true, //如果要代理 websockets,配置这个参数 + // 如果是https接口,需要配置这个参数 + changeOrigin: true, //是否跨域 + pathRewrite: { + "^/qiezi/api": "/qiezi/api", + }, + }, + }, + }, };