智慧保安后台管理项目备份
zhongrj
2024-05-24 b5960d1968e007b91d4d33dd7cbb74f1b566f2c1
src/main/java/org/springblade/modules/FTP/MysqlCenlint.java
@@ -1,40 +1,193 @@
package org.springblade.modules.FTP;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springblade.common.utils.InvestigateUtil;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import static org.springblade.common.config.FtpConfig.localPath;
import static org.springblade.common.config.FtpConfig.sqlConnect;
@Component
public class MysqlCenlint {
   @Autowired
   private IUserService userService;
   //声明对象
   private static MysqlCenlint mysqlCenlint;
   /**
    * 初始化
    */
   @PostConstruct
   public void init(){
      mysqlCenlint = this;
      mysqlCenlint.userService = this.userService;
   }
   /**
    * sql 连接
    * @param sql
    */
   public static void sqlConnect(String sql,Integer type){
      String driver = "com.mysql.cj.jdbc.Driver";
      String url = sqlConnect; //换成要连接的数据库信息
      String user = "root";
      String password = "zhba0728";
      Connection conn = null;
      PreparedStatement ps = null;
      try {
         Class.forName ( driver );
         conn = (Connection) DriverManager.getConnection ( url, user, password );
         if (!conn.isClosed ()) {
            System.out.println ( "数据库连接成功:" );
            String sqls = sql;
            ps = conn.prepareStatement ( sqls );
            //判断是否为修改,删除
            if (type==1){
               //修改删除
               ps.executeUpdate();
            }else {
               //新增
               ps.execute();
            }
         }
      } catch (ClassNotFoundException e) {
         e.printStackTrace();
      } catch (SQLException e) {
         e.printStackTrace ();
      }finally {
         try {
            ps.close();
            conn.close();
         } catch (SQLException throwables) {
            throwables.printStackTrace();
         }
      }
   }
   /**
    * 连接mysql数据库 新增
    * @param sql
    */
   public static void inster(String sql) {
      sqlConnect(sql,2);
      try {
         int ColumnCount;
         //int RowCount;
         String driver = "com.mysql.jdbc.Driver";
         String url = "jdbc:mysql://223.82.109.183:2083/zhba"; //换成要连接的数据库信息
         String user = "root";
         String password = "zhba0728";
         Class.forName ( driver );
         Connection conn = (Connection) DriverManager.getConnection ( url, user, password );
         if (!conn.isClosed ()) {
            System.out.println ( "数据库连接成功:" );
            String sqls = sql; //sql
            PreparedStatement ps = conn.prepareStatement ( sqls );
            boolean execute = ps.execute();
            ps.close ();
            conn.close ();
         Thread.sleep(300);
         //对比 sql 字符串,如果是是往用户表里插入保安员数据,则调用公安审查接口
         String insertUserSql = "insert into blade_user";
         if (sql.contains(insertUserSql)){
            //如果包含,调用公安接口进行保安员审查
            getMxaminationSecurityInfo(sql);
         }
      } catch (ClassNotFoundException e) {
         e.printStackTrace ();
      } catch (SQLException e) {
         e.printStackTrace ();
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
   }
   /**
    * 审查保安员
    * @param sqls 新增的sql 语句
    */
   private static void getMxaminationSecurityInfo(String sqls) {
      //解析sql,读取数据,取出角色,如果是保安员,则审查,如果不是就不审查
      //获取第一个 (  ) 的位置
      int a = sqls.indexOf("(");
      int b = sqls.indexOf(")");
      //获取第二个 ( )的位置
      a = sqls.indexOf("(",a+1);
      b = sqls.indexOf(")",b+1);
      //截取字符串
      String subSql = sqls.substring(a, b);
      String[] splitSql = subSql.split(",");
      //读取角色
      String roleId = splitSql[10];
      //去除单引号
      String subRoleId = roleId.substring(1, roleId.length() - 1);
      //如果是保安员
      if (subRoleId.equals("1412226235153731586")){
         //读取身份证号
         String cardid = splitSql[12];
         //去除单引号
         String subCardid = cardid.substring(1, cardid.length() - 1);
         User user = new User();
         String userId = splitSql[0].substring(2, splitSql[0].length() - 1);
         user.setId(Long.parseLong(userId));
         System.out.println("身份证:"+subCardid);
         //远程调用接口
         String body = InvestigateUtil.httpGetOne(subCardid);
         JSONObject jsonObject = new JSONObject(body);
         Object data = jsonObject.get("data");
         JSONObject jsonData = new JSONObject(data.toString());
         JSONArray res = jsonData.getJSONArray("res");
         //设置审核时间
         user.setAuditTime(new Date());
         if (res.length() == 0) {
            //没有数据正常
            user.setExaminationType("0");
         } else {
            int count = 0;
            user.setExaminationType("1");
            for (int i = 0; i < res.length(); i++) {
               if (res.getJSONObject(i).get("zdrylbjh").toString() != null
                  && res.getJSONObject(i).get("zdrylbjh").toString() != ""
                  && res.getJSONObject(i).get("zdrylbjh").toString() != "null"
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString());
                  //更新用户数据
                  mysqlCenlint.userService.updateById(user);
                  break;
               }
               if (res.getJSONObject(i).get("zdryxlmc").toString() != null
                  && res.getJSONObject(i).get("zdryxlmc").toString() != ""
                  && res.getJSONObject(i).get("zdryxlmc").toString() != "null"
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString());
                  //更新用户数据
                  mysqlCenlint.userService.updateById(user);
                  break;
               }
               if (res.getJSONObject(i).get("ztrylx").toString() != null
                  && res.getJSONObject(i).get("ztrylx").toString() != ""
                  && res.getJSONObject(i).get("ztrylx").toString() != "null"
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString());
                  //更新用户数据
                  mysqlCenlint.userService.updateById(user);
                  break;
               }
//                  if (res.getJSONObject(i).get("ajlbmc").toString() != null
//                     && res.getJSONObject(i).get("ajlbmc").toString() != "") {
//                     user.setExaminationMx(res.getJSONObject(i).get("ajlbmc").toString());
//                     //更新用户数据
//                     userService.updateById(user);
//                     break;
//                  }
               count++;
               //条件中的数据都为空,则审查为正常
               if (count==res.length()){
                  //更新用户数据,设为正常
                  user.setExaminationType("0");
                  mysqlCenlint.userService.updateById(user);
               }
            }
         }
         //更新用户数据
         mysqlCenlint.userService.updateById(user);
      }
   }
@@ -43,28 +196,29 @@
    * @param sql
    */
   public static void update(String sql) {
      try {
         int ColumnCount;
         //int RowCount;
         String driver = "com.mysql.jdbc.Driver";
         String url = "jdbc:mysql://223.82.109.183:2083/zhba"; //换成要连接的数据库信息
         String user = "root";
         String password = "zhba0728";
         Class.forName ( driver );
         Connection conn = (Connection) DriverManager.getConnection ( url, user, password );
         if (!conn.isClosed ()) {
            System.out.println ( "数据库连接成功:" );
            String sqls = sql; //sql
            PreparedStatement ps = conn.prepareStatement ( sqls );
            ps.executeUpdate();
            ps.close ();
            conn.close ();
         }
      } catch (ClassNotFoundException e) {
         e.printStackTrace ();
      } catch (SQLException e) {
         e.printStackTrace ();
      }
      sqlConnect(sql,1);
//      try {
//         int ColumnCount;
//         //int RowCount;
//         String driver = "com.mysql.cj.jdbc.Driver";
//         String url = sqlConnect; //换成要连接的数据库信息
//         String user = "root";
//         String password = "zhba0728";
//         Class.forName ( driver );
//         Connection conn = (Connection) DriverManager.getConnection ( url, user, password );
//         if (!conn.isClosed ()) {
//            System.out.println ( "数据库连接成功:" );
//            String sqls = sql; //sql
//            PreparedStatement ps = conn.prepareStatement ( sqls );
//            ps.executeUpdate();
//            ps.close ();
//            conn.close ();
//         }
//      } catch (ClassNotFoundException e) {
//         e.printStackTrace ();
//      } catch (SQLException e) {
//         e.printStackTrace ();
//      }
   }
   /**
@@ -72,28 +226,29 @@
    * @param sql
    */
   public static void delete(String sql) {
      try {
         int ColumnCount;
         //int RowCount;
         String driver = "com.mysql.jdbc.Driver";
         String url = "jdbc:mysql://223.82.109.183:2083/zhba"; //换成要连接的数据库信息
         String user = "root";
         String password = "zhba0728";
         Class.forName ( driver );
         Connection conn = (Connection) DriverManager.getConnection ( url, user, password );
         if (!conn.isClosed ()) {
            System.out.println ( "数据库连接成功:" );
            String sqls = sql; //sql
            PreparedStatement ps = conn.prepareStatement ( sqls );
            ps.executeUpdate();
            ps.close ();
            conn.close ();
         }
      } catch (ClassNotFoundException e) {
         e.printStackTrace ();
      } catch (SQLException e) {
         e.printStackTrace ();
      }
      sqlConnect(sql,1);
//      try {
//         int ColumnCount;
//         //int RowCount;
//         String driver = "com.mysql.cj.jdbc.Driver";
//         String url = sqlConnect; //换成要连接的数据库信息
//         String user = "root";
//         String password = "zhba0728";
//         Class.forName ( driver );
//         Connection conn = (Connection) DriverManager.getConnection ( url, user, password );
//         if (!conn.isClosed ()) {
//            System.out.println ( "数据库连接成功:" );
//            String sqls = sql; //sql
//            PreparedStatement ps = conn.prepareStatement ( sqls );
//            ps.executeUpdate();
//            ps.close ();
//            conn.close ();
//         }
//      } catch (ClassNotFoundException e) {
//         e.printStackTrace ();
//      } catch (SQLException e) {
//         e.printStackTrace ();
//      }
   }
   /**
@@ -105,4 +260,13 @@
         file.delete();
      }
   }
   /**
    * 删除本地文件
    */
   public  static  void deletess(String fileName){
      File file = new File(localPath+fileName);
      if (file.isFile() && file.exists()) {
         file.delete();
      }
   }
}