Authored by mingdan.ge

cps活动时间段支持到具体时间点

... ... @@ -16,7 +16,7 @@ public enum ShareOrdersKeyEnum {
SETTLEMENT_LIST("yh:union:share:settlementList:","key:{}:page:{}:limit:{}",600,"提现列表"),
UNION_TYPE("yh:union:share:unionType:","key:{}",600,"用户登录时获取对应的渠道号"),
RECENTLY_ORDER_LIMIT_TEN("yh:union:share:recentlyOrderLimitTen:","key:{}",600,"用户前台获取个人推广近期订单(10个)"),
ACTIVITY_ING_LIST("yh:union:share:activity:ing:list:",null,120,"某天进行中的活动"),
ACTIVITY_ING_LIST("yh:union:share:activity:ing:list:","type:{}",120,"某天进行中的活动"),
ACTIVITY("yh:union:share:activity:","type:{}:id:{}",120,"活动"),
ACTIVITY_PAGE("yh:union:share:activityPage:","id:{}",300,"活动落地页详情"),
ORDER_STATISTICS_INFO("yh:union:share:statisticsInfo:","queryTimeType:{}",600,"统计数据"),
... ...
... ... @@ -15,7 +15,7 @@ public interface UnionShareOrdersActivityMapper {
UnionShareOrdersActivity selectByPrimaryKey(Integer id);
List<UnionShareOrdersActivity> selectByDate(@Param("time") Integer time);
List<UnionShareOrdersActivity> selectWaitListByDate(@Param("time") Integer time);
List<UnionShareOrdersActivity> selectLastDaysIngActivity(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
List<UnionShareOrdersActivity> selectLastDaysIngActivity(@Param("type") Integer type,@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
int updateByPrimaryKeySelective(UnionShareOrdersActivity record);
... ...
... ... @@ -48,7 +48,7 @@
select
<include refid="Base_Column_List" />
from union_share_orders_activity
where status=1 and type=4 and start_time &lt;= #{endTime,jdbcType=INTEGER} and end_time >= #{startTime,jdbcType=INTEGER}
where status=1 and type=#{type,jdbcType=INTEGER} and start_time &lt;= #{endTime,jdbcType=INTEGER} and end_time >= #{startTime,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from union_share_orders_activity
... ...
... ... @@ -27,7 +27,7 @@ public interface IUnionShareService {
List<UnionShareOrdersActivity> queryWaitActivity();
List<UnionShareOrdersActivity> queryLastDaysIngActivity(int beginTime,int endTime);
List<UnionShareOrdersActivity> queryLastDaysIngActivity(int type,int beginTime,int endTime);
void dealWithCpsNewUserActivity(UnionShareOrdersActivity activity, int beginTime, int endTime,int orderEndTime);
... ...
... ... @@ -15,7 +15,6 @@ import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import javax.annotation.Resource;
... ... @@ -1111,6 +1110,10 @@ public class UnionShareServiceImpl implements IUnionShareService,IBusinessExport
//已有申请中的
throw new ServiceException(ServiceError.UNION_HAS_APPLY_ERROR);
}
// 校验姓名
if (!ChineseNameUtils.checkName(req.getName())) {
throw new ServiceException(ServiceError.UNION_CHINESE_NAME_ERROR);
}
req.setSocialMediaList(filterSocialMedia(req.getSocialMediaList()));
// if (CollectionUtils.isEmpty(req.getSocialMediaList())) {
// throw new ServiceException(ServiceError.UNION_SOCIALMEDIA_ERROR);
... ... @@ -2229,39 +2232,44 @@ public class UnionShareServiceImpl implements IUnionShareService,IBusinessExport
return activities;
}
//查询过去startDays天到过去endDays内有进行中状态的的新人额外返活动(startDays>endDays)
//查询过去startDays天到过去endDays内有进行中状态的的活动(startDays>endDays),如新人额外返、加倍返
@Override
public List<UnionShareOrdersActivity> queryLastDaysIngActivity(int beginTime,int endTime) {
public List<UnionShareOrdersActivity> queryLastDaysIngActivity(int type,int beginTime,int endTime) {
logger.info("queryLastDaysActivity.beginTime is {},endTime is {}.",beginTime,endTime);
if (beginTime >= endTime) {
return null;
}
List<UnionShareOrdersActivity> activities=unionShareOrdersActivityMapper.selectLastDaysIngActivity(beginTime,endTime);
//type活动类型:1-特殊返,2-订单返利翻x倍,3-额外返,4-cps新人额外返
List<UnionShareOrdersActivity> activities=unionShareOrdersActivityMapper.selectLastDaysIngActivity(type,beginTime,endTime);
return activities;
}
//查询某时间为进行中的活动
private List<UnionShareOrdersActivity> queryActivityByDate(int date) {
logger.info("queryActivityByDate.date is {}.",date);
String dateStr=DateUtil.getDateStrBySecond(date, "yyyyMMdd");
String activitiesCache = redisValueCache.get(ShareOrdersKeyEnum.ACTIVITY_ING_LIST.getPreKey()+dateStr, String.class);
//type活动类型:1-特殊返,2-订单返利翻x倍,3-额外返,4-cps新人额外返
private List<UnionShareOrdersActivity> queryActivityByDate(Integer type,int date) {
logger.info("queryActivityByDate.date is {},type is {}.",date,type);
int dateInt=Integer.valueOf(DateUtil.getDateStrBySecond(date, "yyyyMMdd"));
String activitiesCache = getFromRedis(ShareOrdersKeyEnum.ACTIVITY_ING_LIST, dateInt, String.class, type.toString());
// String activitiesCache = redisValueCache.get(ShareOrdersKeyEnum.ACTIVITY_ING_LIST.getPreKey()+dateStr, String.class);
List<UnionShareOrdersActivity> activities;
if (activitiesCache != null) {
activities = JSONObject.parseArray(activitiesCache, UnionShareOrdersActivity.class);
if (CollectionUtils.isNotEmpty(activities)) {
logger.info("queryActivityByDate.date is {},dateStr is {},get chache {}",date,dateStr,activities);
logger.info("queryActivityByDate.date is {},dateInt is {},get chache {}",date,dateInt,activities);
return activities;
}
}
activities=unionShareOrdersActivityMapper.selectByDate(date);
int beginTime = DateUtil.getLastDayStartInt(date, 0);
int endTime = DateUtil.getLastDayEndInt(date, 0);
// activities=unionShareOrdersActivityMapper.selectByDate(date);
//type活动类型:1-特殊返,2-订单返利翻x倍,3-额外返,4-cps新人额外返
activities = queryLastDaysIngActivity(type,beginTime,endTime);
if (CollectionUtils.isEmpty(activities)) {
return new ArrayList<>();
}
logger.info("queryActivityByDate.add to redis.value is {}",activities);
redisValueCache.set(ShareOrdersKeyEnum.ACTIVITY_ING_LIST.getPreKey()+dateStr,activities,ShareOrdersKeyEnum.ACTIVITY_ING_LIST.getCacheTime(),TimeUnit.SECONDS);
addToRedis(ShareOrdersKeyEnum.ACTIVITY_ING_LIST,dateInt,activities,type.toString());
// redisValueCache.set(ShareOrdersKeyEnum.ACTIVITY_ING_LIST.getPreKey()+dateStr,activities,ShareOrdersKeyEnum.ACTIVITY_ING_LIST.getCacheTime(),TimeUnit.SECONDS);
return activities;
}
//获取某时间段可参与活动的单数
... ... @@ -2666,7 +2674,8 @@ public class UnionShareServiceImpl implements IUnionShareService,IBusinessExport
}
//活动返利
try {
List<UnionShareOrdersActivity> activityList = queryActivityByDate(order.getOrderTime());
//type活动类型:1-特殊返,2-订单返利翻x倍,3-额外返,4-cps新人额外返
List<UnionShareOrdersActivity> activityList = queryActivityByDate(2,order.getOrderTime());
for (UnionShareOrdersActivity a :activityList ) {
if(participateActivity(order,a)) {
//参加了活动,参加一个加返活动就可以了
... ... @@ -2715,7 +2724,8 @@ public class UnionShareServiceImpl implements IUnionShareService,IBusinessExport
//1.4拼团订单处理:0-不做处理,1-剔除拼团订单,2-拼团参与
//activitiesId为14的,表示为拼团订单
if ((activity.getCollage() == 1 && 14 == order.getActivitiesId()) || (activity.getCollage() == 2 && 14 != order.getActivitiesId())) {
if ((activity.getCollage() == 1 && order.getActivitiesId() != null && 14 == order.getActivitiesId())
|| (activity.getCollage() == 2 && (order.getActivitiesId() == null||14 != order.getActivitiesId()))) {
return false;
}
//1.5这组skn作用:0-不筛选skn,1-指定可参与活动的skn,2-剔除可参与活动的skn
... ... @@ -2833,7 +2843,8 @@ public class UnionShareServiceImpl implements IUnionShareService,IBusinessExport
//活动返利
try {
List<UnionShareOrdersActivity> activityList = queryActivityByDate(bo.getOrderTime());
//type活动类型:1-特殊返,2-订单返利翻x倍,3-额外返,4-cps新人额外返
List<UnionShareOrdersActivity> activityList = queryActivityByDate(2,bo.getOrderTime());
for (UnionShareOrdersActivity a :activityList ) {
if(participateActivity(insertReq,a)) {
//参加了活动,参加一个加返活动就可以了
... ...
... ... @@ -30,7 +30,8 @@ public class CpsNewUserActivityTask {
//查询6天前一天为进行中状态的新用户满x单返活动
int endTime= DateUtil.getLastDayStartInt(6);
int beginTime=DateUtil.getLastDayStartInt(7);
List<UnionShareOrdersActivity> activities = unionShareService.queryLastDaysIngActivity(beginTime,endTime);
//type活动类型:1-特殊返,2-订单返利翻x倍,3-额外返,4-cps新人额外返
List<UnionShareOrdersActivity> activities = unionShareService.queryLastDaysIngActivity(4,beginTime,endTime);
if (CollectionUtils.isEmpty(activities)) {
return;
}
... ...