fix
This commit is contained in:
@@ -280,9 +280,9 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl<PlayClerkUserInfoM
|
|||||||
if (StrUtil.isNotBlank(vo.getClerkId())) {
|
if (StrUtil.isNotBlank(vo.getClerkId())) {
|
||||||
lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getId, vo.getClerkId());
|
lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getId, vo.getClerkId());
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(vo.getGroupId())) {
|
// if (StrUtil.isNotBlank(vo.getGroupId())) {
|
||||||
lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getGroupId, vo.getGroupId());
|
// lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getGroupId, vo.getGroupId());
|
||||||
}
|
// }
|
||||||
if (StrUtil.isNotBlank(vo.getSex())) {
|
if (StrUtil.isNotBlank(vo.getSex())) {
|
||||||
lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getSex, vo.getSex());
|
lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getSex, vo.getSex());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,7 @@ import com.starry.admin.modules.order.module.vo.*;
|
|||||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||||
import com.starry.admin.modules.order.service.IPlayOrderRandomInfoService;
|
import com.starry.admin.modules.order.service.IPlayOrderRandomInfoService;
|
||||||
import com.starry.admin.modules.personnel.service.IPlayPersonnelGroupInfoService;
|
import com.starry.admin.modules.personnel.service.IPlayPersonnelGroupInfoService;
|
||||||
import com.starry.admin.modules.system.entity.SysRoleEntity;
|
|
||||||
import com.starry.admin.modules.system.service.SysRoleService;
|
import com.starry.admin.modules.system.service.SysRoleService;
|
||||||
import com.starry.admin.utils.SecurityUtils;
|
|
||||||
import com.starry.common.annotation.Log;
|
import com.starry.common.annotation.Log;
|
||||||
import com.starry.common.context.CustomSecurityContextHolder;
|
import com.starry.common.context.CustomSecurityContextHolder;
|
||||||
import com.starry.common.enums.BusinessType;
|
import com.starry.common.enums.BusinessType;
|
||||||
@@ -19,10 +17,6 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,18 +49,6 @@ public class PlayOrderInfoController {
|
|||||||
return R.ok(orderInfoService.selectOrderInfoPage(vo));
|
return R.ok(orderInfoService.selectOrderInfoPage(vo));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询7天内, 已完成 和 进行中的订单
|
|
||||||
* 然后进行统计
|
|
||||||
*/
|
|
||||||
@PostMapping("/listByTime")
|
|
||||||
public R listByTime(@Validated @RequestBody PlayOrderComplaintQueryVo vo) {
|
|
||||||
String startTime = "2024-06-24 00:00:00";
|
|
||||||
String nedTime = "2024-06-24 00:00:00";
|
|
||||||
List<PlayOrderInfoEntity> list = orderInfoService.listByTime("", startTime, nedTime, Stream.of("2","3").collect(Collectors.toList()));
|
|
||||||
return R.ok(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单退款
|
* 订单退款
|
||||||
|
|||||||
@@ -39,7 +39,10 @@ import java.math.BigDecimal;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.starry.admin.modules.order.module.constant.OrderConstant.ORDER_STATUS_2;
|
import static com.starry.admin.modules.order.module.constant.OrderConstant.ORDER_STATUS_2;
|
||||||
@@ -275,10 +278,9 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId);
|
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId);
|
||||||
}
|
}
|
||||||
if (orderStatus != null) {
|
if (orderStatus != null) {
|
||||||
lambdaQueryWrapper.in(PlayOrderInfoEntity::getOrderStatus, new ArrayList<>());
|
lambdaQueryWrapper.in(PlayOrderInfoEntity::getOrderStatus, orderStatus);
|
||||||
}
|
}
|
||||||
lambdaQueryWrapper.between(PlayOrderInfoEntity::getAcceptTime, startTime, endTime);
|
lambdaQueryWrapper.between(PlayOrderInfoEntity::getPurchaserTime, startTime, endTime);
|
||||||
|
|
||||||
return this.baseMapper.selectList(lambdaQueryWrapper);
|
return this.baseMapper.selectList(lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 店员业绩查询对
|
* 店员业绩查询对
|
||||||
@@ -61,4 +66,112 @@ public class PlayClerkPerformanceController {
|
|||||||
});
|
});
|
||||||
return R.ok(voPage);
|
return R.ok(voPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/listByTime")
|
||||||
|
public R listByTime(@Validated @RequestBody PlayClerkPerformanceInfoQueryVo vo) {
|
||||||
|
vo.getEndOrderTime().get(1);
|
||||||
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
//时间范围
|
||||||
|
List<String> dates = getDateRange(vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1));
|
||||||
|
//指定时间内所有订单
|
||||||
|
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByTime("", vo.getEndOrderTime().get(0), vo.getEndOrderTime().get(1), Stream.of("2", "3").collect(Collectors.toList()));
|
||||||
|
List<PlayClerkPerformanceInfoReturnVo> orders = new ArrayList<>(dates.size());
|
||||||
|
for (String date : dates) {
|
||||||
|
orders.add(getPerformanceInfo(date, orderInfoEntities));
|
||||||
|
}
|
||||||
|
Map<String, Object> resultMap = new HashMap<>(orders.size());
|
||||||
|
resultMap.put("dates", dates);
|
||||||
|
resultMap.put("list", orders);
|
||||||
|
return R.ok(resultMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据订单开始时间和结束时间,组装订单统计信息的查询时间范围
|
||||||
|
*
|
||||||
|
* @param startTime 开始时间
|
||||||
|
* @param endTime 结束时间
|
||||||
|
* @return 时间范围
|
||||||
|
*/
|
||||||
|
public List<String> getDateRange(String startTime, String endTime) {
|
||||||
|
List<String> dates = new ArrayList<>();
|
||||||
|
LocalDateTime date1 = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
LocalDateTime date2 = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
while (!date1.isAfter(date2)) {
|
||||||
|
dates.add(date1.toLocalDate().toString());
|
||||||
|
date1 = date1.plusDays(1);
|
||||||
|
|
||||||
|
}
|
||||||
|
return dates;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组装统计数据
|
||||||
|
*
|
||||||
|
* @param performanceDate 统计时间
|
||||||
|
* @param orderInfoEntities 订单列表
|
||||||
|
* @return 统计数据
|
||||||
|
*/
|
||||||
|
|
||||||
|
public PlayClerkPerformanceInfoReturnVo getPerformanceInfo(String performanceDate, List<PlayOrderInfoEntity> orderInfoEntities) {
|
||||||
|
PlayClerkPerformanceInfoReturnVo vo = new PlayClerkPerformanceInfoReturnVo();
|
||||||
|
vo.setPerformanceDate(performanceDate);
|
||||||
|
|
||||||
|
|
||||||
|
List<PlayOrderInfoEntity> itemOrderInfo = new ArrayList<>();
|
||||||
|
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
||||||
|
//接单时间,在指定日期的 00:00:00点到23:59:59之间
|
||||||
|
if (orderInfoEntity.getPurchaserTime().isAfter(LocalDateTime.parse(performanceDate + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) && orderInfoEntity.getPurchaserTime().isBefore(LocalDateTime.parse(performanceDate + " 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) {
|
||||||
|
itemOrderInfo.add(orderInfoEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Set<String> customIds = new HashSet<>();
|
||||||
|
int orderContinueNumber = 0;
|
||||||
|
int orderRefundNumber = 0;
|
||||||
|
int ordersExpiredNumber = 0;
|
||||||
|
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderTotalAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderRewardAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
||||||
|
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||||
|
for (PlayOrderInfoEntity orderInfoEntity : itemOrderInfo) {
|
||||||
|
customIds.add(orderInfoEntity.getPurchaserBy());
|
||||||
|
finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
if ("1".equals(orderInfoEntity.getFirstOrder())) {
|
||||||
|
orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
} else {
|
||||||
|
orderContinueNumber++;
|
||||||
|
orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
}
|
||||||
|
if ("2".equals(orderInfoEntity.getPlaceType())) {
|
||||||
|
orderRewardAmount = orderRewardAmount.add(orderInfoEntity.getFinalAmount());
|
||||||
|
}
|
||||||
|
if ("1".equals(orderInfoEntity.getRefundType())) {
|
||||||
|
orderRefundNumber++;
|
||||||
|
orderRefundAmount = orderRefundAmount.add(orderInfoEntity.getRefundAmount());
|
||||||
|
}
|
||||||
|
if ("1".equals(orderInfoEntity.getOrdersExpiredState())) {
|
||||||
|
ordersExpiredNumber++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PlayClerkPerformanceInfoReturnVo returnVo = new PlayClerkPerformanceInfoReturnVo();
|
||||||
|
|
||||||
|
returnVo.setOrderNumber(orderInfoEntities.size());
|
||||||
|
returnVo.setOrderContinueNumber(orderContinueNumber);
|
||||||
|
returnVo.setOrderRefundNumber(orderRefundNumber);
|
||||||
|
returnVo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||||
|
returnVo.setFinalAmount(finalAmount);
|
||||||
|
returnVo.setOrderFirstAmount(orderFirstAmount);
|
||||||
|
returnVo.setOrderTotalAmount(orderTotalAmount);
|
||||||
|
returnVo.setOrderRewardAmount(orderRewardAmount);
|
||||||
|
returnVo.setOrderRefundAmount(orderRefundAmount);
|
||||||
|
returnVo.setCustomNumber(customIds.size());
|
||||||
|
returnVo.setEstimatedRevenue(estimatedRevenue);
|
||||||
|
return returnVo;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,10 @@ public class PlayClerkPerformanceInfoQueryVo extends BasePageEntity {
|
|||||||
*/
|
*/
|
||||||
private String listingState;
|
private String listingState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单状态ID
|
||||||
|
*/
|
||||||
|
private List<String> orderStatus;
|
||||||
/**
|
/**
|
||||||
* 完成订单时间
|
* 完成订单时间
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -113,5 +113,10 @@ public class PlayClerkPerformanceInfoReturnVo {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
private BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计时间
|
||||||
|
*/
|
||||||
|
private String performanceDate;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user