123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package com.fdkankan.ucenter.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.fdkankan.common.constant.ErrorCode;
- import com.fdkankan.common.exception.BusinessException;
- import com.fdkankan.common.response.PageInfo;
- import com.fdkankan.fyun.oss.UploadToOssUtil;
- import com.fdkankan.ucenter.common.OssPath;
- import com.fdkankan.ucenter.entity.ScenePlus;
- import com.fdkankan.ucenter.entity.ScenePlusVoid;
- import com.fdkankan.ucenter.entity.User;
- import com.fdkankan.ucenter.mapper.IScenePlusVoidMapper;
- import com.fdkankan.ucenter.service.IFusionService;
- import com.fdkankan.ucenter.service.IScenePlusService;
- import com.fdkankan.ucenter.service.IScenePlusVoidService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.ucenter.service.IUserService;
- import com.fdkankan.ucenter.vo.request.SceneParam;
- import com.fdkankan.ucenter.vo.response.ScenePlusVo;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2022-08-08
- */
- @Service
- public class ScenePlusVoidServiceImpl extends ServiceImpl<IScenePlusVoidMapper, ScenePlusVoid> implements IScenePlusVoidService {
- @Autowired
- IFusionService fusionService;
- @Autowired
- IUserService userService;
- @Autowired
- IScenePlusService scenePlusService;
- @Autowired
- UploadToOssUtil uploadToOssUtil;
- @Override
- public void setStatus(String num, Integer type,String token) {
- if(StringUtils.isEmpty(num) || type == null){
- throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
- }
- ScenePlus scenePlus = scenePlusService.getByNum(num);
- if(scenePlus == null){
- throw new BusinessException(-1,"场景不存在");
- }
- User user = userService.getByToken(token);
- ScenePlusVoid plusVoid = this.getByPlusId(scenePlus.getId());
- if(plusVoid == null){
- plusVoid = new ScenePlusVoid();
- plusVoid.setUserId(user.getId());
- plusVoid.setStatus(type);
- plusVoid.setPlusId(scenePlus.getId());
- this.save(plusVoid);
- }else {
- plusVoid.setStatus(type);
- plusVoid.setUpdateTime(null);
- this.updateById(plusVoid);
- }
- }
- private ScenePlusVoid getByPlusId(Long plusId) {
- LambdaQueryWrapper<ScenePlusVoid> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ScenePlusVoid::getPlusId,plusId);
- return this.getOne(wrapper);
- }
- @Override
- public List<ScenePlusVo> scenePageList(SceneParam param, String token) {
- if(param.getHaveVoid()!=null){
- User user = userService.getByToken(token);
- LambdaQueryWrapper<ScenePlusVoid> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ScenePlusVoid::getStatus,1)
- .eq(ScenePlusVoid::getUserId,user.getId());
- List<ScenePlusVoid> list = this.list(wrapper);
- if(list.size() <=0 && param.getHaveVoid() == 0){
- return new ArrayList<>();
- }
- if(list.size() >0){
- List<Long> plusIds = list.parallelStream().map(ScenePlusVoid::getPlusId).collect(Collectors.toList());
- List<ScenePlus> plusList = scenePlusService.getByIds(plusIds);
- if(plusList.size() >0){
- List<String> numList = plusList.parallelStream().map(ScenePlus::getNum).collect(Collectors.toList());
- param.setNumList(numList);
- }
- }
- }
- param.setStatus(2); //计算成功的数据
- param.setPageSize(Integer.MAX_VALUE);
- PageInfo pageInfo = fusionService.scenePageList(param, token);
- List<ScenePlusVo> list = (List<ScenePlusVo>) pageInfo.getList();
- List<ScenePlusVo> newList = new ArrayList<>();
- for (ScenePlusVo scenePlusVo : list) { //检测oss 是否存在houseType
- String key = String.format(OssPath.houseTypePath,scenePlusVo.getNum());
- if(uploadToOssUtil.existKey(key)){
- newList.add(scenePlusVo);
- }
- }
- return newList;
- }
- @Override
- public HashMap<Long, ScenePlusVoid> getByPlusIds(List<Long> plusIds) {
- LambdaQueryWrapper<ScenePlusVoid> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(ScenePlusVoid::getPlusId,plusIds);
- List<ScenePlusVoid> list = this.list(wrapper);
- HashMap<Long,ScenePlusVoid> map = new HashMap<>();
- list.forEach(entity -> map.put(entity.getPlusId(),entity));
- return map;
- }
- }
|