用户活动-我的订阅

This commit is contained in:
2025-05-14 14:54:53 +08:00
parent d66fada3e8
commit 89e2d3d4b5
4 changed files with 50 additions and 22 deletions

View File

@@ -31,4 +31,5 @@ public class UserEventVO extends UserEvent {
private Long erbanNo;
private Byte gender;
private String avatar;
private Long offectTimes;
}

View File

@@ -90,7 +90,7 @@ public interface UserEventService extends IService<UserEvent> {
BusiResult<List<UserEventVO>> square(Long uid, Integer page, Integer pageSize);
/**
* 我的广场,包括我的+订阅的
* 我的广场,包括我的
*
* @param uid
* @param page
@@ -98,6 +98,15 @@ public interface UserEventService extends IService<UserEvent> {
* @return
*/
BusiResult<List<UserEventVO>> mysquare(Long uid, Integer page, Integer pageSize);
/**
* 我的广场,订阅的
*
* @param uid
* @param page
* @param pageSize
* @return
*/
BusiResult<List<UserEventVO>> mySub(Long uid, Integer page, Integer pageSize);
/**
* 刷新最近即将发生的活动

View File

@@ -310,30 +310,36 @@ public class UserEventServiceImpl extends ServiceImpl<UserEventMapper, UserEvent
UserEventConstant.EventStatus.IN_REVIEW))
.eq(UserEvent::getUid, uid);
List<UserEvent> userEvents = baseMapper.selectList(wrapper);
List<UserEvent> totalList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(userEvents)) {
totalList.addAll(userEvents);
}
List<Long> existIds = totalList.stream().map(UserEvent::getId).collect(Collectors.toList());
Date now = new Date();
List<Long> subEventIds = userEventSubService.subEventId(uid);
if (CollectionUtils.isNotEmpty(subEventIds)) {
subEventIds.removeIf(existIds::contains);
if (CollectionUtils.isNotEmpty(subEventIds)) {
wrapper = Wrappers.lambdaQuery();
wrapper.in(UserEvent::getId, subEventIds)
.eq(UserEvent::getEventStatus, UserEventConstant.EventStatus.PASS);
userEvents = baseMapper.selectList(wrapper);
if (CollectionUtils.isNotEmpty(userEvents)) {
totalList.addAll(userEvents);
}
}
}
if (CollectionUtils.isEmpty(totalList)) {
if (CollectionUtils.isEmpty(userEvents)) {
return BusiResult.success(EMPTY_LIST);
}
Collections.sort(totalList, Comparator.comparing(UserEvent::getEventStartTime));
List<UserEvent> resultList = PageUtil.page(totalList, page, pageSize);
Collections.sort(userEvents, Comparator.comparing(UserEvent::getEventStartTime));
List<UserEvent> resultList = PageUtil.page(userEvents, page, pageSize);
if (CollectionUtils.isEmpty(resultList)) {
return BusiResult.success(EMPTY_LIST);
}
return BusiResult.success(this.calUserEventVo(resultList, now, uid));
}
@Override
public BusiResult<List<UserEventVO>> mySub(Long uid, Integer page, Integer pageSize) {
Date now = new Date();
List<Long> subEventIds = userEventSubService.subEventId(uid);
if (CollectionUtils.isEmpty(subEventIds)) {
return BusiResult.success(EMPTY_LIST);
}
LambdaQueryWrapper<UserEvent> wrapper = Wrappers.lambdaQuery();
wrapper = Wrappers.lambdaQuery();
wrapper.in(UserEvent::getId, subEventIds)
.eq(UserEvent::getEventStatus, UserEventConstant.EventStatus.PASS);
List<UserEvent> userEvents = baseMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(userEvents)) {
return BusiResult.success(EMPTY_LIST);
}
Collections.sort(userEvents, Comparator.comparing(UserEvent::getEventStartTime));
List<UserEvent> resultList = PageUtil.page(userEvents, page, pageSize);
if (CollectionUtils.isEmpty(resultList)) {
return BusiResult.success(EMPTY_LIST);
}
@@ -379,6 +385,7 @@ public class UserEventServiceImpl extends ServiceImpl<UserEventMapper, UserEvent
vo.setRoomAvatar(room.getAvatar());
}
Date eventStartTime = vo.getEventStartTime();
vo.setOffectTimes(eventStartTime.getTime() - now.getTime());
vo.setLiveStatus(genLiveStatus(eventStartTime, vo.getEventEndTime(), now));
vo.setEventStartTimeStr(DateTimeUtil.convertWithZoneId(eventStartTime, partitionEnum.getZoneId()).format(DateTimeUtil.datetimeFormatter));
vo.setSubStatus(subbedEvents.contains(vo.getId()));

View File

@@ -110,6 +110,17 @@ public class UserEventController extends BaseController {
return userEventService.mysquare(uid, page, pageSize);
}
@ApiImplicitParams({
@ApiImplicitParam(name = "uid", value = "uid", required = true, dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "page", value = "page", required = true, dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int", paramType = "query"),
})
@ApiOperation(value = "我的订阅", httpMethod = "GET")
@GetMapping("/mySub")
public BusiResult<List<UserEventVO>> mySub(@RequestParam Long uid, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "2") Integer pageSize) {
return userEventService.mySub(uid, page, pageSize);
}
@ApiOperation(value = "用户活动配置", httpMethod = "GET")
@GetMapping(value = "/goldConfig")
@ResponseBody