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 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 params){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); wrapper.eq(UserContribution::getUserId,ShiroUtils.getUId()); wrapper.eq(UserContribution::getType,params.get("type")); wrapper.orderByDesc(UserContribution::getCreateTime); Page contributions = contributionService.page(new Page<>( Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())),wrapper); return R.ok().put("list",contributions); } }