Files
nuttyreading-java/src/main/java/com/peanut/modules/common/controller/UserContributionController.java
2025-06-11 15:09:17 +08:00

67 lines
2.8 KiB
Java

package com.peanut.modules.common.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.master.service.UserContributionService;
import com.peanut.modules.sys.entity.SysDictDataEntity;
import lombok.extern.slf4j.Slf4j;
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.util.List;
import java.util.Map;
/**
* 湖分
*/
@Slf4j
@RestController("commonUserContribution")
@RequestMapping("common/userContribution")
public class UserContributionController {
@Autowired
private UserContributionService contributionService;
//获取我的湖分列表
@RequestMapping("/getUserContribution")
public R getUserContribution(){
Integer userId = ShiroUtils.getUId();
//各分类总分
MPJLambdaWrapper<UserContribution> wrapper = new MPJLambdaWrapper();
wrapper.leftJoin(SysDictDataEntity.class,
SysDictDataEntity::getDictType,UserContribution::getType);
wrapper.eq(SysDictDataEntity::getDictLabel,"userContributionLabel");
wrapper.eq("user_id",userId);
wrapper.select("type");
wrapper.select("sum(score) as score");
wrapper.select(SysDictDataEntity::getDictValue);
wrapper.groupBy("type");
List contributions = contributionService.listMaps(wrapper);
//统计总分
MPJLambdaWrapper totalWrapper = new MPJLambdaWrapper();
totalWrapper.eq("user_id",userId);
totalWrapper.select("sum(score) as score");
Map map = contributionService.getMap(totalWrapper);
return R.ok().put("list",contributions).put("total",map==null?0:map.get("score"));
}
//分类下湖分明细
@RequestMapping("/getUserContributionByType")
public R getUserContributionByType(@RequestBody Map<String,Object> params){
LambdaQueryWrapper<UserContribution> wrapper = new LambdaQueryWrapper();
wrapper.eq(UserContribution::getUserId,ShiroUtils.getUId());
wrapper.eq(UserContribution::getType,params.get("type"));
wrapper.orderByDesc(UserContribution::getCreateTime);
Page<UserContribution> contributions = contributionService.page(new Page<>(
Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())),wrapper);
return R.ok().put("list",contributions);
}
}