日常任务-日任务奖励领取详情-明细
This commit is contained in:
@@ -1,14 +1,25 @@
|
||||
package com.accompany.admin.service.dailytask;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.constant.dailytask.DailyTaskTypeEnum;
|
||||
import com.accompany.business.model.dailytask.DailyTaskRecvCoinStat;
|
||||
import com.accompany.business.model.dailytask.DailyTaskRewardRecord;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.service.dailytask.DailyTaskRecvCoinStatService;
|
||||
import com.accompany.business.service.dailytask.DailyTaskRewardRecordService;
|
||||
import com.accompany.business.service.dailytask.DailyTaskStatService;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.vo.dailytask.DailyCoinRecvRecordVo;
|
||||
import com.accompany.business.vo.dailytask.DailyCoinRecvVo;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -16,6 +27,8 @@ import org.springframework.stereotype.Service;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class DailyTaskAdminService {
|
||||
@@ -24,9 +37,14 @@ public class DailyTaskAdminService {
|
||||
private DailyTaskRecvCoinStatService dailyTaskRecvCoinStatService;
|
||||
@Autowired
|
||||
private DailyTaskStatService dailyTaskStatService;
|
||||
@Autowired
|
||||
private DailyTaskRewardRecordService dailyTaskRewardRecordService;
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
|
||||
public PageResult<DailyCoinRecvVo> list(Integer pageNo, Integer pageSize, Integer partitionId, String startDate, String endDate) {
|
||||
|
||||
IPage<DailyTaskRecvCoinStat> dailyTaskRecvCoinStatIPage = dailyTaskRecvCoinStatService.selectDailyCoinRecvStat(partitionId, startDate, endDate, pageNo, pageSize);
|
||||
PageResult<DailyCoinRecvVo> pageResult = new PageResult<>();
|
||||
List<DailyCoinRecvVo> recvVoList = new ArrayList<>();
|
||||
@@ -34,9 +52,18 @@ public class DailyTaskAdminService {
|
||||
pageResult.setTotal((int) dailyTaskRecvCoinStatIPage.getTotal());
|
||||
List<DailyTaskRecvCoinStat> records = dailyTaskRecvCoinStatIPage.getRecords();
|
||||
if (pageNo == 1) {
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
records = new ArrayList<>();
|
||||
}
|
||||
String todayDate = DateTimeUtil.convertWithZoneId(new Date(),
|
||||
PartitionEnum.getByPartitionId(partitionId).getZoneId()).format(DateTimeUtil.dateFormatter);
|
||||
records.add(dailyTaskStatService.statDailyCoinRecvStat(partitionId, todayDate));
|
||||
if (StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate)) {
|
||||
if (startDate.compareTo(todayDate) <= 0 && endDate.compareTo(todayDate) >= 0) {
|
||||
records.add(dailyTaskStatService.statDailyCoinRecvStat(partitionId, todayDate, false));
|
||||
}
|
||||
} else {
|
||||
records.add(dailyTaskStatService.statDailyCoinRecvStat(partitionId, todayDate, false));
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
return pageResult;
|
||||
@@ -48,4 +75,47 @@ public class DailyTaskAdminService {
|
||||
}
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
public PageResult<DailyCoinRecvRecordVo> listRecord(Long erbanNo, Integer partitionId, String statDate,
|
||||
String deviceId, String ip, Integer pageNo, Integer pageSize) {
|
||||
Long uid = null;
|
||||
if (erbanNo != null) {
|
||||
Users user = usersService.getUserByErbanNo(erbanNo);
|
||||
if (user == null) {
|
||||
throw new AdminServiceException("ID:" + erbanNo + ",不存在");
|
||||
}
|
||||
uid = user.getUid();
|
||||
}
|
||||
IPage<DailyTaskRewardRecord> dailyTaskRewardRecordIPage = dailyTaskRewardRecordService
|
||||
.listDetail(uid, partitionId, statDate, DailyTaskTypeEnum.UP_MIC_COIN.name(), deviceId, ip, pageNo, pageSize);
|
||||
PageResult<DailyCoinRecvRecordVo> pageResult = new PageResult<>();
|
||||
List<DailyCoinRecvRecordVo> recordVoList = new ArrayList<>();
|
||||
pageResult.setRows(recordVoList);
|
||||
pageResult.setTotal((int) dailyTaskRewardRecordIPage.getTotal());
|
||||
List<DailyTaskRewardRecord> records = dailyTaskRewardRecordIPage.getRecords();
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
return pageResult;
|
||||
}
|
||||
List<Long> uids = records.stream().map(DailyTaskRewardRecord::getUid).collect(Collectors.toList());
|
||||
List<Long> guildMemberIds = records.stream().filter(record -> record.getGuildMemberId() != null)
|
||||
.map(DailyTaskRewardRecord::getGuildMemberId).distinct().collect(Collectors.toList());
|
||||
Map<Long, Users> usersMap = usersService.getUsersMapByUids(uids);
|
||||
Map<Long, GuildMember> guildMemberMap = guildMemberService.mapByIds(guildMemberIds);
|
||||
for (DailyTaskRewardRecord record : records) {
|
||||
DailyCoinRecvRecordVo recordVo = new DailyCoinRecvRecordVo();
|
||||
recordVo.setGuildId(record.getGuildId());
|
||||
recordVo.setUid(record.getUid());
|
||||
Users users = usersMap.get(record.getUid());
|
||||
if (users != null) {
|
||||
recordVo.setErbanNo(users.getErbanNo());
|
||||
}
|
||||
recordVo.setDeviceId(record.getDeviceId());
|
||||
recordVo.setIp(record.getLoginIp());
|
||||
GuildMember guildMember = guildMemberMap.get(record.getGuildMemberId());
|
||||
recordVo.setStatusStr((guildMember == null || !guildMember.getEnable()) ? "无效" : "有效");
|
||||
recordVo.setReceiveTime(DateUtil.formatDateTime(record.getCreateTime()));
|
||||
recordVoList.add(recordVo);
|
||||
}
|
||||
return pageResult;
|
||||
}
|
||||
}
|
||||
|
@@ -1,8 +1,11 @@
|
||||
package com.accompany.admin.controller.dailytask;
|
||||
|
||||
import com.accompany.admin.service.dailytask.DailyTaskAdminService;
|
||||
import com.accompany.business.vo.dailytask.DailyCoinRecvRecordVo;
|
||||
import com.accompany.business.vo.dailytask.DailyCoinRecvVo;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
@@ -13,6 +16,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@Api(tags = "每日任务相关", value = "每日任务相关")
|
||||
@RestController
|
||||
@RequestMapping("/admin/dailyTask")
|
||||
@@ -34,4 +42,40 @@ public class DailyTaskAdminController {
|
||||
String startDate, String endDate) {
|
||||
return dailyTaskAdminService.list(pageNo, pageSize, partitionId, startDate, endDate);
|
||||
}
|
||||
|
||||
@GetMapping("/coinRecvDetail")
|
||||
@ApiImplicitParams( {
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id-列表有带", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "statDate", value = "时间-列表有带", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "主播id", required = true, dataType = "Long"),
|
||||
@ApiImplicitParam(name = "deviceId", value = "设备id", dataType = "String"),
|
||||
@ApiImplicitParam(name = "ip", value = "ip", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "页码", dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer")
|
||||
})
|
||||
@ApiOperation(value = "日任务奖励领取详情-明细", httpMethod = "GET")
|
||||
public PageResult<DailyCoinRecvRecordVo> listRecord(Long erbanNo, Integer partitionId, String statDate,
|
||||
String deviceId, String ip, Integer pageNo, Integer pageSize) {
|
||||
return dailyTaskAdminService.listRecord(erbanNo, partitionId, statDate, deviceId, ip, pageNo, pageSize);
|
||||
}
|
||||
|
||||
@GetMapping("/coinRecvDetailExport")
|
||||
@ApiImplicitParams( {
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id-列表有带", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "statDate", value = "时间-列表有带", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "主播id", required = true, dataType = "Long"),
|
||||
@ApiImplicitParam(name = "deviceId", value = "设备id", dataType = "String"),
|
||||
@ApiImplicitParam(name = "ip", value = "ip", dataType = "String"),
|
||||
})
|
||||
@ApiOperation(value = "日任务奖励领取详情-明细-导出", httpMethod = "GET")
|
||||
public void coinRecvDetailExport(HttpServletResponse response, Long erbanNo, Integer partitionId, String statDate,
|
||||
String deviceId, String ip) throws IOException {
|
||||
PageResult<DailyCoinRecvRecordVo> pageResult = dailyTaskAdminService.listRecord(erbanNo, partitionId, statDate, deviceId, ip, -1, -1);
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
// 这里URLEncoder.encode可以防止中文乱码
|
||||
String excelName = URLEncoder.encode("日任务奖励领取明细", StandardCharsets.UTF_8);
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
|
||||
EasyExcel.write(response.getOutputStream(), DailyCoinRecvRecordVo.class).sheet("日任务奖励领取明细").doWrite(pageResult.getRows());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user