公会薪资流水明细-下拉周期-有效天数明细
This commit is contained in:
@@ -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<GuildPolicy2MemberAdminVo> 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<List<CycleDateVo>> queryCycleDates(Integer partitionId) {
|
||||
return guildPolicy2Service.getCycleDatesV2(partitionId);
|
||||
}
|
||||
|
||||
public List<GuildMemberMicDayVo> queryMicDayDetail(Integer partitionId, String startDate, String endDate, Long guildMemberId) {
|
||||
return guildMicStatisticsPolicy2Service.listByStatDate(startDate, endDate, partitionId, guildMemberId);
|
||||
}
|
||||
}
|
||||
|
@@ -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<List<CycleDateVo>> 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<List<GuildMemberMicDayVo>> queryMicDayDetail(@RequestParam(defaultValue = "8") Integer partitionId,
|
||||
String startDate, String endDate, Long guildMemberId) {
|
||||
return BusiResult.success(guildPolicy2AdminService.queryMicDayDetail(partitionId, startDate, endDate, guildMemberId));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class GuildMemberMicDayVo {
|
||||
private String statDate;
|
||||
private Long guildMemberId;
|
||||
private Integer micMinutes;
|
||||
private Integer micDay;
|
||||
|
@@ -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;
|
||||
|
@@ -17,9 +17,13 @@ import java.util.List;
|
||||
public interface GuildMicStatisticsPolicy2Mapper extends BaseMapper<GuildMicStatisticsPolicy2> {
|
||||
|
||||
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<GuildMemberMicDayVo> groupByStatDate(@Param("statDate")String statDate, @Param("endDate")String endDate, @Param("partitionId") Integer partitionId, @Param("guildMemberIds") List<Long> guildMemberIds);
|
||||
List<GuildMemberMicDayVo> groupByGuildMemberId(@Param("statDate")String statDate, @Param("endDate")String endDate,
|
||||
@Param("partitionId") Integer partitionId, @Param("guildMemberIds") List<Long> guildMemberIds);
|
||||
|
||||
List<GuildMemberMicDayVo> groupByStatDate(@Param("statDate")String statDate, @Param("endDate")String endDate,
|
||||
@Param("partitionId") Integer partitionId, @Param("guildMemberId") Long guildMemberId);
|
||||
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl<GuildMicStatis
|
||||
if (CollectionUtils.isEmpty(guildMemberIds)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
List<GuildMemberMicDayVo> memberMicDayVos = baseMapper.groupByStatDate(statDate, endDate, partitionId, guildMemberIds);
|
||||
List<GuildMemberMicDayVo> memberMicDayVos = baseMapper.groupByGuildMemberId(statDate, endDate, partitionId, guildMemberIds);
|
||||
if (CollectionUtils.isEmpty(memberMicDayVos)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
@@ -40,10 +40,14 @@ public class GuildMicStatisticsPolicy2Service extends ServiceImpl<GuildMicStatis
|
||||
}
|
||||
|
||||
public Map<Long, GuildMemberMicDayVo> mapVoByStatDate(String statDate, String endDate, int partitionId, List<Long> guildMemberIds) {
|
||||
List<GuildMemberMicDayVo> memberMicDayVos = baseMapper.groupByStatDate(statDate, endDate, partitionId, guildMemberIds);
|
||||
List<GuildMemberMicDayVo> 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<GuildMemberMicDayVo> listByStatDate(String statDate, String endDate, int partitionId, Long guildMemberId) {
|
||||
return baseMapper.groupByStatDate(statDate, endDate, partitionId, guildMemberId);
|
||||
}
|
||||
}
|
||||
|
@@ -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<GuildPolicy2Vo> getGuildPolicy2(Long uid, String cycleBeginDate) {
|
||||
GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo();
|
||||
@@ -97,22 +101,20 @@ public class GuildPolicy2Service {
|
||||
guildPolicy2Vo.setMyData(resultMyDate);
|
||||
}
|
||||
|
||||
public BusiResult<List<CycleDateVo>> getCycleDates(Long uid) {
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
if (null == guildMember){
|
||||
throw new ServiceException(BusiStatus.FAMILY_NOT_EXIST);
|
||||
}
|
||||
public BusiResult<List<CycleDateVo>> 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<CycleDateVo> cycleDateVos = FullMonthCycleTimeUtil.listCycleDateVo(guildMember.getCreateTime(),
|
||||
Date dateTime = DateUtil.parseDateTime("2025-08-02 02:02:02");
|
||||
List<CycleDateVo> cycleDateVos = FullMonthCycleTimeUtil.listCycleDateVo(dateTime,
|
||||
ZoneId.of(partitionEnum.getZoneId()), DateTimeUtil.DEFAULT_DATE_PATTERN);
|
||||
|
||||
return BusiResult.success(cycleDateVos);
|
||||
|
||||
}
|
||||
public BusiResult<List<CycleDateVo>> getCycleDates(Long uid) {
|
||||
Users users = usersService.getUsersByUid(uid);
|
||||
return getCycleDatesV2(users.getPartitionId());
|
||||
|
||||
}
|
||||
|
||||
public void statMicSecond(GuildMember guildMember, Long entreTimestamp, Long timestamp) {
|
||||
|
@@ -132,7 +132,9 @@
|
||||
</select>
|
||||
|
||||
<select id="listByStatDate" resultType="com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo">
|
||||
select gd.guild_id guildId,
|
||||
select
|
||||
gd.guild_member_id guildMemberId,
|
||||
gd.guild_id guildId,
|
||||
ANY_VALUE(u.erban_no) ownerErbanNo,
|
||||
ANY_VALUE(um.erban_no) erbanNo,
|
||||
ANY_VALUE(um.nick) nick,
|
||||
@@ -158,7 +160,7 @@
|
||||
<if test="uid != null">
|
||||
and gd.uid = #{uid}
|
||||
</if>
|
||||
group by gd.uid
|
||||
group by gd.guild_member_id
|
||||
ORDER BY diamondNum desc
|
||||
</select>
|
||||
|
||||
|
@@ -11,7 +11,7 @@
|
||||
update_time = values (update_time)
|
||||
</update>
|
||||
|
||||
<select id="groupByStatDate" resultType="com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo">
|
||||
<select id="groupByGuildMemberId" resultType="com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo">
|
||||
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
|
||||
</select>
|
||||
|
||||
<select id="groupByStatDate" resultType="com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo">
|
||||
select
|
||||
stat_date statDate,
|
||||
guild_member_id guildMemberId,
|
||||
mic_minutes micMinutes,
|
||||
if(mic_minutes >= 120, 1, 0) AS micDay
|
||||
from guild_mic_statistics_policy2
|
||||
where stat_date >= #{statDate} and stat_date <= #{endDate}
|
||||
and partition_id = #{partitionId}
|
||||
and guild_member_id = #{guildMemberId}
|
||||
group by stat_date,guild_member_id
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Reference in New Issue
Block a user