开课定时任务
This commit is contained in:
132
src/main/java/com/peanut/modules/job/task/UserCourseBuyTask.java
Normal file
132
src/main/java/com/peanut/modules/job/task/UserCourseBuyTask.java
Normal file
@@ -0,0 +1,132 @@
|
||||
package com.peanut.modules.job.task;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.apache.commons.lang.time.DateUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.util.Date;
|
||||
|
||||
@Component("userCourseBuyTask")
|
||||
public class UserCourseBuyTask implements ITask{
|
||||
|
||||
|
||||
@Override
|
||||
public void run(String params) {
|
||||
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 classStatement = yljkconn.prepareStatement("select tc.superVIP,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' ");
|
||||
ResultSet classResultSet = classStatement.executeQuery();
|
||||
while (classResultSet.next()) {
|
||||
//用户是否同步
|
||||
PreparedStatement userStatement = yljkconn.prepareStatement("select * from user " +
|
||||
"where del_flag = 0 and yljkoid = '"+classResultSet.getString("customerOid")+"' ");
|
||||
ResultSet userResultSet = userStatement.executeQuery();
|
||||
if (userResultSet.next()) {
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userResultSet,classResultSet);
|
||||
}else {
|
||||
//用户未同步
|
||||
addUser(fzdsconn,classResultSet);
|
||||
addUserCourseBuy(yljkconn,fzdsconn,userResultSet,classResultSet);
|
||||
}
|
||||
}
|
||||
classStatement.close();
|
||||
classResultSet.close();
|
||||
yljkconn.close();
|
||||
fzdsconn.close();
|
||||
}catch (Exception e) {
|
||||
System.out.println("Error: " + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user