独联体-地区政策V2
This commit is contained in:
@@ -50,6 +50,7 @@ public class DateTimeUtil {
|
||||
public static final String MONTH_DATE_PATTERN = "MMdd";
|
||||
public static final String MONTH_WITHOUT_ZERO_DATE_PATTERN = "M.d";
|
||||
public static final String ZONE_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss z";
|
||||
public static final String ZONE_DATETIME_REVERSE_PATTERN = "dd/MM/yyyy HH:mm";
|
||||
|
||||
//一小时的秒数
|
||||
private static final int HOUR_SECOND = 60 * 60;
|
||||
@@ -63,6 +64,7 @@ public class DateTimeUtil {
|
||||
public static final DateTimeFormatter dateHourFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_MINUTE_PATTERN);
|
||||
public static final DateTimeFormatter hoursFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DATE_HOUR_PATTERN);
|
||||
public static final DateTimeFormatter monthWithoutZeroDateFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.MONTH_WITHOUT_ZERO_DATE_PATTERN);
|
||||
public static final DateTimeFormatter datetimeReverseFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.ZONE_DATETIME_REVERSE_PATTERN);
|
||||
|
||||
public static final DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
|
||||
|
@@ -60,6 +60,8 @@ public class GuildConstant {
|
||||
public static final String GUILD_POLICY2 = "guild_policy2";
|
||||
//公会新政策成员数据
|
||||
public static final String GUILD_POLICY2_MEMBER = "guild_policy2_member";
|
||||
//独联体-新的我的收入
|
||||
public static final String LOOK_INCOME_V2 = "look_income_v2";
|
||||
}
|
||||
|
||||
public static class UsdTab {
|
||||
|
@@ -0,0 +1,32 @@
|
||||
package com.accompany.business.model.extradiamond;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class GuildSovietDateListVo {
|
||||
@ApiModelProperty("1-个人tab,2-公会tab")
|
||||
private Integer dateType;
|
||||
@ApiModelProperty("当前周期")
|
||||
private GuildSovietDateVo curCycle;
|
||||
@ApiModelProperty("上一周期")
|
||||
private GuildSovietDateVo lastCycle;
|
||||
@ApiModelProperty("今日")
|
||||
private GuildSovietDateVo curDay;
|
||||
@ApiModelProperty("昨日")
|
||||
private GuildSovietDateVo lastDay;
|
||||
@ApiModelProperty("本周")
|
||||
private GuildSovietDateVo curWeek;
|
||||
@ApiModelProperty("上周")
|
||||
private GuildSovietDateVo lastWeek;
|
||||
@ApiModelProperty("本月")
|
||||
private GuildSovietDateVo curMonth;
|
||||
@ApiModelProperty("上月")
|
||||
private GuildSovietDateVo lastMonth;
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
package com.accompany.business.model.extradiamond;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class GuildSovietDateVo {
|
||||
|
||||
@ApiModelProperty("周期时间范围")
|
||||
private String periodDateStr;
|
||||
@ApiModelProperty("当前周期开始时间")
|
||||
private String beginDate;
|
||||
@ApiModelProperty("当前周期结束时间")
|
||||
private String endDate;
|
||||
@ApiModelProperty("钻石流水")
|
||||
private BigDecimal diamondNum;
|
||||
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
package com.accompany.business.model.extradiamond;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class GuildSovietIncomeAgencyVo {
|
||||
|
||||
@ApiModelProperty("周期数据")
|
||||
private GuildSovietDateListVo diamondDateList;
|
||||
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
package com.accompany.business.model.extradiamond;
|
||||
|
||||
import com.accompany.business.vo.SimpleUserVo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class GuildSovietIncomePersonVo {
|
||||
|
||||
@ApiModelProperty("我")
|
||||
private SimpleUserVo me;
|
||||
|
||||
@ApiModelProperty("钻石余额")
|
||||
private BigDecimal diamondNum;
|
||||
|
||||
@ApiModelProperty("周期数据")
|
||||
private GuildSovietDateListVo diamondDateList;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package com.accompany.business.model.extradiamond;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class GuildSovietIncomeVo {
|
||||
|
||||
@ApiModelProperty("person")
|
||||
private GuildSovietIncomePersonVo person;
|
||||
@ApiModelProperty("agency")
|
||||
private GuildSovietIncomeAgencyVo agency;
|
||||
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.accompany.business.model.extradiamond;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class GuildSovietMemberVo {
|
||||
@ApiModelProperty("统计日期")
|
||||
private String statDate;
|
||||
@ApiModelProperty("角色类型1-公会长,2-管理员,3-主播")
|
||||
private Byte roleType;
|
||||
private Long uid;
|
||||
private Long erbanNo;
|
||||
private String nick;
|
||||
private String avatar;
|
||||
@ApiModelProperty("钻石流水")
|
||||
private BigDecimal diamondNum;
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class GuildSovietDateListVo {
|
||||
@ApiModelProperty("1-个人tab,2-公会tab")
|
||||
private Integer dateType;
|
||||
@ApiModelProperty("当前周期")
|
||||
private GuildSovietDateVo curCycle;
|
||||
@ApiModelProperty("上一周期")
|
||||
private GuildSovietDateVo lastCycle;
|
||||
@ApiModelProperty("今日")
|
||||
private GuildSovietDateVo curDay;
|
||||
@ApiModelProperty("昨日")
|
||||
private GuildSovietDateVo lastDay;
|
||||
@ApiModelProperty("本周")
|
||||
private GuildSovietDateVo curWeek;
|
||||
@ApiModelProperty("上周")
|
||||
private GuildSovietDateVo lastWeek;
|
||||
@ApiModelProperty("本月")
|
||||
private GuildSovietDateVo curMonth;
|
||||
@ApiModelProperty("上月")
|
||||
private GuildSovietDateVo lastMonth;
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class GuildSovietDateVo {
|
||||
|
||||
@ApiModelProperty("周期时间范围")
|
||||
private String periodDateStr;
|
||||
@ApiModelProperty("当前周期开始时间")
|
||||
private String beginDate;
|
||||
@ApiModelProperty("当前周期结束时间")
|
||||
private String endDate;
|
||||
@ApiModelProperty("钻石流水")
|
||||
private BigDecimal diamondNum;
|
||||
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class GuildSovietIncomeAgencyVo {
|
||||
|
||||
@ApiModelProperty("周期数据")
|
||||
private GuildSovietDateListVo diamondDateList;
|
||||
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import com.accompany.business.vo.SimpleUserVo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class GuildSovietIncomePersonVo {
|
||||
|
||||
@ApiModelProperty("我")
|
||||
private SimpleUserVo me;
|
||||
|
||||
@ApiModelProperty("钻石余额")
|
||||
private BigDecimal diamondNum;
|
||||
|
||||
@ApiModelProperty("周期数据")
|
||||
private GuildSovietDateListVo diamondDateList;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class GuildSovietIncomeVo {
|
||||
|
||||
@ApiModelProperty("person")
|
||||
private GuildSovietIncomePersonVo person;
|
||||
@ApiModelProperty("agency")
|
||||
private GuildSovietIncomeAgencyVo agency;
|
||||
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class GuildSovietMemberVo {
|
||||
@ApiModelProperty("统计日期")
|
||||
private String statDate;
|
||||
@ApiModelProperty("角色类型1-公会长,2-管理员,3-主播")
|
||||
private Byte roleType;
|
||||
private Long uid;
|
||||
private Long erbanNo;
|
||||
private String nick;
|
||||
private String avatar;
|
||||
@ApiModelProperty("钻石流水")
|
||||
private BigDecimal diamondNum;
|
||||
}
|
@@ -1,11 +1,14 @@
|
||||
package com.accompany.business.mybatismapper.extradiamond;
|
||||
|
||||
import com.accompany.business.model.extradiamond.GuildExtraDiamondDay;
|
||||
import com.accompany.business.vo.guild.GuildSovietMemberVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公会钻石流水额外收入记录 Mapper 接口
|
||||
@@ -21,4 +24,16 @@ public interface GuildExtraDiamondDayMapper extends BaseMapper<GuildExtraDiamond
|
||||
@Param("luckyDiamondNum") BigDecimal luckyDiamondNum, @Param("ownerDiamondNum") BigDecimal ownerDiamondNum,
|
||||
@Param("ownerLuckyDiamond") BigDecimal ownerLuckyDiamond, @Param("anchorDiamondNum") BigDecimal anchorDiamondNum,
|
||||
@Param("anchorLuckyDiamond") BigDecimal anchorLuckyDiamond, @Param("time") Date time);
|
||||
|
||||
List<GuildExtraDiamondDay> groupByPartitionMember(@Param("partitionId") Integer partitionId, @Param("startDate") String startDate,
|
||||
@Param("endDate") String endDate, @Param("guildMemberId") Long guildMemberId);
|
||||
|
||||
List<GuildExtraDiamondDay> groupByAllPartitionGuild(@Param("partitionId") Integer partitionId, @Param("startDate") String startDate,
|
||||
@Param("endDate") String endDate, @Param("guildId") Integer guildId);
|
||||
|
||||
Page<GuildSovietMemberVo> listGuildDetailVo(@Param("page") Page<GuildSovietMemberVo> page, @Param("partitionId") Integer partitionId, @Param("guildId") Integer guildId,
|
||||
@Param("startDate") String startDate, @Param("endDate") String endDate);
|
||||
|
||||
Page<GuildSovietMemberVo> listMemberDetailVo(@Param("page") Page<GuildSovietMemberVo> page, @Param("partitionId") Integer partitionId, @Param("guildMemberId") Long guildMemberId,
|
||||
@Param("startDate") String startDate, @Param("endDate") String endDate);
|
||||
}
|
||||
|
@@ -2,8 +2,10 @@ package com.accompany.business.service.extradiamond;
|
||||
|
||||
import com.accompany.business.model.extradiamond.GuildExtraDiamondDay;
|
||||
import com.accompany.business.mybatismapper.extradiamond.GuildExtraDiamondDayMapper;
|
||||
import com.accompany.business.vo.guild.GuildSovietMemberVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -35,4 +37,25 @@ public class GuildExtraDiamondDayService extends ServiceImpl<GuildExtraDiamondDa
|
||||
.eq(GuildExtraDiamondDay::getAnchorSendStatus, 0);
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
public List<GuildExtraDiamondDay> groupByPartitionMember(Integer partitionId, String statDate, String endDate, Long guildMemberId) {
|
||||
return baseMapper.groupByPartitionMember(partitionId, statDate, endDate, guildMemberId);
|
||||
}
|
||||
|
||||
|
||||
public List<GuildExtraDiamondDay> groupByPartitionGuild(Integer partitionId, String statDate, String endDate, Integer guildId) {
|
||||
return baseMapper.groupByAllPartitionGuild(partitionId, statDate, endDate, guildId);
|
||||
}
|
||||
|
||||
public List<GuildSovietMemberVo> listGuildDetailVo(Integer partitionId, Integer guildId, String beginDate, String endDate,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
Page<GuildSovietMemberVo> page = new Page<>(pageNo, pageSize, false);
|
||||
return baseMapper.listGuildDetailVo(page, partitionId, guildId, beginDate, endDate).getRecords();
|
||||
}
|
||||
|
||||
public List<GuildSovietMemberVo> listMemberDetailVo(Integer partitionId, Long guildMemberId, String beginDate, String endDate,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
Page<GuildSovietMemberVo> page = new Page<>(pageNo, pageSize, false);
|
||||
return baseMapper.listMemberDetailVo(page, partitionId, guildMemberId, beginDate, endDate).getRecords();
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,252 @@
|
||||
package com.accompany.business.service.guild;
|
||||
|
||||
import com.accompany.business.constant.guild.GuildConstant;
|
||||
import com.accompany.business.model.UserPurse;
|
||||
import com.accompany.business.model.extradiamond.GuildExtraDiamondDay;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.service.extradiamond.GuildExtraDiamondDayService;
|
||||
import com.accompany.business.service.purse.UserPurseService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.util.CycleTimeUtil;
|
||||
import com.accompany.business.vo.guild.*;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static java.util.Collections.EMPTY_LIST;
|
||||
|
||||
@Service
|
||||
public class GuildSovietIncomeService {
|
||||
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private PartitionInfoService partitionInfoService;
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
@Autowired
|
||||
private UserPurseService userPurseService;
|
||||
@Autowired
|
||||
private GuildAuthService guildAuthService;
|
||||
@Autowired
|
||||
private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService;
|
||||
@Autowired
|
||||
private GuildExtraDiamondDayService guildExtraDiamondDayService;
|
||||
|
||||
public GuildSovietIncomeVo getIncome(Long uid) {
|
||||
Users me = usersService.getNotNullUsersByUid(uid);
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(me.getPartitionId());
|
||||
if (null == partitionInfo || !Constant.ClanMode.SOVIET.equals(partitionInfo.getClanMode())) {
|
||||
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
|
||||
}
|
||||
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
if (null == guildMember
|
||||
|| !guildAuthService.hasAuthByRoleType(PartitionEnum.getByPartitionId(guildMember.getPartitionId()).getClanMode(),
|
||||
guildMember.getRoleType(), GuildConstant.AuthCode.LOOK_INCOME_V2)) {
|
||||
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
|
||||
}
|
||||
|
||||
GuildSovietIncomeVo vo = new GuildSovietIncomeVo();
|
||||
|
||||
ZonedDateTime nowZoneDateTime = DateTimeUtil.convertWithZoneId(new Date(), partitionInfo.getZoneId());
|
||||
GuildSovietIncomePersonVo personVo = getPersonIncome(me, guildMember.getId(), partitionInfo.getId(), nowZoneDateTime);
|
||||
vo.setPerson(personVo);
|
||||
|
||||
GuildSovietIncomeAgencyVo agencyVo = getAgencyIncome(guildMember, partitionInfo.getId(), nowZoneDateTime);
|
||||
vo.setAgency(agencyVo);
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
public GuildSovietIncomePersonVo getPersonIncome(Users me, Long memberId, Integer partitionId, ZonedDateTime nowZoneDateTime) {
|
||||
GuildSovietIncomePersonVo vo = new GuildSovietIncomePersonVo();
|
||||
vo.setMe(usersService.getSimpleUserVo(me));
|
||||
|
||||
UserPurse userPurse = userPurseService.queryUserPurse(me.getUid());
|
||||
vo.setDiamondNum(BigDecimal.valueOf(userPurse.getGolds()));
|
||||
|
||||
GuildSovietDateListVo diamondDateList = new GuildSovietDateListVo();
|
||||
vo.setDiamondDateList(diamondDateList);
|
||||
diamondDateList.setDateType(1);
|
||||
|
||||
String lastBeginOfMonth = nowZoneDateTime.minusMonths(1).withDayOfMonth(1).format(DateTimeUtil.dateFormatter);
|
||||
String endOfMonth = nowZoneDateTime.plusMonths(1).withDayOfMonth(1).minusDays(1).format(DateTimeUtil.dateFormatter);
|
||||
|
||||
List<GuildExtraDiamondDay> guildExtraDiamondDays = guildExtraDiamondDayService.groupByPartitionMember(partitionId, lastBeginOfMonth, endOfMonth, memberId);
|
||||
|
||||
this.coverDateListVo(diamondDateList, nowZoneDateTime, guildExtraDiamondDays, lastBeginOfMonth, endOfMonth);
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
private GuildSovietIncomeAgencyVo getAgencyIncome(GuildMember guildMember, Integer partitionId, ZonedDateTime nowZoneDateTime) {
|
||||
if (!GuildConstant.RoleType.OWNER.equals(guildMember.getRoleType())) {
|
||||
return null;
|
||||
}
|
||||
GuildSovietIncomeAgencyVo agencyVo = new GuildSovietIncomeAgencyVo();
|
||||
|
||||
|
||||
GuildSovietDateListVo diamondDateList = new GuildSovietDateListVo();
|
||||
agencyVo.setDiamondDateList(diamondDateList);
|
||||
diamondDateList.setDateType(2);
|
||||
|
||||
String lastBeginOfMonth = nowZoneDateTime.minusMonths(1).withDayOfMonth(1).format(DateTimeUtil.dateFormatter);
|
||||
String endOfMonth = nowZoneDateTime.plusMonths(1).withDayOfMonth(1).minusDays(1).format(DateTimeUtil.dateFormatter);
|
||||
|
||||
|
||||
List<GuildExtraDiamondDay> guildExtraDiamondDays = guildExtraDiamondDayService.groupByPartitionGuild(partitionId, lastBeginOfMonth, endOfMonth, guildMember.getGuildId());
|
||||
this.coverDateListVo(diamondDateList, nowZoneDateTime, guildExtraDiamondDays, lastBeginOfMonth, endOfMonth);
|
||||
|
||||
|
||||
return agencyVo;
|
||||
}
|
||||
|
||||
private void coverDateListVo(GuildSovietDateListVo diamondDateList, ZonedDateTime nowZoneDateTime, List<GuildExtraDiamondDay> guildExtraDiamondDays, String lastBeginOfMonth, String endOfMonth) {
|
||||
String cycleBeginDate = CycleTimeUtil.getCycleDate(nowZoneDateTime);
|
||||
String cycleEndDate = CycleTimeUtil.getCycleEndDate(nowZoneDateTime);
|
||||
GuildSovietDateVo curCycle = GuildSovietDateVo.builder()
|
||||
.beginDate(cycleBeginDate)
|
||||
.endDate(cycleEndDate)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.periodDateStr(CycleTimeUtil.getCycleDateZdt(nowZoneDateTime).withHour(0).withMinute(0).withSecond(0).format(DateTimeUtil.datetimeReverseFormatter)
|
||||
+ "~" + CycleTimeUtil.getCycleEndDateZdt(nowZoneDateTime).withHour(23).withMinute(59).withSecond(59).format(DateTimeUtil.datetimeReverseFormatter))
|
||||
.build();
|
||||
diamondDateList.setCurCycle(curCycle);
|
||||
|
||||
|
||||
ZonedDateTime lastBeginDateZdt = CycleTimeUtil.getLastDateZdt(nowZoneDateTime);
|
||||
String lastCycleBeginDate = lastBeginDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
ZonedDateTime lastEndDateZdt = CycleTimeUtil.getCycleDateZdt(nowZoneDateTime).minusDays(1);
|
||||
String lastCycleEndDate = lastEndDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
GuildSovietDateVo lastCycle = GuildSovietDateVo.builder()
|
||||
.beginDate(lastCycleBeginDate)
|
||||
.endDate(lastCycleEndDate)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.periodDateStr(lastBeginDateZdt.withHour(0).withMinute(0).withSecond(0).format(DateTimeUtil.datetimeReverseFormatter)
|
||||
+ "~" + lastEndDateZdt.minusDays(1).withHour(23).withMinute(59).withSecond(59).format(DateTimeUtil.datetimeReverseFormatter))
|
||||
.build();
|
||||
diamondDateList.setLastCycle(lastCycle);
|
||||
|
||||
|
||||
String beginOfDay = nowZoneDateTime.format(DateTimeUtil.dateFormatter);
|
||||
String endOfDay = beginOfDay;
|
||||
GuildSovietDateVo curDay = GuildSovietDateVo.builder()
|
||||
.beginDate(beginOfDay)
|
||||
.endDate(endOfDay)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.build();
|
||||
diamondDateList.setCurDay(curDay);
|
||||
|
||||
|
||||
String lastBeginDay = nowZoneDateTime.minusDays(1).format(DateTimeUtil.dateFormatter);
|
||||
String lastEndDay = lastBeginDay;
|
||||
GuildSovietDateVo lastDay = GuildSovietDateVo.builder()
|
||||
.beginDate(lastBeginDay)
|
||||
.endDate(lastEndDay)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.build();
|
||||
diamondDateList.setLastDay(lastDay);
|
||||
|
||||
|
||||
String beginOfWeek = nowZoneDateTime.with(DayOfWeek.MONDAY).format(DateTimeUtil.dateFormatter);
|
||||
String endOfWeek = nowZoneDateTime.with(DayOfWeek.SUNDAY).format(DateTimeUtil.dateFormatter);
|
||||
GuildSovietDateVo curWeek = GuildSovietDateVo.builder()
|
||||
.beginDate(beginOfWeek)
|
||||
.endDate(endOfWeek)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.build();
|
||||
diamondDateList.setCurWeek(curWeek);
|
||||
|
||||
String lastBeginOfWeek = nowZoneDateTime.minusWeeks(1).with(DayOfWeek.MONDAY).format(DateTimeUtil.dateFormatter);
|
||||
String lastEndOfWeek = nowZoneDateTime.minusWeeks(1).with(DayOfWeek.SUNDAY).format(DateTimeUtil.dateFormatter);
|
||||
GuildSovietDateVo lastWeek = GuildSovietDateVo.builder()
|
||||
.beginDate(lastBeginOfWeek)
|
||||
.endDate(lastEndOfWeek)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.build();
|
||||
diamondDateList.setLastWeek(lastWeek);
|
||||
|
||||
String beginOfMonth = nowZoneDateTime.withDayOfMonth(1).format(DateTimeUtil.dateFormatter);
|
||||
GuildSovietDateVo curMonth = GuildSovietDateVo.builder()
|
||||
.beginDate(beginOfMonth)
|
||||
.endDate(endOfMonth)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.build();
|
||||
diamondDateList.setCurMonth(curMonth);
|
||||
|
||||
String lastEndOfMonth = nowZoneDateTime.withDayOfMonth(1).minusDays(1).format(DateTimeUtil.dateFormatter);
|
||||
GuildSovietDateVo lastMonth = GuildSovietDateVo.builder()
|
||||
.beginDate(lastBeginOfMonth)
|
||||
.endDate(lastEndOfMonth)
|
||||
.diamondNum(BigDecimal.ZERO)
|
||||
.build();
|
||||
diamondDateList.setLastMonth(lastMonth);
|
||||
|
||||
if (CollectionUtils.isEmpty(guildExtraDiamondDays)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (GuildExtraDiamondDay guildExtraDiamondDay : guildExtraDiamondDays) {
|
||||
String statDate = guildExtraDiamondDay.getStatDate();
|
||||
BigDecimal diamondNum = guildExtraDiamondDay.getDiamondNum().add(guildExtraDiamondDay.getLuckyDiamondNum());
|
||||
|
||||
if (cycleBeginDate.compareTo(statDate) <= 0 && cycleEndDate.compareTo(statDate) >= 0) {
|
||||
curCycle.setDiamondNum(curCycle.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (lastCycleBeginDate.compareTo(statDate) <= 0 && lastCycleEndDate.compareTo(statDate) >= 0) {
|
||||
lastCycle.setDiamondNum(lastCycle.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (beginOfDay.equals(statDate)) {
|
||||
curDay.setDiamondNum(curDay.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (lastBeginDay.equals(statDate)) {
|
||||
lastDay.setDiamondNum(lastDay.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (beginOfWeek.compareTo(statDate) <= 0 && endOfWeek.compareTo(statDate) >= 0) {
|
||||
curWeek.setDiamondNum(curWeek.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (lastBeginOfWeek.compareTo(statDate) <= 0 && lastEndOfWeek.compareTo(statDate) >= 0) {
|
||||
lastWeek.setDiamondNum(lastWeek.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (beginOfMonth.compareTo(statDate) <= 0 && endOfMonth.compareTo(statDate) >= 0) {
|
||||
curMonth.setDiamondNum(curMonth.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
if (lastBeginOfMonth.compareTo(statDate) <= 0 && lastEndOfMonth.compareTo(statDate) >= 0) {
|
||||
lastMonth.setDiamondNum(lastMonth.getDiamondNum().add(diamondNum));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<GuildSovietMemberVo> getDetailVo(Long uid, String beginDate, String endDate, Integer dateType,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
|
||||
if (null == guildMember || dateType == null) {
|
||||
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
|
||||
}
|
||||
|
||||
if (dateType == 1) {
|
||||
return guildExtraDiamondDayService.listMemberDetailVo(guildMember.getPartitionId(), guildMember.getId(), beginDate, endDate,
|
||||
pageNo, pageSize);
|
||||
} else if (dateType == 2 && GuildConstant.RoleType.OWNER.equals(guildMember.getRoleType())) {
|
||||
return guildExtraDiamondDayService.listGuildDetailVo(guildMember.getPartitionId(), guildMember.getGuildId(), beginDate, endDate,
|
||||
pageNo, pageSize);
|
||||
}
|
||||
return EMPTY_LIST;
|
||||
}
|
||||
}
|
@@ -17,4 +17,71 @@
|
||||
anchor_extra_lucky_num = anchor_extra_lucky_num + values (anchor_extra_lucky_num),
|
||||
update_time = values (update_time)
|
||||
</update>
|
||||
|
||||
<select id="groupByPartitionMember" resultType="com.accompany.business.model.extradiamond.GuildExtraDiamondDay">
|
||||
select
|
||||
partition_id partitionId,
|
||||
stat_date statDate,
|
||||
guild_member_id guildMemberId,
|
||||
sum(diamond_num) diamondNum,
|
||||
sum(lucky_diamond_num) luckyDiamondNum
|
||||
from guild_extra_diamond_day
|
||||
where guild_member_id = #{guildMemberId}
|
||||
and stat_date >= #{startDate}
|
||||
and stat_date <= #{endDate}
|
||||
group by partition_id, stat_date,guild_member_id
|
||||
</select>
|
||||
|
||||
<select id="groupByAllPartitionGuild" resultType="com.accompany.business.model.extradiamond.GuildExtraDiamondDay">
|
||||
select
|
||||
partition_id partitionId,
|
||||
stat_date statDate,
|
||||
guild_id guildId,
|
||||
sum(diamond_num) diamondNum,
|
||||
sum(lucky_diamond_num) luckyDiamondNum
|
||||
from guild_extra_diamond_day
|
||||
where guild_id = #{guildId}
|
||||
and stat_date >= #{startDate}
|
||||
and stat_date <= #{endDate}
|
||||
group by partition_id, stat_date,guild_id
|
||||
</select>
|
||||
|
||||
<select id="listGuildDetailVo" resultType="com.accompany.business.model.extradiamond.GuildSovietMemberVo">
|
||||
select
|
||||
gm.role_type roleType,
|
||||
u.uid uid,
|
||||
u.erban_no erbanNo,
|
||||
u.nick nick,
|
||||
u.avatar avatar,
|
||||
ge.partition_id partitionId,
|
||||
(sum(diamond_num) + sum(lucky_diamond_num)) diamondNum
|
||||
from guild_extra_diamond_day ge
|
||||
left join guild_member gm on ge.guild_member_id = gm.id
|
||||
left join users u on gm.uid = u.uid
|
||||
where ge.guild_id = #{guildId}
|
||||
and ge.stat_date >= #{startDate}
|
||||
and ge.stat_date <= #{endDate}
|
||||
group by ge.partition_id,ge.guild_id
|
||||
order by diamondNum desc
|
||||
</select>
|
||||
|
||||
<select id="listMemberDetailVo" resultType="com.accompany.business.model.extradiamond.GuildSovietMemberVo">
|
||||
select
|
||||
gm.role_type roleType,
|
||||
u.uid uid,
|
||||
u.erban_no erbanNo,
|
||||
u.nick nick,
|
||||
u.avatar avatar,
|
||||
ge.stat_date statDate,
|
||||
ge.partition_id partitionId,
|
||||
(sum(diamond_num) + sum(lucky_diamond_num)) diamondNum
|
||||
from guild_extra_diamond_day ge
|
||||
left join guild_member gm on ge.guild_member_id = gm.id
|
||||
left join users u on gm.uid = u.uid
|
||||
where ge.guild_member_id = #{guildMemberId}
|
||||
and ge.stat_date >= #{startDate}
|
||||
and ge.stat_date <= #{endDate}
|
||||
group by ge.partition_id,ge.guild_id,ge.stat_date
|
||||
order by statDate desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
@@ -0,0 +1,42 @@
|
||||
package com.accompany.business.controller.guild;
|
||||
|
||||
import com.accompany.business.service.guild.GuildSovietIncomeService;
|
||||
import com.accompany.business.vo.guild.GuildSovietIncomeVo;
|
||||
import com.accompany.business.vo.guild.GuildSovietMemberVo;
|
||||
import com.accompany.common.annotation.Authorization;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.PUB_UID;
|
||||
|
||||
@Api(tags = "独联体-guild公会", value = "独联体")
|
||||
@RequestMapping("/guildSoviet/income")
|
||||
@RestController
|
||||
public class GuildSovietIncomeController {
|
||||
|
||||
@Autowired
|
||||
private GuildSovietIncomeService guildSovietIncomeService;
|
||||
|
||||
@ApiOperation(value = "获取收入情况", httpMethod = "GET")
|
||||
@Authorization
|
||||
@GetMapping("/getIncome")
|
||||
public BusiResult<GuildSovietIncomeVo> getIncome(@RequestHeader(PUB_UID) Long uid) {
|
||||
GuildSovietIncomeVo vo = guildSovietIncomeService.getIncome(uid);
|
||||
return BusiResult.success(vo);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "获取明细收入情况", httpMethod = "GET")
|
||||
@Authorization
|
||||
@GetMapping("/getDetailVo")
|
||||
public BusiResult<List<GuildSovietMemberVo>> getDetailVo(@RequestHeader(PUB_UID) Long uid, String beginDate, String endDate, Integer dateType,
|
||||
@RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "20") Integer pageSize) {
|
||||
List<GuildSovietMemberVo> vos = guildSovietIncomeService.getDetailVo(uid, beginDate, endDate, dateType, pageNo, pageSize);
|
||||
return BusiResult.success(vos);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user