智慧保安后台管理-外网项目备份
zhongrj
2023-02-21 7069c80e28f86bca44bcd060b865f8e719ad634e
src/main/java/org/springblade/modules/system/service/MyAsyncService.java
@@ -1,14 +1,17 @@
package org.springblade.modules.system.service;
import net.sf.json.JSONObject;
import org.springblade.common.config.DataSyncConfig;
import org.springblade.common.utils.HttpClientUtils;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.dataSync.MysqlCenlint;
import org.springblade.modules.system.dto.UserDTO;
import org.springblade.modules.system.entity.User;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.List;
import static org.springblade.common.config.FtpConfig.qfqkBaseApiUrl;
@@ -130,4 +133,80 @@
         e.printStackTrace();
      }
   }
   @Async
   public void batchUserList(List<User> userList) {
      for (User user : userList) {
         String requestUrl = qfqkBaseApiUrl + "/blade-user/securitySaves";
         System.out.println("用户 = " + user.getRealName() + "异步推送了!");
         UserDTO userDTO = new UserDTO();
         userDTO.setAccount(user.getAccount());
         userDTO.setCardid(user.getCardid());
         userDTO.setPassword(user.getPassword());
         userDTO.setSex(user.getSex());
         userDTO.setAvatar(user.getAvatar());
         userDTO.setStatus(user.getStatus());
         userDTO.setPhone(user.getPhone());
         userDTO.setIsDeleted(user.getIsDeleted());
         userDTO.setRealName(user.getRealName());
         //装换为 json
         JSONObject jsonObject = JSONObject.fromObject(userDTO);
         //发送请求
         try {
            HttpClientUtils.httpPostWithjson(requestUrl,jsonObject.toString());
            System.out.println("用户新增请求已发送....");
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
   }
   /**
    * 数据同步
    * @param sql
    */
   @Async
   public void dataSync(String sql) {
      if (DataSyncConfig.enable.equals("start")) {
         //判断同步类型
         //sql 直连处理
         if (DataSyncConfig.type.equals("sql")) {
            sqlDataHandler(sql);
         }
         //ftp 连接同步
         if (DataSyncConfig.type.equals("ftp")) {
            FTP(sql);
         }
      }
   }
   /**
    *  sql 直连处理
    * @param sql sql
    */
   @Async
   public void sqlDataHandler(String sql) {
      //以逗号分割
      String[] split = sql.split(";");
      if (null!=split && split.length>0) {
         for (String sqls : split) {
            //判断是否是新增,删除,修改
            String substring = sqls.substring(0, 2);
            //新增
            if (substring.equals("in")) {
               //运行sql语句
               MysqlCenlint.inster(sqls);
            }
            //修改
            else if (substring.equals("up")) {
               MysqlCenlint.update(sqls);
            }
            //删除
            else {
               MysqlCenlint.delete(sqls);
            }
         }
      }
   }
}