Authored by chenjian

3个月存在已交寄订单,不上报

package com.yoho.unions.dal;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.yoho.unions.dal.model.BaseOrderShipmentUdid;
public interface BaseOrderShipmentUdidMapper {
List<BaseOrderShipmentUdid> selectByUdid(@Param("udid") String udid);
}
\ No newline at end of file
... ...
package com.yoho.unions.dal.model;
public class BaseOrderShipmentUdid {
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column BASE_ORDER_SHIPMENT_UDID.JOB_DATE_ID
*
* @mbggenerated
*/
private Integer jobDateId;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column BASE_ORDER_SHIPMENT_UDID.UID
*
* @mbggenerated
*/
private Integer uid;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column BASE_ORDER_SHIPMENT_UDID.UDID
*
* @mbggenerated
*/
private String udid;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column BASE_ORDER_SHIPMENT_UDID.DATE_ID
*
* @mbggenerated
*/
private Integer dateId;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column BASE_ORDER_SHIPMENT_UDID.JOB_DATE_ID
*
* @return the value of BASE_ORDER_SHIPMENT_UDID.JOB_DATE_ID
*
* @mbggenerated
*/
public Integer getJobDateId() {
return jobDateId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column BASE_ORDER_SHIPMENT_UDID.JOB_DATE_ID
*
* @param jobDateId the value for BASE_ORDER_SHIPMENT_UDID.JOB_DATE_ID
*
* @mbggenerated
*/
public void setJobDateId(Integer jobDateId) {
this.jobDateId = jobDateId;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column BASE_ORDER_SHIPMENT_UDID.UID
*
* @return the value of BASE_ORDER_SHIPMENT_UDID.UID
*
* @mbggenerated
*/
public Integer getUid() {
return uid;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column BASE_ORDER_SHIPMENT_UDID.UID
*
* @param uid the value for BASE_ORDER_SHIPMENT_UDID.UID
*
* @mbggenerated
*/
public void setUid(Integer uid) {
this.uid = uid;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column BASE_ORDER_SHIPMENT_UDID.UDID
*
* @return the value of BASE_ORDER_SHIPMENT_UDID.UDID
*
* @mbggenerated
*/
public String getUdid() {
return udid;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column BASE_ORDER_SHIPMENT_UDID.UDID
*
* @param udid the value for BASE_ORDER_SHIPMENT_UDID.UDID
*
* @mbggenerated
*/
public void setUdid(String udid) {
this.udid = udid == null ? null : udid.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column BASE_ORDER_SHIPMENT_UDID.DATE_ID
*
* @return the value of BASE_ORDER_SHIPMENT_UDID.DATE_ID
*
* @mbggenerated
*/
public Integer getDateId() {
return dateId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column BASE_ORDER_SHIPMENT_UDID.DATE_ID
*
* @param dateId the value for BASE_ORDER_SHIPMENT_UDID.DATE_ID
*
* @mbggenerated
*/
public void setDateId(Integer dateId) {
this.dateId = dateId;
}
}
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yoho.unions.dal.BaseOrderShipmentUdidMapper" >
<resultMap id="BaseResultMap" type="com.yoho.unions.dal.model.BaseOrderShipmentUdid" >
<result column="JOB_DATE_ID" property="jobDateId" jdbcType="INTEGER" />
<result column="UID" property="uid" jdbcType="INTEGER" />
<result column="UDID" property="udid" jdbcType="VARCHAR" />
<result column="DATE_ID" property="dateId" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
job_date_id, uid, udid, date_id
</sql>
<select id="selectByUdid" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from BASE_ORDER_SHIPMENT_UDID
where udid = #{udid,jdbcType=VARCHAR}
</select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -15,12 +15,12 @@ import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.service.model.union.request.TransPinYouRequestBO;
import com.yoho.service.model.union.request.ViewPinYouRequestBO;
import com.yoho.unions.common.utils.TimeUtils;
import com.yoho.unions.dal.BaseOrderShipmentUdidMapper;
import com.yoho.unions.dal.ErpOrdersGoodsMapper;
import com.yoho.unions.dal.ErpOrdersMapper;
import com.yoho.unions.dal.model.BaseOrderShipmentUdid;
import com.yoho.unions.dal.model.ErpOrders;
import com.yoho.unions.dal.model.ErpOrdersGoods;
import com.yoho.unions.dal.model.OrdersGoods;
import com.yoho.unions.kafka.consumer.ClickActionDispatcher;
import com.yoho.unions.kafka.consumer.ClickEventConstants;
import com.yoho.unions.server.service.IPinYouService;
... ... @@ -47,6 +47,9 @@ public class PinyouReportHandler implements ClickEventHandIntf {
@Autowired
private ErpOrdersGoodsMapper erpOrdersGoodsMapper;
@Autowired
private BaseOrderShipmentUdidMapper shipOrderUdidMapper;
@PostConstruct
public void init() {
dispatcher.register(ClickEventConstants.YB_MAIN_S, this);
... ... @@ -58,21 +61,12 @@ public class PinyouReportHandler implements ClickEventHandIntf {
@Override
public void process(JSONObject actionData) {
logger.info("click event: {}", actionData.toJSONString());
String uid = actionData.getString("uid");
if(StringUtils.isEmpty(uid)) {
logger.info("none uid data ignore");
return;
}
/***************** 该逻辑暂且不要2017-04-19
//3个月内存在已交寄订单,则不上报数据
int orderNums = statShipOrdersNumLast3Months(Integer.valueOf(uid));
if(orderNums > 0) {
logger.info("click event ignore, uid: {}, orderNums: {}", uid, orderNums);
if(hasShipOrdersLast3Months(actionData.getString("udid"))) {
logger.info("event ignore for shipped order in 3 month, udid: {}", actionData.getString("udid"));
return;
}
******************/
String opr = actionData.getString("op") == null ? "" : actionData.getString("op").toUpperCase();
switch(opr) {
... ... @@ -184,9 +178,18 @@ public class PinyouReportHandler implements ClickEventHandIntf {
}
/**
private int statShipOrdersNumLast3Months(int uid) {
//缓存
return erpOrdersMapper.selectCountShipStatusOrderSince(uid, TimeUtils.getTimeStamp3MonthAgo());
*
* @param udid
* @return
*/
private boolean hasShipOrdersLast3Months(String udid) {
/**
* BASE_ORDER_SHIPMENT_UDID表为大数据离线统计表,如果udid在该表存在记录,表明过去三个月存在已交寄订单
*/
if(StringUtils.isEmpty(udid))
return false;
List<BaseOrderShipmentUdid> udidShipOrders = shipOrderUdidMapper.selectByUdid(udid);
return CollectionUtils.isNotEmpty(udidShipOrders);
}
*/
}
... ...
... ... @@ -66,6 +66,7 @@ datasources:
daos:
- com.yoho.unions.dal.IChannelUserDAO
- com.yoho.unions.dal.AppAdSourceMonitorAnaMapper
- com.yoho.unions.dal.BaseOrderShipmentUdidMapper
erp_orders:
servers:
... ...
... ... @@ -65,6 +65,7 @@ datasources:
daos:
- com.yoho.unions.dal.IChannelUserDAO
- com.yoho.unions.dal.AppAdSourceMonitorAnaMapper
- com.yoho.unions.dal.BaseOrderShipmentUdidMapper
bigdata_yoho_passport:
servers:
... ...
... ... @@ -21,15 +21,17 @@ public class KafakTest {
@Test
public void kafakTest() throws Exception {
System.out.println("++++======");
//YB_MAIN_S
kafkaTemplate.sendDefault("{\"uid\":\"50651266\",\"ts\":\"1492589408906\",\"param\":{\"C_ID\":\"2\",\"KW\":\"运动内衣\",\"AB_TYPE\":\"A\"},\"os\":\"Android\",\"op\":\"YB_MAIN_S\",\"imei\":\"860793033630590\",\"udid\":\"860793033630590d35d3cd6d545bc30\",\"ip\":\"117.177.241.31\",\"idfa\":\"\"}");
//kafkaTemplate.sendDefault("{\"uid\":\"50651266\",\"ts\":\"1492589408906\",\"param\":{\"C_ID\":\"2\",\"KW\":\"运动内衣\",\"AB_TYPE\":\"A\"},\"os\":\"Android\",\"op\":\"YB_MAIN_S\",\"imei\":\"860793033630590\",\"udid\":\"860793033630590d35d3cd6d545bc30\",\"ip\":\"117.177.241.31\",\"idfa\":\"\"}");
//YB_GDS_DT_INFO
kafkaTemplate.sendDefault("{\"uid\":\"4375096\",\"ts\":\"1492589451972\",\"param\":{\"C_ID\":\"3\",\"AB_TYPE\":\"A\",\"PRD_ID\":\"547108\"},\"os\":\"iOS\",\"op\":\"YB_GDS_DT_INFO\",\"imei\":\"4b9d8a7349cd2a4\",\"udid\":\"4b9d8a7349cd2a48388265b33a8d617863820a36\",\"ip\":\"180.158.226.89\",\"idfa\":\"6F0B4DAA-1955-420A-B3EC-B7E656AD2328\"}");
//kafkaTemplate.sendDefault("{\"uid\":\"4375096\",\"ts\":\"1492589451972\",\"param\":{\"C_ID\":\"3\",\"AB_TYPE\":\"A\",\"PRD_ID\":\"547108\"},\"os\":\"iOS\",\"op\":\"YB_GDS_DT_INFO\",\"imei\":\"4b9d8a7349cd2a4\",\"udid\":\"4b9d8a7349cd2a48388265b33a8d617863820a36\",\"ip\":\"180.158.226.89\",\"idfa\":\"6F0B4DAA-1955-420A-B3EC-B7E656AD2328\"}");
//YB_GDS_DT_SEL
kafkaTemplate.sendDefault("{\"uid\":\"51031210\",\"ts\":\"1492589531111\",\"param\":{\"SIZE_ID\":203,\"STORAGE_LEFT\":9,\"PRD_SKU\":1271706,\"C_ID\":\"1\",\"PRD_SKN\":\"51259840\",\"AB_TYPE\":\"A\",\"PRD_SKC\":408688,\"PRD_ID\":\"458222\"},\"os\":\"iOS\",\"op\":\"YB_GDS_DT_SEL\",\"imei\":\"34fdc1bed0e9c67\",\"udid\":\"34fdc1bed0e9c6700922bb4481e41b0c1253824a\",\"ip\":\"183.40.13.82\",\"idfa\":\"00000000-0000-0000-0000-000000000000\"}");
//kafkaTemplate.sendDefault("{\"uid\":\"51031210\",\"ts\":\"1492589531111\",\"param\":{\"SIZE_ID\":203,\"STORAGE_LEFT\":9,\"PRD_SKU\":1271706,\"C_ID\":\"1\",\"PRD_SKN\":\"51259840\",\"AB_TYPE\":\"A\",\"PRD_SKC\":408688,\"PRD_ID\":\"458222\"},\"os\":\"iOS\",\"op\":\"YB_GDS_DT_SEL\",\"imei\":\"34fdc1bed0e9c67\",\"udid\":\"34fdc1bed0e9c6700922bb4481e41b0c1253824a\",\"ip\":\"183.40.13.82\",\"idfa\":\"00000000-0000-0000-0000-000000000000\"}");
//YB_SC_ORD
//ignored because ship orders
kafkaTemplate.sendDefault("{\"uid\":\"20000740\",\"ts\":\"1492570964462\",\"param\":{\"C_ID\":\"1\",\"ORD_NUM\":\"170129416\"},\"os\":\"iPhone OS\",\"op\":\"YB_SC_ORD\",\"imei\":\"1b4747946de0c62\",\"udid\":\"93db0a46f5005d986106df6b2618538d06fd2f99\",\"ip\":\"117.136.88.1\",\"idfa\":\"E65BC03A-6572-4B83-9706-D16BBFEAE51C\"}");
//not ignored
kafkaTemplate.sendDefault("{\"uid\":\"20000740\",\"ts\":\"1492570964462\",\"param\":{\"C_ID\":\"1\",\"ORD_NUM\":\"170129416\"},\"os\":\"iPhone OS\",\"op\":\"YB_SC_ORD\",\"imei\":\"1b4747946de0c62\",\"udid\":\"1b4747946de0c624d348c57187cd7b02eb4126e0\",\"ip\":\"117.136.88.1\",\"idfa\":\"E65BC03A-6572-4B83-9706-D16BBFEAE51C\"}");
Thread.sleep(300 * 1000);
... ...