添加英语2区分区,公会长政策fixed
This commit is contained in:
@@ -82,14 +82,14 @@ public class AnchorSalaryBillController {
|
||||
|
||||
@ApiOperation("结算")
|
||||
@GetMapping("/settle")
|
||||
public BaseResponseVO<Void> settle(String dateStr) throws Exception {
|
||||
public BaseResponseVO<Void> settle(String dateStr, Integer partitionId) throws Exception {
|
||||
//发放奖励逻辑:每月1号/16号为结算日沙特时间00:10(次月1号结算上月16号-月结束的奖励,每月16号结算本月1-15号的奖励)
|
||||
Date date = DateUtil.parseDate(dateStr);
|
||||
Date agencyCycleBeginDate = CycleTimeUtil.getAgencyCycleBeginDate(date);
|
||||
String shortDate = DateUtil.formatDate(date);
|
||||
String cycleDate = DateUtil.formatDate(agencyCycleBeginDate);
|
||||
if (shortDate.equals(cycleDate)) {
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(DateTimeUtil.convertDate(DateTimeUtil.addDays(date,-1)));
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(DateTimeUtil.convertDate(DateTimeUtil.addDays(date,-1)), partitionId);
|
||||
}
|
||||
return new BaseResponseVO<>(BusiStatus.SUCCESS);
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@ public enum PartitionEnum {
|
||||
ARAB(2, "Asia/Riyadh", "阿语区", "ar"),
|
||||
CHINESS(4, "Asia/Hong_Kong", "中文区", "zh"),
|
||||
TURKEY(8, "Europe/Istanbul", "土耳其区", "tr"),
|
||||
ENGLISH2(16, "Asia/Manila", "英语区", "en"),
|
||||
;
|
||||
|
||||
private final int id;
|
||||
|
@@ -12,6 +12,7 @@ import com.accompany.business.service.room.RoomService;
|
||||
import com.accompany.business.service.room.RoomServiceFactory;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.model.Room;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.SneakyThrows;
|
||||
@@ -79,7 +80,10 @@ public class RankListener implements ApplicationListener<GiftMessageEvent> {
|
||||
//免费礼物特殊处理
|
||||
boolean isFreeGift = Constant.GiftConsumeType.ROOM_FREE_GIFT == gift.getConsumeType();
|
||||
Long giftGoldNum = isFreeGift ? Math.abs(gift.getGoldPrice() * giftNum) : goldNum;
|
||||
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, giftGoldNum.doubleValue(), date, isFreeGift, partitionId);
|
||||
|
||||
Double roomDiamond = PartitionEnum.ENGLISH2.getId() == partitionId ? giftMessage.getDiamondNum() : Double.valueOf(giftGoldNum);
|
||||
|
||||
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, roomDiamond, date, isFreeGift, partitionId);
|
||||
//发送榜单更新
|
||||
if (roomUid != null) {
|
||||
Room room = roomService.getRoomByUid(roomUid);
|
||||
|
@@ -26,7 +26,7 @@ public interface GuildUsdBillRecordMapper extends BaseMapper<GuildUsdBillRecord>
|
||||
@Param("salaryOperateType") Integer salaryOperateType);
|
||||
|
||||
|
||||
List<GuildSalaryBillDateCycle> settleAnchorBill(@Param("dateCycle") String dateCycle, @Param("endDate") Date endDate);
|
||||
List<GuildSalaryBillDateCycle> settleAnchorBill(@Param("dateCycle") String dateCycle, @Param("endDate") Date endDate, @Param("partitionId") Integer partitionId);
|
||||
|
||||
Page<AnchorSalaryBillAdminVo> anchorSummary(@Param("page") Page<AnchorSalaryBillAdminVo> page,
|
||||
@Param("dateCycle") String dateCycle, @Param("uid") Long uid, @Param("hallId") Integer hallId, @Param("partitionId") Integer partitionId);
|
||||
|
@@ -78,7 +78,7 @@ public class GiftEarnAllotService {
|
||||
@Autowired
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
public void allotGiftEarn(GiftSendRecord record, String objId, BillObjTypeEnum inEnum) {
|
||||
public Double allotGiftEarn(GiftSendRecord record, String objId, BillObjTypeEnum inEnum) {
|
||||
long uid = record.getReciveUid();
|
||||
Users u = usersService.getUsersByUid(uid);
|
||||
if (null == u){
|
||||
@@ -89,6 +89,7 @@ public class GiftEarnAllotService {
|
||||
if (null == partitionInfo){
|
||||
throw new ServiceException(BusiStatus.BUSIERROR);
|
||||
}
|
||||
Double diamondNum = 0D;
|
||||
|
||||
if (Constant.ClanMode.CLAN_HALL.equals(partitionInfo.getClanMode())){
|
||||
log.info("[处理礼物mq] giftEarnByClanHall recvUid {} partitionInfo {} clanMode {}",
|
||||
@@ -101,11 +102,12 @@ public class GiftEarnAllotService {
|
||||
} else if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) {
|
||||
log.info("[处理礼物mq] giftEarnByGuild recvUid {} partitionInfo {} clanMode {}",
|
||||
uid, partitionInfo.getLanguages(), partitionInfo.getClanMode());
|
||||
allotGiftEarnByGuild(record, partitionInfo.getId(), objId, inEnum);
|
||||
diamondNum = allotGiftEarnByGuild(record, partitionInfo.getId(), objId, inEnum);
|
||||
}
|
||||
return diamondNum;
|
||||
}
|
||||
|
||||
private void allotGiftEarnByGuild(GiftSendRecord record, Integer partitionId, String objId, BillObjTypeEnum inEnum){
|
||||
private Double allotGiftEarnByGuild(GiftSendRecord record, Integer partitionId, String objId, BillObjTypeEnum inEnum){
|
||||
Long receiverUid = record.getReciveUid();
|
||||
Long roomUid = record.getRoomUid();
|
||||
BigDecimal golds = BigDecimal.valueOf(record.getTotalGoldNum());
|
||||
@@ -120,7 +122,7 @@ public class GiftEarnAllotService {
|
||||
guildGiftRecordService.insertGuildGiftRecord(record);
|
||||
|
||||
if (Double.compare(amount, 0d) <= 0){
|
||||
return;
|
||||
return amount;
|
||||
}
|
||||
|
||||
userPurseService.addGold(receiverUid, amount, inEnum,
|
||||
@@ -128,6 +130,8 @@ public class GiftEarnAllotService {
|
||||
record.getGiftId(), record.getGiftNum(), record.getTotalGoldNum(), record.getCreateTime(), userPurse));
|
||||
|
||||
log.info("[处理礼物mq] addGuildMemberGoldNum recvUid {} recvRate {} recvAmount {}", receiverUid, rate, amount);
|
||||
|
||||
return amount;
|
||||
}
|
||||
|
||||
private void allotGiftEarnByFamily(GiftSendRecord record, Integer partitionId, String objId, BillObjTypeEnum inEnum){
|
||||
|
@@ -98,15 +98,16 @@ public class GiftMessageService extends BaseService {
|
||||
giftMessage.getGiftId(), giftMessage.getGiftNum(), totalGoldNum, giftSendTime,
|
||||
giftMessage.getAfterPurse());
|
||||
|
||||
Double diamondNum = 0D;//钻石流水
|
||||
//处理逻辑
|
||||
if (Constant.GiftType.SUPER_LUCKY != giftType
|
||||
&& Constant.GiftType.LUCKY_24 != giftType
|
||||
&& Constant.GiftType.BRAVO_GIFT != giftType) {
|
||||
//按配置比例分配主播、 会长、房主收益
|
||||
giftEarnAllotService.allotGiftEarn(giftSendRecord, objId, inEnum);
|
||||
|
||||
diamondNum = giftEarnAllotService.allotGiftEarn(giftSendRecord, objId, inEnum);
|
||||
giftMessage.setDiamondNum(diamondNum);
|
||||
//增加送礼用户和收礼用户的财富或魅力经验
|
||||
addUserExperience(giftMessage);
|
||||
addUserExper(giftMessage);
|
||||
|
||||
applicationContext.publishEvent(new ActivityOfDayConsumeEvent(ActivityOfDayConsumeMessage.builder()
|
||||
.sendUid(giftMessage.getSendUid())
|
||||
|
@@ -17,5 +17,5 @@ public interface GuildSalaryBillDateCycleService extends IService<GuildSalaryBil
|
||||
|
||||
Page<AnchorSalaryBillAdminVo> anchorSummary(Page<AnchorSalaryBillAdminVo> page, String dateCycle, Long uid, Integer hallId, Integer partitionId);
|
||||
|
||||
void settleAnchorBill(String date);
|
||||
void settleAnchorBill(String date, Integer partitionId);
|
||||
}
|
||||
|
@@ -34,10 +34,10 @@ public class GuildSalaryBillDateCycleServiceImpl extends ServiceImpl<GuildSalary
|
||||
}
|
||||
|
||||
@Override
|
||||
public void settleAnchorBill(String date) {
|
||||
public void settleAnchorBill(String date, Integer partitionId) {
|
||||
GuildDateCycleVo dateCycle = agencyMonthSettleService.getDateCycle(date);
|
||||
this.delAnchorBillByDateCycle(dateCycle.getDateCycle());
|
||||
List<GuildSalaryBillDateCycle> list = guildUsdBillRecordService.settleAnchorBill(dateCycle.getDateCycle(), dateCycle.getEndDate());
|
||||
List<GuildSalaryBillDateCycle> list = guildUsdBillRecordService.settleAnchorBill(dateCycle.getDateCycle(), dateCycle.getEndDate(), partitionId);
|
||||
for (GuildSalaryBillDateCycle anchorSalaryBillDateCycle : list) {
|
||||
anchorSalaryBillDateCycle.setStatDate(dateCycle.getStartDate());
|
||||
}
|
||||
|
@@ -317,8 +317,8 @@ public class GuildUsdBillRecordService extends ServiceImpl<GuildUsdBillRecordMap
|
||||
return anchorSalaryBillAdminVos;
|
||||
}
|
||||
|
||||
public List<GuildSalaryBillDateCycle> settleAnchorBill(String dateCycle, Date endDate) {
|
||||
return this.baseMapper.settleAnchorBill(dateCycle, endDate);
|
||||
public List<GuildSalaryBillDateCycle> settleAnchorBill(String dateCycle, Date endDate, Integer partitionId) {
|
||||
return this.baseMapper.settleAnchorBill(dateCycle, endDate, partitionId);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -137,6 +137,9 @@
|
||||
group by uid ,guild_id) a ON hm.uid = a.uid AND hm.guild_id = a.guild_id
|
||||
left join user_purse up on up.uid = hm.uid
|
||||
WHERE hm.create_time <= #{endDate}
|
||||
<if test="partitionId != null">
|
||||
and hm.partition_id = #{partitionId}
|
||||
</if>
|
||||
order by hm.guild_id asc ,up.guild_usd desc
|
||||
</select>
|
||||
|
||||
|
@@ -0,0 +1,99 @@
|
||||
package com.accompany.scheduler.task.guild;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.service.guild.AgencyMonthSettleService;
|
||||
import com.accompany.business.service.guild.GuildSalaryBillDateCycleService;
|
||||
import com.accompany.business.util.CycleTimeUtil;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class GuildSettle4EnTask {
|
||||
@Autowired
|
||||
private AgencyMonthSettleService agencyMonthSettleService;
|
||||
@Autowired
|
||||
private GuildSalaryBillDateCycleService guildSalaryBillDateCycleService;
|
||||
|
||||
//zone = "Asia/Riyadh zone = "Etc/GMT-3" 两种方式都支持
|
||||
|
||||
/**
|
||||
* 公户月结算,用户明细
|
||||
* 每月1号凌晨0点10分执行
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 1 * ?")
|
||||
public void monthRank4EnTaskAll2() {
|
||||
Date date = new Date();
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH2);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
DateTime lastMonth = DateUtil.offsetMonth(date, -1);
|
||||
DateTime beginTime = DateUtil.offsetDay(lastMonth, 15);
|
||||
DateTime endTime = DateUtil.beginOfDay(date);
|
||||
log.info("=-=monthRank4EnTaskAll2=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime), DateUtil.formatDateTime(endTime));
|
||||
agencyMonthSettleService.monthRankTaskAll(partitionEnum.getId(), beginTime, endTime);
|
||||
log.info("=-=monthRank4EnTaskAll2=-= end");
|
||||
log.info("=-=monthRankTaskDetail2=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime), DateUtil.formatDateTime(endTime));
|
||||
agencyMonthSettleService.monthRankTaskDetail(partitionEnum.getId(), beginTime, endTime);
|
||||
log.info("=-=monthRankTaskDetail2=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRank4EnTaskAll2] 异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 公会月结算
|
||||
* 每月16号凌晨0点10分执行
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 16 * ?")
|
||||
public void monthRankTask() {
|
||||
Date date = new Date();
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH2);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
DateTime beginTime = DateUtil.beginOfMonth(date);
|
||||
DateTime endTime = DateUtil.beginOfDay(date);
|
||||
log.info("=-=monthRankTaskAll1=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime), DateUtil.formatDateTime(endTime));
|
||||
agencyMonthSettleService.monthRankTaskAll(partitionEnum.getId(), beginTime, endTime);
|
||||
log.info("=-=monthRankTaskAll1=-= end");
|
||||
log.info("=-=monthRankTaskDetail1=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime), DateUtil.formatDateTime(endTime));
|
||||
agencyMonthSettleService.monthRankTaskDetail(partitionEnum.getId(), beginTime, endTime);
|
||||
log.info("=-=monthRankTaskDetail1=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRankTask异常] {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 主播薪资操作记录结算
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 * * ?")
|
||||
public void settleAnchorBill() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH2);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
//发放奖励逻辑:每月1号/16号为结算日沙特时间00:10(次月1号结算上月16号-月结束的奖励,每月16号结算本月1-15号的奖励)
|
||||
Date date = new Date();
|
||||
Date agencyCycleBeginDate = CycleTimeUtil.getAgencyCycleBeginDate(date);
|
||||
String shortDate = DateUtil.formatDate(date);
|
||||
String cycleDate = DateUtil.formatDate(agencyCycleBeginDate);
|
||||
if (shortDate.equals(cycleDate)) {
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(DateTimeUtil.convertDate(DateTimeUtil.addDays(date, -1)), partitionEnum.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRankTask异常] {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -80,12 +80,19 @@ public class GuildSettleTask {
|
||||
@Scheduled(cron = "0 10 0 * * ?", zone = "Etc/GMT-3")
|
||||
public void settleAnchorBill() {
|
||||
//发放奖励逻辑:每月1号/16号为结算日沙特时间00:10(次月1号结算上月16号-月结束的奖励,每月16号结算本月1-15号的奖励)
|
||||
Date date = new Date();
|
||||
Date agencyCycleBeginDate = CycleTimeUtil.getAgencyCycleBeginDate(date);
|
||||
String shortDate = DateUtil.formatDate(date);
|
||||
String cycleDate = DateUtil.formatDate(agencyCycleBeginDate);
|
||||
if (shortDate.equals(cycleDate)){
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(DateTimeUtil.convertDate(DateTimeUtil.addDays(date,-1)));
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
Date date = new Date();
|
||||
Date agencyCycleBeginDate = CycleTimeUtil.getAgencyCycleBeginDate(date);
|
||||
String shortDate = DateUtil.formatDate(date);
|
||||
String cycleDate = DateUtil.formatDate(agencyCycleBeginDate);
|
||||
if (shortDate.equals(cycleDate)) {
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(DateTimeUtil.convertDate(DateTimeUtil.addDays(date, -1)), partitionEnum.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRankTask异常] {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user