日常任务-主播周奖励英语2区

This commit is contained in:
2025-09-03 17:09:59 +08:00
parent 0aa971bb9d
commit 4c4d720404
19 changed files with 950 additions and 63 deletions

View File

@@ -2,38 +2,64 @@ package com.accompany.admin.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("家族成员周等级奖励统计")
public class FamilyMemberWeekLevelRewardStatAdminVo {
@ExcelProperty("周期")
@ApiModelProperty("周期")
private String cycleDate;
@ExcelIgnore
@ApiModelProperty("家族成员ID")
private Long familyMemberId;
@ExcelProperty("公会id")
@ApiModelProperty("公会ID")
private Integer familyId;
@ExcelProperty("公会名")
@ApiModelProperty("公会名称")
private String familyName;
@ExcelProperty("会长id")
@ApiModelProperty("会长ID")
private Long familyOwnerId;
@ExcelProperty("会长昵称")
@ApiModelProperty("会长昵称")
private String familyOwnerNick;
@ExcelIgnore
@ApiModelProperty("用户UID")
private Long uid;
@ExcelProperty("主播id")
@ApiModelProperty("主播ID")
private Long erbanNo;
@ExcelProperty("主播昵称")
@ApiModelProperty("主播昵称")
private String nick;
@ExcelProperty("周奖励等级")
private Integer level;
@ExcelProperty("周奖励等级")
private Integer levelName;
@ExcelProperty("钻石流水")
@ApiModelProperty("钻石流水")
private BigDecimal processNum;
@ExcelProperty("已获得金币")
@ExcelProperty("钻石奖励")
@ApiModelProperty("钻石奖励")
private BigDecimal rewardNum;
@ExcelProperty("在麦有效天数")
@ApiModelProperty("在麦有效天数")
private Integer micValidDay;
@ExcelProperty("时长奖励")
@ApiModelProperty("时长奖励")
private BigDecimal bonusRewardNum;
@ExcelProperty("目标领取金币")
@ApiModelProperty("目标领取金币")
private BigDecimal totalRewardNum;
@ExcelProperty("已领取金币")
@ApiModelProperty("已领取金币")
private BigDecimal receivedNum;
}
}

View File

@@ -61,7 +61,7 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
if (null == partitionInfo
|| (!Constant.ClanMode.FAMILY.equals(partitionInfo.getClanMode()) && !Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())
&& !Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode()))){
&& !Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode()))) {
throw new AdminServiceException(BusiStatus.PARAMERROR);
} else if (!StringUtils.hasText(cycleDate)) {
throw new AdminServiceException(BusiStatus.PARAMERROR);
@@ -70,42 +70,42 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
Page<FamilyMemberWeekLevelRewardStatAdminVo> voPage = new Page<>(pageNo, pageSize);
Long uid = null;
if (null != erbanNo){
if (null != erbanNo) {
Users u = usersService.getUserByErbanNo(erbanNo);
if (null == u){
if (null == u) {
return voPage;
}
uid = u.getUid();
}
if (Constant.ClanMode.FAMILY.equals(partitionInfo.getClanMode())){
if (Constant.ClanMode.FAMILY.equals(partitionInfo.getClanMode())) {
Page<FamilyMember> poPage = new Page<>(pageNo, pageSize);
LambdaQueryWrapper<FamilyMember> queryWrapper = Wrappers.<FamilyMember>lambdaQuery()
.eq(null != uid, FamilyMember::getUid, uid);
.eq(null != uid, FamilyMember::getUid, uid);
familyMemberMapper.selectPage(poPage, queryWrapper);
if (CollectionUtils.isEmpty(poPage.getRecords())){
if (CollectionUtils.isEmpty(poPage.getRecords())) {
return voPage;
}
Set<Long> uidSet = poPage.getRecords().stream().map(FamilyMember::getUid).collect(Collectors.toSet());
List<Long> familyMemberIdList = poPage.getRecords().stream().map(FamilyMember::getId).collect(Collectors.toList());
Map<Long, FamilyMember> familyMemberMap = poPage.getRecords().stream().collect(Collectors.toMap(FamilyMember::getId, f->f));
Map<Long, FamilyMember> familyMemberMap = poPage.getRecords().stream().collect(Collectors.toMap(FamilyMember::getId, f -> f));
List<Integer> familyIdList = familyMemberMap.values().stream().map(FamilyMember::getFamilyId).distinct().collect(Collectors.toList());
Map<Integer, Family> familyMap = familyMapper.selectByIds(familyIdList).stream().collect(Collectors.toMap(Family::getId, f->f));
Map<Integer, Family> familyMap = familyMapper.selectByIds(familyIdList).stream().collect(Collectors.toMap(Family::getId, f -> f));
List<Long> familyOwnerUid = familyMap.values().stream().map(Family::getOwnerUid).distinct().collect(Collectors.toList());
List<FamilyMemberWeekLevelReward> weekLevelRewardList = familyMemberWeekLevelRewardService.lambdaQuery()
.orderByAsc(FamilyMemberWeekLevelReward::getLevel)
.list();
Set<String> mapKeySet = familyMemberIdList.stream().map(familyMemberId->{
Set<String> mapKeySet = familyMemberIdList.stream().map(familyMemberId -> {
List<String> keyList = new ArrayList<>();
for (FamilyMemberWeekLevelReward levelReward: weekLevelRewardList){
keyList.add(String.join("_", familyMemberId.toString(), levelReward.getLevel().toString()));
for (FamilyMemberWeekLevelReward levelReward : weekLevelRewardList) {
keyList.add(String.join("_" , familyMemberId.toString(), levelReward.getLevel().toString()));
}
keyList.add(String.join("_", familyMemberId.toString(), "process"));
keyList.add(String.join("_" , familyMemberId.toString(), "process"));
return keyList;
}).flatMap(List::stream).collect(Collectors.toSet());
}).flatMap(List::stream).collect(Collectors.toSet());
Map<String, Number> weekMap = familyMemberWeekLevelRewardService.getWeekMap(cycleDate, partitionId).getAll(mapKeySet);
uidSet.addAll(familyOwnerUid);
@@ -117,16 +117,16 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
vo.setCycleDate(cycleDate);
vo.setFamilyMemberId(po.getId());
String processKey = String.join("_", po.getId().toString(), "process");
String processKey = String.join("_" , po.getId().toString(), "process");
vo.setProcessNum(BigDecimal.valueOf(weekMap.getOrDefault(processKey, 0d).doubleValue()));
int level = 0;
BigDecimal rewardNum = BigDecimal.ZERO;
BigDecimal receiverdNum = BigDecimal.ZERO;
for (FamilyMemberWeekLevelReward rewardItem: weekLevelRewardList){
String key = String.join("_", po.getId().toString(), rewardItem.getLevel().toString());
for (FamilyMemberWeekLevelReward rewardItem : weekLevelRewardList) {
String key = String.join("_" , po.getId().toString(), rewardItem.getLevel().toString());
Byte status = weekMap.getOrDefault(key, Constant.status.delete).byteValue();
if (Constant.status.valid.equals(status)){
if (Constant.status.valid.equals(status)) {
level = rewardItem.getLevel();
rewardNum = rewardNum.add(rewardItem.getRewardNum());
} else if (Constant.status.invalid.equals(status)) {
@@ -143,21 +143,21 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
vo.setUid(po.getUid());
Users u = usersMap.get(po.getUid());
if (null != u){
if (null != u) {
vo.setErbanNo(u.getErbanNo());
vo.setNick(u.getNick());
}
FamilyMember familyMember = familyMemberMap.get(po.getId());
if (null != familyMember){
if (null != familyMember) {
vo.setFamilyId(familyMember.getFamilyId());
Family family = familyMap.get(familyMember.getFamilyId());
if (null != family){
if (null != family) {
vo.setFamilyName(family.getName());
Users owner = usersMap.get(family.getOwnerUid());
if (null != owner){
if (null != owner) {
vo.setFamilyOwnerId(owner.getErbanNo());
vo.setFamilyOwnerNick(owner.getNick());
}
@@ -176,26 +176,26 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
.eq(null != uid, GuildMember::getUid, uid);
guildMemberMapper.selectPage(poPage, queryWrapper);
if (CollectionUtils.isEmpty(poPage.getRecords())){
if (CollectionUtils.isEmpty(poPage.getRecords())) {
return voPage;
}
Set<Long> uidSet = poPage.getRecords().stream().map(GuildMember::getUid).collect(Collectors.toSet());
List<Long> guildMemberIdList = poPage.getRecords().stream().map(GuildMember::getId).collect(Collectors.toList());
Map<Long, GuildMember> guildMemberMap = poPage.getRecords().stream().collect(Collectors.toMap(GuildMember::getId, f->f));
Map<Long, GuildMember> guildMemberMap = poPage.getRecords().stream().collect(Collectors.toMap(GuildMember::getId, f -> f));
List<Integer> guildIdList = guildMemberMap.values().stream().map(GuildMember::getGuildId).distinct().collect(Collectors.toList());
Map<Integer, Guild> guildMap = guildMapper.selectByIds(guildIdList).stream().collect(Collectors.toMap(Guild::getId, f->f));
Map<Integer, Guild> guildMap = guildMapper.selectByIds(guildIdList).stream().collect(Collectors.toMap(Guild::getId, f -> f));
List<Long> guildOwnerUid = guildMap.values().stream().map(Guild::getOwnerUid).distinct().collect(Collectors.toList());
List<GuildMemberWeekLevelReward> weekLevelRewardList = guildMemberWeekLevelRewardService.lambdaQuery()
.orderByAsc(GuildMemberWeekLevelReward::getLevel)
.list();
Set<String> mapKeySet = guildMemberIdList.stream().map(guildMemberId->{
Set<String> mapKeySet = guildMemberIdList.stream().map(guildMemberId -> {
List<String> keyList = new ArrayList<>();
for (GuildMemberWeekLevelReward levelReward: weekLevelRewardList){
keyList.add(String.join("_", guildMemberId.toString(), levelReward.getLevel().toString()));
for (GuildMemberWeekLevelReward levelReward : weekLevelRewardList) {
keyList.add(String.join("_" , guildMemberId.toString(), levelReward.getLevel().toString()));
}
keyList.add(String.join("_", guildMemberId.toString(), "process"));
keyList.add(String.join("_" , guildMemberId.toString(), "process"));
return keyList;
}).flatMap(List::stream).collect(Collectors.toSet());
Map<String, Number> weekMap = guildMemberWeekLevelRewardService.getWeekMap(cycleDate, partitionId).getAll(mapKeySet);
@@ -209,16 +209,16 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
vo.setCycleDate(cycleDate);
vo.setFamilyMemberId(po.getId());
String processKey = String.join("_", po.getId().toString(), "process");
String processKey = String.join("_" , po.getId().toString(), "process");
vo.setProcessNum(BigDecimal.valueOf(weekMap.getOrDefault(processKey, 0d).doubleValue()));
int level = 0;
BigDecimal rewardNum = BigDecimal.ZERO;
BigDecimal receiverdNum = BigDecimal.ZERO;
for (GuildMemberWeekLevelReward rewardItem: weekLevelRewardList){
String key = String.join("_", po.getId().toString(), rewardItem.getLevel().toString());
for (GuildMemberWeekLevelReward rewardItem : weekLevelRewardList) {
String key = String.join("_" , po.getId().toString(), rewardItem.getLevel().toString());
Byte status = weekMap.getOrDefault(key, Constant.status.delete).byteValue();
if (Constant.status.valid.equals(status)){
if (Constant.status.valid.equals(status)) {
level = rewardItem.getLevel();
rewardNum = rewardNum.add(rewardItem.getRewardNum());
} else if (Constant.status.invalid.equals(status)) {
@@ -235,21 +235,21 @@ public class FamilyMemberWeekLevelRewardRecordAdminService {
vo.setUid(po.getUid());
Users u = usersMap.get(po.getUid());
if (null != u){
if (null != u) {
vo.setErbanNo(u.getErbanNo());
vo.setNick(u.getNick());
}
GuildMember guildMember = guildMemberMap.get(po.getId());
if (null != guildMember){
if (null != guildMember) {
vo.setFamilyId(guildMember.getGuildId());
Guild guild = guildMap.get(guildMember.getGuildId());
if (null != guild){
if (null != guild) {
vo.setFamilyName(guild.getName());
Users owner = usersMap.get(guild.getOwnerUid());
if (null != owner){
if (null != owner) {
vo.setFamilyOwnerId(owner.getErbanNo());
vo.setFamilyOwnerNick(owner.getNick());
}

View File

@@ -0,0 +1,208 @@
package com.accompany.admin.service;
import com.accompany.admin.vo.FamilyMemberWeekLevelRewardStatAdminVo;
import com.accompany.business.model.guild.Guild;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.model.guild.GuildMemberWeekLevelReward;
import com.accompany.business.mybatismapper.guild.GuildMapper;
import com.accompany.business.mybatismapper.guild.GuildMemberMapper;
import com.accompany.business.service.guild.GuildMemberWeekLevelRewardService;
import com.accompany.business.service.guild.GuildService;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.constant.Constant;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.exception.AdminServiceException;
import com.accompany.core.model.PartitionInfo;
import com.accompany.core.model.Users;
import com.accompany.core.service.partition.PartitionInfoService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class GuildMemberWeekLevelRewardRecordAdminService {
@Autowired
private UsersService usersService;
@Autowired
private GuildMemberWeekLevelRewardService guildMemberWeekLevelRewardService;
@Autowired
private GuildMemberMapper guildMemberMapper;
@Autowired
private GuildMapper guildMapper;
@Autowired
private GuildService guildService;
@Autowired
private PartitionInfoService partitionInfoService;
public Page<FamilyMemberWeekLevelRewardStatAdminVo> page(int partitionId,
String cycleDate,
Integer guildId,
Long guildOwnerErbanNo,
Long erbanNo,
int pageNo, int pageSize) {
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
if (null == partitionInfo
|| (!Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())
&& !Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode()))){
throw new AdminServiceException(BusiStatus.PARAMERROR);
} else if (!StringUtils.hasText(cycleDate)) {
throw new AdminServiceException(BusiStatus.PARAMERROR);
}
Page<FamilyMemberWeekLevelRewardStatAdminVo> voPage = new Page<>(pageNo, pageSize);
if (null != guildOwnerErbanNo){
Users owner = usersService.getUserByErbanNo(guildOwnerErbanNo);
if (null == owner){
return voPage;
}
Guild g = guildService.getVaildGuildByOwnerUid(owner.getUid());
if (null == g){
return voPage;
}
guildId = g.getId();
}
Long uid = null;
if (null != erbanNo){
Users u = usersService.getUserByErbanNo(erbanNo);
if (null == u){
return voPage;
}
uid = u.getUid();
}
Page<GuildMember> poPage = new Page<>(pageNo, pageSize);
LambdaQueryWrapper<GuildMember> queryWrapper = Wrappers.<GuildMember>lambdaQuery()
.eq(null != guildId, GuildMember::getGuildId, guildId)
.eq(null != uid, GuildMember::getUid, uid);
guildMemberMapper.selectPage(poPage, queryWrapper);
if (CollectionUtils.isEmpty(poPage.getRecords())){
return voPage;
}
Set<Long> uidSet = poPage.getRecords().stream().map(GuildMember::getUid).collect(Collectors.toSet());
List<Long> guildMemberIdList = poPage.getRecords().stream().map(GuildMember::getId).toList();
Map<Long, GuildMember> guildMemberMap = poPage.getRecords().stream().collect(Collectors.toMap(GuildMember::getId, f->f));
List<Integer> guildIdList = guildMemberMap.values().stream().map(GuildMember::getGuildId).distinct().collect(Collectors.toList());
Map<Integer, Guild> guildMap = guildMapper.selectByIds(guildIdList).stream().collect(Collectors.toMap(Guild::getId, f->f));
List<Long> guildOwnerUid = guildMap.values().stream().map(Guild::getOwnerUid).distinct().toList();
List<GuildMemberWeekLevelReward> weekLevelRewardList = guildMemberWeekLevelRewardService.lambdaQuery()
.orderByAsc(GuildMemberWeekLevelReward::getLevel)
.list();
Set<String> mapKeySet = guildMemberIdList.stream().map(guildMemberId->{
List<String> keyList = new ArrayList<>();
for (GuildMemberWeekLevelReward levelReward: weekLevelRewardList){
String levelId = levelReward.getLevel().toString();
keyList.add(String.join("_", guildMemberId.toString(), levelId));
keyList.add(String.join("_", guildMemberId.toString(), levelId, "bonus"));
}
keyList.add(String.join("_", guildMemberId.toString(), "process"));
keyList.add(String.join("_", guildMemberId.toString(), "bonus", "process"));
return keyList;
}).flatMap(List::stream).collect(Collectors.toSet());
Map<String, Number> weekMap = guildMemberWeekLevelRewardService.getWeekMap(cycleDate, partitionId).getAll(mapKeySet);
uidSet.addAll(guildOwnerUid);
Map<Long, Users> usersMap = usersService.getUsersMapByUids(new ArrayList<>(uidSet));
List<FamilyMemberWeekLevelRewardStatAdminVo> voList = poPage.getRecords().stream().map(po -> {
FamilyMemberWeekLevelRewardStatAdminVo vo = new FamilyMemberWeekLevelRewardStatAdminVo();
vo.setCycleDate(cycleDate);
vo.setFamilyMemberId(po.getId());
String processKey = String.join("_", po.getId().toString(), "process");
BigDecimal processNum = BigDecimal.valueOf(weekMap.getOrDefault(processKey, 0d).doubleValue());
vo.setProcessNum(processNum);
String bonusProcessKey = String.join("_", po.getId().toString(), "bonus", "process");
Integer bonusProcessNum = weekMap.getOrDefault(bonusProcessKey, 0).intValue();
vo.setMicValidDay(bonusProcessNum);
Integer level = null;
String levelName = "-";
BigDecimal rewardNum = BigDecimal.ZERO;
BigDecimal bonusRewardNum = BigDecimal.ZERO;
BigDecimal receiverdNum = BigDecimal.ZERO;
for (GuildMemberWeekLevelReward rewardItem: weekLevelRewardList){
String key = String.join("_", po.getId().toString(), rewardItem.getLevel().toString());
Byte status = weekMap.getOrDefault(key, Constant.status.delete).byteValue();
if (Constant.status.invalid.equals(status)) {
level = rewardItem.getLevel();
levelName = rewardItem.getLevelName();
rewardNum = rewardNum.add(rewardItem.getRewardNum());
receiverdNum = receiverdNum.add(rewardItem.getRewardNum());
} else if (Constant.status.valid.equals(status)) {
level = rewardItem.getLevel();
levelName = rewardItem.getLevelName();
rewardNum = rewardNum.add(rewardItem.getRewardNum());
} else {
continue;
}
String bonusKey = String.join("_", po.getId().toString(), rewardItem.getLevel().toString(), "bonus");
Byte bonusStatus = weekMap.getOrDefault(bonusKey, Constant.status.delete).byteValue();
if (Constant.status.invalid.equals(bonusStatus)) {
bonusRewardNum = rewardNum.add(rewardItem.getBonusNum());
receiverdNum = receiverdNum.add(rewardItem.getBonusNum());
} else if (Constant.status.valid.equals(bonusStatus)) {
bonusRewardNum = rewardNum.add(rewardItem.getBonusNum());
}
}
vo.setLevel(level);
vo.setRewardNum(rewardNum);
vo.setBonusRewardNum(bonusRewardNum);
vo.setTotalRewardNum(rewardNum.add(bonusRewardNum));
vo.setReceivedNum(receiverdNum);
vo.setUid(po.getUid());
Users u = usersMap.get(po.getUid());
if (null != u){
vo.setErbanNo(u.getErbanNo());
vo.setNick(u.getNick());
}
GuildMember guildMember = guildMemberMap.get(po.getId());
if (null != guildMember){
vo.setFamilyId(guildMember.getGuildId());
Guild guild = guildMap.get(guildMember.getGuildId());
if (null != guild){
vo.setFamilyName(guild.getName());
Users owner = usersMap.get(guild.getOwnerUid());
if (null != owner){
vo.setFamilyOwnerId(owner.getErbanNo());
vo.setFamilyOwnerNick(owner.getNick());
}
}
}
return vo;
}).collect(Collectors.toList());
voPage.setRecords(voList);
voPage.setTotal(poPage.getTotal());
return voPage;
}
}

View File

@@ -0,0 +1,107 @@
package com.accompany.admin.controller;
import com.accompany.admin.service.GuildMemberWeekLevelRewardRecordAdminService;
import com.accompany.admin.vo.FamilyMemberWeekLevelRewardStatAdminVo;
import com.accompany.business.vo.guild.GuildDateCycleVo;
import com.accompany.common.result.BusiResult;
import com.accompany.common.result.PageResult;
import com.accompany.common.utils.DateTimeUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Api(tags = "主播周奖励", value = "主播周奖励")
@RequestMapping("/admin/guildMemberWeekLevelReward")
@RestController
public class GuildMemberWeekLevelRewardAdminController {
@Autowired
private GuildMemberWeekLevelRewardRecordAdminService service;
@ApiOperation("获取周期")
@GetMapping("/listCycleDate")
public BusiResult<List<GuildDateCycleVo>> listDateCycle(){
List<GuildDateCycleVo> voList = new ArrayList<>();
Date now = new Date();
for (int i = 0; i < 8; i++) {
Date date = DateTimeUtil.addDays(now, i * -7);
Date monday = DateTimeUtil.getMonday(date, 0, 0, 0);
Date sunday = DateTimeUtil.getSunday(date, 23, 59, 59);
String mondayStr = DateTimeUtil.convertDate(monday);
GuildDateCycleVo vo = new GuildDateCycleVo();
vo.setDateCycle(mondayStr);
vo.setStartDate(monday);
vo.setStartDateStr(mondayStr);
vo.setEndDate(sunday);
vo.setEndDateStr(DateTimeUtil.convertDate(sunday));
vo.setCurrentCycle(i==0);
voList.add(vo);
}
return BusiResult.success(voList);
}
@ApiOperation("查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true),
@ApiImplicitParam(name = "cycleDate", value = "周期", required = true),
@ApiImplicitParam(name = "guildId", value = "公会id"),
@ApiImplicitParam(name = "guildOwnerErbanNo", value = "公会长id"),
@ApiImplicitParam(name = "erbanNo", value = "id"),
@ApiImplicitParam(name = "pageNo", value = "页码"),
@ApiImplicitParam(name = "pageSize", value = "页长"),
})
@GetMapping("/page")
public BusiResult<PageResult<FamilyMemberWeekLevelRewardStatAdminVo>> page(int partitionId,
String cycleDate,
Integer guildId,
Long guildOwnerErbanNo,
Long erbanNo,
int pageNo, int pageSize){
Page<FamilyMemberWeekLevelRewardStatAdminVo> page = service.page(partitionId, cycleDate, guildId, guildOwnerErbanNo, erbanNo, pageNo, pageSize);
return BusiResult.success(new PageResult<>(page));
}
@SneakyThrows
@ApiOperation("导出")
@ApiImplicitParams({
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true),
@ApiImplicitParam(name = "cycleDate", value = "周期"),
@ApiImplicitParam(name = "guildId", value = "公会id"),
@ApiImplicitParam(name = "guildOwnerErbanNo", value = "公会长id"),
@ApiImplicitParam(name = "erbanNo", value = "id"),
})
@GetMapping("/export")
public void export(HttpServletResponse response,
int partitionId,
String cycleDate,
Integer guildId,
Long guildOwnerErbanNo,
Long erbanNo){
Page<FamilyMemberWeekLevelRewardStatAdminVo> page = service.page(partitionId, cycleDate, guildId, guildOwnerErbanNo, erbanNo, -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(), FamilyMemberWeekLevelRewardStatAdminVo.class).sheet("主播周奖励记录").doWrite(page.getRecords());
}
}