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";//投注信息 /** * 两个数据需要一起改 */ 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(); } 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(); } 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("操作成功"); } 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); } } 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