Commit a163d0e5 authored by shiyu's avatar shiyu

弹框是否展示,没签到但当天已提示的,则不再提示

parent 3e9456a1
...@@ -42,4 +42,10 @@ public class AppletPageConfigVo implements Entity { ...@@ -42,4 +42,10 @@ public class AppletPageConfigVo implements Entity {
* 是否展示 * 是否展示
*/ */
private Boolean isShow; private Boolean isShow;
/**
* 当前日期字符串
* yyyyMMdd
*/
private String todayStr;
} }
package com.wwdz.ch.wx.impl.distribution; package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.RedisUtils;
import com.wwdz.ch.db.dao.UserSignInDao; import com.wwdz.ch.db.dao.UserSignInDao;
import com.wwdz.ch.db.dao.distribution.AppletPageConfigDao; import com.wwdz.ch.db.dao.distribution.AppletPageConfigDao;
import com.wwdz.ch.db.domain.UserSignIn; import com.wwdz.ch.db.domain.UserSignIn;
...@@ -14,29 +15,47 @@ import org.slf4j.LoggerFactory; ...@@ -14,29 +15,47 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@Service @Service
public class AppletPageConfigServiceImpl implements AppletPageConfigService { public class AppletPageConfigServiceImpl implements AppletPageConfigService {
private static final Logger logger = LoggerFactory.getLogger(AppletPageConfigServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(AppletPageConfigServiceImpl.class);
private static final String SIGN_IN_ALERT_KEY = "SIGN:IN:ALERT:";
@Autowired @Autowired
AppletPageConfigDao appletPageConfigDao; AppletPageConfigDao appletPageConfigDao;
@Autowired @Autowired
UserSignInDao userSignInDao; UserSignInDao userSignInDao;
@Autowired
RedisUtils redisUtils;
@Override @Override
public Result getPageConfig(AppletPageConfigRequestDto dto) { public Result getPageConfig(AppletPageConfigRequestDto dto) {
try { try {
LocalDate today = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
String formattedDate = today.format(formatter);
AppletPageConfig appletPageConfig = appletPageConfigDao.findList(dto); AppletPageConfig appletPageConfig = appletPageConfigDao.findList(dto);
AppletPageConfigVo appletPageConfigVo = new AppletPageConfigVo(); AppletPageConfigVo appletPageConfigVo = new AppletPageConfigVo();
appletPageConfigVo.setTodayStr(formattedDate);
EntityMapper.copyAttribute(appletPageConfig, appletPageConfigVo); EntityMapper.copyAttribute(appletPageConfig, appletPageConfigVo);
if (dto.getUserId() == null) { if (dto.getUserId() == null) {
appletPageConfigVo.setIsShow(true); appletPageConfigVo.setIsShow(true);
} else { } else {
String key = SIGN_IN_ALERT_KEY + formattedDate + ":" + dto.getUserId();
UserSignIn userSignIn = userSignInDao.findTodayRecord(dto.getUserId()); UserSignIn userSignIn = userSignInDao.findTodayRecord(dto.getUserId());
if (userSignIn == null) { if (userSignIn == null) {
appletPageConfigVo.setIsShow(true); if (redisUtils.hasKey(key)) {
appletPageConfigVo.setIsShow(false);
} else {
appletPageConfigVo.setIsShow(true);
redisUtils.set(key, dto.getUserId(), 60 * 60 * 24);
}
} else { } else {
appletPageConfigVo.setIsShow(false); appletPageConfigVo.setIsShow(false);
} }
......
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