From 3f7956fa7435a2b581336dc067cf8f25c1719e1c Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 01 Mar 2024 10:44:22 +0800 Subject: [PATCH] 抽奖 --- src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java | 174 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 125 insertions(+), 49 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java index 85c7498..8bb6b34 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java @@ -27,10 +27,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -47,25 +44,23 @@ private final IApiMallMemberService mallMemberService; @Override - public void openPriceAsync(CjInfo cjInfo, String kjNum,String danshuang,String daXiao) { + public void openPriceAsync(CjInfo cjInfo, String kjNum,String danshuang,String daXiao + ,String hong,String lan,String caiqiu,String liugehao,String sangehao) { long l = System.currentTimeMillis(); List<CjItem> cjItems = cjItemMapper.selectListByInfoId(cjInfo.getId()); if(CollUtil.isEmpty(cjItems)){ return; } - /** - * 1-按大小 2-按单双 3-按数字 - */ BigDecimal perkAmountTotal = BigDecimal.ZERO;//中奖总金额 - ArrayList<CjItem> CjItemUpdateList = new ArrayList<>(); + List<CjItem> CjItemUpdateList = new ArrayList<>(); //按大小 List<CjItem> collectDaXiao = cjItems.stream().filter(cjItem -> cjItem.getType() == 1).collect(Collectors.toList()); if(CollUtil.isNotEmpty(collectDaXiao)){ for(CjItem cjItem : collectDaXiao){ String tzCode = cjItem.getTzCode(); - cjItem.setKjNum(daXiao); + cjItem.setKjNum(kjNum); BigDecimal perkAmount = BigDecimal.ZERO; if(daXiao.equals(tzCode)){ perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); @@ -82,7 +77,7 @@ if(CollUtil.isNotEmpty(collectDanShuang)){ for(CjItem cjItem : collectDanShuang){ String tzCode = cjItem.getTzCode(); - cjItem.setKjNum(danshuang); + cjItem.setKjNum(kjNum); BigDecimal perkAmount = BigDecimal.ZERO; if(danshuang.equals(tzCode)){ perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); @@ -111,6 +106,92 @@ perkAmountTotal = perkAmountTotal.add(perkAmount); } } + //按红 + List<CjItem> collectHong = cjItems.stream().filter(cjItem -> cjItem.getType() == 4).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collectHong)){ + for(CjItem cjItem : collectHong){ + String tzCode = cjItem.getTzCode(); + cjItem.setKjNum(kjNum); + BigDecimal perkAmount = BigDecimal.ZERO; + if(hong.equals(tzCode)){ + perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); + cjItem.setPerkAmount(perkAmount); + }else{ + cjItem.setPerkAmount(perkAmount); + } + CjItemUpdateList.add(cjItem); + perkAmountTotal = perkAmountTotal.add(perkAmount); + } + } + //按蓝 + List<CjItem> collectLan = cjItems.stream().filter(cjItem -> cjItem.getType() == 8).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collectLan)){ + for(CjItem cjItem : collectLan){ + String tzCode = cjItem.getTzCode(); + cjItem.setKjNum(kjNum); + BigDecimal perkAmount = BigDecimal.ZERO; + if(lan.equals(tzCode)){ + perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); + cjItem.setPerkAmount(perkAmount); + }else{ + cjItem.setPerkAmount(perkAmount); + } + CjItemUpdateList.add(cjItem); + perkAmountTotal = perkAmountTotal.add(perkAmount); + } + } + //按彩球 + List<CjItem> collectCaiQiu = cjItems.stream().filter(cjItem -> cjItem.getType() == 5).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collectCaiQiu)){ + for(CjItem cjItem : collectCaiQiu){ + String tzCode = cjItem.getTzCode(); + cjItem.setKjNum(kjNum); + BigDecimal perkAmount = BigDecimal.ZERO; + if(caiqiu.equals(tzCode)){ + perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); + cjItem.setPerkAmount(perkAmount); + }else{ + cjItem.setPerkAmount(perkAmount); + } + CjItemUpdateList.add(cjItem); + perkAmountTotal = perkAmountTotal.add(perkAmount); + } + } + //六个号码为一组 + List<CjItem> collectLiuGeHao = cjItems.stream().filter(cjItem -> cjItem.getType() == 6).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collectLiuGeHao)){ + for(CjItem cjItem : collectLiuGeHao){ + String tzCode = cjItem.getTzCode(); + cjItem.setKjNum(kjNum); + BigDecimal perkAmount = BigDecimal.ZERO; + if(liugehao.equals(tzCode)){ + perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); + cjItem.setPerkAmount(perkAmount); + }else{ + cjItem.setPerkAmount(perkAmount); + } + CjItemUpdateList.add(cjItem); + perkAmountTotal = perkAmountTotal.add(perkAmount); + } + } + //三个号码为一组 + List<CjItem> collectSanGeHao = cjItems.stream().filter(cjItem -> cjItem.getType() == 7).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collectSanGeHao)){ + for(CjItem cjItem : collectSanGeHao){ + String tzCode = cjItem.getTzCode(); + cjItem.setKjNum(kjNum); + BigDecimal perkAmount = BigDecimal.ZERO; + if(sangehao.equals(tzCode)){ + perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN); + cjItem.setPerkAmount(perkAmount); + }else{ + cjItem.setPerkAmount(perkAmount); + } + CjItemUpdateList.add(cjItem); + perkAmountTotal = perkAmountTotal.add(perkAmount); + } + } + cjItemMapper.updateBatchById(CjItemUpdateList);//批量更新 if(perkAmountTotal.compareTo(BigDecimal.ZERO) > 0){ @@ -143,9 +224,8 @@ } @Override - public void create(ApiCreateDto apiCreateDto) { + public void create(ApiCreateDto apiCreateDto,Long memberId) { long l = System.currentTimeMillis(); - Long memberId = 1L; //开启下注 DataDictionaryCustom noTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.NO_TIME.getType(), @@ -166,6 +246,12 @@ if(BigDecimal.ZERO.compareTo(tzAmount) >= 0){ throw new FebsException("金额必须大于0"); } + Long id = apiCreateItemDto.getId();//投注ID + TzInfo tzInfo = tzInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(tzInfo)){ + throw new FebsException("参数有误,请刷新页面"); + } + apiCreateItemDto.setTzInfo(tzInfo); totalAmount = totalAmount.add(tzAmount); } if(mallMemberWallet.getBalance().compareTo(totalAmount) < 0){ @@ -187,7 +273,7 @@ for(ApiCreateItemDto apiCreateItemDto : items){ Long id = apiCreateItemDto.getId();//投注ID - TzInfo tzInfo = tzInfoMapper.selectById(id); + TzInfo tzInfo = apiCreateItemDto.getTzInfo(); if(ObjectUtil.isEmpty(tzInfo)){ throw new FebsException("参数有误,请刷新页面"); } @@ -224,41 +310,31 @@ public void tzInfo() { Map<String, JSON> linkedHashMap = new LinkedHashMap<>(); - ArrayList<ApiTzInfoVo> objectDaxiao = new ArrayList<>(); - QueryWrapper<TzInfo> daxiaoQueryWrapper = new QueryWrapper<>(); - daxiaoQueryWrapper.eq("type",1); - List<TzInfo> daXiaos = tzInfoMapper.selectList(daxiaoQueryWrapper); - if(CollUtil.isNotEmpty(daXiaos)){ - for(TzInfo tzInfoRedis : daXiaos){ - ApiTzInfoVo apiTzInfoVo = TzInfoConversion.INSTANCE.entityToVo(tzInfoRedis); - objectDaxiao.add(apiTzInfoVo); - } - } - linkedHashMap.put("daXiao", JSONUtil.parse(objectDaxiao)); - - ArrayList<ApiTzInfoVo> objectDanshuang = new ArrayList<>(); - QueryWrapper<TzInfo> danshuangQueryWrapper = new QueryWrapper<>(); - danshuangQueryWrapper.eq("type",2); - List<TzInfo> danShuangs = tzInfoMapper.selectList(danshuangQueryWrapper); - if(CollUtil.isNotEmpty(danShuangs)){ - for(TzInfo tzInfoRedis : danShuangs){ - ApiTzInfoVo apiTzInfoVo = TzInfoConversion.INSTANCE.entityToVo(tzInfoRedis); - objectDanshuang.add(apiTzInfoVo); - } - } - linkedHashMap.put("danShuang",JSONUtil.parse(objectDanshuang)); - - ArrayList<ApiTzInfoVo> objectShuZi = new ArrayList<>(); - QueryWrapper<TzInfo> shuZiQueryWrapper = new QueryWrapper<>(); - shuZiQueryWrapper.eq("type",3); - List<TzInfo> shuZis = tzInfoMapper.selectList(shuZiQueryWrapper); - if(CollUtil.isNotEmpty(shuZis)){ - for(TzInfo tzInfoRedis : shuZis){ - ApiTzInfoVo apiTzInfoVo = TzInfoConversion.INSTANCE.entityToVo(tzInfoRedis); - objectShuZi.add(apiTzInfoVo); - } - } - linkedHashMap.put("shuZi",JSONUtil.parse(objectShuZi)); + List<TzInfo> tzInfos = tzInfoMapper.selectList(null); + linkedHashMap.put("daXiao", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 1).collect(Collectors.toList())))); + linkedHashMap.put("danShuang", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 2).collect(Collectors.toList())))); + linkedHashMap.put("shuZi", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 3).collect(Collectors.toList())))); + linkedHashMap.put("hong", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 4).collect(Collectors.toList())))); + linkedHashMap.put("caiqiu", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 5).collect(Collectors.toList())))); + linkedHashMap.put("liuHao", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 6).collect(Collectors.toList())))); + linkedHashMap.put("sanHao", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 7).collect(Collectors.toList())))); + linkedHashMap.put("lan", JSONUtil.parse( + TzInfoConversion.INSTANCE.entitysToVo( + tzInfos.stream().filter(tzInfo -> tzInfo.getType() == 8).collect(Collectors.toList())))); //投注信息 String tzInfoNoExit = redisUtils.getString(AppContants.TZ_INFO); -- Gitblit v1.9.1