数据合并-湖分

管理端-湖分管理
通用模块-湖分
This commit is contained in:
wuchunlei
2024-05-17 17:59:38 +08:00
parent 403760f58d
commit d39965b032
9 changed files with 268 additions and 15 deletions

View File

@@ -15,11 +15,13 @@ public class DataMigrationUtil extends Thread {
Map map; Map map;
int i; int i;
Connection yljkconn;
Connection fzdsconn; Connection fzdsconn;
public DataMigrationUtil(Map map,int i,Connection fzdsconn){ public DataMigrationUtil(Map map,int i,Connection yljkconn,Connection fzdsconn){
this.map = map; this.map = map;
this.i = i; this.i = i;
this.yljkconn = yljkconn;
this.fzdsconn = fzdsconn; this.fzdsconn = fzdsconn;
} }
@@ -29,8 +31,8 @@ public class DataMigrationUtil extends Thread {
// courseCatalogue(); // courseCatalogue();
// courseCatalogueChapter(); // courseCatalogueChapter();
// courseCatalogueChapterVideo(); // courseCatalogueChapterVideo();
// user();//用的都是copy表里的数据 user();//用的都是copy表里的数据
//TRUNCATE // truncate();
} }
@@ -337,7 +339,27 @@ public class DataMigrationUtil extends Thread {
} }
} }
public static void truncate(){
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = fzdsconn.prepareStatement("TRUNCATE table user_copy1;");
statement.execute();
PreparedStatement statement2 = fzdsconn.prepareStatement("TRUNCATE table user_vip_copy1;");
statement2.execute();
PreparedStatement statement3 = fzdsconn.prepareStatement("TRUNCATE table transaction_details_copy1;");
statement3.execute();
PreparedStatement statement4 = fzdsconn.prepareStatement("TRUNCATE table user_contribution;");
statement4.execute();
System.out.println("清空完成");
}catch (SQLException e) {
System.out.println(e.getMessage());
}
}
public static void user(){ public static void user(){
truncate();
try { try {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
Connection yljkconn = DriverManager.getConnection( Connection yljkconn = DriverManager.getConnection(
@@ -362,15 +384,13 @@ public class DataMigrationUtil extends Thread {
list.add(map); list.add(map);
} }
resultSet.close(); resultSet.close();
statement.close();
yljkconn.close();
Connection fzdsconn = DriverManager.getConnection( Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true", "jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!"); "nuttyreading", "Wu751019!");
// 1、创建服务创建线程池 // 1、创建服务创建线程池
ExecutorService service = Executors.newFixedThreadPool(50); ExecutorService service = Executors.newFixedThreadPool(50);
for (int i=0;i<list.size(); i++){ for (int i=0;i<list.size(); i++){
DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i+1,fzdsconn); DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i+1,yljkconn,fzdsconn);
service.execute(d1); service.execute(d1);
} }
System.out.println("---开始"); System.out.println("---开始");
@@ -424,7 +444,7 @@ public class DataMigrationUtil extends Thread {
//没有关联,直接导入 //没有关联,直接导入
PreparedStatement telInsertStatement = fzdsconn.prepareStatement( PreparedStatement telInsertStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_copy1 (name,avatar,nickname,tel,vip,peanut_coin,jf,yljk_oid) " + "INSERT ignore INTO user_copy1 (name,avatar,nickname,tel,vip,peanut_coin,jf,yljk_oid) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); "VALUES (?, ?, ?, ?, ?, ?, ?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
telInsertStatement.setString(1,map.get("nameCN")==null?"":map.get("nameCN").toString()); telInsertStatement.setString(1,map.get("nameCN")==null?"":map.get("nameCN").toString());
telInsertStatement.setString(2,map.get("icons")==null?"":map.get("icons").toString()); telInsertStatement.setString(2,map.get("icons")==null?"":map.get("icons").toString());
telInsertStatement.setString(3,map.get("nickName")==null?"":map.get("nickName").toString()); telInsertStatement.setString(3,map.get("nickName")==null?"":map.get("nickName").toString());
@@ -488,19 +508,32 @@ public class DataMigrationUtil extends Thread {
jfTransactionDetailStatement.execute(); jfTransactionDetailStatement.execute();
jfTransactionDetailStatement.close(); jfTransactionDetailStatement.close();
} }
//湖分明细
PreparedStatement contributionStatements = yljkconn.prepareStatement("" +
"select * from t_customer_contribution where valid = 1 and customerOid = '"+map.get("oid")+"' ");
ResultSet contributionResultSet = contributionStatements.executeQuery();
if (contributionResultSet.next()){
//添加湖分记录
PreparedStatement contributionStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_contribution (user_id,score,detail,type,conversion_flag,create_time) " +
"VALUES (?, ?, ?, ?, ?, ?)");
contributionStatement.setString(1,userId);
contributionStatement.setDouble(2,contributionResultSet.getDouble("score"));
contributionStatement.setString(3,contributionResultSet.getString("detail"));
contributionStatement.setString(4,contributionResultSet.getString("type"));
contributionStatement.setInt(5,contributionResultSet.getInt("conversionFlg"));
contributionStatement.setTimestamp(6,contributionResultSet.getTimestamp("createDate"));
contributionStatement.execute();
contributionStatement.close();
}
}catch (Exception ee){ }catch (Exception ee){
System.out.println(map.get("nameCN")+"--"+ee.getMessage());
} }
} }
} }

View File

@@ -0,0 +1,58 @@
package com.peanut.modules.common.controller;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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.eq("user_id",userId);
wrapper.select("type");
wrapper.select("sum(score) as score");
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.get("score"));
}
//分类下湖分明细
@RequestMapping("/getUserContributionByType")
public R getUserContributionByType(String type){
Integer userId = 785;
MPJLambdaWrapper wrapper = new MPJLambdaWrapper();
wrapper.eq("user_id",userId);
wrapper.eq("type",type);
wrapper.orderByDesc("create_time");
List contributions = contributionService.listMaps(wrapper);
return R.ok().put("list",contributions);
}
}

View File

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

View File

@@ -0,0 +1,38 @@
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")
public class UserContribution {
@TableId
private Integer id;
private Integer userId;
//分数
private Double score;
//明细
private String detail;
//类型 在线教学 01 学术期刊 03 太湖讲堂 05 创作技术 07 注册邀请 11 课程邀请 13
private String type;
//兑换标志 未兑换0 兑换完毕1
private Integer conversionFlag;
private Date createTime;
@TableLogic
private Integer delFlag;
@TableField(exist = false)
private MyUserEntity user;
}

View File

@@ -0,0 +1,7 @@
package com.peanut.modules.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.UserContribution;
public interface UserContributionService extends IService<UserContribution> {
}

View File

@@ -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.UserContributionDao;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.common.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("commonUserContributionService")
public class UserContributionServiceImpl extends ServiceImpl<UserContributionDao, UserContribution> implements UserContributionService {
}

View File

@@ -0,0 +1,75 @@
package com.peanut.modules.master.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R;
import com.peanut.modules.common.entity.MyUserEntity;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.master.service.MyUserService;
import com.peanut.modules.master.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
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("masterUserContribution")
@RequestMapping("master/userContribution")
public class UserContributionController {
@Autowired
private UserContributionService contributionService;
@Autowired
private MyUserService userService;
@RequestMapping("/listByPage")
public R listByPage(@RequestBody Map<String, Object> params) {
MPJLambdaWrapper<UserContribution> wrapper = new MPJLambdaWrapper();
wrapper.selectAll(UserContribution.class);
wrapper.leftJoin(MyUserEntity.class, MyUserEntity::getId, UserContribution::getUserId);
if (params.containsKey("userName")&& StringUtils.isNotEmpty(params.get("userName").toString())) {
wrapper.like(MyUserEntity::getName,params.get("userName"));
wrapper.like(MyUserEntity::getNickname,params.get("userName"));
}
if (params.containsKey("tel")&& StringUtils.isNotEmpty(params.get("tel").toString())) {
wrapper.like(MyUserEntity::getTel,params.get("tel"));
}
if (params.containsKey("email")&& StringUtils.isNotEmpty(params.get("email").toString())) {
wrapper.like(MyUserEntity::getEmail,params.get("email"));
}
if (params.containsKey("type")&& StringUtils.isNotEmpty(params.get("type").toString())) {
wrapper.eq(UserContribution::getType,params.get("type"));
}
wrapper.orderByDesc(UserContribution::getCreateTime);
Page<UserContribution> page = contributionService.page(new Page<>(
Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())), wrapper);
List<UserContribution> userContributions = page.getRecords();
if (userContributions.size() > 0){
for (UserContribution contribution : userContributions) {
contribution.setUser(userService.getById(contribution.getUserId()));
}
}
return R.ok().put("result", page);
}
@RequestMapping("/saveUserContribution")
public R saveUserContribution(@RequestBody UserContribution contribution) {
contributionService.save(contribution);
return R.ok();
}
@RequestMapping("/delUserContribution")
public R delMessage(String id) {
contributionService.removeById(id);
return R.ok();
}
}

View File

@@ -0,0 +1,7 @@
package com.peanut.modules.master.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.UserContribution;
public interface UserContributionService extends IService<UserContribution> {
}

View File

@@ -0,0 +1,13 @@
package com.peanut.modules.master.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.common.dao.UserContributionDao;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.master.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("masterUserContributionService")
public class UserContributionServiceImpl extends ServiceImpl<UserContributionDao, UserContribution> implements UserContributionService {
}