Merge remote-tracking branch 'origin/zcc'

This commit is contained in:
wangjinlei
2024-05-13 13:27:22 +08:00
6 changed files with 150 additions and 45 deletions

View File

@@ -14,19 +14,21 @@ public class DataMigrationUtil extends Thread {
Map map;
int i;
Connection fzdsconn;
public DataMigrationUtil(Map map,int i){
public DataMigrationUtil(Map map,int i,Connection fzdsconn){
this.map = map;
this.i = i;
this.fzdsconn = fzdsconn;
}
public static void main(String[] args){
catalogue();
// catalogue();
// courseCatalogue();
// courseCatalogueChapter();
// courseCatalogueChapterVideo();
// user();//用的都是copy表里的数据
user();//用的都是copy表里的数据
}
@@ -36,7 +38,7 @@ public class DataMigrationUtil extends Thread {
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
PreparedStatement statement = yljkconn.prepareStatement("select * from t_curriculum_catalogue where valid = 1 and poid in (select oid from t_curriculum_catalogue where valid = 1 and poid is null) and courseFee like '%,%' ");
PreparedStatement statement = yljkconn.prepareStatement("select * from t_curriculum_catalogue where valid = 1 and poid in (select oid from t_curriculum_catalogue where valid = 1 and poid is null) and (courseFee like '%,%' or courseFee = '0' or poid = '00000000000000000000000000000070' )");
ResultSet resultSet = statement.executeQuery();
List<Map> list = new ArrayList();
while(resultSet.next()){
@@ -117,33 +119,43 @@ public class DataMigrationUtil extends Thread {
System.out.println("===== 开始插入数据 =====");
int res = 0;
PreparedStatement preparedStatement = connection.prepareStatement(
"INSERT ignore INTO course_catalogue (course_id,title,half_fee,fee,create_time) VALUES (?,?,?,?,?)");
"INSERT ignore INTO course_catalogue (type,course_id,title,half_fee,fee,create_time) VALUES (?,?,?,?,?,?)");
for (int q=1;q<=fzdslist.size(); q++){
String selectSql = "select * from t_curriculum_catalogue where valid = 1 and poid = '"+fzdslist.get(q-1).get("uid")+"'";
String selectSql = "select ccp.poid ppoid,cc.* from t_curriculum_catalogue cc left join t_curriculum_catalogue ccp on cc.poid = ccp.oid where ccp.valid = 1 and cc.valid = 1 and cc.poid = '"+fzdslist.get(q-1).get("uid")+"'";
PreparedStatement statement = yljkconn.prepareStatement(selectSql);
ResultSet resultSet = statement.executeQuery();
Map map = new HashMap();
while(resultSet.next()){
map.put("title",resultSet.getString("title"));
map.put("halfFee",resultSet.getString("courseFee").split(",")[0]);
map.put("fee",resultSet.getString("courseFee").split(",")[1]);
map.put("createDate",resultSet.getString("createDate"));
if (map.size() > 0){
preparedStatement.setString(1,fzdslist.get(q-1).get("id").toString());
preparedStatement.setString(2,map.get("title").toString());
preparedStatement.setString(3,map.get("halfFee").toString());
preparedStatement.setString(4,map.get("fee").toString());
preparedStatement.setString(5,map.get("createDate").toString());
// 添加到批处理中
preparedStatement.addBatch();
res++;
if (res % 5000 == 0) {
long startTime1 = System.currentTimeMillis();
preparedStatement.executeBatch();
connection.commit();
long spendTime1 = System.currentTimeMillis()-startTime1;
System.out.println("成功插入第"+ res +" 条数据,耗时:"+spendTime1+"毫秒");
}
String halfFee = "";
String fee = "";
if (resultSet.getString("courseFee")!=null&&resultSet.getString("courseFee").contains(",")){
halfFee = resultSet.getString("courseFee").split(",")[0];
fee = resultSet.getString("courseFee").split(",")[1];
}else if (resultSet.getString("courseFee")!=null&&"0".equals(resultSet.getString("courseFee"))){
halfFee = "0";
fee = "0";
}
if ("0".equals(resultSet.getString("courseFee"))){
preparedStatement.setInt(1,0);
}else if ("00000000000000000000000000000070".equals(resultSet.getString("ppoid"))){
preparedStatement.setInt(1,2);
}else {
preparedStatement.setInt(1,1);
}
preparedStatement.setString(2,fzdslist.get(q-1).get("id").toString());
preparedStatement.setString(3,resultSet.getString("title"));
preparedStatement.setString(4,halfFee);
preparedStatement.setString(5,fee);
preparedStatement.setString(6,resultSet.getString("createDate"));
// 添加到批处理中
preparedStatement.addBatch();
res++;
if (res % 5000 == 0) {
long startTime1 = System.currentTimeMillis();
preparedStatement.executeBatch();
connection.commit();
long spendTime1 = System.currentTimeMillis()-startTime1;
System.out.println("成功插入第"+ res +" 条数据,耗时:"+spendTime1+"毫秒");
}
}
resultSet.close();
@@ -315,6 +327,7 @@ public class DataMigrationUtil extends Thread {
public static void user(){
try {
long startTime = System.currentTimeMillis();
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
@@ -339,12 +352,16 @@ public class DataMigrationUtil extends Thread {
resultSet.close();
statement.close();
yljkconn.close();
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
// 1、创建服务创建线程池
ExecutorService service = Executors.newFixedThreadPool(50);
for (int i=1;i<=list.size(); i++){
DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i);
for (int i=0;i<list.size(); i++){
DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i+1,fzdsconn);
service.execute(d1);
}
System.out.println("---开始");
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
@@ -354,15 +371,15 @@ public class DataMigrationUtil extends Thread {
public void run(){
try {
if (i % 1000 == 0) {
System.out.println("---已插入数据"+i);
System.out.println("---已插入数据"+i+"--"+ DateUtil.format(new Date(),"YYYY-MM-dd HH:mm:ss"));
}
String userId = "";
BigDecimal userBalance = new BigDecimal(0);
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
BigDecimal userBalanceCoin = new BigDecimal(0);
BigDecimal userBalanceJf = new BigDecimal(0);
PreparedStatement oidStatements = fzdsconn.prepareStatement("select * from user_copy1 where del_flag = 0 and yljk_oid = '"+map.get("oid")+"' ");
ResultSet oidResultSet = oidStatements.executeQuery();
userBalanceCoin = oidResultSet.getBigDecimal("peanut_coin").add(new BigDecimal(map.get("point").toString()));
userBalanceJf = oidResultSet.getBigDecimal("jf").add(new BigDecimal(map.get("pointByJF").toString()));
//已绑定过id
if (oidResultSet.next()){
String sql = "update user_copy1 set " +
@@ -371,7 +388,6 @@ public class DataMigrationUtil extends Thread {
"vip= "+map.get("payStatus")+" ,peanut_coin = peanut_coin + "+map.get("point")+" , jf = jf + "+map.get("pointByJF")+" where id = "+oidResultSet.getString("id")+"";
PreparedStatement oidUpdateStatement = fzdsconn.prepareStatement(sql);
userId = oidResultSet.getString("id");
userBalance = oidResultSet.getBigDecimal("peanut_coin").add(new BigDecimal(map.get("point").toString()));
oidUpdateStatement.execute();
oidUpdateStatement.close();
}else {
@@ -387,7 +403,6 @@ public class DataMigrationUtil extends Thread {
"vip= "+map.get("payStatus")+" ,peanut_coin = peanut_coin + "+map.get("point")+" , jf = jf + "+map.get("pointByJF")+" where tel = '"+map.get("cellPhone")+"'";
PreparedStatement telUpdateStatement = fzdsconn.prepareStatement(sql);
userId = telResultSet.getString("id");
userBalance = oidResultSet.getBigDecimal("peanut_coin").add(new BigDecimal(map.get("point").toString()));
telUpdateStatement.execute();
telUpdateStatement.close();
}
@@ -411,13 +426,14 @@ public class DataMigrationUtil extends Thread {
userId = id.toString();
}
telInsertStatement.close();
userBalance = new BigDecimal(map.get("point").toString());
userBalanceCoin = new BigDecimal(map.get("point").toString());
userBalanceJf = new BigDecimal(map.get("pointByJF").toString());
}
}
//添加超v
PreparedStatement userVipStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip_copy1 (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
if (map.get("paydate")!=null&&map.get("payValidDate")!=null){
PreparedStatement userVipStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip_copy1 (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
userVipStatement.setString(1,userId);
userVipStatement.setString(2,map.get("payStatus").toString());
userVipStatement.setString(3,map.get("paydate").toString());
@@ -430,22 +446,34 @@ public class DataMigrationUtil extends Thread {
userVipStatement.execute();
userVipStatement.close();
}
//添加灵兰币记录
PreparedStatement transactionDetailStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO transaction_details_copy1 (user_id,order_type,change_amount,remark,user_balance," +
"user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?)");
if (map.get("point")!=null&&!"0".equals(map.get("point").toString())){
//添加虚拟币记录
PreparedStatement transactionDetailStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO transaction_details_copy1 (user_id,order_type,change_amount,remark,user_balance," +
"user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?)");
transactionDetailStatement.setString(1,userId);
transactionDetailStatement.setString(2,"系统合并结算");
transactionDetailStatement.setString(3,map.get("point").toString());
transactionDetailStatement.setString(4,"合并");
transactionDetailStatement.setBigDecimal(5,userBalance);
transactionDetailStatement.setBigDecimal(5,userBalanceCoin);
transactionDetailStatement.setString(6,map.get("nameCN")==null?"":map.get("nameCN").toString());
transactionDetailStatement.setString(7,map.get("cellPhone").toString());
transactionDetailStatement.execute();
transactionDetailStatement.close();
}
fzdsconn.close();
if (map.get("pointByJF")!=null&&!"0".equals(map.get("pointByJF").toString())){
//添加积分记录
PreparedStatement jfTransactionDetailStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO jf_transaction_details_copy1 (user_id,act_type,change_amount,user_balance,remark) " +
"VALUES (?, ?, ?, ?, ?)");
jfTransactionDetailStatement.setString(1,userId);
jfTransactionDetailStatement.setString(2,"0");
jfTransactionDetailStatement.setString(3,map.get("pointByJF").toString());
jfTransactionDetailStatement.setBigDecimal(4,userBalanceJf);
jfTransactionDetailStatement.setString(5,"系统合并结算");
jfTransactionDetailStatement.execute();
jfTransactionDetailStatement.close();
}
}catch (Exception ee){
}

View File

@@ -78,7 +78,7 @@ public class UserAddressController {
/**
* 删除用户地址
*/
@RequestMapping(value = "/delete", method = RequestMethod.GET)
@RequestMapping(value = "/delete")
public R delete(@RequestParam("id") Integer id) {
userAddressService.removeById(id);
return R.ok();

View File

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

View File

@@ -0,0 +1,48 @@
package com.peanut.modules.common.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("jf_transaction_details")
public class JfTransactionDetails implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
private Integer id;
/**
* 用户id
*/
private Integer userId;
/**
* 0增加1减少
*/
private String actType;
/**
* 变动金额
*/
private BigDecimal changeAmount;
/**
* 余额
*/
private BigDecimal userBalance;
/**
* 关联id
*/
private Integer relationId;
/**
* 备注
*/
private String remark;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableLogic
private Integer delFlag;
}

View File

@@ -0,0 +1,9 @@
package com.peanut.modules.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.JfTransactionDetails;
import org.springframework.stereotype.Service;
@Service
public interface JfTransactionDetailsService extends IService<JfTransactionDetails> {
}

View File

@@ -0,0 +1,11 @@
package com.peanut.modules.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.common.dao.JfTransactionDetailsDao;
import com.peanut.modules.common.entity.JfTransactionDetails;
import com.peanut.modules.common.service.JfTransactionDetailsService;
import org.springframework.stereotype.Service;
@Service("commonJfTransactionDetailsService")
public class JfTransactionDetailsServiceImpl extends ServiceImpl<JfTransactionDetailsDao, JfTransactionDetails> implements JfTransactionDetailsService {
}