Compare commits
2 Commits
master
...
72581ab9d5
Author | SHA1 | Date | |
---|---|---|---|
72581ab9d5 | |||
3a985c1869 |
@@ -1148,4 +1148,14 @@ public class DateTimeUtil {
|
|||||||
return Date.from(eastEightZonedDateTime.toInstant());
|
return Date.from(eastEightZonedDateTime.toInstant());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Date convertToEastEightZone(Date date, String originalZoneId) {
|
||||||
|
ZonedDateTime cycleBeginDateZoneDate = DateTimeUtil.convertWithZoneId(date, originalZoneId);
|
||||||
|
// 2. 转换为东八区时间
|
||||||
|
ZonedDateTime eastEightZonedDateTime = cycleBeginDateZoneDate
|
||||||
|
.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));
|
||||||
|
|
||||||
|
// 3. 返回Date对象
|
||||||
|
return Date.from(eastEightZonedDateTime.toInstant());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -82,4 +82,7 @@ public interface ChargeRecordMapperMgr {
|
|||||||
@Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
@Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||||
List<ChargeRecord> getAllChargeUserAmount(@Param("list") List<Long> uids, @Param("startTime") Date startTime,
|
List<ChargeRecord> getAllChargeUserAmount(@Param("list") List<Long> uids, @Param("startTime") Date startTime,
|
||||||
@Param("endTime") Date endTime);
|
@Param("endTime") Date endTime);
|
||||||
|
|
||||||
|
List<ChargeRecord> getRefundGroupUidDateMap(@Param("uids") List<Long> uids, @Param("startTime") Date startTime,
|
||||||
|
@Param("endTime") Date endTime);
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,11 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ChargeRecordService extends BaseService {
|
public class ChargeRecordService extends BaseService {
|
||||||
@@ -177,4 +181,12 @@ public class ChargeRecordService extends BaseService {
|
|||||||
public ChargeRecordMapper getChargeRecordMapper() {
|
public ChargeRecordMapper getChargeRecordMapper() {
|
||||||
return chargeRecordMapper;
|
return chargeRecordMapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Long, ChargeRecord> getRefundGroupUidDateMap(List<Long> uids, Date startTime, Date endTime) {
|
||||||
|
List<ChargeRecord> refundGroupUidDateMap = chargeRecordMapperMgr.getRefundGroupUidDateMap(uids, startTime, endTime);
|
||||||
|
if (CollectionUtils.isEmpty(refundGroupUidDateMap)) {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
return refundGroupUidDateMap.stream().collect(Collectors.toMap(ChargeRecord::getUid, Function.identity()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -404,4 +404,18 @@
|
|||||||
group by uid
|
group by uid
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getRefundGroupUidDateMap" resultType="com.accompany.payment.model.ChargeRecord">
|
||||||
|
select uid,
|
||||||
|
sum(amount) amount,
|
||||||
|
sum(total_gold) totalGold
|
||||||
|
from charge_record
|
||||||
|
where refund = 1
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
and create_time < #{endTime}
|
||||||
|
<foreach collection="uids" item="u" open="and uid in(" separator="," close=")">
|
||||||
|
#{u}
|
||||||
|
</foreach>
|
||||||
|
group by uid
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
@@ -53,6 +53,10 @@ public class GuildDiamondStatisticsPolicy2Settle implements Serializable {
|
|||||||
* 公会长薪资
|
* 公会长薪资
|
||||||
*/
|
*/
|
||||||
private BigDecimal ownerSalary;
|
private BigDecimal ownerSalary;
|
||||||
|
/**
|
||||||
|
* 问题薪资
|
||||||
|
*/
|
||||||
|
private BigDecimal issueSalary;
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
|
@@ -0,0 +1,22 @@
|
|||||||
|
package com.accompany.business.vo.guildpolicy;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GuildPolicy2AgencyVo {
|
||||||
|
@ApiModelProperty("周期开始日期yyyy-MM-dd")
|
||||||
|
private String cycleDate;
|
||||||
|
|
||||||
|
@ApiModelProperty("钻石数量")
|
||||||
|
private BigDecimal diamondNum = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ApiModelProperty("成员数据")
|
||||||
|
private List<GuildPolicy2MemberVo> memberData = new ArrayList<>();
|
||||||
|
|
||||||
|
private GuildPolicy2SalaryVo guildSalary = new GuildPolicy2SalaryVo();
|
||||||
|
}
|
@@ -14,4 +14,12 @@ public class GuildPolicy2MemberVo extends SimpleUserVo {
|
|||||||
private BigDecimal diamondNum;
|
private BigDecimal diamondNum;
|
||||||
@ApiModelProperty("有效天数")
|
@ApiModelProperty("有效天数")
|
||||||
private Integer micDay;
|
private Integer micDay;
|
||||||
|
@ApiModelProperty("钻石薪资")
|
||||||
|
private BigDecimal diamondSalary = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("时长薪资")
|
||||||
|
private BigDecimal micSalary = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("公会长薪资")
|
||||||
|
private BigDecimal ownerSalary = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("问题薪资")
|
||||||
|
private BigDecimal issueSalary = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
@@ -10,23 +10,22 @@ import java.util.List;
|
|||||||
|
|
||||||
@ApiModel
|
@ApiModel
|
||||||
@Data
|
@Data
|
||||||
public class GuildPolicy2Vo {
|
public class GuildPolicy2MyVo {
|
||||||
@ApiModelProperty("周期开始日期yyyy-MM-dd")
|
@ApiModelProperty("周期开始日期yyyy-MM-dd")
|
||||||
private String cycleDate;
|
private String cycleDate;
|
||||||
|
@ApiModelProperty("当前")
|
||||||
|
private String curCycleDate;
|
||||||
|
|
||||||
@ApiModelProperty("钻石数量")
|
@ApiModelProperty("钻石数量")
|
||||||
private BigDecimal diamondNum = BigDecimal.ZERO;
|
private BigDecimal diamondNum = BigDecimal.ZERO;
|
||||||
|
|
||||||
@ApiModelProperty("公会钻石数量")
|
|
||||||
private BigDecimal guildDiamondNum = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
@ApiModelProperty("上麦有效天数")
|
@ApiModelProperty("上麦有效天数")
|
||||||
private Integer micDay = 0;
|
private Integer micDay = 0;
|
||||||
|
|
||||||
@ApiModelProperty("成员数据")
|
|
||||||
private List<GuildPolicy2MemberVo> memberData = new ArrayList<>();
|
|
||||||
|
|
||||||
@ApiModelProperty("我的数据")
|
@ApiModelProperty("我的数据")
|
||||||
private List<GuildPolicy2PersonalVo> myData = new ArrayList<>();
|
private List<GuildPolicy2PersonalVo> myData = new ArrayList<>();
|
||||||
|
|
||||||
|
@ApiModelProperty("我的薪资")
|
||||||
|
private GuildPolicy2SalaryVo mySalary;
|
||||||
|
|
||||||
}
|
}
|
@@ -0,0 +1,45 @@
|
|||||||
|
package com.accompany.business.vo.guildpolicy;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@ApiModel
|
||||||
|
@Data
|
||||||
|
public class GuildPolicy2SalaryVo {
|
||||||
|
@ApiModelProperty("钻石薪资")
|
||||||
|
private BigDecimal diamondSalary = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("时长薪资")
|
||||||
|
private BigDecimal micSalary = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("公会长薪资")
|
||||||
|
private BigDecimal ownerSalary = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("问题薪资")
|
||||||
|
private BigDecimal issueSalary = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ApiModelProperty("钻石数量")
|
||||||
|
private BigDecimal diamondNum = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("有效天数")
|
||||||
|
private Integer micDay = 0;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty("当前档位流水开始值")
|
||||||
|
private BigDecimal curLevelDiamondNum = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("当前档位流水开始值描述")
|
||||||
|
private String curLevelName = "";
|
||||||
|
@ApiModelProperty("当前档位在麦时长达标值")
|
||||||
|
private Integer curLevelMicDay = 0;
|
||||||
|
@ApiModelProperty("下一档开始值")
|
||||||
|
private BigDecimal nextLevelDiamondNum = BigDecimal.ZERO;
|
||||||
|
@ApiModelProperty("下一档开始值描述")
|
||||||
|
private String nextLevelName = "";
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@@ -24,4 +24,7 @@ public interface GuildDiamondStatisticsPolicy2SettleMapper extends BaseMapper<Gu
|
|||||||
@Param("startDate")String startDate,
|
@Param("startDate")String startDate,
|
||||||
@Param("guildId") Integer guildId, @Param("uid") Long uid,
|
@Param("guildId") Integer guildId, @Param("uid") Long uid,
|
||||||
@Param("partitionId") Integer partitionId);
|
@Param("partitionId") Integer partitionId);
|
||||||
|
|
||||||
|
List<GuildDiamondStatisticsPolicy2Settle> groupByMemberStatDate(@Param("cycleDate") String cycleDate, @Param("partitionId") Integer partitionId,
|
||||||
|
@Param("guildMemberId") Long guildMemberId, @Param("guildId") Integer guildId);
|
||||||
}
|
}
|
||||||
|
@@ -6,6 +6,7 @@ import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -31,4 +32,20 @@ public class GuildDiamondStatisticsPolicy2SettleService extends ServiceImpl<Guil
|
|||||||
Page<GuildPolicy2MemberAdminVo> page = new Page<>(pageNo, pageSize);
|
Page<GuildPolicy2MemberAdminVo> page = new Page<>(pageNo, pageSize);
|
||||||
return baseMapper.listByStatDate(page, cycleDate, guildId, uid, partitionId);
|
return baseMapper.listByStatDate(page, cycleDate, guildId, uid, partitionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GuildDiamondStatisticsPolicy2Settle groupByMemberStatDate(String cycleDate, Integer partitionId,
|
||||||
|
Long guildMemberId) {
|
||||||
|
List<GuildDiamondStatisticsPolicy2Settle> guildDiamondStatisticsPolicy2Settles =
|
||||||
|
baseMapper.groupByMemberStatDate(cycleDate, partitionId, guildMemberId, null);
|
||||||
|
if (CollectionUtils.isEmpty(guildDiamondStatisticsPolicy2Settles)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return guildDiamondStatisticsPolicy2Settles.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GuildDiamondStatisticsPolicy2Settle> groupByGuildMemberStatDate(String cycleDate, Integer partitionId,
|
||||||
|
Integer guildId) {
|
||||||
|
return baseMapper.groupByMemberStatDate(cycleDate, partitionId, null, guildId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -2,6 +2,7 @@ package com.accompany.business.service.guildpolicy2;
|
|||||||
|
|
||||||
import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2;
|
import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2;
|
||||||
import com.accompany.business.mybatismapper.guildpolicy2.GuildDiamondWagePolicy2Mapper;
|
import com.accompany.business.mybatismapper.guildpolicy2.GuildDiamondWagePolicy2Mapper;
|
||||||
|
import com.accompany.business.vo.guildpolicy.GuildPolicy2SalaryVo;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -77,11 +78,35 @@ public class GuildDiamondWagePolicy2Service extends ServiceImpl<GuildDiamondWage
|
|||||||
if (CollectionUtils.isEmpty(wageList)){
|
if (CollectionUtils.isEmpty(wageList)){
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (GuildDiamondWagePolicy2 wage : wageList) {
|
for (GuildDiamondWagePolicy2 wage : wageList) {
|
||||||
map.put(wage.getDiamondNum(), wage);
|
map.put(wage.getDiamondNum(), wage);
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GuildPolicy2SalaryVo getSalaryVo(TreeMap<BigDecimal, GuildDiamondWagePolicy2> treeMap, BigDecimal diamondNum, Integer micDay) {
|
||||||
|
GuildPolicy2SalaryVo salaryVo = new GuildPolicy2SalaryVo();
|
||||||
|
salaryVo.setDiamondNum(diamondNum);
|
||||||
|
salaryVo.setMicDay(micDay);
|
||||||
|
|
||||||
|
Map.Entry<BigDecimal, GuildDiamondWagePolicy2> curDiamondLevel = treeMap.headMap(diamondNum, true).lastEntry();
|
||||||
|
Map.Entry<BigDecimal, GuildDiamondWagePolicy2> nextDiamondLevel = treeMap.tailMap(diamondNum, false).firstEntry();
|
||||||
|
|
||||||
|
GuildDiamondWagePolicy2 curLevel = curDiamondLevel.getValue();
|
||||||
|
salaryVo.setDiamondSalary(curLevel.getAnchorDiamondSalary());
|
||||||
|
salaryVo.setMicSalary(micDay < curLevel.getMicDay() ? BigDecimal.ZERO : curLevel.getAnchorMicSalary());
|
||||||
|
salaryVo.setOwnerSalary(curLevel.getOwnerSalary());
|
||||||
|
salaryVo.setCurLevelName(curLevel.getLevel());
|
||||||
|
salaryVo.setCurLevelDiamondNum(curLevel.getDiamondNum());
|
||||||
|
salaryVo.setCurLevelMicDay(curLevel.getMicDay());
|
||||||
|
|
||||||
|
if (nextDiamondLevel != null) {
|
||||||
|
GuildDiamondWagePolicy2 nextLevel = nextDiamondLevel.getValue();
|
||||||
|
salaryVo.setNextLevelDiamondNum(nextLevel.getDiamondNum());
|
||||||
|
salaryVo.setNextLevelName(nextLevel.getLevel());
|
||||||
|
}
|
||||||
|
|
||||||
|
return salaryVo;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -11,24 +11,26 @@ import com.accompany.business.service.guild.GuildAuthService;
|
|||||||
import com.accompany.business.service.guild.GuildMemberService;
|
import com.accompany.business.service.guild.GuildMemberService;
|
||||||
import com.accompany.business.service.guild.GuildMemberWeekLevelRewardV2Service;
|
import com.accompany.business.service.guild.GuildMemberWeekLevelRewardV2Service;
|
||||||
import com.accompany.business.service.purse.UserPurseService;
|
import com.accompany.business.service.purse.UserPurseService;
|
||||||
import com.accompany.business.service.room.RoomMicService;
|
|
||||||
import com.accompany.business.service.user.UsersService;
|
import com.accompany.business.service.user.UsersService;
|
||||||
import com.accompany.business.util.CycleTimeUtil;
|
import com.accompany.business.util.CycleTimeUtil;
|
||||||
import com.accompany.business.util.FullMonthCycleTimeUtil;
|
import com.accompany.business.util.FullMonthCycleTimeUtil;
|
||||||
import com.accompany.business.vo.guild.CycleDateVo;
|
import com.accompany.business.vo.guild.CycleDateVo;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
import com.accompany.business.vo.guildpolicy.*;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2Vo;
|
|
||||||
import com.accompany.common.constant.Constant;
|
import com.accompany.common.constant.Constant;
|
||||||
import com.accompany.common.result.BusiResult;
|
import com.accompany.common.result.BusiResult;
|
||||||
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.common.utils.StringUtils;
|
||||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||||
import com.accompany.core.enumeration.PartitionEnum;
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
import com.accompany.core.exception.ServiceException;
|
import com.accompany.core.exception.ServiceException;
|
||||||
import com.accompany.core.model.Users;
|
import com.accompany.core.model.Users;
|
||||||
|
import com.accompany.payment.model.ChargeRecord;
|
||||||
|
import com.accompany.payment.service.ChargeRecordService;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -54,8 +56,6 @@ public class GuildPolicy2Service {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private GuildAuthService guildAuthService;
|
private GuildAuthService guildAuthService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RoomMicService roomMicService;
|
|
||||||
@Autowired
|
|
||||||
private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service;
|
private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UsersService usersService;
|
private UsersService usersService;
|
||||||
@@ -73,10 +73,13 @@ public class GuildPolicy2Service {
|
|||||||
private GuildDiamondWagePolicy2Service guildDiamondWagePolicy2Service;
|
private GuildDiamondWagePolicy2Service guildDiamondWagePolicy2Service;
|
||||||
@Autowired
|
@Autowired
|
||||||
private GuildDiamondStatisticsPolicy2SettleService guildDiamondStatisticsPolicy2SettleService;
|
private GuildDiamondStatisticsPolicy2SettleService guildDiamondStatisticsPolicy2SettleService;
|
||||||
public BusiResult<GuildPolicy2Vo> getGuildPolicy2(Long uid, String cycleBeginDate) {
|
@Autowired
|
||||||
GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo();
|
private ChargeRecordService chargeRecordService;
|
||||||
guildPolicy2Vo.setCycleDate(cycleBeginDate);
|
|
||||||
|
|
||||||
|
private static final String MIN_CYCLE_DATE = "2025-09-01";
|
||||||
|
private static final BigDecimal ISSUE_SALARY_RATE = BigDecimal.valueOf(1.2);
|
||||||
|
|
||||||
|
private GuildMember validateAndGetGuildMember(Long uid) {
|
||||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||||
if (null == guildMember){
|
if (null == guildMember){
|
||||||
throw new ServiceException(BusiStatus.FAMILY_NOT_EXIST);
|
throw new ServiceException(BusiStatus.FAMILY_NOT_EXIST);
|
||||||
@@ -87,55 +90,69 @@ public class GuildPolicy2Service {
|
|||||||
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
|
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return guildMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isCurrentOrPastCycle(String cycleBeginDate, String curCycleBeginDate) {
|
||||||
|
return cycleBeginDate.equals(curCycleBeginDate) || cycleBeginDate.compareTo(MIN_CYCLE_DATE) < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static BigDecimal getIssiueSalary(ChargeRecord chargeRecord) {
|
||||||
|
if (chargeRecord == null) {
|
||||||
|
return BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
return BigDecimal.valueOf(chargeRecord.getAmount() != null ? chargeRecord.getAmount() : 0D)
|
||||||
|
.divide(BigDecimal.valueOf(100))
|
||||||
|
.multiply(ISSUE_SALARY_RATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BusiResult<GuildPolicy2MyVo> getGuildPolicy2(Long uid, String cycleBeginDate) {
|
||||||
|
GuildPolicy2MyVo guildPolicy2MyVo = new GuildPolicy2MyVo();
|
||||||
|
guildPolicy2MyVo.setCycleDate(cycleBeginDate);
|
||||||
|
|
||||||
|
GuildMember guildMember = this.validateAndGetGuildMember(uid);
|
||||||
|
|
||||||
|
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
|
||||||
Long guildMemberId = guildMember.getId();
|
Long guildMemberId = guildMember.getId();
|
||||||
|
|
||||||
guildPolicy2Vo.setDiamondNum(guildDiamondStatisticsPolicy2Service.getTotalDiamondInCycleMember(cycleBeginDate, guildMemberId));
|
String curCycleBeginDate = FullMonthCycleTimeUtil.getCycleDate(DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId()));
|
||||||
|
guildPolicy2MyVo.setCurCycleDate(curCycleBeginDate);
|
||||||
|
|
||||||
List<GuildPolicy2PersonalVo> myDiamondData = guildDiamondStatisticsPolicy2Service.listPersonalDiamondData(cycleBeginDate, guildMemberId);
|
|
||||||
List<GuildPolicy2PersonalVo> myMicData = guildMicStatisticsPolicy2Service.listPersonalMicData(cycleBeginDate, guildMemberId);
|
List<GuildPolicy2PersonalVo> myMicData = guildMicStatisticsPolicy2Service.listPersonalMicData(cycleBeginDate, guildMemberId);
|
||||||
|
|
||||||
List<GuildPolicy2PersonalVo> myData = mergeMyDataLists(myDiamondData, myMicData);
|
if (isCurrentOrPastCycle(cycleBeginDate, curCycleBeginDate)) {// 当前周期
|
||||||
|
guildPolicy2MyVo.setDiamondNum(guildDiamondStatisticsPolicy2Service.getTotalDiamondInCycleMember(cycleBeginDate, guildMemberId));
|
||||||
|
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionEnum.getId());
|
||||||
|
GuildPolicy2SalaryVo salaryVo = guildDiamondWagePolicy2Service.getSalaryVo(diamondWageMap, guildPolicy2MyVo.getDiamondNum(), guildPolicy2MyVo.getMicDay());
|
||||||
|
guildPolicy2MyVo.setMySalary(salaryVo);
|
||||||
|
} else {
|
||||||
|
GuildDiamondStatisticsPolicy2Settle settleMap = guildDiamondStatisticsPolicy2SettleService
|
||||||
|
.groupByMemberStatDate(cycleBeginDate, partitionEnum.getId(), guildMemberId);
|
||||||
|
if (settleMap == null || !settleMap.getGuildMemberId().equals(guildMemberId)) {//历史周期是否有结算,或者不在当前公会
|
||||||
|
return BusiResult.success(guildPolicy2MyVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
guildPolicy2MyVo.setDiamondNum(settleMap.getDiamondNum());
|
||||||
|
guildPolicy2MyVo.setMySalary(GuildPolicy2SalaryVo.builder()
|
||||||
|
.diamondNum(settleMap.getDiamondNum())
|
||||||
|
.micSalary(settleMap.getAnchorMicSalary())
|
||||||
|
.ownerSalary(settleMap.getOwnerSalary())
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
this.fillPersonDetailData(cycleBeginDate, guildMemberId, myMicData, guildPolicy2MyVo, partitionEnum);
|
||||||
|
return BusiResult.success(guildPolicy2MyVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillPersonDetailData(String cycleBeginDate, Long guildMemberId, List<GuildPolicy2PersonalVo> myMicData, GuildPolicy2MyVo guildPolicy2MyVo, PartitionEnum partitionEnum) {
|
||||||
|
List<GuildPolicy2PersonalVo> myDiamondData = guildDiamondStatisticsPolicy2Service.listPersonalDiamondData(cycleBeginDate, guildMemberId);
|
||||||
|
List<GuildPolicy2PersonalVo> myData = this.mergeMyDataLists(myDiamondData, myMicData);
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(myData)) {
|
if (CollectionUtils.isNotEmpty(myData)) {
|
||||||
guildPolicy2Vo.setMicDay(myData.stream().collect(Collectors.summingInt(GuildPolicy2PersonalVo::getMicDay)));
|
guildPolicy2MyVo.setMicDay(myData.stream().collect(Collectors.summingInt(GuildPolicy2PersonalVo::getMicDay)));
|
||||||
}
|
}
|
||||||
|
//填满整月天数
|
||||||
fillAllDayOfMonth(guildPolicy2Vo, myData, cycleBeginDate, partitionEnum);
|
|
||||||
|
|
||||||
if (guildAuthService.hasAuthByRoleType(partitionEnum.getClanMode(), guildMember.getRoleType(), GuildConstant.AuthCode.GUILD_POLICY2_MEMBER)) {
|
|
||||||
guildPolicy2Vo.setGuildDiamondNum(guildDiamondStatisticsPolicy2Service.getTotalDiamondInCycle(cycleBeginDate, guildMember.getGuildId()));
|
|
||||||
guildPolicy2Vo.setMemberData(guildDiamondStatisticsPolicy2Service.listMemberData(cycleBeginDate, guildMember.getGuildId()));
|
|
||||||
}
|
|
||||||
|
|
||||||
return BusiResult.success(guildPolicy2Vo);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<GuildPolicy2PersonalVo> mergeMyDataLists(List<GuildPolicy2PersonalVo> list1, List<GuildPolicy2PersonalVo> list2) {
|
|
||||||
// 处理空列表情况
|
|
||||||
if (list1 == null || list1.isEmpty()) return list2 != null ? list2 : new ArrayList<>();
|
|
||||||
if (list2 == null || list2.isEmpty()) return list1;
|
|
||||||
|
|
||||||
// 合并两个列表并按statDate分组
|
|
||||||
Map<String, GuildPolicy2PersonalVo> mergedMap = Stream.concat(list1.stream(), list2.stream())
|
|
||||||
.collect(Collectors.toMap(
|
|
||||||
GuildPolicy2PersonalVo::getStatDate,
|
|
||||||
vo -> vo,
|
|
||||||
(vo1, vo2) -> {
|
|
||||||
// 合并相同statDate的对象
|
|
||||||
GuildPolicy2PersonalVo merged = new GuildPolicy2PersonalVo();
|
|
||||||
merged.setStatDate(vo1.getStatDate());
|
|
||||||
merged.setDiamondNum(vo1.getDiamondNum().add(vo2.getDiamondNum()));
|
|
||||||
merged.setMicMinute(vo1.getMicMinute() + vo2.getMicMinute());
|
|
||||||
merged.setMicDay(vo1.getMicDay() + vo2.getMicDay());
|
|
||||||
merged.setValidMicDay(vo1.getValidMicDay() || vo2.getValidMicDay());
|
|
||||||
return merged;
|
|
||||||
}
|
|
||||||
));
|
|
||||||
|
|
||||||
return new ArrayList<>(mergedMap.values());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void fillAllDayOfMonth(GuildPolicy2Vo guildPolicy2Vo, List<GuildPolicy2PersonalVo> myData, String cycleBeginDate, PartitionEnum partitionEnum) {
|
|
||||||
List<GuildPolicy2PersonalVo> resultMyDate = new ArrayList<>();
|
List<GuildPolicy2PersonalVo> resultMyDate = new ArrayList<>();
|
||||||
ZonedDateTime nowZoneDateTime = DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId());
|
ZonedDateTime nowZoneDateTime = DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId());
|
||||||
Map<String, GuildPolicy2PersonalVo> realMap = new HashMap<>();
|
Map<String, GuildPolicy2PersonalVo> realMap = new HashMap<>();
|
||||||
@@ -160,7 +177,117 @@ public class GuildPolicy2Service {
|
|||||||
resultMyDate.add(guildPolicy2PersonalVo);
|
resultMyDate.add(guildPolicy2PersonalVo);
|
||||||
monthEnd = DateUtil.offsetDay(monthEnd, -1);
|
monthEnd = DateUtil.offsetDay(monthEnd, -1);
|
||||||
}
|
}
|
||||||
guildPolicy2Vo.setMyData(resultMyDate);
|
guildPolicy2MyVo.setMyData(resultMyDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
//合并流水与在麦天数数据
|
||||||
|
private List<GuildPolicy2PersonalVo> mergeMyDataLists(List<GuildPolicy2PersonalVo> list1, List<GuildPolicy2PersonalVo> list2) {
|
||||||
|
// 处理空列表情况
|
||||||
|
if (list1 == null || list1.isEmpty()) return list2 != null ? list2 : new ArrayList<>();
|
||||||
|
if (list2 == null || list2.isEmpty()) return list1;
|
||||||
|
|
||||||
|
// 合并两个列表并按statDate分组
|
||||||
|
Map<String, GuildPolicy2PersonalVo> mergedMap = Stream.concat(list1.stream(), list2.stream())
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
GuildPolicy2PersonalVo::getStatDate,
|
||||||
|
vo -> vo,
|
||||||
|
(vo1, vo2) -> {
|
||||||
|
// 合并相同statDate的对象
|
||||||
|
GuildPolicy2PersonalVo merged = new GuildPolicy2PersonalVo();
|
||||||
|
merged.setStatDate(vo1.getStatDate());
|
||||||
|
merged.setDiamondNum(vo1.getDiamondNum().add(vo2.getDiamondNum()));
|
||||||
|
merged.setMicMinute(vo1.getMicMinute() + vo2.getMicMinute());
|
||||||
|
merged.setMicDay(vo1.getMicDay() + vo2.getMicDay());
|
||||||
|
merged.setValidMicDay(vo1.getValidMicDay() || vo2.getValidMicDay());
|
||||||
|
return merged;
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
|
return new ArrayList<>(mergedMap.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BusiResult<GuildPolicy2AgencyVo> getGuildMemberPolicy2(Long uid, String cycleBeginDate) {
|
||||||
|
GuildPolicy2AgencyVo guildPolicy2AgencyVo = new GuildPolicy2AgencyVo();
|
||||||
|
guildPolicy2AgencyVo.setCycleDate(cycleBeginDate);
|
||||||
|
|
||||||
|
GuildMember guildMember = this.validateAndGetGuildMember(uid);
|
||||||
|
|
||||||
|
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId());
|
||||||
|
if (!guildAuthService.hasAuthByRoleType(partitionEnum.getClanMode(), guildMember.getRoleType(),
|
||||||
|
GuildConstant.AuthCode.GUILD_POLICY2_MEMBER)){
|
||||||
|
return BusiResult.success(guildPolicy2AgencyVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
String curCycleBeginDate = FullMonthCycleTimeUtil.getCycleDate(DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId()));
|
||||||
|
|
||||||
|
if (isCurrentOrPastCycle(cycleBeginDate, curCycleBeginDate)) {// 当前周期
|
||||||
|
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionEnum.getId());
|
||||||
|
guildPolicy2AgencyVo.setDiamondNum(guildDiamondStatisticsPolicy2Service.getTotalDiamondInCycle(cycleBeginDate, guildMember.getGuildId()));
|
||||||
|
List<GuildPolicy2MemberVo> memberData = guildDiamondStatisticsPolicy2Service.listMemberData(cycleBeginDate, guildMember.getGuildId());
|
||||||
|
guildPolicy2AgencyVo.setMemberData(memberData);
|
||||||
|
if (CollectionUtils.isEmpty(memberData)) {
|
||||||
|
return BusiResult.success(guildPolicy2AgencyVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> uids = memberData.stream().map(GuildPolicy2MemberVo::getUid).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Date cycleBegin = DateUtil.beginOfDay(DateUtil.parseDate(cycleBeginDate));
|
||||||
|
Date cycleEnd = DateUtil.endOfMonth(cycleBegin);
|
||||||
|
Date beginOfMonth = DateTimeUtil.convertToEastEightZone(cycleBegin, partitionEnum.getZoneId());
|
||||||
|
Date endOfMonth = DateTimeUtil.convertToEastEightZone(cycleEnd, partitionEnum.getZoneId());
|
||||||
|
|
||||||
|
Map<Long, ChargeRecord> refundGroupUidDateMap = chargeRecordService.getRefundGroupUidDateMap(uids, beginOfMonth, endOfMonth);
|
||||||
|
|
||||||
|
memberData.forEach(item -> {
|
||||||
|
GuildDiamondWagePolicy2 diamondWageVo = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, item.getDiamondNum(), item.getMicDay());
|
||||||
|
item.setDiamondSalary(item.getDiamondSalary().add(diamondWageVo.getAnchorDiamondSalary()));
|
||||||
|
item.setMicSalary(item.getMicSalary().add(diamondWageVo.getAnchorMicSalary()));
|
||||||
|
item.setOwnerSalary(item.getOwnerSalary().add(diamondWageVo.getOwnerSalary()));
|
||||||
|
ChargeRecord chargeRecord = refundGroupUidDateMap.get(item.getUid());
|
||||||
|
item.setIssueSalary(this.getIssiueSalary(chargeRecord));
|
||||||
|
});
|
||||||
|
GuildPolicy2SalaryVo salaryVo = new GuildPolicy2SalaryVo();
|
||||||
|
salaryVo.setDiamondSalary(memberData.stream().map(GuildPolicy2MemberVo::getDiamondSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
salaryVo.setMicSalary(memberData.stream().map(GuildPolicy2MemberVo::getMicSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
salaryVo.setOwnerSalary(memberData.stream().map(GuildPolicy2MemberVo::getOwnerSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
salaryVo.setIssueSalary(memberData.stream().map(GuildPolicy2MemberVo::getIssueSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
guildPolicy2AgencyVo.setGuildSalary(salaryVo);
|
||||||
|
} else {
|
||||||
|
List<GuildDiamondStatisticsPolicy2Settle> settleList = guildDiamondStatisticsPolicy2SettleService
|
||||||
|
.groupByGuildMemberStatDate(cycleBeginDate, partitionEnum.getId(), guildMember.getGuildId());
|
||||||
|
if (CollectionUtils.isEmpty(settleList)) {
|
||||||
|
return BusiResult.success(guildPolicy2AgencyVo);
|
||||||
|
}
|
||||||
|
List<GuildPolicy2MemberVo> memberData = guildPolicy2AgencyVo.getMemberData();
|
||||||
|
List<Long> uids = settleList.stream().map(GuildDiamondStatisticsPolicy2Settle::getUid).collect(Collectors.toList());
|
||||||
|
Map<Long, Users> usersMap = usersService.getUsersMapByUids(uids);
|
||||||
|
for (GuildDiamondStatisticsPolicy2Settle policy2Settle : settleList) {
|
||||||
|
GuildPolicy2MemberVo memberVo = new GuildPolicy2MemberVo();
|
||||||
|
memberVo.setUid(policy2Settle.getUid());
|
||||||
|
memberVo.setMicDay(policy2Settle.getMicDay());
|
||||||
|
memberVo.setDiamondNum(policy2Settle.getDiamondNum());
|
||||||
|
memberVo.setDiamondSalary(policy2Settle.getAnchorSalary());
|
||||||
|
memberVo.setMicSalary(policy2Settle.getAnchorMicSalary());
|
||||||
|
memberVo.setOwnerSalary(policy2Settle.getOwnerSalary());
|
||||||
|
memberVo.setIssueSalary(policy2Settle.getIssueSalary());
|
||||||
|
Users users = usersMap.get(memberVo.getUid());
|
||||||
|
if (null != users) {
|
||||||
|
memberVo.setNick(users.getNick());
|
||||||
|
memberVo.setErbanNo(users.getErbanNo());
|
||||||
|
memberVo.setAvatar(users.getAvatar());
|
||||||
|
}
|
||||||
|
|
||||||
|
memberData.add(memberVo);
|
||||||
|
}
|
||||||
|
GuildPolicy2SalaryVo salaryVo = new GuildPolicy2SalaryVo();
|
||||||
|
salaryVo.setDiamondSalary(memberData.stream().map(GuildPolicy2MemberVo::getDiamondSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
salaryVo.setMicSalary(memberData.stream().map(GuildPolicy2MemberVo::getMicSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
salaryVo.setOwnerSalary(memberData.stream().map(GuildPolicy2MemberVo::getOwnerSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
salaryVo.setIssueSalary(memberData.stream().map(GuildPolicy2MemberVo::getIssueSalary).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
guildPolicy2AgencyVo.setDiamondNum(memberData.stream().map(GuildPolicy2MemberVo::getDiamondNum).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
|
guildPolicy2AgencyVo.setGuildSalary(salaryVo);
|
||||||
|
}
|
||||||
|
return BusiResult.success(guildPolicy2AgencyVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BusiResult<List<CycleDateVo>> getCycleDatesV2(Integer partitionId) {
|
public BusiResult<List<CycleDateVo>> getCycleDatesV2(Integer partitionId) {
|
||||||
@@ -288,7 +415,7 @@ public class GuildPolicy2Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void settle(PartitionEnum partitionEnum, String cycleDate) {
|
public void settle(PartitionEnum partitionEnum, String cycleDate) {
|
||||||
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode())) {
|
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode()) || StringUtils.isEmpty(cycleDate)) {
|
||||||
log.info("GuildPolicy2Service.settle partitionEnum:{}, clanMode:{} cycleDate:{}", partitionEnum, partitionEnum.getClanMode(), cycleDate);
|
log.info("GuildPolicy2Service.settle partitionEnum:{}, clanMode:{} cycleDate:{}", partitionEnum, partitionEnum.getClanMode(), cycleDate);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -298,6 +425,14 @@ public class GuildPolicy2Service {
|
|||||||
log.info("Policy2Settle.emptyData");
|
log.info("Policy2Settle.emptyData");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Date cycleBegin = DateUtil.beginOfDay(DateUtil.parseDate(cycleDate));
|
||||||
|
Date cycleEnd = DateUtil.endOfMonth(cycleBegin);
|
||||||
|
Date beginOfMonth = DateTimeUtil.convertToEastEightZone(cycleBegin, partitionEnum.getZoneId());
|
||||||
|
Date endOfMonth = DateTimeUtil.convertToEastEightZone(cycleEnd, partitionEnum.getZoneId());
|
||||||
|
List<Long> uids = list.stream().map(GuildDiamondStatisticsPolicy2Settle::getUid).collect(Collectors.toList());
|
||||||
|
Map<Long, ChargeRecord> refundGroupUidDateMap = chargeRecordService.getRefundGroupUidDateMap(uids, beginOfMonth, endOfMonth);
|
||||||
|
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId);
|
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId);
|
||||||
for (GuildDiamondStatisticsPolicy2Settle settle : list) {
|
for (GuildDiamondStatisticsPolicy2Settle settle : list) {
|
||||||
@@ -311,6 +446,8 @@ public class GuildPolicy2Service {
|
|||||||
settle.setAnchorSalary(diamondWagePolicy2.getAnchorDiamondSalary());
|
settle.setAnchorSalary(diamondWagePolicy2.getAnchorDiamondSalary());
|
||||||
settle.setOwnerSalary(diamondWagePolicy2.getOwnerSalary());
|
settle.setOwnerSalary(diamondWagePolicy2.getOwnerSalary());
|
||||||
settle.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary());
|
settle.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary());
|
||||||
|
ChargeRecord chargeRecord = refundGroupUidDateMap.get(settle.getUid());
|
||||||
|
settle.setIssueSalary(this.getIssiueSalary(chargeRecord));
|
||||||
}
|
}
|
||||||
guildDiamondStatisticsPolicy2SettleService.saveBatch(list);
|
guildDiamondStatisticsPolicy2SettleService.saveBatch(list);
|
||||||
}
|
}
|
||||||
|
@@ -59,4 +59,30 @@
|
|||||||
group by gm.id
|
group by gm.id
|
||||||
ORDER BY diamondNum desc
|
ORDER BY diamondNum desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="groupByMemberStatDate" resultType="com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle">
|
||||||
|
select
|
||||||
|
cycle_date cycleDate,
|
||||||
|
partition_id partitionId,
|
||||||
|
guild_member_id guildMemberId,
|
||||||
|
guild_id guildId,
|
||||||
|
uid uid,
|
||||||
|
diamond_num diamondNum,
|
||||||
|
mic_minutes micMinutes,
|
||||||
|
mic_day micDay,
|
||||||
|
issue_salary issueSalary,
|
||||||
|
anchor_salary anchorSalary,
|
||||||
|
anchor_mic_salary anchorMicSalary,
|
||||||
|
owner_salary ownerSalary
|
||||||
|
from guild_diamond_statistics_policy2_settle
|
||||||
|
where partition_id = #{partitionId}
|
||||||
|
and cycle_date = #{cycleDate}
|
||||||
|
<if test="guildMemberId != null">
|
||||||
|
and guild_member_id = #{guildMemberId}
|
||||||
|
</if>
|
||||||
|
<if test="guildId != null">
|
||||||
|
and guild_id = #{guildId}
|
||||||
|
</if>
|
||||||
|
group by guild_member_id
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@@ -4,7 +4,8 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import com.accompany.business.service.guildpolicy2.GuildPolicy2Service;
|
import com.accompany.business.service.guildpolicy2.GuildPolicy2Service;
|
||||||
import com.accompany.business.service.room.GuildMemberRoomMicRecordService;
|
import com.accompany.business.service.room.GuildMemberRoomMicRecordService;
|
||||||
import com.accompany.business.vo.guild.CycleDateVo;
|
import com.accompany.business.vo.guild.CycleDateVo;
|
||||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2Vo;
|
import com.accompany.business.vo.guildpolicy.GuildPolicy2AgencyVo;
|
||||||
|
import com.accompany.business.vo.guildpolicy.GuildPolicy2MyVo;
|
||||||
import com.accompany.common.annotation.Authorization;
|
import com.accompany.common.annotation.Authorization;
|
||||||
import com.accompany.common.result.BusiResult;
|
import com.accompany.common.result.BusiResult;
|
||||||
import com.accompany.core.enumeration.PartitionEnum;
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
@@ -39,10 +40,21 @@ public class GuildPolicy2Controller {
|
|||||||
})
|
})
|
||||||
@Authorization
|
@Authorization
|
||||||
@GetMapping("/incomeStat")
|
@GetMapping("/incomeStat")
|
||||||
public BusiResult<GuildPolicy2Vo> getGuildPolicy2(@RequestHeader(PUB_UID) Long uid, String cycleBeginDate) {
|
public BusiResult<GuildPolicy2MyVo> getGuildPolicy2(@RequestHeader(PUB_UID) Long uid, String cycleBeginDate) {
|
||||||
return guildPolicy2Service.getGuildPolicy2(uid, cycleBeginDate);
|
return guildPolicy2Service.getGuildPolicy2(uid, cycleBeginDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "公会成员收入统计", httpMethod = "GET")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "cycleBeginDate", value = "周期开始日期yyyy-MM-dd", required = true, dataType = "String", paramType = "query")
|
||||||
|
})
|
||||||
|
@Authorization
|
||||||
|
@GetMapping("/memberIncomeStat")
|
||||||
|
public BusiResult<GuildPolicy2AgencyVo> getGuildMemberPolicy2(@RequestHeader(PUB_UID) Long uid, String cycleBeginDate) {
|
||||||
|
return guildPolicy2Service.getGuildMemberPolicy2(uid, cycleBeginDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/cycleDates")
|
@GetMapping("/cycleDates")
|
||||||
public BusiResult<List<CycleDateVo>> getCycleDates(@RequestHeader(PUB_UID) Long uid) {
|
public BusiResult<List<CycleDateVo>> getCycleDates(@RequestHeader(PUB_UID) Long uid) {
|
||||||
return guildPolicy2Service.getCycleDates(uid);
|
return guildPolicy2Service.getCycleDates(uid);
|
||||||
|
Reference in New Issue
Block a user