统计查询

This commit is contained in:
wuchunlei
2025-04-23 10:54:06 +08:00
parent bf1dd7dbb9
commit 207d544f82
2 changed files with 43 additions and 0 deletions

View File

@@ -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<UserContribution> contributions;
@TableField(exist = false)
private int StatQueryFlag;
@TableField(exist = false)
private BigDecimal StatQueryScore;
}

View File

@@ -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<String, Object> params) {
MPJLambdaWrapper<UserContribution> 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<UserContribution> page = contributionService.page(new Page<>(
Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())), wrapper);
List<UserContribution> userContributions = page.getRecords();
for (UserContribution contribution : userContributions) {
List<UserContribution> cs = contributionService.list(new LambdaQueryWrapper<UserContribution>()
.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);