• 基于springboot+vue社区疫情防控系统


    开发工具:IDEA

    服务器:Tomcat9.0, jdk1.8

    项目构建:maven

    数据库:mysql5.7

    项目采用前后端分离

    前端技术:vue,ant-design-vue等框架实现

    服务端技术:springboot+mybatis+Redis

    项目功能描述:

    1.登录、注册、首页统计

    2.举报管理:新增、修改、删除、导出报表、分页查询、详情

    3.体温上报管理:新增、修改、删除、导出报表、分页查询、详情

    4.疫苗管理:新增、修改、删除、导出报表、分页查询、详情

    5.疫苗接种管理:新增、修改、删除、导出报表、分页查询、详情

    6.守护者计划管理:新增、修改、删除、导出报表、分页查询、详情

    7.用户管理:新增、修改、删除、导出报表、分页查询、详情、重置密码、分配角色

    8.外出申请管理:新增、修改、删除、导出报表、分页查询、详情、审核

    9.楼栋管理:新增、修改、删除、导出报表、分页查询、详情

    10.角色管理:新增、修改、删除、导出报表、分页查询、详情、分配用户

    11.日志管理:删除、导出报表、查询

    12.个人中心、个人设置:修改个人信息、修改密码、退出登录

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    package com.senior.config;
    
    import java.util.Random;
    
    import com.google.code.kaptcha.text.impl.DefaultTextCreator;
    
    /**
     * 验证码文本生成器
     */
    public class CaptchaTextCreator extends DefaultTextCreator {
        private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(",");
    
        @Override
        public String getText() {
            Integer result = 0;
            Random random = new Random();
            int x = random.nextInt(10);
            int y = random.nextInt(10);
            StringBuilder suChinese = new StringBuilder();
            int randomoperands = (int) Math.round(Math.random() * 2);
            if (randomoperands == 0) {
                result = x * y;
                suChinese.append(CNUMBERS[x]);
                suChinese.append("*");
                suChinese.append(CNUMBERS[y]);
            } else if (randomoperands == 1) {
                if (!(x == 0) && y % x == 0) {
                    result = y / x;
                    suChinese.append(CNUMBERS[y]);
                    suChinese.append("/");
                    suChinese.append(CNUMBERS[x]);
                } else {
                    result = x + y;
                    suChinese.append(CNUMBERS[x]);
                    suChinese.append("+");
                    suChinese.append(CNUMBERS[y]);
                }
            } else if (randomoperands == 2) {
                if (x >= y) {
                    result = x - y;
                    suChinese.append(CNUMBERS[x]);
                    suChinese.append("-");
                    suChinese.append(CNUMBERS[y]);
                } else {
                    result = y - x;
                    suChinese.append(CNUMBERS[y]);
                    suChinese.append("-");
                    suChinese.append(CNUMBERS[x]);
                }
            } else {
                result = x + y;
                suChinese.append(CNUMBERS[x]);
                suChinese.append("+");
                suChinese.append(CNUMBERS[y]);
            }
            suChinese.append("=?@" + result);
            return suChinese.toString();
        }
    }
    
    1. package com.senior.config;
    2. import static com.google.code.kaptcha.Constants.KAPTCHA_BORDER;
    3. import static com.google.code.kaptcha.Constants.KAPTCHA_BORDER_COLOR;
    4. import static com.google.code.kaptcha.Constants.KAPTCHA_IMAGE_HEIGHT;
    5. import static com.google.code.kaptcha.Constants.KAPTCHA_IMAGE_WIDTH;
    6. import static com.google.code.kaptcha.Constants.KAPTCHA_NOISE_COLOR;
    7. import static com.google.code.kaptcha.Constants.KAPTCHA_NOISE_IMPL;
    8. import static com.google.code.kaptcha.Constants.KAPTCHA_OBSCURIFICATOR_IMPL;
    9. import static com.google.code.kaptcha.Constants.KAPTCHA_SESSION_CONFIG_KEY;
    10. import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH;
    11. import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE;
    12. import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR;
    13. import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES;
    14. import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE;
    15. import static com.google.code.kaptcha.Constants.KAPTCHA_TEXTPRODUCER_IMPL;
    16. import java.util.Properties;
    17. import org.springframework.context.annotation.Bean;
    18. import org.springframework.context.annotation.Configuration;
    19. import com.google.code.kaptcha.impl.DefaultKaptcha;
    20. import com.google.code.kaptcha.util.Config;
    21. /**
    22. * 验证码配置
    23. *
    24. *
    25. */
    26. @Configuration
    27. public class CaptchaConfig {
    28. @Bean(name = "captchaProducer")
    29. public DefaultKaptcha getKaptchaBean() {
    30. DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
    31. Properties properties = new Properties();
    32. // 是否有边框 默认为true 我们可以自己设置yes,no
    33. properties.setProperty(KAPTCHA_BORDER, "yes");
    34. // 验证码文本字符颜色 默认为Color.BLACK
    35. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");
    36. // 验证码图片宽度 默认为200
    37. properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");
    38. // 验证码图片高度 默认为50
    39. properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
    40. // 验证码文本字符大小 默认为40
    41. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");
    42. // KAPTCHA_SESSION_KEY
    43. properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");
    44. // 验证码文本字符长度 默认为5
    45. properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
    46. // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)
    47. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");
    48. // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
    49. // 阴影com.google.code.kaptcha.impl.ShadowGimpy
    50. properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
    51. Config config = new Config(properties);
    52. defaultKaptcha.setConfig(config);
    53. return defaultKaptcha;
    54. }
    55. @Bean(name = "captchaProducerMath")
    56. public DefaultKaptcha getKaptchaBeanMath() {
    57. DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
    58. Properties properties = new Properties();
    59. // 是否有边框 默认为true 我们可以自己设置yes,no
    60. properties.setProperty(KAPTCHA_BORDER, "yes");
    61. // 边框颜色 默认为Color.BLACK
    62. properties.setProperty(KAPTCHA_BORDER_COLOR, "105,179,90");
    63. // 验证码文本字符颜色 默认为Color.BLACK
    64. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "blue");
    65. // 验证码图片宽度 默认为200
    66. properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160");
    67. // 验证码图片高度 默认为50
    68. properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
    69. // 验证码文本字符大小 默认为40
    70. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35");
    71. // KAPTCHA_SESSION_KEY
    72. properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath");
    73. // 验证码文本生成器
    74. properties.setProperty(KAPTCHA_TEXTPRODUCER_IMPL, "com.senior.config.CaptchaTextCreator");
    75. // 验证码文本字符间距 默认为2
    76. properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "3");
    77. // 验证码文本字符长度 默认为5
    78. properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "6");
    79. // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)
    80. properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");
    81. // 验证码噪点颜色 默认为Color.BLACK
    82. properties.setProperty(KAPTCHA_NOISE_COLOR, "white");
    83. // 干扰实现类
    84. properties.setProperty(KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
    85. // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
    86. // 阴影com.google.code.kaptcha.impl.ShadowGimpy
    87. properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
    88. Config config = new Config(properties);
    89. defaultKaptcha.setConfig(config);
    90. return defaultKaptcha;
    91. }
    92. }

     

  • 相关阅读:
    服务器数据恢复-ESX SERVER常见故障的数据恢复的可能性分析
    【String——简单使用】
    【Linux】冯诺依曼体系结构、操作系统及进程概念
    AOP简单使用模版
    RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
    HarmonyOS小白入门设备开发的“芯”路历程
    JSD-2204-查询管理员列表-删除管理员-Day15
    PC安装苹果虚拟机?VirtualBox 安装
    CSDN 操作
    系统分析师1:计算机系统基础
  • 原文地址:https://blog.csdn.net/weixin_42899150/article/details/127583723