本地执行工具

This commit is contained in:
wuchunlei
2025-07-02 14:28:28 +08:00
parent 85d1fec512
commit 596922cf83
9 changed files with 2211 additions and 0 deletions

View File

@@ -0,0 +1,193 @@
package com.peanut.common.utils;
import com.mysql.cj.jdbc.result.ResultSetImpl;
import org.apache.commons.lang.StringUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
//太湖庆典导出
public class AAAOptMp3Util {
public static void main(String[] args){
opt();
}
public static void opt() {
try {
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
PreparedStatement titleStatement = yljkconn.prepareStatement("select tc.nameCN,ttfp.title ptitle,ttf.title," +
"ttf.oid ttfoid,tc.oid tcoid " +
"from t_taihu_forum ttfp " +
"left join t_taihu_forum ttf on ttf.poid = ttfp.oid " +
"left join t_customer tc on tc.oid = ttfp.customerOid " +
"where ttfp.valid = 1 and ttfp.poid = '18b9264552954f3c90ec6381f00276f3' " +
"and ttfp.personFlg = 1 and ttfp.classify in (21,31,99) and ttf.clType = '03' " +
// "and tc.oid = '1ad1d4dc64c24ff0af0898fe774dc63e' " +
"and ttf.oid = '6cfa13080aa14135a7087458cff893fe' " +
"order by ttfp.title,ttf.orderNo");
ResultSet titleResultSet = titleStatement.executeQuery();
System.out.println("总数:"+((ResultSetImpl) titleResultSet).getUpdateCount());
List<Map<String,Object>> list = new ArrayList<>();
int x = 0;
while (titleResultSet.next()) {
x++;
Map<String,Object> map = new HashMap<>();
System.out.println(titleResultSet.getString("nameCN")+
"-"+titleResultSet.getString("ptitle")+
"-"+titleResultSet.getString("title"));
String ttfoid = titleResultSet.getString("ttfoid");
String tcoid = titleResultSet.getString("tcoid");
String nameCN = titleResultSet.getString("nameCN")+"-";
String ptitle = titleResultSet.getString("ptitle")+"-";
String title = titleResultSet.getString("title")+"-";
String mkdir = "aaa\\taihuxuetang\\"+nameCN+"-"+ptitle+"-"+title;
mkdir = mkdir.replaceAll(":","");
mkdir = "F:\\"+mkdir;
new File(mkdir).mkdir();
if (new File(mkdir).exists()){
map.put("ttfoid",ttfoid);
map.put("mkdir",mkdir);
List<Map<String,String>> chatList = new ArrayList<>();
PreparedStatement chatStatement = yljkconn.prepareStatement("select * from t_customer_chat_records " +
"where valid = 1 and newsType = '3' and relevanceOid = '"+ttfoid+"' " +
"order by createDate");
ResultSet chatResultSet = chatStatement.executeQuery();
while (chatResultSet.next()) {
Map<String,String> m = new HashMap<>();
m.put("content",chatResultSet.getString("content"));
m.put("oid",chatResultSet.getString("oid"));
chatList.add(m);
}
map.put("chatList",chatList);
list.add(map);
chatStatement.close();
chatResultSet.close();
}
}
System.out.println(x);
titleStatement.close();
titleResultSet.close();
yljkconn.close();
Thread.sleep(1000);
ExecutorService service = Executors.newFixedThreadPool(200);
for (Map<String,Object> allMap:list){
String mkdir = allMap.get("mkdir").toString();
String ttfoid = allMap.get("ttfoid").toString();
List<Map<String,String>> chatList = (List<Map<String,String>>)allMap.get("chatList");
service.execute(new Runnable() {
@Override
public void run(){
int i=0;
for (Map<String,String> map:chatList){
try {
if (map.get("content").contains(".amr")){
String amrFilePath = map.get("content").split(",")[0];
if (amrFilePath.contains("zysjk.com.cn")){
amrFilePath = amrFilePath.replace("zysjk.com.cn","oss.taihumed.com");
}else if (amrFilePath.contains("http://101.201.146.165:8088")){
amrFilePath = amrFilePath.replace("http://101.201.146.165:8088","E:/yljk/upload");
}
if (!StringUtils.isEmpty(amrFilePath)&&(amrFilePath.contains("http")||amrFilePath.contains("E:/"))){
String mp3FilePath = mkdir+"\\"+map.get("oid")+".mp3";
ProcessBuilder processBuilder = new ProcessBuilder(
"ffmpeg",
"-i", amrFilePath,
"-ar", "44100",
"-ac", "2",
"-ab", "128k",
"-f", "mp3",
mp3FilePath
);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;//一定要读出来,不然有的太大会失败
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitCode = process.waitFor();
if (exitCode == 0) {
i++;
process.destroy();
String temp = mkdir+"\\"+ttfoid+"-all-";
if (i==1){
// 读取第一个文件并写入输出文件
File firstInputFile = new File(mp3FilePath);
Files.copy(firstInputFile.toPath(), new File(temp+i+".mp3").toPath(), StandardCopyOption.REPLACE_EXISTING);
}else {
merged(temp+(i-1)+".mp3",mp3FilePath,temp+i+".mp3");
}
System.out.print(i+"完成;");
// new File(temp+(i-1)+".mp3").delete();
} else {
System.out.println(ttfoid+"FFmpeg exited with error code " + exitCode);
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
}catch (Exception e){
System.out.println(e.getMessage());
}
}
public static void merged(String input1,String input2,String output) {
// 构建FFmpeg命令
String[] command = {
"ffmpeg",
"-i", input1,
"-i", input2,
"-filter_complex", "[0:0][1:0]concat=n=2:v=0:a=1[a]",
"-map", "[a]",
"-acodec", "libmp3lame",
"-ab", "128k",
"-ar", "44100",
output
};
// 执行FFmpeg命令
ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.redirectErrorStream(true);
try {
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
// System.out.println(line);
}
process.waitFor();
process.destroy();
// System.out.print(" success ");
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,112 @@
package com.peanut.common.utils;
import cn.hutool.core.date.DateUtil;
import org.apache.commons.lang.time.DateUtils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Date;
public class CourseChapterUtil {
public static void main(String[] args){
}
public static void 免费开课(){
try {
Connection ebook = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = ebook.prepareStatement(
"select * from course_catalogue where del_flag = 0");
// "select * from user_course_buy where id = 73840 ");
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
int id = resultSet.getInt("id");
int courseId = resultSet.getInt("course_id");
PreparedStatement updateStatement = ebook.prepareStatement(
"insert into user_course_buy(`user_id`, `course_id`,`catalogue_id`,`days`) " +
"value(13226,"+courseId+","+id+",180)");
boolean t = updateStatement.execute();
System.out.println(id+"-"+t);
}
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void kecheng(){
try {
Connection ebook = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = ebook.prepareStatement(
"select * from user_course_buy where start_time = end_time and create_time > '2022-08-19' and start_time >'2023-08-19'");
// "select * from user_course_buy where id = 73840 ");
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
int id = resultSet.getInt("id");
Date date = resultSet.getTimestamp("end_time");
date = DateUtils.addYears(date,1);
PreparedStatement updateStatement = ebook.prepareStatement(
"update user_course_buy " +
"set end_time = '"+ DateUtil.format(date,"yyyy-MM-dd HH:mm:ss") +"' " +
"where id = "+id);
int a = updateStatement.executeUpdate();
System.out.println(DateUtil.format(date,"yyyy-MM-dd HH:mm:ss"));
System.out.println(a);
}
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void sikaoti(){
int i=0;
int id=0;
String content = "";
try {
Connection ebook = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = ebook.prepareStatement(
"select * from course_catalogue_chapter where course_id = 82 and content like '%思考题%' order by id desc ");
// "select * from course_catalogue_chapter where id = 491 ");
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
i++;
if (i==280){
System.out.println(i);
}
id = resultSet.getInt("id");
content = resultSet.getString("content");
String questionKey = "";
if (content.contains("【思考题】")){
questionKey = "【思考题】";
}else {
questionKey = "思考题";
}
String question = content.substring(content.indexOf(questionKey));
if (question.contains("<p><br/></p>")){
question = question.substring(0,question.indexOf("<p><br/></p>"));
}
PreparedStatement updateStatement = ebook.prepareStatement(
"update course_catalogue_chapter " +
"set questions = '<p>"+question+"' " +
"where id = "+id);
int update = updateStatement.executeUpdate();
if (update==1){
System.out.println(i+":成功");
}
}
} catch (Exception e) {
System.out.println(id+"="+content);
System.out.println("Error: " + e.getMessage());
}
}
}

View File

@@ -0,0 +1,371 @@
package com.peanut.common.utils;
import cn.hutool.core.date.DateUtil;
import org.apache.commons.lang.time.DateUtils;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class DataTest {
public static void main(String[] args){
// userVip();
// userVipDynamic();
// userCourseBuy1();
// addImageToCourse();
}
public static void addImageToCourse(){
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
List list = new ArrayList();
bottomLabel(74,list);
PreparedStatement courseStatement = fzdsconn.prepareStatement("select c.* from course_to_medicine ctm left join course c on c.id = ctm.course_id where ctm.del_flag = 0 and ctm.medical_id in ("+list.toString().replace("[","").replace("]","")+")");
ResultSet courseResultSet = courseStatement.executeQuery();
while (courseResultSet.next()){
String sql = "update course set content= '"+courseResultSet.getString("content")+"" +
"<p><img src=\"https://ehh-private-01.oss-cn-beijing.aliyuncs.com/2025/03/14/5ea3aa6480c346f694f066479db3e60fd3c70d9762362f42fb5fa7cd1624771.jpg\"></p>' " +
"where id = '"+courseResultSet.getString("id")+"'";
PreparedStatement oidUpdateStatement = fzdsconn.prepareStatement(sql);
oidUpdateStatement.execute();
}
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void bottomLabel(int labelId, List list) {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement bottomStatement = fzdsconn.prepareStatement("select * from course_medicine cm where cm.id = "+labelId);
ResultSet bottomResultSet = bottomStatement.executeQuery();
if (bottomResultSet.next()){
if (bottomResultSet.getInt("is_last")==1){
list.add(bottomResultSet.getInt("id"));
}else {
PreparedStatement cmsStatement = fzdsconn.prepareStatement("select * from course_medicine cm where cm.pid = "+bottomResultSet.getInt("id"));
ResultSet cmsResultSet = cmsStatement.executeQuery();
while (cmsResultSet.next()){
bottomLabel(cmsResultSet.getInt("id"),list);
}
}
}
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void userVipDynamic(){
try {
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = yljkconn.prepareStatement("select oid,superVIP,paydate,payValidDate " +
"from t_customer where valid = 1 and cellphone != '' and cellphone is not null " +
"and superVIP in ('1','2') and payValidDate is not null and paydate >'2024-07-07'");
ResultSet resultSet = statement.executeQuery();
int k=0;
while(resultSet.next()){
k++;
PreparedStatement userStatement = fzdsconn.prepareStatement("select * from user where yljk_oid = '"+resultSet.getString("oid")+"'");
ResultSet userResultSet = userStatement.executeQuery();
if (userResultSet.next()){
//先查询疯子读书用户是否有vip
if (!"0".equals(userResultSet.getString("vip"))){
//有会员就查询会员记录,对比会员类型、时间
PreparedStatement userVipStatement = fzdsconn.prepareStatement("select * from user_vip where state = 0 and user_id = '"+userResultSet.getString("id")+"'");
ResultSet userViResultSet = userVipStatement.executeQuery();
if (userViResultSet.next()){
if (!userResultSet.getString("vip").equals(resultSet.getString("superVIP"))||
userViResultSet.getDate("end_time").getTime()!=resultSet.getDate("payValidDate").getTime()){
System.out.println();
System.out.println("数据有差异-yljkoid="+resultSet.getString("oid")+"---userid="+userResultSet.getString("id"));
}else {
System.out.println(k+"已存在");
}
}
userVipStatement.close();
userViResultSet.close();
}else {
String sql = "update user set vip= '"+resultSet.getString("superVIP")+"' " +
"where yljk_oid = '"+resultSet.getString("oid")+"'";
PreparedStatement oidUpdateStatement = fzdsconn.prepareStatement(sql);
oidUpdateStatement.execute();
PreparedStatement editUserVipStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
editUserVipStatement.setString(1,userResultSet.getString("id"));
editUserVipStatement.setString(2,resultSet.getString("superVIP"));
editUserVipStatement.setString(3,resultSet.getString("paydate"));
editUserVipStatement.setString(4,resultSet.getString("payValidDate"));
if (cn.hutool.core.date.DateUtil.compare(DateUtil.parseDate(resultSet.getString("payValidDate")),new Date())>0){
editUserVipStatement.setString(5,"0");
}else {
editUserVipStatement.setString(5,"1");
}
editUserVipStatement.execute();
oidUpdateStatement.close();
editUserVipStatement.close();
System.out.println("新增userid="+userResultSet.getString("id"));
}
}else {
System.out.print(k+"无用户");
}
userStatement.close();
userResultSet.close();
}
System.out.print("同步完成");
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void userVip(){
try {
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = yljkconn.prepareStatement("select oid,superVIP,paydate,payValidDate " +
"from t_customer where valid = 1 and cellphone != '' and cellphone is not null " +
"and superVIP in ('1','2') and payValidDate is not null");
ResultSet resultSet = statement.executeQuery();
int k=0;
while(resultSet.next()){
k++;
PreparedStatement fzdsstatement = fzdsconn.prepareStatement("select * from user where yljk_oid = '"+resultSet.getString("oid")+"'");
ResultSet fzdsresultSet = fzdsstatement.executeQuery();
if (fzdsresultSet.next()){
String sql = "update user set vip= '"+resultSet.getString("superVIP")+"' " +
"where yljk_oid = '"+resultSet.getString("oid")+"'";
PreparedStatement oidUpdateStatement = fzdsconn.prepareStatement(sql);
oidUpdateStatement.execute();
PreparedStatement userVipStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
userVipStatement.setString(1,fzdsresultSet.getString("id"));
userVipStatement.setString(2,resultSet.getString("superVIP"));
userVipStatement.setString(3,resultSet.getString("paydate"));
userVipStatement.setString(4,resultSet.getString("payValidDate"));
if (cn.hutool.core.date.DateUtil.compare(DateUtil.parseDate(resultSet.getString("payValidDate")),new Date())>0){
userVipStatement.setString(5,"0");
}else {
userVipStatement.setString(5,"1");
}
userVipStatement.execute();
userVipStatement.close();
}
System.out.println(k);
}
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void userCourseBuy(){
try {
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
// 关闭自动提交事务,改为手动提交
System.out.println("===== 开始插入数据 =====");
fzdsconn.setAutoCommit(false);
long startTime = System.currentTimeMillis();
long startTime1 = System.currentTimeMillis();
PreparedStatement statement = yljkconn.prepareStatement("select oid,superVIP,paydate,payValidDate " +
"from t_customer where valid = 1 and cellphone != '' and cellphone is not null " +
"and (superVIP not in ('1','2') or payValidDate is null)");
ResultSet resultSet = statement.executeQuery();
int k=0;
PreparedStatement classStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,create_time,days,start_time,end_time) " +
"VALUES (?, ?, ?, ?, ?, ?, ?)");
while(resultSet.next()){
k++;
PreparedStatement classstatement = yljkconn.prepareStatement("select * from t_customer_taihu_class " +
"where valid = 1 and status = '10' and customerOid = '"+resultSet.getString("oid")+"'");
ResultSet classresultSet = classstatement.executeQuery();
int userId = 0;
int courseId = 0;
int courseCatalogueId = 0;
if (classresultSet.next()) {
PreparedStatement userstatement = fzdsconn.prepareStatement("select * from user where yljk_oid = '"+resultSet.getString("oid")+"'");
ResultSet userresultSet = userstatement.executeQuery();
if (userresultSet.next()) {
userId = userresultSet.getInt("id");
PreparedStatement cataloguestatement = yljkconn.prepareStatement("" +
"select * from t_curriculum_catalogue where valid = 1 and oid = '"+classresultSet.getString("taiHuClassOid")+"'");
ResultSet catalogueresultSet = cataloguestatement.executeQuery();
if (catalogueresultSet.next()) {
PreparedStatement coursestatement = fzdsconn.prepareStatement("" +
"select * from course where uid = '"+catalogueresultSet.getString("poid")+"'");
ResultSet courseresultSet = coursestatement.executeQuery();
if (courseresultSet.next()) {
courseId = courseresultSet.getInt("id");
}
}
PreparedStatement coursecataloguestatement = fzdsconn.prepareStatement("" +
"select * from course_catalogue where del_flag = 0 and course_id = "+courseId+" and title = '"+catalogueresultSet.getString("title")+"'");
ResultSet coursecatalogueresultSet = coursecataloguestatement.executeQuery();
if (coursecatalogueresultSet.next()) {
courseCatalogueId = coursecatalogueresultSet.getInt("id");
}
while(classresultSet.next()){
classStatement.setInt(1,userId);
classStatement.setInt(2,courseId);
classStatement.setInt(3,courseCatalogueId);
classStatement.setTimestamp(4,classresultSet.getTimestamp("createDate"));
classStatement.setInt(5,classresultSet.getInt("studyDays"));
classStatement.setTimestamp(6,classresultSet.getTimestamp("startDate"));
if (classresultSet.getTimestamp("startDate")==null){
classStatement.setString(7, null);
}else {
Date endDate = DateUtils.addDays(classresultSet.getTimestamp("startDate"),classresultSet.getInt("studyDays"));
classStatement.setTimestamp(7,Timestamp.valueOf(DateUtil.format(endDate,"yyyy-MM-dd HH:mm:ss")));
}
classStatement.addBatch();
}
}
}
// System.out.println(k);
if (k % 1000 == 0) {
// 每1000条数据提交一次
classStatement.executeBatch();
fzdsconn.commit();
long spendTime1 = System.currentTimeMillis()-startTime1;
startTime1 = System.currentTimeMillis();
System.out.println("成功插入第 "+ k+" 条数据,耗时:"+spendTime1/1000+"");
}
}
// 处理剩余的数据
classStatement.executeBatch();
fzdsconn.commit();
fzdsconn.setAutoCommit(true);//在把自动提交打开
long spendTime = System.currentTimeMillis()-startTime;
System.out.println("成功插入"+k+"条数据,耗时:"+spendTime/1000+"");
fzdsconn.close();
classStatement.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void userCourseBuy1(){
try {
Connection yljkconn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
// 关闭自动提交事务,改为手动提交
System.out.println("===== 开始插入数据 ====="+new Date());
fzdsconn.setAutoCommit(false);
long startTime = System.currentTimeMillis();
long startTime1 = System.currentTimeMillis();
// PreparedStatement statement = yljkconn.prepareStatement("select customerOid from t_customer_taihu_class ctc left join t_customer c on ctc.customerOid = c.oid where c.valid = 1 and ctc.valid = 1 and ctc.status = '10' and (c.superVIP not in (1,2) or c.superVIP not in ('1','2') or c.payValidDate is null) group by customerOid " +
// "");
// ResultSet resultSet = statement.executeQuery();
PreparedStatement classStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,create_time,days,start_time,end_time) " +
"VALUES (?, ?, ?, ?, ?, ?, ?)");
int k=0;
List list = new ArrayList();
list.add("137a4c15dad741f1b8bdcf3f1ed29bb2");
list.add("4f50a94045994dafb16c337f9b590d3d");
for (int i=0;i<list.size(); i++){
k++;
// System.out.println(k);
PreparedStatement userstatement = fzdsconn.prepareStatement("select * from user where yljk_oid = '"+list.get(i).toString()+"'");
ResultSet userresultSet = userstatement.executeQuery();
if (userresultSet.next()) {
int userId = userresultSet.getInt("id");
PreparedStatement classstatement = yljkconn.prepareStatement("select * from t_customer_taihu_class " +
"where valid = 1 and status = '10' and customerOid = '"+list.get(i).toString()+"'");
ResultSet classresultSet = classstatement.executeQuery();
while (classresultSet.next()) {
PreparedStatement cataloguestatement = yljkconn.prepareStatement("" +
"select * from t_curriculum_catalogue where valid = 1 and oid = '"+classresultSet.getString("taiHuClassOid")+"'");
ResultSet catalogueresultSet = cataloguestatement.executeQuery();
if (catalogueresultSet.next()) {
PreparedStatement coursestatement = fzdsconn.prepareStatement("" +
"select * from course where uid = '"+catalogueresultSet.getString("poid")+"'");
ResultSet courseresultSet = coursestatement.executeQuery();
if (courseresultSet.next()) {
int courseId = courseresultSet.getInt("id");
PreparedStatement coursecataloguestatement = fzdsconn.prepareStatement("" +
"select * from course_catalogue where del_flag = 0 and course_id = "+courseId+" and title = '"+catalogueresultSet.getString("title")+"'");
ResultSet coursecatalogueresultSet = coursecataloguestatement.executeQuery();
if (coursecatalogueresultSet.next()) {
int courseCatalogueId = coursecatalogueresultSet.getInt("id");
classStatement.setInt(1,userId);
classStatement.setInt(2,courseId);
classStatement.setInt(3,courseCatalogueId);
classStatement.setTimestamp(4,classresultSet.getTimestamp("createDate"));
classStatement.setInt(5,classresultSet.getInt("studyDays"));
classStatement.setTimestamp(6,classresultSet.getTimestamp("startDate"));
if (classresultSet.getTimestamp("startDate")==null){
classStatement.setString(7, null);
}else {
Date endDate = DateUtils.addDays(classresultSet.getTimestamp("startDate"),classresultSet.getInt("studyDays"));
classStatement.setTimestamp(7,Timestamp.valueOf(DateUtil.format(endDate,"yyyy-MM-dd HH:mm:ss")));
}
classStatement.addBatch();
}
}
}
}
}else {
System.out.println("没找到"+list.get(i).toString());
}
if (k % 1000 == 0) {
// 每1000条数据提交一次
classStatement.executeBatch();
fzdsconn.commit();
long spendTime1 = System.currentTimeMillis()-startTime1;
startTime1 = System.currentTimeMillis();
System.out.println("成功插入第 "+ k+" 条数据,耗时:"+spendTime1/1000+"");
}
}
// 处理剩余的数据
classStatement.executeBatch();
fzdsconn.commit();
fzdsconn.setAutoCommit(true);//在把自动提交打开
long spendTime = System.currentTimeMillis()-startTime;
System.out.println("成功插入"+k+"条数据,耗时:"+spendTime/1000+"");
fzdsconn.close();
classStatement.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
}

View File

@@ -0,0 +1,303 @@
package com.peanut.common.utils;
import cn.hutool.core.date.DateUtil;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.joda.time.DateTime;
import java.io.File;
import java.math.BigDecimal;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class DataUtil {
public static void main(String[] args){
// user();
// classUser();
// penutcoinAndjf();
// uploadYLJKImage();
// test();
}
public static void test(){
Date date = DateUtils.stringToDate("2024-11-27","yyyy-MM-dd");
Date date1 = DateUtils.addDateDays(date,147);
System.out.println(DateUtils.format(date1));
}
public static void uploadYLJKImage(){
try {
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement courseChapterStatement = fzdsConn.prepareStatement("select * from user" +
" where avatar like '%101.201.146.165:8088%' and avatar not like '%App-EH%' ");
ResultSet courseChapterResultSet = courseChapterStatement.executeQuery();
while(courseChapterResultSet.next()){
String imageUrl = courseChapterResultSet.getString("avatar");
String path = imageUrl.substring(imageUrl.indexOf("8088")+4);
File file = new File("E:/yljk/upload"+path);
String newUrl = uploadFile(file);
String sql = " update user set avatar = '"+ newUrl+
"' where id = "+courseChapterResultSet.getString("id");
PreparedStatement coinUpdateStatement = fzdsConn.prepareStatement(sql);
coinUpdateStatement.executeUpdate();
}
fzdsConn.close();
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
public static String uploadFile(File file){
// 工具类获取值
String endpoint = "oss-cn-beijing.aliyuncs.com";
String accessKeyId = "LTAIiSMeo8ztauV5";
String accessKeySecret = "pVIYAOIFSUGg61lYfE8cjg2ZNpnLJA";
String bucketName = "ehh-private-01";
try {
// 创建OSS实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String fileName = file.getName();
String datePath = new DateTime().toString("yyyy/MM/dd");
fileName = datePath + "/" + fileName;
//调用oss方法实现上传
ossClient.putObject(bucketName,fileName, file);
String url = "https://"+bucketName+"."+endpoint+"/"+fileName;
// 关闭OSSClient。
ossClient.shutdown();
return url;
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
public static void penutcoinAndjf(){
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement transactionDetailStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO transaction_details (user_id,order_type,change_amount,remark,user_balance," +
"user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?)");
PreparedStatement jfTransactionDetailStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO jf_transaction_details (user_id,act_type,change_amount,user_balance,remark) " +
"VALUES (?, ?, ?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select * from t_customer where valid = 1 " +
"and (point>0 or pointByJF >0) and cellPhone = '18981539530' order by cellPhone desc ");
ResultSet resultSet = statement.executeQuery();
int i=0;
String res = "";
while(resultSet.next()){
String tel = resultSet.getString("cellPhone");
BigDecimal point = resultSet.getBigDecimal("point");
BigDecimal pointByJF = resultSet.getBigDecimal("pointByJF");
PreparedStatement userStatement = fzdsConn.prepareStatement("select * from user where del_flag = 0 and tel = '"+tel+"' ");
ResultSet userResultSet = userStatement.executeQuery();
boolean flag = true;
while(userResultSet.next()){
i++;
flag = false;
BigDecimal userPoint = userResultSet.getBigDecimal("peanut_coin");
BigDecimal userPointByJF = userResultSet.getBigDecimal("jf");
String sql = " update user set peanut_coin = "+ point.add(userPoint) +",jf = "+pointByJF.add(userPointByJF)+
" where id = "+userResultSet.getString("id");
PreparedStatement coinUpdateStatement = fzdsConn.prepareStatement(sql);
coinUpdateStatement.executeUpdate();
if (point.compareTo(new BigDecimal(0))>0){
transactionDetailStatement.setString(1,userResultSet.getString("id"));
transactionDetailStatement.setString(2,"系统合并结算");
transactionDetailStatement.setBigDecimal(3,point);
transactionDetailStatement.setString(4,"合并");
transactionDetailStatement.setBigDecimal(5,point.add(userPoint));
transactionDetailStatement.setString(6,userResultSet.getString("name"));
transactionDetailStatement.setString(7,userResultSet.getString("tel"));
transactionDetailStatement.addBatch();
}
if (pointByJF
.compareTo(new BigDecimal(0))>0){
jfTransactionDetailStatement.setString(1,userResultSet.getString("id"));
jfTransactionDetailStatement.setString(2,"0");
jfTransactionDetailStatement.setBigDecimal(3,pointByJF);
jfTransactionDetailStatement.setBigDecimal(4,pointByJF.add(userPointByJF));
jfTransactionDetailStatement.setString(5,"系统合并结算");
jfTransactionDetailStatement.addBatch();
}
System.out.println(i+"----"+tel+"完成");
}
if (flag) {
res+=tel+",";
}
}
transactionDetailStatement.executeBatch();
jfTransactionDetailStatement.executeBatch();
System.out.println(res+"未找到");
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void classUser(){
try {
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addClassUserStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO class_user (class_id,user_id,role) VALUES (?, ?, ?)");
String[] tels = {"18827281105",
"13756572303",
"18126640098",
"18389887404",
"18954153195",
"13998127625",
"13719615396"};
for (String tel : tels) {
PreparedStatement statement = fzdsConn.prepareStatement("select * from user where del_flag = 0 " +
"and tel = '"+tel+"' ");
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
addClassUserStatement.setString(1,"153");
addClassUserStatement.setString(2,resultSet.getString("id"));
addClassUserStatement.setString(3,"0");
addClassUserStatement.addBatch();
System.out.println(tel+"完成");
}
System.out.println(tel+"未找到");
}
addClassUserStatement.executeBatch();
fzdsConn.close();
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void user(){
try {
Connection everhealth = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection ebook = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement yljkStatement = everhealth.prepareStatement("select oid from t_customer where valid = 1 ");
ResultSet yljkResultSet = yljkStatement.executeQuery();
int i=0;
while(yljkResultSet.next()){
i++;
PreparedStatement ebookStatements = ebook.prepareStatement("" +
"select * from user where yljk_oid = '"+yljkResultSet.getString("oid")+"' ");
ResultSet ebookResultSet = ebookStatements.executeQuery();
if (i % 1000 == 0) {
System.out.println("成功搜索"+ i +" 条数据");
}
if (!ebookResultSet.next()){
System.out.println(yljkResultSet.getString("oid")+"未找到");
}
}
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void addUserCoin(){
try {
Connection ebook = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = ebook.prepareStatement("select * from transaction_details where transaction_id > 2778 order by create_time ");
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
PreparedStatement userStatement = ebook.prepareStatement("select * from user where id = "+resultSet.getString("user_id"));
ResultSet userResultSet = userStatement.executeQuery();
if(userResultSet.next()){
BigDecimal oldCoin = new BigDecimal(userResultSet.getString("peanut_coin"));
BigDecimal newCoin = new BigDecimal(resultSet.getString("change_amount"));
BigDecimal peanutCoin = oldCoin.add(newCoin);
String sql = " update user set peanut_coin = "+ peanutCoin +
" where id = "+userResultSet.getString("id");
PreparedStatement coinUpdateStatement = ebook.prepareStatement(sql);
coinUpdateStatement.execute();
}else {
}
}
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void reloadUserCoin(){
try {
Connection ebook = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
Connection test = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement testStatement = test.prepareStatement(" select id,peanut_coin from user where peanut_coin > 0 ");
ResultSet testResultSet = testStatement.executeQuery();
while(testResultSet.next()){
String sql = " update user set peanut_coin = "+testResultSet.getString("peanut_coin") +
" where id = "+testResultSet.getString("id");
PreparedStatement idUpdateStatement = ebook.prepareStatement(sql);
idUpdateStatement.execute();
}
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}

View File

@@ -0,0 +1,479 @@
package com.peanut.common.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.commons.lang.StringUtils;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.sql.*;
import java.util.*;
public class MigrateUtil {
public static void main(String[] args) {
// uploadCertificate();
// migrateCertificate();
// migrateContribution();//湖分转移
// migrateContributionExchange();//湖分剩余转移
// taihutalentCourse();
// taihutalentCourseCatalogue();
// taihutalentCourseCatalogueChapter();
// migrateGene();
// migratePrescription();
}
public static void migratePrescription() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addPrescriptionStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO precision_medicine_prescription (name,alias,compose,effect,indications,source) " +
"VALUES (?, ?, ?, ?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select nameCN,alias,composition,efficacy,primaryCure,provenance from t_prescription tp ");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
i++;
addPrescriptionStatement.setString(1,resultSet.getString("nameCN"));
addPrescriptionStatement.setString(2,resultSet.getString("alias"));
addPrescriptionStatement.setString(3,resultSet.getString("composition"));
addPrescriptionStatement.setString(4,resultSet.getString("efficacy"));
addPrescriptionStatement.setString(5,resultSet.getString("primaryCure"));
addPrescriptionStatement.setString(6,resultSet.getString("provenance"));
addPrescriptionStatement.addBatch();
System.out.println(i+"完成");
}
addPrescriptionStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void migrateGene() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addPrecisionMedicineGeneStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO precision_medicine_gene (gene_name,gene_namecn,alias,description,tcm_name) " +
"VALUES (?, ?, ?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select tg.name,tg.nameCN,tg.alias,tg.explains,tgr.tcmNameCN from t_gene tg\n" +
" left join t_gtcm_relation tgr on tgr.gene = tg.oid ");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
i++;
addPrecisionMedicineGeneStatement.setString(1,resultSet.getString("name"));
addPrecisionMedicineGeneStatement.setString(2,resultSet.getString("nameCN"));
addPrecisionMedicineGeneStatement.setString(3,resultSet.getString("alias"));
addPrecisionMedicineGeneStatement.setString(4,resultSet.getString("explains"));
addPrecisionMedicineGeneStatement.setString(5,resultSet.getString("tcmNameCN"));
addPrecisionMedicineGeneStatement.addBatch();
System.out.println(i+"完成");
}
addPrecisionMedicineGeneStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void taihutalentCourseCatalogueChapter() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCertificateStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO course_catalogue_chapter (" +
"course_id,catalogue_id,title,img_url,is_audition,content,sort,create_time) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
PreparedStatement addVideoStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO course_catalogue_chapter_video (" +
"chapter_id,type,video,sort,create_time) " +
"VALUES (?, ?, ?, ?, ?)");
PreparedStatement statement = fzdsConn.prepareStatement("" +
"select c.id cid,c.uid cuid,cc.* from course c " +
"left join course_catalogue cc on cc.course_id = c.id where c.id > 222");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
String cuid = resultSet.getString("cuid");
String catalogueSql = "select oid,title from t_curriculum_catalogue where valid = 1 and poid = '"+cuid+"'";
PreparedStatement catalogueStatement = yljkConn.prepareStatement(catalogueSql);
ResultSet catalogueResultSet = catalogueStatement.executeQuery();
while(catalogueResultSet.next()){
String detailSql = "select * from t_curriculum_detail where valid = 1 and poid = '"+catalogueResultSet.getString("oid")+"'";
PreparedStatement detailstatement = yljkConn.prepareStatement(detailSql);
ResultSet detailresultSet = detailstatement.executeQuery();
while(detailresultSet.next()){
addUserCertificateStatement.setString(1,resultSet.getString("cid"));
addUserCertificateStatement.setString(2,resultSet.getString("id"));
addUserCertificateStatement.setString(3,detailresultSet.getString("title"));
addUserCertificateStatement.setString(4,detailresultSet.getString("imgUrl"));
addUserCertificateStatement.setInt(5,"03".equals(detailresultSet.getString("conditions"))?0:1);
addUserCertificateStatement.setString(6,detailresultSet.getString("explains"));
addUserCertificateStatement.setString(7,detailresultSet.getString("orderNo"));
addUserCertificateStatement.setString(8,detailresultSet.getString("createDate"));
addUserCertificateStatement.execute();
//获取添加之后自动增长id值
ResultSet rs = addUserCertificateStatement.getGeneratedKeys();
String chapterId = "";
while(rs.next()) {
Object id = rs.getObject(1);
chapterId = id.toString();
}
Map map = new HashMap();
if (StringUtils.isNotEmpty(detailresultSet.getString("videoId"))){
map.put("type","1");
map.put("video",detailresultSet.getString("videoId"));
}else if (StringUtils.isNotEmpty(detailresultSet.getString("videos"))){
map.put("type","0");
map.put("video",detailresultSet.getString("videos"));
}
if (map.size() > 0){
String[] tt = map.get("video").toString().split(",");
if (tt.length>0){
for (int r=0;r<tt.length;r++){
if (!tt[r].equals("")) {
addVideoStatement.setString(1,chapterId);
addVideoStatement.setString(2,map.get("type").toString());
addVideoStatement.setString(3,tt[r]);
addVideoStatement.setString(4,r+1+"");
addVideoStatement.setString(5,detailresultSet.getString("createDate"));
// 添加到批处理中
addVideoStatement.addBatch();
}
}
}
}
}
}
}
addVideoStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void taihutalentCourseCatalogue() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCertificateStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO course_catalogue (course_id,title,type,half_fee,fee,sort,create_time) " +
"VALUES (?, ?, ?, ?, ?, ?, ?)");
PreparedStatement statement = fzdsConn.prepareStatement("select * from course where id > 222");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
i++;
String id = resultSet.getString("id");
String uid = resultSet.getString("uid");
PreparedStatement userStatement = yljkConn.prepareStatement("select * from t_curriculum_catalogue " +
"where valid = 1 and poid = '"+uid+"' ");
ResultSet userResultSet = userStatement.executeQuery();
while(userResultSet.next()){
addUserCertificateStatement.setString(1,id);
addUserCertificateStatement.setString(2,userResultSet.getString("title"));
if (StringUtils.isNotEmpty(userResultSet.getString("courseFee"))&&
!"0".equals(userResultSet.getString("courseFee"))){
addUserCertificateStatement.setInt(3,1);
if (userResultSet.getString("courseFee").contains(",")){
addUserCertificateStatement.setBigDecimal(4,new BigDecimal(userResultSet.getString("courseFee").split(",")[0]));
addUserCertificateStatement.setBigDecimal(5, new BigDecimal(userResultSet.getString("courseFee").split(",")[1]));
}else {
addUserCertificateStatement.setBigDecimal(4,new BigDecimal(userResultSet.getString("courseFee")));
addUserCertificateStatement.setBigDecimal(5, new BigDecimal(userResultSet.getString("courseFee")));
}
}else {
addUserCertificateStatement.setInt(3,0);
addUserCertificateStatement.setBigDecimal(4,BigDecimal.ZERO);
addUserCertificateStatement.setBigDecimal(5, BigDecimal.ZERO);
}
addUserCertificateStatement.setString(6,userResultSet.getString("orderNo"));
addUserCertificateStatement.setString(7,userResultSet.getString("createDate"));
addUserCertificateStatement.addBatch();
}
}
addUserCertificateStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void taihutalentCourse() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCertificateStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO course (uid,title,sort,content,create_time) " +
"VALUES (?, ?, ?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select * from t_curriculum_catalogue " +
"where poid = '00000000000000000000000000000065' and oid not in ('f6cda2ffae674e63869b50ab809352ed'," +
"'d34a067faa0646529d050d810d9ca43b','b903c333266541149b39ce9123945ed6','97890e5a986f40e9b74e16742adfce29'," +
"'92a07f70fcec4097b04cf49dac3f5dc6','8e19927320ed4156adf03980630ff521','5c071bab4aa9447081d63194ed773fe0'," +
"'48c8c2a7379a421693592280e60b2383','272667bbb191447c81858450c4d3f897','24cd4fb568de44b6a96a0758d1b67223'," +
"'1823271917204505878640f9784d81d1','0ba50dd29c41480eac957184bf280baf') and valid = 1 order by createDate ");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
addUserCertificateStatement.setString(1,resultSet.getString("oid"));
addUserCertificateStatement.setString(2,resultSet.getString("title"));
addUserCertificateStatement.setString(3,resultSet.getString("orderNo"));
addUserCertificateStatement.setString(4,resultSet.getString("introduceTxt"));
addUserCertificateStatement.setString(5,resultSet.getString("createDate"));
addUserCertificateStatement.addBatch();
}
addUserCertificateStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void migrateContributionExchange() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCertificateStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO user_contribution_exchange (user_id,surplus,create_time) " +
"VALUES (?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select * from t_customer_contribution_exchange " +
"where customerOid = 'dde033f2f4e749cc99375595ad12dcb6' and valid = 1 order by createDate ");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
i++;
String userOid = resultSet.getString("customerOid");
PreparedStatement userStatement = fzdsConn.prepareStatement("select * from user where del_flag = 0 and yljk_oid = '"+userOid+"' ");
ResultSet userResultSet = userStatement.executeQuery();
while(userResultSet.next()){
addUserCertificateStatement.setString(1,userResultSet.getString("id"));
addUserCertificateStatement.setString(2,resultSet.getString("subScore"));
addUserCertificateStatement.setString(3,resultSet.getString("createDate"));
addUserCertificateStatement.addBatch();
System.out.println(i+"----"+userOid+"完成");
}
}
addUserCertificateStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void migrateContribution() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCertificateStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO user_contribution (user_id,score,detail,type,conversion_flag,create_time) " +
"VALUES (?, ?, ?, ?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select * from t_customer_contribution " +
"where customerOid = 'dde033f2f4e749cc99375595ad12dcb6' and valid = 1 order by createDate ");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
i++;
String userOid = resultSet.getString("customerOid");
PreparedStatement userStatement = fzdsConn.prepareStatement("select * from user where del_flag = 0 and yljk_oid = '"+userOid+"' ");
ResultSet userResultSet = userStatement.executeQuery();
while(userResultSet.next()){
addUserCertificateStatement.setString(1,userResultSet.getString("id"));
addUserCertificateStatement.setString(2,resultSet.getString("score"));
addUserCertificateStatement.setString(3,resultSet.getString("detail"));
addUserCertificateStatement.setString(4,resultSet.getString("type"));
addUserCertificateStatement.setString(5,resultSet.getString("conversionFlg"));
addUserCertificateStatement.setString(6,resultSet.getString("createDate"));
addUserCertificateStatement.addBatch();
System.out.println(i+"----"+userOid+"完成");
}
}
addUserCertificateStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
//证书转移
public static void migrateCertificate() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCertificateStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO user_certificate (type,title,certificate_no,certificate_url,user_id,create_time,course_id) " +
"VALUES (?, ?, ?, ?, ?, ?, ?)");
PreparedStatement statement = yljkConn.prepareStatement("select * from t_doctor_certificate where valid = 1 order by createDate ");
ResultSet resultSet = statement.executeQuery();
int i=0;
while(resultSet.next()){
i++;
String userOid = resultSet.getString("customerOid");
PreparedStatement userStatement = fzdsConn.prepareStatement("select * from user where del_flag = 0 and yljk_oid = '"+userOid+"' ");
ResultSet userResultSet = userStatement.executeQuery();
while(userResultSet.next()){
addUserCertificateStatement.setString(1,resultSet.getString("type"));
addUserCertificateStatement.setString(2,"");
if (StringUtils.isNotBlank(resultSet.getString("curriculumOid"))){
PreparedStatement currstatement = yljkConn.prepareStatement("select * from t_curriculum_catalogue where valid = 1 and oid = '"+resultSet.getString("curriculumOid")+"' ");
ResultSet currresultSet = currstatement.executeQuery();
while(currresultSet.next()){
addUserCertificateStatement.setString(2,"yljk课程-"+currresultSet.getString("title"));
}
}else if (StringUtils.isNotBlank(resultSet.getString("trainingOid"))){
PreparedStatement currstatement = yljkConn.prepareStatement("select * from t_meetingclass_register where valid = 1 and oid = '"+resultSet.getString("trainingOid")+"' ");
ResultSet currresultSet = currstatement.executeQuery();
while(currresultSet.next()){
addUserCertificateStatement.setString(2,"yljk培训班-"+currresultSet.getString("title"));
}
}
addUserCertificateStatement.setString(3,resultSet.getString("certificateID"));
String newUrls = "";
String oss = "https://ehh-private-01.oss-cn-beijing.aliyuncs.com/certificate/yljk/";
String urls = resultSet.getString("certificateUrl");
String[] us = urls.split(",");
for (String u:us){
if (StringUtils.isNotBlank(newUrls)){
newUrls = newUrls +","+oss+u.substring(u.lastIndexOf("/")+1);
}else {
newUrls = oss+u.substring(u.lastIndexOf("/")+1);
}
}
addUserCertificateStatement.setString(4,newUrls);
addUserCertificateStatement.setString(5,userResultSet.getString("id"));
addUserCertificateStatement.setString(6,resultSet.getString("createDate"));
addUserCertificateStatement.setString(7,"0");
if (StringUtils.isNotBlank(resultSet.getString("curriculumOid"))){
PreparedStatement currstatement = fzdsConn.prepareStatement("select * from course where del_flag = 0 and uid = '"+resultSet.getString("curriculumOid")+"' ");
ResultSet currresultSet = currstatement.executeQuery();
while(currresultSet.next()){
addUserCertificateStatement.setString(7,currresultSet.getString("id"));
}
}
addUserCertificateStatement.addBatch();
System.out.println(i+"----"+userOid+"完成");
}
}
addUserCertificateStatement.executeBatch();
yljkConn.close();
fzdsConn.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void uploadCertificate() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = yljkConn.prepareStatement("select * from t_doctor_certificate where valid = 1 order by createDate ");
ResultSet resultSet = statement.executeQuery();
List<Map> list = new ArrayList();
int i=0;
while(resultSet.next()){
i++;
String certificateUrls = resultSet.getString("certificateUrl");
String[] urls = certificateUrls.split(",");
for (String url : urls) {
try {
URL u = new URL(url);
URLConnection connection = u.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
InputStream inputStream = httpURLConnection.getInputStream();
String fileName = url.substring(url.lastIndexOf("/")+1);
String imgUrl = uploadFile(inputStream,fileName);
System.out.println(imgUrl);
}catch (Exception e) {
}
}
System.out.println(i+"完成");
}
yljkConn.close();
fzdsConn.close();
statement.close();
resultSet.close();
} catch (SQLException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static String uploadFile(InputStream inputStream,String fileName){
// 工具类获取值
String endpoint = "oss-cn-beijing.aliyuncs.com";
String accessKeyId = "LTAIiSMeo8ztauV5";
String accessKeySecret = "pVIYAOIFSUGg61lYfE8cjg2ZNpnLJA";
String bucketName = "ehh-private-01";
try {
// 创建OSS实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//把上传之后文件路径返回 需要把上传到阿里云oss路径手动拼接出来
// https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg
String url = "https://"+bucketName+"."+endpoint+"/certificate/yljk/"+fileName;
//调用oss方法实现上传
ossClient.putObject(bucketName,"certificate/yljk/"+fileName, inputStream);
// 关闭OSSClient。
ossClient.shutdown();
return url;
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
}

View File

@@ -0,0 +1,185 @@
package com.peanut.common.utils;
import cn.hutool.core.date.DateUtil;
import com.sun.mail.iap.ProtocolException;
import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.SortTerm;
import com.sun.mail.imap.protocol.IMAPProtocol;
import com.sun.mail.util.MailSSLSocketFactory;
import org.apache.commons.lang.time.DateUtils;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.mail.search.*;
import java.io.*;
import java.util.*;
public class TestMailUtil {
private final static String mailName = "fengzidushu@163.com";
private final static String mailToken = "GJIPUCQLQYTMDMPH";
//qq token = "waebexscjzlrbbfb";uohgxpeuzlggbbbj
public static void main(String[] args) {
try {
// sendMail("titel","789789","mail_admin@tmrjournals.com.cn");
// getMessageInfo(1);
// getMessageList();
}catch (Exception e) {
System.err.println(e.getMessage());
}
}
public static R sendMail(String title,String content,String receiveAddress){
try {
//smtp服务器
Properties pros=new Properties();
pros.put("mail.smtp.host", "mail.tmrjournals.com.cn");//主机名
pros.put("mail.smtp.port", "25");//主机端口号
pros.put("mail.smtp.auth", "true");//是否需要用户认证
//创建会话
Session session=Session.getInstance(pros,new Authenticator(){
@Override
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication("mail_admin", "mail_admin");
}
});
//设置debug模式便于调试
session.setDebug(true);
MimeMessage message=new MimeMessage(session);
//邮件标题
message.setSubject(title);
//邮件内容(文本)
message.setText(content,"utf-8");
//设置发送方地址
message.setFrom(new InternetAddress("mail.tmrjournals.com.cn"));
//设置收件方地址
message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receiveAddress));
//发送
Transport.send(message);
return R.ok();
}catch (Exception e) {
return R.error(e.getMessage());
}
}
private final static String hostType = "qq";
private final static String user = "937283928@qq.com";
private final static String userToken = "uohgxpeuzlggbbbj";
public static void getMessageInfo(int number)throws Exception{
Folder folder = getFolder();
Message msg = folder.getMessage(number);
String subject = msg.getSubject();
String from = (msg.getFrom()[0]).toString();
from = MimeUtility.decodeText(from);
System.out.println("------------------解析邮件-------------------- ");
System.out.println("主题: " + subject);
System.out.println("发件人: " + from);
System.out.println("发送时间:" + DateUtil.format(msg.getSentDate(),"yyyy-MM-dd HH:mm:ss"));
System.out.println("是否已读:" + msg.getFlags().contains(Flags.Flag.SEEN));
if (msg.isMimeType("TEXT/*")) { // 仅包含正文的简单邮件
System.out.println("邮件正文: " + msg.getContent());
} else {
parseMessage((MimeMultipart) msg.getContent()); // 解析稍复杂邮件
}
msg.setFlag(Flags.Flag.SEEN, true); //设置已读标志 true返回给邮件服务器
System.out.println("------------------邮件解析结束-------------------- ");
}
/**
* 解析邮件
*/
public static void parseMessage (MimeMultipart part) throws MessagingException, IOException {
for (int i = 0; i < part.getCount(); i++) {
BodyPart body = part.getBodyPart(i);
if (body.isMimeType("text/html")) {
System.out.println("html格式正文: " + body.getContent());
} else if (body.isMimeType("text/plain")) {
System.out.println("纯文本格式正文: " + body.getContent());
} else if (body.isMimeType("multipart/*")) {
MimeMultipart multipart = (MimeMultipart) body.getContent();
parseMessage(multipart);
} else {
System.out.println("邮件附件: "+body.getFileName());
// 附件
// InputStream inputStream = body.getDataHandler().getInputStream();
// int len = 0;
// while( (len = inputStream.read(bytes)) != -1 ){
// outStream.write(bytes, 0, len);
// }
}
}
}
public static List<Message> getMessageList() throws Exception{
Folder folder = getFolder();
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); // false代表未读true代表已读
Message[] messages = folder.search(ft);
List<Message> list = new ArrayList<Message>();
for (int i = 0; i < messages.length; i++) {
String subject = messages[i].getSubject();
String from = (messages[i].getFrom()[0]).toString();
from = MimeUtility.decodeText(from);
System.out.print(i+" ");
if (!messages[i].getFlags().contains(Flags.Flag.SEEN)){
list.add(messages[i]);
System.out.println((i + 1) + " 读写标识:" + messages[i].getFlags().contains(Flags.Flag.SEEN)
+ " 时间:" + DateUtil.format(messages[i].getSentDate(), "yyyy-MM-dd HH:mm:ss")
+ " 发件人:" + from + " 主题:" + subject);
}
}
folder.close();
return list;
}
public static Folder getFolder()throws Exception{
Store store = getConnectIMAP();
Folder folder = store.getFolder("INBOX");
Folder defaultFolder = store.getDefaultFolder();
Folder[] folders = defaultFolder.list("*");
for (Folder folder1 : folders) {
IMAPFolder imapFolder = (IMAPFolder) folder1;
//javamail中使用id命令校验chekOpened去掉
imapFolder.doCommand(new IMAPFolder.ProtocolCommand() {
@Override
public Object doCommand(IMAPProtocol p) throws ProtocolException {
p.id("FUTONG");
return null;
}
});
}
folder.open(Folder.READ_WRITE);//采用读写模式设置已读未读
return folder;
}
public static Map<String, Object> getMessageCount()throws Exception{
Store store = getConnectIMAP();
Folder folder = store.getFolder("INBOX");
Map<String, Object> map = new HashMap<>();
map.put("totalCount",folder.getMessageCount());
map.put("unreadCount",folder.getUnreadMessageCount());
store.close();
return map;
}
public static Store getConnectIMAP()throws Exception{
Properties prop = new Properties();
prop.setProperty("mail.store.protocol", "imap");
String host = "imap."+hostType+".com";
prop.setProperty("mail.imap.host", host);
prop.setProperty("mail.imap.port", "993");
Session session = Session.getInstance(prop);
Store store = session.getStore("imaps");
store.connect(host, user, userToken);
return store;
}
}

View File

@@ -0,0 +1,429 @@
package com.peanut.common.utils;
import cn.hutool.core.date.DateUtil;
import org.apache.commons.lang.time.DateUtils;
import java.net.URL;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class UserCourseBuyUtil {
//批量开课
public static void main(String[] args) {
userEbookBuy250410();
// userCourseBuy();
// userEbookBuy();
// userCourseBuyShopProductCourse();
// userCourseBuyShopProductCourse22();
// userCourseBuyOnload();
// userCourseBuyOnload2();
// userVipUpdate();
}
public static void userEbookBuy250410() {
try {
Connection yljkConn = DriverManager.getConnection(
"jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?",
"yljkmaster", "Wu751019!@");
Connection fzdsConn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
int k=0;
// 关闭自动提交事务,改为手动提交
fzdsConn.setAutoCommit(false);
long startTime = System.currentTimeMillis();
long startTime1 = System.currentTimeMillis();
PreparedStatement addUserCourseBuyStatement = fzdsConn.prepareStatement(
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,create_time,days,start_time,end_time,come) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
PreparedStatement oldStatement = yljkConn.prepareStatement("select * from t_customer_taihu_class where valid = 1 and status = 10 and createDate > '2024-07-12' and description not like '%VIP%' ");
ResultSet oldResultSet = oldStatement.executeQuery();
int courseId = 0;
int courseCatalogueId = 0;
String catalogueTitle = "";
while(oldResultSet.next()){
k++;
String userOid = oldResultSet.getString("customerOid");
PreparedStatement userStatement = fzdsConn.prepareStatement("select * from user where del_flag = 0 and yljk_oid = '"+userOid+"'");
ResultSet userResultSet = userStatement.executeQuery();
while(userResultSet.next()){
boolean flag = true;
PreparedStatement userVipStatement = fzdsConn.prepareStatement("select * from user_vip where del_flag = 0 and state = 0 and user_id = "+userResultSet.getInt("id"));
ResultSet userVipResultSet = userVipStatement.executeQuery();
while(userVipResultSet.next()){
flag = false;
}
if (flag) {
PreparedStatement cataloguestatement = yljkConn.prepareStatement("" +
"select * from t_curriculum_catalogue where valid = 1 and oid = '"+oldResultSet.getString("taiHuClassOid")+"'");
ResultSet catalogueresultSet = cataloguestatement.executeQuery();
while (catalogueresultSet.next()) {
catalogueTitle = catalogueresultSet.getString("title");
PreparedStatement coursestatement = fzdsConn.prepareStatement("" +
"select * from course where uid = '"+catalogueresultSet.getString("poid")+"'");
ResultSet courseresultSet = coursestatement.executeQuery();
while (courseresultSet.next()) {
courseId = courseresultSet.getInt("id");
}
}
PreparedStatement coursecataloguestatement = fzdsConn.prepareStatement("" +
"select * from course_catalogue where del_flag = 0 and course_id = "+courseId+" and title = '"+catalogueTitle
+"'");
ResultSet coursecatalogueresultSet = coursecataloguestatement.executeQuery();
while (coursecatalogueresultSet.next()) {
courseCatalogueId = coursecatalogueresultSet.getInt("id");
}
addUserCourseBuyStatement.setInt(1,userResultSet.getInt("id"));
addUserCourseBuyStatement.setInt(2,courseId);
addUserCourseBuyStatement.setInt(3,courseCatalogueId);
addUserCourseBuyStatement.setTimestamp(4,oldResultSet.getTimestamp("createDate"));
addUserCourseBuyStatement.setInt(5,oldResultSet.getInt("studyDays")==0?365:oldResultSet.getInt("studyDays"));
addUserCourseBuyStatement.setTimestamp(6,oldResultSet.getTimestamp("startDate"));
if (oldResultSet.getTimestamp("startDate")==null){
addUserCourseBuyStatement.setString(7, null);
}else {
Date endDate = DateUtils.addDays(oldResultSet.getTimestamp("startDate"),oldResultSet.getInt("studyDays"));
addUserCourseBuyStatement.setTimestamp(7,Timestamp.valueOf(DateUtil.format(endDate,"yyyy-MM-dd HH:mm:ss")));
}
addUserCourseBuyStatement.setString(8,"yljk迁移");
addUserCourseBuyStatement.addBatch();
System.out.println(""+ k);
}
}
if (k % 1000 == 0) {
// 每1000条数据提交一次
addUserCourseBuyStatement.executeBatch();
fzdsConn.commit();
long spendTime1 = System.currentTimeMillis()-startTime1;
startTime1 = System.currentTimeMillis();
System.out.println("成功插入第 "+ k+" 条数据,耗时:"+spendTime1/1000+"");
}
}
// 处理剩余的数据
addUserCourseBuyStatement.executeBatch();
fzdsConn.commit();
fzdsConn.setAutoCommit(true);//在把自动提交打开
long spendTime = System.currentTimeMillis()-startTime;
System.out.println("成功插入"+k+"条数据,耗时:"+spendTime/1000+"");
} catch (Exception e) {
System.out.println(e);
}
}
public static void userEbookBuy() {
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("" +
"select bo.user_id from buy_order_product bop " +
"left join buy_order bo on bo.order_id = bop.order_id " +
"where bop.product_id = 1637 and bo.del_flag = 0 and bo.order_status in (1,2,3) group by bo.user_id ");
ResultSet resultSet = statement.executeQuery();
PreparedStatement addUserEbookBuyStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_ebook_buy (user_id,book_id) VALUES (?, ?)");
while(resultSet.next()){
int userId = resultSet.getInt("user_id");
addUserEbookBuyStatement.setInt(1,userId);
addUserEbookBuyStatement.setInt(2,247);
addUserEbookBuyStatement.addBatch();
}
addUserEbookBuyStatement.executeBatch();
} catch (Exception e) {
System.out.println(e);
}
}
public static void userCourseBuy() {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
String str = "18026280912,18923221117,138999715789,13789860595,13958112970,18042322840,18822180212,18801800626,18182488636,13920824009,13810947856,15957915900,15704601021,13537736958,13130437779,18280337034,13608010972,13930682183,13304711384,15332055786,13524355516,13774496157,15389046616,15290224386,18924056976 ,13370556764,18681436632,15201163340,13858961234,15721570509,15972800166,13934534511,13560350715,13335013906,13623631189,15333566532,424023981,0410317573,13631384127,13533531792,15129799293,18035115008,13851639824,15022443770,13869945456,13570817083,6043741898,15999972127";
String[] tels = str.split(",");
for (String tel : tels) {
tel = tel.replace(" ","");
PreparedStatement statement = fzdsconn.prepareStatement("select * from user where tel like '%"+tel+"%' and del_flag=0 ");
ResultSet resultSet = statement.executeQuery();
List<Object> list = new ArrayList<>();
while(resultSet.next()){
list.add(resultSet.getString("id"));
}
if (list.size() == 0){
System.out.println(tel+"-无账号");
}else if (list.size() > 1){
System.out.println(tel+"-多账号");
}else {
PreparedStatement addUserCourseBuyStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,days,come) VALUES (?, ?, ?, ?, ?)");
addUserCourseBuyStatement.setString(1,list.get(0).toString());
addUserCourseBuyStatement.setInt(2,204);
addUserCourseBuyStatement.setInt(3,277);
addUserCourseBuyStatement.setInt(4,180);
addUserCourseBuyStatement.setString(5,"批量赠送");
addUserCourseBuyStatement.execute();
}
}
} catch (Exception e) {
System.out.println(e);
}
}
public static void userCourseBuyShopProductCourse() {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
//1741 中医学课程三年VIP; 1743 中医学课程四年VIP;
//1737 肿瘤学课程三年vip; 1738 肿瘤学课程四年vip;
//1731 针灸学课程三年VIP 1732 针灸学课程四年VIP;
//1739 国学课程三年VIP; 1740 国学课程四年VIP;
//1735 心理学课程三年VIP 1736 心理学课程四年VIP;
// String productIdstr = "1741,1737,1731";
// String productIdstr = "1739,1735";
// String productIdstr = "1743,1738,1732";
// String productIdstr = "1740,1736";
String productIdstr = "1741";
String[] productIds = productIdstr.split(",");
for(String s:productIds){
int productId = Integer.parseInt(s); //商品id
String str = "15963311121";
String come = "开通";
int days = 0;//天数
PreparedStatement spStatement = fzdsconn.prepareStatement("" +
"select * from shop_product where product_id = "+productId+" and del_flag=0 ");
ResultSet spResultSet = spStatement.executeQuery();
while(spResultSet.next()){
come += spResultSet.getString("product_name");
if (come.contains("三年")){
days = 1095;
}else if (come.contains("四年")){
days = 1460;
}else if (come.contains("一年")){
days = 365;
}else {
System.out.println("商品年限有问题");
return;
}
}
if (days == 0) {
System.out.println("商品不存在");
return;
}
String[] tels = str.split(",");
int i=0;
for (String tel : tels) {
tel = tel.replace("\n","");
PreparedStatement addUserCourseBuyStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,days,come) VALUES (?, ?, ?, ?, ?)");
PreparedStatement statement = fzdsconn.prepareStatement("select * from user where tel = '"+tel+"' and del_flag=0 ");
ResultSet resultSet = statement.executeQuery();
List<Object> list = new ArrayList<>();
while(resultSet.next()){
list.add(resultSet.getString("id"));
}
if (list.size() == 0){
System.out.println(tel+"-无账号");
}else if (list.size() > 1){
System.out.println(tel+"-多账号");
}else {
PreparedStatement spcStatement = fzdsconn.prepareStatement("" +
"select * from shop_product_course where product_id = "+productId+" and del_flag=0 ");
ResultSet spcResultSet = spcStatement.executeQuery();
while(spcResultSet.next()){
PreparedStatement ucbStatement = fzdsconn.prepareStatement("" +
"select * from user_course_buy where user_id = "+list.get(0).toString()+" " +
"and course_id = "+spcResultSet.getInt("course_id")+" " +
"and catalogue_id = "+spcResultSet.getInt("catalogue_id")+" and del_flag=0 ");
ResultSet ucbResultSet = ucbStatement.executeQuery();
while(ucbResultSet.next()){
PreparedStatement updateStatement = fzdsconn.prepareStatement(
"update user_course_buy set come='"+ucbResultSet.getString("come")+";"+come+"删除',del_flag = -1 " +
"where id = "+ucbResultSet.getInt("id"));
updateStatement.executeUpdate();
}
addUserCourseBuyStatement.setString(1,list.get(0).toString());
addUserCourseBuyStatement.setInt(2,spcResultSet.getInt("course_id"));
addUserCourseBuyStatement.setInt(3,spcResultSet.getInt("catalogue_id"));
addUserCourseBuyStatement.setInt(4,days);
addUserCourseBuyStatement.setString(5,come);
addUserCourseBuyStatement.addBatch();
}
i++;
System.out.println(productId+"-"+i+"-"+tel+"-已完成");
}
addUserCourseBuyStatement.executeBatch();
}
}
fzdsconn.close();
} catch (Exception e) {
System.out.println(e);
}
System.out.println("完成!");
}
public static void userCourseBuyShopProductCourse22() {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCourseBuyStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
PreparedStatement statement = fzdsconn.prepareStatement("select bo.create_time,bo.user_id,bop.product_id,sp.product_name from buy_order_product bop " +
"left join shop_product sp on sp.product_id = bop.product_id " +
"left join buy_order bo on bo.order_id = bop.order_id " +
"where bop.product_id in (1743,1740,1738,1736,1732) " +//,1743,1740,1738,1736,1732
"and bo.order_status = 3 " +
"order by product_name,user_id ");
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
Date date = resultSet.getTimestamp("create_time");
Timestamp timestamp1 = new Timestamp(date.getTime());
Timestamp timestamp2 = new Timestamp(DateUtils.addYears(date,4).getTime());
addUserCourseBuyStatement.setInt(1,resultSet.getInt("user_id"));
if (resultSet.getInt("product_id")==1743){
addUserCourseBuyStatement.setInt(2,4);
}else if (resultSet.getInt("product_id")==1740){
addUserCourseBuyStatement.setInt(2,7);
}else if (resultSet.getInt("product_id")==1738){
addUserCourseBuyStatement.setInt(2,6);
}else if (resultSet.getInt("product_id")==1736){
addUserCourseBuyStatement.setInt(2,8);
}else if (resultSet.getInt("product_id")==1732){
addUserCourseBuyStatement.setInt(2,5);
}
addUserCourseBuyStatement.setTimestamp(3,timestamp1);
addUserCourseBuyStatement.setTimestamp(4,timestamp2);
addUserCourseBuyStatement.setInt(5,0);
addUserCourseBuyStatement.addBatch();
System.out.println(resultSet.getInt("user_id")+"-已完成");
}
addUserCourseBuyStatement.executeBatch();
System.out.println("-已完成");
fzdsconn.close();
}catch (SQLException e) {
}
}
public static void userCourseBuyOnload() {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCourseBuyStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
PreparedStatement ucbStatement = fzdsconn.prepareStatement("" +
"select * from user_vip where type = 4 and state = 0 and del_flag = 0 ");
ResultSet ucbResultSet = ucbStatement.executeQuery();
int i=0;
while(ucbResultSet.next()){
i++;
addUserCourseBuyStatement.setInt(1,ucbResultSet.getInt("user_id"));
addUserCourseBuyStatement.setInt(2,9);
addUserCourseBuyStatement.setTimestamp(3,ucbResultSet.getTimestamp("start_time"));
addUserCourseBuyStatement.setTimestamp(4,ucbResultSet.getTimestamp("end_time"));
addUserCourseBuyStatement.setInt(5,0);
addUserCourseBuyStatement.addBatch();
System.out.println(ucbResultSet.getString("user_id")+"-已完成");
}
addUserCourseBuyStatement.executeBatch();
fzdsconn.close();
}catch (SQLException e) {
}
}
public static void userCourseBuyOnload2() {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement addUserCourseBuyStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,create_time,days,come,start_time,end_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
PreparedStatement ucbStatement = fzdsconn.prepareStatement("" +
"select * from user_course_buy where catalogue_id = 286 and del_flag = 0 ");
ResultSet ucbResultSet = ucbStatement.executeQuery();
int i=0;
while(ucbResultSet.next()){
i++;
addUserCourseBuyStatement.setInt(1,ucbResultSet.getInt("user_id"));
addUserCourseBuyStatement.setInt(2,214);
addUserCourseBuyStatement.setInt(3,293);
addUserCourseBuyStatement.setTimestamp(4,ucbResultSet.getTimestamp("create_time"));
addUserCourseBuyStatement.setInt(5,ucbResultSet.getInt("days"));
addUserCourseBuyStatement.setString(6,ucbResultSet.getString("come"));
addUserCourseBuyStatement.setTimestamp(7,ucbResultSet.getTimestamp("start_time"));
addUserCourseBuyStatement.setTimestamp(8,ucbResultSet.getTimestamp("end_time"));
addUserCourseBuyStatement.addBatch();
System.out.println(ucbResultSet.getString("user_id")+"-已完成");
}
addUserCourseBuyStatement.executeBatch();
fzdsconn.close();
}catch (SQLException e) {
}
}
public static void userVipUpdate() {
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
int x=0;
PreparedStatement addUserVipStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_vip (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)");
PreparedStatement uvStatement = fzdsconn.prepareStatement("" +
"select * from user_vip where type in (1,2,3) and del_flag=0 ");
ResultSet uvResultSet = uvStatement.executeQuery();
while(uvResultSet.next()){
x++;
if (uvResultSet.getInt("type")==1){
for (int i = 4; i < 9;i++) {
addUserVipStatement.setInt(1,uvResultSet.getInt("user_id"));
addUserVipStatement.setInt(2,i);
addUserVipStatement.setTimestamp(3,uvResultSet.getTimestamp("start_time"));
addUserVipStatement.setTimestamp(4,uvResultSet.getTimestamp("end_time"));
addUserVipStatement.setInt(5,uvResultSet.getInt("state"));
addUserVipStatement.addBatch();
}
}else if (uvResultSet.getInt("type")==2){
for (int i = 4; i < 7;i++) {
addUserVipStatement.setInt(1,uvResultSet.getInt("user_id"));
addUserVipStatement.setInt(2,i);
addUserVipStatement.setTimestamp(3,uvResultSet.getTimestamp("start_time"));
addUserVipStatement.setTimestamp(4,uvResultSet.getTimestamp("end_time"));
addUserVipStatement.setInt(5,uvResultSet.getInt("state"));
addUserVipStatement.addBatch();
}
}else if (uvResultSet.getInt("type")==3){
addUserVipStatement.setInt(1,uvResultSet.getInt("user_id"));
addUserVipStatement.setInt(2,7);
addUserVipStatement.setTimestamp(3,uvResultSet.getTimestamp("start_time"));
addUserVipStatement.setTimestamp(4,uvResultSet.getTimestamp("end_time"));
addUserVipStatement.setInt(5,uvResultSet.getInt("state"));
addUserVipStatement.addBatch();
}
PreparedStatement updateStatement = fzdsconn.prepareStatement(
"update user_vip set state = 1, del_flag = -1 " +
"where id = "+uvResultSet.getInt("id"));
updateStatement.executeUpdate();
System.out.println(x+"-已完成");
}
addUserVipStatement.executeBatch();
fzdsconn.close();
}catch (SQLException e) {
}
}
}

View File

@@ -0,0 +1,70 @@
package com.peanut.common.utils;
import ws.schild.jave.MultimediaObject;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class VideoUtil {
/**
*
import ws.schild.jave.MultimediaObject;
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-all-deps</artifactId>
<version>2.5.1</version>
</dependency>
*/
//获取视频时长
public static void main(String[] args) {
// setVideo();
}
public static void setVideo() {
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("select * from course_catalogue_chapter_video " +
"where video like '%m4a%' and del_flag = 0 and duration = 0 ");
ResultSet resultSet = statement.executeQuery();
String res = "";
while(resultSet.next()){
String video = resultSet.getString("video");
String s_str = "";
if (video.startsWith("article/")) {
s_str = "http://oss.taihumed.com/voice/article/";
} else {
s_str = "http://oss.taihumed.com/voice/taiHuClass/";
}
res = s_str + video;
URL url = new URL(res);
try {
MultimediaObject multimediaObject = new MultimediaObject(url);
long duration = (multimediaObject.getInfo().getDuration())/1000;
System.out.println(duration);
String sql = "update course_catalogue_chapter_video set duration = "+duration
+" where id = "+resultSet.getInt("id");
PreparedStatement updateStatement = fzdsconn.prepareStatement(sql);
updateStatement.execute();
}catch (Exception e) {
//有些文件找不到直接跳过
}
}
System.out.println("11111111111111");
System.out.println("11111111111111");
} catch (Exception e) {
System.out.println(e);
}
}
}

View File

@@ -0,0 +1,69 @@
package com.peanut.common.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.poi.xwpf.usermodel.*;
import org.joda.time.DateTime;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Base64;
import java.util.List;
import java.util.UUID;
public class WordUtil {
public static void main(String[] args) {
ssss();
}
public static void ssss(){
try {
FileInputStream fis = new FileInputStream("F:\\aaaclass\\test.docx");
XWPFDocument document = new XWPFDocument(fis);
// 遍历文档中的所有元素(段落和表格)
List<IBodyElement> bodyElements = document.getBodyElements();
for (IBodyElement element : bodyElements) {
if (element instanceof XWPFParagraph) {
XWPFParagraph paragraph = (XWPFParagraph) element;
String text = paragraph.getText();
if (text != null && !text.isEmpty()) {
//处理段落或正文
// if (paragraph.getRuns().get(0).getFontSize()>=22){
// System.out.println(paragraph.getRuns().get(0).getFontSize()+"---"+text);
// }else if (paragraph.getRuns().get(0).getFontSize()>=16){
// System.out.println(paragraph.getRuns().get(0).getFontSize()+"---"+text);
// }
// System.out.println(text);
} else {
// 顺序遍历图片
paragraph.getIRuns().forEach(run -> {
if (run instanceof XWPFRun) {
XWPFRun xWPFRun = (XWPFRun) run;
for (XWPFPicture picture : xWPFRun.getEmbeddedPictures()) {
XWPFPictureData pictureData = picture.getPictureData();
// 获取图片的尺寸信息
try {
BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(pictureData.getData()));
// 宽度
int width = bufferedImage.getWidth();
// 高度
int height = bufferedImage.getHeight();
System.out.println(width+"-"+height);
}catch (IOException e) {
}
}
}
});
}
}
}
}catch (Exception e) {
}
}
}