独联体-房间每周一发额外奖励
This commit is contained in:
@@ -56,6 +56,10 @@ public class GuildExtraDiamondDay implements Serializable {
|
||||
* 主播lucky额外奖励
|
||||
*/
|
||||
private BigDecimal anchorExtraLuckyNum;
|
||||
/**
|
||||
* 主播奖励是否已经发放0-未发放
|
||||
*/
|
||||
private Byte anchorSendStatus;
|
||||
/**
|
||||
* 公会长普通额外奖励
|
||||
*/
|
||||
|
@@ -38,7 +38,7 @@ public class RoomExtraDiamondDay implements Serializable {
|
||||
/**
|
||||
* 房间UID
|
||||
*/
|
||||
private Integer roomUid;
|
||||
private Long roomUid;
|
||||
/**
|
||||
* 普通礼物钻石流水
|
||||
*/
|
||||
@@ -55,6 +55,10 @@ public class RoomExtraDiamondDay implements Serializable {
|
||||
* 房间lucky额外奖励
|
||||
*/
|
||||
private BigDecimal roomExtraLuckyNum;
|
||||
/**
|
||||
* 是否已发放
|
||||
*/
|
||||
private Byte sendStatus;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
@@ -78,8 +78,7 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
|
||||
}
|
||||
|
||||
if (partitionInfo.getId() == PartitionEnum.SOVIET.getId()) {
|
||||
extraDiamondDayService.updateGuildExtraDiamond(guildMember, cycleDate, statDate, 0D, message.getTotalDiamondNum(), time);
|
||||
extraDiamondDayService.updateRoomExtraDiamond(guildMember, receiverUid, partitionInfo.getId(), statDate,
|
||||
extraDiamondDayService.updateExtraDiamond(guildMember, receiverUid, partitionInfo.getId(), cycleDate, statDate,
|
||||
message.getRoomUid(),0D, message.getTotalDiamondNum(), time);
|
||||
}
|
||||
}
|
||||
|
@@ -19,5 +19,6 @@ public interface GuildExtraDiamondDayMapper extends BaseMapper<GuildExtraDiamond
|
||||
@Param("guildMemberId") Long guildMemberId, @Param("guildId") Integer guildId,
|
||||
@Param("ownerUid") Long ownerUid, @Param("uid") Long uid, @Param("diamondNum") BigDecimal diamondNum,
|
||||
@Param("luckyDiamondNum") BigDecimal luckyDiamondNum, @Param("ownerDiamondNum") BigDecimal ownerDiamondNum,
|
||||
@Param("ownerLuckyDiamond") BigDecimal ownerLuckyDiamond, @Param("time") Date time);
|
||||
@Param("ownerLuckyDiamond") BigDecimal ownerLuckyDiamond, @Param("anchorDiamondNum") BigDecimal anchorDiamondNum,
|
||||
@Param("anchorLuckyDiamond") BigDecimal anchorLuckyDiamond, @Param("time") Date time);
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ import com.accompany.business.model.extradiamond.RoomExtraDiamondDay;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -18,5 +19,6 @@ public interface RoomExtraDiamondDayMapper extends BaseMapper<RoomExtraDiamondDa
|
||||
@Param("uid") Long uid, @Param("partitionId") Integer partitionId,
|
||||
@Param("statDate") String statDate, @Param("roomUid") Long roomUid,
|
||||
@Param("normalDiamondNum") Double normalDiamondNum, @Param("luckyDiamondNum") Double luckyDiamondNum,
|
||||
@Param("roomDiamondNum") BigDecimal roomDiamondNum, @Param("roomLuckyDiamond") BigDecimal roomLuckyDiamond,
|
||||
@Param("time") Date time);
|
||||
}
|
||||
|
@@ -1,5 +1,8 @@
|
||||
package com.accompany.business.service.extradiamond;
|
||||
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.dto.ExtraDiamondRateConfigDto;
|
||||
import com.accompany.business.model.extradiamond.GuildExtraDiamondDay;
|
||||
import com.accompany.business.model.extradiamond.RoomExtraDiamondDay;
|
||||
@@ -26,6 +29,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.accompany.common.constant.Constant.SysConfId.EXTRA_DIAMOND_RATE_CONFIG;
|
||||
import static com.accompany.core.enumeration.BillObjTypeEnum.*;
|
||||
@@ -48,23 +52,33 @@ public class ExtraDiamondDayService {
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
|
||||
public void updateExtraDiamond(GuildMember guildMember, Long uid, Integer partitionId, String cycleDate, String statDate, Long roomUid,
|
||||
Double normalDiamondNum, Double luckyDiamondNum, Date time) {
|
||||
ExtraDiamondRateConfigDto diamondRateConfig = this.getExtraDiamondRateConfig(guildMember.getPartitionId());
|
||||
|
||||
updateGuildExtraDiamond(guildMember, cycleDate, statDate, normalDiamondNum, luckyDiamondNum, time, diamondRateConfig);
|
||||
|
||||
updateRoomExtraDiamond(guildMember, uid, partitionId, statDate, roomUid, 0D, luckyDiamondNum, time, diamondRateConfig);
|
||||
}
|
||||
|
||||
public void updateGuildExtraDiamond(GuildMember guildMember, String cycleDate, String statDate,
|
||||
Double normalDiamondNum, Double luckyDiamondNum, Date time) {
|
||||
Double normalDiamondNum, Double luckyDiamondNum, Date time, ExtraDiamondRateConfigDto diamondRateConfig) {
|
||||
if (guildMember == null) {
|
||||
return;
|
||||
}
|
||||
Long guildMemberId = guildMember.getId();
|
||||
Integer guildId = guildMember.getGuildId();
|
||||
Integer partitionId = guildMember.getPartitionId();
|
||||
ExtraDiamondRateConfigDto diamondRateConfig = this.getExtraDiamondRateConfig(guildMember.getPartitionId());
|
||||
BigDecimal decimalNormal = BigDecimal.valueOf(normalDiamondNum);
|
||||
BigDecimal decimalLucky = BigDecimal.valueOf(luckyDiamondNum);
|
||||
BigDecimal ownerDiamondNum = diamondRateConfig.getOwnerExtraRate().multiply(decimalNormal);
|
||||
BigDecimal ownerLuckyDiamond = diamondRateConfig.getOwnerExtraLuckyRate().multiply(decimalLucky);
|
||||
BigDecimal anchorDiamondNum = diamondRateConfig.getAnchorExtraRate().multiply(decimalNormal);
|
||||
BigDecimal anchorLuckyDiamond = diamondRateConfig.getAnchorExtraLuckyRate().multiply(decimalLucky);
|
||||
Guild guild = guildService.getVaildGuildById(guildId);
|
||||
Long ownerUid = guild.getOwnerUid();
|
||||
guildExtraDiamondDayService.updateExtraDiamond(cycleDate, statDate, partitionId, guildMemberId, guildId, ownerUid, guildMember.getUid(),
|
||||
decimalNormal, decimalLucky, ownerDiamondNum, ownerLuckyDiamond, time);
|
||||
decimalNormal, decimalLucky, ownerDiamondNum, ownerLuckyDiamond, anchorDiamondNum, anchorLuckyDiamond, time);
|
||||
if (ownerDiamondNum.compareTo(BigDecimal.ZERO) > 0) {
|
||||
userPurseService.addGold(ownerUid, ownerDiamondNum.doubleValue(), OWNER_EXTRA_GOLD);
|
||||
}
|
||||
@@ -74,7 +88,7 @@ public class ExtraDiamondDayService {
|
||||
}
|
||||
|
||||
public void updateRoomExtraDiamond(GuildMember guildMember, Long uid, Integer partitionId, String statDate, Long roomUid,
|
||||
Double normalDiamondNum, Double luckyDiamondNum, Date time) {
|
||||
Double normalDiamondNum, Double luckyDiamondNum, Date time, ExtraDiamondRateConfigDto diamondRateConfig) {
|
||||
if (roomUid == null) {
|
||||
return;
|
||||
}
|
||||
@@ -84,7 +98,12 @@ public class ExtraDiamondDayService {
|
||||
guildMemberId = guildMember.getId();
|
||||
guildId = guildMember.getGuildId();
|
||||
}
|
||||
roomExtraDiamondDayService.updateExtraDiamond(guildMemberId, guildId, uid, partitionId, statDate, roomUid, normalDiamondNum, luckyDiamondNum, time);
|
||||
BigDecimal decimalNormal = BigDecimal.valueOf(normalDiamondNum);
|
||||
BigDecimal decimalLucky = BigDecimal.valueOf(luckyDiamondNum);
|
||||
BigDecimal roomDiamondNum = diamondRateConfig.getRoomExtraRate().multiply(decimalNormal);
|
||||
BigDecimal roomLuckyDiamond = diamondRateConfig.getRoomExtraLuckyRate().multiply(decimalLucky);
|
||||
roomExtraDiamondDayService.updateExtraDiamond(guildMemberId, guildId, uid, partitionId, statDate, roomUid,
|
||||
normalDiamondNum, luckyDiamondNum, roomDiamondNum, roomLuckyDiamond, time);
|
||||
}
|
||||
|
||||
private ExtraDiamondRateConfigDto getExtraDiamondRateConfig(Integer partitionId) {
|
||||
@@ -97,14 +116,13 @@ public class ExtraDiamondDayService {
|
||||
}
|
||||
|
||||
public void sendGuildExtraDiamondTask(Integer partitionId, String statDate) {
|
||||
ExtraDiamondRateConfigDto diamondRateConfig = this.getExtraDiamondRateConfig(partitionId);
|
||||
Date updateTime = new Date();
|
||||
String lockKey = "sendLastDayDiamondtask_anchor_" + partitionId + "_" + statDate;
|
||||
RLock lock = redissonClient.getLock(lockKey);
|
||||
boolean locked = false;
|
||||
try {
|
||||
locked = lock.tryLock(20, TimeUnit.SECONDS);
|
||||
if (!locked){
|
||||
if (!locked) {
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
Map<Long, GuildMember> guildMemberMap = guildMemberService.mapByPartitionId(partitionId);
|
||||
@@ -117,14 +135,11 @@ public class ExtraDiamondDayService {
|
||||
Iterator<GuildExtraDiamondDay> iterator = guildExtraDiamondDays.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
GuildExtraDiamondDay diamondDay = iterator.next();
|
||||
if (guildMemberMap.get(diamondDay.getGuildMemberId()) == null) {
|
||||
if (guildMemberMap.get(diamondDay.getGuildMemberId()) == null || diamondDay.getAnchorSendStatus() == 1) {
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
BigDecimal anchorExtraNum = diamondDay.getDiamondNum().multiply(diamondRateConfig.getAnchorExtraRate());
|
||||
BigDecimal anchorExtraLuckyNum = diamondDay.getLuckyDiamondNum().multiply(diamondRateConfig.getAnchorExtraLuckyRate());
|
||||
diamondDay.setAnchorExtraNum(anchorExtraNum);
|
||||
diamondDay.setAnchorExtraLuckyNum(anchorExtraLuckyNum);
|
||||
diamondDay.setAnchorSendStatus((byte) 1);
|
||||
diamondDay.setUpdateTime(updateTime);
|
||||
}
|
||||
if (CollectionUtils.isEmpty(guildExtraDiamondDays)) {
|
||||
@@ -145,47 +160,66 @@ public class ExtraDiamondDayService {
|
||||
} catch (Exception e) {
|
||||
log.error("sendLastDayDiamondtask anchor error" , e);
|
||||
} finally {
|
||||
if (locked){
|
||||
if (locked) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void sendRoomExtraDiamondTask(Integer partitionId, String statDate) {
|
||||
ExtraDiamondRateConfigDto diamondRateConfig = this.getExtraDiamondRateConfig(partitionId);
|
||||
Date updateTime = new Date();
|
||||
String lockKey = "sendLastDayDiamondtask_room_" + partitionId + "_" + statDate;
|
||||
public void sendRoomExtraDiamondTask(Integer partitionId, Date now) {
|
||||
Date lastWeek = DateUtil.offsetWeek(now, -1);
|
||||
DateTime mondayOfLastWeek = DateUtil.beginOfWeek(lastWeek);
|
||||
DateTime sundayOfLastWeek = DateUtil.endOfWeek(lastWeek);
|
||||
|
||||
List<String> statDateList = DateUtil.rangeToList(mondayOfLastWeek, sundayOfLastWeek, DateField.DAY_OF_MONTH)
|
||||
.stream()
|
||||
.map(d -> DateUtil.format(d, "yyyy-MM-dd"))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
String lockKey = "sendLastDayDiamondtask_room_" + partitionId;
|
||||
RLock lock = redissonClient.getLock(lockKey);
|
||||
boolean locked = false;
|
||||
try {
|
||||
locked = lock.tryLock(20, TimeUnit.SECONDS);
|
||||
if (!locked){
|
||||
if (!locked) {
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
|
||||
List<RoomExtraDiamondDay> roomExtraDiamondDays = roomExtraDiamondDayService.listByPartitionStatDate(partitionId, statDate);
|
||||
if (CollectionUtils.isNotEmpty(roomExtraDiamondDays)) {
|
||||
for (RoomExtraDiamondDay roomExtraDiamondDay : roomExtraDiamondDays) {
|
||||
BigDecimal anchorExtraNum = roomExtraDiamondDay.getDiamondNum().multiply(diamondRateConfig.getRoomExtraRate());
|
||||
BigDecimal anchorExtraLuckyNum = roomExtraDiamondDay.getLuckyDiamondNum().multiply(diamondRateConfig.getRoomExtraLuckyRate());
|
||||
roomExtraDiamondDay.setRoomExtraNum(anchorExtraNum);
|
||||
roomExtraDiamondDay.setRoomExtraLuckyNum(anchorExtraLuckyNum);
|
||||
roomExtraDiamondDay.setUpdateTime(updateTime);
|
||||
}
|
||||
boolean updateBatchById = roomExtraDiamondDayService.updateBatchById(roomExtraDiamondDays);
|
||||
if (updateBatchById) {
|
||||
for (RoomExtraDiamondDay extraDiamondDay : roomExtraDiamondDays) {
|
||||
BigDecimal addGold = extraDiamondDay.getRoomExtraNum().add(extraDiamondDay.getRoomExtraLuckyNum());
|
||||
if (addGold.compareTo(BigDecimal.ZERO) > 0) {
|
||||
userPurseService.addGold(extraDiamondDay.getUid(), addGold.doubleValue(), ROOM_EXTRA_GOLD);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<RoomExtraDiamondDay> roomExtraDiamondDays = roomExtraDiamondDayService.listByPartitionStatDateList(partitionId, statDateList);
|
||||
if (CollectionUtils.isEmpty(roomExtraDiamondDays)) {
|
||||
return;
|
||||
}
|
||||
roomExtraDiamondDays = roomExtraDiamondDays.stream()
|
||||
.filter(item -> item.getSendStatus() == null || item.getSendStatus() == 0)
|
||||
.collect(Collectors.toList());
|
||||
roomExtraDiamondDays.forEach(item -> {
|
||||
item.setSendStatus((byte) 1);
|
||||
});
|
||||
|
||||
boolean updateBatchById = roomExtraDiamondDayService.updateBatchById(roomExtraDiamondDays);
|
||||
if (!updateBatchById) {
|
||||
return;
|
||||
}
|
||||
Map<Long, BigDecimal> extraDiamondMap = roomExtraDiamondDays.stream()
|
||||
.collect(Collectors.toMap(
|
||||
RoomExtraDiamondDay::getRoomUid,
|
||||
item -> {
|
||||
BigDecimal extraNum = item.getRoomExtraNum() != null ? item.getRoomExtraNum() : BigDecimal.ZERO;
|
||||
BigDecimal extraLuckyNum = item.getRoomExtraLuckyNum() != null ? item.getRoomExtraLuckyNum() : BigDecimal.ZERO;
|
||||
return extraNum.add(extraLuckyNum);
|
||||
},
|
||||
BigDecimal::add
|
||||
));
|
||||
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);
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error("sendLastDayDiamondtask room error" , e);
|
||||
} finally {
|
||||
if (locked){
|
||||
if (locked) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
@@ -22,9 +22,10 @@ public class GuildExtraDiamondDayService extends ServiceImpl<GuildExtraDiamondDa
|
||||
|
||||
public int updateExtraDiamond(String cycleDate, String statDate, Integer partitionId, Long guildMemberId,
|
||||
Integer guildId, Long ownerUid, Long uid, BigDecimal diamondNum,
|
||||
BigDecimal luckyDiamond, BigDecimal ownerDiamondNum, BigDecimal ownerLuckyDiamond, Date time) {
|
||||
BigDecimal luckyDiamond, BigDecimal ownerDiamondNum, BigDecimal ownerLuckyDiamond,
|
||||
BigDecimal anchorDiamondNum, BigDecimal anchorLuckyDiamond, Date time) {
|
||||
return baseMapper.updateExtraDiamond(cycleDate, statDate, partitionId, guildMemberId, guildId, ownerUid, uid,
|
||||
diamondNum, luckyDiamond, ownerDiamondNum, ownerLuckyDiamond, time);
|
||||
diamondNum, luckyDiamond, ownerDiamondNum, ownerLuckyDiamond, anchorDiamondNum, anchorLuckyDiamond, time);
|
||||
}
|
||||
|
||||
public List<GuildExtraDiamondDay> listByPartitionStatDate(Integer partitionId, String statDate) {
|
||||
|
@@ -21,8 +21,10 @@ import java.util.List;
|
||||
public class RoomExtraDiamondDayService extends ServiceImpl<RoomExtraDiamondDayMapper, RoomExtraDiamondDay> {
|
||||
|
||||
public int updateExtraDiamond(Long guildMemberId, Integer guildId, Long uid, Integer partitionId,
|
||||
String statDate, Long roomUid, Double normalDiamondNum, Double luckyDiamondNum, Date time) {
|
||||
return baseMapper.updateExtraDiamond(guildMemberId, guildId, uid, partitionId, statDate, roomUid, normalDiamondNum, luckyDiamondNum, time);
|
||||
String statDate, Long roomUid, Double normalDiamondNum, Double luckyDiamondNum,
|
||||
BigDecimal roomDiamondNum, BigDecimal roomLuckyDiamond, Date time) {
|
||||
return baseMapper.updateExtraDiamond(guildMemberId, guildId, uid, partitionId, statDate, roomUid,
|
||||
normalDiamondNum, luckyDiamondNum, roomDiamondNum, roomLuckyDiamond, time);
|
||||
}
|
||||
|
||||
public List<RoomExtraDiamondDay> listByPartitionStatDate(Integer partitionId, String statDate) {
|
||||
@@ -33,4 +35,13 @@ public class RoomExtraDiamondDayService extends ServiceImpl<RoomExtraDiamondDayM
|
||||
.le(RoomExtraDiamondDay::getRoomExtraLuckyNum, BigDecimal.ZERO);
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
public List<RoomExtraDiamondDay> listByPartitionStatDateList(Integer partitionId, List<String> statDates) {
|
||||
LambdaQueryWrapper<RoomExtraDiamondDay> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(RoomExtraDiamondDay::getPartitionId, partitionId)
|
||||
.in(RoomExtraDiamondDay::getStatDate, statDates)
|
||||
.le(RoomExtraDiamondDay::getRoomExtraNum, BigDecimal.ZERO)
|
||||
.le(RoomExtraDiamondDay::getRoomExtraLuckyNum, BigDecimal.ZERO);
|
||||
return list(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
@@ -110,10 +110,9 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
}
|
||||
|
||||
if (partitionInfo.getId() == PartitionEnum.SOVIET.getId()) {
|
||||
extraDiamondDayService.updateGuildExtraDiamond(guildMember, cycleDate, statDate, totalDiamondNum, 0D, createTime);
|
||||
statDate = DateTimeUtil.convertWithZoneId(createTime, partitionInfo.getZoneId()).format(dateFormatter);
|
||||
extraDiamondDayService.updateRoomExtraDiamond(guildMember, giftSendRecord.getReciveUid(), partitionInfo.getId(),
|
||||
statDate, giftSendRecord.getRoomUid(), totalDiamondNum, 0D, createTime);
|
||||
extraDiamondDayService.updateExtraDiamond(guildMember, giftSendRecord.getReciveUid(), partitionInfo.getId(),
|
||||
cycleDate, statDate, giftSendRecord.getRoomUid(), totalDiamondNum, 0D, createTime);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -5,14 +5,16 @@
|
||||
<update id="updateExtraDiamond">
|
||||
INSERT INTO `guild_extra_diamond_day` (`cycle_date`, `partition_id`, `stat_date`,
|
||||
`guild_member_id`, `guild_id`, `uid`, `owner_uid`, `diamond_num`, `lucky_diamond_num`,
|
||||
`owner_extra_num`, `owner_extra_lucky_num`, `create_time`, `update_time`)
|
||||
`owner_extra_num`, `owner_extra_lucky_num`, `anchor_extra_num`, `anchor_extra_lucky_num`, `create_time`, `update_time`)
|
||||
VALUES (#{cycleDate}, #{partitionId}, #{statDate}, #{guildMemberId}, #{guildId}, #{uid}, #{ownerUid}, #{diamondNum}, #{luckyDiamondNum},
|
||||
#{ownerDiamondNum}, #{ownerLuckyDiamond},#{time} ,#{time})
|
||||
#{ownerDiamondNum}, #{ownerLuckyDiamond}, #{anchorDiamondNum}, #{anchorLuckyDiamond},#{time} ,#{time})
|
||||
ON DUPLICATE KEY UPDATE
|
||||
diamond_num = diamond_num + values (diamond_num),
|
||||
lucky_diamond_num = lucky_diamond_num + values (lucky_diamond_num),
|
||||
owner_extra_num = owner_extra_num + values (owner_extra_num),
|
||||
owner_extra_lucky_num = owner_extra_lucky_num + values (owner_extra_lucky_num),
|
||||
anchor_extra_num = anchor_extra_num + values (anchor_extra_num),
|
||||
anchor_extra_lucky_num = anchor_extra_lucky_num + values (anchor_extra_lucky_num),
|
||||
update_time = values (update_time)
|
||||
</update>
|
||||
</mapper>
|
||||
|
@@ -3,12 +3,16 @@
|
||||
<mapper namespace="com.accompany.business.mybatismapper.extradiamond.RoomExtraDiamondDayMapper">
|
||||
<update id="updateExtraDiamond">
|
||||
INSERT INTO `room_extra_diamond_day` (`partition_id`, `stat_date`, `guild_member_id`, `guild_id`, `uid`,
|
||||
`room_uid`, `diamond_num`, `lucky_diamond_num`, `create_time`, `update_time`)
|
||||
`room_uid`, `diamond_num`, `lucky_diamond_num`, `room_extra_num`,
|
||||
`room_extra_lucky_num`, `create_time`, `update_time`)
|
||||
VALUES (#{partitionId}, #{statDate}, #{guildMemberId}, #{guildId}, #{uid}, #{roomUid}, #{normalDiamondNum},
|
||||
#{luckyDiamondNum},#{time} ,#{time})
|
||||
ON DUPLICATE KEY UPDATE
|
||||
diamond_num = diamond_num + values (diamond_num),
|
||||
lucky_diamond_num = lucky_diamond_num + values (lucky_diamond_num),
|
||||
update_time = values (update_time)
|
||||
#{luckyDiamondNum}, #{roomDiamondNum}, #{roomLuckyDiamond}, #{time}, #{time}) ON DUPLICATE KEY
|
||||
UPDATE
|
||||
diamond_num = diamond_num +
|
||||
values (diamond_num), lucky_diamond_num = lucky_diamond_num +
|
||||
values (lucky_diamond_num), room_extra_num = room_extra_num +
|
||||
values (room_extra_num), room_extra_lucky_num = room_extra_lucky_num +
|
||||
values (room_extra_lucky_num), update_time =
|
||||
values (update_time)
|
||||
</update>
|
||||
</mapper>
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.accompany.business.controller.extradiamond;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.service.extradiamond.ExtraDiamondDayService;
|
||||
import com.accompany.common.annotation.Authorization;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -22,6 +23,6 @@ public class ExtraDiamondDayController {
|
||||
@Authorization
|
||||
@GetMapping("/sendRoomLastDayDiamondtask")
|
||||
public void sendRoomLastDayDiamondtask(Integer partitionId, String statDate) {
|
||||
extraDiamondDayService.sendRoomExtraDiamondTask(partitionId, statDate);
|
||||
extraDiamondDayService.sendRoomExtraDiamondTask(partitionId, DateUtil.parseDateTime(statDate));
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,11 @@ public class ExtraDiamondDayTask {
|
||||
Date date = new Date();
|
||||
String statDate = DateUtil.formatDate(date);
|
||||
extraDiamondDayService.sendGuildExtraDiamondTask(PartitionEnum.SOVIET.getId(), statDate);
|
||||
extraDiamondDayService.sendRoomExtraDiamondTask(PartitionEnum.SOVIET.getId(), statDate);
|
||||
}
|
||||
|
||||
@Scheduled(cron = "0 6 0 ? * MON")
|
||||
public void sendExtraDiamondWeekTask() {
|
||||
Date date = new Date();
|
||||
extraDiamondDayService.sendRoomExtraDiamondTask(PartitionEnum.SOVIET.getId(), date);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user