diff --git a/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java b/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java index 243c041..0e12a0a 100644 --- a/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java +++ b/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java @@ -61,7 +61,7 @@ public class OrderRankingSettlementTask { //3、根据订单信息,生成对应排名数据 updateClerkRanking(clerkUserInfo.getId(), startTime, endTime, rankingInfo, orderInfoEntities, newSerialNumber); } - //根据订单数量,更新排行名词 + //根据订单数量,更新排行名次 List list = clerkRankingInfoService.selectMaxSerialNumber(); // 使用匿名比较器排序 list.sort((p1, p2) -> p2.getOrderNumber() - p1.getOrderNumber()); diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java index 1ad8d56..2cc89d8 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java @@ -1,11 +1,14 @@ package com.starry.admin.modules.clerk.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.clerk.module.entity.IPlayClerkRankingInfoQueryVo; +import com.starry.admin.modules.clerk.module.entity.IPlayClerkRankingInfoReturnVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -26,8 +29,8 @@ public class PlayClerkRankingInfoController { * 查询店员排行列表 */ @GetMapping("/listByPage") - public R list(PlayClerkRankingInfoEntity playClerkRankingInfo) { - IPage list = playClerkRankingInfoService.selectPlayClerkRankingInfoByPage(playClerkRankingInfo); + public R list(@Validated @RequestBody IPlayClerkRankingInfoQueryVo vo) { + IPage list = playClerkRankingInfoService.selectByPage(vo); return R.ok(list); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/IPlayClerkRankingInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/IPlayClerkRankingInfoQueryVo.java new file mode 100644 index 0000000..15e87b2 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/IPlayClerkRankingInfoQueryVo.java @@ -0,0 +1,45 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +/** + * @author admin + * @since 2024/6/7 上午9:49 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class IPlayClerkRankingInfoQueryVo extends BasePageEntity { + + /** + * 日排名还是周排名(0:每日排名;1:每周排名) + */ + private String weeklyRanking; + + + /** + * 店员ID + */ + private String clerkId; + + + /** + * 店员性别 + */ + private String sex; + + + /** + * 统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate settlementDate; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/IPlayClerkRankingInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/IPlayClerkRankingInfoReturnVo.java new file mode 100644 index 0000000..deead45 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/IPlayClerkRankingInfoReturnVo.java @@ -0,0 +1,119 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.starry.common.domain.BasePageEntity; +import io.swagger.models.auth.In; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * @author admin + * @since 2024/6/7 上午9:49 + **/ +@Data +public class IPlayClerkRankingInfoReturnVo { + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员ID + */ + private String clerkId; + + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员分组名称 + */ + private String clerkGroupName; + + + /** + * 排序名次 + */ + private Integer rankingIndex; + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate endCountDate; + + /** + * 订单总数 + */ + private Integer orderNumber; + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 续单数 + */ + private Integer orderContinueNumber; + + /** + * 续单金额 + */ + private BigDecimal orderContinueMoney; + + /** + * 超时未接单数量 + */ + private Integer ordersExpiredNumber = 0; + + /** + * 续单比例 + */ + private BigDecimal orderContinueProportion = BigDecimal.ZERO; + + + /** + * 客户数 + */ + private Integer customNumber; + + + /** + * 评价单价 + */ + private BigDecimal averageUnitPrice = BigDecimal.ZERO; + /** + * 距离前一名相差金额 + */ + private BigDecimal previousMoney; + + /** + * 统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate settlementDate; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java index 22e51fb..5906fd5 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java @@ -1,9 +1,11 @@ package com.starry.admin.modules.clerk.module.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.starry.common.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDate; @@ -35,24 +37,39 @@ public class PlayClerkRankingInfoEntity extends BaseEntity { + + + /** + * 分页查询店员排行 + * @param vo 店员排行查询对象 + * @return 店员排查询对象 + */ + IPage selectByPage(IPlayClerkRankingInfoQueryVo vo); + /** * 查询店员排行 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkRankingInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkRankingInfoServiceImpl.java index 37a3dd2..bc9eb7e 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkRankingInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkRankingInfoServiceImpl.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.starry.admin.modules.clerk.mapper.PlayClerkRankingInfoMapper; -import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.module.entity.*; import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; import com.starry.admin.modules.weichat.entity.order.PlayOrderHistoryRankingReturnVo; import com.starry.admin.modules.weichat.entity.order.PlayOrderRankingListVo; @@ -33,6 +31,26 @@ public class PlayClerkRankingInfoServiceImpl extends ServiceImpl selectByPage(IPlayClerkRankingInfoQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectAll(PlayClerkRankingInfoEntity.class); + //拼接店员表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickName"); + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkRankingInfoEntity::getClerkId); + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, vo.getClerkId()); + } + if (StrUtil.isNotBlank(vo.getWeeklyRanking())) { + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getWeeklyRanking, vo.getWeeklyRanking()); + } + if (vo.getSettlementDate() != null) { + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSettlementDate, vo.getSettlementDate()); + } + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), IPlayClerkRankingInfoReturnVo.class, lambdaQueryWrapper); + } + /** * 查询店员排行 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java index 3bc1081..2317373 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java @@ -28,7 +28,7 @@ public class PlayOrderHistoryRankingReturnVo { private LocalDate endCountDate; /** - * 排序名词 + * 排序名次 */ private Long rankingIndex; diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java index ec209ae..bd9f6ce 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java @@ -43,7 +43,7 @@ public class PlayOrderRankingListVo { private String clerkSex; /** - * 排序名词 + * 排序名次 */ private Long rankingIndex;