package com.dy.pipIrrApp.util; 
 | 
  
 | 
import java.security.SecureRandom; 
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
import java.util.Random; 
 | 
  
 | 
/** 
 | 
 * @author ZhuBaoMin 
 | 
 * @date 2024-09-11 15:48 
 | 
 * @LastEditTime 2024-09-11 15:48 
 | 
 * @Description 
 | 
 */ 
 | 
  
 | 
public class CaptchaUtil { 
 | 
    /** 
 | 
     * 生成数学文本算式,例如1+1=? 
 | 
     * @param a 数字 
 | 
     * @param b 数字 
 | 
     * @return  字符 
 | 
     */ 
 | 
    public static Map<String, String> mathTextCreator(int a, int b) { 
 | 
        Random random = new SecureRandom(); 
 | 
        // 生成随机操作,操作范围:[0,4),分别表示: +  -  *  / 
 | 
        int op = random.nextInt(4); 
 | 
        // 定义计算的结果 
 | 
        Integer result = 0; 
 | 
        // 定义构建的算式字符串 
 | 
        StringBuilder resultString = new StringBuilder(); 
 | 
        // 运算符:- 
 | 
        if (1 == op) { 
 | 
            if (a >= b) { 
 | 
                result = a - b; 
 | 
                resultString.append(a).append("-").append(b).append("=?@").append(result); 
 | 
            } else { 
 | 
                result = b - a; 
 | 
                resultString.append(b).append("-").append(a).append("=?@").append(result); 
 | 
            } 
 | 
        } 
 | 
        // 运算符:* 
 | 
        else if (2 == op) { 
 | 
            result = a * b; 
 | 
            resultString.append(a).append("*").append(b).append("=?@").append(result); 
 | 
        } 
 | 
        // 运算符:/ 
 | 
        else if (3 == op) { 
 | 
            if (a != 0 && b % a == 0) { 
 | 
                result = b / a; 
 | 
                resultString.append(b).append("/").append(a).append("=?@").append(result); 
 | 
            } else if (b != 0 && a % b == 0) { 
 | 
                result = a / b; 
 | 
                resultString.append(a).append("/").append(b).append("=?@").append(result); 
 | 
            } else { 
 | 
                return mathTextCreator(a, b); 
 | 
            } 
 | 
        } 
 | 
        // 运算符:+ 
 | 
        else { 
 | 
            result = b + a; 
 | 
            resultString.append(a).append("+").append(b).append("=?@").append(result); 
 | 
        } 
 | 
        Map<String, String> ret = new HashMap<String, String>(); 
 | 
        ret.put("resultCode", result.toString()); 
 | 
        ret.put("resultString", resultString.toString()); 
 | 
        return ret; 
 | 
    } 
 | 
} 
 |