Java项目:ssm高校党员管理系统

news2024/11/17 7:47:41

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

高校党员信息管理系统,分为普通用户和管理员两种角色。

普通用户登录后主要功能有:

我的中心:首页、个人资料、修改密码;
党费信息:党费信息查询、党费缴纳;
通知查询:查看通知;
党员成绩信息:党课信息查询
个人操作日志:个人操作日志;

管理员登录后主要功能有:

系统用户管理:首页、管理员账号管理、添加管理kmuu账号、修改密码;
普通用户管理:用户信息查询、用户信息添加;
党员信息管理:正式党员查询、预备党员查询、发展对象查询、入党积极分子查询、入党申请人查询;
党组织管理:党组织查询、党组织添加;
党员党课成绩:党课信息查询、党课添加;
党费信息管理:党费信息管理
党员成绩管理:党员成绩查询、党员成绩添加;
通知信息管理:通知信息查询、通知信息添加;
党员活动管理:活动信息查询、活动信息添加;
操作日志管理:操作日志查询;

数据备份:数据备份;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+Bootstrap+JQuery+AmazeUI

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
5. 运行项目,输入localhost:8081 登录

运行截图

相关代码 

(Active)表控制层

package com.bs.controller;

import com.bs.pojo.*;
import com.bs.service.ActiveService;
import com.bs.service.OptionService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;

/**
 * (Active)表控制层
 *
 * @author makejava
 * @since 2020-03-31 20:40:23
 */
@Controller
@RequestMapping("active")
public class ActiveController {
    /**
     * 服务对象
     */
    @Autowired
    private ActiveService activeService;
    private static Option option = new Option();
    private static ResultBean resultBean = new ResultBean();
    @Autowired
    private OptionService optionService;

    /**
     * 管理员操作方法
     *
     * @param rootUser
     */
    public void adminOption(Admin rootUser) {
        option.setOptionUser(rootUser.getAdminAccount());
        option.setRoleName(rootUser.getAdminRole());
        option.setOptionTime(new Date());
        option.setAdminId(rootUser.getAdminId());
    }

    /**
     * 超级管理员 查看所有课程信息
     *
     * @param page
     * @param pageSize
     * @param model
     * @return
     */
    @RequestMapping("activeList")
    public String activeList(@RequestParam(value = "page", defaultValue = "1") int page,
                             @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                             Model model, HttpSession session, Active active) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //查询所有
        PageInfo<Active> activePageInfo = activeService.queryAll(page, pageSize, active);
        System.out.println("====所有信息===" + activePageInfo.getList());
        if (rootUser != null) {
            //添加操作日志
            option.setOptionName("查看所有通知信息.");
            //调用管理员操作方法
            adminOption(rootUser);
            optionService.insert(option);
        }
        model.addAttribute("activePageInfo", activePageInfo);
        return "admin/active-list";
    }

    /**
     * 前往添加界面
     *
     * @return
     */
    @RequestMapping("goAdd")
    public String goAdd(HttpSession session, Model model) {
        session.removeAttribute("insertmessage");
        session.removeAttribute("editmassage");
        return "admin/add-active";
    }

    /**
     * 管理员添加
     *
     * @param active
     * @param model
     * @return
     */
    @RequestMapping(value = "addActive", method = RequestMethod.POST)
    public String addActive(Active active, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //添加操作
        if (active != null) {
            System.out.println("=====存入的信息====" + active);
            active = activeService.insert(active);
            if (rootUser != null) {
                //添加操作日志
                option.setOptionName("添加的活动为:" + active.getActiveTitle());
                //调用管理员操作方法
                adminOption(rootUser);
                optionService.insert(option);
            }
            session.setAttribute("insertmessage", "success");
            return "redirect:/active/activeList";
        } else {
            session.setAttribute("insertmessage", "isEmpty");
            return "redirect:/active/activeList";
        }
    }

    /**
     * 管理员 前往修改界面
     *
     * @return
     */
    @RequestMapping("goEdit")
    public String goEditGrade(Integer activeId, Model model, HttpSession session) {
        session.removeAttribute("editmassage");
        session.removeAttribute("insertmessage");
        //当前信息
        Active active = activeService.queryById(activeId);
        System.out.println("当前信息===" + active);
        model.addAttribute("activeInfo", active);
        return "admin/edit-active";
    }

    /**
     * 管理员 查看-修改信息
     *
     * @param active
     * @param model
     * @param session
     * @return
     */
    @RequestMapping(value = "editActive", method = RequestMethod.POST)
    public String editActive(Active active, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //修改操作
        if (active != null) {
            System.out.println("=======存入的信息为:"+active);
            active = activeService.update(active);
            if (rootUser != null) {
                //添加操作日志操作
                option.setOptionName("修改标题为 " +active.getActiveTitle()+"的信息");
                //调用管理员操作方法
                adminOption(rootUser);
                optionService.insert(option);
            }
            session.setAttribute("editmassage", "success");
            model.addAttribute("activeInfo", active);
            return "redirect:/active/activeList";
        } else {
            session.setAttribute("editmassage", "isEmpty");
            return "redirect:/active/activeList";
        }
    }

    /**
     * 管理员删除
     *
     * @param activeId
     * @param session
     * @return
     */
    @RequestMapping(value = "remove", method = RequestMethod.POST)
    @ResponseBody
    public ResultBean remove(@RequestParam Integer activeId, HttpSession session) {
        session.removeAttribute("editmassage");
        session.removeAttribute("insertmessage");
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //删除普通管理员操作
        if (activeId != null) {
            Active queryById = activeService.queryById(activeId);
            boolean delete = activeService.deleteById(activeId);
            if (delete) {
                //添加操作日志操作
                option.setOptionName("移除标题为" + queryById.getActiveTitle() + "的信息");
                //调用管理员操作方法
                adminOption(rootUser);
            }
            optionService.insert(option);
            resultBean.setErrno(0);
            resultBean.setMessage("操作成功");
        }
        return resultBean;
    }

}

(Admin)表控制层

package com.bs.controller;

import com.bs.pojo.Admin;
import com.bs.pojo.Option;
import com.bs.pojo.ResultBean;
import com.bs.service.AdminService;
import com.bs.service.OptionService;
import com.github.pagehelper.PageInfo;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;

/**
 * (Admin)表控制层
 *
 * @author makejava
 * @since 2020-04-01 07:55:11
 */
@Controller
@RequestMapping("admin")
public class AdminController {

    private static Option option = new Option();

    private static ResultBean resultBean = new ResultBean();
    /**
     * 服务对象
     */
    @Autowired
    private AdminService adminService;
    @Autowired
    private OptionService optionService;

    /**
     * 验证码验证
     *
     * @param session
     * @param message
     * @return 指定页面
     */
    @RequestMapping("/loginView")
    public String loginView(HttpSession session, String message) {
        session.setAttribute("loginMsg", "登陆失败,验证码错误");
        System.out.println("验证码错误");
        return "redirect:/view/404";
    }

    /**
     * 登录
     *
     * @param admin
     * @return
     */
    @RequestMapping("checkLogin")
    public String checkLogin(Admin admin, Model model, HttpSession session) {
        System.out.println("====================开始登陆=======" + admin);
//        String password = new Md5Hash(admin.getAdminPassword(),admin.getAdminAccount(),1024).toString();
//        System.out.println("========"+password);
        try {
            //1.认证 创建令牌
            UsernamePasswordToken token = new UsernamePasswordToken(admin.getAdminAccount(), admin.getAdminPassword());
            //2.获取主体对象
            Subject subject = SecurityUtils.getSubject();
            //3.登陆方法
            subject.login(token);
            if (subject.isAuthenticated()) {
                System.out.println("认证成功");
                Admin byAccount = adminService.queryByAccount(admin.getAdminAccount());
                if (byAccount.getFlag().equals(1)) {
                    //数据传递是不带密码
                    byAccount.setAdminPassword("");
                    //添加操作日志
                    option.setOptionName(byAccount.getAdminAccount() + ":登录.");
                    //调用管理员操作方法
                    adminOption(byAccount);
                    optionService.insert(option);
                    session.setAttribute("user", byAccount);
                    session.setAttribute("loginMsg", "登录成功");
                    return "redirect:/admin/index";
                }
            }
        } catch (AuthenticationException e) {
            e.printStackTrace();
            System.out.println("认证失败");
        }
        session.setAttribute("loginMsg", "账号或密码错误");
        return "redirect:/view/404";
    }

    /**
     * 超级管理员 查看所有管理员信息
     *
     * @param page
     * @param pageSize
     * @param model
     * @return
     */
    @RequestMapping("adminList")
    public String adminList(@RequestParam(value = "page", defaultValue = "1") int page,
                            @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                            Model model, HttpSession session, Admin admin) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //查询所有管理员
        PageInfo<Admin> adminPageInfo = adminService.queryAll(page, pageSize, admin);
        System.out.println("====所有管理员===" + adminPageInfo.getList());
        if (rootUser != null) {
            //添加操作日志
            option.setOptionName("查看所有管理员.");
            //调用管理员操作方法
            adminOption(rootUser);
            optionService.insert(option);
        }
        model.addAttribute("adminPageInfo", adminPageInfo);
        return "admin/admin-list";
    }

    /**
     * 前往添加管理员界面
     *
     * @return
     */
    @RequestMapping("goAddAdmin")
    public String goAddAdmin(HttpSession session) {
        session.removeAttribute("insertmessage");
        return "admin/add-admin";
    }

    /**
     * 超级管理员添加其他管理员
     *
     * @param admin
     * @param model
     * @return
     */
    @RequestMapping("addAdmin")
    public String addAdmin(Admin admin, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //添加管理员操作
        if (admin != null) {
            Admin byAccount = adminService.queryByAccount(admin.getAdminAccount());
            if (byAccount == null) {
                admin.setAddTime(new Date());
                admin = adminService.insert(admin);
                if (rootUser != null) {
                    //添加操作日志
                    option.setOptionName("添加管理员,账号为:" + admin.getAdminAccount());
                    //调用管理员操作方法
                    adminOption(rootUser);
                    optionService.insert(option);
                }
                session.setAttribute("insertmessage", "success");
                return "redirect:/admin/adminList";
            } else {
                session.setAttribute("insertmessage", "errorRepete");
            }
        } else {
            session.setAttribute("insertmessage", "errorNull");
        }
        return "redirect:/admin/goAddAdmin";
    }

    /**
     * 前往修改管理员密码界面
     *
     * @return
     */
    @RequestMapping("goEditPassword")
    public String goEditPassword(Model model, HttpSession session) {
        session.removeAttribute("editmassage");
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        model.addAttribute("adminInfo", rootUser);
        return "admin/password";
    }

    /**
     * 修改密码
     *
     * @param admin
     * @param model
     * @param session
     * @return
     */
    @RequestMapping("editPassword")
    public String editPassword(Admin admin, Model model, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //修改密码操作
        if (admin != null) {
            admin.setAdminId(rootUser.getAdminId());
            System.out.println("=====修改的信息=====" + admin);
            admin.setAddTime(new Date());
            admin = adminService.update(admin);
            if (rootUser != null) {
                //添加操作日志操作
                option.setOptionName("修改密码.");
                //调用管理员操作方法
                adminOption(rootUser);
                optionService.insert(option);
            }
            session.setAttribute("editmassage", "success");
            model.addAttribute("adminInfo", admin);
        }
        return "redirect:/";
    }

    /**
     * 超级管理员修改普通管理员权限
     *
     * @param adminId
     * @param flag
     * @param session
     * @return
     */
    @RequestMapping(value = "editFlag", method = RequestMethod.POST)
    @ResponseBody
    public ResultBean editFlag(@RequestParam Integer adminId, @RequestParam Integer flag, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //授权操作
        if (adminId != null && flag != null) {
            Admin admin = new Admin();
            admin.setAdminId(adminId);
            admin.setFlag(flag);
            admin.setAddTime(new Date());
            System.out.println("=====修改的信息=====" + admin);
            admin = adminService.update(admin);
            if (rootUser != null && flag == 1) {
                //添加操作日志操作
                option.setOptionName("给管理员授权");
                //调用管理员操作方法
                adminOption(rootUser);
            } else {
                //添加操作日志操作
                option.setOptionName("冻结管理员");
                //调用管理员操作方法
                adminOption(rootUser);
            }
            optionService.insert(option);
            resultBean.setErrno(0);
            resultBean.setMessage("操作成功");
        }
        return resultBean;
    }

    /**
     * 超级管理员删除普通管理员
     *
     * @param adminId
     * @param session
     * @return
     */
    @RequestMapping(value = "removeAdmin", method = RequestMethod.POST)
    @ResponseBody
    public ResultBean removeAdmin(@RequestParam Integer adminId, HttpSession session) {
        //当前登陆账号信息
        Admin rootUser = (Admin) session.getAttribute("user");
        System.out.println("当前登陆账号信息===" + rootUser);
        //删除普通管理员操作
        if (adminId != null) {
            Admin admin = adminService.queryById(adminId);
            boolean delete = adminService.deleteById(adminId);
            if (delete) {
                //添加操作日志操作
                option.setOptionName("移除管理员" + admin.getAdminAccount());
                //调用管理员操作方法
                adminOption(rootUser);
            }
            optionService.insert(option);
            resultBean.setErrno(0);
            resultBean.setMessage("操作成功");
        }
        return resultBean;
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @RequestMapping("selectOne")
    @ResponseBody
    public Admin selectOne(Integer id) {
        return adminService.queryById(id);
    }


    /**
     * 查询多条数据
     *
     * @param page     页码
     * @param pageSize 页大小
     * @param admin    实体
     * @return PageInfo<Admin> 分页数据集合
     */
    @RequestMapping("searchAll")
    @ResponseBody
    public PageInfo<Admin> searchAll(@RequestParam(value = "page", defaultValue = "1") int page,
                                     @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
                                     Admin admin) {
        return adminService.queryAll(page, pageSize, admin);
    }

    /**
     * 管理员操作方法
     *
     * @param rootUser
     */
    public void adminOption(Admin rootUser) {
        option.setOptionUser(rootUser.getAdminAccount());
        option.setRoleName(rootUser.getAdminRole());
        option.setOptionTime(new Date());
        option.setAdminId(rootUser.getAdminId());
    }
}

如果也想学习本系统,下面领取。关注并回复:026ssm 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/55484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

广州蓝景分享—开发人员都知道的JavaScript技巧

JavaScript包含各种对典型编程思想有用的一些技巧&#xff0c;在实际开发中&#xff0c;我们通常希望减少代码行数&#xff1b;因此&#xff0c;今天这些技巧代码希望可以帮助到你。 现在我们就开始今天的内容吧。 1、与Javascript对象相关的 01)、对象解构 将对象的值解构为…

Vue2.0简讲!

Vue2.0简讲 Draven入门1.1、响应式渲染1.1.0、Vue创建1.1.1、指令(7)1.1.2、class与style绑定HTML Class对象语法数组语法绑定内联样式对象语法数组语法1.1.3、条件渲染v-if else-iftemplate v-if1.1.4、列表渲染v-forkey数组更新检测列表渲染Vue2列表渲染Vue3过滤应用(模糊查询…

机器学习与数据挖掘——前言

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;瞳孔空间 这是从老师的PPT里面提取出来的&#xff0c;知识点分布比较零散&#xff0c;可能他做PPT的时候也没想那么多。 一&#xff1a;机器学习 机器学习的定义&#xff1a;一个计算机程序被称为…

前端岗位初入职场后的最初一段时间需要做什么

文章题目有点长&#xff0c;叫 《前端岗位初入职场后的最初一段时间需要做什么》&#xff0c;说下写这篇文的初衷&#xff0c;在前端自学团里有很多刚毕业或者是刚从培训班出来的同学&#xff0c;在群里天天讨论着找工作和面试的事情&#xff0c;面试的题在很多app或者小程序可…

四、【React-Router6】高亮 NavLink

项目修改自 上一节 的 Demo 这里需要注意的变化 默认高亮样式类名如果依然是 active 则依然默认有效 6 里移除了 activeClassName &#xff0c;如果我的高亮样式类名是 peiqi&#xff0c;需要配置 className 为一个函数 函数接收两个参数 isActive&#xff1a;是否激活isPendi…

Arduino开发实例-DIY双向访客计数器和自动灯光控制

双向访客计数器和自动灯光控制 1、应用介绍 本应用将使用 Arduino 创建双向访客柜台和自动灯光控制系统。该应用基于一对 IR(红外)传感器,可在出现中断时检测障碍物。实际上,该系统可以检测来自两个方向的访客。从而对进入的访客数量和离开的访客数量进行计数。 该双向访…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校心理健康咨询平台vknhv

毕业设计其实不难&#xff0c;主要毕业的时候任务太紧了&#xff0c;所以大家都非常忙没有时间去做&#xff0c;毕业设计还是早做准备比较好&#xff0c;多花点时间也可以做出来的&#xff0c;建议还是自己动手去做&#xff0c;比如先选一个题&#xff0c;这样就有方向&#xf…

GIS工具maptalks开发手册(三)01——绘制工具

GIS工具maptalks开发手册(三)01——绘制工具 效果 代码 1、html官方版 <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <title>交互 - 绘制…

vite + vue3.0 + ts 项目搭建

Welcome to vue3-elementplus-admin &#x1f44b; vite vue3 Pinia elementUi-plus 无限级菜单 权限管理 后台模板 &#x1f3e0; Homepage Author &#x1f464; xuxuxu-ni Github: xuxuxu-niQQ: 595485548QQ群: 157216616email: 595485548qq.com Prerequisites node…

安卓使用动画启动Acitvity

1.检查系统版本 动画过渡Activity适用于*Android5.0&#xff08;API21&#xff09;*及以上&#xff0c;在代码增加中检查版本增强代码健壮性。 2.指定自定义过渡动画。 过渡可以在xml文件中指定&#xff0c;也可以直接在代码中指定。使用Window.requestFeature()声明启动窗口…

C语言:结构体

1、结构体&#xff1a; 定义&#xff1a;结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量 结构的声明&#xff1a; struct tag {member-list;}variable-list;举例&#xff1a;声明一个学生类型&#xff0c;想通过学生类型来创建学生变…

【Matplotlib绘制图像大全】(二十七):Matplotlib将数组array保存为图像

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

SpringBoot+Vue实现前后端分离的大学生志愿者管理系统

文末获取源码 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff1a;JavaScript、Vue.js 、css3 开发工具&#xff1a;IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库&#xff1a;MySQL 5.7/8.0 数据库管理工具&#xff1a;phpstudy/Navicat JD…

【C++修炼之路】10. vector类

每一个不曾起舞的日子都是对生命的辜负 vector本节目标1. vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 vector的定义&#xff08;构造函数&#xff09;1.2.2 vector iterator的使用1.2.3 vector的空间增长问题1.2.4 vector增删查改2. vector的模拟实现2.1 构造函…

Mellanox CX4 offload 卸载功能介绍

无状态功能卸载 cx4支持多种类型的无状态卸载&#xff0c;如下面列表所示。 Checksum OffloadLarge Send OffloadsReceive Side ScalingTransmit Side ScalingInterrupt ModerationLarge Receive OffloadsVLAN insertion and strippingFlow Steering at layers 2, 3 and 4Pac…

使用MotionLayout实现模拟启动页动画和轮播图

目录效果图展示启动页效果轮播图效果MotionLayout详解准备工作正题轮播图效果实现ConstraintSetTransitionCarousel浅述启动页的实现插入gif图源码在这里&#xff1a; 源码链接本文是用java写的效果图展示 下面是本博客我使用真机所实现的功能展现&#xff0c;方便大家根据自身…

化妆品行业的数字进化论:S2B2B电商网站如何助力化妆品企业打造增长新动能

近年来&#xff0c;伴随着国家经济的快速发展和消费者对“美”的追求日益强烈&#xff0c;大大推动了化妆品行业的蓬勃发展&#xff0c;根据公开数据显示&#xff0c;2021年我国化妆品零售总额达4026亿元&#xff0c;较2020年同比增长18.40%&#xff0c;我国目前已成为全球第二…

一篇文章让你全方位掌握git版本控制管理

注&#xff1a;侵权请联系作者删除 目录 1.引入&#xff1a; 2.Git 的工作区域和流程 3.stash区域 4.git基本操作 A.git add B.git commit c.git pull D.git fetch E.git branch F.git init 5.在项目中实际运用案例&#xff1a; A.在github上创建一个新仓库 B.复制刚创建…

matlab使用hampel滤波,去除异常值

此示例显示了Hampel用于检测和删除异常值的过程的 实现。 最近我们被客户要求撰写关于hampel滤波的研究报告&#xff0c;包括一些图形和统计输出。 产生一个包含24个样本的随机信号x。 重置随机数生成器以获得可重复的结果。 rng defaultlx 24; x randn(1,lx); 围绕x的每…

网页前端知识汇总(六)——如何让网页全部内容显示成灰色

最近很多做网站前端的技术员是不是都接到了老板的任务&#xff0c;让网站的网页显示效果都变成灰色&#xff0c;这个也是随某些事件的发生或者某些专题内容觉得需要这样做的&#xff0c;大部分用于大家都不愿意看到的专题事件如某某烈士&#xff0c;逝去的伟人等&#xff1b;大…