diff --git a/src/main/java/com/peanut/modules/common/entity/UserContribution.java b/src/main/java/com/peanut/modules/common/entity/UserContribution.java index b346c1b6..0ac03b77 100644 --- a/src/main/java/com/peanut/modules/common/entity/UserContribution.java +++ b/src/main/java/com/peanut/modules/common/entity/UserContribution.java @@ -8,6 +8,7 @@ import lombok.Data; import java.math.BigDecimal; import java.util.Date; +import java.util.List; @Data @TableName("user_contribution") @@ -37,4 +38,10 @@ public class UserContribution { @TableField(exist = false) private MyUserEntity user; + @TableField(exist = false) + private List contributions; + @TableField(exist = false) + private int StatQueryFlag; + @TableField(exist = false) + private BigDecimal StatQueryScore; } diff --git a/src/main/java/com/peanut/modules/master/controller/UserContributionController.java b/src/main/java/com/peanut/modules/master/controller/UserContributionController.java index e203ec9c..45f1a442 100644 --- a/src/main/java/com/peanut/modules/master/controller/UserContributionController.java +++ b/src/main/java/com/peanut/modules/master/controller/UserContributionController.java @@ -1,5 +1,6 @@ package com.peanut.modules.master.controller; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -12,11 +13,13 @@ import com.peanut.modules.master.service.UserContributionService; import com.peanut.modules.sys.service.SysDictDataService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -113,6 +116,39 @@ public class UserContributionController { return R.ok().put("result", page); } + //统计查询 + @RequestMapping("/contributionStatQuery") + public R contributionStatQuery(@RequestBody Map params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.select(UserContribution::getUserId); + wrapper.selectSum(UserContribution::getScore); + wrapper.leftJoin(MyUserEntity.class, MyUserEntity::getId, UserContribution::getUserId); + if (params.containsKey("tel")&&StringUtils.isNotEmpty(params.get("tel").toString())) { + wrapper.like(MyUserEntity::getTel,params.get("tel")); + } + wrapper.groupBy(UserContribution::getUserId); + Page page = contributionService.page(new Page<>( + Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())), wrapper); + List userContributions = page.getRecords(); + for (UserContribution contribution : userContributions) { + List cs = contributionService.list(new LambdaQueryWrapper() + .eq(UserContribution::getUserId,contribution.getUserId())); + if(params.containsKey("startTime")&&StringUtils.isNotEmpty(params.get("startTime").toString())){ + BigDecimal statQueryScore = BigDecimal.ZERO; + for (UserContribution c:cs) { + if (c.getCreateTime().getTime()>=DateUtil.parse(params.get("startTime").toString(),"yyyy-MM-dd").getTime()){ + c.setStatQueryFlag(1); + statQueryScore.add(c.getScore()); + } + } + contribution.setStatQueryScore(statQueryScore); + } + contribution.setContributions(cs); + contribution.setUser(userService.getById(contribution.getUserId())); + } + return R.ok().put("result", page); + } + @RequestMapping("/saveUserContribution") public R saveUserContribution(@RequestBody UserContribution contribution) { contributionService.save(contribution);