mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-07 18:06:50 +08:00
Merge branch 'refs/heads/zcwy0813-yang' into dev0525
This commit is contained in:
@@ -693,6 +693,16 @@ public class CasesApi extends ApiBaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 不同专业月热度榜查询所需时间检索数据
|
||||
*/
|
||||
@GetMapping("/queryAllTimePopularityOfMajor")
|
||||
public JsonResponse<Map<Long, List<String>>> queryAllTimePopularityOfMajor() {
|
||||
Map<Long, List<String>> time = casesService.queryAllTimePopularityOfMajor();
|
||||
return success(time);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询推荐案例榜单
|
||||
* @return
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.xboe.core.SysConstant;
|
||||
import com.xboe.core.orm.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@@ -16,6 +17,7 @@ import java.time.LocalDateTime;
|
||||
* @TableName boe_cases_rank
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Table(name = SysConstant.TABLE_PRE+"cases_rank")
|
||||
@@ -52,6 +54,8 @@ public class CasesRank extends BaseEntity {
|
||||
@Transient
|
||||
private String majorName;
|
||||
|
||||
|
||||
|
||||
public CasesRank(Long majorId, LocalDateTime riseRankTime) {
|
||||
this.majorId = majorId;
|
||||
this.riseRankTime = riseRankTime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.transaction.Transactional;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ICasesService{
|
||||
/**
|
||||
@@ -137,5 +138,7 @@ public interface ICasesService{
|
||||
PageList<FavoriteCaseOfIndexVo> queryFavoriteCaseOfIndex(Integer pageIndex, Integer pageSize, String accountId);
|
||||
|
||||
PageList<CasesBrowsingHistoryVo> browsingHistory(Integer pageIndex, Integer pageSize, String accountId, HttpServletRequest request);
|
||||
|
||||
Map<Long, List<String>> queryAllTimePopularityOfMajor();
|
||||
}
|
||||
|
||||
|
||||
@@ -487,7 +487,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
if (CollUtil.isNotEmpty(viewsRankRecords)) {
|
||||
// 拼接生成浏览量排行榜的标签
|
||||
List<CaseViewRankingItemVo> viewRankTags = viewsRankRecords.stream().map(casesRank -> {
|
||||
String pattern = casesRank.getRiseRankTime().getMonthValue() < 10 ? "yyyy年M月" : "yyyy年MM月";
|
||||
String pattern = casesRank.getRiseRankTime().getMonthValue() < 10 ? "yy年M月" : "yy年MM月";
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
|
||||
String time = casesRank.getRiseRankTime().format(formatter);
|
||||
|
||||
@@ -508,7 +508,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
|
||||
// 拼接生成年度最佳标签
|
||||
if (e.getExcellent()!=null && e.getExcellent()) {
|
||||
e.setExcellentTag(e.getExcellentTime().format(DateTimeFormatter.ofPattern("yyyy年"))+"度最佳");
|
||||
e.setExcellentTag(e.getExcellentTime().format(DateTimeFormatter.ofPattern("yy年"))+"度最佳");
|
||||
}
|
||||
|
||||
List<String> authorTags = new ArrayList<>();
|
||||
@@ -1164,7 +1164,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void refreshViewsRankOfMajor(){
|
||||
// LocalDateTime riseRankTime = LocalDateTime.now().withDayOfMonth(1).minusDays(1).toLocalDate().atTime(23, 59, 59); // 上月最后一天的结束时间
|
||||
LocalDateTime riseRankTime = LocalDateTime.now().minusMonths(2).minusDays(1).toLocalDate().atTime(23, 59, 59); // 上月最后一天的结束时间
|
||||
LocalDateTime riseRankTime = LocalDateTime.now().minusMonths(1).minusDays(1).toLocalDate().atTime(23, 59, 59); // 上月最后一天的结束时间
|
||||
int count = casesRankDao.sqlCount("SELECT count(1) FROM boe_cases_rank WHERE deleted=0 AND rise_rank_time = ?1", riseRankTime);
|
||||
if (count > 0){
|
||||
return;
|
||||
@@ -1174,7 +1174,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
String sql =
|
||||
"SELECT bc.id,bcmt.major_id,bc.views - COALESCE(bc.last_month_views, 0) AS increment\n" +
|
||||
"FROM boe_cases bc\n" +
|
||||
"JOIN boe_cases_major_type bcmt ON bcmt.case_id = bc.id and bc.deleted=0 and file_path is not null and file_path!=''";
|
||||
"JOIN boe_cases_major_type bcmt ON bcmt.case_id = bc.id and bc.deleted=0 and file_path is not null and file_path!='' and bc.views - COALESCE(bc.last_month_views, 0)!=0";
|
||||
List<Object> caseListOfObject = casesDao.sqlFindList(sql);
|
||||
|
||||
// 转为casesRank
|
||||
@@ -1487,4 +1487,22 @@ public class CasesServiceImpl implements ICasesService {
|
||||
return pageList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, List<String>> queryAllTimePopularityOfMajor() {
|
||||
QueryBuilder builder = QueryBuilder.from(CasesRank.class);
|
||||
builder.addField("new CasesRank(majorId,riseRankTime)");
|
||||
builder.addFilter(FieldFilters.eq("deleted",false));
|
||||
builder.addGroupBy("majorId");
|
||||
builder.addGroupBy("riseRankTime");
|
||||
List<CasesRank> list = casesRankDao.findList(builder.builder());
|
||||
// 定义日期时间的格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yy-MM");
|
||||
|
||||
|
||||
Map<Long, List<String>> collect = list.stream().collect(Collectors.groupingBy
|
||||
(CasesRank::getMajorId, Collectors.mapping(casesRank -> casesRank.getRiseRankTime().format(formatter), Collectors.toList())));
|
||||
|
||||
return collect;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user