From 59ced2bc629aa8bc66b34bdae543a2408b3e3614 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 27 Feb 2024 10:21:15 +0800 Subject: [PATCH] 抽奖 --- src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java | 83 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 72 insertions(+), 11 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java index 58cc496..f9c49e1 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java @@ -26,6 +26,9 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -37,8 +40,12 @@ import java.math.BigDecimal; import java.text.ParseException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; @Slf4j @Service @@ -161,6 +168,12 @@ DataDictionaryEnum.TIME_INTERVAL.getCode() ); apiKjInfoVo.setDjs(Integer.parseInt(timeIntervalDic.getValue())); + + // 获取当前时间 + LocalDateTime currentTime = LocalDateTime.now(); + // 定义时间格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + apiKjInfoVo.setSystemTime(currentTime.format(formatter)); return new FebsResponse().success().data(apiKjInfoVo); } @@ -212,16 +225,14 @@ @Override public FebsResponse tzInfo() { - ArrayList<ApiTzInfoVo> objects = new ArrayList<>(); - - List<TzInfo> tzInfos = tzInfoMapper.selectList(null); - if(CollUtil.isNotEmpty(tzInfos)){ - for(TzInfo tzInfo : tzInfos){ - ApiTzInfoVo apiTzInfoVo = TzInfoConversion.INSTANCE.entityToVo(tzInfo); - objects.add(apiTzInfoVo); - } + LinkedHashMap<String, JSON> tzInfo1 = new LinkedHashMap<>(); + Object tzInfoMap = redisUtils.get(AppContants.TZ_INFO); + if(ObjectUtil.isEmpty(tzInfoMap)){ + tzInfo1 = this.getTzInfo(); + }else{ + tzInfo1 = JSONUtil.toBean(JSONUtil.parseObj(tzInfoMap), LinkedHashMap.class); } - return new FebsResponse().success().data(objects); + return new FebsResponse().success().data(tzInfo1); } @Override @@ -233,8 +244,8 @@ DataDictionaryEnum.NO_TIME.getType(), DataDictionaryEnum.NO_TIME.getCode() ); - if(noTimeDic.getValue().equals(2)){ - throw new FebsException("请等待下一期"); + if("2".equals(noTimeDic.getValue())){ + throw new FebsException("已停止投注"); } List<ApiCreateItemDto> items = apiCreateDto.getItems(); @@ -338,6 +349,56 @@ } } + @Override + public LinkedHashMap<String, JSON> getTzInfo() { + LinkedHashMap<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)); + + //投注信息 + 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); + return linkedHashMap; + } + /** * 取模运算符%来判断该数字是否为偶数。如果余数为0,则该数字为偶数,返回"双数";否则,该数字为奇数,返回"单数" * @param num -- Gitblit v1.9.1