Merge remote-tracking branch 'origin/master'

main
@t2652009480 2 years ago
commit 2f084ecc3d

@ -1,116 +0,0 @@
**项目说明**
- renren-fast是一个轻量级的前后端分离的Java快速开发平台能快速开发项目并交付【接私活利器】
- 支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库
- 前端地址https://gitee.com/renrenio/renren-fast-vue
- 代码生成器https://gitee.com/renrenio/renren-generator
<br>
**具有如下特点**
- 友好的代码结构及注释,便于阅读及二次开发
- 实现前后端分离通过token进行数据交互前端再也不用关注后端技术
- 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
- 页面交互使用Vue2.x极大的提高了开发效率
- 完善的代码生成机制可在线生成entity、xml、dao、service、vue、sql代码减少70%以上的开发任务
- 引入quartz定时任务可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能
- 引入API模板根据token作为登录令牌极大的方便了APP接口开发
- 引入Hibernate Validator校验框架轻松实现后端校验
- 引入云存储服务,已支持:七牛云、阿里云、腾讯云等
- 引入swagger文档支持方便编写API接口文档
<br>
**项目结构**
```
renren-fast
├─db 项目SQL语句
├─common 公共模块
│ ├─aspect 系统日志
│ ├─exception 异常处理
│ ├─validator 后台校验
│ └─xss XSS过滤
├─config 配置信息
├─modules 功能模块
│ ├─app API接口模块(APP调用)
│ ├─job 定时任务模块
│ ├─oss 文件服务模块
│ └─sys 权限模块
├─RenrenApplication 项目启动类
├──resources
│ ├─mapper SQL对应的XML文件
│ └─static 静态资源
```
<br>
**如何交流、反馈、参与贡献?**
- 开发文档https://www.renren.io/guide
- Git仓库https://gitee.com/renrenio/renren-fast
- [人人开源社区](https://www.renren.io/community)https://www.renren.io/community
- 官方QQ群324780204、145799952
- 技术讨论、二次开发等咨询、问题和建议,请移步到人人开源社区,我会在第一时间进行解答和回复!
- 如需关注项目最新动态请Watch、Star项目同时也是对项目最好的支持
- 微信扫码并关注【人人开源】,获得项目最新动态及更新提醒
<br>
![输入图片说明](https://images.gitee.com/uploads/images/2019/0307/090140_260d672d_63154.jpeg "在这里输入图片标题")
<br>
**技术选型:**
- 核心框架Spring Boot 2.1
- 安全框架Apache Shiro 1.4
- 视图框架Spring MVC 5.0
- 持久层框架MyBatis 3.3
- 定时器Quartz 2.3
- 数据库连接池Druid 1.0
- 日志管理SLF4J 1.7、Log4j
- 页面交互Vue2.x
<br>
**后端部署**
- 通过git下载源码
- idea、eclipse需安装lombok插件不然会提示找不到entity的get set方法
- 创建数据库renren_fast数据库编码为UTF-8
- 执行db/mysql.sql文件初始化数据
- 修改application-dev.yml更新MySQL账号和密码
- Eclipse、IDEA运行RenrenApplication.java则可启动项目
- Swagger文档路径http://localhost:8080/renren-fast/swagger/index.html
- Swagger注解路径http://localhost:8080/renren-fast/swagger-ui.html
<br>
**前端部署**
- 本项目是前后端分离的,还需要部署前端,才能运行起来
- 前端下载地址https://gitee.com/renrenio/renren-fast-vue
- 前端部署文档https://gitee.com/renrenio/renren-fast-vue/wikis/Home
- 前端部署完毕就可以访问项目了账号admin密码admin
<br>
**项目演示**
- 演示地址http://demo.open.renren.io/renren-fast
- 账号密码admin/admin
<br>
**接口文档效果图:**
![输入图片说明](https://images.gitee.com/uploads/images/2018/0728/145341_73ba6f75_63154.jpeg "在这里输入图片标题")
<br> <br> <br>
**效果图:**
![输入图片说明](https://gitee.com/uploads/images/2018/0505/173115_d3c045ef_63154.jpeg "在这里输入图片标题")
![输入图片说明](https://gitee.com/uploads/images/2018/0624/225728_b06f72b3_63154.jpeg "在这里输入图片标题")
![输入图片说明](https://gitee.com/uploads/images/2018/0505/173140_79928d91_63154.jpeg "在这里输入图片标题")
![输入图片说明](https://gitee.com/uploads/images/2018/0505/173151_12d065db_63154.jpeg "在这里输入图片标题")
<br>

@ -76,6 +76,10 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
{
throw new ServiceException("400","课程名称不能为空");
}
if (courseVo.getCourseIcon().isEmpty())
{
throw new ServiceException("400","请选择一个默认图标");
}
//查询名称查询课程
int sum = courseMapper.selectByName(courseVo.getCourseName());
if (sum>0)
@ -93,7 +97,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
throw new ServiceException("403","归属目录不能为空");
}
//查询目录id并赋值给course
Integer id = directoryMapper.selectByName(dirName,"3");
Integer id = directoryMapper.selectByName(dirName,"1");
if (id==null)
{
throw new ServiceException("403","归属目录不存在");
@ -144,7 +148,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
throw new ServiceException("403","归属目录不能为空");
}
//查询目录id并赋值给course
Integer id = directoryMapper.selectByName(dirName,"3");
Integer id = directoryMapper.selectByName(dirName,"1");
if (id==null)
{
throw new ServiceException("403","归属目录不存在");
@ -194,8 +198,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
{
throw new ServiceException("400","请选择一个icon");
}
directory.setDirIden("3");
Integer integer = directoryMapper.selectByName(directory.getDirName(),"3");
Integer integer = directoryMapper.selectByName(directory.getDirName(),"1");
if (integer!=null)
{
throw new ServiceException("400","目录已存在");

@ -16,7 +16,7 @@ import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
/*下载控制层*/
@RestController
@RequestMapping("/download")
public class DownloadController {
@ -45,7 +45,6 @@ public class DownloadController {
vo.setDownloadImg(this.path);
int count = downloadService.addDownload(vo);
return JsonResult.success();
}
@ -62,7 +61,6 @@ public class DownloadController {
public JsonResult<DownloadVo> queryById(Integer id){
DownloadVo downloadAddVo =downloadService.queryById(id);
return JsonResult.success(downloadAddVo);
}
@ApiOperation("更新下载")

@ -68,7 +68,7 @@ public class DownloadServiceImpl extends ServiceImpl<DownloadMapper, Download> i
Download download = new Download();
BeanUtils.copyProperties(vo, download);
//查询归属目录id
Integer dirId = directoryMapper.selectByName(vo.getDirName(), "5");
Integer dirId = directoryMapper.selectByName(vo.getDirName(), "3");
if (dirId == null) {
throw new ServiceException("400", "目录不存在");
}
@ -134,7 +134,11 @@ public class DownloadServiceImpl extends ServiceImpl<DownloadMapper, Download> i
Download download = new Download();
BeanUtils.copyProperties(vo, download);
//查询归属目录id
Integer dirId = directoryMapper.selectByName(vo.getDirName(), "5");
Integer dirId = directoryMapper.selectByName(vo.getDirName(), "3");
if (dirId==null)
{
throw new ServiceException("400", "归属目录不能为空");
}
download.setDirId(dirId);
download.setDownloadUpdatetime(new Date());
//添加download
@ -156,7 +160,7 @@ public class DownloadServiceImpl extends ServiceImpl<DownloadMapper, Download> i
throw new ServiceException("400", "请选择一个icon");
}
/*查询目录名是否存在*/
Integer count = directoryMapper.selectByName(directory.getDirName(), "5");
Integer count = directoryMapper.selectByName(directory.getDirName(), "3");
if (count != null) {
throw new ServiceException("400", "目录已存在");
}

@ -6,7 +6,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(urlPatterns = "*")//表示所有请求都走这个过滤器(可以用来设置编码)
//@WebFilter(urlPatterns = "*")//表示所有请求都走这个过滤器(可以用来设置编码)
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {

@ -8,19 +8,20 @@ import com.zhiyun.zhiyun03.invite.entity.Invite;
import com.zhiyun.zhiyun03.invite.vo.InviteVo;
import java.util.List;
/*服务层*/
public interface InviteService extends IService<Invite> {
/*查询服务*/
PageVO<InviteVo> queryInvite(Integer page, Integer limit);
/*根据id查询*/
InviteVo queryInviteById(Integer id);
/*添加服务*/
int addInvite(InviteVo vo);
/*删除服务*/
int delInviteById(Integer id);
/*更新服务*/
int updateById(InviteVo vo);
/*添加目录*/
void addInviteDirectory(Directory directory);
/*查询目录*/
List<DirectoryVo> queryInviteDirectory();
}

@ -85,17 +85,17 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
{
throw new ServiceException("403","就业名已存在");
}
//将vo值传给download
//将vo值传给就业
Invite invite = new Invite();
BeanUtils.copyProperties(vo,invite);
//查询归属目录id
Integer dirId = directoryMapper.selectByName(vo.getDirName(),"7");
Integer dirId = directoryMapper.selectByName(vo.getDirName(),"8");
if (dirId==null){
throw new ServiceException("400","目录不存在");
}
invite.setDirId(dirId);
invite.setInviteUpdatetime(new Date());
//添加download
//添加就业
int insert = inviteMapper.insert(invite);
if (insert>0)
{
@ -144,7 +144,7 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
Invite invite = new Invite();
BeanUtils.copyProperties(vo,invite);
//查询归属目录id
Integer dirId = directoryMapper.selectByName(vo.getDirName(),"7");
Integer dirId = directoryMapper.selectByName(vo.getDirName(),"8");
invite.setDirId(dirId);
invite.setInviteUpdatetime(new Date());
//添加download
@ -157,7 +157,7 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
throw new ServiceException("400","更新失败");
}
}
/*添加目录*/
@Override
public void addInviteDirectory(Directory directory) {
if (directory.getDirName().isEmpty())
@ -169,7 +169,7 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
throw new ServiceException("400","请选择一个icon");
}
Integer count = directoryMapper.selectByName(directory.getDirName(),"7");
Integer count = directoryMapper.selectByName(directory.getDirName(),"8");
if (count!=null)
{
throw new ServiceException("400","目录已存在");
@ -183,7 +183,7 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
directory.setId(uuid);
directoryMapper.addInviteDirectory(directory);
}
/*查询目录*/
@Override
public List<DirectoryVo> queryInviteDirectory() {

@ -20,7 +20,7 @@ import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
/*服务控制层*/
@Api("服务相关")
@RestController
@RequestMapping("/api/serve")
@ -29,7 +29,6 @@ public class ServeController {
@Resource
private AliyunOssUtil ossUtil;
@Resource
private ServeService serveService;

@ -8,19 +8,22 @@ import com.zhiyun.zhiyun03.serve.entity.Serve;
import com.zhiyun.zhiyun03.serve.vo.ServeVo;
import java.util.List;
/*
*/
public interface ServeService extends IService<Serve> {
//查询服务
PageVO<ServeVo> queryServe(Integer page, Integer limit);
/*添加服务*/
int addServe(ServeVo vo);
/*删除服务*/
int delServe(Integer id);
/*根据id查询*/
ServeVo queryById(Integer id);
/*更新服务*/
int updateServe(ServeVo vo);
/*添加目录*/
void addServiceDirectory(Directory directory);
/*查询目录*/
List<DirectoryVo> queryServiceDirectory();
}

@ -61,7 +61,7 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
/*
*
*
* */
@Override
public int addServe(ServeVo vo) {
@ -92,7 +92,9 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
throw new ServiceException("400","添加下载失败");
}
}
/*
*
* */
@Override
public int delServe(Integer id) {
if (id == null)
@ -111,8 +113,15 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
}
}
/*
* id
* */
@Override
public ServeVo queryById(Integer id) {
if (id==null)
{
throw new ServiceException("401","id为空");
}
//根据id查询数据
Serve serve = serveMapper.selectById(id);
//查询目录id
@ -123,7 +132,9 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
serveVo.setDirName(directory.getDirName());
return serveVo;
}
/*
*
* */
@Override
public int updateServe(ServeVo vo) {
//查询更新的下载名是否存在
@ -149,7 +160,9 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
throw new ServiceException("400","更新失败");
}
}
/*
*
* */
@Override
public void addServiceDirectory(Directory directory) {
if (directory.getDirName().isEmpty())
@ -160,13 +173,13 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
{
throw new ServiceException("400","请选择一个icon");
}
/*查询目录是否存在*/
Integer count = directoryMapper.selectByName(directory.getDirName(),"9");
if (count!=null)
{
throw new ServiceException("400","目录已存在");
}
}/*
id*/
int uuid= UUID.randomUUID().hashCode();
if(uuid<0){
uuid=-uuid;
@ -175,7 +188,9 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
directory.setId(uuid);
directoryMapper.addServiceDirectory(directory);
}
/*
*
* */
@Override
public List<DirectoryVo> queryServiceDirectory() {
List<DirectoryVo> directoryList = directoryMapper.queryServiceDirectory();

@ -19,7 +19,7 @@ spring:
druid:
url: jdbc:mysql://localhost:3306/zhiyun?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
password: root
thymeleaf:
cache: false
prefix: classpath:/templates

@ -43,7 +43,7 @@
inner join
(select id,dir_name,dir_img,dir_addtime,dir_iden from directory) as d
on c.dir_id = d.id
WHERE d.dir_iden = 3
WHERE d.dir_iden = 1
</select>
<select id="queryCourseById" resultType="com.zhiyun.zhiyun03.course.vo.CourseVo">

@ -3,14 +3,14 @@
<mapper namespace="com.zhiyun.zhiyun03.application.mapper.DirectoryMapper">
<insert id="addCourseDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},3,#{dirAddtime})
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},1,#{dirAddtime})
</insert>
<insert id="addDownloadDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},5,#{dirAddtime})
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},3,#{dirAddtime})
</insert>
<insert id="addInviteDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},7,#{dirAddtime})
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},8,#{dirAddtime})
</insert>
<insert id="addServiceDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirImg},9,#{dirAddtime})
@ -21,13 +21,13 @@
</select>
<select id="queryCourseDirectory" resultType="com.zhiyun.zhiyun03.course.vo.DirectoryVo">
select dir_name from directory where dir_iden = 3
select dir_name from directory where dir_iden = 1
</select>
<select id="queryDownloadDirectory" resultType="com.zhiyun.zhiyun03.course.vo.DirectoryVo">
select dir_name from directory where dir_iden = 5
select dir_name from directory where dir_iden = 3
</select>
<select id="queryInviteDirectory" resultType="com.zhiyun.zhiyun03.course.vo.DirectoryVo">
select dir_name from directory where dir_iden = 7
select dir_name from directory where dir_iden = 8
</select>
<select id="queryServiceDirectory" resultType="com.zhiyun.zhiyun03.course.vo.DirectoryVo">
select dir_name from directory where dir_iden = 9

@ -36,7 +36,7 @@
inner join
(select id,dir_name,dir_img,dir_addtime,dir_iden from directory) as d
on do.dir_id = d.id
where d.dir_iden = 5
where d.dir_iden = 3
</select>
<select id="selectByName" resultType="java.lang.Integer">

@ -29,7 +29,7 @@
inner join
(select id,dir_name,dir_img,dir_addtime,dir_iden from directory) as d
on i.dir_id = d.id
where d.dir_iden = 7
where d.dir_iden = 8
</select>
<select id="selectByName" resultType="java.lang.Integer">
select count(1) from invite where invite_name =#{inviteName}

@ -310,7 +310,7 @@
dirImg: dirImg,
}
//修改操作
$.get("http://localhost:8080/academin/addDirectory", params,
$.get("http://localhost:8080/academic/addDirectory", params,
function (data) {
if ("success" == data.msg) {
layer.msg(data.msg);

@ -482,15 +482,15 @@
})
form.verify({
inviteName: function (value) {
if (value.length < 5) {
return '招聘名称至少得5个字符啊'
if (value.length < 1) {
return '招聘名称至少得1个字符啊'
}
},
inviteBrief: function () {
var value = layedit.getContent(editorIndex)
if (value.length < 5) {
if (value.length < 1) {
layedit.sync(editorIndex)
return '招聘简介至少得5个字符啊'
return '招聘简介至少得1个字符啊'
}
}
})

Loading…
Cancel
Save