From 5e69866c1e2bc9fce6877dc2b66fc611484ea761 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 8 Apr 2025 13:16:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B9=96=E5=88=86=E5=AE=9A=E6=97=B6=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E6=88=90=E7=A7=AF=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserContributionExchangeService.java | 7 +++ .../UserContributionExchangeServiceImpl.java | 13 ++++ .../job/task/UserContributionTask.java | 59 +++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 src/main/java/com/peanut/modules/common/service/UserContributionExchangeService.java create mode 100644 src/main/java/com/peanut/modules/common/service/impl/UserContributionExchangeServiceImpl.java create mode 100644 src/main/java/com/peanut/modules/job/task/UserContributionTask.java diff --git a/src/main/java/com/peanut/modules/common/service/UserContributionExchangeService.java b/src/main/java/com/peanut/modules/common/service/UserContributionExchangeService.java new file mode 100644 index 00000000..af7a371d --- /dev/null +++ b/src/main/java/com/peanut/modules/common/service/UserContributionExchangeService.java @@ -0,0 +1,7 @@ +package com.peanut.modules.common.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.UserContributionExchange; + +public interface UserContributionExchangeService extends IService { +} diff --git a/src/main/java/com/peanut/modules/common/service/impl/UserContributionExchangeServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/UserContributionExchangeServiceImpl.java new file mode 100644 index 00000000..d9302f90 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/service/impl/UserContributionExchangeServiceImpl.java @@ -0,0 +1,13 @@ +package com.peanut.modules.common.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.UserContributionExchangeDao; +import com.peanut.modules.common.entity.UserContributionExchange; +import com.peanut.modules.common.service.UserContributionExchangeService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("commonUserContributionExchangeService") +public class UserContributionExchangeServiceImpl extends ServiceImpl implements UserContributionExchangeService { +} diff --git a/src/main/java/com/peanut/modules/job/task/UserContributionTask.java b/src/main/java/com/peanut/modules/job/task/UserContributionTask.java new file mode 100644 index 00000000..775a8310 --- /dev/null +++ b/src/main/java/com/peanut/modules/job/task/UserContributionTask.java @@ -0,0 +1,59 @@ +package com.peanut.modules.job.task; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.peanut.modules.common.entity.MyUserEntity; +import com.peanut.modules.common.entity.UserContribution; +import com.peanut.modules.common.entity.UserContributionExchange; +import com.peanut.modules.common.service.MyUserService; +import com.peanut.modules.common.service.UserContributionExchangeService; +import com.peanut.modules.common.service.UserContributionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.List; + +@Component("userContributionTask") +public class UserContributionTask implements ITask{ + + @Autowired + private UserContributionService userContributionService; + @Autowired + private UserContributionExchangeService userContributionExchangeService; + @Autowired + private MyUserService userService; + + @Override + public void run(String params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.select(UserContribution::getUserId); + wrapper.select("SUM(score) as score "); + wrapper.eq(UserContribution::getConversionFlag,"0"); + wrapper.groupBy(UserContribution::getUserId); + List list = userContributionService.list(wrapper); + for (UserContribution userContribution:list){ + UserContributionExchange exchange = userContributionExchangeService.getOne( + new LambdaQueryWrapper() + .eq(UserContributionExchange::getUserId,userContribution.getUserId())); + if (exchange!=null) { + userContribution.setScore(userContribution.getScore().add(exchange.getSurplus())); + } + int zhengshu = userContribution.getScore().intValue(); + BigDecimal xiaoshu = userContribution.getScore().remainder(BigDecimal.ONE); + MyUserEntity user = userService.getById(userContribution.getUserId()); + if (user != null) { + user.setJf(user.getJf().add(new BigDecimal(100*zhengshu))); + userService.updateById(user); + } + exchange.setSurplus(xiaoshu); + userContributionExchangeService.updateById(exchange); + userContributionService.update(new LambdaUpdateWrapper() + .eq(UserContribution::getConversionFlag,0) + .set(UserContribution::getConversionFlag,1)); + } + } + +}