公会任务主播上麦明细
This commit is contained in:
@@ -43,6 +43,7 @@ public class DailyTaskVo {
|
|||||||
private GuildCycleDiamondWageLevelVo cycleDiamondWageLevelVo;
|
private GuildCycleDiamondWageLevelVo cycleDiamondWageLevelVo;
|
||||||
@ApiModelProperty("任务剩余秒数")
|
@ApiModelProperty("任务剩余秒数")
|
||||||
private Long expireSecond;
|
private Long expireSecond;
|
||||||
|
private Integer guildId;
|
||||||
@ApiModelProperty("公会开业仪式")
|
@ApiModelProperty("公会开业仪式")
|
||||||
private List<GuildTaskLevelInfoVo> guildTaskVos;
|
private List<GuildTaskLevelInfoVo> guildTaskVos;
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,11 @@
|
|||||||
|
package com.accompany.business.vo.guild;
|
||||||
|
|
||||||
|
import com.accompany.business.vo.SimpleUserVo;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GuildMemberMicVo extends SimpleUserVo {
|
||||||
|
private Integer micMinutes;
|
||||||
|
private Boolean reachState;
|
||||||
|
}
|
@@ -1,9 +1,11 @@
|
|||||||
package com.accompany.business.mybatismapper.guildpolicy2;
|
package com.accompany.business.mybatismapper.guildpolicy2;
|
||||||
|
|
||||||
import com.accompany.business.model.guildpolicy2.GuildMicStatisticsPolicy2;
|
import com.accompany.business.model.guildpolicy2.GuildMicStatisticsPolicy2;
|
||||||
|
import com.accompany.business.vo.guild.GuildMemberMicVo;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo;
|
import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -36,4 +38,7 @@ public interface GuildMicStatisticsPolicy2Mapper extends BaseMapper<GuildMicStat
|
|||||||
|
|
||||||
List<GuildMemberMicDayVo> groupByPartitionGuildDate(@Param("statDate")String statDate, @Param("partitionId") Integer partitionId,
|
List<GuildMemberMicDayVo> groupByPartitionGuildDate(@Param("statDate")String statDate, @Param("partitionId") Integer partitionId,
|
||||||
@Param("reachMinutes") Integer reachMinutes, @Param("guildIds") List<Integer> guildIds);
|
@Param("reachMinutes") Integer reachMinutes, @Param("guildIds") List<Integer> guildIds);
|
||||||
|
|
||||||
|
IPage<GuildMemberMicVo> listGuildMemberMic(@Param("page") IPage<GuildMemberMicVo> page, @Param("partitionId") Integer partitionId,
|
||||||
|
@Param("guildId") Integer guildId, @Param("statDate") String statDate);
|
||||||
}
|
}
|
||||||
|
@@ -66,6 +66,7 @@ public class GuildMicHandler extends AbstractDailyTaskHandler {
|
|||||||
List<GuildTaskLevelInfoVo> guildWeekTaskList = guildTaskService.getGuildWeekTaskList(cycleDate, dailyTaskTypeEnum.name(), taskDate, partitionId, guild.getId());
|
List<GuildTaskLevelInfoVo> guildWeekTaskList = guildTaskService.getGuildWeekTaskList(cycleDate, dailyTaskTypeEnum.name(), taskDate, partitionId, guild.getId());
|
||||||
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
||||||
dailyTaskVo.setGuildTaskVos(guildWeekTaskList);
|
dailyTaskVo.setGuildTaskVos(guildWeekTaskList);
|
||||||
|
dailyTaskVo.setGuildId(guild.getId());
|
||||||
ZonedDateTime weekEndTime = nowZonedDateTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY)).withMinute(59).withHour(23).withSecond(59);
|
ZonedDateTime weekEndTime = nowZonedDateTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY)).withMinute(59).withHour(23).withSecond(59);
|
||||||
Duration duration = Duration.between(weekEndTime, nowZonedDateTime);
|
Duration duration = Duration.between(weekEndTime, nowZonedDateTime);
|
||||||
dailyTaskVo.setExpireSecond(duration.getSeconds());
|
dailyTaskVo.setExpireSecond(duration.getSeconds());
|
||||||
|
@@ -3,8 +3,10 @@ package com.accompany.business.service.guildpolicy2;
|
|||||||
import com.accompany.business.model.guild.GuildMember;
|
import com.accompany.business.model.guild.GuildMember;
|
||||||
import com.accompany.business.model.guildpolicy2.GuildMicStatisticsPolicy2;
|
import com.accompany.business.model.guildpolicy2.GuildMicStatisticsPolicy2;
|
||||||
import com.accompany.business.mybatismapper.guildpolicy2.GuildMicStatisticsPolicy2Mapper;
|
import com.accompany.business.mybatismapper.guildpolicy2.GuildMicStatisticsPolicy2Mapper;
|
||||||
|
import com.accompany.business.vo.guild.GuildMemberMicVo;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo;
|
import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -70,4 +72,8 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl<GuildMicStatis
|
|||||||
}
|
}
|
||||||
return memberMicDayVos.stream().collect(Collectors.toMap(GuildMemberMicDayVo::getGuildId, GuildMemberMicDayVo::getMicDay));
|
return memberMicDayVos.stream().collect(Collectors.toMap(GuildMemberMicDayVo::getGuildId, GuildMemberMicDayVo::getMicDay));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IPage<GuildMemberMicVo> listGuildMemberMic(IPage<GuildMemberMicVo> page, Integer partitionId, Integer guildId, String statDate) {
|
||||||
|
return baseMapper.listGuildMemberMic(page, partitionId, guildId, statDate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,15 @@ public class GuildTaskLevelInfoService extends ServiceImpl<GuildTaskLevelInfoMap
|
|||||||
return baseMapper.selectList(wrapper);
|
return baseMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GuildTaskLevelInfo listGuildTaskLevel(Integer partitionId, String taskKey, Integer level) {
|
||||||
|
LambdaQueryWrapper<GuildTaskLevelInfo> wrapper = Wrappers.lambdaQuery();
|
||||||
|
wrapper.eq(GuildTaskLevelInfo::getPartitionId, partitionId);
|
||||||
|
wrapper.eq(GuildTaskLevelInfo::getTaskKey, taskKey)
|
||||||
|
.eq(GuildTaskLevelInfo::getLevel, level)
|
||||||
|
.orderByAsc(GuildTaskLevelInfo::getLevel);
|
||||||
|
return baseMapper.selectOne(wrapper, false);
|
||||||
|
}
|
||||||
|
|
||||||
public List<GuildTaskLevelInfo> listGuildTaskList(Integer partitionId, List<String> taskKeys) {
|
public List<GuildTaskLevelInfo> listGuildTaskList(Integer partitionId, List<String> taskKeys) {
|
||||||
LambdaQueryWrapper<GuildTaskLevelInfo> wrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<GuildTaskLevelInfo> wrapper = Wrappers.lambdaQuery();
|
||||||
wrapper.eq(GuildTaskLevelInfo::getPartitionId, partitionId);
|
wrapper.eq(GuildTaskLevelInfo::getPartitionId, partitionId);
|
||||||
|
@@ -19,6 +19,7 @@ import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Serv
|
|||||||
import com.accompany.business.service.user.UserGoldBeanService;
|
import com.accompany.business.service.user.UserGoldBeanService;
|
||||||
import com.accompany.business.util.RewardUtil;
|
import com.accompany.business.util.RewardUtil;
|
||||||
import com.accompany.business.vo.dailytask.DailyTaskRewardVo;
|
import com.accompany.business.vo.dailytask.DailyTaskRewardVo;
|
||||||
|
import com.accompany.business.vo.guild.GuildMemberMicVo;
|
||||||
import com.accompany.business.vo.guild.GuildTaskLevelInfoVo;
|
import com.accompany.business.vo.guild.GuildTaskLevelInfoVo;
|
||||||
import com.accompany.common.result.BusiResult;
|
import com.accompany.common.result.BusiResult;
|
||||||
import com.accompany.common.status.BusiStatus;
|
import com.accompany.common.status.BusiStatus;
|
||||||
@@ -29,6 +30,9 @@ import com.accompany.core.enumeration.I18nAlertEnum;
|
|||||||
import com.accompany.core.enumeration.PartitionEnum;
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
import com.accompany.core.exception.ServiceException;
|
import com.accompany.core.exception.ServiceException;
|
||||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||||
|
import com.accompany.core.util.StringUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.redisson.api.RMap;
|
import org.redisson.api.RMap;
|
||||||
@@ -392,6 +396,7 @@ public class GuildTaskService {
|
|||||||
infoVo.setCurDiamondNum(BigDecimal.ZERO);
|
infoVo.setCurDiamondNum(BigDecimal.ZERO);
|
||||||
infoVo.setCurAnchorMicReachNum(0);
|
infoVo.setCurAnchorMicReachNum(0);
|
||||||
if (statDate.equals(cycleDate) && guildTaskLevelInfo.getLevel() == 1) {
|
if (statDate.equals(cycleDate) && guildTaskLevelInfo.getLevel() == 1) {
|
||||||
|
infoVo.setReachStatDate(statDate);
|
||||||
infoVo.setReceiveStatus(DailyTaskConstant.ReceiveStatus.UNCOMPLETED);
|
infoVo.setReceiveStatus(DailyTaskConstant.ReceiveStatus.UNCOMPLETED);
|
||||||
} else {
|
} else {
|
||||||
infoVo.setReceiveStatus(DailyTaskConstant.ReceiveStatus.NOTYETOPEN);
|
infoVo.setReceiveStatus(DailyTaskConstant.ReceiveStatus.NOTYETOPEN);
|
||||||
@@ -538,4 +543,26 @@ public class GuildTaskService {
|
|||||||
private RMap<Integer, Integer> oldReceicveStatus(String taskKey, Integer guildId) {
|
private RMap<Integer, Integer> oldReceicveStatus(String taskKey, Integer guildId) {
|
||||||
return redissonClient.getMap(guild_task_receive.getKey(taskKey, guildId.toString()), new TypedJsonJacksonCodec(Integer.class, Integer.class));
|
return redissonClient.getMap(guild_task_receive.getKey(taskKey, guildId.toString()), new TypedJsonJacksonCodec(Integer.class, Integer.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<GuildMemberMicVo> micList(String taskKey, Integer level, String statDate, Integer partitionId,
|
||||||
|
Integer guildId, Integer pageNo, Integer pageSize) {
|
||||||
|
if (StringUtils.isEmpty(statDate)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
Page<GuildMemberMicVo> micVoPage = new Page<>(pageNo, pageSize, false);
|
||||||
|
IPage<GuildMemberMicVo> memberMicVoIPage = guildMicStatisticsPolicy2Service.listGuildMemberMic(micVoPage, partitionId, guildId, statDate);
|
||||||
|
List<GuildMemberMicVo> records = memberMicVoIPage.getRecords();
|
||||||
|
if (CollectionUtils.isEmpty(records)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
GuildTaskLevelInfo guildTaskLevelInfo = guildTaskLevelInfoService.listGuildTaskLevel(partitionId, taskKey, level);
|
||||||
|
Integer anchorMicReachMinutes = guildTaskLevelInfo.getAnchorMicReachMinutes();
|
||||||
|
for (GuildMemberMicVo record : records) {
|
||||||
|
boolean reach = anchorMicReachMinutes <= record.getMicMinutes();
|
||||||
|
record.setReachState(reach);
|
||||||
|
record.setMicMinutes(reach ? anchorMicReachMinutes : record.getMicMinutes());
|
||||||
|
}
|
||||||
|
return records;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -81,6 +81,24 @@
|
|||||||
GROUP BY gmp.guild_id
|
GROUP BY gmp.guild_id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="listGuildMemberMic" resultType="com.accompany.business.vo.guild.GuildMemberMicVo">
|
||||||
|
SELECT
|
||||||
|
u.erban_no erbanNo,
|
||||||
|
u.nick nick,
|
||||||
|
u.avatar avatar,
|
||||||
|
u.uid uid,
|
||||||
|
ifnull(gp.mic_minutes, 0) micMinutes
|
||||||
|
FROM
|
||||||
|
guild_member gm
|
||||||
|
LEFT JOIN guild_mic_statistics_policy2 gp ON gp.guild_member_id = gm.id AND gp.stat_date = #{statDate}
|
||||||
|
LEFT JOIN users u ON u.uid = gm.uid
|
||||||
|
WHERE
|
||||||
|
gm.partition_id = #{partitionId}
|
||||||
|
AND gm.guild_id = #{guildId}
|
||||||
|
AND gm.`enable` = 1
|
||||||
|
GROUP BY
|
||||||
|
gm.id
|
||||||
|
order by micMinutes desc
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@@ -1,17 +1,16 @@
|
|||||||
package com.accompany.business.controller.activity.dailytask;
|
package com.accompany.business.controller.activity.dailytask;
|
||||||
|
|
||||||
import com.accompany.business.service.guildtask.GuildTaskService;
|
import com.accompany.business.service.guildtask.GuildTaskService;
|
||||||
|
import com.accompany.business.vo.guild.GuildMemberMicVo;
|
||||||
import com.accompany.common.result.BusiResult;
|
import com.accompany.common.result.BusiResult;
|
||||||
import com.accompany.common.utils.IPUtils;
|
import com.accompany.common.utils.IPUtils;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.DEVICE_ID;
|
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.DEVICE_ID;
|
||||||
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.PUB_UID;
|
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.PUB_UID;
|
||||||
@@ -31,4 +30,12 @@ public class GuildTaskController {
|
|||||||
String loginIp = IPUtils.getRealIpAddress(request);
|
String loginIp = IPUtils.getRealIpAddress(request);
|
||||||
return guildTaskService.receive(reachId, uid, loginIp, deviceId);
|
return guildTaskService.receive(reachId, uid, loginIp, deviceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "上麦时长列表", httpMethod = "GET")
|
||||||
|
@GetMapping("/micList")
|
||||||
|
public BusiResult<List<GuildMemberMicVo>> micList(String taskKey, Integer level, String statDate,
|
||||||
|
Integer partitionId, Integer guildId, Integer pageNo, Integer pageSize) {
|
||||||
|
return BusiResult.success(guildTaskService.micList(taskKey, level, statDate, partitionId, guildId, pageNo, pageSize));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user