From 3e1964a6e3378b7006a68fd5e52692e7873c1937 Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Wed, 13 Aug 2025 18:08:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E8=96=AA=E8=B5=84=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E6=98=8E=E7=BB=86-=E4=B8=8B=E6=8B=89=E5=91=A8?= =?UTF-8?q?=E6=9C=9F-=E6=9C=89=E6=95=88=E5=A4=A9=E6=95=B0=E6=98=8E?= =?UTF-8?q?=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GuildPolicy2AdminService.java | 17 +++++++++++++ .../GuildPolicy2AdminController.java | 21 ++++++++++++++++ .../vo/guildpolicy/GuildMemberMicDayVo.java | 1 + .../GuildPolicy2MemberAdminVo.java | 3 +++ .../GuildMicStatisticsPolicy2Mapper.java | 10 +++++--- .../GuildMicStatisticsPolicy2Service.java | 8 +++++-- .../guildpolicy2/GuildPolicy2Service.java | 24 ++++++++++--------- .../GuildDiamondStatisticsPolicy2Mapper.xml | 6 +++-- .../GuildMicStatisticsPolicy2Mapper.xml | 15 +++++++++++- 9 files changed, 86 insertions(+), 19 deletions(-) diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java index b1fa2db1e..5fd643eaf 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java @@ -5,8 +5,13 @@ import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2; import com.accompany.business.service.guild.GuildService; import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service; import com.accompany.business.service.guildpolicy2.GuildDiamondWagePolicy2Service; +import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Service; +import com.accompany.business.service.guildpolicy2.GuildPolicy2Service; import com.accompany.business.service.user.UsersService; +import com.accompany.business.vo.guild.CycleDateVo; +import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo; import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo; +import com.accompany.common.result.BusiResult; import com.accompany.common.result.PageResult; import com.accompany.core.exception.AdminServiceException; import com.accompany.core.model.Users; @@ -27,9 +32,13 @@ public class GuildPolicy2AdminService { @Autowired private GuildDiamondWagePolicy2Service guildDiamondWagePolicy2Service; @Autowired + private GuildPolicy2Service guildPolicy2Service; + @Autowired private UsersService usersService; @Autowired private GuildService guildService; + @Autowired + private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; public PageResult queryMemberPage(Long ownerErbanNo, Integer guildId, Long erbanNo, Integer partitionId, String startDate, String endDate, Integer pageNo, Integer pageSize) { @@ -70,4 +79,12 @@ public class GuildPolicy2AdminService { } return pageResult; } + + public BusiResult> queryCycleDates(Integer partitionId) { + return guildPolicy2Service.getCycleDatesV2(partitionId); + } + + public List queryMicDayDetail(Integer partitionId, String startDate, String endDate, Long guildMemberId) { + return guildMicStatisticsPolicy2Service.listByStatDate(startDate, endDate, partitionId, guildMemberId); + } } diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guildpolicy/GuildPolicy2AdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guildpolicy/GuildPolicy2AdminController.java index ec798135d..038ec0c8c 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guildpolicy/GuildPolicy2AdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guildpolicy/GuildPolicy2AdminController.java @@ -1,6 +1,8 @@ package com.accompany.admin.controller.guildpolicy; import com.accompany.admin.service.guildpolicy2.GuildPolicy2AdminService; +import com.accompany.business.vo.guild.CycleDateVo; +import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo; import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo; import com.accompany.common.result.BusiResult; import com.accompany.common.result.PageResult; @@ -20,6 +22,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.util.List; @Api(tags = "公会政策2", value = "公会政策2") @RestController @@ -63,4 +66,22 @@ public class GuildPolicy2AdminController { EasyExcel.write(response.getOutputStream(), GuildPolicy2MemberAdminVo.class).sheet("薪资明细").doWrite(pageResult.getRows()); } + @ApiOperation(value = "周期下拉", httpMethod = "GET") + @GetMapping("/cycleDates") + public BusiResult> queryCycleDates(@RequestParam(defaultValue = "8") Integer partitionId) { + return guildPolicy2AdminService.queryCycleDates(partitionId); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "guildMemberId", value = "公会成员ID", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "startDate", value = "开始时间yyyy-MM-dd", required = true, dataType = "String"), + @ApiImplicitParam(name = "endDate", value = "结束时间yyyy-MM-dd", required = true, dataType = "String"), + }) + @ApiOperation(value = "有效天数明细", httpMethod = "GET") + @GetMapping("/micDayDetail") + public BusiResult> queryMicDayDetail(@RequestParam(defaultValue = "8") Integer partitionId, + String startDate, String endDate, Long guildMemberId) { + return BusiResult.success(guildPolicy2AdminService.queryMicDayDetail(partitionId, startDate, endDate, guildMemberId)); + } + } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildMemberMicDayVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildMemberMicDayVo.java index 2d1a9e75a..55f7b7bff 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildMemberMicDayVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildMemberMicDayVo.java @@ -4,6 +4,7 @@ import lombok.Data; @Data public class GuildMemberMicDayVo { + private String statDate; private Long guildMemberId; private Integer micMinutes; private Integer micDay; diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildPolicy2MemberAdminVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildPolicy2MemberAdminVo.java index 787e4b4d5..39ff96c1c 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildPolicy2MemberAdminVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guildpolicy/GuildPolicy2MemberAdminVo.java @@ -1,5 +1,6 @@ package com.accompany.business.vo.guildpolicy; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +11,8 @@ import java.math.BigDecimal; @ApiModel @Data public class GuildPolicy2MemberAdminVo { + @ExcelIgnore + private Long guildMemberId; @ExcelProperty("公会id") @ApiModelProperty("公会id") private Integer guildId; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java index 5d7c6d2d7..bbfcccd81 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildMicStatisticsPolicy2Mapper.java @@ -17,9 +17,13 @@ import java.util.List; public interface GuildMicStatisticsPolicy2Mapper extends BaseMapper { int updateDayMicStatistics(@Param("cycleDate")String cycleDate, @Param("statDate")String statDate, - @Param("guildMemberId")Long guildMemberId, @Param("partitionId") Integer partitionId, @Param("guildId")Integer guildId, @Param("uid")Long uid, - @Param("micMinutes") Integer micMinutes, @Param("time") Date time); + @Param("guildMemberId")Long guildMemberId, @Param("partitionId") Integer partitionId, + @Param("guildId")Integer guildId, @Param("uid")Long uid, @Param("micMinutes") Integer micMinutes, @Param("time") Date time); - List groupByStatDate(@Param("statDate")String statDate, @Param("endDate")String endDate, @Param("partitionId") Integer partitionId, @Param("guildMemberIds") List guildMemberIds); + List groupByGuildMemberId(@Param("statDate")String statDate, @Param("endDate")String endDate, + @Param("partitionId") Integer partitionId, @Param("guildMemberIds") List guildMemberIds); + + List groupByStatDate(@Param("statDate")String statDate, @Param("endDate")String endDate, + @Param("partitionId") Integer partitionId, @Param("guildMemberId") Long guildMemberId); } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java index e901c3b60..ca5f57162 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildMicStatisticsPolicy2Service.java @@ -32,7 +32,7 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl(); } - List memberMicDayVos = baseMapper.groupByStatDate(statDate, endDate, partitionId, guildMemberIds); + List memberMicDayVos = baseMapper.groupByGuildMemberId(statDate, endDate, partitionId, guildMemberIds); if (CollectionUtils.isEmpty(memberMicDayVos)) { return new HashMap<>(); } @@ -40,10 +40,14 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl mapVoByStatDate(String statDate, String endDate, int partitionId, List guildMemberIds) { - List memberMicDayVos = baseMapper.groupByStatDate(statDate, endDate, partitionId, guildMemberIds); + List memberMicDayVos = baseMapper.groupByGuildMemberId(statDate, endDate, partitionId, guildMemberIds); if (CollectionUtils.isEmpty(memberMicDayVos)) { return new HashMap<>(); } return memberMicDayVos.stream().collect(Collectors.toMap(GuildMemberMicDayVo::getGuildMemberId, x -> x)); } + + public List listByStatDate(String statDate, String endDate, int partitionId, Long guildMemberId) { + return baseMapper.groupByStatDate(statDate, endDate, partitionId, guildMemberId); + } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java index fbf4c358d..6a091fba5 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java @@ -6,6 +6,7 @@ import com.accompany.business.model.guild.GuildMember; import com.accompany.business.service.guild.GuildAuthService; import com.accompany.business.service.guild.GuildMemberService; import com.accompany.business.service.room.RoomMicService; +import com.accompany.business.service.user.UsersService; import com.accompany.business.util.FullMonthCycleTimeUtil; import com.accompany.business.vo.guild.CycleDateVo; import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo; @@ -15,6 +16,7 @@ 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.Users; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,6 +40,8 @@ public class GuildPolicy2Service { private RoomMicService roomMicService; @Autowired private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; + @Autowired + private UsersService usersService; public BusiResult getGuildPolicy2(Long uid, String cycleBeginDate) { GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo(); @@ -97,22 +101,20 @@ public class GuildPolicy2Service { guildPolicy2Vo.setMyData(resultMyDate); } - public BusiResult> getCycleDates(Long uid) { - GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid); - if (null == guildMember){ - throw new ServiceException(BusiStatus.FAMILY_NOT_EXIST); - } + public BusiResult> getCycleDatesV2(Integer partitionId) { + PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId); - PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(guildMember.getPartitionId()); - if (!guildAuthService.hasAuthByRoleType(partitionEnum.getClanMode(), guildMember.getRoleType(), GuildConstant.AuthCode.GUILD_POLICY2)) { - throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED); - } - DateUtil.parseDateTime("2025-08-02 02:02:02"); - List cycleDateVos = FullMonthCycleTimeUtil.listCycleDateVo(guildMember.getCreateTime(), + Date dateTime = DateUtil.parseDateTime("2025-08-02 02:02:02"); + List cycleDateVos = FullMonthCycleTimeUtil.listCycleDateVo(dateTime, ZoneId.of(partitionEnum.getZoneId()), DateTimeUtil.DEFAULT_DATE_PATTERN); return BusiResult.success(cycleDateVos); + } + public BusiResult> getCycleDates(Long uid) { + Users users = usersService.getUsersByUid(uid); + return getCycleDatesV2(users.getPartitionId()); + } public void statMicSecond(GuildMember guildMember, Long entreTimestamp, Long timestamp) { diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml index 9c5ce25ab..c9ed47670 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml @@ -132,7 +132,9 @@ diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml index 4a975fafc..050ce6bdf 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMicStatisticsPolicy2Mapper.xml @@ -11,7 +11,7 @@ update_time = values (update_time) - select guild_member_id guildMemberId, sum(mic_minutes) micMinutes, COUNT(DISTINCT CASE WHEN mic_minutes >= 120 THEN stat_date END) AS micDay @@ -25,4 +25,17 @@ group by guild_member_id + +