kgdxpr 1 year ago
commit 9c79f08581

@ -1,7 +1,6 @@
package Tools.HK;
import cn.hutool.core.io.FileUtil;
import com.dsideal.QingLong.Hk.Bean.HkSubjectBean;
import com.dsideal.QingLong.Util.CommonUtil;
import com.dsideal.QingLong.Util.IdCardGenerator;
import com.dsideal.QingLong.Util.PgSqlUtil;
@ -56,9 +55,10 @@ public class FakeData {
public static JSONArray InitSubject() {
String sql = "select * from t_hk_subject where b_use=1 order by parent_id,id";
List<Record> list = Db.find(sql);
var obj = HkSubjectBean.convertListForTreeTable(list);
var ja = JSONArray.fromObject(obj).getJSONObject(0).getJSONArray("children");
return ja;
//var obj = HkSubjectBean.convertListForTreeTable(list);
//var ja = JSONArray.fromObject(obj).getJSONObject(0).getJSONArray("children");
//return ja;
return null;
}
// 获取指定年份和月份的最大天数

@ -1,139 +0,0 @@
package Tools.NginxLog;
import cn.hutool.core.io.FileUtil;
import com.dsideal.QingLong.Hk.Bean.HkSubjectBean;
import com.dsideal.QingLong.Util.CommonUtil;
import com.dsideal.QingLong.Util.IdCardGenerator;
import com.dsideal.QingLong.Util.PgSqlUtil;
import com.dsideal.QingLong.Util.RsaUtils;
import com.github.javafaker.Faker;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.DbKit;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.dialect.PostgreSqlDialect;
import com.jfinal.plugin.hikaricp.HikariCpPlugin;
import net.sf.json.JSONArray;
import java.io.File;
import java.net.URISyntaxException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.*;
/**
* :
* 1
* 2
* Java ClassXXL-JOB10
*
*/
public class FakeDataTestPG {
public static void Init() {
PropKit.use("application.properties");
HikariCpPlugin hp = CommonUtil.createHikariCpPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(), PropKit.get("driverClassName"));
hp.start();
ActiveRecordPlugin arp = new ActiveRecordPlugin(hp);
arp.setDevMode(false);
arp.setDialect(new PostgreSqlDialect());
arp.start();
}
public static JSONArray InitSubject() {
String sql = "select * from t_hk_subject where b_use=1 order by parent_id,id";
List<Record> list = Db.find(sql);
var obj = HkSubjectBean.convertListForTreeTable(list);
var ja = JSONArray.fromObject(obj).getJSONObject(0).getJSONArray("children");
return ja;
}
public static void main(String[] args) throws SQLException, IllegalAccessException, URISyntaxException {
Init();
Faker faker = new Faker(Locale.CHINA);
PgSqlUtil.Truncate("t_hk_student");
CommonUtil.log("数据清空成功完成!");
Set<String> _set = new HashSet<>();
var ja = InitSubject();
String hk_code = "202309";
String sql = "insert into t_hk_student(kjh,student_name,pwd,school_name,school_code,hk_code,xb,xjh,sfzh,type_id,jmwz_id,ywj_id,km_json,res_json) " +
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,'')";
for (int k = 1; k <= 5100; k++) {
// 声明数据库连接
Connection conn = null;
try {
conn = DbKit.getConfig().getDataSource().getConnection();
conn.setAutoCommit(false);
PreparedStatement pstmt = conn.prepareStatement(sql);
IdCardGenerator id = new IdCardGenerator();
for (int i = 1; i <= 2000; i++) {
String student_name = faker.name().fullName();
pstmt.setString(1, "KJH" + String.format("%07d", (k - 1) * 10000 + i));
pstmt.setString(2, student_name);
String idCardNo = id.generate();
while (idCardNo.length() != 18 || _set.contains(idCardNo)) idCardNo = id.generate();
_set.add(idCardNo);
String pwd = RsaUtils.encryptedDataOnJava(idCardNo.substring(12), RsaUtils.PUBLICKEY);
pstmt.setString(3, pwd);
pstmt.setString(4, "长春市 > 长春市区 > 长春市第一中学");
pstmt.setString(5, "0001");
pstmt.setString(6, hk_code);
pstmt.setString(7, (i % 2 == 1) ? "男" : "女");
pstmt.setString(8, "G" + idCardNo);
pstmt.setString(9, idCardNo);
pstmt.setInt(10, i % 2);
//随机三种文字
String wzArray[] = {
"[{\"wz_id\":1,\"wz_name\":\"汉文\"}]",
"[{\"wz_id\":1,\"wz_name\":\"汉文\"},{\"wz_id\":2,\"wz_name\":\"朝文\"}]",
"[{\"wz_id\":1,\"wz_name\":\"汉文\"},{\"wz_id\":3,\"wz_name\":\"蒙文\"}]"
};
Random random = new Random();
int randomNumber = random.nextInt(3);
pstmt.setString(11, wzArray[randomNumber]);
//应届还是往届
pstmt.setInt(12, i % 2 + 1);
//var ja2 = JSONArray.fromObject(ja.toString());//复制出来一个
pstmt.setString(13, ja.toString());
pstmt.addBatch();
}
// 执行批量插入操作
pstmt.executeBatch();
conn.commit();
CommonUtil.log("第" + k + "批次提交成功!");
} catch (Exception e) {
CommonUtil.log("事务操作失败");
System.out.println(e);
try {
conn.rollback();
} catch (SQLException eSql) {
CommonUtil.log("Connection 回滚失败");
}
} finally {
if (null != conn) {
conn.close();
}
}
}
//回写学生信息,方便测试
String str = FileUtil.readUtf8String(new File(CommonUtil.getClassPath() + "Student.txt"));
String[] array = str.split("\r\n");
sql = "update t_hk_student set student_name=?,sfzh=?,pwd=? where id=?";
for (int i = 0; i < array.length; i++) {
String[] b = array[i].split(" ");
Db.update(sql, b[1], b[2], RsaUtils.encryptedDataOnJava(b[2].substring(12), RsaUtils.PUBLICKEY), b[0]);
}
CommonUtil.log("恭喜,所有操作成功完成!");
}
}

@ -1,128 +0,0 @@
package com.dsideal.QingLong.Hk.Bean;
import com.jfinal.plugin.activerecord.Record;
import java.util.ArrayList;
import java.util.List;
public class HkSubjectBean {
public static HkSubjectBean convertListForTreeTable(List<Record> list) {
// 创建根节点
HkSubjectBean rootNode = new HkSubjectBean();
for (int i = 0; i < list.size(); i++) {
Record record = list.get(i);
// 上级节点
int parent_id = record.getInt("parent_id");
// 添加数据
int id = record.getInt("id");
String name = record.getStr("name");
String group_name = record.getStr("group_name");
String group_code = record.getStr("group_code");
String subject_code = record.getStr("subject_code");
// 创建要添加的新节点
HkSubjectBean newNode = new HkSubjectBean(id, name, parent_id, group_name, group_code, subject_code);
if (parent_id == -1) rootNode.addChild(newNode);
else {
// 添加新节点
HkSubjectBean node = rootNode.findNode(parent_id);
if (node != null) {
node.addChild(newNode);
}
}
}
return rootNode;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getParent_id() {
return parent_id;
}
public void setParent_id(int parent_id) {
this.parent_id = parent_id;
}
public String getGroup_name() {
return group_name;
}
public void setGroup_name(String group_name) {
this.group_name = group_name;
}
public String getGroup_code() {
return group_code;
}
public void setGroup_code(String group_code) {
this.group_code = group_code;
}
public void addChild(HkSubjectBean child) {
this.children.add(child);
}
public List<HkSubjectBean> getChildren() {
return children;
}
public HkSubjectBean(int id, String name, int parent_id, String group_name, String group_code, String subject_code) {
this.id = id;
this.name = name;
this.parent_id = parent_id;
this.group_name = group_name;
this.group_code = group_code;
this.subject_code = subject_code;
this.children = new ArrayList<>();
}
public HkSubjectBean() {
this.children = new ArrayList<>();
}
private List<HkSubjectBean> children;
int id;
String name;
int parent_id;
String group_name;
String group_code;
public String getSubject_code() {
return subject_code;
}
public void setSubject_code(String subject_code) {
this.subject_code = subject_code;
}
String subject_code;
public HkSubjectBean findNode(int targetId) {
if (this.id == targetId) {
return this;
}
for (HkSubjectBean child : this.children) {
HkSubjectBean result = child.findNode(targetId);
if (result != null) {
return result;
}
}
return null;
}
}

@ -1,16 +0,0 @@
package com.dsideal.QingLong.Hk.Controller;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.GET;
import org.apache.log4j.Logger;
public class HkAdminController extends Controller {
private static final Logger log = Logger.getLogger(HkAdminController.class);
@Before({GET.class})
public void index() {
redirect("/view/hk/admin.html");
}
}

@ -1,64 +0,0 @@
package com.dsideal.QingLong.Hk.Model;
import com.dsideal.QingLong.Util.JSONUtil;
import com.dsideal.QingLong.Util.RedisKit;
import com.dsideal.QingLong.Util.RsaUtils;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.SqlPara;
import java.util.List;
public class HkModel {
/**
*
*/
public Record getCurrentHk() {
String key = "hk_current_info";
if (!RedisKit.Exists(key)) {
String sql = "select * from t_hk_main where is_current=1 limit 1";
Record record = Db.findFirst(sql);
RedisKit.Set(key, record.toJson());
}
String str = RedisKit.Get(key);
Record record = JSONUtil.parse(str);
return record;
}
public boolean schoolLogin(String school_code, String pwd) {
String sql = "select * from t_hk_school where school_code=? and pwd=?";
List<Record> list = Db.find(sql, school_code, pwd);
return list.size() > 0;
}
public Page<Record> schoolListStudent(String school_code, String keyword, int page, int limit) {
Kv kv = Kv.by("school_code", school_code);
if (StrKit.isBlank(keyword)) keyword = "";
kv.set("keyword", keyword);
SqlPara sp = Db.getSqlPara("Hk.schoolListStudent", kv);
return Db.paginate(page, limit, sp);
}
public void schoolResetPwd(String sfzh) {
String sql = "update t_hk_student set pwd=? where sfzh=?";
String pwd = RsaUtils.encryptedDataOnJava(sfzh.substring(12), RsaUtils.PUBLICKEY);
Db.update(sql, pwd, sfzh);
RedisKit.HSet("STUDENT_" + sfzh, "pwd", pwd);
}
public boolean changePwd(String sfzh, String oldPwd, String newPwd) {
String pwd = RedisKit.HGet("STUDENT_" + sfzh, "pwd");
pwd = RsaUtils.decryptDataOnJava(pwd, RsaUtils.PRIVATEKEY);
oldPwd = RsaUtils.decryptDataOnJava(oldPwd, RsaUtils.PRIVATEKEY);
if (!oldPwd.equals(pwd)) return false;
String sql = "update t_hk_student set pwd=? where sfzh=?";
Db.update(sql, newPwd, sfzh);
RedisKit.HSet("STUDENT_" + sfzh, "pwd", newPwd);
return true;
}
}

@ -1,39 +0,0 @@
package com.dsideal.QingLong.Hk.Model;
import com.alibaba.fastjson.JSONObject;
import com.dsideal.QingLong.Util.RedisKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import java.util.ArrayList;
import java.util.List;
public class HkSubjectModel {
static String key = "Subject_Money";
static {
String sql = "select id,name,money from t_hk_subject where b_use=1 order by id";
List<Record> list = Db.find(sql);
for (Record record : list) {
RedisKit.HSet(key + "_" + record.getStr("id"), "name", record.getStr("name"));
RedisKit.HSet(key + "_" + record.getStr("id"), "money", record.getStr("money"));
}
}
public List<Record> getSubjectSumMoney(String sfzh) {
String res_json = RedisKit.HGet("STUDENT_" + sfzh, "res_json");
//解析这个res_json然后拼接出结果
List<Record> list = new ArrayList<>();
var ja = JSONObject.parseObject(res_json).getJSONArray("km");
for (int i = 0; i < ja.size(); i++) {
var jo = (JSONObject) ja.get(i);
var id = jo.getString("id");
Record record = new Record();
record.set("id", id);
record.set("name", RedisKit.HGet(key + "_" + id, "name"));
record.set("money", Float.parseFloat(RedisKit.HGet(key + "_" + id, "money")));
list.add(record);
}
return list;
}
}

@ -1,27 +0,0 @@
package com.dsideal.QingLong.Hk.Model;
import com.dsideal.QingLong.Const.RedisKeyConst;
import com.dsideal.QingLong.Util.RedisKit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RefreshHk implements Runnable {
//在独立的main函数中使用下面的方式进行声明logback对象
private static Logger log = LoggerFactory.getLogger(RefreshHk.class);
@Override
public void run() {
while (true) {
if (!RedisKit.Exists(RedisKeyConst.SY_KEY)) {
//从张永嘉处获取到数据库的变化根据timestamp进行获取同步到数据库中同步到redis
} else {
//当检查到没有需要处理的数据时休息5分钟然后继续探测
try {
Thread.sleep(5 * 6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}

@ -1,9 +0,0 @@
package com.dsideal.QingLong.Hk.Model;
public class RefreshHkWorker extends Thread{
//线程一直执行
public void run() {
RefreshHk myclient=new RefreshHk();
myclient.run();
}
}

@ -15,9 +15,6 @@ import com.dsideal.QingLong.Gtzz.Controller.JianLiController;
import com.dsideal.QingLong.Gtzz.Model.RefreshTjWorker;
import com.dsideal.QingLong.Handler.LoginHandler;
import com.dsideal.QingLong.Handler.XssHandler;
import com.dsideal.QingLong.Hk.Controller.HkAdminController;
import com.dsideal.QingLong.Hk.Controller.HkController;
import com.dsideal.QingLong.Hk.Model.RefreshHkWorker;
import com.dsideal.QingLong.Index.Controller.IndexController;
import com.dsideal.QingLong.Interceptor.*;
import com.dsideal.QingLong.LoginPerson.Controller.LoginPersonController;
@ -27,10 +24,12 @@ import com.dsideal.QingLong.Student.Controller.StudentController;
import com.dsideal.QingLong.StudentYd.Controller.StudentYdController;
import com.dsideal.QingLong.Teacher.Controller.TeacherController;
import com.dsideal.QingLong.TeacherYd.Controller.TeacherYdController;
import com.dsideal.QingLong.Util.*;
import com.dsideal.QingLong.Util.CommonUtil;
import com.dsideal.QingLong.Util.LogBackLogFactory;
import com.dsideal.QingLong.Util.PkUtil;
import com.dsideal.QingLong.Util.RedisKit;
import com.dsideal.QingLong.YunXiao.Controller.YunXiaoController;
import com.dsideal.QingLong.Zbdc.Controller.ZbdcController;
import com.jfinal.aop.Interceptor;
import com.jfinal.config.*;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.StrKit;
@ -271,12 +270,6 @@ public class Start extends JFinalConfig {
Thread wt = new Thread(new RefreshTjWorker());
wt.start();
}
if (PropKit.getInt("HkThread") == 1) {
Thread wt = new Thread(new RefreshHkWorker());
wt.start();
}
}
}
}

Loading…
Cancel
Save