From d76af9f8e49adec7b42dac1406685a4cdb12b78e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 22 Feb 2024 13:13:26 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 11 ++-
src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java | 57 +++++++++++++++++++
src/main/java/cc/mrbird/febs/common/utils/AppContants.java | 3 +
src/main/java/cc/mrbird/febs/mall/service/CJService.java | 5 +
src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java | 71 ++++++++++++++++++++---
src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java | 3 +
6 files changed, 137 insertions(+), 13 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
index 7348c3d..7b23032 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
@@ -1,6 +1,9 @@
package cc.mrbird.febs.common.utils;
public class AppContants {
+
+
+ public static final String TZ_INFO = "TZ_INFO";//投注信息
/**
* 两个数据需要一起改
*/
diff --git a/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java b/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java
index d6007ad..c513d16 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java
@@ -14,4 +14,7 @@
@Async(FebsConstant.ASYNC_POOL)
void create(ApiCreateDto apiCreateDto);
+
+ @Async(FebsConstant.ASYNC_POOL)
+ void tzInfo();
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/CJService.java b/src/main/java/cc/mrbird/febs/mall/service/CJService.java
index 35647a8..e99517f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/CJService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/CJService.java
@@ -4,7 +4,10 @@
import cc.mrbird.febs.mall.dto.ApiCreateDto;
import cc.mrbird.febs.mall.dto.KjRecordDto;
import cc.mrbird.febs.mall.entity.CjInfo;
+import cn.hutool.json.JSON;
import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.LinkedHashMap;
public interface CJService extends IService<CjInfo> {
@@ -31,4 +34,6 @@
void getOpenPriceMsg(String kjNo, String kjNum);
+ LinkedHashMap<String, JSON> getTzInfo();
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 2b1907d..a413958 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -6,15 +6,19 @@
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
+import cc.mrbird.febs.mall.conversion.TzInfoConversion;
import cc.mrbird.febs.mall.dto.*;
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.IAdminMallGoodsService;
import cc.mrbird.febs.mall.vo.*;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+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;
@@ -25,10 +29,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@@ -48,6 +49,7 @@
private final CjInfoMapper cjInfoMapper;
private final TzInfoMapper tzInfoMapper;
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final AsyncCjService asyncCjService;
@Override
public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
@@ -549,6 +551,7 @@
tzInfo.getIsRecommend()
);
}
+ asyncCjService.tzInfo();
return new FebsResponse().success().message("操作成功");
}
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..85c7498 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,14 +7,20 @@
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;
@@ -22,7 +28,9 @@
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@@ -212,4 +220,53 @@
log.info("结束:{}", (System.currentTimeMillis() - l));
}
+ @Override
+ 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));
+
+ //投注信息
+ 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);
+ }
+
}
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..de08726 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;
@@ -38,7 +41,9 @@
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
@Slf4j
@Service
@@ -212,16 +217,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
@@ -338,6 +341,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