v1.1: 转赠钻石账单获取处理

This commit is contained in:
lzm
2022-10-18 18:15:21 +08:00
parent e63915490b
commit ed6658a8cb
2 changed files with 31 additions and 0 deletions

View File

@@ -3,12 +3,14 @@ package com.accompany.business.service.record;
import cn.hutool.core.collection.CollectionUtil;
import com.accompany.business.dto.clan.AssociateTimeSection;
import com.accompany.business.dto.clan.TimeSection;
import com.accompany.business.model.DiamondGiveHistory;
import com.accompany.business.model.Gift;
import com.accompany.business.model.clan.ClanAccountAssociate;
import com.accompany.business.model.clan.ClanAssociateTransferRecord;
import com.accompany.business.mybatismapper.clan.ClanAssociateTransferRecordMapper;
import com.accompany.business.service.clan.ClanAccountAssociateService;
import com.accompany.business.service.gift.GiftService;
import com.accompany.business.service.purse.DiamondGiveHistoryService;
import com.accompany.business.service.room.RoomService;
import com.accompany.business.vo.BillSearchVo;
import com.accompany.common.constant.Constant;
@@ -64,6 +66,8 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper,BillRecord>
private ClanAccountAssociateService clanAccountAssociateService;
@Autowired
private ClanAssociateTransferRecordMapper clanAssociateTransferRecordMapper;
@Autowired
private DiamondGiveHistoryService diamondGiveHistoryService;
protected Gson gson = new Gson();
@@ -247,6 +251,7 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper,BillRecord>
objTypes.add(BillObjTypeEnum.ACTIVITY_FORTUNE_ALLO_ALLOCATION_GOLD.getValue());
objTypes.add(BillObjTypeEnum.CALL_BATTLE_REWARD.getValue());
objTypes.add(BillObjTypeEnum.CP_INVITE_DENY_REFUND.getValue());
objTypes.add(BillObjTypeEnum.SEND_DIAMOND_IN.getValue());
break;
case DIAMOND_OUT:
objTypes.add(BillObjTypeEnum.GIFT_ROOM_PAY.getValue());
@@ -270,6 +275,7 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper,BillRecord>
objTypes.add(BillObjTypeEnum.PURCHASE_CHAT_BUBBLE.getValue());
objTypes.add(BillObjTypeEnum.GIVE_CHAT_BUBBLE.getValue());
objTypes.add(BillObjTypeEnum.SHIP_ANTICS_PACK.getValue());
objTypes.add(BillObjTypeEnum.SEND_DIAMOND_OUT.getValue());
break;
}
List<BillRecord> billRecords = getBillRecords(uid, objTypes, date, pageNo, pageSize);
@@ -285,6 +291,9 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper,BillRecord>
if(type == BillSearchTypeEnum.CHAT_IN.getValue()){
fillGift2SearchVo(searchVos);
}
if(type == BillSearchTypeEnum.DIAMOND_OUT.getValue()){
fillSendDiamondSearchVo(searchVos);
}
Multimap<Long, BillSearchVo> searchVoMultimap = ArrayListMultimap.create();
searchVos.forEach(searchVo -> searchVoMultimap.put(searchVo.getDate(), searchVo));
@@ -369,6 +378,11 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper,BillRecord>
searchVo.setShowStr(showStr);
// 礼物收入/支出显示礼物总价值
searchVo.setGiftTotalGoldNum(billRecord.getGiftTotalGoldNum());
// 转赠钻石需要根据objId查询对应的记录, 以此设置对应的转赠钻石
String objId = billRecord.getObjId();
if (StringUtils.isNotBlank(objId)) {
searchVo.setObjId(objId);
}
Users user = userMap.get(billRecord.getUid());
if (user != null) {
@@ -424,6 +438,21 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper,BillRecord>
}
private void fillSendDiamondSearchVo(List<BillSearchVo> searchVos) {
List<Long> recordIds = searchVos.stream().filter(it -> BillObjTypeEnum.SEND_DIAMOND_OUT.getType().equals(it.getObjType())).map(it -> Long.valueOf(it.getObjId())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(recordIds)) {
return;
}
Map<Long, DiamondGiveHistory> historyMap = diamondGiveHistoryService.listByIds(recordIds).stream().collect(Collectors.toMap(DiamondGiveHistory::getId, a -> a));
searchVos.forEach(searchVo -> {
DiamondGiveHistory history = historyMap.get(Long.valueOf(searchVo.getObjId()));
if (history != null) {
searchVo.setSendDiamondAmount(history.getDiamondNum());
}
});
}
/**
* 关联号查询
* @param uid

View File

@@ -30,4 +30,6 @@ public class BillSearchVo {
private Long giftTotalGoldNum;
private String objId;
private Long sendDiamondAmount; // 转赠钻石实际赠送钻石数
}