|
|
@@ -6,19 +6,19 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.izouma.dingdong.config.Constants;
|
|
|
import com.izouma.dingdong.converter.LongArrayConverter;
|
|
|
+import com.izouma.dingdong.domain.OrderInfo;
|
|
|
import com.izouma.dingdong.domain.User;
|
|
|
import com.izouma.dingdong.domain.Verified;
|
|
|
import com.izouma.dingdong.domain.backstage.Category;
|
|
|
-import com.izouma.dingdong.domain.merchant.Goods;
|
|
|
-import com.izouma.dingdong.domain.merchant.Merchant;
|
|
|
-import com.izouma.dingdong.domain.merchant.MerchantClassification;
|
|
|
-import com.izouma.dingdong.domain.merchant.MerchantSettings;
|
|
|
+import com.izouma.dingdong.domain.merchant.*;
|
|
|
import com.izouma.dingdong.domain.user.UserCoupon;
|
|
|
+import com.izouma.dingdong.dto.HeatMapDTO;
|
|
|
import com.izouma.dingdong.dto.MerchantDTO;
|
|
|
import com.izouma.dingdong.dto.PageQuery;
|
|
|
import com.izouma.dingdong.enums.ApplyStatus;
|
|
|
import com.izouma.dingdong.exception.BusinessException;
|
|
|
import com.izouma.dingdong.repo.CouponRepo;
|
|
|
+import com.izouma.dingdong.repo.OrderInfoRepo;
|
|
|
import com.izouma.dingdong.repo.UserRepo;
|
|
|
import com.izouma.dingdong.repo.VerifiedRepo;
|
|
|
import com.izouma.dingdong.repo.backstage.CategoryRepo;
|
|
|
@@ -37,6 +37,7 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
import static com.izouma.dingdong.web.BaseController.*;
|
|
|
|
|
|
@@ -49,11 +50,8 @@ public class MerchantService {
|
|
|
private UserRepo userRepo;
|
|
|
private MerchantClassificationRepo merchantClassificationRepo;
|
|
|
private VerifiedRepo verifiedRepo;
|
|
|
- private FullReductionRepo fullReductionRepo;
|
|
|
- private CouponRepo couponRepo;
|
|
|
- private UserCouponRepo userCouponRepo;
|
|
|
private CategoryRepo categoryRepo;
|
|
|
- private GoodsRepo goodsRepo;
|
|
|
+ private OrderInfoRepo orderInfoRepo;
|
|
|
|
|
|
/*
|
|
|
商户注册申请
|
|
|
@@ -345,4 +343,21 @@ public class MerchantService {
|
|
|
}
|
|
|
return dtos;
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ 返回商家热力图
|
|
|
+ */
|
|
|
+ public List<HeatMapDTO> heatMap(Double longitude, Double latitude) {
|
|
|
+ List<HeatMapDTO> list = new ArrayList<>();
|
|
|
+
|
|
|
+ Set<Merchant> merchantSet = new HashSet<>(merchantRepo.findAll());
|
|
|
+ Map<Merchant, Double> map = this.distanceSorting(merchantSet, longitude, latitude, 3000.0);
|
|
|
+ map.keySet().forEach(m -> {
|
|
|
+ long sum = orderInfoRepo.findAllByMerchantId(m.getId()).stream().mapToLong(OrderInfo::getId).count();
|
|
|
+ list.add(new HeatMapDTO(sum, longitude, latitude));
|
|
|
+ });
|
|
|
+
|
|
|
+ return list;
|
|
|
+
|
|
|
+ }
|
|
|
}
|