日常任务-主播周奖励英语2区
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
}
|
@@ -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());
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
}
|
@@ -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());
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user