记得上下班打卡 | git大法好,push需谨慎

Commit ffab6dcc authored by wangyifan's avatar wangyifan

doudou二期需求-活动列表接口

parent c97cb5a0
...@@ -63,6 +63,7 @@ public class SweetConstant { ...@@ -63,6 +63,7 @@ public class SweetConstant {
// doudou // doudou
public final static String REDIS_KEY_SWEET_DOUDOU_USER = "sweet:doudou:uid:"; public final static String REDIS_KEY_SWEET_DOUDOU_USER = "sweet:doudou:uid:";
public final static String REDIS_KEY_SWEET_DOUDOU_SCOPE_MOBILE = "sweet:doudou:scope:mobile:"; public final static String REDIS_KEY_SWEET_DOUDOU_SCOPE_MOBILE = "sweet:doudou:scope:mobile:";
public static final String REDIS_KEY_SWEET_DOUDOU_ACTIVE = "sweet:doudou:active";
// 城市投票活动 // 城市投票活动
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_LIST = ":StatList"; public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_LIST = ":StatList";
public final static String REDIS_KEY_SWEET_CITY_VOTE_CITY_CODE = ":cityCode:"; public final static String REDIS_KEY_SWEET_CITY_VOTE_CITY_CODE = ":cityCode:";
......
package com.liquidnet.service.sweet.vo; package com.liquidnet.service.sweet.vo;
import com.liquidnet.service.sweet.entity.SweetDoudouActive;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -23,11 +24,33 @@ public class SweetDouDouActiveVo implements Serializable, Cloneable { ...@@ -23,11 +24,33 @@ public class SweetDouDouActiveVo implements Serializable, Cloneable {
private String detailImages; private String detailImages;
@ApiModelProperty("活动详情URL") @ApiModelProperty("活动详情URL")
private String target_url; private String targetUrl;
@ApiModelProperty("活动状态:2:进行中 3:已结束") @ApiModelProperty("活动状态:2:进行中 3:已结束")
private Integer activeStatus; private Integer activeStatus;
@ApiModelProperty("状态 1已登记 2未中签 3已中签 4已核销") @ApiModelProperty("状态 0未登记 1已登记 2未中签 3已中签 4已核销")
private Integer status; private Integer status;
private static final SweetDouDouActiveVo obj = new SweetDouDouActiveVo();
public static SweetDouDouActiveVo getNew() {
try {
return (SweetDouDouActiveVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetDouDouActiveVo();
}
}
public SweetDouDouActiveVo copy(SweetDoudouActive source) {
if (null == source) return this;
this.activeId = source.getActiveId();
this.title = source.getTitle();
this.cardImages = source.getCardImages();
this.detailImages = source.getDetailImages();
this.targetUrl = source.getTargetUrl();
return this;
}
} }
...@@ -43,4 +43,7 @@ public class RedisKeyExpireConst { ...@@ -43,4 +43,7 @@ public class RedisKeyExpireConst {
// kylin:luckybag 过期时间30天 // kylin:luckybag 过期时间30天
public static final long KYLIN_LUCKY_BAG_EXPIRE = 30 * 24 * 60 * 60; public static final long KYLIN_LUCKY_BAG_EXPIRE = 30 * 24 * 60 * 60;
// sweet:douduo:active 过期时间30天
public static final long SWEET_DOUDOU_ACTIVE_EXPIRE = 30 * 24 * 60 * 60;
} }
...@@ -19,7 +19,7 @@ public class SweetDoudouActive { ...@@ -19,7 +19,7 @@ public class SweetDoudouActive {
/** /**
* active_id * active_id
*/ */
private String active_id; private String activeId;
/** /**
* 标题 * 标题
...@@ -39,17 +39,17 @@ public class SweetDoudouActive { ...@@ -39,17 +39,17 @@ public class SweetDoudouActive {
/** /**
* 活动详情URL * 活动详情URL
*/ */
private String target_url; private String targetUrl;
/** /**
* 开始时间 * 开始时间
*/ */
private String begin_at; private String beginAt;
/** /**
* 结束时间 * 结束时间
*/ */
private String end_at; private String endAt;
/** /**
* 排序,越大越靠前 * 排序,越大越靠前
......
...@@ -10,6 +10,7 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -10,6 +10,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.sweet.entity.SweetDoudou; import com.liquidnet.service.sweet.entity.SweetDoudou;
import com.liquidnet.service.sweet.entity.SweetDoudouActive;
import com.liquidnet.service.sweet.mapper.SweetDoudouMapper; import com.liquidnet.service.sweet.mapper.SweetDoudouMapper;
import com.liquidnet.service.sweet.param.SweetDouDouCheckParam; import com.liquidnet.service.sweet.param.SweetDouDouCheckParam;
import com.liquidnet.service.sweet.param.SweetDouDouParam; import com.liquidnet.service.sweet.param.SweetDouDouParam;
...@@ -185,9 +186,51 @@ public class SweetDoudouServiceImpl extends ServiceImpl<SweetDoudouMapper, Sweet ...@@ -185,9 +186,51 @@ public class SweetDoudouServiceImpl extends ServiceImpl<SweetDoudouMapper, Sweet
return ResponseDto.success(); return ResponseDto.success();
} }
//TODO 1. // 1. 获取活动列表,并设置进行状态
List<SweetDoudouActive> sweetDoudouActiveList = redisDataUtils.getSweetDouDouActive();
if (sweetDoudouActiveList.isEmpty()){
log.info("暂无活动");
return ResponseDto.success();
}
return ResponseDto.success(); List<SweetDouDouActiveVo> sweetDouDouActiveVos = new ArrayList<>(sweetDoudouActiveList.size());
for (SweetDoudouActive doudouActive : sweetDoudouActiveList) {
// 1. 判断活动是否已经开始或结束
Integer activeStatus = checkActiveStatus(doudouActive.getBeginAt(), doudouActive.getEndAt());
if (activeStatus.equals(1)){
log.info("活动未开始, activeId: {}, title: {}.", doudouActive.getActiveId(), doudouActive.getTitle());
continue;
}
SweetDouDouActiveVo douDouActiveVo = SweetDouDouActiveVo.getNew().copy(doudouActive);
douDouActiveVo.setActiveStatus(activeStatus);
// 2. 查询用户是否参与该活动
SweetDouDouVo sweetDouDou = redisDataUtils.getSweetDouDou(uid);
if (sweetDouDou == null) {
douDouActiveVo.setStatus(0);
}else {
douDouActiveVo.setStatus(sweetDouDou.getStatus());
}
sweetDouDouActiveVos.add(douDouActiveVo);
}
return ResponseDto.success(sweetDouDouActiveVos);
}
public Integer checkActiveStatus(String beginAt, String endAt) {
final String nowTime = com.liquidnet.commons.lang.util.DateUtil.getNowTime();
if (null != beginAt && null != endAt && !beginAt.isEmpty() && !endAt.isEmpty()) {
if (com.liquidnet.commons.lang.util.DateUtil.compareStrDay(nowTime, beginAt) < 0) { // 当前时间小雨开始时间 还未开始呢
// 未开始
return 1;
} else if (com.liquidnet.commons.lang.util.DateUtil.compareStrDay(endAt, nowTime) < 0) { // 解释时间大于当前时间 已过期
// 已结束
return 3;
}else {
// 进行中
return 2;
}
}
return 3;
} }
@Override @Override
......
...@@ -61,6 +61,9 @@ public class RedisDataUtils { ...@@ -61,6 +61,9 @@ public class RedisDataUtils {
private SweetIntegralActivityDrawMapper sweetIntegralActivityDrawMapper; private SweetIntegralActivityDrawMapper sweetIntegralActivityDrawMapper;
@Autowired @Autowired
private SweetDoudouScopeMapper sweetDoudouScopeMapper; private SweetDoudouScopeMapper sweetDoudouScopeMapper;
@Autowired
private SweetDoudouActiveMapper sweetDoudouActiveMapper;
@Autowired @Autowired
@Lazy @Lazy
private FeignSlimeApiClient feignSlimeApiClient; private FeignSlimeApiClient feignSlimeApiClient;
...@@ -966,4 +969,27 @@ public class RedisDataUtils { ...@@ -966,4 +969,27 @@ public class RedisDataUtils {
} }
} }
public List<SweetDoudouActive> getSweetDouDouActive() {
String redisKey = SweetConstant.REDIS_KEY_SWEET_DOUDOU_ACTIVE;
Object obj = redisUtil.get(redisKey);
if (obj == null) {
LambdaQueryWrapper<SweetDoudouActive> queryWrapper = new QueryWrapper<SweetDoudouActive>()
.lambda()
.eq(SweetDoudouActive::getStatus, 1)
.orderByDesc(SweetDoudouActive::getSort);
List<SweetDoudouActive> doudouActives = sweetDoudouActiveMapper.selectList(queryWrapper);
if (doudouActives.isEmpty()) {
return Collections.emptyList();
}
setSweetDouDouActive(doudouActives);
return doudouActives;
}else {
return (List<SweetDoudouActive>) obj;
}
}
public void setSweetDouDouActive(List<SweetDoudouActive> activeList){
String redisKey = SweetConstant.REDIS_KEY_SWEET_DOUDOU_ACTIVE;
redisUtil.set(redisKey, activeList, RedisKeyExpireConst.SWEET_DOUDOU_ACTIVE_EXPIRE);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment