公会-土耳其-公会水晶结算-兼容已退出的公会成员
This commit is contained in:
@@ -16,6 +16,8 @@ public interface GuildMemberMapper extends BaseMapper<GuildMember> {
|
||||
|
||||
List<GuildMember> listVaildGuildMemberByTime(@Param("guildId") Integer guildId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
|
||||
List<GuildMember> listGuildMemberByPartitionIdBetweenTime(@Param("partitionId") Integer partitionId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
|
||||
GuildMember selectGuildMemberByTime(@Param("guildId") Integer guildId, @Param("uid") Long uid, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
|
||||
List<GuildMember> listGuildOwnerByPartitionIdRegionId(@Param("partitionId") int partitionId, @Param("regionId") int regionId);
|
||||
|
@@ -96,7 +96,7 @@ public class GuildMemberService extends ServiceImpl<GuildMemberMapper, GuildMemb
|
||||
return this.lambdaQuery().eq(GuildMember::getPartitionId, partitionId).list();
|
||||
}
|
||||
|
||||
public List<GuildMember> listValidGuildMemberByPartitionId(int partitionId) {
|
||||
return this.lambdaQuery().eq(GuildMember::getEnable, Boolean.TRUE).eq(GuildMember::getPartitionId, partitionId).list();
|
||||
public List<GuildMember> listGuildMemberByPartitionIdBetweenTime(Integer partitionId, Date startTime, Date endTime) {
|
||||
return this.baseMapper.listGuildMemberByPartitionIdBetweenTime(partitionId, startTime, endTime);
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -43,9 +47,18 @@ public class GuildCrystalSettlementService {
|
||||
|
||||
//当天零点再前推1秒,相当于昨天23:59:59 给客户端周查询
|
||||
Date now = null == cycleTime? DateTimeUtil.addSeconds(DateTimeUtil.getBeginTimeOfDay(new Date()),-1): DateTimeUtil.getEndTimeOfDay(cycleTime);
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(now, partitionEnum.getClanMode());
|
||||
ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(now, partitionEnum.getZoneId());
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDate(zdt);
|
||||
String cycleEndDate = FullMonthCycleTimeUtil.getCycleEndDate(zdt);
|
||||
|
||||
List<GuildMember> guildMemberList = guildMemberService.listByPartitionId(partitionId);
|
||||
ZoneId zoneId = ZoneId.of(partitionEnum.getZoneId());
|
||||
ZonedDateTime zonedStartTime = ZonedDateTime.of(LocalDate.parse(cycleDate, DateTimeUtil.dateFormatter), LocalTime.MIN, zoneId);
|
||||
Date systemStartTime = Date.from(zonedStartTime.withZoneSameLocal(ZoneId.systemDefault()).toInstant());
|
||||
|
||||
ZonedDateTime zonedEndTime = ZonedDateTime.of(LocalDate.parse(cycleEndDate, DateTimeUtil.dateFormatter), LocalTime.MAX, zoneId);
|
||||
Date systemEndTime = Date.from(zonedEndTime.withZoneSameLocal(ZoneId.systemDefault()).toInstant());
|
||||
|
||||
List<GuildMember> guildMemberList = guildMemberService.listGuildMemberByPartitionIdBetweenTime(partitionId, systemStartTime, systemEndTime);
|
||||
if (CollectionUtils.isEmpty(guildMemberList)){
|
||||
return;
|
||||
}
|
||||
@@ -98,7 +111,7 @@ public class GuildCrystalSettlementService {
|
||||
|
||||
if (Double.compare(guildCrystal, 0d) > 0){
|
||||
//扣金币
|
||||
userPurseMapper.updateSettlementGolds(uid, guildCrystal);
|
||||
userPurseMapper.updateSettlementGuildCrystal(uid, guildCrystal);
|
||||
}
|
||||
|
||||
//结算记录
|
||||
|
@@ -30,6 +30,21 @@
|
||||
order by role_type asc , enable desc, create_time asc
|
||||
</select>
|
||||
|
||||
<select id="listGuildMemberByPartitionIdBetweenTime" resultType="com.accompany.business.model.guild.GuildMember">
|
||||
select fm.`id`, guild_id, uid, role_type, create_time, update_time, enable
|
||||
from guild_member fm
|
||||
inner join
|
||||
(select max(id) `id`
|
||||
from guild_member fm
|
||||
where 1=1
|
||||
<if test="partitionId != null">
|
||||
and fm.partition_id = #{partitionId}
|
||||
</if>
|
||||
and (fm.enable = 1 or (fm.update_time between #{startTime} and #{endTime}))
|
||||
group by uid) sub_fm on fm.id = sub_fm.id
|
||||
order by role_type asc , enable desc, create_time asc
|
||||
</select>
|
||||
|
||||
<select id="selectGuildMemberByTime" resultType="com.accompany.business.model.guild.GuildMember">
|
||||
select guild_id, uid, role_type, create_time, update_time, enable
|
||||
from guild_member fm
|
||||
|
Reference in New Issue
Block a user