提交 1a012e0e 作者: panda

作业服务相关接口-优化

上级 508d78cc
package com.mmc.pms.service.Impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.common.ResultEnum;
import com.mmc.pms.constant.TokenConstant;
......@@ -15,17 +17,22 @@ import com.mmc.pms.model.work.dto.ServiceDTO;
import com.mmc.pms.model.work.dto.WorkServiceDTO;
import com.mmc.pms.model.work.vo.ServiceVO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.redis.RedisConstant;
import com.mmc.pms.service.BackstageTaskService;
import com.mmc.pms.service.InspComtService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
......@@ -45,6 +52,8 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
@Autowired private InspComtService inspComtService;
@Autowired private RedisTemplate redisTemplate;
@Override
public ResultBody addWorkService(ServiceVO param, Integer userAccountId) {
ServiceDO serviceDO = new ServiceDO(param, userAccountId);
......@@ -134,7 +143,7 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
List<Integer> userIds = null;
Integer provinceCode = param.getProvinceCode();
if(provinceCode!=null){
userIds = userAppApi.feignListUserAccountIds(provinceCode, null, null, request.getHeader(TokenConstant.TOKEN));
userIds = userAppApi.feignListUserAccountIds(provinceCode, null, null, null);
if(CollectionUtils.isEmpty(userIds)){
log.warn("根据地区信息查询用户id为空");
}
......@@ -146,23 +155,34 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<ServiceDO> pageList = backstageTaskServiceDao.queryPageByLimit(param,userIds);
// 随机获取50条以上的评论
List<InspComtDO> inspComtRandomList = inspComtService.randomGetInspComtList(RandomUtils.nextInt(50, 9999));
if(inspComtRandomList==null){
inspComtRandomList = Collections.emptyList();
}
// 用户暂时无关联公司数据,先用假数据展示
String companyName = "浙江科比特创新科技有限公司";
List<WorkServiceDTO> workServiceDTOList = new ArrayList<>();
for (ServiceDO item : pageList) {
WorkServiceDTO workServiceDTO = WorkServiceDTO.builder().id(item.getId()).serviceName(item.getServiceName()).companyName(companyName)
.coverPlan(item.getCoverPlan()).serviceIntroduction(item.getServiceIntroduction()).video(item.getVideo()).shareCard(item.getShareCard()).build();
Collections.shuffle(inspComtRandomList);
List<InspComtDO> inspComtList = inspComtRandomList.subList(0, RandomUtils.nextInt(0, inspComtRandomList.size()));
List<InspComtDO> inspComtList = RandomGetInspComt(item.getId());
workServiceDTO.setInspComtList(inspComtList);
workServiceDTO.setInspComtAmount(inspComtList.size());
workServiceDTOList.add(workServiceDTO);
}
return PageResult.buildPage(pageNo, param.getPageSize(), count, workServiceDTOList);
}
/**
* 根据id随机获取50条以上的评论
*/
private List<InspComtDO> RandomGetInspComt(Integer id) {
String listStr = (String) redisTemplate.opsForValue().get(id);
List<InspComtDO> inspComtRandomList = null;
if(StringUtils.isNotBlank(listStr)){
inspComtRandomList = JSONArray.parseArray(listStr, InspComtDO.class);
}else {
inspComtRandomList = inspComtService.randomGetInspComtList(RandomUtils.nextInt(50, 9999));
String toJSONString = JSONObject.toJSONString(inspComtRandomList);
redisTemplate.opsForValue().set(id, toJSONString, 2L, TimeUnit.DAYS);
}
return inspComtRandomList;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论