This commit is contained in:
张良(004796)
2024-01-30 18:29:33 +08:00
parent 21ab6a06cd
commit 5cbed4c929
14 changed files with 221 additions and 38 deletions

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cai.cache; package com.ruoyi.cai.cache;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.manager.SystemConfigManager;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +22,7 @@ public class DynamicTotalCache {
public String getKey(Long userId){ public String getKey(Long userId){
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
return String.format(RedisConstant.DYNAMIC_TOTAL_CACHE_REDIS,now,userId); return String.format(RedisHttpConstant.DYNAMIC_TOTAL_CACHE_REDIS,now,userId);
} }
public void add(Long userId){ public void add(Long userId){

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cai.constant; package com.ruoyi.cai.constant;
public class RedisConstant { public class RedisHttpConstant {
public static final String REDIS_P = "cai-"; public static final String REDIS_P = "cai-";
public static final String SYSTEM_CONFIG = REDIS_P + "system-config"; public static final String SYSTEM_CONFIG = REDIS_P + "system-config";
public static final String CITY_CACHE_REDIS = REDIS_P + "city"; public static final String CITY_CACHE_REDIS = REDIS_P + "city";
@@ -12,5 +12,8 @@ public class RedisConstant {
public static final String FORBID_CACHE_REDIS = REDIS_P + "forbid:%s"; public static final String FORBID_CACHE_REDIS = REDIS_P + "forbid:%s";
public static final String LOVE_RANK_REDIS = REDIS_P + "loveRank:%s:%s"; public static final String LOVE_RANK_REDIS = REDIS_P + "loveRank:%s:%s";
public static final String INVITE_RANK_REDIS = REDIS_P + "inviteRank:%s:%s"; public static final String INVITE_RANK_REDIS = REDIS_P + "inviteRank:%s:%s";
public static final String HOME_RECOMMEND_REDIS = REDIS_P + "homeRecommendAnchor";
public static final String HOME_NEW_REDIS = REDIS_P + "homeNewAnchor";
public static final String HOME_ACTIVE_REDIS = REDIS_P + "homeActiveAnchor";
} }

View File

@@ -11,6 +11,7 @@ import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo; import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.dto.app.vo.user.UserInfoVo; import com.ruoyi.cai.dto.app.vo.user.UserInfoVo;
import com.ruoyi.cai.dto.app.vo.user.UserListVo; import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.manager.HomeManager;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
@@ -42,6 +43,8 @@ public class IndexController {
private GuardTotalService guardTotalService; private GuardTotalService guardTotalService;
@Autowired @Autowired
private UserGiftService userGiftService; private UserGiftService userGiftService;
@Autowired
private HomeManager homeManager;
@GetMapping("/banner") @GetMapping("/banner")
@Operation(summary = "获取首页banner图") @Operation(summary = "获取首页banner图")
@@ -54,7 +57,15 @@ public class IndexController {
@GetMapping("/anchor/page") @GetMapping("/anchor/page")
@Operation(summary = "首页查询主播接口-分页") @Operation(summary = "首页查询主播接口-分页")
@Log(title = "首页查询主播接口", businessType = BusinessType.OTHER, isSaveDb = false) @Log(title = "首页查询主播接口", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<AnchorListVo>> page(PageQuery page, AnchorListQuery query){ public R<List<AnchorListVo>> anchorPage(PageQuery page, AnchorListQuery query){
List<AnchorListVo> home = homeManager.getHomeCache(page, query);
return R.ok(home);
}
@GetMapping("/anchor/test/page")
@Operation(summary = "主播测试接口")
@Log(title = "主播测试接口", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<AnchorListVo>> anchorTestPage(PageQuery page, AnchorListQuery query){
Page<AnchorListVo> res = anchorService.pageApp(page,query); Page<AnchorListVo> res = anchorService.pageApp(page,query);
return R.ok(res.getRecords()); return R.ok(res.getRecords());
} }
@@ -62,7 +73,7 @@ public class IndexController {
@GetMapping("/user/page") @GetMapping("/user/page")
@Operation(summary = "首页用户搜索接口-分页") @Operation(summary = "首页用户搜索接口-分页")
@Log(title = "首页用户搜索接口-分页", businessType = BusinessType.OTHER, isSaveDb = false) @Log(title = "首页用户搜索接口-分页", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserListVo>> page(PageQuery page, UserQuery query){ public R<List<UserListVo>> userPage(PageQuery page, UserQuery query){
Page<UserListVo> res = userService.pageApp(page,query); Page<UserListVo> res = userService.pageApp(page,query);
return R.ok(res.getRecords()); return R.ok(res.getRecords());
} }

View File

@@ -0,0 +1,35 @@
package com.ruoyi.cai.enums.home;
import lombok.Getter;
/**
* 0-默认查询
* 1-活跃查询
* 2-新人查询
* 3-同城查询
*/
@Getter
public enum AnchorListQueryTypeEnum {
DEFAULT(0,"默认查询"),
ACTIVE(1,"活跃查询"),
NEW(2,"新人查询"),
CITY(3,"同城查询"),
;
private final Integer code;
private final String text;
AnchorListQueryTypeEnum(Integer code, String text) {
this.code = code;
this.text = text;
}
public static AnchorListQueryTypeEnum getByCode(Integer code){
AnchorListQueryTypeEnum[] values = AnchorListQueryTypeEnum.values();
for (AnchorListQueryTypeEnum value : values) {
if(value.getCode().equals(code)){
return value;
}
}
return AnchorListQueryTypeEnum.DEFAULT;
}
}

View File

@@ -0,0 +1,38 @@
package com.ruoyi.cai.job;
import com.ruoyi.cai.manager.HomeManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class HomeRecommendJob {
@Autowired
private HomeManager homeManager;
// 每6分钟执行一次
@Scheduled(cron = "0 0/6 * * * ? ")
public void clearRun() {
try {
homeManager.refreshHomeActiveCache();
}catch (Exception e){
log.error("刷新首页活跃用户失败",e);
}
try {
homeManager.refreshHomeNewCache();
}catch (Exception e){
log.error("刷新首页新用户失败",e);
}
try {
homeManager.refreshHomeRecommendCache();
}catch (Exception e){
log.error("刷新首页推荐用户失败",e);
}
}
}

View File

@@ -1,7 +1,7 @@
package com.ruoyi.cai.manager; package com.ruoyi.cai.manager;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.enums.CodeEnum; import com.ruoyi.cai.enums.CodeEnum;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -20,7 +20,7 @@ public class CodeManager {
private SystemConfigManager systemConfigManager; private SystemConfigManager systemConfigManager;
public String getKey(CodeEnum codeEnum,String phone){ public String getKey(CodeEnum codeEnum,String phone){
return String.format(RedisConstant.CODE_REDIS,codeEnum.name(),phone); return String.format(RedisHttpConstant.CODE_REDIS,codeEnum.name(),phone);
} }
public void put(CodeEnum codeEnum,String phone,String code){ public void put(CodeEnum codeEnum,String phone,String code){

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cai.manager; package com.ruoyi.cai.manager;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.domain.UserForbid; import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.enums.ForbidTypeEnum; import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.ws.util.MapGetUtil; import com.ruoyi.cai.ws.util.MapGetUtil;
@@ -16,7 +16,7 @@ public class ForbidCache {
private RedissonClient redissonClient; private RedissonClient redissonClient;
private String getKey(Integer type){ private String getKey(Integer type){
return String.format(RedisConstant.FORBID_CACHE_REDIS,type); return String.format(RedisHttpConstant.FORBID_CACHE_REDIS,type);
} }
public void addForbid(UserForbid userForbid){ public void addForbid(UserForbid userForbid){

View File

@@ -0,0 +1,95 @@
package com.ruoyi.cai.manager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.dto.app.query.index.AnchorListQuery;
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
import com.ruoyi.cai.enums.home.AnchorListQueryTypeEnum;
import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.common.core.domain.PageQuery;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.List;
/**
* 首页主播随机推荐
*/
@Component
public class HomeManager {
@Autowired
private AnchorService anchorService;
@Autowired
private RedissonClient redissonClient;
public void refreshHomeRecommendCache(){
PageQuery pageQuery = new PageQuery();
pageQuery.setPageSize(200);
pageQuery.setPageNum(1);
AnchorListQuery query = new AnchorListQuery();
// 0-默认查询 1-活跃查询 2-新人查询 3-同城查询
query.setType(0);
Page<AnchorListVo> app = anchorService.pageApp(pageQuery, query);
List<AnchorListVo> records = app.getRecords();
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_RECOMMEND_REDIS);
bucket.set(records);
}
public void refreshHomeNewCache(){
PageQuery pageQuery = new PageQuery();
pageQuery.setPageSize(200);
pageQuery.setPageNum(1);
AnchorListQuery query = new AnchorListQuery();
// 0-默认查询 1-活跃查询 2-新人查询 3-同城查询
query.setType(1);
Page<AnchorListVo> app = anchorService.pageApp(pageQuery, query);
List<AnchorListVo> records = app.getRecords();
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_NEW_REDIS);
bucket.set(records);
}
public void refreshHomeActiveCache(){
PageQuery pageQuery = new PageQuery();
pageQuery.setPageSize(200);
pageQuery.setPageNum(1);
AnchorListQuery query = new AnchorListQuery();
// 0-默认查询 1-活跃查询 2-新人查询 3-同城查询
query.setType(2);
Page<AnchorListVo> app = anchorService.pageApp(pageQuery, query);
List<AnchorListVo> records = app.getRecords();
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_ACTIVE_REDIS);
bucket.set(records);
}
public List<AnchorListVo> getHomeCache(PageQuery pageQuery,AnchorListQuery query){
AnchorListQueryTypeEnum anchorListQueryTypeEnum = AnchorListQueryTypeEnum.getByCode(query.getType());
List<AnchorListVo> vos;
if(anchorListQueryTypeEnum == AnchorListQueryTypeEnum.DEFAULT){ // 默认
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_RECOMMEND_REDIS);
vos = bucket.get();
}else if(anchorListQueryTypeEnum == AnchorListQueryTypeEnum.ACTIVE){
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_ACTIVE_REDIS);
vos = bucket.get();
}else if(anchorListQueryTypeEnum == AnchorListQueryTypeEnum.NEW){
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_NEW_REDIS);
vos = bucket.get();
} else {
if(query.getCityId() == null){
return Collections.emptyList();
}
return anchorService.pageApp(pageQuery, query).getRecords();
}
Collections.shuffle(vos);
Integer pageNum = pageQuery.getPageNum();
int startIndex = (pageNum - 1) * pageQuery.getPageSize();
int endIndex = Math.min(startIndex+pageQuery.getPageSize(), vos.size());
return vos.subList(startIndex, endIndex);
}
}

View File

@@ -1,16 +1,16 @@
package com.ruoyi.cai.manager; package com.ruoyi.cai.manager;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
public class LockManager { public class LockManager {
public static final String LOCK_REGISTER_REDIS = RedisConstant.REDIS_P + "lock:register:%s"; public static final String LOCK_REGISTER_REDIS = RedisHttpConstant.REDIS_P + "lock:register:%s";
public static final String LOCK_DEAL_INVITE_REDIS = RedisConstant.REDIS_P + "lock:dealInvite:%s"; public static final String LOCK_DEAL_INVITE_REDIS = RedisHttpConstant.REDIS_P + "lock:dealInvite:%s";
public static final String LOCK_ADD_USER_GREET_REDIS = RedisConstant.REDIS_P + "lock:addUserGreet:%s"; public static final String LOCK_ADD_USER_GREET_REDIS = RedisHttpConstant.REDIS_P + "lock:addUserGreet:%s";
public static final String LOCK_SEND_GREET_REDIS = RedisConstant.REDIS_P + "lock:sendGreet:%s"; public static final String LOCK_SEND_GREET_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGreet:%s";
public static final String LOCK_SEND_GUARD_REDIS = RedisConstant.REDIS_P + "lock:sendGuard:%s"; public static final String LOCK_SEND_GUARD_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGuard:%s";
public static final String LOCK_SEND_GIFT_REDIS = RedisConstant.REDIS_P + "lock:sendGift:%s"; public static final String LOCK_SEND_GIFT_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGift:%s";
public static final String LOCK_VIDEO_SETTLE_REDIS = RedisConstant.REDIS_P + "lock:videoSettle:%s"; public static final String LOCK_VIDEO_SETTLE_REDIS = RedisHttpConstant.REDIS_P + "lock:videoSettle:%s";
public static String getRegisterLockKey(String mobile){ public static String getRegisterLockKey(String mobile){
return String.format(LOCK_REGISTER_REDIS,mobile); return String.format(LOCK_REGISTER_REDIS,mobile);

View File

@@ -1,13 +1,12 @@
package com.ruoyi.cai.manager; package com.ruoyi.cai.manager;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.enums.systemconfig.SystemCheckResp; import com.ruoyi.cai.enums.systemconfig.SystemCheckResp;
import com.ruoyi.common.core.service.SensitiveService; import com.ruoyi.common.core.service.SensitiveService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.availability.AvailabilityChangeEvent;
import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -93,7 +92,7 @@ public class SystemConfigManager {
* @return * @return
*/ */
public String getSystemConfig(SystemConfigEnum systemConfig){ public String getSystemConfig(SystemConfigEnum systemConfig){
String value = (String) redisTemplate.opsForHash().get(RedisConstant.SYSTEM_CONFIG, systemConfig.name()); String value = (String) redisTemplate.opsForHash().get(RedisHttpConstant.SYSTEM_CONFIG, systemConfig.name());
if(StringUtils.isBlank(value)){ if(StringUtils.isBlank(value)){
return systemConfig.getDefaultValue(); return systemConfig.getDefaultValue();
} }
@@ -124,7 +123,7 @@ public class SystemConfigManager {
*/ */
public Map<String,String> getAllSystemConfig(){ public Map<String,String> getAllSystemConfig(){
HashOperations<String, String, String> stringObjectObjectHashOperations = redisTemplate.opsForHash(); HashOperations<String, String, String> stringObjectObjectHashOperations = redisTemplate.opsForHash();
return stringObjectObjectHashOperations.entries(RedisConstant.SYSTEM_CONFIG); return stringObjectObjectHashOperations.entries(RedisHttpConstant.SYSTEM_CONFIG);
} }
@@ -143,6 +142,6 @@ public class SystemConfigManager {
if(key.equals(SystemConfigEnum.SENSITIVE_ENABLE.getKey())){ if(key.equals(SystemConfigEnum.SENSITIVE_ENABLE.getKey())){
sensitiveService.setSensitive(value.equals("1")); sensitiveService.setSensitive(value.equals("1"));
} }
redisTemplate.opsForHash().put(RedisConstant.SYSTEM_CONFIG, key,value); redisTemplate.opsForHash().put(RedisHttpConstant.SYSTEM_CONFIG, key,value);
} }
} }

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cai.rank; package com.ruoyi.cai.rank;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.mq.AmqpProducer; import com.ruoyi.cai.mq.AmqpProducer;
import com.ruoyi.cai.mq.handle.dto.RankDTO; import com.ruoyi.cai.mq.handle.dto.RankDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -25,8 +25,8 @@ public class RankManager {
@Autowired @Autowired
private RedissonClient redissonClient; private RedissonClient redissonClient;
public static final String LOVE_KEY_FORMAT = RedisConstant.LOVE_RANK_REDIS; public static final String LOVE_KEY_FORMAT = RedisHttpConstant.LOVE_RANK_REDIS;
public static final String INVITE_KEY_FORMAT = RedisConstant.INVITE_RANK_REDIS; public static final String INVITE_KEY_FORMAT = RedisHttpConstant.INVITE_RANK_REDIS;
public static final String DAY = "Day"; public static final String DAY = "Day";
public static final String WEEK = "Week"; public static final String WEEK = "Week";

View File

@@ -3,7 +3,7 @@ package com.ruoyi.cai.service.impl;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.TypeReference; import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.domain.Citys; import com.ruoyi.cai.domain.Citys;
import com.ruoyi.cai.mapper.CitysMapper; import com.ruoyi.cai.mapper.CitysMapper;
import com.ruoyi.cai.service.CitysService; import com.ruoyi.cai.service.CitysService;
@@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -39,18 +38,18 @@ public class CitysServiceImpl extends ServiceImpl<CitysMapper, Citys> implements
public void resetRedis(){ public void resetRedis(){
List<Citys> list = this.list(); List<Citys> list = this.list();
Map<String, String> map = list.stream().collect(Collectors.toMap(i -> String.valueOf(i.getId()), Citys::getName)); Map<String, String> map = list.stream().collect(Collectors.toMap(i -> String.valueOf(i.getId()), Citys::getName));
redisTemplate.opsForHash().putAll(RedisConstant.CITY_CACHE_REDIS, map); redisTemplate.opsForHash().putAll(RedisHttpConstant.CITY_CACHE_REDIS, map);
} }
@Override @Override
public Map<Long, String> all() { public Map<Long, String> all() {
String value = redisTemplate.opsForValue().get(RedisConstant.CITY_CACHE_ALL_REDIS); String value = redisTemplate.opsForValue().get(RedisHttpConstant.CITY_CACHE_ALL_REDIS);
if(value != null){ if(value != null){
return JSON.parseObject(value, new TypeReference<LinkedHashMap<Long, String>>(){}); return JSON.parseObject(value, new TypeReference<LinkedHashMap<Long, String>>(){});
} }
List<Citys> list = this.list(); List<Citys> list = this.list();
Map<Long, String> map = list.stream().collect(Collectors.toMap(Citys::getId, Citys::getName)); Map<Long, String> map = list.stream().collect(Collectors.toMap(Citys::getId, Citys::getName));
redisTemplate.opsForValue().set(RedisConstant.CITY_CACHE_REDIS,JSON.toJSONString(map),30, TimeUnit.DAYS); redisTemplate.opsForValue().set(RedisHttpConstant.CITY_CACHE_REDIS,JSON.toJSONString(map),30, TimeUnit.DAYS);
return map; return map;
} }
@@ -59,7 +58,7 @@ public class CitysServiceImpl extends ServiceImpl<CitysMapper, Citys> implements
if(cityId == null || cityId == 0){ if(cityId == null || cityId == 0){
return null; return null;
} }
Object val = redisTemplate.opsForHash().get(RedisConstant.CITY_CACHE_REDIS, cityId+""); Object val = redisTemplate.opsForHash().get(RedisHttpConstant.CITY_CACHE_REDIS, cityId+"");
if(val != null){ if(val != null){
return String.valueOf(val); return String.valueOf(val);
} }
@@ -67,7 +66,7 @@ public class CitysServiceImpl extends ServiceImpl<CitysMapper, Citys> implements
if(city == null){ if(city == null){
return null; return null;
} }
redisTemplate.opsForHash().put(RedisConstant.CITY_CACHE_REDIS, cityId, city.getName()); redisTemplate.opsForHash().put(RedisHttpConstant.CITY_CACHE_REDIS, cityId, city.getName());
return city.getName(); return city.getName();
} }
} }

View File

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserGreet; import com.ruoyi.cai.domain.UserGreet;
import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo; import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo;
@@ -113,13 +113,13 @@ public class UserGreetServiceImpl extends ServiceImpl<UserGreetMapper,UserGreet>
} }
try { try {
lock.lock(3,TimeUnit.SECONDS); lock.lock(3,TimeUnit.SECONDS);
String numKey = String.format(RedisConstant.USER_GREET_TOTAL_REDIS, DateUtil.today(), userId); String numKey = String.format(RedisHttpConstant.USER_GREET_TOTAL_REDIS, DateUtil.today(), userId);
String val = stringRedisTemplate.opsForValue().get(numKey); String val = stringRedisTemplate.opsForValue().get(numKey);
Long max = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.TODAY_GREET_MAX); Long max = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.TODAY_GREET_MAX);
if(val != null && Long.parseLong(val) > max){ if(val != null && Long.parseLong(val) > max){
throw new ServiceException("您今天打招呼的次数已经用完了"); throw new ServiceException("您今天打招呼的次数已经用完了");
} }
String sendGreetCount = String.format(RedisConstant.USER_GREET_SEND_TIME_REDIS,userId); String sendGreetCount = String.format(RedisHttpConstant.USER_GREET_SEND_TIME_REDIS,userId);
String lastTime = stringRedisTemplate.opsForValue().get(sendGreetCount); String lastTime = stringRedisTemplate.opsForValue().get(sendGreetCount);
if(StringUtils.isNotBlank(lastTime)){ if(StringUtils.isNotBlank(lastTime)){
Integer inter = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.GREET_INTERVAL_MIN); Integer inter = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.GREET_INTERVAL_MIN);

View File

@@ -33,16 +33,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from cai_user t1 from cai_user t1
join cai_anchor t2 on t1.id = t2.user_id join cai_anchor t2 on t1.id = t2.user_id
join cai_user_online t3 on t1.id = t3.user_id join cai_user_online t3 on t1.id = t3.user_id
where t1.status = 0 and t1.is_anchor = 1 where t1.status = 0 and t1.is_anchor = 1 and t2.index_display = 1 and t1.id > 100
<if test="query.cityId != null and query.cityId != ''"> <if test="query.cityId != null and query.cityId != ''">
and t1.city_id = #{query.cityId} and t1.city_id = #{query.cityId}
</if> </if>
<if test="query.type != null"> <if test="query.type != null">
<if test="query.type == 0">
order by t2.recommend_status desc
</if>
<if test="query.type == 1"> <if test="query.type == 1">
order by t3.last_live_time desc order by t3.last_live_time desc,t2.recommend_status desc
</if> </if>
<if test="query.type == 2"> <if test="query.type == 2">
order by t1.create_time desc order by t1.create_time desc, t2.recommend_status desc
</if> </if>
</if> </if>
</select> </select>