家族-定时任务-钻石结算-bugfix
This commit is contained in:
@@ -18,6 +18,7 @@ import com.accompany.business.model.vip.VipInfo;
|
||||
import com.accompany.business.mybatismapper.GiftSendRecordMapper;
|
||||
import com.accompany.business.service.activity.WeekStarService;
|
||||
import com.accompany.business.service.apple.IOSRefundV2Service;
|
||||
import com.accompany.business.service.clan.FamilyDiamondSettlementService;
|
||||
import com.accompany.business.service.gift.GiftMessageService;
|
||||
import com.accompany.business.service.level.LevelService;
|
||||
import com.accompany.business.service.room.RoomManageService;
|
||||
@@ -98,7 +99,7 @@ public class MyApiService {
|
||||
@Autowired
|
||||
private UserLevelExperienceExportService userLevelExperienceExportService;
|
||||
@Autowired
|
||||
private WeekStarService weekStarService;
|
||||
private FamilyDiamondSettlementService familyDiamondSettlementService;
|
||||
|
||||
private Map<String, Future> futureMap = new ConcurrentHashMap<>();
|
||||
@Autowired
|
||||
@@ -378,4 +379,8 @@ public class MyApiService {
|
||||
|
||||
}
|
||||
|
||||
public void familyDiamondSettlement() {
|
||||
familyDiamondSettlementService.settlement(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -142,5 +142,13 @@ public class MyApiController {
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@GetMapping("/familyDiamondSettlement")
|
||||
public BusiResult<Void> familyDiamondSettlement(Long roomId) {
|
||||
if (null == roomId || !roomId.equals(603L)) {
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
myApiService.familyDiamondSettlement();
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -19,5 +19,5 @@ public interface FamilyMemberMapper extends BaseMapper<FamilyMember> {
|
||||
|
||||
FamilyMember selectFamilyMemberByTime(@Param("familyId") Integer familyId, @Param("uid") Long uid, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
|
||||
List<FamilyMember> listValidFamilyMemberByPartitionId(@Param("familyId") Integer partitionId);
|
||||
List<FamilyMember> listValidFamilyMemberByPartitionId(@Param("partitionId") Integer partitionId);
|
||||
}
|
@@ -13,6 +13,7 @@ import com.accompany.business.service.record.BillRecordService;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
@@ -22,9 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@@ -41,10 +40,9 @@ public class FamilyDiamondSettlementService {
|
||||
private FamilyDiamondSettlementPurseService familyDiamondSettlementPurseService;
|
||||
@Autowired
|
||||
private BillRecordService billRecordService;
|
||||
@Resource(name = "bizExecutor")
|
||||
private ThreadPoolExecutor bizExecutor;
|
||||
|
||||
public void settlement(Integer waitSecond) throws InterruptedException {
|
||||
@SneakyThrows
|
||||
public void settlement(Integer waitSecond) {
|
||||
//当天零点再前推1秒,相当于昨天23:59:59 给客户端周查询
|
||||
Date now = DateTimeUtil.addSeconds(DateTimeUtil.getBeginTimeOfDay(new Date()),-1);
|
||||
|
||||
@@ -95,6 +93,8 @@ public class FamilyDiamondSettlementService {
|
||||
FamilyMemberDiamondSettlementRecordMapper familyMemberDiamondSettlementRecordMapper = batchSqlSession.getMapper(FamilyMemberDiamondSettlementRecordMapper.class);
|
||||
|
||||
try {
|
||||
List<FamilyMemberDiamondSettlementRecord> recordList = new ArrayList<>();
|
||||
|
||||
int memberIndex = 0;
|
||||
for (FamilyMember familyMember: familyMemberList){
|
||||
Long uid = familyMember.getUid();
|
||||
@@ -113,20 +113,22 @@ public class FamilyDiamondSettlementService {
|
||||
settlementRecord.setUid(uid);
|
||||
settlementRecord.setDiamondNum(golds);
|
||||
settlementRecord.setCreateTime(now);
|
||||
familyMemberDiamondSettlementRecordMapper.insert(settlementRecord);
|
||||
|
||||
bizExecutor.execute(() -> {
|
||||
billRecordService.insertGeneralBillRecord(familyMember.getUid(), familyMember.getUid(), settlementRecord.getId().toString(),
|
||||
BillObjTypeEnum.FAMILY_DIAMOND_SETTLEMENT, golds);
|
||||
});
|
||||
recordList.add(settlementRecord);
|
||||
|
||||
familyMemberDiamondSettlementRecordMapper.insert(settlementRecord);
|
||||
|
||||
if (memberIndex > 0 && memberIndex % batchSize == 0){
|
||||
batchSqlSession.commit();
|
||||
saveBillRecord(recordList);
|
||||
|
||||
}
|
||||
memberIndex ++;
|
||||
}
|
||||
|
||||
batchSqlSession.commit();
|
||||
saveBillRecord(recordList);
|
||||
|
||||
} catch (Exception e){
|
||||
batchSqlSession.rollback();
|
||||
log.error("[家族金币结算] 扣成员金币发生异常回滚", e);
|
||||
@@ -140,4 +142,12 @@ public class FamilyDiamondSettlementService {
|
||||
|
||||
}
|
||||
|
||||
private void saveBillRecord(List<FamilyMemberDiamondSettlementRecord> recordList) {
|
||||
recordList.parallelStream().forEach(record -> {
|
||||
billRecordService.insertGeneralBillRecord(record.getUid(), record.getUid(), record.getId().toString(),
|
||||
BillObjTypeEnum.FAMILY_DIAMOND_SETTLEMENT, record.getDiamondNum());
|
||||
});
|
||||
recordList.clear();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -41,11 +41,11 @@
|
||||
|
||||
<select id="listValidFamilyMemberByPartitionId"
|
||||
resultType="com.accompany.business.model.family.FamilyMember">
|
||||
select family_id, uid, role_type, create_time, update_time, enable
|
||||
select fm.id, family_id, fm.uid, role_type, fm.create_time, fm.update_time, enable
|
||||
from family_member fm
|
||||
inner join users u on fm.uid = u.uid
|
||||
and fm.enable = 1
|
||||
and u.partition_id = #{partition_id}
|
||||
and u.partition_id = #{partitionId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
@@ -18,7 +18,7 @@ public class FamilyDiamondSettlementTask {
|
||||
* 周一凌晨0点
|
||||
* */
|
||||
@Scheduled(cron = "0 0 0 1,16 * *")
|
||||
public void familyDiamondSettlement() throws InterruptedException {
|
||||
public void familyDiamondSettlement() {
|
||||
long now = System.currentTimeMillis();
|
||||
log.info("familyGoldSettlement() start..........");
|
||||
|
||||
|
Reference in New Issue
Block a user