|
@@ -12,10 +12,15 @@ import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.util.StringUtil;
|
|
import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.mapper.*;
|
|
import com.cyksj.mapper.*;
|
|
|
import com.cyksj.model.entity.*;
|
|
import com.cyksj.model.entity.*;
|
|
|
|
|
+import com.cyksj.model.views.GrokCarInfoView;
|
|
|
import com.cyksj.model.views.GrokUserView;
|
|
import com.cyksj.model.views.GrokUserView;
|
|
|
import com.cyksj.service.grok.GrokService;
|
|
import com.cyksj.service.grok.GrokService;
|
|
|
import com.cyksj.service.sys.SysConfigService;
|
|
import com.cyksj.service.sys.SysConfigService;
|
|
|
import com.cyksj.service.user.UserBindRelationService;
|
|
import com.cyksj.service.user.UserBindRelationService;
|
|
|
|
|
+import com.ejlchina.searcher.BeanSearcher;
|
|
|
|
|
+import com.ejlchina.searcher.SearchResult;
|
|
|
|
|
+import com.ejlchina.searcher.util.MapBuilder;
|
|
|
|
|
+import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
@@ -24,7 +29,9 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -50,6 +57,8 @@ public class GrokServiceImpl implements GrokService {
|
|
|
|
|
|
|
|
private final SysConfigService sysConfigService;
|
|
private final SysConfigService sysConfigService;
|
|
|
|
|
|
|
|
|
|
+ private final BeanSearcher beanSearcher;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public GrokUserView getUserInfo(long userId, Long relationId) {
|
|
public GrokUserView getUserInfo(long userId, Long relationId) {
|
|
|
GrokUser grokUser = checkCarAccount(userId, relationId);
|
|
GrokUser grokUser = checkCarAccount(userId, relationId);
|
|
@@ -131,6 +140,31 @@ public class GrokServiceImpl implements GrokService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SearchResult<GrokCarInfoView> getCarInfoList(Map<String, String[]> parameterMap, Integer limit) {
|
|
|
|
|
+ Map<String, String[]> params = new HashMap<>(parameterMap);
|
|
|
|
|
+ if (params.containsKey("status")) {
|
|
|
|
|
+ params.put("csStatus", params.remove("status"));
|
|
|
|
|
+ }
|
|
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(params)
|
|
|
|
|
+ .orderBy(GrokCarInfoView::getSort).asc()
|
|
|
|
|
+ .orderBy(GrokCarInfoView::getScore).asc();
|
|
|
|
|
+ if (!params.containsKey("limit")) {
|
|
|
|
|
+ builder.limit(0, limit);
|
|
|
|
|
+ }
|
|
|
|
|
+ SearchResult<GrokCarInfoView> carInfoList = beanSearcher.search(GrokCarInfoView.class, builder.build());
|
|
|
|
|
+ carInfoList.getDataList().forEach(this::buildGrokCarInfoView);
|
|
|
|
|
+ return carInfoList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void buildGrokCarInfoView(GrokCarInfoView view) {
|
|
|
|
|
+ view.setCarName(view.getCarId());
|
|
|
|
|
+ view.setStatus("空闲");
|
|
|
|
|
+ Double score = Optional.ofNullable(view.getScore()).orElse(0D);
|
|
|
|
|
+ view.setStatus(score >= 100 ? "繁忙" : "空闲");
|
|
|
|
|
+ view.setScore(Math.min(BigDecimal.valueOf(score).multiply(BigDecimal.valueOf(0.5)).setScale(0, RoundingMode.DOWN).doubleValue(), 200));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取车位信息
|
|
* 获取车位信息
|
|
|
*
|
|
*
|