From 714e98e20f8a534fef0a301c527a8b3ace0741cb Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 13 Mar 2024 14:30:20 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java | 157 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 145 insertions(+), 12 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 0b206fe..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
@@ -7,22 +7,27 @@
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.conversion.TzInfoConversion;
import cc.mrbird.febs.mall.dto.ApiCreateDto;
import cc.mrbird.febs.mall.dto.ApiCreateItemDto;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.AsyncCjService;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
+import cc.mrbird.febs.mall.vo.ApiTzInfoVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@@ -39,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);
@@ -74,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);
@@ -103,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){
@@ -135,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(),
@@ -158,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){
@@ -179,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("参数有误,请刷新页面");
}
@@ -212,4 +306,43 @@
log.info("结束:{}", (System.currentTimeMillis() - l));
}
+ @Override
+ public void tzInfo() {
+ Map<String, JSON> linkedHashMap = new LinkedHashMap<>();
+
+ 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);
+ if (StrUtil.isNotBlank(tzInfoNoExit)) {
+ redisUtils.del(AppContants.TZ_INFO);
+ }
+ JSON jsonStr = JSONUtil.parse(linkedHashMap);
+ redisUtils.set(AppContants.TZ_INFO, jsonStr);
+ }
+
}
--
Gitblit v1.9.1