TASK:mixi;

This commit is contained in:
shahaibo
2024-05-08 12:46:50 +08:00
parent 1fefa85e5a
commit 5ebb549fe9
4 changed files with 2083 additions and 2088 deletions

View File

@@ -21,4 +21,5 @@ public class MiTuProductSellNum implements Serializable {
private Long productId; private Long productId;
private Integer sellNum; private Integer sellNum;
private LocalDate sellDate; private LocalDate sellDate;
private String shCode;
} }

View File

@@ -1,13 +1,11 @@
package com.mixi.service; package com.mixi.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.mixi.common.config.FileProperties; import com.mixi.common.config.FileProperties;
import com.mixi.common.config.exception.BusinessException; import com.mixi.common.config.exception.BusinessException;
import com.mixi.common.context.UserContext; import com.mixi.common.context.UserContext;
@@ -19,26 +17,20 @@ import com.mixi.mapper.TProductMapper;
import com.mixi.mapper.entity.*; import com.mixi.mapper.entity.*;
import com.mixi.model.dto.*; import com.mixi.model.dto.*;
import com.mixi.model.vo.*; import com.mixi.model.vo.*;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
@@ -287,7 +279,11 @@ public class TAppProductService extends ServiceImpl<TProductMapper, TProduct> {
// return Lists.newArrayList(); // return Lists.newArrayList();
// } // }
// List<Long> selectProductIds = appProductSaleRankVOS.stream().map(v->Long.valueOf(v.getId())).collect(Collectors.toList()); // List<Long> selectProductIds = appProductSaleRankVOS.stream().map(v->Long.valueOf(v.getId())).collect(Collectors.toList());
Map<Long, Integer> productIdNumMap = getProductIdListByQueryType(query.getType()); TStore byId = null;
if (query.getStoreId() != null) {
byId = storeService.getById(query.getStoreId());
}
Map<Long, Integer> productIdNumMap = getProductIdListByQueryType(query.getType(), byId);
List<Long> collect = productIdNumMap.keySet().stream().collect(Collectors.toList()); List<Long> collect = productIdNumMap.keySet().stream().collect(Collectors.toList());
QueryWrapper<TProduct> qw = new QueryWrapper<>(); QueryWrapper<TProduct> qw = new QueryWrapper<>();
qw.lambda().in(TProduct::getId, collect); qw.lambda().in(TProduct::getId, collect);
@@ -345,7 +341,7 @@ public class TAppProductService extends ServiceImpl<TProductMapper, TProduct> {
return sortedList; return sortedList;
} }
public Map<Long, Integer> getProductIdListByQueryType(Integer type) { public Map<Long, Integer> getProductIdListByQueryType(Integer type, TStore byId) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
String startDate = ""; String startDate = "";
@@ -367,6 +363,10 @@ public class TAppProductService extends ServiceImpl<TProductMapper, TProduct> {
.groupBy("product_id") .groupBy("product_id")
.orderByDesc("sell_num") .orderByDesc("sell_num")
.last("LIMIT 10"); .last("LIMIT 10");
if (byId != null) {
qw.eq("sh_code", byId.getName());
}
List<MiTuProductSellNum> miTuProductSellNums = miTuProductSellNumMapper.selectList(qw); List<MiTuProductSellNum> miTuProductSellNums = miTuProductSellNumMapper.selectList(qw);
if (CollectionUtils.isEmpty(miTuProductSellNums)) { if (CollectionUtils.isEmpty(miTuProductSellNums)) {
return new HashMap<>(); return new HashMap<>();

View File

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mixi.common.config.exception.BusinessException; import com.mixi.common.config.exception.BusinessException;
import com.mixi.common.response.PageBaseResponse; import com.mixi.common.response.PageBaseResponse;
import com.mixi.common.response.Response;
import com.mixi.common.utils.CopyUtil; import com.mixi.common.utils.CopyUtil;
import com.mixi.common.utils.MinioUtil; import com.mixi.common.utils.MinioUtil;
import com.mixi.mapper.MiTuExportMapper; import com.mixi.mapper.MiTuExportMapper;
@@ -15,27 +14,20 @@ import com.mixi.mapper.TProductMapper;
import com.mixi.mapper.entity.MiTuExport; import com.mixi.mapper.entity.MiTuExport;
import com.mixi.mapper.entity.MiTuMember; import com.mixi.mapper.entity.MiTuMember;
import com.mixi.mapper.entity.MiTuProduct; import com.mixi.mapper.entity.MiTuProduct;
import com.mixi.mapper.entity.TProduct;
import com.mixi.model.dto.QueryMiTuExportPageDTO; import com.mixi.model.dto.QueryMiTuExportPageDTO;
import com.mixi.model.vo.MiTuExportVO; import com.mixi.model.vo.MiTuExportVO;
import com.mixi.service.MiTuExportService; import com.mixi.service.MiTuExportService;
import com.mixi.service.TAppProductService; import com.mixi.service.TAppProductService;
import com.mixi.service.TProductService;
import io.minio.errors.MinioException; import io.minio.errors.MinioException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -208,7 +200,7 @@ public class MiTuExportServiceImpl implements MiTuExportService {
} }
case "Type S" : { case "Type S" : {
// Sell through 前20 // Sell through 前20
Map<Long, Integer> productIdNumMap = appProductService.getProductIdListByQueryType(3); Map<Long, Integer> productIdNumMap = appProductService.getProductIdListByQueryType(3, null);
List<Long> collect = productIdNumMap.keySet().stream().collect(Collectors.toList()); List<Long> collect = productIdNumMap.keySet().stream().collect(Collectors.toList());
if (CollectionUtils.isEmpty(collect)) { if (CollectionUtils.isEmpty(collect)) {
return new ArrayList<>(); return new ArrayList<>();