家族-后台-sql
This commit is contained in:
@@ -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;
|
||||
|
@@ -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)) {
|
||||
|
@@ -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());
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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 >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
and fg.create_time <= #{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` >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
and `date` <= #{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}
|
||||
|
@@ -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"
|
||||
|
Reference in New Issue
Block a user