zjh
2025-04-10 6d09c6301492d3095ff64dba2336f0d0b69638e6
ltkj-admin/src/test/java/zjhTest.java
@@ -1,37 +1,36 @@
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.LtkjApplication;
import com.ltkj.common.core.redis.RedisCache;
import com.ltkj.common.utils.SecurityUtils;
import com.ltkj.hosp.domain.DictHosp;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.service.*;
import com.ltkj.framework.config.MatchUtils;
import com.ltkj.hosp.idutil.IdUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.bind.annotation.PostMapping;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.openqa.selenium.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.io.File;
import java.io.IOException;
/**
 * @Author: 西安路泰科技有限公司/赵佳豪
 * @Date: 2022/12/12 9:05
@@ -41,53 +40,148 @@
@Slf4j
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class zjhTest {
//
//    @Autowired
//    private ITjGroupingProService groupingProService;
    @Autowired
    private ITjProjectService projectService;
//
//    @Resource
//    private ITjOrderService tjOrderService;
//    @Resource
//    private ITjOrderDetailService tjOrderDetailService;
//    @Resource
//    private ITjOrderRemarkService remarkService;
//
    @Resource
    private RedisCache redisCache;
//
    @Autowired
    public RedisTemplate<Object,Object> redisTemplate;
//    @Resource
//    private StringRedisTemplate stringRedisTemplate;
@Resource
private IDictHospService dictHospService;
    private IdUtils idUtils;
    @Value("${token.secret_key}")
    private String secret;
    @Test
    public void test() {
    public void test() throws InterruptedException {
// 生成指定url对应的二维码到文件,宽和高都是300像素
         QrCodeUtil.generate("https://ltpeis.xaltjdkj.cn:5516/1000110001240327094056%E7%8E%89%E5%BF%A0_%E4%BD%93%E6%A3%80%E6%8A%A5%E5%91%8A.pdf", 300, 300, FileUtil.file("D:\\Users\\w\\Desktop\\qrcode.jpg"));
        ExecutorService executorService = Executors.newFixedThreadPool(20); // 20个线程池
        Set<String> numbers = Collections.synchronizedSet(new HashSet<>()); // 线程安全的Set,存放生成的编号
        // 并发执行
        for (int i = 0; i < 20; i++) {
            executorService.execute(() -> {
                try {
                    String number = idUtils.getNewTjNumberRedisLock(); // 调用获取编号的方法
                    numbers.add(number); // 添加到 Set
                } catch (RuntimeException e) {
                    throw new RuntimeException(e);
                }
            });
        }
        System.out.println(numbers);
        executorService.shutdown(); // 关闭线程池
    }
    public static void main(String[] args) {
//        String dateStr1 = "2024-03-01 22:33:23";
//        Date date1 = DateUtil.parse(dateStr1);
//
////相差一个月,31天
//        long betweenDay = DateUtil.between(new Date(),date1, DateUnit.DAY);
//        System.out.println(betweenDay);
//        System.out.println(DateUtil.between(new Date(),date1, DateUnit.MS));
//        System.out.println(DateUtil.between(new Date(),date1, DateUnit.SECOND));
        public static void main(String[] args) throws Exception {
        System.out.println(DateUtil.date().toDateStr());
        System.out.println(DateUtil.date().toString());
            System.out.println(MatchUtils.isIdCard("622723197401030409"));
            System.out.println(MatchUtils.isMobileNO("15346732733"));
        }
    /**
     * 执行生成
     * @param filePath 图片生成路径
     * @return 是否成功
     */
    private void chrome(String filePath) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\tools\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.setBinary("D:\\tools\\124063440\\chrome.exe");
        options.addArguments("--headless");  // 启用无头模式
        options.addArguments("--disable-gpu");  // 禁用GPU加速
        options.addArguments("--no-sandbox");  // 禁用沙盒模式(可选,适用于某些Linux环境)
        System.setProperty("webdriver.chrome.verboseLogging", "true");
        WebDriver driver = null;
        try {
            driver = new ChromeDriver(options);
            driver.manage().window().setSize(new Dimension(600, 730));
            driver.get("www.baidu.com");
            WebDriverWait wait = new WebDriverWait(driver,10);
            File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
            FileUtil.copyFile(screenshot, new File("D:\\"+filePath));
        }catch (Exception e){
            log.error("玩家信息异常 ->{}",String.valueOf(e));
        }finally {
            if (driver != null)
                driver.quit();
        }
    }
    /**
     * 将科学计数法文本转换成字符文本
     * @param number
     * @return
     */
    public static String translateToPlainStr(String number) {
        return getString(number);
    }
    private static String getString(String number) {
        if (null == number || number.trim().length() == 0) {
            return number;
        }
        String regEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regEx);
        // 忽略大小写的写法
        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(number);
        // 字符串是否与正则表达式相匹配
        boolean rs = matcher.matches();
        // 判断是否为字符串的科学计数法
        if(rs){
            // 科学计数法转数字
            BigDecimal originValue = new BigDecimal(number);
            System.out.println("手机号为 ==> " + originValue.toPlainString());
            // 数字转字符串
            return originValue.toPlainString();
        }
        return number;
    }
    public static void forwardUrl(String targetUrl, String forwardUrl) throws Exception {
            // 创建URL对象
            URL url = new URL(forwardUrl);
            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            // 设置请求方法
            connection.setRequestMethod("GET");
            // 设置请求头,例如Referer或其他你需要转发的头信息
            connection.setRequestProperty("Referer", targetUrl);
            // 连接
            connection.connect();
            // 检查响应代码
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                // 读取服务器响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String inputLine;
                StringBuilder response = new StringBuilder();
                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
                in.close();
                // 打印服务器响应
                System.out.println(response.toString());
            } else {
                System.out.println("GET request not worked");
            }
            // 关闭连接
            connection.disconnect();
        }
//
//    public static String getAdd(String log, String lat ){
//        //lat 小  log  大