From a2e92098f246a1ed97f55cd8930dbcb788427dc1 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Sat, 11 May 2024 15:50:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=A8=E6=88=B7=E3=80=81=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/utils/DataMigrationUtil.java | 77 +++++++++++-------- 1 file changed, 45 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/peanut/common/utils/DataMigrationUtil.java b/src/main/java/com/peanut/common/utils/DataMigrationUtil.java index 02136866..186a7f45 100644 --- a/src/main/java/com/peanut/common/utils/DataMigrationUtil.java +++ b/src/main/java/com/peanut/common/utils/DataMigrationUtil.java @@ -14,15 +14,17 @@ public class DataMigrationUtil extends Thread { Map map; int i; + Connection fzdsconn; - public DataMigrationUtil(Map map,int i){ + public DataMigrationUtil(Map map,int i,Connection fzdsconn){ this.map = map; this.i = i; + this.fzdsconn = fzdsconn; } public static void main(String[] args){ - catalogue(); +// catalogue(); // courseCatalogue(); // courseCatalogueChapter(); // courseCatalogueChapterVideo(); @@ -36,7 +38,7 @@ public class DataMigrationUtil extends Thread { Connection yljkconn = DriverManager.getConnection( "jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?", "yljkmaster", "Wu751019!@"); - PreparedStatement statement = yljkconn.prepareStatement("select * from t_curriculum_catalogue where valid = 1 and poid in (select oid from t_curriculum_catalogue where valid = 1 and poid is null) and courseFee like '%,%' "); + PreparedStatement statement = yljkconn.prepareStatement("select * from t_curriculum_catalogue where valid = 1 and poid in (select oid from t_curriculum_catalogue where valid = 1 and poid is null) and (courseFee like '%,%' or courseFee = '0' or poid = '00000000000000000000000000000070' )"); ResultSet resultSet = statement.executeQuery(); List list = new ArrayList(); while(resultSet.next()){ @@ -117,33 +119,43 @@ public class DataMigrationUtil extends Thread { System.out.println("===== 开始插入数据 ====="); int res = 0; PreparedStatement preparedStatement = connection.prepareStatement( - "INSERT ignore INTO course_catalogue (course_id,title,half_fee,fee,create_time) VALUES (?,?,?,?,?)"); + "INSERT ignore INTO course_catalogue (type,course_id,title,half_fee,fee,create_time) VALUES (?,?,?,?,?,?)"); for (int q=1;q<=fzdslist.size(); q++){ - String selectSql = "select * from t_curriculum_catalogue where valid = 1 and poid = '"+fzdslist.get(q-1).get("uid")+"'"; + String selectSql = "select ccp.poid ppoid,cc.* from t_curriculum_catalogue cc left join t_curriculum_catalogue ccp on cc.poid = ccp.oid where ccp.valid = 1 and cc.valid = 1 and cc.poid = '"+fzdslist.get(q-1).get("uid")+"'"; PreparedStatement statement = yljkconn.prepareStatement(selectSql); ResultSet resultSet = statement.executeQuery(); Map map = new HashMap(); while(resultSet.next()){ - map.put("title",resultSet.getString("title")); - map.put("halfFee",resultSet.getString("courseFee").split(",")[0]); - map.put("fee",resultSet.getString("courseFee").split(",")[1]); - map.put("createDate",resultSet.getString("createDate")); - if (map.size() > 0){ - preparedStatement.setString(1,fzdslist.get(q-1).get("id").toString()); - preparedStatement.setString(2,map.get("title").toString()); - preparedStatement.setString(3,map.get("halfFee").toString()); - preparedStatement.setString(4,map.get("fee").toString()); - preparedStatement.setString(5,map.get("createDate").toString()); - // 添加到批处理中 - preparedStatement.addBatch(); - res++; - if (res % 5000 == 0) { - long startTime1 = System.currentTimeMillis(); - preparedStatement.executeBatch(); - connection.commit(); - long spendTime1 = System.currentTimeMillis()-startTime1; - System.out.println("成功插入第"+ res +" 条数据,耗时:"+spendTime1+"毫秒"); - } + String halfFee = ""; + String fee = ""; + if (resultSet.getString("courseFee")!=null&&resultSet.getString("courseFee").contains(",")){ + halfFee = resultSet.getString("courseFee").split(",")[0]; + fee = resultSet.getString("courseFee").split(",")[1]; + }else if (resultSet.getString("courseFee")!=null&&"0".equals(resultSet.getString("courseFee"))){ + halfFee = "0"; + fee = "0"; + } + if ("0".equals(resultSet.getString("courseFee"))){ + preparedStatement.setInt(1,0); + }else if ("00000000000000000000000000000070".equals(resultSet.getString("ppoid"))){ + preparedStatement.setInt(1,2); + }else { + preparedStatement.setInt(1,1); + } + preparedStatement.setString(2,fzdslist.get(q-1).get("id").toString()); + preparedStatement.setString(3,resultSet.getString("title")); + preparedStatement.setString(4,halfFee); + preparedStatement.setString(5,fee); + preparedStatement.setString(6,resultSet.getString("createDate")); + // 添加到批处理中 + preparedStatement.addBatch(); + res++; + if (res % 5000 == 0) { + long startTime1 = System.currentTimeMillis(); + preparedStatement.executeBatch(); + connection.commit(); + long spendTime1 = System.currentTimeMillis()-startTime1; + System.out.println("成功插入第"+ res +" 条数据,耗时:"+spendTime1+"毫秒"); } } resultSet.close(); @@ -315,6 +327,7 @@ public class DataMigrationUtil extends Thread { public static void user(){ try { + long startTime = System.currentTimeMillis(); Connection yljkconn = DriverManager.getConnection( "jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth?", "yljkmaster", "Wu751019!@"); @@ -339,12 +352,16 @@ public class DataMigrationUtil extends Thread { resultSet.close(); statement.close(); yljkconn.close(); + Connection fzdsconn = DriverManager.getConnection( + "jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true", + "nuttyreading", "Wu751019!"); // 1、创建服务,创建线程池 ExecutorService service = Executors.newFixedThreadPool(50); - for (int i=1;i<=list.size(); i++){ - DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i); + for (int i=0;i Date: Mon, 13 May 2024 13:25:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=A7=AF=E5=88=86=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/utils/DataMigrationUtil.java | 41 +++++++++++----- .../controller/UserAddressController.java | 2 +- .../common/dao/JfTransactionDetailsDao.java | 9 ++++ .../common/entity/JfTransactionDetails.java | 48 +++++++++++++++++++ .../service/JfTransactionDetailsService.java | 9 ++++ .../impl/JfTransactionDetailsServiceImpl.java | 11 +++++ 6 files changed, 106 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/peanut/modules/common/dao/JfTransactionDetailsDao.java create mode 100644 src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java create mode 100644 src/main/java/com/peanut/modules/common/service/JfTransactionDetailsService.java create mode 100644 src/main/java/com/peanut/modules/common/service/impl/JfTransactionDetailsServiceImpl.java diff --git a/src/main/java/com/peanut/common/utils/DataMigrationUtil.java b/src/main/java/com/peanut/common/utils/DataMigrationUtil.java index 186a7f45..11fe08fb 100644 --- a/src/main/java/com/peanut/common/utils/DataMigrationUtil.java +++ b/src/main/java/com/peanut/common/utils/DataMigrationUtil.java @@ -28,7 +28,7 @@ public class DataMigrationUtil extends Thread { // courseCatalogue(); // courseCatalogueChapter(); // courseCatalogueChapterVideo(); -// user();//用的都是copy表里的数据 + user();//用的都是copy表里的数据 } @@ -361,7 +361,7 @@ public class DataMigrationUtil extends Thread { DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i+1,fzdsconn); service.execute(d1); } - System.out.println("---已插入数据"); + System.out.println("---开始"); } catch (SQLException e) { System.out.println("Error: " + e.getMessage()); } @@ -374,9 +374,12 @@ public class DataMigrationUtil extends Thread { System.out.println("---已插入数据"+i+"--"+ DateUtil.format(new Date(),"YYYY-MM-dd HH:mm:ss")); } String userId = ""; - BigDecimal userBalance = new BigDecimal(0); + BigDecimal userBalanceCoin = new BigDecimal(0); + BigDecimal userBalanceJf = new BigDecimal(0); PreparedStatement oidStatements = fzdsconn.prepareStatement("select * from user_copy1 where del_flag = 0 and yljk_oid = '"+map.get("oid")+"' "); ResultSet oidResultSet = oidStatements.executeQuery(); + userBalanceCoin = oidResultSet.getBigDecimal("peanut_coin").add(new BigDecimal(map.get("point").toString())); + userBalanceJf = oidResultSet.getBigDecimal("jf").add(new BigDecimal(map.get("pointByJF").toString())); //已绑定过id if (oidResultSet.next()){ String sql = "update user_copy1 set " + @@ -385,7 +388,6 @@ public class DataMigrationUtil extends Thread { "vip= "+map.get("payStatus")+" ,peanut_coin = peanut_coin + "+map.get("point")+" , jf = jf + "+map.get("pointByJF")+" where id = "+oidResultSet.getString("id")+""; PreparedStatement oidUpdateStatement = fzdsconn.prepareStatement(sql); userId = oidResultSet.getString("id"); - userBalance = oidResultSet.getBigDecimal("peanut_coin").add(new BigDecimal(map.get("point").toString())); oidUpdateStatement.execute(); oidUpdateStatement.close(); }else { @@ -401,7 +403,6 @@ public class DataMigrationUtil extends Thread { "vip= "+map.get("payStatus")+" ,peanut_coin = peanut_coin + "+map.get("point")+" , jf = jf + "+map.get("pointByJF")+" where tel = '"+map.get("cellPhone")+"'"; PreparedStatement telUpdateStatement = fzdsconn.prepareStatement(sql); userId = telResultSet.getString("id"); - userBalance = oidResultSet.getBigDecimal("peanut_coin").add(new BigDecimal(map.get("point").toString())); telUpdateStatement.execute(); telUpdateStatement.close(); } @@ -425,13 +426,14 @@ public class DataMigrationUtil extends Thread { userId = id.toString(); } telInsertStatement.close(); - userBalance = new BigDecimal(map.get("point").toString()); + userBalanceCoin = new BigDecimal(map.get("point").toString()); + userBalanceJf = new BigDecimal(map.get("pointByJF").toString()); } } //添加超v - PreparedStatement userVipStatement = fzdsconn.prepareStatement( - "INSERT ignore INTO user_vip_copy1 (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)"); if (map.get("paydate")!=null&&map.get("payValidDate")!=null){ + PreparedStatement userVipStatement = fzdsconn.prepareStatement( + "INSERT ignore INTO user_vip_copy1 (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?)"); userVipStatement.setString(1,userId); userVipStatement.setString(2,map.get("payStatus").toString()); userVipStatement.setString(3,map.get("paydate").toString()); @@ -444,21 +446,34 @@ public class DataMigrationUtil extends Thread { userVipStatement.execute(); userVipStatement.close(); } - //添加灵兰币记录 - PreparedStatement transactionDetailStatement = fzdsconn.prepareStatement( - "INSERT ignore INTO transaction_details_copy1 (user_id,order_type,change_amount,remark,user_balance," + - "user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?)"); if (map.get("point")!=null&&!"0".equals(map.get("point").toString())){ + //添加虚拟币记录 + PreparedStatement transactionDetailStatement = fzdsconn.prepareStatement( + "INSERT ignore INTO transaction_details_copy1 (user_id,order_type,change_amount,remark,user_balance," + + "user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?)"); transactionDetailStatement.setString(1,userId); transactionDetailStatement.setString(2,"系统合并结算"); transactionDetailStatement.setString(3,map.get("point").toString()); transactionDetailStatement.setString(4,"合并"); - transactionDetailStatement.setBigDecimal(5,userBalance); + transactionDetailStatement.setBigDecimal(5,userBalanceCoin); transactionDetailStatement.setString(6,map.get("nameCN")==null?"":map.get("nameCN").toString()); transactionDetailStatement.setString(7,map.get("cellPhone").toString()); transactionDetailStatement.execute(); transactionDetailStatement.close(); } + if (map.get("pointByJF")!=null&&!"0".equals(map.get("pointByJF").toString())){ + //添加积分记录 + PreparedStatement jfTransactionDetailStatement = fzdsconn.prepareStatement( + "INSERT ignore INTO jf_transaction_details_copy1 (user_id,act_type,change_amount,user_balance,remark) " + + "VALUES (?, ?, ?, ?, ?)"); + jfTransactionDetailStatement.setString(1,userId); + jfTransactionDetailStatement.setString(2,"0"); + jfTransactionDetailStatement.setString(3,map.get("pointByJF").toString()); + jfTransactionDetailStatement.setBigDecimal(4,userBalanceJf); + jfTransactionDetailStatement.setString(5,"系统合并结算"); + jfTransactionDetailStatement.execute(); + jfTransactionDetailStatement.close(); + } }catch (Exception ee){ } diff --git a/src/main/java/com/peanut/modules/common/controller/UserAddressController.java b/src/main/java/com/peanut/modules/common/controller/UserAddressController.java index 93bc976e..71609c04 100644 --- a/src/main/java/com/peanut/modules/common/controller/UserAddressController.java +++ b/src/main/java/com/peanut/modules/common/controller/UserAddressController.java @@ -78,7 +78,7 @@ public class UserAddressController { /** * 删除用户地址 */ - @RequestMapping(value = "/delete", method = RequestMethod.GET) + @RequestMapping(value = "/delete") public R delete(@RequestParam("id") Integer id) { userAddressService.removeById(id); return R.ok(); diff --git a/src/main/java/com/peanut/modules/common/dao/JfTransactionDetailsDao.java b/src/main/java/com/peanut/modules/common/dao/JfTransactionDetailsDao.java new file mode 100644 index 00000000..ce0fea9f --- /dev/null +++ b/src/main/java/com/peanut/modules/common/dao/JfTransactionDetailsDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.common.entity.JfTransactionDetails; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface JfTransactionDetailsDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java b/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java new file mode 100644 index 00000000..2c70b820 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java @@ -0,0 +1,48 @@ +package com.peanut.modules.common.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("jf_transaction_details") +public class JfTransactionDetails implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId + private Integer id; + /** + * 用户id + */ + private Integer userId; + /** + * 0增加1减少 + */ + private String actType; + /** + * 变动金额 + */ + private BigDecimal changeAmount; + /** + * 余额 + */ + private BigDecimal userBalance; + /** + * 关联id + */ + private Integer relationId; + /** + * 备注 + */ + private String remark; + + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + @TableLogic + private Integer delFlag; + +} diff --git a/src/main/java/com/peanut/modules/common/service/JfTransactionDetailsService.java b/src/main/java/com/peanut/modules/common/service/JfTransactionDetailsService.java new file mode 100644 index 00000000..0d1593de --- /dev/null +++ b/src/main/java/com/peanut/modules/common/service/JfTransactionDetailsService.java @@ -0,0 +1,9 @@ +package com.peanut.modules.common.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.common.entity.JfTransactionDetails; +import org.springframework.stereotype.Service; + +@Service +public interface JfTransactionDetailsService extends IService { +} diff --git a/src/main/java/com/peanut/modules/common/service/impl/JfTransactionDetailsServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/JfTransactionDetailsServiceImpl.java new file mode 100644 index 00000000..7eeeddda --- /dev/null +++ b/src/main/java/com/peanut/modules/common/service/impl/JfTransactionDetailsServiceImpl.java @@ -0,0 +1,11 @@ +package com.peanut.modules.common.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.common.dao.JfTransactionDetailsDao; +import com.peanut.modules.common.entity.JfTransactionDetails; +import com.peanut.modules.common.service.JfTransactionDetailsService; +import org.springframework.stereotype.Service; + +@Service("commonJfTransactionDetailsService") +public class JfTransactionDetailsServiceImpl extends ServiceImpl implements JfTransactionDetailsService { +}