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)); + } + } + +}