👎 增加后台商品列表的数据统计字段
This commit is contained in:
@@ -84,8 +84,8 @@ public class StoreOrderController {
|
||||
this.yxStoreOrderStatusService = yxStoreOrderStatusService;
|
||||
}
|
||||
|
||||
/**@Valid
|
||||
* 根据商品分类统计订单占比
|
||||
/**
|
||||
* @Valid 根据商品分类统计订单占比
|
||||
*/
|
||||
@GetMapping("/yxStoreOrder/orderCount")
|
||||
@ApiOperation(value = "根据商品分类统计订单占比", notes = "根据商品分类统计订单占比", response = ExpressParam.class)
|
||||
@@ -96,6 +96,7 @@ public class StoreOrderController {
|
||||
|
||||
/**
|
||||
* 首页订单/用户等统计
|
||||
*
|
||||
* @return OrderTimeDataDto
|
||||
*/
|
||||
@GetMapping(value = "/data/count")
|
||||
@@ -106,6 +107,7 @@ public class StoreOrderController {
|
||||
|
||||
/**
|
||||
* 返回本月订单金额与数量chart
|
||||
*
|
||||
* @return map
|
||||
*/
|
||||
@GetMapping(value = "/data/chart")
|
||||
@@ -118,20 +120,20 @@ public class StoreOrderController {
|
||||
@ApiOperation(value = "查询订单")
|
||||
@GetMapping(value = "/yxStoreOrder")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTOREORDER_ALL','YXSTOREORDER_SELECT','YXEXPRESS_SELECT')")
|
||||
public ResponseEntity getYxStoreOrders(YxStoreOrderQueryCriteria criteria,
|
||||
public ResponseEntity<AdminOrderDto> getYxStoreOrders(YxStoreOrderQueryCriteria criteria,
|
||||
Pageable pageable,
|
||||
@RequestParam(name = "orderStatus") String orderStatus,
|
||||
@RequestParam(name = "orderType") String orderType) {
|
||||
//增加支持多选类型搜索
|
||||
Map<String,Object> map;
|
||||
AdminOrderDto dto;
|
||||
String[] orderTypeList = orderType.split(",");
|
||||
if (orderTypeList.length > 1) {//多选方法
|
||||
map=yxStoreOrderService.queryManyType(orderTypeList, pageable,criteria,orderStatus);
|
||||
dto = yxStoreOrderService.queryManyType(orderTypeList, pageable, criteria, orderStatus);
|
||||
} else {
|
||||
YxStoreOrderQueryCriteria newCriteria = this.handleQuery(criteria, orderStatus, orderType);
|
||||
map=yxStoreOrderService.queryAll(newCriteria, pageable);
|
||||
dto = yxStoreOrderService.queryAll(newCriteria, pageable);
|
||||
}
|
||||
return new ResponseEntity<>(map, HttpStatus.OK);
|
||||
return new ResponseEntity<>(dto, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据订单id获取订单详情")
|
||||
@@ -140,6 +142,7 @@ public class StoreOrderController {
|
||||
public ResponseEntity getYxStoreOrders(@PathVariable Long id) {
|
||||
return new ResponseEntity<>(yxStoreOrderService.getOrderDetail(id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询订单当前状态流程")
|
||||
@GetMapping(value = "/getNowOrderStatus/{id}")
|
||||
public ResponseEntity getNowOrderStatus(@PathVariable Long id) {
|
||||
@@ -190,6 +193,7 @@ public class StoreOrderController {
|
||||
|
||||
return new ResponseEntity(yxOrderNowOrderStatusDto, HttpStatus.OK);
|
||||
}
|
||||
|
||||
public List<YxStoreOrderStatusDto> getOrderStatusDto(List<YxStoreOrderStatus> orderStatusLogList) {
|
||||
List<YxStoreOrderStatusDto> dtoList = orderStatusLogList.stream().map(log -> {
|
||||
YxStoreOrderStatusDto dto = generator.convert(log, YxStoreOrderStatusDto.class);
|
||||
@@ -199,6 +203,7 @@ public class StoreOrderController {
|
||||
}).collect(Collectors.toList());
|
||||
return dtoList;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "发货")
|
||||
@PutMapping(value = "/yxStoreOrder")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT')")
|
||||
@@ -232,7 +237,6 @@ public class StoreOrderController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "修改快递单号")
|
||||
@PutMapping(value = "/yxStoreOrder/updateDelivery")
|
||||
@PreAuthorize("hasAnyAuthority('admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT')")
|
||||
@@ -250,7 +254,6 @@ public class StoreOrderController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "订单核销")
|
||||
@PutMapping(value = "/yxStoreOrder/check")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT')")
|
||||
@@ -362,23 +365,24 @@ public class StoreOrderController {
|
||||
@RequestParam(name = "listContent") String listContent) throws IOException, ParseException {
|
||||
List<YxStoreOrderDto> list;
|
||||
if (StringUtils.isEmpty(listContent)) {
|
||||
list = (List)getYxStoreList(criteria, pageable, orderStatus, orderType).get("content");
|
||||
list = getYxStoreList(criteria, pageable, orderStatus, orderType).getContent();
|
||||
} else {
|
||||
List<String> idList = JSONArray.parseArray(listContent).toJavaList(String.class);
|
||||
list = (List)yxStoreOrderService.queryAll(idList).get("content");
|
||||
list = yxStoreOrderService.queryAll(idList).getContent();
|
||||
}
|
||||
yxStoreOrderService.download(list, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载数据
|
||||
*
|
||||
* @param criteria criteria
|
||||
* @param pageable pageable
|
||||
* @param orderStatus orderStatus
|
||||
* @param orderType orderType
|
||||
* @return Map
|
||||
*/
|
||||
private Map<String,Object> getYxStoreList(YxStoreOrderQueryCriteria criteria,
|
||||
private AdminOrderDto getYxStoreList(YxStoreOrderQueryCriteria criteria,
|
||||
Pageable pageable,
|
||||
String orderStatus,
|
||||
String orderType) {
|
||||
@@ -388,9 +392,9 @@ public class StoreOrderController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 处理订单查询
|
||||
*
|
||||
* @param criteria YxStoreOrderQueryCriteria
|
||||
* @param orderStatus 订单状态
|
||||
* @param orderType 订单类型
|
||||
@@ -480,5 +484,4 @@ public class StoreOrderController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -12,10 +12,7 @@ import co.yixiang.common.service.BaseService;
|
||||
import co.yixiang.modules.order.domain.YxStoreOrder;
|
||||
import co.yixiang.modules.order.domain.YxStoreOrderCartInfo;
|
||||
import co.yixiang.modules.order.param.OrderParam;
|
||||
import co.yixiang.modules.order.service.dto.OrderCountDto;
|
||||
import co.yixiang.modules.order.service.dto.OrderTimeDataDto;
|
||||
import co.yixiang.modules.order.service.dto.YxStoreOrderDto;
|
||||
import co.yixiang.modules.order.service.dto.YxStoreOrderQueryCriteria;
|
||||
import co.yixiang.modules.order.service.dto.*;
|
||||
import co.yixiang.modules.order.vo.ComputeVo;
|
||||
import co.yixiang.modules.order.vo.ConfirmOrderVo;
|
||||
import co.yixiang.modules.order.vo.OrderDataVo;
|
||||
@@ -257,7 +254,7 @@ public interface YxStoreOrderService extends BaseService<YxStoreOrder>{
|
||||
* @param pageable 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryManyType(String[] typeList, Pageable pageable,YxStoreOrderQueryCriteria criteria,String orderStatus);
|
||||
AdminOrderDto queryManyType(String[] typeList, Pageable pageable, YxStoreOrderQueryCriteria criteria, String orderStatus);
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
@@ -265,7 +262,7 @@ public interface YxStoreOrderService extends BaseService<YxStoreOrder>{
|
||||
* @param pageable 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll(YxStoreOrderQueryCriteria criteria, Pageable pageable);
|
||||
AdminOrderDto queryAll(YxStoreOrderQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
@@ -293,7 +290,7 @@ public interface YxStoreOrderService extends BaseService<YxStoreOrder>{
|
||||
*/
|
||||
YxStoreOrderDto getOrderDetail(Long orderId);
|
||||
|
||||
Map<String,Object> queryAll(List<String> ids);
|
||||
AdminOrderDto queryAll(List<String> ids);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package co.yixiang.modules.order.service.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AdminOrderDto {
|
||||
|
||||
@ApiModelProperty("订单列表")
|
||||
private List<YxStoreOrderDto> content;
|
||||
|
||||
@ApiModelProperty("订单总数量")
|
||||
private Long totalElements;
|
||||
|
||||
@ApiModelProperty("商品总数量")
|
||||
private Integer productCount = 0;
|
||||
|
||||
@ApiModelProperty("订单金额")
|
||||
private BigDecimal orderAmount = BigDecimal.ZERO;
|
||||
|
||||
@ApiModelProperty("客户数量")
|
||||
private Long customerCount = 0L;
|
||||
}
|
||||
+53
-12
@@ -93,6 +93,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
@@ -109,6 +110,7 @@ import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@@ -2408,7 +2410,8 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryManyType(String[] typeList, Pageable pageable,YxStoreOrderQueryCriteria criteria,String orderStatus) {
|
||||
public AdminOrderDto queryManyType(String[] typeList, Pageable pageable,YxStoreOrderQueryCriteria criteria,String orderStatus) {
|
||||
|
||||
LambdaQueryWrapper<YxStoreOrder> queryWrapper =new LambdaQueryWrapper<>();
|
||||
if(StringUtils.isNotBlank(criteria.getOrderId())){
|
||||
queryWrapper.like(YxStoreOrder::getOrderId,criteria.getOrderId());
|
||||
@@ -2532,6 +2535,10 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
}
|
||||
});
|
||||
|
||||
// 分页前查询数据 这可能出问题
|
||||
List<YxStoreOrder> beforePageList = this.list(queryWrapper);
|
||||
|
||||
|
||||
getPage(pageable);
|
||||
PageInfo<YxStoreOrder> page = new PageInfo<>(storeOrderMapper.selectList(queryWrapper));
|
||||
// List<YxStoreOrderDto> storeOrderDTOS = new ArrayList<>();
|
||||
@@ -2541,9 +2548,25 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
List<YxStoreOrderDto> list=this.newAssemble(page.getList());
|
||||
Map<String, Object> map = new LinkedHashMap<>(2);
|
||||
// map.put("content", storeOrderDTOS);
|
||||
map.put("content", list);
|
||||
map.put("totalElements", page.getTotal());
|
||||
return map;
|
||||
AdminOrderDto dto = new AdminOrderDto();
|
||||
dto.setContent(list);
|
||||
dto.setTotalElements(page.getTotal());
|
||||
// 商品数量
|
||||
dto.setProductCount(beforePageList.stream().map(YxStoreOrder::getTotalNum).reduce(Integer::sum).orElse(0));
|
||||
//
|
||||
dto.setOrderAmount(beforePageList.stream().map(YxStoreOrder::getTotalPrice).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
|
||||
//
|
||||
List<Long> uidList = Lists.newArrayList();
|
||||
|
||||
long customerCount = beforePageList.stream().filter(yxStoreOrder -> {
|
||||
boolean flag = !uidList.contains(yxStoreOrder.getUid());
|
||||
uidList.add(yxStoreOrder.getUid());
|
||||
return flag;
|
||||
}).count();
|
||||
|
||||
dto.setCustomerCount(customerCount);
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
@@ -2684,7 +2707,9 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(YxStoreOrderQueryCriteria criteria, Pageable pageable) {
|
||||
public AdminOrderDto queryAll(YxStoreOrderQueryCriteria criteria, Pageable pageable) {
|
||||
List<YxStoreOrder> beforePageList = queryAll(criteria);
|
||||
|
||||
getPage(pageable);
|
||||
PageInfo<YxStoreOrder> page = new PageInfo<>(queryAll(criteria));
|
||||
// List<YxStoreOrderDto> storeOrderDTOS = new ArrayList<>();
|
||||
@@ -2695,9 +2720,25 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
List<YxStoreOrderDto> list=this.newAssemble(page.getList());
|
||||
Map<String, Object> map = new LinkedHashMap<>(2);
|
||||
// map.put("content", storeOrderDTOS);
|
||||
map.put("content",list);
|
||||
map.put("totalElements", page.getTotal());
|
||||
return map;
|
||||
AdminOrderDto dto = new AdminOrderDto();
|
||||
dto.setContent(list);
|
||||
dto.setTotalElements(page.getTotal());
|
||||
|
||||
// 商品数量
|
||||
dto.setProductCount(beforePageList.stream().map(YxStoreOrder::getTotalNum).reduce(Integer::sum).orElse(0));
|
||||
//
|
||||
dto.setOrderAmount(beforePageList.stream().map(YxStoreOrder::getTotalPrice).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
|
||||
//
|
||||
List<Long> uidList = Lists.newArrayList();
|
||||
|
||||
long customerCount = beforePageList.stream().filter(yxStoreOrder -> {
|
||||
boolean flag = !uidList.contains(yxStoreOrder.getUid());
|
||||
uidList.add(yxStoreOrder.getUid());
|
||||
return flag;
|
||||
}).count();
|
||||
|
||||
dto.setCustomerCount(customerCount);
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
@@ -2902,7 +2943,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(List<String> ids) {
|
||||
public AdminOrderDto queryAll(List<String> ids) {
|
||||
List<YxStoreOrder> yxStoreOrders = this.list(new LambdaQueryWrapper<YxStoreOrder>().in(YxStoreOrder::getOrderId, ids));
|
||||
List<YxStoreOrderDto> storeOrderDTOS = new ArrayList<>();
|
||||
for (YxStoreOrder yxStoreOrder : yxStoreOrders) {
|
||||
@@ -2910,9 +2951,9 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
}
|
||||
|
||||
Map<String, Object> map = new LinkedHashMap<>(2);
|
||||
map.put("content", storeOrderDTOS);
|
||||
|
||||
return map;
|
||||
AdminOrderDto dto = new AdminOrderDto();
|
||||
dto.setContent(storeOrderDTOS);
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user