Authored by linlong

no message

... ... @@ -27,6 +27,7 @@
<value>/ActivateUnionRest/addActivate</value>
<value>/ActivateUnionRest/queryActivateDeviceId</value>
<value>/ActivateUnionRest/queryActivateCount</value>
<value>/ActivateUnionRest/queryByDeviceId</value>
<value>/jump</value>
<value>/go</value>
<value>/pushUnionOrders</value>
... ...
... ... @@ -27,7 +27,7 @@ public interface IUnionClickLogsDAO {
List<ActivateDeviceIdRspBO> selectListByParam(@Param("list") List<ActivateDeviceIdRspBO> activateDeviceIdRspList,@Param("bo") ActivateDeviceIdReqBO activateDeviceIdReqBO);
int queryActivateIdfaCount(ActivateDeviceIdReqBO activateDeviceIdReqBO);
Integer queryActivateIdfaCount(ActivateDeviceIdReqBO activateDeviceIdReqBO);
int queryActivateImeiCount(ActivateDeviceIdReqBO activateDeviceIdReqBO);
Integer queryActivateImeiCount(ActivateDeviceIdReqBO activateDeviceIdReqBO);
}
\ No newline at end of file
... ...
... ... @@ -36,4 +36,6 @@ public interface IUnionLogsDAO {
List<ActivateDeviceIdRspBO> selectListByParam(ActivateDeviceIdReqBO activateDeviceIdReqBO);
List<String> matchIdfa(List<String> list);
UnionLogs queryByDeviceId(ActivateDeviceIdReqBO activateDeviceIdReqBO);
}
... ...
... ... @@ -163,5 +163,16 @@
#{item}
</foreach>
</select>
<select id="queryByDeviceId" resultMap="BaseResultMap" parameterType="com.yoho.service.model.union.request.ActivateDeviceIdReqBO">
select
<include refid="Base_Column_List"/>
from union_logs where 1=1
<if test="idfa!=null">
and idfa = #{idfa}
</if>
<if test="imei!=null">
and imei = #{imei}
</if>
limit 1
</select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yoho.service.model.union.request.ActivateDeviceIdReqBO;
import com.yoho.service.model.union.response.ActivateDeviceIdResponseBO;
import com.yoho.service.model.union.response.PageActivateDeviceIdRspBO;
import com.yoho.unions.common.ApiResponse;
import com.yoho.unions.server.service.IPinYouService;
... ... @@ -227,15 +228,28 @@ public class ActivateUnionRest {
@RequestMapping("/queryActivateCount")
@ResponseBody
public int queryActivateCount(ActivateDeviceIdReqBO activateDeviceIdReqBO){
public Integer queryActivateCount(ActivateDeviceIdReqBO activateDeviceIdReqBO){
log.info("enter queryActivateCount. param activateDeviceIdReqBO={}", activateDeviceIdReqBO);
int count = 0;
Integer count =null;
try {
count = unionService.queryActivateCount(activateDeviceIdReqBO);
log.info("queryActivateCount out,count={}", count);
} catch (Exception e) {
log.warn("queryActivateCount occurs Exception e {}",e.getMessage());
}
return count;
return count==null?0:count;
}
@RequestMapping("/queryByDeviceId")
@ResponseBody
public ApiResponse queryByDeviceId(ActivateDeviceIdReqBO activateDeviceIdReqBO) {
log.info("enter queryByDeviceId. param activateDeviceIdReqBO={}", activateDeviceIdReqBO);
if (null==activateDeviceIdReqBO || (StringUtils.isEmpty(activateDeviceIdReqBO.getImei()))&&StringUtils.isEmpty(activateDeviceIdReqBO.getIdfa())){
return new ApiResponse.ApiResponseBuilder().code(500).message("失败").data("缺少参数").build();
}
ActivateDeviceIdResponseBO activateDeviceIdResponseBO = unionService.queryByDeviceId(activateDeviceIdReqBO);
log.info("out queryByDeviceId.result activateDeviceIdResponseBO={}", activateDeviceIdResponseBO);
return new ApiResponse.ApiResponseBuilder().code(200).message("成功").data(activateDeviceIdResponseBO).build();
}
}
... ...
... ... @@ -7,6 +7,7 @@ import com.yoho.error.exception.ServiceException;
import com.yoho.service.model.union.request.ActivateDeviceIdReqBO;
import com.yoho.service.model.union.request.ActivateUnionRequestBO;
import com.yoho.service.model.union.request.ClickUnionRequestBO;
import com.yoho.service.model.union.response.ActivateDeviceIdResponseBO;
import com.yoho.service.model.union.response.PageActivateDeviceIdRspBO;
import com.yoho.service.model.union.response.UnionResponse;
import com.yoho.unions.common.enums.ClientTypeEnum;
... ... @@ -14,6 +15,7 @@ import com.yoho.unions.interceptor.RemoteIPInterceptor;
import org.apache.commons.lang.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
/**
* 描述:联盟统一接口
... ... @@ -71,5 +73,7 @@ public interface IUnionService {
PageActivateDeviceIdRspBO queryActivateDeviceId(ActivateDeviceIdReqBO activateDeviceIdReqBO);
int queryActivateCount(ActivateDeviceIdReqBO activateDeviceIdReqBO);
Integer queryActivateCount(ActivateDeviceIdReqBO activateDeviceIdReqBO);
ActivateDeviceIdResponseBO queryByDeviceId(ActivateDeviceIdReqBO activateDeviceIdReqBO);
}
... ...
... ... @@ -6,7 +6,6 @@ package com.yoho.unions.server.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.netflix.config.DynamicIntProperty;
import com.netflix.config.DynamicPropertyFactory;
import com.yoho.core.common.utils.MD5;
... ... @@ -19,10 +18,7 @@ import com.yoho.service.model.union.UnionTypeModel;
import com.yoho.service.model.union.request.ActivateDeviceIdReqBO;
import com.yoho.service.model.union.request.ActivateUnionRequestBO;
import com.yoho.service.model.union.request.ClickUnionRequestBO;
import com.yoho.service.model.union.response.ActivateDeviceIdRspBO;
import com.yoho.service.model.union.response.PageActivateDeviceIdRspBO;
import com.yoho.service.model.union.response.PageChannelGroupRspBO;
import com.yoho.service.model.union.response.UnionResponse;
import com.yoho.service.model.union.response.*;
import com.yoho.unions.common.enums.ClientTypeEnum;
import com.yoho.unions.common.redis.RedisListCache;
import com.yoho.unions.common.redis.RedisValueCache;
... ... @@ -38,20 +34,18 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.net.URLDecoder;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* 描述:
... ... @@ -604,9 +598,9 @@ public class UnionServiceImpl implements IUnionService,ApplicationEventPublisher
}
@Override
public int queryActivateCount(ActivateDeviceIdReqBO activateDeviceIdReqBO) {
public Integer queryActivateCount(ActivateDeviceIdReqBO activateDeviceIdReqBO) {
log.info("enter queryActivateCount. param activateDeviceIdReqBO={}", activateDeviceIdReqBO);
int count =0;
Integer count = 0;
if(StringUtils.isEmpty(activateDeviceIdReqBO.getActivateTime())){
activateDeviceIdReqBO.setActivateTimeStr(DateUtils.getTodayZero());
}else{
... ... @@ -622,6 +616,18 @@ public class UnionServiceImpl implements IUnionService,ApplicationEventPublisher
return count;
}
@Override
public ActivateDeviceIdResponseBO queryByDeviceId(ActivateDeviceIdReqBO activateDeviceIdReqBO) {
log.info("enter queryByDeviceId. param activateDeviceIdReqBO={}", activateDeviceIdReqBO);
if(activateDeviceIdReqBO.getIdfa()!=null){
activateDeviceIdReqBO.setImei(null);
}
UnionLogs unionLogs = unionLogsDAO.queryByDeviceId(activateDeviceIdReqBO);
ActivateDeviceIdResponseBO activateDeviceIdResponseBO = new ActivateDeviceIdResponseBO();
BeanUtils.copyProperties(unionLogs,activateDeviceIdResponseBO);
return activateDeviceIdResponseBO;
}
//异步记录点击日志表
private void saveLog(ClickUnionRequestBO request){
... ...
... ... @@ -7,27 +7,34 @@
<script src="/union/js/ajaxfileupload.js"></script>
</head>
<body class="easyui-layout" fit="true">
<div id="search" region="north" style="padding-bottom: 35px; ">
<!--<script>-->
<!--document.write(addHead('市场管理', '分组营销管理'));-->
<!--</script>-->
<style>
.div_search input {
margin-top: 20px;
}
<div id="tt" class="easyui-tabs" style="width:auto;height:auto;">
<div title="激活点击统计" style="padding:20px;display:none;">
<div id="search" region="north" style="padding-bottom: 35px; ">
<!--<script>-->
<!--document.write(addHead('市场管理', '分组营销管理'));-->
<!--</script>-->
<style>
.div_search input {
margin-top: 20px;
}
.div_search .textbox {
margin-top: 20px;
}
.div_search .textbox {
margin-top: 20px;
}
.div_search .easyui-linkbutton {
margin-top: 20px;
}
.subtotal { font-weight: bold; }/*合计单元格样式*/
</style>
<div style="margin-left: 30px;" class="div_search">
<form id="searchForm" method="post" accept-charset="utf-8">
<input name="interfaceType" class="easyui-combobox" data-options="
.div_search .easyui-linkbutton {
margin-top: 20px;
}
.subtotal {
font-weight: bold;
}
/*合计单元格样式*/
</style>
<div style="margin-left: 30px;" class="div_search">
<form id="searchForm" method="post" accept-charset="utf-8">
<input name="interfaceType" class="easyui-combobox" data-options="
valueField: 'id',
editable: false,
textField: 'text',
... ... @@ -42,18 +49,41 @@
{ id: 'addMonitor_ios', text: 'addMonitor_ios' },
{ id: 'addMonitor_android', text: 'addMonitor_android' }
]"/>
<input name="unionType" type="text" class="easyui-textbox" data-options="prompt:'请输入渠道号'">
<input id ="activateTime" name="activateTime" type="text" class="easyui-datebox" editable="false" data-options="prompt:'请选择激活日期'">
<a id="searchBtn" class="easyui-linkbutton btn-info" style="margin-left: 30px; "></a>
</form>
<input name="unionType" type="text" class="easyui-textbox" data-options="prompt:'请输入渠道号'"
style="width: 200px;">
<input id="activateTime" name="activateTime" type="text" class="easyui-datebox" editable="false"
data-options="prompt:'请选择激活日期'" style="width: 200px;">
<a id="searchBtn" class="easyui-linkbutton btn-info" style="margin-left: 30px; "></a>
</form>
</div>
</div>
<div region="center">
<div style="margin-left: 30px;margin-top: 20px; height:800px;">
<table id="activateTalbe"></table>
</div>
</div>
</div>
</div>
<div region="center">
<div style="margin-left: 30px;margin-top: 20px; height:800px;">
<table id="activateTalbe"></table>
<div title="激活点击查询" data-options="closable:true" style="overflow:auto;padding:20px;display:none;">
<div id="search2" region="north" style="padding-bottom: 35px; ">
<form id="searchForm2" method="post" accept-charset="utf-8">
<input name="idfa" type="text" class="easyui-textbox" data-options="prompt:'请输入idfa'"
style="width: 200px;">
<input name="imei" type="text" class="easyui-textbox" data-options="prompt:'请输入imei'"
style="width: 200px;">
<a id="searchBtn2" class="easyui-linkbutton btn-info" style="margin-left: 30px; "></a>
<div id="batchImportDiv" style="margin-left: 30px;"></div>
</form>
</div>
<div region="center" style="height: 800px;">
<div style="margin-left: 30px;margin-top: 20px; height:800px;">
<table id="activateTalbe2"></table>
</div>
<div id="matchDiv" style="padding:30px;"></div>
</div>
</div>
</div>
<script>
$(function () {
var currentDate = getNowFormatDate();
... ... @@ -64,7 +94,7 @@
fitColumns: true,
//queryParams: param,
nowrap: false,
url:'',
url: '',
// url: contextPath + "/ActivateUnionRest/queryActivateDeviceId",
method: 'POST',
queryParams: getParams(),
... ... @@ -83,7 +113,7 @@
field: "unionName",
width: 250,
align: "center"
},{
}, {
title: "激活IOS数",
field: "idfaCount",
width: 180,
... ... @@ -97,12 +127,12 @@
var str = "<a role='idfa' dataId='" + rowData.unionType + "' style='margin-left:10px'></a>";
return str;
}
},{
}, {
title: "激活安卓数",
field: "imeiCount",
width: 180,
align: "center"
},{
}, {
title: "点击安卓数",
field: "imeiClick",
width: 180,
... ... @@ -122,36 +152,36 @@
onLoadSuccess: function (data) {
$(this).myDatagrid("getPanel").find("a[role='idfa']").linkbutton({
iconCls: "icon-more",
text:'查看',
text: '查看',
onClick: function () {
// showIdfaClick($(this).attr("dataId"));
var p =$(this).parent();
var p = $(this).parent();
var params = getParams();
params['unionType']=$(this).attr("dataId");
params['isIdfa']=1;
params['unionType'] = $(this).attr("dataId");
params['isIdfa'] = 1;
$.post(contextPath + "/ActivateUnionRest/queryActivateCount", params, function (data) {
// h.text(data);
// h.text(data);
var sp = p.children("span");
sp.remove();
p.append("<span> "+data+"</span>");
p.append("<span> " + data + "</span>");
}, "json");
}
});
$(this).myDatagrid("getPanel").find("a[role='imei']").linkbutton({
iconCls: "icon-more",
text:'查看',
text: '查看',
onClick: function () {
// showImeiClick($(this).attr("dataId"));
var p = $(this).parent();
var params = getParams();
params['unionType']=$(this).attr("dataId");
params['isIdfa']=0;
params['unionType'] = $(this).attr("dataId");
params['isIdfa'] = 0;
$.post(contextPath + "/ActivateUnionRest/queryActivateCount", params, function (data) {
// h.text(data);
// h.text(data);
var sp = p.children("span");
sp.remove();
p.append("<span> "+data+"</span>");
p.append("<span> " + data + "</span>");
}, "json");
}
});
... ... @@ -177,34 +207,76 @@
}
});
$("#activateTalbe2").myDatagrid({
fit: true,
fitColumns: true,
nowrap: false,
url: '',
method: 'POST',
queryParams: getParams2(),
loadFilter: function (data) {
var temp = defaultLoadFilter(data);
temp.rows = temp.list;
return temp;
},
columns: [[{
title: "渠道Id",
field: "unionType",
width: 200,
align: "center"
}, {
title: "渠道名称",
field: "unionName",
width: 250,
align: "center"
}, {
title: "idfa",
field: "idfa",
width: 180,
align: "center"
}, {
title: "imei",
field: "imei",
width: 180,
align: "center"
}, {
title: "激活时间",
field: "createTime",
width: 180,
align: "center"
}
, {
title: "激活接口",
field: "interfaceType",
width: 180,
align: "center"
}
]],
cache: false,
pageSize: 10,
pageList: [10],
idField: "id",
singleSelect: false,
checkOnSelect: false
});
function getParams() {
var paramsArray = $("#searchForm").serializeArray();
var params = {};
for (var i = 0; i < paramsArray.length; i++ ) {
for (var i = 0; i < paramsArray.length; i++) {
params[paramsArray[i].name] = paramsArray[i].value;
}
return params;
}
// function showIdfaClick(unionType) {
// var params = getParams();
// params['unionType']=unionType;
// params['isIdfa']=1;
// $.post(contextPath + "/ActivateUnionRest/queryActivateCount", params, function (data) {
// alert(data);
// }, "json");
// }
// function showImeiClick(unionType) {
// var params = getParams();
// params['unionType']=unionType;
// params['isIdfa']=0;
//// console.info(params);
// $.post(contextPath + "/ActivateUnionRest/queryActivateCount", params, function (data) {
// alert(data);
// }, "json");
// }
function getParams2() {
var paramsArray = $("#searchForm2").serializeArray();
var params = {};
for (var i = 0; i < paramsArray.length; i++) {
params[paramsArray[i].name] = paramsArray[i].value;
}
return params;
}
function getNowFormatDate() {
var date = new Date();
... ... @@ -227,17 +299,57 @@
text: "查询",
onClick: function () {
$("#activateTalbe").datagrid(
{url:contextPath + "/ActivateUnionRest/queryActivateDeviceId",
{
url: contextPath + "/ActivateUnionRest/queryActivateDeviceId",
queryParams: getParams()
});
}
});
$("#searchBtn2").linkbutton({
iconCls: "icon-search",
text: "查询",
onClick: function () {
// var params = getParams2();
// $.post(contextPath + "/ActivateUnionRest/queryByDeviceId", params, function (data) {
// var activate = data.data;
//
// }, "json");
$("#activateTalbe2").datagrid(
{
url: contextPath + "/ActivateUnionRest/queryByDeviceId",
queryParams: getParams2()
});
}
});
$("#batchImportDiv").fileUpload({
text: "请选择文件导入匹配", //按钮文字
uploadInputName: "file", //上传文件的控件名称
url: contextPath + "/batch/import", //提交到后端的url
queryParams: {
type: "deviceIdMatchImport"
}, //提交到后端额外参数
showFileName: false, //上传成功后,是否显示文件名
onLoadSuccess: function (fileName, data) {
$.messager.show({
title: "提示",
msg: "匹配完成",
height: 250
});
// $("#activateTalbe").datagrid('reload', getParams());
var match = data.data;
var output = "匹配的内容</br>";
for (var i = 0; i < match.length; i++) {
output += match[i] + "</br>";
}
$("#matchDiv").append(output);
}
});
});
</script>
</body>
... ...