各种sql、缓存优化

This commit is contained in:
2025-06-17 14:12:31 +08:00
parent 5895d9c56f
commit fae62ab7c2
11 changed files with 155 additions and 101 deletions

View File

@@ -2,7 +2,6 @@ package com.ycwl.basic.service.mobile.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.enums.BizCodeEnum;
@@ -13,7 +12,6 @@ import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoDTO;
import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoUpdateDTO;
import com.ycwl.basic.model.pc.member.entity.MemberEntity;
import com.ycwl.basic.model.pc.member.req.MemberReqQuery;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
import com.ycwl.basic.repository.ScenicRepository;
@@ -88,13 +86,9 @@ public class AppMemberServiceImpl implements AppMemberService {
throw new AppException(BizCodeEnum.SERVER_UNKONWN_ERROR, "未获取到当前用户openId");
}
MemberRespVO memberRespVO = new MemberRespVO();
JwtInfo jwtInfo = new JwtInfo();
// 根据返回的openId,判断用户是否是新用户,是的话,将用户信息存到数据库;
MemberReqQuery memberReqQuery = new MemberReqQuery();
memberReqQuery.setOpenId(openId.toString());
List<MemberRespVO> list = memberMapper.list(memberReqQuery);
if (list.isEmpty()) {
MemberRespVO memberRespVO = memberMapper.getByOpenId(openId.toString());
if (memberRespVO == null) {
MemberEntity memberEntity = new MemberEntity();
memberEntity.setId(SnowFlakeUtil.getLongId());
memberEntity.setScenicId(scenicId);
@@ -107,6 +101,7 @@ public class AppMemberServiceImpl implements AppMemberService {
memberEntity.setProvince(userInfoDTO.getProvince());
memberEntity.setCity(userInfoDTO.getCity());
memberMapper.add(memberEntity);
memberRespVO = new MemberRespVO();
memberRespVO.setId(memberEntity.getId());
memberRespVO.setOpenId(memberEntity.getOpenId());
memberRespVO.setNickname(memberEntity.getNickname());
@@ -117,18 +112,6 @@ public class AppMemberServiceImpl implements AppMemberService {
memberRespVO.setProvince(memberEntity.getProvince());
memberRespVO.setCity(memberEntity.getCity());
memberRespVO.setScenicId(memberEntity.getScenicId());
} else {
MemberRespVO temp = list.getFirst();
memberRespVO.setId(temp.getId());
memberRespVO.setOpenId(temp.getOpenId());
memberRespVO.setNickname(temp.getNickname());
memberRespVO.setAvatarUrl(temp.getAvatarUrl());
memberRespVO.setAgreement(1);
memberRespVO.setPhone(temp.getPhone());
memberRespVO.setCountry(temp.getCountry());
memberRespVO.setProvince(temp.getProvince());
memberRespVO.setCity(temp.getCity());
memberRespVO.setScenicId(temp.getScenicId());
}
jwtInfo.setUserId(memberRespVO.getId());
jwtInfo.setName(memberRespVO.getNickname());

View File

@@ -20,8 +20,5 @@ public interface FaceSampleService {
ApiResponse<List<FaceSampleRespVO>> list(FaceSampleReqQuery faceSampleReqQuery);
ApiResponse<FaceSampleRespVO> getById(Long id);
ApiResponse<Integer> add(FaceSampleEntity face);
ApiResponse<Integer> deleteById(Long id);
ApiResponse<Integer> deleteByIds(List<Long> ids);
ApiResponse<Integer> update(FaceSampleEntity face);
}

View File

@@ -50,31 +50,4 @@ public class FaceSampleServiceImpl implements FaceSampleService {
}
return ApiResponse.success(i);
}
@Override
public ApiResponse<Integer> deleteById(Long id) {
int i = faceSampleMapper.deleteById(id);
if (i == 0) {
return ApiResponse.fail("删除失败");
}
return ApiResponse.success(i);
}
@Override
public ApiResponse<Integer> deleteByIds(List<Long> ids) {
int i = faceSampleMapper.deleteByIds(ids);
if (i == 0) {
return ApiResponse.fail("删除失败");
}
return ApiResponse.success(i);
}
@Override
public ApiResponse<Integer> update(FaceSampleEntity faceSample) {
int i = faceSampleMapper.update(faceSample);
if (i == 0) {
return ApiResponse.fail("修改失败");
}
return ApiResponse.success(i);
}
}

View File

@@ -5,6 +5,8 @@ import com.github.pagehelper.PageInfo;
import com.ycwl.basic.mapper.RenderWorkerMapper;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity;
import com.ycwl.basic.model.pc.renderWorker.req.RenderWorkerReqQuery;
import com.ycwl.basic.model.task.req.ClientStatusReqVo;
import com.ycwl.basic.repository.RenderWorkerRepository;
import com.ycwl.basic.service.pc.RenderWorkerService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.SnowFlakeUtil;
@@ -12,6 +14,8 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
/**
@@ -23,23 +27,76 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Autowired
private RenderWorkerMapper renderWorkerMapper;
@Autowired
private RenderWorkerRepository renderWorkerRepository;
@Override
public ApiResponse<PageInfo<RenderWorkerEntity>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery) {
PageHelper.startPage(renderWorkerReqQuery.getPageNum(), renderWorkerReqQuery.getPageSize());
List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery);
list.forEach(worker -> {
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus == null) {
return;
}
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(clientStatus.getUpdateAt());
});
PageInfo<RenderWorkerEntity> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}
@Override
public ApiResponse<List<RenderWorkerEntity>> list(RenderWorkerReqQuery renderWorkerReqQuery) {
return ApiResponse.success(renderWorkerMapper.list(renderWorkerReqQuery));
List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery);
list.forEach(worker -> {
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus == null) {
return;
}
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(clientStatus.getUpdateAt());
});
return ApiResponse.success(list);
}
@Override
public ApiResponse<RenderWorkerEntity> detail(Long id) {
return ApiResponse.success(renderWorkerMapper.getById(id));
RenderWorkerEntity worker = renderWorkerMapper.getById(id);
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus != null) {
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(clientStatus.getUpdateAt());
}
return ApiResponse.success(worker);
}
@Override
@@ -59,11 +116,13 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Override
public ApiResponse<Integer> deleteById(Long id) {
renderWorkerRepository.clearCache(id);
return ApiResponse.success(renderWorkerMapper.deleteById(id));
}
@Override
public ApiResponse<Integer> update(RenderWorkerEntity renderWorker) {
renderWorkerRepository.clearCache(renderWorker.getId());
int update = renderWorkerMapper.update(renderWorker);
if (update == 0) {
return ApiResponse.fail("渲染机修改失败");
@@ -74,6 +133,7 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Override
public ApiResponse<Integer> updateStatus(Long id) {
renderWorkerRepository.clearCache(id);
return ApiResponse.success(renderWorkerMapper.updateStatus(id));
}
}

View File

@@ -45,6 +45,7 @@ import com.ycwl.basic.notify.entity.NotifyContent;
import com.ycwl.basic.notify.enums.NotifyType;
import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.RenderWorkerRepository;
import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.repository.VideoRepository;
import com.ycwl.basic.repository.VideoTaskRepository;
@@ -81,14 +82,10 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class TaskTaskServiceImpl implements TaskService {
@Autowired
private TemplateMapper templateMapper;
@Autowired
private RenderWorkerMapper renderWorkerMapper;
@Autowired
private TaskMapper taskMapper;
@Autowired
private RedisTemplate<String, String> redisTemplate;
private RenderWorkerRepository repository;
@Autowired
private FaceMapper faceMapper;
@Autowired
@@ -124,13 +121,12 @@ public class TaskTaskServiceImpl implements TaskService {
@Autowired
private VideoReUploader videoReUploader;
private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) {
String accessKey = req.getAccessKey();
if (accessKey == null) {
return null;
}
return renderWorkerMapper.findByAccessKey(accessKey);
return repository.getWorkerByAccessKey(accessKey);
}
@Override
@@ -144,23 +140,7 @@ public class TaskTaskServiceImpl implements TaskService {
worker.setStatus(null);
// get status
ClientStatusReqVo clientStatus = req.getClientStatus();
if (clientStatus != null) {
// 临时这么用下
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(new Date());
redisTemplate.opsForValue().set(TaskConstant.TASK_ONLINE_WORKER_KEY_PFX + worker.getId(), JSON.toJSONString(clientStatus), 60, TimeUnit.SECONDS);
}
renderWorkerMapper.update(worker);
repository.setWorkerHostStatus(worker.getId(), clientStatus);
TaskSyncRespVo resp = new TaskSyncRespVo();
// Template
List<TemplateRespVO> updTemplateList;