英语区钻石流水更改为金币流水
This commit is contained in:
@@ -33,12 +33,14 @@ public class RoomDayDiamondRewardController extends BaseController {
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "regionId", value = "国家id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "用户id", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长ID", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "guildId", value = "用户id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "status", value = "发放状态:-1:全部,0:未发放,1已经发放", required = false, dataType = "long"),
|
||||
})
|
||||
@GetMapping("/list")
|
||||
public BusiResult<PageResult<RoomDayDiamondRewardRecordVo>> list(Integer regionId, Long erbanNo, Integer status, BasePageParams pageParams) {
|
||||
public BusiResult<PageResult<RoomDayDiamondRewardRecordVo>> list(Integer regionId, Long erbanNo, Long ownerErbanNo, Integer guildId, Integer status, BasePageParams pageParams) {
|
||||
|
||||
PageResult<RoomDayDiamondRewardRecordVo> pageResult = roomDayDiamondRewardRecordService.listRecord(pageParams.getPartitionId(), regionId, erbanNo, pageParams.getStartTime(),
|
||||
PageResult<RoomDayDiamondRewardRecordVo> pageResult = roomDayDiamondRewardRecordService.listRecord(pageParams.getPartitionId(), regionId, erbanNo, ownerErbanNo, guildId, pageParams.getStartTime(),
|
||||
pageParams.getEndTime(), status, pageParams.getPageNo(), pageParams.getPageSize());
|
||||
return BusiResult.success(pageResult);
|
||||
}
|
||||
@@ -47,13 +49,15 @@ public class RoomDayDiamondRewardController extends BaseController {
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "regionId", value = "国家id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "用户id", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "ownerErbanNo", value = "ownerErbanNo", required = false, dataType = "long"),
|
||||
@ApiImplicitParam(name = "guildId", value = "用户id", required = false, dataType = "int"),
|
||||
@ApiImplicitParam(name = "status", value = "发放状态:-1:全部,0:未发放,1已经发放", required = false, dataType = "long"),
|
||||
})
|
||||
@GetMapping("/export")
|
||||
public void list(HttpServletResponse response, Integer regionId, Long erbanNo, Integer status, BasePageParams pageParams) throws IOException {
|
||||
public void list(HttpServletResponse response, Integer regionId, Long erbanNo, Long ownerErbanNo, Integer guildId, Integer status, BasePageParams pageParams) throws IOException {
|
||||
pageParams.setPageNo(0);
|
||||
pageParams.setPageSize(-1);
|
||||
PageResult<RoomDayDiamondRewardRecordVo> pageResult = roomDayDiamondRewardRecordService.listRecord(pageParams.getPartitionId(), regionId, erbanNo, pageParams.getStartTime(),
|
||||
PageResult<RoomDayDiamondRewardRecordVo> pageResult = roomDayDiamondRewardRecordService.listRecord(pageParams.getPartitionId(), regionId, erbanNo, ownerErbanNo, guildId, pageParams.getStartTime(),
|
||||
pageParams.getEndTime(), status, pageParams.getPageNo(), pageParams.getPageSize());
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
|
@@ -1408,7 +1408,7 @@ public class Constant {
|
||||
|
||||
public static final String ACTIVITY_TEMPLATE_CONFIG = "activity_template_config";//通用活动模板
|
||||
|
||||
public static final String ROOM_BOSS_MIC_UP_DAY_SEND_LIMIT = "room_bossMic_up_daySend_limit";//房间老板位上麦日贡献值最小限制
|
||||
public static final String ROOM_BOSS_MIC_UP_DAY_SEND_LIMIT = "room_bossmic_up_daysend_limit";//房间老板位上麦日贡献值最小限制
|
||||
|
||||
public static final String ROOM_UNIQUE_SWITCH_CONFIG = "room_unique_switch_config";
|
||||
|
||||
|
@@ -0,0 +1,15 @@
|
||||
package com.accompany.business.dto.room;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* {"defaultLimit":500000,"partitionUpLimit":{"1":500000,"2":1000000,"16":500000,"8":500000}}
|
||||
*/
|
||||
@Data
|
||||
public class RoomBossMicUpConfigDto {
|
||||
private Long defaultLimit;
|
||||
Map<String, Long> partitionUpLimit;
|
||||
|
||||
}
|
@@ -41,6 +41,10 @@ public class RoomDayDiamondNum implements Serializable {
|
||||
* 总送礼值
|
||||
*/
|
||||
private BigDecimal diamondNum;
|
||||
/**
|
||||
* 金币流水
|
||||
*/
|
||||
private BigDecimal goldNum;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
@@ -41,6 +41,10 @@ public class RoomDayDiamondRewardRecord implements Serializable {
|
||||
* 总送礼值
|
||||
*/
|
||||
private BigDecimal diamondNum;
|
||||
/**
|
||||
* 总送礼值
|
||||
*/
|
||||
private BigDecimal goldNum;
|
||||
/**
|
||||
* 金币奖励
|
||||
*/
|
||||
|
@@ -38,6 +38,9 @@ public class RoomDayDiamondRewardRecordVo {
|
||||
@ExcelProperty("钻石流水")
|
||||
@ApiModelProperty("钻石流水")
|
||||
private BigDecimal diamondNum;
|
||||
@ExcelProperty("金币流水")
|
||||
@ApiModelProperty("金币流水")
|
||||
private BigDecimal goldNum;
|
||||
@ExcelProperty("对应流水发放金币")
|
||||
@ApiModelProperty("对应流水发放金币")
|
||||
private BigDecimal rewardGold;
|
||||
@@ -52,4 +55,10 @@ public class RoomDayDiamondRewardRecordVo {
|
||||
@ApiModelProperty("发放时间")
|
||||
@ExcelProperty("操作人")
|
||||
private String sendTime;
|
||||
@ApiModelProperty("公会长ID")
|
||||
@ExcelProperty("公会长ID")
|
||||
private Long ownerErbanNo;
|
||||
@ApiModelProperty("公会ID")
|
||||
@ExcelProperty("公会ID")
|
||||
private Integer guildId;
|
||||
}
|
||||
|
@@ -4,10 +4,7 @@ import com.accompany.business.event.BravoGiftGoldIncomeMessageEvent;
|
||||
import com.accompany.business.message.BravoGiftGoldIncomeMessage;
|
||||
import com.accompany.business.service.SendSysMsgService;
|
||||
import com.accompany.business.service.rank.RankService;
|
||||
import com.accompany.business.service.room.RoomLevelService;
|
||||
import com.accompany.business.service.room.RoomRankService;
|
||||
import com.accompany.business.service.room.RoomService;
|
||||
import com.accompany.business.service.room.RoomServiceFactory;
|
||||
import com.accompany.business.service.room.*;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
@@ -38,6 +35,8 @@ public class BravoGiftGoldIncomeListener implements ApplicationListener<BravoGif
|
||||
private SendSysMsgService sendSysMsgService;
|
||||
@Autowired
|
||||
private RoomLevelService roomLevelService;
|
||||
@Autowired
|
||||
private RoomDayDiamondNumService roomDayDiamondNumService;
|
||||
|
||||
@Async
|
||||
@Override
|
||||
@@ -69,6 +68,9 @@ public class BravoGiftGoldIncomeListener implements ApplicationListener<BravoGif
|
||||
jsonObject.put("serialValue", RoomServiceFactory.getServiceByType(room.getType()).roomSerialValue(roomUid, partitionId));
|
||||
sendSysMsgService.sendSingleRoomMessage(room.getRoomId(), String.valueOf(roomUid), Constant.DefMsgType.RANK, Constant.DefMsgType.RANK_UPDATE, jsonObject);
|
||||
}
|
||||
if (PartitionEnum.ENGLISH2.getId() == partitionId || PartitionEnum.TURKEY.getId() == partitionId) {
|
||||
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, messTime, totalDiamondNum, totalDiamondNum);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("BravoGiftGoldIncomeListener updateAllRank-updateRoomRank:{}, e:{}", JSONObject.toJSONString(message), e.getMessage(), e);
|
||||
}
|
||||
|
@@ -84,9 +84,7 @@ public class RankListener implements ApplicationListener<GiftMessageEvent> {
|
||||
boolean isFreeGift = Constant.GiftConsumeType.ROOM_FREE_GIFT == gift.getConsumeType();
|
||||
Long giftGoldNum = isFreeGift ? Math.abs(gift.getGoldPrice() * giftNum) : goldNum;
|
||||
|
||||
Double roomDiamond = PartitionEnum.ENGLISH2.getId() == partitionId ? giftMessage.getDiamondNum() : Double.valueOf(giftGoldNum);
|
||||
|
||||
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, roomDiamond, date, isFreeGift, partitionId);
|
||||
roomRankService.updateRoomRank(roomUid, sendUid, recvUid, giftGoldNum.doubleValue(), date, isFreeGift, partitionId);
|
||||
Room room = roomService.getRoomByUid(roomUid);
|
||||
roomLevelService.updateRoomLevelExp(partitionId, roomUid, giftGoldNum.doubleValue(), room);
|
||||
if (room != null) {
|
||||
@@ -95,8 +93,7 @@ public class RankListener implements ApplicationListener<GiftMessageEvent> {
|
||||
sendSysMsgService.sendSingleRoomMessage(room.getRoomId(), String.valueOf(room.getUid()), Constant.DefMsgType.RANK, Constant.DefMsgType.RANK_UPDATE, jsonObject);
|
||||
}
|
||||
if (PartitionEnum.ENGLISH2.getId() == partitionId || PartitionEnum.TURKEY.getId() == partitionId) {
|
||||
BigDecimal diamondNum = BigDecimal.valueOf(giftMessage.getDiamondNum());
|
||||
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, date, diamondNum);
|
||||
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, date, giftMessage.getDiamondNum(), giftGoldNum.doubleValue());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("RankListener.updateAllRank-updateRoomRank:{}, e:{}", JSONObject.toJSONString(giftMessage), e.getMessage(), e);
|
||||
|
@@ -70,11 +70,9 @@ public class SuperLuckyGiftSendListener implements ApplicationListener<SuperLuck
|
||||
jsonObject.put("serialValue", RoomServiceFactory.getServiceByType(room.getType()).roomSerialValue(roomUid, partitionId));
|
||||
sendSysMsgService.sendSingleRoomMessage(room.getRoomId(), String.valueOf(roomUid), Constant.DefMsgType.RANK, Constant.DefMsgType.RANK_UPDATE, jsonObject);
|
||||
}
|
||||
roomBoomBizService.handleMessage(message);
|
||||
|
||||
if (PartitionEnum.ENGLISH2.getId() == partitionId || PartitionEnum.TURKEY.getId() == partitionId) {
|
||||
BigDecimal diamondNum = BigDecimal.valueOf(totalDiamondNum);
|
||||
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, messTime, diamondNum);
|
||||
roomDayDiamondNumService.addDiamondNum(partitionId, roomUid, messTime, totalDiamondNum, totalDiamondNum);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("SuperLuckyGiftSendListener.updateAllRank-updateRoomRank:{}, e:{}", JSONObject.toJSONString(message), e.getMessage(), e);
|
||||
|
@@ -14,5 +14,5 @@ import java.math.BigDecimal;
|
||||
*/
|
||||
public interface RoomDayDiamondNumMapper extends BaseMapper<RoomDayDiamondNum> {
|
||||
|
||||
Integer addDiamondNum(@Param("partitionId") Integer partitionId, @Param("roomUid") Long roomUid, @Param("statDate") String statDate, @Param("diamondNum") BigDecimal diamondNum);
|
||||
Integer addDiamondNum(@Param("partitionId") Integer partitionId, @Param("roomUid") Long roomUid, @Param("statDate") String statDate, @Param("diamondNum") BigDecimal diamondNum, @Param("goldNum") BigDecimal goldNum);
|
||||
}
|
||||
|
@@ -16,5 +16,5 @@ public interface RoomDayDiamondRewardRecordMapper extends BaseMapper<RoomDayDiam
|
||||
|
||||
IPage<RoomDayDiamondRewardRecordVo> listRecord(IPage<RoomDayDiamondRewardRecordVo> iPage, @Param("partitionId") Integer partitionId, @Param("regionId") Integer regionId,
|
||||
@Param("roomUid") Long roomUid, @Param("startDate") String startDate, @Param("endDate") String endDate,
|
||||
@Param("status") Integer status, @Param("notEqualsTodate") String notEqualsTodate);
|
||||
@Param("status") Integer status, @Param("notEqualsTodate") String notEqualsTodate, @Param("guildId") Integer guildId);
|
||||
}
|
||||
|
@@ -141,44 +141,24 @@ public class RoomBoomBizService {
|
||||
|
||||
private Optional<BoomData> extractBoomData(Object object) {
|
||||
BoomData boomData = new BoomData();
|
||||
if (object instanceof GiftMessage) {
|
||||
GiftMessage giftMessage = (GiftMessage) object;
|
||||
boomData.roomUid = giftMessage.getRoomUid();
|
||||
boomData.partitionId = giftMessage.getPartitionId();
|
||||
boomData.goldNum = giftMessage.getGoldNum();
|
||||
boomData.giftType = giftMessage.getGiftType();
|
||||
boomData.realGoldNum = giftMessage.getRealGoldNum();
|
||||
boomData.diamondNum = giftMessage.getDiamondNum();
|
||||
boomData.sendUid = giftMessage.getSendUid();
|
||||
boomData.messTime = new Date(giftMessage.getMessTime());
|
||||
GiftMessage giftMessage = (GiftMessage) object;
|
||||
boomData.roomUid = giftMessage.getRoomUid();
|
||||
boomData.partitionId = giftMessage.getPartitionId();
|
||||
boomData.goldNum = giftMessage.getGoldNum();
|
||||
boomData.giftType = giftMessage.getGiftType();
|
||||
boomData.realGoldNum = giftMessage.getRealGoldNum();
|
||||
boomData.diamondNum = giftMessage.getDiamondNum();
|
||||
boomData.sendUid = giftMessage.getSendUid();
|
||||
boomData.messTime = new Date(giftMessage.getMessTime());
|
||||
|
||||
boolean isLuckyGift = giftSendService.isLuckyGift(giftMessage.getGiftType());
|
||||
if (isLuckyGift && giftMessage.getGoldNum() <= 0) {
|
||||
boomData.goldNum = giftMessage.getRealGoldNum();
|
||||
}
|
||||
|
||||
if (PartitionEnum.ENGLISH2.getId() == giftMessage.getPartitionId()) {
|
||||
if (isLuckyGift) {//幸运礼物不计算 普通送礼消费事件没有记录钻石流水
|
||||
return Optional.empty();
|
||||
}
|
||||
boomData.addBoomValue = giftMessage.getDiamondNum();
|
||||
} else {
|
||||
BigDecimal boomRate = boomRateStat(giftMessage.getPartitionId(), giftMessage.getGiftType());
|
||||
boomData.addBoomValue = BigDecimal.valueOf(boomData.goldNum).multiply(boomRate).doubleValue();
|
||||
}
|
||||
} else if (object instanceof SuperLuckyGiftDiamondIncomeMessage) {
|
||||
SuperLuckyGiftDiamondIncomeMessage message = (SuperLuckyGiftDiamondIncomeMessage) object;
|
||||
Users receiver = usersService.getNotNullUsersByUid(message.getReceiverUid());
|
||||
if (PartitionEnum.ENGLISH2.getId() != receiver.getPartitionId()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
//英语区会记录lucky钻石流水
|
||||
boomData.sendUid = message.getSenderUid();
|
||||
boomData.roomUid = message.getRoomUid();
|
||||
boomData.messTime = message.getCreateTime();
|
||||
boomData.partitionId = receiver.getPartitionId();
|
||||
boomData.addBoomValue = message.getTotalDiamondNum();
|
||||
boolean isLuckyGift = giftSendService.isLuckyGift(giftMessage.getGiftType());
|
||||
if (isLuckyGift && giftMessage.getGoldNum() <= 0) {
|
||||
boomData.goldNum = giftMessage.getRealGoldNum();
|
||||
}
|
||||
|
||||
BigDecimal boomRate = boomRateStat(giftMessage.getPartitionId(), giftMessage.getGiftType());
|
||||
boomData.addBoomValue = BigDecimal.valueOf(boomData.goldNum).multiply(boomRate).doubleValue();
|
||||
|
||||
return Optional.of(boomData);
|
||||
}
|
||||
|
||||
|
@@ -14,5 +14,5 @@ import java.util.Date;
|
||||
*/
|
||||
public interface RoomDayDiamondNumService extends IService<RoomDayDiamondNum> {
|
||||
|
||||
Integer addDiamondNum(Integer partitionId, Long roomUid, Date statDate, BigDecimal diamondNum);
|
||||
Integer addDiamondNum(Integer partitionId, Long roomUid, Date statDate, Double diamondNum, Double goldNum);
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface RoomDayDiamondRewardRecordService extends IService<RoomDayDiamondRewardRecord> {
|
||||
|
||||
PageResult<RoomDayDiamondRewardRecordVo> listRecord(Integer partitionId, Integer regionId, Long erbanNo,
|
||||
PageResult<RoomDayDiamondRewardRecordVo> listRecord(Integer partitionId, Integer regionId, Long erbanNo, Long ownerErbanNo, Integer guildId,
|
||||
String startDate, String endDate, Integer status, Integer pageNo, Integer pageSize);
|
||||
|
||||
BusiResult send(Long id, Integer adminId);
|
||||
|
@@ -23,9 +23,9 @@ public class RoomDayDiamondNumServiceImpl extends ServiceImpl<RoomDayDiamondNumM
|
||||
|
||||
|
||||
@Override
|
||||
public Integer addDiamondNum(Integer partitionId, Long roomUid, Date statDate, BigDecimal diamondNum) {
|
||||
public Integer addDiamondNum(Integer partitionId, Long roomUid, Date statDate, Double diamondNum, Double goldNum) {
|
||||
ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(statDate, PartitionEnum.getByPartitionId(partitionId).getZoneId());
|
||||
String format = zonedDateTime.format(DateTimeUtil.dateFormatter);
|
||||
return baseMapper.addDiamondNum(partitionId, roomUid, format, diamondNum);
|
||||
return baseMapper.addDiamondNum(partitionId, roomUid, format, BigDecimal.valueOf(diamondNum), BigDecimal.valueOf(goldNum));
|
||||
}
|
||||
}
|
||||
|
@@ -1,11 +1,13 @@
|
||||
package com.accompany.business.service.room.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.model.guild.Guild;
|
||||
import com.accompany.business.model.room.RoomDayDiamondNum;
|
||||
import com.accompany.business.model.room.RoomDayDiamondReward;
|
||||
import com.accompany.business.model.room.RoomDayDiamondRewardRecord;
|
||||
import com.accompany.business.mybatismapper.room.RoomDayDiamondRewardRecordMapper;
|
||||
import com.accompany.business.service.BaseSendService;
|
||||
import com.accompany.business.service.guild.GuildService;
|
||||
import com.accompany.business.service.purse.UserPurseService;
|
||||
import com.accompany.business.service.record.BillRecordService;
|
||||
import com.accompany.business.service.room.RoomDayDiamondNumService;
|
||||
@@ -72,9 +74,11 @@ public class RoomDayDiamondRewardRecordServiceImpl extends ServiceImpl<RoomDayDi
|
||||
private EnvComponent envComponent;
|
||||
@Autowired
|
||||
private MessageRobotPushService messageRobotPushService;
|
||||
@Autowired
|
||||
private GuildService guildService;
|
||||
|
||||
@Override
|
||||
public PageResult<RoomDayDiamondRewardRecordVo> listRecord(Integer partitionId, Integer regionId, Long erbanNo,
|
||||
public PageResult<RoomDayDiamondRewardRecordVo> listRecord(Integer partitionId, Integer regionId, Long erbanNo, Long ownerErbanNo, Integer guildId,
|
||||
String startDate, String endDate, Integer status, Integer pageNo, Integer pageSize) {
|
||||
Long roomUid = null;
|
||||
if (partitionId == null) {
|
||||
@@ -90,8 +94,21 @@ public class RoomDayDiamondRewardRecordServiceImpl extends ServiceImpl<RoomDayDi
|
||||
}
|
||||
roomUid = user.getUid();
|
||||
}
|
||||
|
||||
if (guildId == null && ownerErbanNo != null) {
|
||||
Users user = usersService.getUserByErbanNo(ownerErbanNo);
|
||||
if (user == null) {
|
||||
throw new AdminServiceException("公会长ID不存在");
|
||||
}
|
||||
Guild vaildGuildByOwnerUid = guildService.getVaildGuildByOwnerUid(user.getUid());
|
||||
if (vaildGuildByOwnerUid == null) {
|
||||
throw new AdminServiceException("公会长ID不存在公会");
|
||||
}
|
||||
guildId = vaildGuildByOwnerUid.getId();
|
||||
}
|
||||
|
||||
IPage<RoomDayDiamondRewardRecordVo> iPage = new Page<>(pageNo, pageSize);
|
||||
iPage = baseMapper.listRecord(iPage, partitionId, regionId, roomUid, startDate, endDate, status, notEqualsTodate);
|
||||
iPage = baseMapper.listRecord(iPage, partitionId, regionId, roomUid, startDate, endDate, status, notEqualsTodate, guildId);
|
||||
PageResult<RoomDayDiamondRewardRecordVo> pageResult = new PageResult<>(iPage);
|
||||
List<RoomDayDiamondRewardRecordVo> rows = pageResult.getRows();
|
||||
if (CollectionUtils.isEmpty(rows)) {
|
||||
@@ -105,11 +122,14 @@ public class RoomDayDiamondRewardRecordServiceImpl extends ServiceImpl<RoomDayDi
|
||||
if (row.getCreateTime() != null) {
|
||||
row.setSendTime(DateUtil.formatDateTime(row.getCreateTime()));
|
||||
}
|
||||
if (row.getRewardGold() != null) {
|
||||
if (row.getGoldNum() != null) {
|
||||
continue;
|
||||
}
|
||||
if (row.getPartitionId() != PartitionEnum.ENGLISH2.getId()) {
|
||||
continue;
|
||||
}
|
||||
TreeMap<BigDecimal, RoomDayDiamondReward> dayDiamondRewardTreeMap = partitionTreeMap.get(row.getPartitionId());
|
||||
row.setRewardGold(roomDayDiamondRewardService.calGoldReward(dayDiamondRewardTreeMap, row.getDiamondNum()));
|
||||
row.setRewardGold(roomDayDiamondRewardService.calGoldReward(dayDiamondRewardTreeMap, row.getGoldNum()));
|
||||
}
|
||||
return pageResult;
|
||||
}
|
||||
@@ -142,13 +162,14 @@ public class RoomDayDiamondRewardRecordServiceImpl extends ServiceImpl<RoomDayDi
|
||||
throw new AdminServiceException("该房间奖励已经发放");
|
||||
}
|
||||
TreeMap<BigDecimal, RoomDayDiamondReward> treeMapByPartitionId = roomDayDiamondRewardService.getRewardTreeMapByPartitionId(partitionId);
|
||||
BigDecimal goldReward = roomDayDiamondRewardService.calGoldReward(treeMapByPartitionId, dayDiamondNum.getDiamondNum());
|
||||
BigDecimal goldReward = roomDayDiamondRewardService.calGoldReward(treeMapByPartitionId, dayDiamondNum.getGoldNum());
|
||||
if (goldReward.doubleValue() <= 0) {
|
||||
throw new AdminServiceException("该房间未达到发放标准");
|
||||
}
|
||||
Long roomUid = dayDiamondNum.getRoomUid();
|
||||
RoomDayDiamondRewardRecord roomDayDiamondRewardRecord = new RoomDayDiamondRewardRecord();
|
||||
roomDayDiamondRewardRecord.setDiamondNum(dayDiamondNum.getDiamondNum());
|
||||
roomDayDiamondRewardRecord.setGoldNum(dayDiamondNum.getGoldNum());
|
||||
roomDayDiamondRewardRecord.setRoomUid(roomUid);
|
||||
roomDayDiamondRewardRecord.setRewardGold(goldReward);
|
||||
roomDayDiamondRewardRecord.setAdminId(adminId);
|
||||
@@ -163,7 +184,7 @@ public class RoomDayDiamondRewardRecordServiceImpl extends ServiceImpl<RoomDayDi
|
||||
(userPurse) -> billRecordService.insertGeneralBillRecord(roomUid, roomDayDiamondRewardRecord.getId().toString(),
|
||||
BillObjTypeEnum.ROOM_DAY_DIAMOND_REWARD, goldReward.doubleValue(), userPurse));
|
||||
baseSendService.sendSystemMsg(roomUid.toString(),
|
||||
I18NMessageSourceUtil.getMessage(I18nAlertEnum.ROOM_DAY_DIAMOND_REWARD_SYS, new Object[]{dayDiamondNum.getDiamondNum(), goldReward}, partitionId));
|
||||
I18NMessageSourceUtil.getMessage(I18nAlertEnum.ROOM_DAY_DIAMOND_REWARD_SYS, new Object[]{dayDiamondNum.getGoldNum(), goldReward}, partitionId));
|
||||
} catch (InterruptedException e) {
|
||||
throw new AdminServiceException(BusiStatus.SERVERBUSY);
|
||||
} finally {
|
||||
|
@@ -3,8 +3,8 @@
|
||||
<mapper namespace="com.accompany.business.mybatismapper.room.RoomDayDiamondNumMapper">
|
||||
|
||||
<update id="addDiamondNum">
|
||||
INSERT INTO `room_day_diamond_num` (`partition_id`, `room_uid`, `stat_date`, `diamond_num`)
|
||||
VALUES (#{partitionId}, #{roomUid}, #{statDate}, COALESCE(#{diamondNum}, 0.00)) ON DUPLICATE KEY
|
||||
UPDATE diamond_num = diamond_num + COALESCE(VALUES(diamond_num), 0.00)
|
||||
INSERT INTO `room_day_diamond_num` (`partition_id`, `room_uid`, `stat_date`, `diamond_num`, `gold_num`)
|
||||
VALUES (#{partitionId}, #{roomUid}, #{statDate}, COALESCE(#{diamondNum}, 0.00), COALESCE(#{goldNum}, 0.00)) ON DUPLICATE KEY
|
||||
UPDATE diamond_num = diamond_num + COALESCE(VALUES(diamond_num), 0.00), gold_num = gold_num + COALESCE(VALUES(gold_num), 0.00)
|
||||
</update>
|
||||
</mapper>
|
||||
|
@@ -5,11 +5,14 @@
|
||||
<select id="listRecord" resultType="com.accompany.business.vo.room.RoomDayDiamondRewardRecordVo">
|
||||
SELECT
|
||||
rn.id id,
|
||||
gm.guild_id guildId,
|
||||
owner.erban_no ownerErbanNo,
|
||||
rn.partition_id partitionId,
|
||||
rn.room_uid roomUid,
|
||||
u.erban_no erbanNo,
|
||||
rn.stat_date statDate,
|
||||
rn.diamond_num diamondNum,
|
||||
rn.gold_num goldNum,
|
||||
rm.`title` roomName,
|
||||
ri.`name` regionName,
|
||||
reward.reward_gold rewardGold,
|
||||
@@ -21,6 +24,9 @@
|
||||
room_day_diamond_num rn
|
||||
LEFT JOIN room_day_diamond_reward_record reward ON rn.partition_id = reward.partition_id
|
||||
and rn.room_uid = reward.room_uid and rn.stat_date = reward.stat_date
|
||||
left join guild_member gm on gm.uid = rn.room_uid and gm.`enable` = 1
|
||||
left join guild g on g.id = gm.guild_id and g.`enable` = 1
|
||||
left join users owner on owner.uid = g.owner_uid
|
||||
left join room rm on rn.room_uid = rm.uid
|
||||
left join users u on u.uid = rn.room_uid
|
||||
left join region_info ri on u.region_id = ri.id
|
||||
@@ -50,6 +56,9 @@
|
||||
and reward.id is not null
|
||||
</when>
|
||||
</choose>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
and gm.guild_id = #{guildId}
|
||||
</if>
|
||||
and rn.stat_date != #{notEqualsTodate}
|
||||
</where>
|
||||
order by rn.stat_date desc, `status` asc
|
||||
|
@@ -4,6 +4,7 @@ import com.accompany.business.common.BaseController;
|
||||
import com.accompany.business.constant.LimitTypeEnum;
|
||||
import com.accompany.business.constant.RoomConstant;
|
||||
import com.accompany.business.constant.RoomTypeEnum;
|
||||
import com.accompany.business.dto.room.RoomBossMicUpConfigDto;
|
||||
import com.accompany.business.model.room.RoomLevelInfo;
|
||||
import com.accompany.business.model.room.RoomMicDress;
|
||||
import com.accompany.business.param.RoomAdminParam;
|
||||
@@ -37,6 +38,7 @@ import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.accompany.core.util.MD5;
|
||||
import com.accompany.core.util.StringUtils;
|
||||
import com.accompany.sharding.vo.RoomSerialVo;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.util.concurrent.RateLimiter;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@@ -577,11 +579,22 @@ public class RoomController extends BaseController {
|
||||
Users usersByUid = usersService.getUsersByUid(roomUid);
|
||||
Integer partitionId = usersByUid.getPartitionId();
|
||||
Double score = roomSendRankingService.getContributorScore(roomUid, uid, new Date(), partitionId, Constant.RankingType.DAY);
|
||||
Long configScore = Long.valueOf(sysConfService.getDefaultSysConfValueById(ROOM_BOSS_MIC_UP_DAY_SEND_LIMIT, "70000000"));
|
||||
if (score >= configScore ) {
|
||||
String configScore = sysConfService.getDefaultSysConfValueById(ROOM_BOSS_MIC_UP_DAY_SEND_LIMIT, "{\"defaultLimit\":500000,\"partitionUpLimit\":{\"1\":500000,\"2\":1000000,\"16\":500000,\"8\":500000}}");
|
||||
RoomBossMicUpConfigDto parse = JSONObject.parseObject(configScore, RoomBossMicUpConfigDto.class);
|
||||
|
||||
Long limitScore = Optional.ofNullable(parse)
|
||||
.map(RoomBossMicUpConfigDto::getPartitionUpLimit)
|
||||
.map(map -> map.get(partitionId.toString()))
|
||||
.orElseGet(() -> Optional.ofNullable(parse)
|
||||
.map(RoomBossMicUpConfigDto::getDefaultLimit)
|
||||
.orElse(500000L));
|
||||
|
||||
if (score >= limitScore ) {
|
||||
return BusiResult.success();
|
||||
}
|
||||
throw new ServiceException(BusiStatus.ROOM_BOSS_MIC_UP_MSG, I18NMessageSourceUtil.getMessage(ROOM_BOSS_MIC_UP_MSG_I18N, new Object[]{NumberUtils.formatNumberSimple(configScore)}, partitionId));
|
||||
throw new ServiceException(BusiStatus.ROOM_BOSS_MIC_UP_MSG,
|
||||
I18NMessageSourceUtil.getMessage(ROOM_BOSS_MIC_UP_MSG_I18N,
|
||||
new Object[]{NumberUtils.formatNumberSimple(limitScore)}, partitionId));
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user