From 596922cf83ffd11213b755fa09c91fc747806927 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 2 Jul 2025 14:28:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E6=89=A7=E8=A1=8C=E5=B7=A5?= =?UTF-8?q?=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../peanut/common/utils/AAAOptMp3Util.java | 193 +++++++ .../common/utils/CourseChapterUtil.java | 112 ++++ .../com/peanut/common/utils/DataTest.java | 371 ++++++++++++++ .../com/peanut/common/utils/DataUtil.java | 303 +++++++++++ .../com/peanut/common/utils/MigrateUtil.java | 479 ++++++++++++++++++ .../com/peanut/common/utils/TestMailUtil.java | 185 +++++++ .../common/utils/UserCourseBuyUtil.java | 429 ++++++++++++++++ .../com/peanut/common/utils/VideoUtil.java | 70 +++ .../com/peanut/common/utils/WordUtil.java | 69 +++ 9 files changed, 2211 insertions(+) create mode 100644 src/main/java/com/peanut/common/utils/AAAOptMp3Util.java create mode 100644 src/main/java/com/peanut/common/utils/CourseChapterUtil.java create mode 100644 src/main/java/com/peanut/common/utils/DataTest.java create mode 100644 src/main/java/com/peanut/common/utils/DataUtil.java create mode 100644 src/main/java/com/peanut/common/utils/MigrateUtil.java create mode 100644 src/main/java/com/peanut/common/utils/TestMailUtil.java create mode 100644 src/main/java/com/peanut/common/utils/UserCourseBuyUtil.java create mode 100644 src/main/java/com/peanut/common/utils/VideoUtil.java create mode 100644 src/main/java/com/peanut/common/utils/WordUtil.java diff --git a/src/main/java/com/peanut/common/utils/AAAOptMp3Util.java b/src/main/java/com/peanut/common/utils/AAAOptMp3Util.java new file mode 100644 index 00000000..f63854ff --- /dev/null +++ b/src/main/java/com/peanut/common/utils/AAAOptMp3Util.java @@ -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> list = new ArrayList<>(); + int x = 0; + while (titleResultSet.next()) { + x++; + Map 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> 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 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 allMap:list){ + String mkdir = allMap.get("mkdir").toString(); + String ttfoid = allMap.get("ttfoid").toString(); + List> chatList = (List>)allMap.get("chatList"); + service.execute(new Runnable() { + @Override + public void run(){ + int i=0; + for (Map 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(); + } + } + + + +} diff --git a/src/main/java/com/peanut/common/utils/CourseChapterUtil.java b/src/main/java/com/peanut/common/utils/CourseChapterUtil.java new file mode 100644 index 00000000..f1d7a0dd --- /dev/null +++ b/src/main/java/com/peanut/common/utils/CourseChapterUtil.java @@ -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("


")){ + question = question.substring(0,question.indexOf("


")); + } + PreparedStatement updateStatement = ebook.prepareStatement( + "update course_catalogue_chapter " + + "set questions = '

"+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()); + } + } + +} diff --git a/src/main/java/com/peanut/common/utils/DataTest.java b/src/main/java/com/peanut/common/utils/DataTest.java new file mode 100644 index 00000000..8ed68ef9 --- /dev/null +++ b/src/main/java/com/peanut/common/utils/DataTest.java @@ -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")+"" + + "

' " + + "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;i0 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()); + } + } + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/peanut/common/utils/MigrateUtil.java b/src/main/java/com/peanut/common/utils/MigrateUtil.java new file mode 100644 index 00000000..8a08fba7 --- /dev/null +++ b/src/main/java/com/peanut/common/utils/MigrateUtil.java @@ -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 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 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; + } + } + +} diff --git a/src/main/java/com/peanut/common/utils/TestMailUtil.java b/src/main/java/com/peanut/common/utils/TestMailUtil.java new file mode 100644 index 00000000..a0cfadb5 --- /dev/null +++ b/src/main/java/com/peanut/common/utils/TestMailUtil.java @@ -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 getMessageList() throws Exception{ + Folder folder = getFolder(); + FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); // false代表未读,true代表已读 + Message[] messages = folder.search(ft); + List list = new ArrayList(); + 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 getMessageCount()throws Exception{ + Store store = getConnectIMAP(); + Folder folder = store.getFolder("INBOX"); + Map 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; + } + + +} diff --git a/src/main/java/com/peanut/common/utils/UserCourseBuyUtil.java b/src/main/java/com/peanut/common/utils/UserCourseBuyUtil.java new file mode 100644 index 00000000..f7c508ef --- /dev/null +++ b/src/main/java/com/peanut/common/utils/UserCourseBuyUtil.java @@ -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 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 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) { + + } + } + +} diff --git a/src/main/java/com/peanut/common/utils/VideoUtil.java b/src/main/java/com/peanut/common/utils/VideoUtil.java new file mode 100644 index 00000000..fe86b41d --- /dev/null +++ b/src/main/java/com/peanut/common/utils/VideoUtil.java @@ -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; + + + ws.schild + jave-all-deps + 2.5.1 + + + */ + + //获取视频时长 + 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); + } + + } + + +} diff --git a/src/main/java/com/peanut/common/utils/WordUtil.java b/src/main/java/com/peanut/common/utils/WordUtil.java new file mode 100644 index 00000000..28fab0a3 --- /dev/null +++ b/src/main/java/com/peanut/common/utils/WordUtil.java @@ -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 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) { + + } + } + +}