This commit is contained in:
huchuansai
2025-09-28 09:59:47 +08:00
parent 190f77529a
commit e6b71cd897
4 changed files with 18 additions and 32 deletions

View File

@@ -72,12 +72,9 @@ public class OrderRankingSettlementTask {
/** /**
* 生产排行信息 1、查询所有的租户信息 2、查询每个租户的用户以及他们在对应时间段的订单 3、根据订单生产排行信息 * 生产排行信息 1、查询所有的租户信息 2、查询每个租户的用户以及他们在对应时间段的订单 3、根据订单生产排行信息
* *
* @param startTime * @param startTime 接单开始时间
* 接单开始时间 * @param endTime 接单截至时间
* @param endTime * @param weeklyRanking weeklyRanking 日排名还是周排名0:每日排名;1:每周排名)
* 接单截至时间
* @param weeklyRanking
* weeklyRanking 日排名还是周排名0:每日排名;1:每周排名)
* @author admin * @author admin
* @since 2024/6/12 15:21 * @since 2024/6/12 15:21
**/ **/
@@ -95,8 +92,9 @@ public class OrderRankingSettlementTask {
// 生成每个人的订单排行信息 // 生成每个人的订单排行信息
for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) { for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) {
// 生成订单排行数据 // 生成订单排行数据
clerkRankingInfoEntities.add( PlayClerkRankingInfoEntity clerkRanking = getClerkRanking(clerkUserInfo.getId(), startTime, endTime, weeklyRanking, newSerialNumber);
getClerkRanking(clerkUserInfo.getId(), startTime, endTime, weeklyRanking, newSerialNumber)); clerkRanking.setTenantId(tenantEntity.getTenantId());
clerkRankingInfoEntities.add(clerkRanking);
} }
// 更新排行名次 // 更新排行名次
clerkRankingInfoEntities.sort((p1, p2) -> p2.getOrderNumber() - p1.getOrderNumber()); clerkRankingInfoEntities.sort((p1, p2) -> p2.getOrderNumber() - p1.getOrderNumber());
@@ -104,8 +102,7 @@ public class OrderRankingSettlementTask {
PlayClerkRankingInfoEntity item = clerkRankingInfoEntities.get(i); PlayClerkRankingInfoEntity item = clerkRankingInfoEntities.get(i);
item.setRankingIndex(i + 1); item.setRankingIndex(i + 1);
if (i > 0) { if (i > 0) {
item.setPreviousMoney( item.setPreviousMoney(clerkRankingInfoEntities.get(i - 1).getOrderMoney().subtract(item.getOrderMoney()));
clerkRankingInfoEntities.get(i - 1).getOrderMoney().subtract(item.getOrderMoney()));
} }
} }
// 排名数据生成后,将以往排名状态标记为历史排名 // 排名数据生成后,将以往排名状态标记为历史排名
@@ -118,21 +115,15 @@ public class OrderRankingSettlementTask {
/** /**
* 生产当前排行信息 * 生产当前排行信息
* *
* @param clerkId * @param clerkId 店员ID
* 店员ID * @param startTime 排行开始统计日期 yyyy-mm-dd 00:00:00
* @param startTime * @param endTime 排行结束统计日期 yyyy-mm-dd 23:59:59
* 排行开始统计日期 yyyy-mm-dd 00:00:00 * @param weeklyRanking 日排名还是周排名0:每日排名;1:每周排名)
* @param endTime * @param serialNumber 查询当前租户、当前排行、的最后一次统计编号
* 排行结束统计日期 yyyy-mm-dd 23:59:59
* @param weeklyRanking
* 日排名还是周排名0:每日排名;1:每周排名)
* @param serialNumber
* 查询当前租户、当前排行、的最后一次统计编号
* @author admin * @author admin
* @since 2024/6/7 11:43 * @since 2024/6/7 11:43
**/ **/
public PlayClerkRankingInfoEntity getClerkRanking(String clerkId, String startTime, String endTime, public PlayClerkRankingInfoEntity getClerkRanking(String clerkId, String startTime, String endTime, String weeklyRanking, Integer serialNumber) {
String weeklyRanking, Integer serialNumber) {
List<PlayOrderInfoEntity> orderInfoEntities = orderInfoService.listByTime(clerkId, startTime, endTime, null); List<PlayOrderInfoEntity> orderInfoEntities = orderInfoService.listByTime(clerkId, startTime, endTime, null);
int orderNumber = orderInfoEntities.size(); int orderNumber = orderInfoEntities.size();
BigDecimal orderMoney = BigDecimal.ZERO; BigDecimal orderMoney = BigDecimal.ZERO;
@@ -151,13 +142,8 @@ public class OrderRankingSettlementTask {
ordersExpiredNumber++; ordersExpiredNumber++;
} }
} }
BigDecimal orderContinueProportion = orderNumber == 0 BigDecimal orderContinueProportion = orderNumber == 0 ? BigDecimal.ZERO : new BigDecimal(ordersExpiredNumber).divide(new BigDecimal(orderNumber), 4, RoundingMode.HALF_UP).add(new BigDecimal(100));
? BigDecimal.ZERO BigDecimal averageUnitPrice = customIds.isEmpty() ? BigDecimal.ZERO : orderMoney.divide(new BigDecimal(customIds.size()), 4, RoundingMode.HALF_UP);
: new BigDecimal(ordersExpiredNumber).divide(new BigDecimal(orderNumber), 4, RoundingMode.HALF_UP)
.add(new BigDecimal(100));
BigDecimal averageUnitPrice = customIds.isEmpty()
? BigDecimal.ZERO
: orderMoney.divide(new BigDecimal(customIds.size()), 4, RoundingMode.HALF_UP);
PlayClerkRankingInfoEntity rankingInfo = new PlayClerkRankingInfoEntity(); PlayClerkRankingInfoEntity rankingInfo = new PlayClerkRankingInfoEntity();
rankingInfo.setId(IdUtils.getUuid()); rankingInfo.setId(IdUtils.getUuid());
rankingInfo.setClerkId(clerkId); rankingInfo.setClerkId(clerkId);

View File

@@ -76,7 +76,7 @@ public class PlayOrderInfoController {
@PostMapping("/sendNotice") @PostMapping("/sendNotice")
public R sendNotice(String orderId) { public R sendNotice(String orderId) {
PlayOrderInfoEntity orderInfo = orderInfoService.selectOrderInfoById(orderId); PlayOrderInfoEntity orderInfo = orderInfoService.selectOrderInfoById(orderId);
List<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getLevelId, orderInfo.getLevelId()).eq(PlayClerkUserInfoEntity::getClerkState, "1").eq(PlayClerkUserInfoEntity::getSex, orderInfo.getSex())); List<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getClerkState, "1").eq(PlayClerkUserInfoEntity::getSex, orderInfo.getSex()));
wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderId); wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderId);
return R.ok(); return R.ok();
} }

View File

@@ -93,7 +93,7 @@ public class OrderJob {
return; return;
} }
redisTemplate.opsForValue().set("order_notice_" + orderInfo.getId(), "1", 30, java.util.concurrent.TimeUnit.MINUTES); redisTemplate.opsForValue().set("order_notice_" + orderInfo.getId(), "1", 30, java.util.concurrent.TimeUnit.MINUTES);
List<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getLevelId, orderInfo.getLevelId()).eq(PlayClerkUserInfoEntity::getClerkState, "1") List<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getClerkState, "1")
.eq(PlayClerkUserInfoEntity::getSex, orderInfo.getSex()).eq(PlayClerkUserInfoEntity::getTenantId, orderInfo.getTenantId())); .eq(PlayClerkUserInfoEntity::getSex, orderInfo.getSex()).eq(PlayClerkUserInfoEntity::getTenantId, orderInfo.getTenantId()));
wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderInfo.getId()); wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderInfo.getOrderNo(), orderInfo.getOrderMoney().toString(), orderInfo.getCommodityName(), orderInfo.getId());

View File

@@ -479,7 +479,7 @@ public class WxCustomController {
// 顾客减少余额 // 顾客减少余额
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-随机单", money, BigDecimal.ZERO, orderId); customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-随机单", money, BigDecimal.ZERO, orderId);
// 给全部店员发送通知 // 给全部店员发送通知
List<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getLevelId, vo.getLevelId()).eq(PlayClerkUserInfoEntity::getClerkState, "1").eq(PlayClerkUserInfoEntity::getSex, vo.getSex())); List<PlayClerkUserInfoEntity> clerkList = clerkUserInfoService.list(Wrappers.lambdaQuery(PlayClerkUserInfoEntity.class).isNotNull(PlayClerkUserInfoEntity::getOpenid).eq(PlayClerkUserInfoEntity::getClerkState, "1").eq(PlayClerkUserInfoEntity::getSex, vo.getSex()));
wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderNo, money.toString(), commodityInfo.getCommodityName(),orderId); wxCustomMpService.sendCreateOrderMessageBatch(clerkList, orderNo, money.toString(), commodityInfo.getCommodityName(),orderId);
// 记录订单,指定指定未接单后,进行退款处理 // 记录订单,指定指定未接单后,进行退款处理
overdueOrderHandlerTask.enqueue(orderId + "_" + SecurityUtils.getTenantId()); overdueOrderHandlerTask.enqueue(orderId + "_" + SecurityUtils.getTenantId());