|
@@ -9,10 +9,7 @@ import com.citu.framework.common.util.object.BeanUtils;
|
|
|
import com.citu.module.menduner.system.api.area.MendunerAreaApi;
|
|
|
import com.citu.module.product.api.spu.ProductSpuApi;
|
|
|
import com.citu.module.product.api.spu.dto.ProductSpuRespDTO;
|
|
|
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeDetailRespVO;
|
|
|
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeImportExcelVO;
|
|
|
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizePageReqVO;
|
|
|
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeSaveReqVO;
|
|
|
+import com.citu.module.promotion.controller.admin.luck.vo.prize.*;
|
|
|
import com.citu.module.promotion.convert.luck.LuckPrizeConvert;
|
|
|
import com.citu.module.promotion.dal.dataobject.luck.LuckLotteryDO;
|
|
|
import com.citu.module.promotion.dal.dataobject.luck.LuckPrizeDO;
|
|
@@ -28,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -330,50 +328,63 @@ public class LuckPrizeServiceImpl implements LuckPrizeService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, List<LuckPrizeDetailRespVO>> getLuckPrizeExtendAreaMap(Long lotteryId, String type, Long parentAreaId) {
|
|
|
+ public Map<String, LuckPrizeStatisticsRespVO> getLuckPrizeExtendAreaMap(Long lotteryId, String type, Long parentAreaId) {
|
|
|
List<LuckPrizeDetailRespVO> list = getByLotteryId(lotteryId);
|
|
|
- Map<String, List<LuckPrizeDetailRespVO>> map = new LinkedHashMap<>();
|
|
|
+ Map<String, LuckPrizeStatisticsRespVO> map = new LinkedHashMap<>();
|
|
|
|
|
|
if (null == type || "province".equals(type)) {
|
|
|
- map.putAll(list.stream()
|
|
|
+ map.putAll(packPrize(list.stream()
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getProvinceName() != null)
|
|
|
- .collect(Collectors.groupingBy(k -> k.getExtend().getProvinceName())));
|
|
|
+ .collect(Collectors.groupingBy(k -> k.getExtend().getProvinceName()))));
|
|
|
}
|
|
|
|
|
|
if ("city".equals(type)) {
|
|
|
if (null == parentAreaId) {
|
|
|
- map.putAll(list.stream()
|
|
|
+ map.putAll(packPrize(list.stream()
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getCityName() != null)
|
|
|
- .collect(Collectors.groupingBy(k -> k.getExtend().getCityName())));
|
|
|
+ .collect(Collectors.groupingBy(k -> k.getExtend().getCityName()))));
|
|
|
} else {
|
|
|
- map.putAll(list.stream()
|
|
|
+ map.putAll(packPrize(list.stream()
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
|
|
|
.filter(luckPrizeDetailRespVO -> parentAreaId.equals(luckPrizeDetailRespVO.getExtend().getProvinceId()))
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getCityName() != null)
|
|
|
- .collect(Collectors.groupingBy(k -> k.getExtend().getCityName())));
|
|
|
+ .collect(Collectors.groupingBy(k -> k.getExtend().getCityName()))));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ("district".equals(type)) {
|
|
|
if (null == parentAreaId) {
|
|
|
- map.putAll(list.stream()
|
|
|
+ map.putAll(packPrize(list.stream()
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getDistrictName() != null)
|
|
|
- .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName())));
|
|
|
+ .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName()))));
|
|
|
} else {
|
|
|
- map.putAll(list.stream()
|
|
|
+ map.putAll(packPrize(list.stream()
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
|
|
|
.filter(luckPrizeDetailRespVO -> parentAreaId.equals(luckPrizeDetailRespVO.getExtend().getCityId()))
|
|
|
.filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getDistrictName() != null)
|
|
|
- .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName())));
|
|
|
+ .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName()))));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return map;
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Map<String, LuckPrizeStatisticsRespVO> packPrize(Map<String, List<LuckPrizeDetailRespVO>> map) {
|
|
|
+ Map<String, LuckPrizeStatisticsRespVO> newMap = new HashMap<>(map.size());
|
|
|
+ for (Map.Entry<String, List<LuckPrizeDetailRespVO>> entry : map.entrySet()) {
|
|
|
+ LuckPrizeStatisticsRespVO statisticsRespVO = new LuckPrizeStatisticsRespVO();
|
|
|
+ statisticsRespVO.setList(entry.getValue());
|
|
|
+ // 统计奖品总数量
|
|
|
+ statisticsRespVO.setTotal(entry.getValue().stream().mapToInt(LuckPrizeDetailRespVO::getTotal).sum());
|
|
|
+ newMap.put(entry.getKey(), statisticsRespVO);
|
|
|
+ }
|
|
|
|
|
|
+ return newMap;
|
|
|
}
|
|
|
|
|
|
@Override
|