Commit 3f7411cd by Administrator

Merge branch 'feature/1003833' into 'master'

feat: [1003833] 我的足迹修改日期无数据时灰色

See merge request rays/pcloud-book!1034
parents 80976a1e 1f378a48
......@@ -4,6 +4,7 @@ import com.pcloud.book.applet.dto.AppletRecordDTO;
import com.pcloud.book.applet.entity.AppletRecord;
import com.pcloud.common.page.PageBeanNew;
import java.util.Date;
import java.util.List;
/**
......@@ -61,4 +62,6 @@ public interface AppletRecordBiz {
* @return
*/
PageBeanNew<AppletRecordDTO> listAppletRecord(Long wechatUserId, String date, List<Integer> recordTypes, String queryName, Integer currentPage, Integer numPerPage);
List<String> listUnreachableDate(Long wechatUserId);
}
\ No newline at end of file
package com.pcloud.book.applet.biz.impl;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
......@@ -43,6 +47,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
......@@ -155,6 +160,19 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
return listAppletRecord;
}
@Override
public List<String> listUnreachableDate(Long wechatUserId) {
// 获取过去30天所有日期集合
List<DateTime> dateTimes = DateUtil.rangeToList(DateUtil.offsetDay(new Date(), -30), new Date(), DateField.DAY_OF_YEAR);
List<Date> reachableDate = new ArrayList<>();
if (Objects.nonNull(wechatUserId)) {
reachableDate = appletRecordDao.listReachableDate(wechatUserId);
}
List<DateTime> collect = reachableDate.stream().filter(Objects::nonNull).map(DateUtil::beginOfDay).collect(Collectors.toList());
// 筛选出没有埋点记录的日期
return dateTimes.stream().filter(x -> !collect.contains(DateUtil.beginOfDay(x))).map(x -> DateUtil.format(x, DatePattern.NORM_DATE_FORMAT)).collect(Collectors.toList());
}
private void fillAppletRecord(List<AppletRecordDTO> recordList) {
if (ListUtils.isEmpty(recordList)) {
return;
......
......@@ -5,6 +5,7 @@ import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.entity.AppletRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -19,4 +20,6 @@ public interface AppletRecordDao extends BaseDao<AppletRecord> {
Map<Long, AppletUserBookcaseDTO> getBookMap(List<AppletRecordDTO> appletRecordDTOS4Book);
void updateDeleteState(Long fromId, Integer recordType);
List<Date> listReachableDate(Long wechatUserId);
}
\ No newline at end of file
package com.pcloud.book.applet.dao.impl;
import cn.hutool.core.map.MapUtil;
import com.pcloud.book.applet.dao.AppletRecordDao;
import com.pcloud.book.applet.dto.AppletRecordDTO;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
......@@ -7,6 +8,7 @@ import com.pcloud.book.applet.entity.AppletRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -32,4 +34,9 @@ public class AppletRecordDaoImpl extends BaseDaoImpl<AppletRecord> implements Ap
paramMap.put("recordType", recordType);
getSessionTemplate().update(getStatement("updateDeleteState"), paramMap);
}
@Override
public List<Date> listReachableDate(Long wechatUserId) {
return getSqlSession().selectList("listReachableDate", MapUtil.of("wechatUserId",wechatUserId));
}
}
\ No newline at end of file
......@@ -9,7 +9,6 @@ import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -17,13 +16,11 @@ import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
/**
......@@ -96,4 +93,11 @@ public class AppletRecordFacade {
return new ResponseDto<>(recordDTOPageBeanNew);
}
@ApiOperation("获取没有埋点记录的日期列表(过去30天)")
@RequestMapping(value = "listUnreachableDate",method = RequestMethod.GET)
public ResponseDto<List<String>> listUnreachableDate(@CookieValue("userInfo") String userInfo){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletRecordBiz.listUnreachableDate(wechatUserId));
}
}
\ No newline at end of file
......@@ -268,4 +268,16 @@
record_type = #{recordType}
</update>
<select id="listReachableDate" parameterType="map" resultType="Date">
SELECT
create_date
FROM
applet_record
WHERE
wechat_user_id = #{wechatUserId}
AND create_date > DATE_SUB( curdate(), INTERVAL 30 DAY )
GROUP BY
create_date
</select>
</mapper>
\ No newline at end of file
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