Browse Source

8.26同步数据库

lijianlin/feature-20250728171217-三期金豆消费相关
huangqizhen 1 month ago
parent
commit
4281b56160
  1. 39
      src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java
  2. 3
      src/main/java/com/example/demo/mapper/coin/GeneralMapper.java
  3. 4
      src/main/java/com/example/demo/service/coin/GeneralService.java
  4. 5
      src/main/java/com/example/demo/serviceImpl/coin/GeneralServiceImpl.java
  5. 8
      src/main/resources/application.yml
  6. 5
      src/main/resources/mapper/GeneralMapper.xml

39
src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java

@ -77,24 +77,27 @@ public class MysqlServiceImpl implements MysqlService {
// 查询 SQL Server 数据的 SQL 语句
String querySql = """
SELECT gtype, jwcode, free, core_jb, buy_jb, cz_time, cz_user, cz_bz, operation_platform, goods_name
FROM hwhcGold.dbo.user_gold_records
WHERE flag = 1 AND cz_time > '2025-08-24 17:57:50'
ORDER BY cz_time ASC
OFFSET ? ROWS FETCH NEXT ? ROWS ONLY
SELECT
id, gtype, jwcode, free, core_jb, buy_jb, cz_time, cz_user, cz_bz, operation_platform, goods_name\s
FROM
hwhcGold.dbo.user_gold_records
WHERE cz_time>?
ORDER BY
cz_time ASC
OFFSET ? ROWS FETCH NEXT ? ROWS ONLY;
""";
// 插入 MySQL 数据的 SQL 语句
String insertSql = "INSERT INTO user_gold_record_sun (order_code, jwcode, sum_gold, permanent_gold, free_june, free_december, " +
String insertSql = "INSERT IGNORE INTO user_gold_record (order_code, jwcode, sum_gold, permanent_gold, free_june, free_december, " +
"task_gold, pay_platform, goods_name, refund_type, refund_model, remark, type, admin_id, " +
"audit_status, create_time, flag, update_time, audit_time, is_refund) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
"audit_status, create_time, flag, update_time, audit_time, is_refund,uid) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
while (hasMoreData) {
try (PreparedStatement sqlServerStmt = sqlServerConn.prepareStatement(querySql)) {
// sqlServerStmt.setTimestamp(1, Timestamp.valueOf(LocalDateTime.now().minusHours(1))); // 获取最近一小时的数据
sqlServerStmt.setInt(1, offset); // 设置 OFFSET
sqlServerStmt.setInt(2, pageSize); // 设置 FETCH NEXT
sqlServerStmt.setTimestamp(1, Timestamp.valueOf(LocalDateTime.now().minusHours(1))); // 获取最近一小时的数据
sqlServerStmt.setInt(2, offset); // 设置 OFFSET
sqlServerStmt.setInt(3, pageSize); // 设置 FETCH NEXT
ResultSet resultSet = sqlServerStmt.executeQuery();
@ -118,6 +121,7 @@ public class MysqlServiceImpl implements MysqlService {
String remark = resultSet.getString("cz_bz");
String operation_platform = resultSet.getString("operation_platform");
String goods_name = resultSet.getString("goods_name");
String uid = resultSet.getString("id");
String timestampPart = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
String orderNumber = UUID.randomUUID().toString().replaceAll("-", "");
@ -173,15 +177,15 @@ public class MysqlServiceImpl implements MysqlService {
mysqlStmt.setInt(5, free);
}
mysqlStmt.setInt(7, core_jb);
if (operation_platform.equals("1")) {
if ("1".equals(operation_platform)) {
mysqlStmt.setString(8, "ERP");
} else if (operation_platform.equals("2")) {
} else if ("2".equals(operation_platform)) {
mysqlStmt.setString(8, "HomilyLink");
} else if (operation_platform.equals("3")) {
} else if ("3".equals(operation_platform)) {
mysqlStmt.setString(8, "HomilyChart");
} else if (operation_platform.equals("4")) {
} else if ("4".equals(operation_platform)) {
continue;
} else if (operation_platform.equals("0")) {
} else if ("0".equals(operation_platform)) {
mysqlStmt.setString(8, "初始化金币");
} else {
mysqlStmt.setString(8, "其他");
@ -190,13 +194,14 @@ public class MysqlServiceImpl implements MysqlService {
mysqlStmt.setString(12, remark);
mysqlStmt.setInt(15, 3);
mysqlStmt.setTimestamp(16, created_at);
if (remark.contains("测试") && remark.contains("员工")) {
if (remark != null && remark.contains("测试") && remark.contains("员工")) {
mysqlStmt.setInt(17, 0);
} else {
mysqlStmt.setInt(17, 1);
}
mysqlStmt.setTimestamp(18, created_at);
mysqlStmt.setTimestamp(19, created_at);
mysqlStmt.setString(21, uid);
mysqlStmt.addBatch();

3
src/main/java/com/example/demo/mapper/coin/GeneralMapper.java

@ -1,5 +1,6 @@
package com.example.demo.mapper.coin;
import com.example.demo.domain.entity.Rate;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -29,5 +30,5 @@ public interface GeneralMapper {
List<String> getAllRoleMarket();
List<String> getRate();
List<Rate> getRate();
}

4
src/main/java/com/example/demo/service/coin/GeneralService.java

@ -1,5 +1,7 @@
package com.example.demo.service.coin;
import com.example.demo.domain.entity.Rate;
import java.util.Date;
import java.util.List;
@ -40,5 +42,5 @@ public interface GeneralService {
//获取所有市场地区
List<String> getAllRoleMarket();
//获取汇率
List<String> getRate();
List<Rate> getRate();
}

5
src/main/java/com/example/demo/serviceImpl/coin/GeneralServiceImpl.java

@ -1,5 +1,6 @@
package com.example.demo.serviceImpl.coin;
import com.example.demo.domain.entity.Rate;
import com.example.demo.mapper.coin.GeneralMapper;
import com.example.demo.service.coin.GeneralService;
import org.slf4j.Logger;
@ -200,8 +201,8 @@ public class GeneralServiceImpl implements GeneralService {
}
@Override
public List<String> getRate() {
List<String> list = generalMapper.getRate();
public List<Rate> getRate() {
List<Rate> list = generalMapper.getRate();
return list;
}
}

8
src/main/resources/application.yml

@ -5,14 +5,6 @@ spring:
deserialization:
fail-on-unknown-properties: false
datasource:
mysql1:
jdbc-url: jdbc:mysql://18.143.76.3:3306/hwgoldc?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&allowMultiQueries=true&rewriteBatchedStatements=true
username: hwgoldc
password: zB48T55wCsHC8KPz
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
pool-name: mysql1HikariCP
maximum-pool-size: 10
sqlserver1:
jdbc-url: jdbc:sqlserver://52.76.43.43:1433;databaseName=hwhcGold;encrypt=true;sslProtocol=TLSv1;trustServerCertificate=true;
username: hwhc_gold_query

5
src/main/resources/mapper/GeneralMapper.xml

@ -29,7 +29,8 @@
<select id="getAllRoleMarket" resultType="java.lang.String">
select DISTINCT name from market where type=2
</select>
<select id="getRate" resultType="java.lang.String">
select DISTINCT rate_name from rate
<select id="getRate" resultType="com.example.demo.domain.entity.Rate">
select id,rate_name from rate
</select>
</mapper>
Loading…
Cancel
Save