Browse Source

7.10数据库同步

huangqizheng/feature-20250710151401-数据同步完成
huangqizhen 1 month ago
parent
commit
c5f2e5261d
  1. 2
      src/main/java/com/example/demo/DemoApplication.java
  2. 20
      src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java
  3. 1
      src/main/java/com/example/demo/config/SqlServer1DataSourceConfig.java
  4. 5
      src/main/java/com/example/demo/password/PasswordGenerator.java
  5. 5
      src/main/resources/application.yml
  6. 20
      src/main/resources/mapper/UserMapper.xml

2
src/main/java/com/example/demo/DemoApplication.java

@ -11,6 +11,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
public class DemoApplication { public class DemoApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("https.protocols", "TLSv1");
SpringApplication.run(DemoApplication.class, args); SpringApplication.run(DemoApplication.class, args);
} }

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

@ -11,6 +11,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.http.*; import org.springframework.http.*;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -65,7 +66,7 @@ public class MysqlServiceImpl implements MysqlService {
logger.info("开始查询数据..."); logger.info("开始查询数据...");
// SQL Server 查询数据 // SQL Server 查询数据
String querySql = "SELECT gtype,jwcode,free,core_jb,buy_jb,cz_time,cz_user,cz_bz,operation_platform,goods_name " + String querySql = "SELECT gtype,jwcode,free,core_jb,buy_jb,cz_time,cz_user,cz_bz,operation_platform,goods_name " +
"FROM user_gold_records WHERE flag=1 and created_at > ?";
"FROM user_gold_records WHERE flag=1 and cz_time> ?";
try (PreparedStatement sqlServerStmt = sqlServerConn.prepareStatement(querySql)) { try (PreparedStatement sqlServerStmt = sqlServerConn.prepareStatement(querySql)) {
sqlServerStmt.setTimestamp(1, Timestamp.valueOf(LocalDateTime.now().minusHours(1))); // 获取最近一小时的数据 sqlServerStmt.setTimestamp(1, Timestamp.valueOf(LocalDateTime.now().minusHours(1))); // 获取最近一小时的数据
@ -75,7 +76,7 @@ public class MysqlServiceImpl implements MysqlService {
//退款类型 61ERP退款退金币 //退款类型 61ERP退款退金币
String insertSql = "INSERT INTO user_gold_record (order_code,jwcode,sum_gold,permanent_gold,free_june,free_december," + String insertSql = "INSERT 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," + "task_gold,pay_platform,goods_name,refund_type,refund_model,remark,type,admin_id," +
"audit_status,create_time, VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE name = ?";
"audit_status,create_time) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
try (PreparedStatement mysqlStmt = mysqlConn.prepareStatement(insertSql)) { try (PreparedStatement mysqlStmt = mysqlConn.prepareStatement(insertSql)) {
while (resultSet.next()) { while (resultSet.next()) {
int gtype = resultSet.getInt("gtype"); int gtype = resultSet.getInt("gtype");
@ -124,8 +125,10 @@ public class MysqlServiceImpl implements MysqlService {
// 判断月份 // 判断月份
if(currentMonth.getValue() >= 7){ if(currentMonth.getValue() >= 7){
mysqlStmt.setInt(5, free); mysqlStmt.setInt(5, free);
mysqlStmt.setInt(6, 0);
} }
if(currentMonth.getValue() < 7){ if(currentMonth.getValue() < 7){
mysqlStmt.setInt(5, 0);
mysqlStmt.setInt(6, free); mysqlStmt.setInt(6, free);
} }
mysqlStmt.setInt(7, core_jb); mysqlStmt.setInt(7, core_jb);
@ -140,6 +143,11 @@ public class MysqlServiceImpl implements MysqlService {
} }
if(operation_platform.equals("4")){ if(operation_platform.equals("4")){
continue; continue;
}if(operation_platform.equals("0")){
mysqlStmt.setString(8, "初始化金币");
}
else {
mysqlStmt.setString(8, "其他");
} }
mysqlStmt.setString(9, goods_name); mysqlStmt.setString(9, goods_name);
mysqlStmt.setString(10,"退款商品"); mysqlStmt.setString(10,"退款商品");
@ -150,9 +158,11 @@ public class MysqlServiceImpl implements MysqlService {
// 更新时的值 // 更新时的值
mysqlStmt.addBatch(); mysqlStmt.addBatch();
logger.info("查询用户是否存在");
User user = userService.selectAllUser(String.valueOf(jwcode)); User user = userService.selectAllUser(String.valueOf(jwcode));
if(ObjectUtils.isEmpty(user)){ if(ObjectUtils.isEmpty(user)){
logger.info("用户不存在");
user = new User();
String country = null; String country = null;
BaseDES des = new BaseDES(); BaseDES des = new BaseDES();
String desjwcode= des.encrypt(String.valueOf(jwcode)); String desjwcode= des.encrypt(String.valueOf(jwcode));
@ -203,10 +213,14 @@ public class MysqlServiceImpl implements MysqlService {
// 设置默认的 country // 设置默认的 country
country = "Unknown"; country = "Unknown";
} }
user.setJwcode(jwcode); user.setJwcode(jwcode);
user.setName( name); user.setName( name);
user.setMarket(country); user.setMarket(country);
logger.info("新添用户");
userService.addUser(user); userService.addUser(user);
logger.info("用户添加成功");
user = userService.selectAllUser(String.valueOf(jwcode));
} }
user.setSumPermanentGold(user.getSumPermanentGold()+buy_jb); user.setSumPermanentGold(user.getSumPermanentGold()+buy_jb);
if(currentMonth.getValue() >= 7){ if(currentMonth.getValue() >= 7){

1
src/main/java/com/example/demo/config/SqlServer1DataSourceConfig.java

@ -1,5 +1,6 @@
package com.example.demo.config; package com.example.demo.config;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;

5
src/main/java/com/example/demo/password/PasswordGenerator.java

@ -20,6 +20,11 @@ public class PasswordGenerator {
// 输出加密后的密码 // 输出加密后的密码
System.out.println("加密后的密码: " + encodedPassword); System.out.println("加密后的密码: " + encodedPassword);
System.out.print("请输入原密码: ");
String qweq = scanner.nextLine();
boolean mat= passwordEncoder.matches(qweq,encodedPassword);
System.out.println("密码匹配结果:"+mat);
// 关闭 Scanner // 关闭 Scanner
scanner.close(); scanner.close();
} }

5
src/main/resources/application.yml

@ -44,13 +44,10 @@ spring:
# pool-name: mysql2HikariCP # pool-name: mysql2HikariCP
# maximum-pool-size: 10 # maximum-pool-size: 10
sqlserver1: sqlserver1:
url: jdbc:sqlserver://52.76.43.43:1433;databaseName=hwhcGold;encrypt=true;trustServerCertificate=true
jdbc-url: jdbc:sqlserver://52.76.43.43:1433;databaseName=hwhcGold;encrypt=true;sslProtocol=TLSv1;trustServerCertificate=true;
username: hwhc_gold_query username: hwhc_gold_query
password: hwhc_gold_query4564jkj password: hwhc_gold_query4564jkj
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
hikari:
pool-name: sqlserverHikariCP
maximum-pool-size: 10
application: application:
name: demo name: demo

20
src/main/resources/mapper/UserMapper.xml

@ -70,16 +70,16 @@
<update id="updateAllGold" parameterType="com.example.demo.domain.entity.User"> <update id="updateAllGold" parameterType="com.example.demo.domain.entity.User">
UPDATE user UPDATE user
SET SET
<if test="sum_permanent_gold != null">sum_permanent_gold = #{sumPermanentGold},</if>
<if test="sum_free_june != null">sum_free_june = #{sumFreeJune},</if>
<if test="sum_free_december != null">sum_free_december = #{sumFreeDecember},</if>
<if test="sum_task_gold != null">sum_task_gold = #{sumTaskGold},</if>
<if test="current_permanent_gold != null">current_permanent_gold = #{currentPermanentGold},</if>
<if test="current_free_june != null">current_free_june = #{currentFreeJune},</if>
<if test="current_free_december != null">current_free_december = #{currentFreeDecember},</if>
<if test="current_task_gold != null">current_task_gold = #{currentTaskGold},</if>
<if test="consume_num != null">consume_num = #{consumeNum},</if>
<if test="recharge_num != null">recharge_num = #{rechargeNum}</if>
<if test="sumPermanentGold != null">sum_permanent_gold = #{sumPermanentGold},</if>
<if test="sumFreeJune != null">sum_free_june = #{sumFreeJune},</if>
<if test="sumFreeDecember != null">sum_free_december = #{sumFreeDecember},</if>
<if test="sumTaskGold != null">sum_task_gold = #{sumTaskGold},</if>
<if test="currentPermanentGold != null">current_permanent_gold = #{currentPermanentGold},</if>
<if test="currentFreeJune != null">current_free_june = #{currentFreeJune},</if>
<if test="currentFreeDecember != null">current_free_december = #{currentFreeDecember},</if>
<if test="currentTaskGold != null">current_task_gold = #{currentTaskGold},</if>
<if test="consumeNum != null">consume_num = #{consumeNum},</if>
<if test="rechargeNum != null">recharge_num = #{rechargeNum}</if>
where jwcode = #{jwcode} where jwcode = #{jwcode}
</update> </update>
Loading…
Cancel
Save