数据合并

湖分兑换剩余
This commit is contained in:
wuchunlei
2024-05-27 14:52:34 +08:00
parent 954513ab6d
commit 05c2ac661d
6 changed files with 286 additions and 48 deletions

View File

@@ -0,0 +1,9 @@
package com.peanut.modules.common.dao;
import com.github.yulichang.base.MPJBaseMapper;
import com.peanut.modules.common.entity.UserContributionExchange;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserContributionExchangeDao extends MPJBaseMapper<UserContributionExchange> {
}

View File

@@ -0,0 +1,30 @@
package com.peanut.modules.common.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName("user_contribution_exchange")
public class UserContributionExchange {
@TableId
private Integer id;
private Integer userId;
//剩余未换分数
private Double surplus;
private Date createTime;
@TableLogic
private Integer delFlag;
@TableField(exist = false)
private MyUserEntity user;
}

View File

@@ -0,0 +1,34 @@
package com.peanut.modules.master.controller;
import com.peanut.common.utils.R;
import com.peanut.modules.master.service.UserMergeService;
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.Map;
/**
* 合并用户
*/
@Slf4j
@RestController("masterUserMerge")
@RequestMapping("master/userMerge")
public class UserMergeController {
@Autowired
private UserMergeService mergeService;
@RequestMapping("/userMerge")
public R userMerge(@RequestBody Map<String, Object> params) {
mergeService.userMerge(params);
return null;
}
}

View File

@@ -0,0 +1,11 @@
package com.peanut.modules.master.service;
import com.peanut.common.utils.R;
import java.util.Map;
public interface UserMergeService {
R userMerge(Map<String, Object> params);
}

View File

@@ -0,0 +1,83 @@
package com.peanut.modules.master.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.common.utils.R;
import com.peanut.modules.common.dao.MyUserDao;
import com.peanut.modules.common.dao.UserContributionDao;
import com.peanut.modules.common.dao.UserContributionExchangeDao;
import com.peanut.modules.common.dao.UserCourseBuyDao;
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.entity.UserCourseBuyEntity;
import com.peanut.modules.master.service.UserMergeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Slf4j
@Service("masterUserMergeService")
public class UserMergeServiceImpl implements UserMergeService {
@Autowired
private MyUserDao userDao;
@Autowired
private UserContributionDao contributionDao;
@Autowired
private UserContributionExchangeDao exchangeDao;
@Autowired
private UserCourseBuyDao courseBuyDao;
@Override
public R userMerge(Map<String, Object> params) {
MyUserEntity mainUser = userDao.selectById(params.get("mainAccountId").toString());
MyUserEntity secondUser = userDao.selectById(params.get("secondAccountId").toString());
if (mainUser != null){
if (secondUser!=null){
//虚拟币、积分
mainUser.setPeanutCoin(mainUser.getPeanutCoin().add(secondUser.getPeanutCoin()));
mainUser.setJf(mainUser.getJf().add(secondUser.getJf()));
userDao.updateById(mainUser);
//湖分
LambdaQueryWrapper<UserContribution> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserContribution :: getUserId,secondUser.getId());
List<UserContribution> contributions = contributionDao.selectList(queryWrapper);
if (contributions != null&&contributions.size()>0) {
for (UserContribution c : contributions) {
c.setUserId(mainUser.getId());
contributionDao.updateById(c);
}
}
LambdaQueryWrapper<UserContributionExchange> exchangeWrapper = new LambdaQueryWrapper<>();
exchangeWrapper.eq(UserContributionExchange :: getUserId,secondUser.getId());
List<UserContributionExchange> exchanges = exchangeDao.selectList(exchangeWrapper);
if (exchanges != null&&exchanges.size()>0) {
for (UserContributionExchange c : exchanges) {
c.setUserId(mainUser.getId());
exchangeDao.updateById(c);
}
}
//课
LambdaQueryWrapper<UserCourseBuyEntity> courseWrapper = new LambdaQueryWrapper<>();
courseWrapper.eq(UserCourseBuyEntity :: getUserId,secondUser.getId());
List<UserCourseBuyEntity> courseBuys = courseBuyDao.selectList(courseWrapper);
if (courseBuys != null&&courseBuys.size()>0) {
for (UserCourseBuyEntity c : courseBuys) {
c.setUserId(mainUser.getId());
courseBuyDao.updateById(c);
}
}
//删除次用户
userDao.deleteById(secondUser.getId());
}else {
return R.error("次账号未找到");
}
}else {
return R.error("主账号未找到");
}
return null;
}
}