From b66246aaa50f6e81fd63aa05bc96badc4d11b4dc Mon Sep 17 00:00:00 2001 From: khalil <842328916@qq.com> Date: Tue, 23 Sep 2025 22:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B6=E6=97=8F-=E5=90=8E=E5=8F=B0-sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../family/FamilyMemberWageStatAdminVo.java | 3 +++ .../family/FamilyIncomeAdminService.java | 7 ++++++ .../family/FamilyWageStatAdminService.java | 24 ++++++++++++------- .../vo/family/FamilyMemberIncomeAdminVo.java | 4 ---- .../FamilyMemberRoomMicRecordService.java | 4 ++-- .../sqlmappers/FamilyGiftRecordMapper.xml | 24 ++++++++++--------- ...ilyMemberDiamondSettlementRecordMapper.xml | 10 ++++---- 7 files changed, 45 insertions(+), 31 deletions(-) diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/family/FamilyMemberWageStatAdminVo.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/family/FamilyMemberWageStatAdminVo.java index 0a8ea9bd5..a11c1839d 100644 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/family/FamilyMemberWageStatAdminVo.java +++ b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/family/FamilyMemberWageStatAdminVo.java @@ -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; diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyIncomeAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyIncomeAdminService.java index 45a420c66..6869e08bc 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyIncomeAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyIncomeAdminService.java @@ -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 page = new Page<>(pageNum, pageSize); + page = familyGiftRecordService.pageFamilyMemberData(page, startTime, endTime, familyId); List voList = page.getRecords(); if (CollectionUtils.isEmpty(voList)) { diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyWageStatAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyWageStatAdminService.java index 1cb6229c8..dd79ab338 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyWageStatAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/family/FamilyWageStatAdminService.java @@ -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 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()); diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/family/FamilyMemberIncomeAdminVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/family/FamilyMemberIncomeAdminVo.java index a4f3a3318..81cc68703 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/family/FamilyMemberIncomeAdminVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/family/FamilyMemberIncomeAdminVo.java @@ -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; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/room/FamilyMemberRoomMicRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/room/FamilyMemberRoomMicRecordService.java index 3b2b2b9e8..3c7ade4a8 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/room/FamilyMemberRoomMicRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/room/FamilyMemberRoomMicRecordService.java @@ -149,14 +149,14 @@ public class FamilyMemberRoomMicRecordService extends ServiceImpl 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 - - and fg.create_time >= #{startTime} - - - and fg.create_time <= #{endTime} - + LEFT JOIN (select family_member_id, sum(serial_value) `serial_value` from family_member_serial + where 1=1 + and family_id = #{familyId} + + and `date` >= #{startTime} + + + and `date` <= #{endTime} + + group by family_member_id ) fms ON fms.family_member_id = gm.id and gm.family_id = #{familyId} diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/FamilyMemberDiamondSettlementRecordMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/FamilyMemberDiamondSettlementRecordMapper.xml index c45a9712e..4e189d1a1 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/FamilyMemberDiamondSettlementRecordMapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/FamilyMemberDiamondSettlementRecordMapper.xml @@ -4,12 +4,12 @@