家族-后台-sql

This commit is contained in:
2025-09-23 22:50:14 +08:00
parent d692003d1a
commit b66246aaa5
7 changed files with 45 additions and 31 deletions

View File

@@ -35,6 +35,9 @@ public class FamilyMemberWageStatAdminVo extends SimpleFamilyMemberVo {
@ApiModelProperty("金币工资")
@ExcelProperty("金币工资")
private BigDecimal goldWage = BigDecimal.ZERO;
@ApiModelProperty("钻石工资")
@ExcelProperty("钻石工资")
private BigDecimal diamondWage = BigDecimal.ZERO;
@ApiModelProperty("代理工资")
@ExcelProperty("代理工资")
private BigDecimal agentWage = BigDecimal.ZERO;

View File

@@ -6,10 +6,12 @@ import com.accompany.business.service.family.FamilyMemberService;
import com.accompany.business.service.family.FamilyService;
import com.accompany.business.service.room.FamilyMemberRoomMicRecordService;
import com.accompany.business.service.user.UsersService;
import com.accompany.business.util.HalfMonthCycleTimeUtil;
import com.accompany.business.vo.family.FamilyIncomeAdminVo;
import com.accompany.business.vo.family.FamilyMemberIncomeAdminVo;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.exception.AdminServiceException;
import com.accompany.core.model.PartitionInfo;
import com.accompany.core.model.Users;
@@ -20,6 +22,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -54,6 +57,9 @@ public class FamilyIncomeAdminService {
}
uid = u.getUid();
}
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
Date startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
startDate = DateTimeUtil.convertDate(startTime);
Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
@@ -86,6 +92,7 @@ public class FamilyIncomeAdminService {
Date startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
Page<FamilyMemberIncomeAdminVo> page = new Page<>(pageNum, pageSize);
page = familyGiftRecordService.pageFamilyMemberData(page, startTime, endTime, familyId);
List<FamilyMemberIncomeAdminVo> voList = page.getRecords();
if (CollectionUtils.isEmpty(voList)) {

View File

@@ -2,8 +2,6 @@ package com.accompany.admin.service.family;
import com.accompany.admin.vo.family.FamilyMemberWageStatAdminVo;
import com.accompany.admin.vo.family.FamilyWageStatAdminVo;
import com.accompany.business.constant.family.FamilyConstant;
import com.accompany.business.model.UserPurse;
import com.accompany.business.model.family.*;
import com.accompany.business.mybatismapper.family.FamilyMemberDiamondSettlementRecordMapper;
import com.accompany.business.service.family.*;
@@ -11,7 +9,6 @@ import com.accompany.business.service.purse.UserPurseService;
import com.accompany.business.service.room.FamilyMemberRoomMicRecordService;
import com.accompany.business.service.user.UsersService;
import com.accompany.business.util.HalfMonthCycleTimeUtil;
import com.accompany.business.vo.family.FamilyUserIncomeItemVo;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.PartitionEnum;
@@ -26,7 +23,6 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -50,8 +46,6 @@ public class FamilyWageStatAdminService {
private FamilyMemberRoomMicRecordService familyMemberRoomMicRecordService;
@Autowired
private FamilyMemberDiamondSettlementRecordMapper familyMemberDiamondSettlementRecordMapper;
@Autowired
private UserPurseService userPurseService;
public Page<FamilyWageStatAdminVo> pageFamilyWage(Long erbanNo, Integer partitionId, String cycleDate,
long pageNum, long pageSize) {
@@ -142,6 +136,7 @@ public class FamilyWageStatAdminService {
BigDecimal totalMemberWage = BigDecimal.ZERO;
BigDecimal totalAgentWage = BigDecimal.ZERO;
BigDecimal totalDiamondRemain = BigDecimal.ZERO;
BigDecimal totalDiamondBonus = BigDecimal.ZERO;
for (Long memberId: memberIdList){
@@ -150,6 +145,11 @@ public class FamilyWageStatAdminService {
continue;
}
BigDecimal diamondRemain = diamondRemainMap.get(memberId);
if (null != diamondRemain){
totalDiamondRemain = totalDiamondRemain.add(diamondRemain);
}
BigDecimal goldWageLevel = goldWageMap.headMap(goldIncome, true).lastKey();
FamilyWage familyWage = goldWageMap.get(goldWageLevel);
if (null == familyWage){
@@ -159,7 +159,6 @@ public class FamilyWageStatAdminService {
totalMemberWage = totalMemberWage.add(familyWage.getMemberWage());
totalAgentWage = totalAgentWage.add(familyWage.getOwnerWage());
BigDecimal diamondRemain = diamondRemainMap.get(memberId);
if (null != diamondRemain && diamondRemain.compareTo(familyWage.getDiamondNumThreshold()) >= 0){
totalDiamondBonus = totalDiamondBonus.add(familyWage.getDiamondBonus());
}
@@ -167,6 +166,7 @@ public class FamilyWageStatAdminService {
vo.setGoldWage(totalMemberWage);
vo.setAgentWage(totalAgentWage);
vo.setDiamondRemain(totalDiamondRemain);
vo.setDiamondWage(totalDiamondBonus);
}
@@ -269,8 +269,14 @@ public class FamilyWageStatAdminService {
vo.setAgentWage(familyWage.getOwnerWage());
}
BigDecimal diamondRemain = diamondRemainMap.get(familyMember.getUid());
vo.setDiamondRemain(null != diamondRemain? diamondRemain.toString(): "-");
BigDecimal diamondRemain = diamondRemainMap.get(familyMember.getId());
if (null != diamondRemain){
vo.setDiamondRemain(diamondRemain.toString());
if (null != familyWage && diamondRemain.compareTo(familyWage.getDiamondBonus()) >= 0) {
vo.setDiamondWage(familyWage.getDiamondBonus());
}
}
Long micRemainTime = micUpTimeMap.getOrDefault(familyMember.getUid(), 0L);
vo.setMicRemainTime(!exportFormatter? DateTimeUtil.getTimeFormat(micRemainTime.intValue()): micRemainTime.toString());

View File

@@ -1,6 +1,5 @@
package com.accompany.business.vo.family;
import com.accompany.business.vo.family.SimpleFamilyMemberVo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -15,9 +14,6 @@ public class FamilyMemberIncomeAdminVo extends SimpleFamilyMemberVo {
@ExcelProperty("开播时长(秒)")
@ApiModelProperty("开播时长")
private String micRemainTime;
@ExcelProperty("送礼用户数")
@ApiModelProperty("送礼用户数")
private Long sendGiftUserNum = 0L;
@ExcelProperty("金币收入")
@ApiModelProperty("金币收入")
private Long goldIncome = 0L;

View File

@@ -149,14 +149,14 @@ public class FamilyMemberRoomMicRecordService extends ServiceImpl<FamilyMemberRo
Date upTime = null;
Date startTime = null;
if (StringUtils.isNotBlank(startDate)){
startTime = DateTimeUtil.convertStrToDate(startDate);
startTime = DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN);
upTime = DateTimeUtil.addDays(startTime, -1);
}
Date downTime = null;
Date endTime = null;
if (StringUtils.isNotBlank(startDate)){
endTime = DateTimeUtil.convertStrToDate(endDate);
endTime = DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN);
downTime = DateTimeUtil.addDays(endTime, 1);
}

View File

@@ -121,28 +121,30 @@
<select id="pageFamilyMemberData"
resultType="com.accompany.business.vo.family.FamilyMemberIncomeAdminVo">
SELECT
gm.family_member_id familyMemberId,
gm.id familyMemberId,
gm.family_id familyId,
gm.uid uid,
gm.role_type roleType,
u2.erban_no erbanNo,
u2.nick nick,
gm.create_time createTime,
gm.enable enable,
f.`name` familyName,
sum(ifnull(fg.total_gold_num, 0)) goldIncome,
count(distinct sender_uid) sendGiftUserNum
sum(ifnull(fms.`serial_value`, 0)) goldIncome
FROM
family_member gm
left join family f on f.id = gm.family_id
LEFT JOIN users u2 ON gm.uid = u2.uid
LEFT JOIN family_gift_record fg ON fg.family_id = gm.family_id
AND fg.receiver_uid = gm.uid
<if test="startTime != null">
and fg.create_time &gt;= #{startTime}
</if>
<if test="endTime != null">
and fg.create_time &lt;= #{endTime}
</if>
LEFT JOIN (select family_member_id, sum(serial_value) `serial_value` from family_member_serial
where 1=1
<if test="familyId != null">and family_id = #{familyId}</if>
<if test="startTime != null">
and `date` &gt;= #{startTime}
</if>
<if test="endTime != null">
and `date` &lt;= #{endTime}
</if>
group by family_member_id ) fms ON fms.family_member_id = gm.id
<where>
<if test="familyId != null">
and gm.family_id = #{familyId}

View File

@@ -4,12 +4,12 @@
<select id="listTotalDiamondFromUserPurseInFamilyIdList"
resultType="com.accompany.business.model.family.FamilyMemberDiamondSettlementRecord">
select fm.family_id, fm.family_member_id, sum(up.golds) `diamond_num`
select fm.family_id, fm.id `familyMemberId`, sum(up.golds) `diamond_num`
from family_member fm
inner join user_purse up on fm.uid = up.uid
where fm.family_id in <foreach collection="familyIdList" item="familyId" separator="," open="(" close=")">#{familyId}</foreach>
and fm.enable = 1
group by fm.family_id, fm.family_member_id
group by fm.family_id, fm.id
</select>
<select id="listTotalDiamondSettlementInFamilyIdList"
@@ -26,12 +26,12 @@
<select id="listTotalDiamondFromUserPurseInFamilyMemberIdList"
resultType="com.accompany.business.model.family.FamilyMemberDiamondSettlementRecord">
select fm.family_member_id, sum(up.golds) `diamond_num`
select fm.id `familyMemberId`, sum(up.golds) `diamond_num`
from family_member fm
inner join user_purse up on fm.uid = up.uid
where fm.family_member_id in <foreach collection="familyMemberIdList" item="uid" separator="," open="(" close=")">#{uid}</foreach>
where fm.id in <foreach collection="familyMemberIdList" item="uid" separator="," open="(" close=")">#{uid}</foreach>
and fm.enable = 1
group by fm.family_member_id
group by fm.id
</select>
<select id="listTotalDiamondSettlementInFamilyMemberIdList"