Merge remote-tracking branch 'origin/zcc'
This commit is contained in:
@@ -2,8 +2,8 @@ package com.peanut.modules.job.task;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.apache.commons.lang.time.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.util.Date;
|
||||
@@ -11,122 +11,141 @@ import java.util.Date;
|
||||
@Component("userCourseBuyTask")
|
||||
public class UserCourseBuyTask implements ITask{
|
||||
|
||||
@Value("${spring.profiles.active}")
|
||||
private String active;
|
||||
|
||||
@Override
|
||||
public void run(String params) {
|
||||
try {
|
||||
System.out.println("userCourseBuy同步开始-----");
|
||||
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!");
|
||||
String url = "jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true";
|
||||
if ("prod".equals(active)){
|
||||
url = "jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true";
|
||||
}
|
||||
Connection fzdsconn = DriverManager.getConnection(url , "nuttyreading", "Wu751019!");
|
||||
PreparedStatement addClassStatement = fzdsconn.prepareStatement(
|
||||
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,create_time,days,start_time,end_time) " +
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?)");
|
||||
//查询前一天新开的课
|
||||
PreparedStatement classStatement = yljkconn.prepareStatement("select tc.superVIP,tctc.* from t_customer_taihu_class tctc " +
|
||||
PreparedStatement classStatement = yljkconn.prepareStatement("select tc.superVIP,tc.cellPhone,tctc.* from t_customer_taihu_class tctc " +
|
||||
"left join t_customer tc on tc.oid = tctc.customerOid " +
|
||||
"where tctc.valid = 1 and tctc.status = '10' and tctc.createDate > '2024-05-20' and tc.superVIP = '0' ");
|
||||
"where tctc.valid = 1 and tctc.status = '10' and DATE(tctc.createDate) > DATE('"+DateUtil.format(DateUtils.addDays(new Date(),-1),"yyyy-MM-dd")+"') and tc.superVIP = '0' ");
|
||||
ResultSet classResultSet = classStatement.executeQuery();
|
||||
System.out.println("userCourseBuy数据统计完成-----");
|
||||
while (classResultSet.next()) {
|
||||
//用户是否同步
|
||||
PreparedStatement userStatement = yljkconn.prepareStatement("select * from user " +
|
||||
"where del_flag = 0 and yljkoid = '"+classResultSet.getString("customerOid")+"' ");
|
||||
PreparedStatement userStatement = fzdsconn.prepareStatement("select * from user " +
|
||||
"where del_flag = 0 and yljk_oid = '"+classResultSet.getString("customerOid")+"' ");
|
||||
ResultSet userResultSet = userStatement.executeQuery();
|
||||
String userId = "";
|
||||
if (userResultSet.next()) {
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userResultSet,classResultSet);
|
||||
userId = userResultSet.getString("id");
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userId,classResultSet,addClassStatement);
|
||||
}else {
|
||||
//用户未同步
|
||||
addUser(fzdsconn,classResultSet);
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userResultSet,classResultSet);
|
||||
PreparedStatement userTelStatement = fzdsconn.prepareStatement("select * from user " +
|
||||
"where del_flag = 0 and tel = '"+classResultSet.getString("cellPhone")+"' ");
|
||||
ResultSet userTelResultSet = userTelStatement.executeQuery();
|
||||
if (userTelResultSet.next()) {
|
||||
userId = userTelResultSet.getString("id");
|
||||
PreparedStatement oidUpdateStatement = fzdsconn.prepareStatement(
|
||||
"update user set yljk_oid = '"+classResultSet.getString("customerOid")+"' " +
|
||||
"where id = "+userTelResultSet.getInt("id"));
|
||||
oidUpdateStatement.execute();
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userId,classResultSet,addClassStatement);
|
||||
}else {
|
||||
//用户未同步
|
||||
userId = addUser(fzdsconn,yljkconn,classResultSet.getString("customerOid"));
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userId,classResultSet,addClassStatement);
|
||||
}
|
||||
}
|
||||
}
|
||||
classStatement.close();
|
||||
classResultSet.close();
|
||||
yljkconn.close();
|
||||
fzdsconn.close();
|
||||
System.out.println("userCourseBuy同步完成");
|
||||
}catch (Exception e) {
|
||||
System.out.println("---------");
|
||||
System.out.println("Error: " + e.getMessage());
|
||||
System.out.println("---------");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void addUser(Connection fzdsconn,ResultSet classResultSet) throws Exception{
|
||||
PreparedStatement addUserStatement = fzdsconn.prepareStatement(
|
||||
"INSERT INTO user (name,avatar,nickname,tel,vip,peanut_coin,jf,yljk_oid) " +
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
|
||||
addUserStatement.setString(1,classResultSet.getString("nameCN")==null?"":classResultSet.getString("nameCN").toString());
|
||||
addUserStatement.setString(2,classResultSet.getString("icons")==null?"":classResultSet.getString("icons").toString());
|
||||
addUserStatement.setString(3,classResultSet.getString("nickName")==null?"":classResultSet.getString("nickName").toString());
|
||||
addUserStatement.setString(4,classResultSet.getString("cellPhone")==null?"":classResultSet.getString("cellPhone").toString());
|
||||
addUserStatement.setString(5,"0");
|
||||
addUserStatement.setBigDecimal(6,new BigDecimal(classResultSet.getString("point").toString()));
|
||||
addUserStatement.setBigDecimal(7,new BigDecimal(classResultSet.getString("pointByJF").toString()));
|
||||
addUserStatement.setString(8,classResultSet.getString("oid")==null?"":classResultSet.getString("oid").toString());
|
||||
addUserStatement.execute();
|
||||
addUserStatement.close();
|
||||
}
|
||||
|
||||
private void addUserCourseBuy(Connection yljkconn,Connection fzdsconn,ResultSet userResultSet,ResultSet classResultSet) throws Exception{
|
||||
//导入的用户是否是会员,不是会员导入开课记录,是会员不处理
|
||||
if ("0".equals(userResultSet.getString("vip"))||
|
||||
"3".equals(userResultSet.getString("vip"))){
|
||||
//判断一路健康是否为会员
|
||||
if ("0".equals(classResultSet.getString("superVIP"))) {
|
||||
//都不是会员直接导入开课
|
||||
PreparedStatement addClassStatement = fzdsconn.prepareStatement(
|
||||
"INSERT ignore INTO user_course_buy (user_id,course_id,catalogue_id,create_time,days,start_time,end_time) " +
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?)");
|
||||
PreparedStatement cataloguestatement = yljkconn.prepareStatement("" +
|
||||
"select * from t_curriculum_catalogue where valid = 1 and oid = '"+classResultSet.getString("taiHuClassOid")+"'");
|
||||
ResultSet catalogueresultSet = cataloguestatement.executeQuery();
|
||||
if (catalogueresultSet.next()) {
|
||||
PreparedStatement coursestatement = fzdsconn.prepareStatement("" +
|
||||
"select * from course where uid = '"+catalogueresultSet.getString("poid")+"'");
|
||||
ResultSet courseresultSet = coursestatement.executeQuery();
|
||||
if (courseresultSet.next()) {
|
||||
int courseId = courseresultSet.getInt("id");
|
||||
PreparedStatement coursecataloguestatement = fzdsconn.prepareStatement("" +
|
||||
"select * from course_catalogue where del_flag = 0 and course_id = "+courseId+" and title = '"+catalogueresultSet.getString("title")+"'");
|
||||
ResultSet coursecatalogueresultSet = coursecataloguestatement.executeQuery();
|
||||
if (coursecatalogueresultSet.next()) {
|
||||
int courseCatalogueId = coursecatalogueresultSet.getInt("id");
|
||||
addClassStatement.setInt(1,userResultSet.getInt("id"));
|
||||
addClassStatement.setInt(2,courseId);
|
||||
addClassStatement.setInt(3,courseCatalogueId);
|
||||
addClassStatement.setTimestamp(4,classResultSet.getTimestamp("createDate"));
|
||||
addClassStatement.setInt(5,classResultSet.getInt("studyDays"));
|
||||
addClassStatement.setTimestamp(6,classResultSet.getTimestamp("startDate"));
|
||||
if (classResultSet.getTimestamp("startDate")==null){
|
||||
addClassStatement.setString(7, null);
|
||||
}else {
|
||||
Date endDate = DateUtils.addDays(classResultSet.getTimestamp("startDate"),classResultSet.getInt("studyDays"));
|
||||
addClassStatement.setTimestamp(7,Timestamp.valueOf(DateUtil.format(endDate,"yyyy-MM-dd HH:mm:ss")));
|
||||
}
|
||||
addClassStatement.execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
}else {
|
||||
//user不是会员,t_customer是会员,修改user为会员并导入user_vip
|
||||
String sql = "update user set vip= '"+classResultSet.getString("superVIP")+"' " +
|
||||
"where yljk_oid = '"+classResultSet.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.setInt(1,userResultSet.getInt("id"));
|
||||
userVipStatement.setString(2,classResultSet.getString("superVIP"));
|
||||
userVipStatement.setString(3,classResultSet.getString("paydate"));
|
||||
userVipStatement.setString(4,classResultSet.getString("payValidDate"));
|
||||
if (cn.hutool.core.date.DateUtil.compare(DateUtil.parseDate(classResultSet.getString("payValidDate")),new Date())>0){
|
||||
userVipStatement.setString(5,"0");
|
||||
}else {
|
||||
userVipStatement.setString(5,"1");
|
||||
}
|
||||
userVipStatement.execute();
|
||||
userVipStatement.close();
|
||||
private String addUser(Connection fzdsconn,Connection yljkconn,String customerOid) throws Exception{
|
||||
PreparedStatement customerStatement = yljkconn.prepareStatement("select * from t_customer where oid = '"+customerOid+"' ");
|
||||
ResultSet customerResultSet = customerStatement.executeQuery();
|
||||
if (customerResultSet.next()) {
|
||||
PreparedStatement addUserStatement = fzdsconn.prepareStatement(
|
||||
"INSERT INTO user (name,avatar,nickname,tel,vip,peanut_coin,jf,yljk_oid) " +
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
|
||||
addUserStatement.setString(1,customerResultSet.getString("nameCN")==null?"":customerResultSet.getString("nameCN").toString());
|
||||
addUserStatement.setString(2,customerResultSet.getString("icons")==null?"":customerResultSet.getString("icons").toString());
|
||||
addUserStatement.setString(3,customerResultSet.getString("nickName")==null?"":customerResultSet.getString("nickName").toString());
|
||||
addUserStatement.setString(4,customerResultSet.getString("cellPhone")==null?"":customerResultSet.getString("cellPhone").toString());
|
||||
addUserStatement.setString(5,customerResultSet.getString("superVIP")==null?"":customerResultSet.getString("superVIP").toString());
|
||||
addUserStatement.setBigDecimal(6,new BigDecimal(customerResultSet.getString("point").toString()));
|
||||
addUserStatement.setBigDecimal(7,new BigDecimal(customerResultSet.getString("pointByJF").toString()));
|
||||
addUserStatement.setString(8,customerResultSet.getString("oid")==null?"":customerResultSet.getString("oid").toString());
|
||||
addUserStatement.execute();
|
||||
ResultSet rs = addUserStatement.getGeneratedKeys();
|
||||
if(rs.next()) {
|
||||
Object id = rs.getObject(1);
|
||||
return id.toString();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
private void addUserCourseBuy(Connection yljkconn,Connection fzdsconn,String userId,ResultSet classResultSet,PreparedStatement addClassStatement) throws Exception{
|
||||
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 del_flag = 0 and uid = '"+catalogueresultSet.getString("poid")+"'");
|
||||
ResultSet courseresultSet = coursestatement.executeQuery();
|
||||
if (courseresultSet.next()){
|
||||
int courseId = courseresultSet.getInt("id");
|
||||
PreparedStatement coursecataloguestatement = fzdsconn.prepareStatement("" +
|
||||
"select * from course_catalogue where del_flag = 0 and course_id = "+courseId+" and title = '"+catalogueresultSet.getString("title")+"'");
|
||||
ResultSet coursecatalogueresultSet = coursecataloguestatement.executeQuery();
|
||||
if (coursecatalogueresultSet.next()){
|
||||
int catalogueId = coursecatalogueresultSet.getInt("id");
|
||||
//查询是否已经开课
|
||||
PreparedStatement userCourseBuyStatement = fzdsconn.prepareStatement("" +
|
||||
"select * from user_course_buy where del_flag = 0 and user_id = "+userId+" " +
|
||||
"and course_id = "+courseId+" and catalogue_id = "+catalogueId );
|
||||
ResultSet userCourseBuyResultSet = userCourseBuyStatement.executeQuery();
|
||||
if (!userCourseBuyResultSet.next()) {
|
||||
addClassStatement.setString(1,userId);
|
||||
addClassStatement.setInt(2,courseId);
|
||||
addClassStatement.setInt(3,catalogueId);
|
||||
addClassStatement.setTimestamp(4,classResultSet.getTimestamp("createDate"));
|
||||
addClassStatement.setInt(5,classResultSet.getInt("studyDays"));
|
||||
addClassStatement.setTimestamp(6,classResultSet.getTimestamp("startDate"));
|
||||
if (classResultSet.getTimestamp("startDate")==null){
|
||||
addClassStatement.setString(7, null);
|
||||
}else {
|
||||
Date endDate = DateUtils.addDays(classResultSet.getTimestamp("startDate"),classResultSet.getInt("studyDays"));
|
||||
addClassStatement.setTimestamp(7,Timestamp.valueOf(DateUtil.format(endDate,"yyyy-MM-dd HH:mm:ss")));
|
||||
}
|
||||
addClassStatement.execute();
|
||||
System.out.println(userId+"-"+courseId+"-"+catalogueId);
|
||||
}
|
||||
userCourseBuyStatement.close();
|
||||
userCourseBuyResultSet.close();
|
||||
}
|
||||
coursecataloguestatement.close();
|
||||
coursecatalogueresultSet.close();
|
||||
}
|
||||
coursestatement.close();
|
||||
courseresultSet.close();
|
||||
}
|
||||
cataloguestatement.close();
|
||||
catalogueresultSet.close();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user