如何使用ssm实现社区管理与服务的设计与实现

news2024/11/16 4:15:38

@TOC

ssm031社区管理与服务的设计与实现+jsp

第一章 绪论

1.1研究背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

对于社区管理和服务方面,虽然现在已经有利用信息技术运作社区管理和服务的例子,但大都处于起步阶段,有的仅仅是一些静态的网页设计或单纯的搬一些必需的表格上电脑,缺乏互动性,这些并没有很好的利用信息技术实现真正的社区管理和服务的自动化。因此为了解决这一问题,更好的为社区居民服务,选择开发本社区管理与服务系统。

在互联网的迅速发展下,局域网的普及,为建立社区管理与服务系统的设计与实现提供了基础条件。社区管理与服务系统与传统的社区管理与服务方式相比,有着无法比拟的优点,网络共享、传播速度快的特点,社区居民可以随时随地进入系统查询所需信息,同时管理员可通过计算机可对系统相关信息进行全面管理,更好的为广大社区居民服务。

1.2 研究现状

随着计算机的普及,信息技术也得到了空前的发展,计算机应用的领域也越来越广泛。提高处理事情的效率也已经成为了各行各业所追求的目标。

在国外,由于计算机发展的比较早,信息技术发展相比于国内更加快速,况且国外对于计算机系统应用的也是广泛。在国外社区管理与服务系统很早就已经开始进行实施了,而且效果相当不错。由于国外应用社区管理与服务系统的时间很长,所以使得他们在实际的工作中发现了计算机系统的不足之处,并将这些不足之处进行弥补。也是通过这些不足之出,国外的研究人员也逐渐制定了完善的规则和标准。并将其应用到社区管理与服务系统中。使得软件系统技术得到了长足的发展。

在国内,计算机普及的时间比较短,信息技术发展的还不是很完善,对于计算机信息应用的也不是很多,对计算机系统了解还不是透彻,导致计算机系统在实际应用中的实际效果与预期效果大相径庭,国内缺少的是解决计算机系统出现的问题的经验,因为对计算机系统的应用太少,国内缺少的是解决计算机系统所产生的问题的经验,想要社区管理与服务系统方面的研究水平得到提高,就要多遇到问题,然后解决问题,这样积累经验的速度才是最快的。

1.3 研究内容

根据社区管理与服务系统编写的论文主要阐述了社区管理与服务系统的开发过程中使用的技术,首先进行系统需求分析,进而进行系统设计,最后才是系统功能实现以及测试几个部分,在开始编写论文之前亲自到图书馆借阅Java书籍,MYSQL数据库书籍等编程书籍,然后针对开发的社区管理与服务系统,去网上查找了很多别人做好的系统,根据他们的功能设计进行自己的系统的系统功能结构设计,出具需求报告,最后才是进行程序编码,系统完成后才能进行测试和最后的验收工作,程序开发流程大致如此。

这次编写的论文包含了6个部分的内容,具体内容如下:

第一部分绪论:文章主要从课题背景以及研究现状综合阐述了开发此系统的必要性。

第二部分相关技术:系统开发用到的各种技术都大致做出了简介

第三部分系统分析:从可行性分析和功能需求分析等角度综合研究了此次开发的系统

第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示

第五部分系统实现:进行系统主要功能模块的界面展示

第六部分系统测试:检验程序是否达到预期目标

第二章 系统关键技术

2.1 Java简介

Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任何地方都可以运行[1]。除此之外,它还拥有简单的语法和实用的类库,让编程人员可以尽可能将精力集中在问题的求解上,并且许多开源项目和科研成果都是采用它实现的。

在1995年这一年的5月份,著名的Sun Microsystems公司在程序开发设计上面郑重推出一种面向对象开发的程序设计语言——Java,最开始的时候Java是由詹姆斯.高斯林这位伟大的JAVA之父来进行主导,但是在后来由于各种原因,让甲骨文公司这个针对商业程序创建了oracle大型数据库的公司收购了Java[3]。Java的平台总共算下来有3个,分别为javaME和javaSE以及javaEE这3个java平台。下面将对其进行分别介绍。

(1)在电脑桌面程序的开发上面需要选择JavaME,这个用得也比较多。

(2)企业也会根据工作以及业务需要开发各种软件,那么就会选用JavcEE这个支持企业版软件的开发的Java平台,JavcEE主攻运用在企业领域上面的web应用,JavcEE也在javaSE的基础上获得了比如jsp技术 ,Servlet技术等程序开发技术的支持。

(3)现在生活中手机的普及化,也使得手机端这样的移动设备的软件的兴起,JavaME这个迷你版java平台就能运用于移动端的软件开发操作。

2.2 MySql数据库

MySQL 是关系型数据库管理系统的代表, 因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。[13]

MySQL具有开放性,它是一种关系型数据库管理系统,并且它的源代码可以被大众所熟知[3]。由于MySQL是开放源代码的,因此,只要经过授权就可以在自己需求的基础上对其进行修改。MySQL因为其固有的特点而备受关注,它具有很强的适应性,并且十分可靠,查询速度快。MySQL安装起来非常方便,且数据存储量大,不需要事务化处理。Sql语言拥有很多的方法,在项目中编写sql语句时使用起来是非常方便的,不会像其他语言那样需要编写更多的语句。正因为MySQL使用sql语言进行数据库管理,所以它收到了大多数程序员的热爱。

2.3 B/S结构

目前软件项目的开发存在两种架构模式,就是B/S模式和C/S模式,C/S模式就是较早流行的客户端和服务端模式,要使用新版应用需要暂停使用更新升级,就好比现在手机上的各种APP应用。而这次课题项目使用的是基于B/S,就是浏览器/服务端而开发的web项目。应用的更新都在服务端上进行,而且项目维护方便,不需要安装,只需要有浏览器和网络就可以了,越来越多的web项目被开发出来,也得到用户的认可。

系统的设计模式是C/S结构的一种变化或者改进的结构,即使B/S结构,又可以称为Browser/Server(浏览器/服务器)结构,是跟着随着Internet技术的兴起的。这种结构是能够在WWW浏览器完全实现用户的界面,事务逻辑有部分是在前端实现的。但是,主要的还是在服务器端实现的,形成3-tier结构。B/S结构大体是使用逐渐成熟的WWW浏览器技术和各种Script语言以及ActiveX技术,通过浏览器就可实现原来需要复杂专用软件才能实现出需要的功能,还非常的节约成本,这是一种升级的系统构造技术。

图2-1 B/S模式三层结构图

2.4 Tomcat服务器

Tomcat在JSP 程序调试中应用广泛,它本身就是一款轻量级的源代码开放的能够支持jsp和servlets的目前比较主流的Web 服务器。普遍适用于中小型开发系统以及同时访问系统的用户数量比较少的场景。Tomcat默认模式实际上是Servlet容器,另外Tomcat服务器它能够处理html文件的功能,这点跟Web服务器和IIS同样。只是在处理html文件上,Tomcat服务器没有Apache服务器优越。Tomcat发展以来,目前已经更新到9.0版本了。之所以选择Tomcat服务器来源于它的先进技术,稳定性能等优点,当然最主要的还是Java程序开发者对Tomcat服务器的接纳和认可,Tomcat服务器也深受某些软件开发商的喜爱。

第三章 系统分析

3.1可行性分析

在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、经济上以及运行上等方面来考虑这个系统到底值不值得开发。

3.1.1技术可行性

本文将开发的系统,将采用的关键技术包括Java编程语言、B/S结构、MYSQL数据库存储技术等。开发程序选择的是面向对象的,功能强大的,简单易用的Java程序设计语言,数据库的开发工具使用到了MYSQL数据库,由于自己之前接触过一些简单的程序开发方面的设计作品,所以对Eclipse工具的使用比较熟练,对于数据库的操作技巧也有一定的积累。另外,程序开发需要在自己电脑上安装的软件并不多,在win7操作系统的大环境下,能够完全搭建好程序开发的操作环境,比如Eclipse工具,MYSQL数据库工具,以及处理程序图片的Photoshop工具等都能安装在自己的电脑上。总的说来,开发这个程序在技术上是可以实现的,该项目的开发是有保障的。

3.1.2经济可行性

开发该系统时,优先考虑了使用网页来完成该系统。从已有的Web网页开发的案例、资料中,可知Web所需要的软硬件简单,切开发成本低。且从引进该系统后的预想表现将会比传统方式优异,其具有高效、低成本的特点。可以大量节省管理的人力、物力,具有一定经济效益和社会效益。综上所述,该系统具有高经济可行性

3.1.3运行可行性

运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。以目前信息技术的普及程度之广、相关工作的操作人员的水平之高,是足以胜任的。综上所述,该系统具有高运行可行性。

3.1.4法律可行性

(1)所使用的技术或者资料(书籍、文献、软件)合乎中国法律。

(2)所开发过程不涉合同、侵权、责任和各种法律相抵的问题。

(3)所完成系统不存在侵犯版权问题。

(4)完全符合中国的《中华人民共和国著作权法》和《计算机软件保护条例》。

综上所述,该系统具有高法律可行性。

通过分析论证,该社区管理与服务系统总体上是具有高可行性的。

3.2 系统性能分析

达到如以下的性能需求指标,可以保证系统的安全性、可靠性、稳定性,需要:

(1)系统响应的精确性和实时性

这是本系统必要的性能。考虑到未来系统可能承受的工作量,需要能够承担得起企业级的信息处理需求。实时性是该系统的生命线,因此需采用软实时系统来进行保证。

(2)系统的开放性和系统的可扩充性

本系统是一个较为初期的一个雏形,以后势必会根据的社区管理与服务需求的扩大或转变。这就要求本系统需要提供足够的开放型和可扩充性,只要符合本系统的设计准则都可以将新的模块加入。通过这样的升级、维护来完成本系统后期的生命周期。

(3)系统的易用性和易维护性

要求不论是熟悉或不熟悉计算机的用户都可以对系统进行有效的人机交互。因此提供给用户一个友好、漂亮的图形接口是非常重要的。这可以通过发一些纸质和实际的界面模型问卷调查来获得最佳的效果。此外,也考虑到维护本系统的操作人员,有效的手段的数据备份、管理和错误检测、恢复需要被提供给相关的人员。

(4)系统的响应速度

要求系统在任何情况下的平均响应速度达到秒级,具有软实时性。一是为了保证了系统的工作效率,二为了防止系统错误、瘫痪。

3.3 系统功能分析

本社区管理与服务系统主要包括管理员功能模块和社区用户功能模块两大部分,下面分别介绍其功能:

(1)管理员功能模块

管理员是这两类用户中权限最高的,管理员登录后可对系统进行全面管理,确保系统正常稳定运行,管理员主要功能包括个人中心、社区用户管理、社区停车管理、社区公共场所管理、新闻类型管理、新闻资讯管理、社区政务服务管理、社区活动管理、活动报名管理、服务类型管理、社区安保维护管理、住户反馈管理、公共场所预约管理、社区论坛以及系统管理。管理员用例图如图3-1所示。

图3-1 管理员用例图

(2)社区用户功能模块

社区用户在系统前台可查看系统信息,包括首页、社区公共场所、新闻资讯、社区政务服务、社区活动、论坛信息等,注册登录后主要功能模块包括个人中心、活动报名管理、住户反馈管理以及公告场所预约管理,社区用户用例图如图3-2所示。

图3-2 社区用户用例图

3.4 系统流程分析

3.4.1注册流程

未有账号的社区用户可进行注册操作,注册流程图如图3-3所示。

图3-3 注册流程图

3.4.2登录流程

登录模块主要满足了管理员和社区用户的权限登录,用户在登录界面输入用户名和密码,点击登录,通过验证,进入系统,登录流程图如图3-4所示。

图3-4登录流程图

3.4.3活动报名流程

社区用户在活动报名时需要登录系统,只要登录后才可进行活动报名操作,用户活动报名的流程分析如图3-5所示。

图3-5 活动报名流程图

第四章 系统设计

4.1系统概要设计

本社区管理与服务系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构,图4-1就是开发出来的程序工作原理图。

图4-1 系统工作原理图

4.2 系统结构设计

根据前面的各项设计分析,按照系统开发的基本理念对网站进行分解,从模块上主要可分为管理员功能模块和用户功能模块两大部分,本社区管理与服务系统结构图如图4-2所示。

图4-2 系统结构图

4.3系统顺序图设计

4.3.1登录模块顺序图

登录模块主要完成了社区用户和管理员的权限登录,登录模块的顺序图如图 4-3所示。

图4-3用户登录顺序图

4.3.2添加信息模块顺序图

管理员和社区用户登录后均可进行统计信息操作,添加信息顺序图如图4-4所示。

图4-4添加信息顺序图

4.4数据库设计

4.4.1 数据库E-R图设计

系统E-R图就是系统的实体关系图,它是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法。构成E-R图的基本要素是实体、属性和关系。实体是指客观存在并可相互区分的事特;属性指指实体所具有的每一个特性。根据数据库中的几个表分别绘制数据库的实体图。以下给出本系统中比较重要的实体E-R图。

(1)社区论坛信息实体E- R图,如图4-5所示

图4-5 社区论坛信息实体图

(2)管理员信息实体E- R图,如图4-6所示:

图4-6 管理员信息实体图

(3)社区用户信息实体E- R图,如图4-7所示:

图4-7 社区用户信息实体图

(4)社区活动信息实体E- R图,如图4-8所示:

图4-8 社区活动信息实体图

(5)社区公共场所信息实体E- R图,如图4-9所示:

图4-9 区公共场所信息实体图

4.7.2 数据库表设计

本社区管理与服务系统需要后台数据库,本系统采用MYSQL数据库作为数据存储,下面介绍数据库中的各个表的详细信息。

表4-1 社区论坛信息表(forum)

字段名数据类型是否允许空字段含义
idbigint(20)NOT NULL编号
addtimetimestampNULL创建时间
titlevarchar(200)NULL帖子标题
contentlongtextNULL帖子内容
parentidbigint(20)NULL父节点编号
useridbigint(20)NULL用户编号
usernamevarchar(200)NULL用户名
isdonevarchar(200)NULL状态

表4-2 管理员信息表(users)

字段名数据类型是否允许空字段含义
idbigint(20)NOT NULL编号
usernamevarchar(100)NULL用户名
passwordvarchar(100)NULL密码
rolevarchar(100)NULL角色
addtimetimestampNULL新增时间

表4-3 社区用户信息表(shequyonghu)

字段名数据类型是否允许空字段含义
idbigint(20)NOT NULL编号
addtimetimestampNULL创建时间
yonghuzhanghaovarchar(200)NULL用户账号
mimavarchar(200)NULL密码
yonghuxingmingvarchar(200)NULL用户姓名
xingbievarchar(200)NULL性别
nianlingvarchar(200)NULL年龄
touxiangvarchar(200)NULL头像
yonghushoujivarchar(200)NULL用户手机
zhuzhivarchar(200)NULL住址

表4-4 社区活动信息表(shequhuodong)

字段名数据类型是否允许空字段含义
idbigint(20)NOT NULL编号
addtimetimestampNULL创建时间
huodongmingchengvarchar(200)NULL活动名称
huodongtupianvarchar(200)NULL活动图片
`baomingtiaojianvarchar(200)NULL报名条件
kaishishijiandateNULL开始时间
jieshushijiandateNULL结束时间
huodongneironglongtextNULL活动内容
huodongdidianvarchar(200)NULL活动地点
jubanfang`varchar(200)NULL举办方
lianxidianhuavarchar(200)NULL联系电话

表4-5 社区公共场所信息表(shequgonggongchangsuo)

字段名数据类型是否允许空字段含义
idbigint(20)NOT NULL编号
addtimetimestampNULL创建时间
changsuomingchengvarchar(200)NULL场所名称
`didianvarchar(200)NULL地点
fengmiantupianvarchar(200)NULL封面图片
yongtulongtextNULL用途
fuzerenvarchar(200)NULL负责人
`lianxidianhuavarchar(200)NULL联系电话
kaifangshijianvarchar(200)NULL开始时间

第五章 系统的实现

5.1社区用户功能模块的实现

社区用户进入系统前台可查看系统信息,包括首页、社区公共场所、新闻资讯、社区政务服务和社区活动等,系统主界面如图5-1所示。

图5-1 系统主界面

5.1.1社区用户注册界面

未有账号的社区用户可进入注册界面进行注册操作,社区用户注册界面如图5-2所示 。

图5-2 社区用户注册界面

5.1.2社区用户登录界面

社区用户要想实现活动报名等操作,必须登录系统,社区用户登录界面如图5-3所示。

图5-3 社区用户登录界面

5.1.3论坛发帖界面

社区用户登录后可进行论坛发帖操作,论坛发帖界面如图5-4所示。

图5-4 论坛发帖界面

5.1.4社区活动详情界面

社区用户可选择社区活动查看详情信息,登录后可实现报名操作,社区活动详情界面如图5-5所示。

图5-5 社区活动详情界面

5.1.5社区公共场所详情界面

社区用户可选择社区公共场所查看详情信息,登录后可进行预约,社区公共场所详情界面如图5-6所示。

图5-6 社区公共场所详情界面

5.1.6社区活动报名界面

社区用户可选择活动进行报名操作,在报名时需要填写相关信息,社区活动报名界面如图5-7所示

图5-7 社区活动报名界面

5.1.7住户反馈界面

社区用户登录后可进行统计住户反馈信息,住户反馈界面如图5-8所示

图5-8 住户反馈界面

5.2管理员功能模块的实现

5.2.1管理员登录界面

管理员要想进入后台对系统进行管理操作,必须登录系统后台,管理员登录界面如图5-9所示。

图5-9 管理员登录界面

5.2.2社区用户管理界面

管理员在社区用户管理界面可查看所有社区用户信息,并可对其进行修改和删除操作,社区用户管理界面如图5-10所示。

图5-10 社区用户管理界面

5.2.社区公共场所管理界面

管理员可新增、编辑和删除社区公共场所信息,社区公共场所管理界面如图5-11所示,添加社区公共场所界面展示如图5-12所示。

图5-11 社区公共场所管理界面

图5-12 添加社区公共场所界面

5.2.4社区活动管理界面

管理员可新增、修改和删除社区活动信息,社区活动管理界面如图5-13所示。

图5-13 社区活动管理界面

5.2.5活动报名管理界面

管理员可查看社区用户活动报名信息,并可对其进行审核、修改和删除操作,活动报名管理界面如图5-14所示。

图5-14 活动报名管理界面

5.2.6住户反馈管理界面

管理员可查看社区住户反馈信息,并可对其进行审核、修改和删除操作,住户反馈管理界面展示如图5-15所示。

图5-15 住户反馈管理界面

FuwuleixingController.java
package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.FuwuleixingEntity;
import com.entity.view.FuwuleixingView;

import com.service.FuwuleixingService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 服务类型
 * 后端接口
 * @author 
 * @email 
 * @date 2021-02-27 15:35:54
 */
@RestController
@RequestMapping("/fuwuleixing")
public class FuwuleixingController {
    @Autowired
    private FuwuleixingService fuwuleixingService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,FuwuleixingEntity fuwuleixing, HttpServletRequest request){

        EntityWrapper<FuwuleixingEntity> ew = new EntityWrapper<FuwuleixingEntity>();
    	PageUtils page = fuwuleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fuwuleixing), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,FuwuleixingEntity fuwuleixing, HttpServletRequest request){
        EntityWrapper<FuwuleixingEntity> ew = new EntityWrapper<FuwuleixingEntity>();
    	PageUtils page = fuwuleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fuwuleixing), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( FuwuleixingEntity fuwuleixing){
       	EntityWrapper<FuwuleixingEntity> ew = new EntityWrapper<FuwuleixingEntity>();
      	ew.allEq(MPUtil.allEQMapPre( fuwuleixing, "fuwuleixing")); 
        return R.ok().put("data", fuwuleixingService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(FuwuleixingEntity fuwuleixing){
        EntityWrapper< FuwuleixingEntity> ew = new EntityWrapper< FuwuleixingEntity>();
 		ew.allEq(MPUtil.allEQMapPre( fuwuleixing, "fuwuleixing")); 
		FuwuleixingView fuwuleixingView =  fuwuleixingService.selectView(ew);
		return R.ok("查询服务类型成功").put("data", fuwuleixingView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        FuwuleixingEntity fuwuleixing = fuwuleixingService.selectById(id);
        return R.ok().put("data", fuwuleixing);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        FuwuleixingEntity fuwuleixing = fuwuleixingService.selectById(id);
        return R.ok().put("data", fuwuleixing);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody FuwuleixingEntity fuwuleixing, HttpServletRequest request){
    	fuwuleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(fuwuleixing);

        fuwuleixingService.insert(fuwuleixing);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody FuwuleixingEntity fuwuleixing, HttpServletRequest request){
    	fuwuleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(fuwuleixing);

        fuwuleixingService.insert(fuwuleixing);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody FuwuleixingEntity fuwuleixing, HttpServletRequest request){
        //ValidatorUtils.validateEntity(fuwuleixing);
        fuwuleixingService.updateById(fuwuleixing);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        fuwuleixingService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<FuwuleixingEntity> wrapper = new EntityWrapper<FuwuleixingEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = fuwuleixingService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	


}

DiscussshequgonggongchangsuoController.java
package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.DiscussshequgonggongchangsuoEntity;
import com.entity.view.DiscussshequgonggongchangsuoView;

import com.service.DiscussshequgonggongchangsuoService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 社区公共场所评论表
 * 后端接口
 * @author 
 * @email 
 * @date 2021-02-27 15:35:54
 */
@RestController
@RequestMapping("/discussshequgonggongchangsuo")
public class DiscussshequgonggongchangsuoController {
    @Autowired
    private DiscussshequgonggongchangsuoService discussshequgonggongchangsuoService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo, HttpServletRequest request){

        EntityWrapper<DiscussshequgonggongchangsuoEntity> ew = new EntityWrapper<DiscussshequgonggongchangsuoEntity>();
    	PageUtils page = discussshequgonggongchangsuoService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussshequgonggongchangsuo), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo, HttpServletRequest request){
        EntityWrapper<DiscussshequgonggongchangsuoEntity> ew = new EntityWrapper<DiscussshequgonggongchangsuoEntity>();
    	PageUtils page = discussshequgonggongchangsuoService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussshequgonggongchangsuo), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo){
       	EntityWrapper<DiscussshequgonggongchangsuoEntity> ew = new EntityWrapper<DiscussshequgonggongchangsuoEntity>();
      	ew.allEq(MPUtil.allEQMapPre( discussshequgonggongchangsuo, "discussshequgonggongchangsuo")); 
        return R.ok().put("data", discussshequgonggongchangsuoService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo){
        EntityWrapper< DiscussshequgonggongchangsuoEntity> ew = new EntityWrapper< DiscussshequgonggongchangsuoEntity>();
 		ew.allEq(MPUtil.allEQMapPre( discussshequgonggongchangsuo, "discussshequgonggongchangsuo")); 
		DiscussshequgonggongchangsuoView discussshequgonggongchangsuoView =  discussshequgonggongchangsuoService.selectView(ew);
		return R.ok("查询社区公共场所评论表成功").put("data", discussshequgonggongchangsuoView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo = discussshequgonggongchangsuoService.selectById(id);
        return R.ok().put("data", discussshequgonggongchangsuo);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo = discussshequgonggongchangsuoService.selectById(id);
        return R.ok().put("data", discussshequgonggongchangsuo);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo, HttpServletRequest request){
    	discussshequgonggongchangsuo.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(discussshequgonggongchangsuo);

        discussshequgonggongchangsuoService.insert(discussshequgonggongchangsuo);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo, HttpServletRequest request){
    	discussshequgonggongchangsuo.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(discussshequgonggongchangsuo);

        discussshequgonggongchangsuoService.insert(discussshequgonggongchangsuo);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody DiscussshequgonggongchangsuoEntity discussshequgonggongchangsuo, HttpServletRequest request){
        //ValidatorUtils.validateEntity(discussshequgonggongchangsuo);
        discussshequgonggongchangsuoService.updateById(discussshequgonggongchangsuo);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        discussshequgonggongchangsuoService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<DiscussshequgonggongchangsuoEntity> wrapper = new EntityWrapper<DiscussshequgonggongchangsuoEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = discussshequgonggongchangsuoService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	


}

DiscussxinwenzixunServiceImpl.java
package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.DiscussxinwenzixunDao;
import com.entity.DiscussxinwenzixunEntity;
import com.service.DiscussxinwenzixunService;
import com.entity.vo.DiscussxinwenzixunVO;
import com.entity.view.DiscussxinwenzixunView;

@Service("discussxinwenzixunService")
public class DiscussxinwenzixunServiceImpl extends ServiceImpl<DiscussxinwenzixunDao, DiscussxinwenzixunEntity> implements DiscussxinwenzixunService {


    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<DiscussxinwenzixunEntity> page = this.selectPage(
                new Query<DiscussxinwenzixunEntity>(params).getPage(),
                new EntityWrapper<DiscussxinwenzixunEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<DiscussxinwenzixunEntity> wrapper) {
		  Page<DiscussxinwenzixunView> page =new Query<DiscussxinwenzixunView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<DiscussxinwenzixunVO> selectListVO(Wrapper<DiscussxinwenzixunEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public DiscussxinwenzixunVO selectVO(Wrapper<DiscussxinwenzixunEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<DiscussxinwenzixunView> selectListView(Wrapper<DiscussxinwenzixunEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public DiscussxinwenzixunView selectView(Wrapper<DiscussxinwenzixunEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}

}

bootstrap-colorpicker.min.js
/*!
 * Bootstrap Colorpicker
 * (c) 2012 Stefan Petre
 * http://mjaalnir.github.io/bootstrap-colorpicker/
 * http://www.apache.org/licenses/LICENSE-2.0.txt
 */(function(d){var k=function(a){this.value={h:1,s:1,b:1,a:1};this.setColor(a)};k.prototype={constructor:k,setColor:function(a){a=a.toLowerCase();var b=this;d.each(e.stringParsers,function(c,d){var f=d.re.exec(a),f=f&&d.parse(f),g=d.space||"rgba";return f?(b.value="hsla"===g?e.RGBtoHSB.apply(null,e.HSLtoRGB.apply(null,f)):e.RGBtoHSB.apply(null,f),!1):!0})},setHue:function(a){this.value.h=1-a},setSaturation:function(a){this.value.s=a},setLightness:function(a){this.value.b=1-a},setAlpha:function(a){this.value.a=
parseInt(100*(1-a),10)/100},toRGB:function(a,b,c,d){a||(a=this.value.h,b=this.value.s,c=this.value.b);var f,g,e;a=360*a%360/60;e=c*b;b=e*(1-Math.abs(a%2-1));c=f=g=c-e;a=~~a;c+=[e,b,0,0,b,e][a];f+=[b,e,e,b,0,0][a];g+=[0,0,b,e,e,b][a];return{r:Math.round(255*c),g:Math.round(255*f),b:Math.round(255*g),a:d||this.value.a}},toHex:function(a,b,c,d){a=this.toRGB(a,b,c,d);return"#"+(16777216|parseInt(a.r)<<16|parseInt(a.g)<<8|parseInt(a.b)).toString(16).substr(1)},toHSL:function(a,b,c,d){a||(a=this.value.h,
b=this.value.s,c=this.value.b);var f=(2-b)*c;b*=c;b=0<f&&1>=f?b/f:b/(2-f);1<b&&(b=1);return{h:a,s:b,l:f/2,a:d||this.value.a}}};var l=0,h=function(a,b){l++;this.element=d(a).attr("data-colorpicker-guid",l);var c=b.format||this.element.data("color-format")||"hex";this.format=e.translateFormats[c];this.isInput=this.element.is("input");this.component=this.element.is(".colorpicker-component")?this.element.find(".add-on, .input-group-addon"):!1;this.picker=d(e.template).attr("data-colorpicker-guid",l).appendTo("body").on("mousedown.colorpicker",
d.proxy(this.mousedown,this));if(this.isInput)this.element.on({"focus.colorpicker":d.proxy(this.show,this),"keyup.colorpicker":d.proxy(this.update,this)});else if(this.component)this.component.on({"click.colorpicker":d.proxy(this.show,this)});else this.element.on({"click.colorpicker":d.proxy(this.show,this)});if("rgba"===c||"hsla"===c)this.picker.addClass("alpha"),this.alpha=this.picker.find(".colorpicker-alpha")[0].style;this.component?(this.picker.find(".colorpicker-color").hide(),this.preview=
this.element.find("i")[0].style):this.preview=this.picker.find("div:last")[0].style;this.base=this.picker.find("div:first")[0].style;this.update();d(d.proxy(function(){this.element.trigger("create",[this])},this))};h.prototype={constructor:h,show:function(a){this.picker.show();this.height=this.component?this.component.outerHeight():this.element.outerHeight();this.place();d(window).on("resize.colorpicker",d.proxy(this.place,this));!this.isInput&&a&&(a.stopPropagation(),a.preventDefault());d(document).on({"mousedown.colorpicker":d.proxy(this.hide,
this)});this.element.trigger({type:"showPicker",color:this.color})},update:function(){var a=this.isInput?this.element.prop("value"):this.element.data("color");if("undefined"===typeof a||null===a)a="#ffffff";this.color=new k(a);this.picker.find("i").eq(0).css({left:100*this.color.value.s,top:100-100*this.color.value.b}).end().eq(1).css("top",100*(1-this.color.value.h)).end().eq(2).css("top",100*(1-this.color.value.a));this.previewColor()},hide:function(){this.picker.hide();d(window).off("resize",this.place);
d(document).off({mousedown:this.hide});this.isInput?""!==this.element.val()&&this.element.prop("value",this.format.call(this)).trigger("change"):(this.component&&""!==this.element.find("input").val()&&this.element.find("input").prop("value",this.format.call(this)).trigger("change"),this.element.data("color",this.format.call(this)));this.element.trigger({type:"hidePicker",color:this.color})},place:function(){var a=this.component?this.component.offset():this.element.offset();this.picker.css({top:a.top+
this.height,left:a.left})},destroy:function(){d(".colorpicker[data-colorpicker-guid="+this.element.attr("data-colorpicker-guid")+"]").remove();this.element.removeData("colorpicker").removeAttr("data-colorpicker-guid").off(".colorpicker");!1!==this.component&&this.component.off(".colorpicker");this.element.trigger("destroy",[this])},setValue:function(a){this.isInput?this.element.prop("value",a):(this.element.find("input").val(a),this.element.data("color",a));this.update();this.element.trigger({type:"changeColor",
color:this.color})},previewColor:function(){try{this.preview.backgroundColor=this.format.call(this)}catch(a){this.preview.backgroundColor=this.color.toHex()}this.base.backgroundColor=this.color.toHex(this.color.value.h,1,1,1);this.alpha&&(this.alpha.backgroundColor=this.color.toHex())},pointer:null,slider:null,mousedown:function(a){a.stopPropagation();a.preventDefault();var b=d(a.target).closest("div");if(!b.is(".colorpicker")){if(b.is(".colorpicker-saturation"))this.slider=d.extend({},e.sliders.saturation);
else if(b.is(".colorpicker-hue"))this.slider=d.extend({},e.sliders.hue);else if(b.is(".colorpicker-alpha"))this.slider=d.extend({},e.sliders.alpha);else return!1;var c=b.offset();this.slider.knob=b.find("i")[0].style;this.slider.left=a.pageX-c.left;this.slider.top=a.pageY-c.top;this.pointer={left:a.pageX,top:a.pageY};d(document).on({"mousemove.colorpicker":d.proxy(this.mousemove,this),"mouseup.colorpicker":d.proxy(this.mouseup,this)}).trigger("mousemove")}return!1},mousemove:function(a){a.stopPropagation();
a.preventDefault();var b=Math.max(0,Math.min(this.slider.maxLeft,this.slider.left+((a.pageX||this.pointer.left)-this.pointer.left)));a=Math.max(0,Math.min(this.slider.maxTop,this.slider.top+((a.pageY||this.pointer.top)-this.pointer.top)));this.slider.knob.left=b+"px";this.slider.knob.top=a+"px";this.slider.callLeft&&this.color[this.slider.callLeft].call(this.color,b/100);this.slider.callTop&&this.color[this.slider.callTop].call(this.color,a/100);this.previewColor();if(this.isInput)try{this.element.val(this.format.call(this)).trigger("change")}catch(c){this.element.val(this.color.toHex()).trigger("change")}else try{this.element.find("input").val(this.format.call(this)).trigger("change")}catch(d){this.element.find("input").val(this.color.toHex()).trigger("change")}this.element.trigger({type:"changeColor",
color:this.color});return!1},mouseup:function(a){a.stopPropagation();a.preventDefault();d(document).off({mousemove:this.mousemove,mouseup:this.mouseup});return!1}};d.fn.colorpicker=function(a,b){return this.each(function(){var c=d(this),e=c.data("colorpicker"),f="object"===typeof a&&a;if(!e)"destroy"!==a&&c.data("colorpicker",new h(this,d.extend({},d.fn.colorpicker.defaults,f)));else if("string"===typeof a)e[a](b)})};d.fn.colorpicker.defaults={};d.fn.colorpicker.Constructor=h;var e={translateFormats:{rgb:function(){var a=
this.color.toRGB();return"rgb("+a.r+","+a.g+","+a.b+")"},rgba:function(){var a=this.color.toRGB();return"rgba("+a.r+","+a.g+","+a.b+","+a.a+")"},hsl:function(){var a=this.color.toHSL();return"hsl("+Math.round(360*a.h)+","+Math.round(100*a.s)+"%,"+Math.round(100*a.l)+"%)"},hsla:function(){var a=this.color.toHSL();return"hsla("+Math.round(360*a.h)+","+Math.round(100*a.s)+"%,"+Math.round(100*a.l)+"%,"+a.a+")"},hex:function(){return this.color.toHex()}},sliders:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",
callTop:"setLightness"},hue:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},alpha:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"}},RGBtoHSB:function(a,b,c,d){a/=255;b/=255;c/=255;var f,e;f=Math.max(a,b,c);e=f-Math.min(a,b,c);a=60*(((0===e?0:f===a?(b-c)/e:f===b?(c-a)/e+2:(a-b)/e+4)+360)%6)/360;return{h:a||1,s:0===e?0:e/f,b:f,a:d||1}},HueToRGB:function(a,b,c){0>c?c+=1:1<c&&(c-=1);return 1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a},HSLtoRGB:function(a,b,c,d){0>b&&(b=0);b=0.5>=c?c*(1+
b):c+b-c*b;var f=2*c-b,g=a-1/3;c=Math.round(255*e.HueToRGB(f,b,a+1/3));a=Math.round(255*e.HueToRGB(f,b,a));b=Math.round(255*e.HueToRGB(f,b,g));return[c,a,b,d||1]},stringParsers:[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,
parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}}],template:'<div class="colorpicker dropdown-menu"><div class="colorpicker-saturation"><i><b></b></i></div><div class="colorpicker-hue"><i></i></div><div class="colorpicker-alpha"><i></i></div><div class="colorpicker-color"><div /></div></div>'}})(window.jQuery);

声明

本博客适用于广泛的学术和教育用途,包括但不限于个人学习、开发设计,产品设计。仅供学习参考,旨在为读者提供深入理解和学术研究的材料。

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

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

相关文章

[Meachines] [Easy] grandpa IIS 6.0+CVE-2017-7269+MS14-070权限提升

信息收集 IP AddressOpening Ports10.10.10.14TCP:80 $ nmap -p- 10.10.10.14 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 6.0 |_http-server-header: Microsoft-IIS/6.0 |_http-title: Under Construction | htt…

一文了解机器学习顶会ICML 2024的研究热点

对人工智能研究领域前沿方向的跟踪是提高科研能力和制定科研战略的关键。本文通过图文并茂的方式介绍了ICML 2024的研究热点&#xff0c;帮助读者了解和跟踪机器学习和人工智能的前沿研究方向。本推文的作者是许东舟&#xff0c;审校为邱雪和黄星宇。 1 会议介绍 ICML&#x…

揭秘!挑选随身WiFi的终极攻略:一篇文章教会你怎么挑选随身WiFi,学会对比各项参数,随身WiFi哪个好?

对于不方便拉宽带的大流量使用者&#xff0c;随身WiFi尤为重要。面对市场上琳琅满目的随身WiFi品牌和型号&#xff0c;许多用户感到无从下手。不同随身WiFi在性能、价格、续航等方面各有优势&#xff0c;如何挑选一款适合自己的随身WiFi成为了一大难题。本文将为您详细解析随身…

22 Message 组件

Tkinter Message 组件使用指南 Tkinter 的 Message 组件用于显示多行文本消息。它通常用于显示提示信息、警告或状态更新。Message 组件能够自动换行&#xff0c;以适应其分配的空间。以下是对 Message 组件的详细说明和一个使用案例。 Message 组件属性 text: 要显示的文本…

3D 打印的突破:热引发剂在立体光刻中的应用

在当今科技飞速发展的时代&#xff0c;3D打印技术作为一项具有创新性和颠覆性的技术&#xff0c;正不断改变着我们的生产和生活方式。今天&#xff0c;向大家介绍的是一项关于3D打印的重要研究成果《3D printing by stereolithography using thermal initiators》发表于《Natur…

【前端面试】call、apply 、bind、箭头函数

函数除了传参,还有一个调用上下文this,使用call、apply 、bind可以改变函数的this 在实际开发中,选择使用 call、apply 还是 bind 取决于你的具体需求和场景。以下是一些使用这些函数的常见情况: 1. 使用 call 的情况: 当你需要调用一个函数,并且需要明确指定 this 的上下…

【HarmonyOS NEXT星河版开发实战】天气查询APP

目录 前言 界面效果展示 首页 添加和删除 界面构建讲解 1. 获取所需数据 2. 在编译器中准备数据 3. index页面代码讲解 3.1 导入模块&#xff1a; 3.2 定义组件&#xff1a; 3.3 定义状态变量: 3.4 定义Tabs控制器: 3.5 定义按钮样式&#xff1a; 3.6 页面显示时触发…

【django进阶知识点】

day04 django进阶知识点 今日概要&#xff1a; 模板中间件ORM操作&#xff08;pymysql SQL语句&#xff09;session和cookie缓存&#xff08;很多种方式&#xff09; 内容回顾 请求周期 路由系统 最基本路由关系动态路由&#xff08;含正则&#xff09;路由分发不同的app中…

如何通过数据互通提升销售效率与客户满意度

在快速变化的市场中&#xff0c;品牌商与经销商之间的数据互通已成为提升竞争力的关键。让我们以知名品牌——百威啤酒为例&#xff0c;探讨与经销商数据互通如何帮助这些企业解决实际问题&#xff0c;并为各个部门带来益处。 假如一个以下场景 夏日狂欢节 想象一下&#xff…

Viper快速使用(超简单)

Viper主要是用来在配置管理方面用的&#xff0c;只要是稍微大一点的项目都需要进行配置管理&#xff0c;而Viper支持多种配置格式&#xff08;JSON、YAML、TOML&#xff09;登&#xff0c;可以配置环境变量&#xff0c;命令行参数登&#xff0c;使得应用程序配置的管理变得非常…

《机器学习》 决策树剪枝、树模型参数及案例演示

目录 一、决策树剪枝 1、什么是决策树剪枝&#xff1f; 2、如何剪枝 3、剪枝剪哪个位置的叶子结点 二、树模型参数及用法 1、参数种类 2、参数解释 1&#xff09;criterion&#xff1a;gini or entropy 2&#xff09;splitter&#xff1a;best or random 3&#xff0…

【解析几何笔记】6.三阶行列式

6. 三阶行列式 6.1 三阶行列式的定义 对三阶方阵 ( a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ) \begin{pmatrix} a_{1} & a_{2} & a_{3}\\ b_{1} & b_{2} & b_{3}\\ c_{1} & c_{2} &c_{3} \end{pmatrix} ​a1​b1​c1​​a2​b2​c2​​a3​b3​c3​​ …

案例分享—国外金融软件界面设计

国外金融软件界面设计追求简洁&#xff0c;旨在减少用户认知负担&#xff0c;通过直观布局与清晰信息架构&#xff0c;提升操作效率与用户体验 其简洁性还源于对金融数据精准呈现的重视&#xff0c;避免冗余元素干扰&#xff0c;确保用户快速获取关键信息&#xff0c;做出明智决…

《机器学习》周志华-CH2(模型评估与选择)

2.1经验误差与过拟合 2.1.1典型的机器学习过程 2.1.2误差 当有 m m m个样本&#xff0c;其中 a a a个分类错误&#xff0c;则错误率为 E a / m Ea/m Ea/m&#xff1b;相应地&#xff0c; 1 − a / m 1-a/m 1−a/m称为精度。 2.1.3过拟合与欠拟合 过拟合&#xff1a;学习能力…

【LeetCode每日一题】——1046.最后一块石头的重量

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 优先队列 二【题目难度】 简单 三【题目编号】 1046.最后一块石头的重量 四【题目描述】 有…

蓝队技能-应急响应篇钓鱼攻击邮件与文件EML还原蠕虫分析线索定性

知识点&#xff1a; 1、应急响应-钓鱼邮件-定性&排查 2、应急响应-恶意文件-应急&分析一、演示案例-蓝队技能-钓鱼攻击-邮件&附件&分析&排查 如何分析邮件安全性&#xff1a; 1、看发信人地址 2、看发信内容信息 3、看发信内容附件 4、看邮件原文源码…

31套科技风PPT模版免费下载

目录 资源名称&#xff1a;31套科技风PPT模板合集资源简介&#xff1a;部分展示&#xff1a;适用人群&#xff1a;资源内容&#xff1a;使用指南&#xff1a;资源下载链接&#xff08;免费&#xff0c;已设置0个积分下载&#xff09; 资源名称&#xff1a;31套科技风PPT模板合集…

【人工智能】Transformers之Pipeline(十二):零样本物体检测(zero-shot-object-detection)

目录 一、引言 二、零样本物体检测&#xff08;zero-shot-object-detection&#xff09; 2.1 概述 2.2 技术原理 2.3 应用场景 2.4.1 pipeline对象实例化参数 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言 pipeline&#xff08;管…

动态规划之买卖股票篇-代码随想录算法训练营第三十八天| 买卖股票的最佳时机ⅠⅡⅢⅣ,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

121. 买卖股票的最佳时机 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 讲解视频&#xff1a; 动态规划之 LeetCode&#xff1a;121.买卖股票的最佳时机1 题目描述&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定…

u盘加密工具哪款U盘加密工具好?6款U盘加密工具分享

数据泄露和非法拷贝成为企业面临的严峻挑战。为了保护敏感数据不被非法复制和传播&#xff0c;市场上涌现出了众多U盘加密工具。 本文将为您介绍六款功能强大、备受好评的U盘加密工具&#xff0c;帮助您选择最适合自己需求的加密解决方案。 1.安企神 它支持Windows、macOS和L…