家族-后台-sql
This commit is contained in:
@@ -35,6 +35,9 @@ public class FamilyMemberWageStatAdminVo extends SimpleFamilyMemberVo {
|
|||||||
@ApiModelProperty("金币工资")
|
@ApiModelProperty("金币工资")
|
||||||
@ExcelProperty("金币工资")
|
@ExcelProperty("金币工资")
|
||||||
private BigDecimal goldWage = BigDecimal.ZERO;
|
private BigDecimal goldWage = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("钻石工资")
|
||||||
|
@ExcelProperty("钻石工资")
|
||||||
|
private BigDecimal diamondWage = BigDecimal.ZERO;
|
||||||
@ApiModelProperty("代理工资")
|
@ApiModelProperty("代理工资")
|
||||||
@ExcelProperty("代理工资")
|
@ExcelProperty("代理工资")
|
||||||
private BigDecimal agentWage = BigDecimal.ZERO;
|
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.family.FamilyService;
|
||||||
import com.accompany.business.service.room.FamilyMemberRoomMicRecordService;
|
import com.accompany.business.service.room.FamilyMemberRoomMicRecordService;
|
||||||
import com.accompany.business.service.user.UsersService;
|
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.FamilyIncomeAdminVo;
|
||||||
import com.accompany.business.vo.family.FamilyMemberIncomeAdminVo;
|
import com.accompany.business.vo.family.FamilyMemberIncomeAdminVo;
|
||||||
import com.accompany.common.status.BusiStatus;
|
import com.accompany.common.status.BusiStatus;
|
||||||
import com.accompany.common.utils.DateTimeUtil;
|
import com.accompany.common.utils.DateTimeUtil;
|
||||||
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
import com.accompany.core.exception.AdminServiceException;
|
import com.accompany.core.exception.AdminServiceException;
|
||||||
import com.accompany.core.model.PartitionInfo;
|
import com.accompany.core.model.PartitionInfo;
|
||||||
import com.accompany.core.model.Users;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -54,6 +57,9 @@ public class FamilyIncomeAdminService {
|
|||||||
}
|
}
|
||||||
uid = u.getUid();
|
uid = u.getUid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||||
|
|
||||||
Date startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
|
Date startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
|
||||||
startDate = DateTimeUtil.convertDate(startTime);
|
startDate = DateTimeUtil.convertDate(startTime);
|
||||||
Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
|
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 startTime = DateTimeUtil.getBeginTimeOfDay(DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
|
||||||
Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
|
Date endTime = DateTimeUtil.getEndTimeOfDay(DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN));
|
||||||
Page<FamilyMemberIncomeAdminVo> page = new Page<>(pageNum, pageSize);
|
Page<FamilyMemberIncomeAdminVo> page = new Page<>(pageNum, pageSize);
|
||||||
|
|
||||||
page = familyGiftRecordService.pageFamilyMemberData(page, startTime, endTime, familyId);
|
page = familyGiftRecordService.pageFamilyMemberData(page, startTime, endTime, familyId);
|
||||||
List<FamilyMemberIncomeAdminVo> voList = page.getRecords();
|
List<FamilyMemberIncomeAdminVo> voList = page.getRecords();
|
||||||
if (CollectionUtils.isEmpty(voList)) {
|
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.FamilyMemberWageStatAdminVo;
|
||||||
import com.accompany.admin.vo.family.FamilyWageStatAdminVo;
|
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.model.family.*;
|
||||||
import com.accompany.business.mybatismapper.family.FamilyMemberDiamondSettlementRecordMapper;
|
import com.accompany.business.mybatismapper.family.FamilyMemberDiamondSettlementRecordMapper;
|
||||||
import com.accompany.business.service.family.*;
|
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.room.FamilyMemberRoomMicRecordService;
|
||||||
import com.accompany.business.service.user.UsersService;
|
import com.accompany.business.service.user.UsersService;
|
||||||
import com.accompany.business.util.HalfMonthCycleTimeUtil;
|
import com.accompany.business.util.HalfMonthCycleTimeUtil;
|
||||||
import com.accompany.business.vo.family.FamilyUserIncomeItemVo;
|
|
||||||
import com.accompany.common.status.BusiStatus;
|
import com.accompany.common.status.BusiStatus;
|
||||||
import com.accompany.common.utils.DateTimeUtil;
|
import com.accompany.common.utils.DateTimeUtil;
|
||||||
import com.accompany.core.enumeration.PartitionEnum;
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
@@ -26,7 +23,6 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -50,8 +46,6 @@ public class FamilyWageStatAdminService {
|
|||||||
private FamilyMemberRoomMicRecordService familyMemberRoomMicRecordService;
|
private FamilyMemberRoomMicRecordService familyMemberRoomMicRecordService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FamilyMemberDiamondSettlementRecordMapper familyMemberDiamondSettlementRecordMapper;
|
private FamilyMemberDiamondSettlementRecordMapper familyMemberDiamondSettlementRecordMapper;
|
||||||
@Autowired
|
|
||||||
private UserPurseService userPurseService;
|
|
||||||
|
|
||||||
public Page<FamilyWageStatAdminVo> pageFamilyWage(Long erbanNo, Integer partitionId, String cycleDate,
|
public Page<FamilyWageStatAdminVo> pageFamilyWage(Long erbanNo, Integer partitionId, String cycleDate,
|
||||||
long pageNum, long pageSize) {
|
long pageNum, long pageSize) {
|
||||||
@@ -142,6 +136,7 @@ public class FamilyWageStatAdminService {
|
|||||||
|
|
||||||
BigDecimal totalMemberWage = BigDecimal.ZERO;
|
BigDecimal totalMemberWage = BigDecimal.ZERO;
|
||||||
BigDecimal totalAgentWage = BigDecimal.ZERO;
|
BigDecimal totalAgentWage = BigDecimal.ZERO;
|
||||||
|
BigDecimal totalDiamondRemain = BigDecimal.ZERO;
|
||||||
BigDecimal totalDiamondBonus = BigDecimal.ZERO;
|
BigDecimal totalDiamondBonus = BigDecimal.ZERO;
|
||||||
|
|
||||||
for (Long memberId: memberIdList){
|
for (Long memberId: memberIdList){
|
||||||
@@ -150,6 +145,11 @@ public class FamilyWageStatAdminService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BigDecimal diamondRemain = diamondRemainMap.get(memberId);
|
||||||
|
if (null != diamondRemain){
|
||||||
|
totalDiamondRemain = totalDiamondRemain.add(diamondRemain);
|
||||||
|
}
|
||||||
|
|
||||||
BigDecimal goldWageLevel = goldWageMap.headMap(goldIncome, true).lastKey();
|
BigDecimal goldWageLevel = goldWageMap.headMap(goldIncome, true).lastKey();
|
||||||
FamilyWage familyWage = goldWageMap.get(goldWageLevel);
|
FamilyWage familyWage = goldWageMap.get(goldWageLevel);
|
||||||
if (null == familyWage){
|
if (null == familyWage){
|
||||||
@@ -159,7 +159,6 @@ public class FamilyWageStatAdminService {
|
|||||||
totalMemberWage = totalMemberWage.add(familyWage.getMemberWage());
|
totalMemberWage = totalMemberWage.add(familyWage.getMemberWage());
|
||||||
totalAgentWage = totalAgentWage.add(familyWage.getOwnerWage());
|
totalAgentWage = totalAgentWage.add(familyWage.getOwnerWage());
|
||||||
|
|
||||||
BigDecimal diamondRemain = diamondRemainMap.get(memberId);
|
|
||||||
if (null != diamondRemain && diamondRemain.compareTo(familyWage.getDiamondNumThreshold()) >= 0){
|
if (null != diamondRemain && diamondRemain.compareTo(familyWage.getDiamondNumThreshold()) >= 0){
|
||||||
totalDiamondBonus = totalDiamondBonus.add(familyWage.getDiamondBonus());
|
totalDiamondBonus = totalDiamondBonus.add(familyWage.getDiamondBonus());
|
||||||
}
|
}
|
||||||
@@ -167,6 +166,7 @@ public class FamilyWageStatAdminService {
|
|||||||
|
|
||||||
vo.setGoldWage(totalMemberWage);
|
vo.setGoldWage(totalMemberWage);
|
||||||
vo.setAgentWage(totalAgentWage);
|
vo.setAgentWage(totalAgentWage);
|
||||||
|
vo.setDiamondRemain(totalDiamondRemain);
|
||||||
vo.setDiamondWage(totalDiamondBonus);
|
vo.setDiamondWage(totalDiamondBonus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,8 +269,14 @@ public class FamilyWageStatAdminService {
|
|||||||
vo.setAgentWage(familyWage.getOwnerWage());
|
vo.setAgentWage(familyWage.getOwnerWage());
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal diamondRemain = diamondRemainMap.get(familyMember.getUid());
|
BigDecimal diamondRemain = diamondRemainMap.get(familyMember.getId());
|
||||||
vo.setDiamondRemain(null != diamondRemain? diamondRemain.toString(): "-");
|
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);
|
Long micRemainTime = micUpTimeMap.getOrDefault(familyMember.getUid(), 0L);
|
||||||
vo.setMicRemainTime(!exportFormatter? DateTimeUtil.getTimeFormat(micRemainTime.intValue()): micRemainTime.toString());
|
vo.setMicRemainTime(!exportFormatter? DateTimeUtil.getTimeFormat(micRemainTime.intValue()): micRemainTime.toString());
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
package com.accompany.business.vo.family;
|
package com.accompany.business.vo.family;
|
||||||
|
|
||||||
import com.accompany.business.vo.family.SimpleFamilyMemberVo;
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@@ -15,9 +14,6 @@ public class FamilyMemberIncomeAdminVo extends SimpleFamilyMemberVo {
|
|||||||
@ExcelProperty("开播时长(秒)")
|
@ExcelProperty("开播时长(秒)")
|
||||||
@ApiModelProperty("开播时长")
|
@ApiModelProperty("开播时长")
|
||||||
private String micRemainTime;
|
private String micRemainTime;
|
||||||
@ExcelProperty("送礼用户数")
|
|
||||||
@ApiModelProperty("送礼用户数")
|
|
||||||
private Long sendGiftUserNum = 0L;
|
|
||||||
@ExcelProperty("金币收入")
|
@ExcelProperty("金币收入")
|
||||||
@ApiModelProperty("金币收入")
|
@ApiModelProperty("金币收入")
|
||||||
private Long goldIncome = 0L;
|
private Long goldIncome = 0L;
|
||||||
|
@@ -149,14 +149,14 @@ public class FamilyMemberRoomMicRecordService extends ServiceImpl<FamilyMemberRo
|
|||||||
Date upTime = null;
|
Date upTime = null;
|
||||||
Date startTime = null;
|
Date startTime = null;
|
||||||
if (StringUtils.isNotBlank(startDate)){
|
if (StringUtils.isNotBlank(startDate)){
|
||||||
startTime = DateTimeUtil.convertStrToDate(startDate);
|
startTime = DateTimeUtil.convertStrToDate(startDate, DateTimeUtil.DEFAULT_DATE_PATTERN);
|
||||||
upTime = DateTimeUtil.addDays(startTime, -1);
|
upTime = DateTimeUtil.addDays(startTime, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Date downTime = null;
|
Date downTime = null;
|
||||||
Date endTime = null;
|
Date endTime = null;
|
||||||
if (StringUtils.isNotBlank(startDate)){
|
if (StringUtils.isNotBlank(startDate)){
|
||||||
endTime = DateTimeUtil.convertStrToDate(endDate);
|
endTime = DateTimeUtil.convertStrToDate(endDate, DateTimeUtil.DEFAULT_DATE_PATTERN);
|
||||||
downTime = DateTimeUtil.addDays(endTime, 1);
|
downTime = DateTimeUtil.addDays(endTime, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -121,28 +121,30 @@
|
|||||||
<select id="pageFamilyMemberData"
|
<select id="pageFamilyMemberData"
|
||||||
resultType="com.accompany.business.vo.family.FamilyMemberIncomeAdminVo">
|
resultType="com.accompany.business.vo.family.FamilyMemberIncomeAdminVo">
|
||||||
SELECT
|
SELECT
|
||||||
gm.family_member_id familyMemberId,
|
gm.id familyMemberId,
|
||||||
gm.family_id familyId,
|
gm.family_id familyId,
|
||||||
gm.uid uid,
|
gm.uid uid,
|
||||||
|
gm.role_type roleType,
|
||||||
u2.erban_no erbanNo,
|
u2.erban_no erbanNo,
|
||||||
u2.nick nick,
|
u2.nick nick,
|
||||||
gm.create_time createTime,
|
gm.create_time createTime,
|
||||||
gm.enable enable,
|
gm.enable enable,
|
||||||
f.`name` familyName,
|
f.`name` familyName,
|
||||||
sum(ifnull(fg.total_gold_num, 0)) goldIncome,
|
sum(ifnull(fms.`serial_value`, 0)) goldIncome
|
||||||
count(distinct sender_uid) sendGiftUserNum
|
|
||||||
FROM
|
FROM
|
||||||
family_member gm
|
family_member gm
|
||||||
left join family f on f.id = gm.family_id
|
left join family f on f.id = gm.family_id
|
||||||
LEFT JOIN users u2 ON gm.uid = u2.uid
|
LEFT JOIN users u2 ON gm.uid = u2.uid
|
||||||
LEFT JOIN family_gift_record fg ON fg.family_id = gm.family_id
|
LEFT JOIN (select family_member_id, sum(serial_value) `serial_value` from family_member_serial
|
||||||
AND fg.receiver_uid = gm.uid
|
where 1=1
|
||||||
<if test="startTime != null">
|
<if test="familyId != null">and family_id = #{familyId}</if>
|
||||||
and fg.create_time >= #{startTime}
|
<if test="startTime != null">
|
||||||
</if>
|
and `date` >= #{startTime}
|
||||||
<if test="endTime != null">
|
</if>
|
||||||
and fg.create_time <= #{endTime}
|
<if test="endTime != null">
|
||||||
</if>
|
and `date` <= #{endTime}
|
||||||
|
</if>
|
||||||
|
group by family_member_id ) fms ON fms.family_member_id = gm.id
|
||||||
<where>
|
<where>
|
||||||
<if test="familyId != null">
|
<if test="familyId != null">
|
||||||
and gm.family_id = #{familyId}
|
and gm.family_id = #{familyId}
|
||||||
|
@@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
<select id="listTotalDiamondFromUserPurseInFamilyIdList"
|
<select id="listTotalDiamondFromUserPurseInFamilyIdList"
|
||||||
resultType="com.accompany.business.model.family.FamilyMemberDiamondSettlementRecord">
|
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
|
from family_member fm
|
||||||
inner join user_purse up on fm.uid = up.uid
|
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>
|
where fm.family_id in <foreach collection="familyIdList" item="familyId" separator="," open="(" close=")">#{familyId}</foreach>
|
||||||
and fm.enable = 1
|
and fm.enable = 1
|
||||||
group by fm.family_id, fm.family_member_id
|
group by fm.family_id, fm.id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="listTotalDiamondSettlementInFamilyIdList"
|
<select id="listTotalDiamondSettlementInFamilyIdList"
|
||||||
@@ -26,12 +26,12 @@
|
|||||||
|
|
||||||
<select id="listTotalDiamondFromUserPurseInFamilyMemberIdList"
|
<select id="listTotalDiamondFromUserPurseInFamilyMemberIdList"
|
||||||
resultType="com.accompany.business.model.family.FamilyMemberDiamondSettlementRecord">
|
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
|
from family_member fm
|
||||||
inner join user_purse up on fm.uid = up.uid
|
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
|
and fm.enable = 1
|
||||||
group by fm.family_member_id
|
group by fm.id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="listTotalDiamondSettlementInFamilyMemberIdList"
|
<select id="listTotalDiamondSettlementInFamilyMemberIdList"
|
||||||
|
Reference in New Issue
Block a user