公会任务主播上麦明细
This commit is contained in:
@@ -43,6 +43,7 @@ public class DailyTaskVo {
|
||||
private GuildCycleDiamondWageLevelVo cycleDiamondWageLevelVo;
|
||||
@ApiModelProperty("任务剩余秒数")
|
||||
private Long expireSecond;
|
||||
private Integer guildId;
|
||||
@ApiModelProperty("公会开业仪式")
|
||||
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;
|
||||
|
||||
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.GuildPolicy2PersonalVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
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,
|
||||
@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());
|
||||
DailyTaskVo dailyTaskVo = new DailyTaskVo();
|
||||
dailyTaskVo.setGuildTaskVos(guildWeekTaskList);
|
||||
dailyTaskVo.setGuildId(guild.getId());
|
||||
ZonedDateTime weekEndTime = nowZonedDateTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY)).withMinute(59).withHour(23).withSecond(59);
|
||||
Duration duration = Duration.between(weekEndTime, nowZonedDateTime);
|
||||
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.guildpolicy2.GuildMicStatisticsPolicy2;
|
||||
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.GuildPolicy2PersonalVo;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
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));
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
LambdaQueryWrapper<GuildTaskLevelInfo> wrapper = Wrappers.lambdaQuery();
|
||||
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.util.RewardUtil;
|
||||
import com.accompany.business.vo.dailytask.DailyTaskRewardVo;
|
||||
import com.accompany.business.vo.guild.GuildMemberMicVo;
|
||||
import com.accompany.business.vo.guild.GuildTaskLevelInfoVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
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.exception.ServiceException;
|
||||
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 org.apache.commons.collections.CollectionUtils;
|
||||
import org.redisson.api.RMap;
|
||||
@@ -392,6 +396,7 @@ public class GuildTaskService {
|
||||
infoVo.setCurDiamondNum(BigDecimal.ZERO);
|
||||
infoVo.setCurAnchorMicReachNum(0);
|
||||
if (statDate.equals(cycleDate) && guildTaskLevelInfo.getLevel() == 1) {
|
||||
infoVo.setReachStatDate(statDate);
|
||||
infoVo.setReceiveStatus(DailyTaskConstant.ReceiveStatus.UNCOMPLETED);
|
||||
} else {
|
||||
infoVo.setReceiveStatus(DailyTaskConstant.ReceiveStatus.NOTYETOPEN);
|
||||
@@ -538,4 +543,26 @@ public class GuildTaskService {
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
</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>
|
||||
|
@@ -1,17 +1,16 @@
|
||||
package com.accompany.business.controller.activity.dailytask;
|
||||
|
||||
import com.accompany.business.service.guildtask.GuildTaskService;
|
||||
import com.accompany.business.vo.guild.GuildMemberMicVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.utils.IPUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
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.PUB_UID;
|
||||
@@ -31,4 +30,12 @@ public class GuildTaskController {
|
||||
String loginIp = IPUtils.getRealIpAddress(request);
|
||||
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