37 Commits

Author SHA1 Message Date
a94cd19025 土耳其实时薪资fixed 2025-10-17 14:16:54 +08:00
aa89fcb38a 土耳其实时薪资 2025-10-17 14:16:53 +08:00
aed0db32f7 幸运24-额外-meta增加todayInput和todayOutput计数器 2025-10-17 12:16:28 +08:00
243692808d 幸运24-额外-判断和库存不足退回削峰 2025-10-16 19:12:17 +08:00
fe91bdb278 幸运24-额外-螺旋降级 2025-10-15 22:04:50 +08:00
780e1688f4 幸运24-额外-根据三天内投产比比较 2025-10-15 20:40:21 +08:00
3762f659b2 幸运24-额外-记录前两天的投产 2025-10-15 14:37:45 +08:00
6bf0d471ef boom后台分区支持 2025-10-14 19:36:26 +08:00
c31126332e h5_LOGIN 2025-10-14 18:52:00 +08:00
54ac0502af h5-recharge-login 2025-10-14 16:11:21 +08:00
77737e198e 幸运24-额外-分充值等级取值判断 2025-10-14 16:11:03 +08:00
4cbc4a0aea 清理废弃功能代码-补回-PageActivity静态活动页面 2025-10-14 16:11:03 +08:00
2d3ba717bc 用户等级生效fixed 2025-10-14 16:11:03 +08:00
aa9fa79fee 用户等级生效 2025-10-14 16:11:02 +08:00
c21684f505 h5登录返回分区id 2025-10-14 16:11:02 +08:00
f0b2a98d6a 独联体boom 2025-10-14 16:11:01 +08:00
9c20f10518 独联体公会列表 2025-10-14 16:11:01 +08:00
1cb9c0e124 角标配置入口-财富等级限制生效范围 2025-10-14 16:11:01 +08:00
a366102124 h5登录取消限制 2025-10-14 16:11:01 +08:00
71561f8695 web-api 2025-10-14 16:11:01 +08:00
23a516cd43 清理废弃功能代码-后台-补回GoldCoin下属的userService 2025-10-14 16:11:01 +08:00
937b05114d mq-调低每个消费组底层消费线程池的核心线程数 2025-10-14 16:11:01 +08:00
22afc77826 清理废弃功能代码-oauth 2025-10-14 16:11:01 +08:00
990d8b1eff pom-清理阿里云七牛云sdk 2025-10-14 16:11:01 +08:00
08cf3ea82f gitignore-将idea vscode等开发工具配置排除 2025-10-14 16:11:01 +08:00
1ac331ffc6 清理废弃功能代码-Anchor 2025-10-14 16:11:01 +08:00
32da77cd7d 清理废弃功能代码 2025-10-14 16:11:00 +08:00
1860b361cf pom-清理flow-team模块-清理admin模块里对flow-team的引用 2025-10-14 16:11:00 +08:00
83bacb7f60 pom-清理es依赖 2025-10-14 16:11:00 +08:00
d07df03acb 替换Jedis-sa-token集成Redisson 2025-10-14 16:11:00 +08:00
0d409347ba pom-清理flow-team模块-后台登录退出不再返回thymeleaf模板 2025-10-14 16:11:00 +08:00
f9bb3f5c12 替换Jedis-使用RedissonClient的StringCodec编解码器 2025-10-14 16:11:00 +08:00
7e49f5695e 替换Jedis-使用RedissonClient实现JedisService 2025-10-14 16:11:00 +08:00
3206b37374 替换Jedis-删除JedisService废弃api 2025-10-14 16:11:00 +08:00
a86a10cab7 pom-清理flow-team模块-清理业务入侵 2025-10-14 16:11:00 +08:00
7e0ded4c77 替换Jedis-整合JedisLockService到JedisService 2025-10-14 16:10:59 +08:00
f1e3242e87 pom-清理flow-team模块 2025-10-14 16:10:59 +08:00
24 changed files with 57 additions and 710 deletions

View File

@@ -1,61 +0,0 @@
package com.accompany.admin.service.guild;
import cn.hutool.core.date.DateUtil;
import com.accompany.business.model.guild.Guild;
import com.accompany.business.service.guild.GuildDiamondStatisticsHourService;
import com.accompany.business.service.guild.GuildService;
import com.accompany.business.service.user.UsersService;
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.Users;
import com.accompany.core.util.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class GuildDiamondStatisticsHourAdminService {
@Autowired
private GuildService guildService;
@Autowired
private UsersService usersService;
@Autowired
private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService;
public Page<GuildDiamondStatisticsHourVo> list(String startDate, String endDate,
Integer partitionId, Integer regionId,
Integer guildId, Long ownerErbanNo,
Integer pageNo, Integer pageSize, Long inviteUid) {
if (StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate)) {
Date date = new Date();
startDate = DateUtil.formatDate(DateUtil.offsetDay(date, -30));
endDate = DateUtil.formatDate(date);
}
if (guildId == null && ownerErbanNo != null) {
Users users = usersService.getUserByErbanNo(ownerErbanNo);
if (users == null) {
throw new ServiceException(BusiStatus.SERVERERROR,"公会长信息不存在");
}
Long ownerUid = users.getUid();
Guild guild = guildService.getVaildGuildByOwnerUid(ownerUid);
if (guild == null) {
throw new ServiceException(BusiStatus.SERVERERROR,"公会不存在");
}
guildId = guild.getId();
}
Page<GuildDiamondStatisticsHourVo> guildDiamondStatisticsHourVoPage =
guildDiamondStatisticsHourService.listGuildByStatDate(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid);
if (!CollectionUtils.isEmpty(guildDiamondStatisticsHourVoPage.getRecords())) {
for (GuildDiamondStatisticsHourVo vo: guildDiamondStatisticsHourVoPage.getRecords()) {
vo.setPartitionDesc(PartitionEnum.getByPartitionId(vo.getPartitionId()).getDesc());
}
}
return guildDiamondStatisticsHourVoPage;
}
}

View File

@@ -1,74 +0,0 @@
package com.accompany.admin.controller.guild;
import com.accompany.admin.service.guild.GuildDiamondStatisticsHourAdminService;
import com.accompany.business.param.BasePageParams;
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
import com.accompany.core.vo.BaseResponseVO;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@Api(tags = "公会小时钻石流水")
@RestController
@RequestMapping("/admin/guild/hourDiamondStatistics")
public class GuildDiamondStatisticsHourAdminController {
@Autowired
private GuildDiamondStatisticsHourAdminService guildDiamondStatisticsHourAdminService;
@ApiImplicitParams({
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true),
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长id"),
@ApiImplicitParam(name = "guildId", value = "公会id"),
@ApiImplicitParam(name = "startTime", value = "开始时间 yyyy-mm-dd", dataType = "string"),
@ApiImplicitParam(name = "endTime", value = "结束时间 yyyy-mm-dd", dataType = "string"),
@ApiImplicitParam(name = "pageNo", value = "页码", required = true),
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
})
@ApiOperation(value = "公会小时钻石流水列表", httpMethod = "GET")
@GetMapping("")
public BaseResponseVO<Page<GuildDiamondStatisticsHourVo>> list(BasePageParams basePageParams,
int partitionId, Integer regionId,
Integer guildId, Long ownerErbanNo) {
return new BaseResponseVO<>(guildDiamondStatisticsHourAdminService.list(basePageParams.getStartTime(), basePageParams.getEndTime(),
partitionId, regionId, guildId, ownerErbanNo, basePageParams.getPageNo(), basePageParams.getPageSize(), null));
}
@ApiImplicitParams({
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true),
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长id"),
@ApiImplicitParam(name = "guildId", value = "公会id"),
@ApiImplicitParam(name = "startTime", value = "开始时间 yyyy-mm-dd", dataType = "string"),
@ApiImplicitParam(name = "endTime", value = "结束时间 yyyy-mm-dd", dataType = "string"),
@ApiImplicitParam(name = "pageNo", value = "页码", required = true),
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
})
@ApiOperation(value = "公会小时钻石流水列表-导出", httpMethod = "GET")
@GetMapping("/export")
public void export(HttpServletResponse response, BasePageParams basePageParams,
Integer regionId,
Integer guildId, Long ownerErbanNo) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String excelName = URLEncoder.encode("公会小时钻石流水列表", StandardCharsets.UTF_8);
Page<GuildDiamondStatisticsHourVo> list = guildDiamondStatisticsHourAdminService.list(basePageParams.getStartTime(), basePageParams.getEndTime(),
basePageParams.getPartitionId(), regionId, guildId, ownerErbanNo, 1, -1, null);
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
EasyExcel.write(response.getOutputStream(), GuildDiamondStatisticsHourVo.class).sheet("公会小时钻石流水列表").doWrite(list.getRecords());
}
}

View File

@@ -1903,7 +1903,7 @@ public class Constant {
public static final Byte invalid = 0; //无效
}
public static String DEFAULT_DOMAIN = "https://cdn.moliparty.com";
public static String DEFAULT_DOMAIN = "https://img.molistar.xyz";
public static String DEFAULT_NICK = "Platform New User";
public static String DEFAULT_AVATAR = DEFAULT_DOMAIN + "/default_avatar_molistar.png";
public static String DEFAULT_CAR = DEFAULT_DOMAIN + "/default_car.png";

View File

@@ -38,7 +38,6 @@ public class DateTimeUtil {
public static final String DEFAULT_DATE_PATTERN__ = "yyyyMMddHHmmss";
public static final String DEFAULT_TIME_PATTERN = "HH:mm:ss";
public static final String DEFAULT_DATE_MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
public static final String DEFAULT_DATE_HOUR_PATTERN = "yyyy-MM-dd HH";
public static final String SIMPLE_MONTH_DATE_PATTERN = "M月d日";
public static final String DATE_HOUR_PATTERN = "yyyyMMddHH";
public static final String DATE_FORMAT_YEAR_MONTH = "yyyyMM";
@@ -66,7 +65,6 @@ public class DateTimeUtil {
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 dayHourFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_HOUR_PATTERN);
public static final DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
@@ -1160,9 +1158,4 @@ public class DateTimeUtil {
return Date.from(eastEightZonedDateTime.toInstant());
}
public static String getDayHourDate(Date time, String zoneId) {
ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(time, zoneId);
return zdt.format(dayHourFormatter);
}
}

View File

@@ -319,9 +319,9 @@ public enum I18nAlertEnum {
GOLD_BEAN_NAME("Gold Bean"),
DIAMOND_NAME("DIAMOND"),
GUILD_CREATE_TASK_MSG("你在公会的卓越表现,获得了精美奖励。快去背包看看吧!"),
EXTRA_GUILD_MSG("尊敬的用户,根据政策,您的公会长次日奖励{0}钻石已到账,您可以前往【我的钱包】查看"),
EXTRA_GUILD_MEMBER_MSG("尊敬的用户,根据政策,您的主播次日奖励{0}钻石已到账,您可以前往【我的钱包】查看"),
EXTRA_ROOM_MSG("尊敬的用户,根据政策,您每周一结算的奖励{0}钻石已到账,您可以前往【我的钱包】查看"),
EXTRA_GUILD_MSG("你的钻石奖励已经发放,请注意查收"),
EXTRA_GUILD_MEMBER_MSG("你的钻石奖励已经发放,请注意查收"),
EXTRA_ROOM_MSG("你的钻石奖励已经发放,请注意查收"),
;
private final String defaultStr;

View File

@@ -1,44 +0,0 @@
package com.accompany.business.model.guild;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 公会钻石流水统计按小时实体类
*
* @author
* @since 2025-10-17
*/
@Data
public class GuildDiamondStatisticsHour implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id" , type = IdType.AUTO)
private Long id;
private String statDate;
private Integer partitionId;
/**
* 统计日期yyyy--MM-dd HH
*/
private String statHour;
private Long guildMemberId;
private Long uid;
/**
* 所属厅id
*/
private Integer guildId;
private BigDecimal diamondNum;
/**
* 创建时间
*/
private Date createTime;
private Date updateTime;
}

View File

@@ -1,27 +0,0 @@
package com.accompany.business.vo.guild;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class GuildDiamondStatisticsHourVo {
@ExcelProperty("分区")
private String partitionDesc;
@ExcelProperty("公会id")
private Integer guildId;
@ExcelProperty("公会昵称")
private String guildName;
@ExcelProperty("公会长id")
private Long ownerErbanNo;
@ExcelProperty("公会长地区")
private String ownerRegionDesc;
@ExcelProperty("公会操作人")
private String adminUsername;
@ExcelProperty("主播人数")
private Integer memberNum;
@ExcelIgnore
private Integer partitionId;
@ExcelProperty("钻石流水")
private Double diamondNum;
}

View File

@@ -1,84 +0,0 @@
package com.accompany.business.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("lucky_24_y_user")
public class Lucky24YUser {
@TableId(type = IdType.INPUT)
/**
* 用户ID主键
*/
private Long uid;
/**
* 统计日期
*/
private String statDate;
/**
* 自动染色标识
*/
private Integer autoDye;
/**
* 管理员ID
*/
private Integer adminId;
/**
* 状态
*/
private Byte status;
/**
* 输出差值
*/
private Long outputDiff;
/**
* 当天次数
*/
private Integer todayNum;
/**
* 当天投产比
*/
private BigDecimal todayProductionRatio;
/**
* 昨天次数
*/
private Integer yesterdayNum;
/**
* 昨天投产比
*/
private BigDecimal yesterdayProductionRatio;
/**
* 两天前次数
*/
private Integer twoDaysAgoNum;
/**
* 两天前投产比
*/
private BigDecimal twoDaysAgoProductionRatio;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
}

View File

@@ -3,7 +3,10 @@ package com.accompany.business.event.listener;
import com.accompany.business.event.SuperLuckyGiftDiamondIncomeMessageEvent;
import com.accompany.business.message.SuperLuckyGiftDiamondIncomeMessage;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.service.guild.*;
import com.accompany.business.service.guild.GuildDiamondStatisticsDayService;
import com.accompany.business.service.guild.GuildMemberDiamondStatisticsService;
import com.accompany.business.service.guild.GuildMemberService;
import com.accompany.business.service.guild.GuildRankService;
import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service;
import com.accompany.business.service.guildsoviet.ExtraDiamondDayService;
import com.accompany.business.service.user.UsersService;
@@ -42,8 +45,6 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service;
@Autowired
private ExtraDiamondDayService extraDiamondDayService;
@Autowired
private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService;
@Async
@Override
@@ -83,9 +84,6 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
}
//todo 时区 zoneId
guildRankService.updateRank(guildMember.getGuildId(), guildMember.getUid(), totalDiamondNum, receiver.getPartitionId());
String dayHourDate = DateTimeUtil.getDayHourDate(time, partitionInfo.getZoneId());
guildDiamondStatisticsHourService.updateHourDiamondStatistics(statDate, dayHourDate, guildMember, totalDiamondNum);
}
if (Constant.ClanMode.SOVIET.equals(partitionInfo.getClanMode()) && roomUid != null && roomUid > 0L) {

View File

@@ -1,8 +0,0 @@
package com.accompany.business.mapper;
import com.accompany.business.entity.Lucky24YUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface Lucky24YUserMapper extends BaseMapper<Lucky24YUser> {
}

View File

@@ -1,29 +0,0 @@
package com.accompany.business.mybatismapper.guild;
import com.accompany.business.model.guild.GuildDiamondStatisticsHour;
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
/**
* 公会钻石流水统计按小时 Mapper 接口
*
* @author
* @since 2025-10-17
*/
public interface GuildDiamondStatisticsHourMapper extends BaseMapper<GuildDiamondStatisticsHour> {
int updateHourDiamondStatistics(@Param("statDate")String statDate, @Param("hourDate")String hourDate,
@Param("guildMemberId")Long guildMemberId, @Param("partitionId") Integer partitionId, @Param("guildId")Integer guildId, @Param("uid")Long uid,
@Param("diamond")Double diamond, @Param("time") Date time);
Page<GuildDiamondStatisticsHourVo> listGuildByStatDate(@Param("ipage") Page<GuildDiamondStatisticsHourVo> ipage,
@Param("startDate")String startDate, @Param("endDate")String endDate,
@Param("guildId") Integer guildId,
@Param("partitionId") Integer partitionId,
@Param("regionId") Integer regionId,
@Param("inviteUid") Long inviteUid);
}

View File

@@ -1,33 +0,0 @@
package com.accompany.business.service.guild;
import com.accompany.business.model.guild.GuildDiamondStatisticsHour;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.mybatismapper.guild.GuildDiamondStatisticsHourMapper;
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* 公会钻石流水统计按小时 服务实现类
*
* @author
* @since 2025-10-17
*/
@Service
public class GuildDiamondStatisticsHourService extends ServiceImpl<GuildDiamondStatisticsHourMapper, GuildDiamondStatisticsHour> {
public int updateHourDiamondStatistics(String statDate, String hourDate, GuildMember guildMember, double diamond) {
Date time = new Date();
int updated = baseMapper.updateHourDiamondStatistics(statDate, hourDate, guildMember.getId(), guildMember.getPartitionId(), guildMember.getGuildId(), guildMember.getUid(), diamond, time);
return updated;
}
public Page<GuildDiamondStatisticsHourVo> listGuildByStatDate(String statDate, String endDate, Integer partitionId, Integer regionId,
Integer guildId, Integer pageNo, Integer pageSize, Long inviteUid) {
Page<GuildDiamondStatisticsHourVo> page = new Page<>(pageNo, pageSize);
return baseMapper.listGuildByStatDate(page, statDate, endDate, guildId, partitionId, regionId, inviteUid);
}
}

View File

@@ -52,8 +52,6 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service;
@Autowired
private ExtraDiamondDayService extraDiamondDayService;
@Autowired
private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService;
@Async
public void insertGuildGiftRecord(GiftSendRecord giftSendRecord) {
@@ -99,10 +97,8 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
statDate = CycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
extraDiamondDayService.updateGuildExtraDiamond(guildMember, cycleDate, statDate, totalDiamondNum, 0D, createTime);
}
guildRankService.updateRank(guildGiftRecord);
String dayHourDate = DateTimeUtil.getDayHourDate(createTime, partitionInfo.getZoneId());
guildDiamondStatisticsHourService.updateHourDiamondStatistics(statDate, dayHourDate, guildMember, totalDiamondNum);
guildRankService.updateRank(guildGiftRecord);
Date zoneTime = DateTimeUtil.withZoneSameInstant(giftSendRecord.getCreateTime(), partitionInfo.getZoneId());
String monday = DateTimeUtil.convertDate(DateTimeUtil.getMondayDate(zoneTime), DateTimeUtil.DEFAULT_DATE_PATTERN);

View File

@@ -547,12 +547,15 @@ public class GuildManagerService {
Collections.shuffle(guildList);
guildList = guildList.subList(0, 10);
}
List<Integer> guildIds = guildList.stream().map(Guild::getId).collect(Collectors.toList());
Map<Integer, GuildSSRankDetailVo> ssMarkMap = ssGuildService.getSSMarkByGuildId(partitionInfo.getId(), guildIds);
Map<Integer, Integer> memberNumMap = guildService.getGuildMemberNumMapByGuildIds(guildIds);
for (Guild guild: guildList){
SimpleGuildVo vo = new SimpleGuildVo();
vo.setGuildId(guild.getId());
vo.setGuildName(guild.getName());
vo.setMemberNumLimit(guild.getMemberNumLimit());
vo.setOwnerUid(guild.getOwnerUid());
vo.setWeekIncome(weekIncomeMap.getOrDefault(guild.getId(), 0D));
voList.add(vo);
}

View File

@@ -120,16 +120,11 @@ public class GuildPolicy2Service {
guildPolicy2MyVo.setCurCycleDate(curCycleBeginDate);
List<GuildPolicy2PersonalVo> myMicData = guildMicStatisticsPolicy2Service.listPersonalMicData(cycleBeginDate, guildMemberId);
Integer micDay = 0;
if (CollectionUtils.isNotEmpty(myMicData)) {
micDay = myMicData.stream().collect(Collectors.summingInt(GuildPolicy2PersonalVo::getMicDay));
}
guildPolicy2MyVo.setMicDay(micDay);
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(), micDay);
GuildPolicy2SalaryVo salaryVo = guildDiamondWagePolicy2Service.getSalaryVo(diamondWageMap, guildPolicy2MyVo.getDiamondNum(), guildPolicy2MyVo.getMicDay());
guildPolicy2MyVo.setMySalary(salaryVo);
} else {
GuildDiamondStatisticsPolicy2Settle settleMap = guildDiamondStatisticsPolicy2SettleService
@@ -141,20 +136,22 @@ public class GuildPolicy2Service {
guildPolicy2MyVo.setDiamondNum(settleMap.getDiamondNum());
guildPolicy2MyVo.setMySalary(GuildPolicy2SalaryVo.builder()
.diamondNum(settleMap.getDiamondNum())
.diamondSalary(settleMap.getAnchorSalary())
.micSalary(settleMap.getAnchorMicSalary())
.ownerSalary(settleMap.getOwnerSalary())
.micDay(micDay)
.build());
}
this.fillPersonDetailData(cycleBeginDate, guildMemberId, myMicData, guildPolicy2MyVo, partitionEnum, micDay);
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, Integer micDay) {
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)) {
guildPolicy2MyVo.setMicDay(myData.stream().collect(Collectors.summingInt(GuildPolicy2PersonalVo::getMicDay)));
}
//填满整月天数
List<GuildPolicy2PersonalVo> resultMyDate = new ArrayList<>();
ZonedDateTime nowZoneDateTime = DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId());

View File

@@ -138,20 +138,19 @@ public class ExtraDiamondDayService {
boolean updateBatchById = guildExtraDiamondDayService.updateBatchById(guildExtraDiamondDays);
if (!updateBatchById) {
}
Map<Long, BigDecimal> sendGoldMap = new HashMap<>();
HashSet<Long> uids = new HashSet<>();
for (GuildExtraDiamondDay extraDiamondDay : guildExtraDiamondDays) {
BigDecimal sendGold = BigDecimal.ZERO;
if (extraDiamondDay.getAnchorExtraNum().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraNum().doubleValue(), ANCHOR_EXTRA_GOLD);
sendGold = sendGold.add(extraDiamondDay.getAnchorExtraNum());
uids.add(extraDiamondDay.getUid());
}
if (extraDiamondDay.getAnchorExtraLuckyNum().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(extraDiamondDay.getUid(), extraDiamondDay.getAnchorExtraLuckyNum().doubleValue(), ANCHOR_EXTRA_LUCKY_GOLD);
sendGold = sendGold.add(extraDiamondDay.getAnchorExtraLuckyNum());
uids.add(extraDiamondDay.getUid());
}
sendGoldMap.put(extraDiamondDay.getUid(), sendGold);
}
this.sendMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, sendGoldMap, partitionId);
String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, partitionId);
this.sendMessage(message, uids);
}
} catch (Exception e) {
log.error("sendGuildMemberExtraDiamondTask anchor error" , e);
@@ -205,14 +204,15 @@ public class ExtraDiamondDayService {
ownerExtra = ownerExtra == null ? add : ownerExtra.add(add);
ownerExtraMap.put(ownerUid, ownerExtra);
}
Map<Long, BigDecimal> sendGoldMap = new HashMap<>();
HashSet<Long> uids = new HashSet<>();
for (Map.Entry<Long, BigDecimal> decimalEntry : ownerExtraMap.entrySet()) {
if (decimalEntry.getValue().compareTo(BigDecimal.ZERO) > 0) {
userPurseService.addGold(decimalEntry.getKey(), decimalEntry.getValue().doubleValue(), OWNER_EXTRA_GOLD);
sendGoldMap.put(decimalEntry.getKey(), decimalEntry.getValue());
uids.add(decimalEntry.getKey());
}
}
this.sendMessage(I18nAlertEnum.EXTRA_GUILD_MSG, sendGoldMap, partitionId);
String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MSG, partitionId);
this.sendMessage(message, uids);
}
} catch (Exception e) {
log.error("sendGuildExtraDiamondTask anchor error" , e);
@@ -258,17 +258,18 @@ public class ExtraDiamondDayService {
},
BigDecimal::add
));
Map<Long, BigDecimal> sendGoldMap = new HashMap<>();
HashSet<Long> uids = new HashSet<>();
extraDiamondMap.entrySet().stream()
.filter(entry -> entry.getValue().compareTo(BigDecimal.ZERO) > 0)
.forEach(entry -> {
Long roomUid = entry.getKey();
BigDecimal extraDiamond = entry.getValue();
userPurseService.addGold(roomUid, extraDiamond.doubleValue(), ROOM_EXTRA_GOLD);
sendGoldMap.put(roomUid, extraDiamond);
uids.add(roomUid);
});
this.sendMessage(I18nAlertEnum.EXTRA_ROOM_MSG, sendGoldMap, partitionId);
String message = I18NMessageSourceUtil.getMessage(I18nAlertEnum.EXTRA_GUILD_MEMBER_MSG, partitionId);
this.sendMessage(message, uids);
} catch (Exception e) {
log.error("sendLastDayDiamondtask room error" , e);
} finally {
@@ -279,13 +280,9 @@ public class ExtraDiamondDayService {
}
@Async
public void sendMessage(I18nAlertEnum msg, Map<Long, BigDecimal> sendGoldMap, Integer partitionId) {
sendGoldMap.entrySet().forEach(entry -> {
if (entry.getValue().compareTo(BigDecimal.ZERO) <= 0) {
return;
}
String message = I18NMessageSourceUtil.getMessage(msg, new Object[]{entry.getValue()}, partitionId);
baseSendService.sendSystemMsg(entry.getKey().toString(), message);
public void sendMessage(String msg, Set<Long> uids) {
uids.forEach(uid -> {
baseSendService.sendSystemMsg(uid.toString(), msg);
});
}
}

View File

@@ -133,7 +133,7 @@ public class Lucky24ExtraService {
long todayTimes = userMetaMapSnapshot.getOrDefault(todayTimesKey, 0L).longValue();
String todayInputKey = String.join("_", today, INPUT_KEY);
long todayInput = userMetaMapSnapshot.getOrDefault(todayInputKey, 0L).longValue();
String todayOutputKey = String.join("_", today, OUTPUT_KEY);
String todayOutputKey = String.join("_", today, INPUT_KEY);
long todayOutput = userMetaMapSnapshot.getOrDefault(todayOutputKey, 0L).longValue();
// 第一层

View File

@@ -2,7 +2,6 @@ package com.accompany.business.service.lucky;
import com.accompany.business.dto.lucky.Lucky24GiftConfig;
import com.accompany.business.dto.lucky.Lucky24Result;
import com.accompany.common.constant.Constant;
import com.accompany.common.redis.RedisKey;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.PartitionEnum;
@@ -33,8 +32,6 @@ public class Lucky24UserMetaService {
public static final String EXTRA_POOL_COUNT = "extra_pool_count";
public static final String Y = "y";
private static final int HISTORY_QUEUE_SIZE = 40000;
@Autowired
@@ -146,6 +143,25 @@ public class Lucky24UserMetaService {
return stockResultVo;
}
public void updateExtraUserMeta(long senderUid, Integer partitionId, long input, long output) {
RMap<String, Number> userMetaMap = getUserMeta(senderUid);
long times = userMetaMap.addAndGet(TIMES_KEY, 1L).longValue();
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
long todayStartTimeLong = DateTimeUtil.getZonedTodayTime(partitionEnum.getZoneId());
String today = String.valueOf(todayStartTimeLong);
String todayTimesKey = String.join("_", today, TIMES_KEY);
long todayTimes = userMetaMap.addAndGet(todayTimesKey, 1L).longValue();
String todayInputKey = String.join("_", today, INPUT_KEY);
long todayInput = userMetaMap.addAndGet(todayInputKey, input).longValue();
String todayOutputKey = String.join("_", today, OUTPUT_KEY);
long todayOutput = userMetaMap.addAndGet(todayOutputKey, output).longValue();
log.info("[Lucky24] updateExtraUserMeta uid {} times {} today {} todayTime {} todayInput {} todayOutput {}",
senderUid, times, todayStartTimeLong, todayTimes, todayInput, todayOutput);
}
public void updateUserMeta(long senderUid, int partitionId, long input, long output) {
RList<Lucky24Result> historyQueue = getUserHistoryQueue(senderUid);
historyQueue.add(0, new Lucky24Result(null, null, input, output, null));
@@ -244,48 +260,10 @@ public class Lucky24UserMetaService {
}
}
//Y用户
if (userMetaMap.containsKey(Y)){
String yInputKey = String.join("_", Y, INPUT_KEY);
long yInput = userMetaMap.addAndGet(yInputKey, input).longValue();
String yOutputKey = String.join("_", Y, OUTPUT_KEY);
long yOutput = userMetaMap.addAndGet(yOutputKey, output).longValue();
log.info("[Lucky24] updateUserMeta Y uid {} YInput {} YOutput {}", senderUid, yInput, yOutput);
}
log.info("[Lucky24] updateUserMeta uid {} times {} todayInput {} todayOutput {} today {} todayTimes {} todayIntput {} todayOutput {}",
senderUid, times, totalInput, totalOutput, todayStartTimeLong, todayTimes, todayInput, todayOutput);
}
public void dyeYUser(Long uid) {
RMap<String, Number> userMetaMap = getUserMeta(uid);
userMetaMap.putIfAbsent(Y, Constant.Yes1No0.YES);
log.info("[Lucky24] dyeYUser uid {}", uid);
}
public boolean judgeYDiff(Long uid, long outputDiff) {
RMap<String, Number> userMetaMap = getUserMeta(uid);
String yInputKey = String.join("_", Y, INPUT_KEY);
long yInput = userMetaMap.getOrDefault(yInputKey, 0L).longValue();
String yOutputKey = String.join("_", Y, OUTPUT_KEY);
long yOutput = userMetaMap.getOrDefault(yOutputKey, 0L).longValue();
long judgeDiff = yInput - yOutput;
if (judgeDiff < outputDiff){
log.info("[Lucky24] judgeYDiff false uid {} judgeDiff {} outputDiff {}", uid, judgeDiff, outputDiff);
return false;
}
log.info("[Lucky24] judgeYDiff true uid {} judgeDiff {} outputDiff {}", uid, judgeDiff, outputDiff);
userMetaMap.fastRemove(Y, yInputKey, yOutputKey);
return true;
}
public RMap<String, Number> getUserMeta(Long uid) {
return redissonClient.getMap(RedisKey.lucky_24_user_meta.getKey(uid.toString()));
}

View File

@@ -1,139 +0,0 @@
package com.accompany.business.service.lucky;
import com.accompany.business.entity.Lucky24YUser;
import com.accompany.business.mybatismapper.lucky.Lucky24StatMapper;
import com.accompany.common.constant.Constant;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.sharding.mapper.Lucky24RecordMapper;
import com.accompany.sharding.vo.Lucky24PersonalStat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.concurrent.ThreadPoolExecutor;
@Service
public class Lucky24YService {
@Autowired
private Lucky24RecordMapper recordMapper;
@Autowired
private Lucky24StatMapper statMapper;
@Autowired
private Lucky24YUserService lucky24YUserService;
@Autowired
private Lucky24UserMetaService userMetaService;
@Resource(name = "biz-executor")
private ThreadPoolExecutor bizExecutor;
public void dye(Integer partitionId, Date systemStartTime, Date systemEndTime, ZonedDateTime zdt) {
String zoneDate = zdt.format(DateTimeUtil.dateFormatter);
Map<Long, List<Lucky24PersonalStat>> personalStatMap = new HashMap<>();
List<Lucky24PersonalStat> todayPersonalStatList = recordMapper.listPersonal(zoneDate, partitionId, null, systemStartTime, systemEndTime, null, null);
for (Lucky24PersonalStat item : todayPersonalStatList){
List<Lucky24PersonalStat> statList = personalStatMap.get(item.getUid());
if (CollectionUtils.isEmpty(statList)){
statList = new ArrayList<>();
personalStatMap.put(item.getUid(), statList);
}
statList.add(item);
}
String zoneYesterday = zdt.minusDays(1L).format(DateTimeUtil.dateFormatter);
String zoneTwoDayAgo = zdt.minusDays(2L).format(DateTimeUtil.dateFormatter);
List<Lucky24PersonalStat> twoDayAgePersonalStatList = statMapper.listPersonalStat(partitionId, null, null, null, zoneTwoDayAgo, zoneYesterday);
for (Lucky24PersonalStat item : twoDayAgePersonalStatList){
List<Lucky24PersonalStat> statList = personalStatMap.get(item.getUid());
if (CollectionUtils.isEmpty(statList)){
statList = new ArrayList<>();
personalStatMap.put(item.getUid(), statList);
}
statList.add(item);
}
Map<Long, Lucky24YUser> yUserMap = lucky24YUserService.mapValidYUser();
for (Map.Entry<Long, List<Lucky24PersonalStat>> entry : personalStatMap.entrySet()){
Long uid = entry.getKey();
Lucky24YUser yUser = yUserMap.get(uid);
if (yUser != null){
if (Constant.Yes1No0.YES == yUser.getAutoDye()){
bizExecutor.execute(() -> {
tryClearYUser(yUser);
});
}
continue;
}
List<Lucky24PersonalStat> personalStatList = entry.getValue();
if (CollectionUtils.isEmpty(personalStatList) || personalStatList.size() <= 2){
continue;
}
long totalNum = personalStatList.stream().mapToLong(Lucky24PersonalStat::getNum).sum();
boolean threeDayProductionRatioOverThreshold = personalStatList.stream().anyMatch(item -> item.getProductionRatio().compareTo(BigDecimal.ONE) > 0);
if (totalNum < 2000L || !threeDayProductionRatioOverThreshold){
continue;
}
bizExecutor.execute(() -> {
tryDyeYUser(uid, zoneDate, personalStatList);
});
}
}
private void tryDyeYUser(Long uid, String statDate, List<Lucky24PersonalStat> personalStatList) {
Date now = new Date();
Lucky24YUser yUser = new Lucky24YUser();
yUser.setUid(uid);
yUser.setStatDate(statDate);
yUser.setAutoDye(Constant.Yes1No0.YES);
yUser.setStatus(Constant.StatusV2.valid);
List<Lucky24PersonalStat> sortedPersonalStatList = personalStatList.stream().sorted(Comparator.comparing(Lucky24PersonalStat::getDate).reversed()).toList();
Lucky24PersonalStat todayStat = sortedPersonalStatList.get(0);
yUser.setTodayNum(todayStat.getNum().intValue());
yUser.setTodayProductionRatio(todayStat.getProductionRatio());
Lucky24PersonalStat yesterdayStat = sortedPersonalStatList.get(1);
yUser.setYesterdayNum(yesterdayStat.getNum().intValue());
yUser.setYesterdayProductionRatio(yesterdayStat.getProductionRatio());
Lucky24PersonalStat twoDaysAgoStat = sortedPersonalStatList.get(2);
yUser.setTwoDaysAgoNum(twoDaysAgoStat.getNum().intValue());
yUser.setTwoDaysAgoProductionRatio(twoDaysAgoStat.getProductionRatio());
yUser.setCreateTime(now);
yUser.setUpdateTime(now);
lucky24YUserService.saveOrUpdate(yUser);
userMetaService.dyeYUser(uid);
}
private void tryClearYUser(Lucky24YUser yUser) {
if (!userMetaService.judgeYDiff(yUser.getUid(), yUser.getOutputDiff())){
return;
}
Date now = new Date();
yUser.setStatus(Constant.StatusV2.invalid);
yUser.setUpdateTime(now);
lucky24YUserService.updateById(yUser);
}
}

View File

@@ -1,23 +0,0 @@
package com.accompany.business.service.lucky;
import com.accompany.business.entity.Lucky24YUser;
import com.accompany.business.mapper.Lucky24YUserMapper;
import com.accompany.common.constant.Constant;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class Lucky24YUserService extends ServiceImpl<Lucky24YUserMapper, Lucky24YUser> {
public Map<Long, Lucky24YUser> mapValidYUser(){
return lambdaQuery()
.eq(Lucky24YUser::getStatus, Constant.StatusV2.valid)
.list().stream()
.collect(Collectors.toMap(Lucky24YUser::getUid, v -> v));
}
}

View File

@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.accompany.business.mybatismapper.guild.GuildDiamondStatisticsHourMapper">
<update id="updateHourDiamondStatistics">
INSERT INTO `guild_diamond_statistics_hour` (`stat_date`, `stat_hour`, `guild_member_id`, `partition_id`, `uid`,
`guild_id`, `diamond_num`, `create_time`, `update_time`)
VALUES (#{statDate}, #{hourDate}, #{guildMemberId}, #{partitionId}, #{uid}, #{guildId}, #{diamond}, #{time},
#{time}) ON DUPLICATE KEY
UPDATE
diamond_num = diamond_num +
values (diamond_num), update_time =
values (update_time)
</update>
<select id="listGuildByStatDate" resultType="com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo">
select gd.guild_id guildId,
ANY_VALUE(g.name) guildName,
sum(gd.diamond_num) diamondNum,
ANY_VALUE(u.erban_no) ownerErbanNo,
ANY_VALUE(ri.name) ownerRegionDesc,
ANY_VALUE(au.username) adminUsername,
ifnull(a.memberNum, 0) memberNum,
gd.partition_id partitionId
from guild_diamond_statistics_hour gd
inner join guild g on g.id = gd.guild_id
inner join users u on u.uid = g.owner_uid
left join region_info ri on ri.id = u.region_id
left join admin_user au on au.id = g.admin_id
left join (select guild_id, count(distinct uid) memberNum from guild_member where `enable` = 1 and role_type != 1 GROUP BY guild_id) a on a.guild_id = g.id
where gd.stat_hour &gt;= #{startDate}
and gd.stat_hour &lt;= #{endDate}
<if test="partitionId != null and partitionId != 0">
and gd.partition_id = #{partitionId}
</if>
<if test="regionId != null and regionId != 0">
and u.region_id = #{regionId}
</if>
<if test="guildId != null">
and gd.guild_id = #{guildId}
</if>
<if test="inviteUid != null">
and g.invite_uid = #{inviteUid}
</if>
group by gd.guild_id
ORDER BY diamondNum desc,memberNum desc, gd.guild_id desc
</select>
</mapper>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.accompany.business.mapper.Lucky24YUserMapper">
</mapper>

View File

@@ -61,7 +61,7 @@ public class MonthRankTask extends BaseTask {
public void monthRankTaskGMT8() {
Date date = new Date();
Date lastMonthDate = DateUtil.offsetMonth(date, -1);
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH, PartitionEnum.ENGLISH2, PartitionEnum.SOVIET);
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH, PartitionEnum.ENGLISH2);
for (PartitionEnum partitionEnum : partitionEnumList) {
try {
log.info("=-=monthRankTaskGMT8.krypton_rank=-=:date:{},lastMonthDate:{}", DateUtil.formatDateTime(date), lastMonthDate);

View File

@@ -3,7 +3,6 @@ package com.accompany.scheduler.task.luckyBag;
import com.accompany.business.message.Lucky24Message;
import com.accompany.business.service.gift.Lucky24MessageService;
import com.accompany.business.service.lucky.Lucky24RecordService;
import com.accompany.business.service.lucky.Lucky24YService;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.model.PartitionInfo;
import com.accompany.core.service.partition.PartitionInfoService;
@@ -30,8 +29,6 @@ public class Lucky24Task {
private Lucky24RecordService service;
@Autowired
private Lucky24MessageService lucky24MessageService;
@Autowired
private Lucky24YService lucky24YService;
/**
* 重新消费队列的消息
@@ -100,41 +97,4 @@ public class Lucky24Task {
}
}
@Scheduled(cron = "0 0 * * * ? ")
public void lucky24DyeY() {
Date now = new Date();
List<PartitionInfo> partitionInfoList = partitionInfoService.listAll();
for (PartitionInfo partitionInfo : partitionInfoList) {
ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(now, partitionInfo.getZoneId());
int times = zdt.getHour() / 3;
int mod = zdt.getHour() % 3;
log.info("[lucky24DyeY] zdt {} zdtHour {} times {} mod {}",
zdt, zdt.getHour(), times, mod);
if (times == 0 || mod > 0){
return;
}
try {
// 获取当天的第一秒
ZonedDateTime startOfDay = zdt.withHour(0)
.withMinute(0)
.withSecond(0)
.withNano(0);
Date systemStartTime = DateTimeUtil.converLocalDateTimeToDate(startOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
Date startTime = DateTimeUtil.converLocalDateTimeToDate(startOfDay.toLocalDateTime());
// 获取当天的最后一秒
ZonedDateTime endOfDay = zdt;
Date systemEndTime = DateTimeUtil.converLocalDateTimeToDate(endOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
lucky24YService.dye(partitionInfo.getId(), systemStartTime, systemEndTime, zdt);
} catch (Exception e){
log.error("[lucky24DyeY] exception {}", e.getMessage(), e);
}
}
}
}