package com.ruoyi.chargingPile.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
|
import com.ruoyi.chargingPile.api.query.TAccountingStrategyQuery;
|
import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
|
import com.ruoyi.chargingPile.api.vo.TParkingLotVO;
|
import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper;
|
import com.ruoyi.chargingPile.service.TAccountingStrategyService;
|
import com.ruoyi.common.core.web.page.PageInfo;
|
import com.ruoyi.other.api.feignClient.OtherClient;
|
import com.ruoyi.system.api.domain.SysUser;
|
import com.ruoyi.system.api.feignClient.SysUserClient;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.annotation.Resource;
|
import java.util.Arrays;
|
import java.util.Comparator;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 计费策略 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-08-06
|
*/
|
@Service
|
public class TAccountingStrategyServiceImpl extends ServiceImpl<TAccountingStrategyMapper, TAccountingStrategy> implements TAccountingStrategyService {
|
|
@Resource
|
private SysUserClient sysUserClient;
|
@Override
|
public PageInfo<TAccountingStrategyVO> pageList(TAccountingStrategyQuery query) {
|
PageInfo<TAccountingStrategyVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
|
List<TAccountingStrategyVO> list = this.baseMapper.pageList(query,pageInfo);
|
List<Integer> parentIds = list.stream().map(TAccountingStrategyVO::getId).collect(Collectors.toList());
|
List<TAccountingStrategy> list1 = this.list(Wrappers.lambdaQuery(TAccountingStrategy.class)
|
.in(TAccountingStrategy::getParentId, parentIds)
|
.in(TAccountingStrategy::getAuditStatus, Arrays.asList(1,2)));
|
for (TAccountingStrategyVO tAccountingStrategyVO : list) {
|
SysUser data = sysUserClient.getSysUser(tAccountingStrategyVO.getUserId()).getData();
|
tAccountingStrategyVO.setUserName(data.getNickName());
|
if (tAccountingStrategyVO.getFirstUserId()!=null){
|
SysUser first = sysUserClient.getSysUser(tAccountingStrategyVO.getFirstUserId()).getData();
|
tAccountingStrategyVO.setFirstUserName(first==null?null:first.getNickName());
|
}
|
if (tAccountingStrategyVO.getTwoUserId()!=null){
|
SysUser two = sysUserClient.getSysUser(tAccountingStrategyVO.getTwoUserId()).getData();
|
tAccountingStrategyVO.setTwoUserName(two==null?null:two.getNickName());
|
}
|
// 匹配编辑后的未审核的
|
List<TAccountingStrategy> accountingStrategies = list1.stream().filter(e -> e.getParentId().equals(tAccountingStrategyVO.getId()))
|
.sorted(Comparator.comparing(TAccountingStrategy::getCreateTime).reversed()).collect(Collectors.toList());
|
if(!CollectionUtils.isEmpty(accountingStrategies)){
|
TAccountingStrategy tAccountingStrategy = accountingStrategies.get(0);
|
tAccountingStrategyVO.setAuditStatus(tAccountingStrategy.getAuditStatus());
|
}
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
|
/**
|
* 获取平台添加的计费策略
|
* @return
|
*/
|
@Override
|
public List<TAccountingStrategyVO> getPlatformAccountingStrategy() {
|
return this.baseMapper.getPlatformAccountingStrategy();
|
}
|
}
|