Skip to content

Commit 0dfbea6

Browse files
committed
添加了FAQ的 show界面
1 parent c7ce1c4 commit 0dfbea6

40 files changed

+3640
-651
lines changed

.idea/workspace.xml

+486-431
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+36-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
11
# SpringBootWiki
2-
采用最基本的Spring Boot技术框架
3-
Spring + Hibernate
2+
3+
## 技术框架
4+
1. 底层采用Spring Boot
5+
2. 数据访问使用Spring Data Jpa,Hibernate
6+
3. 连接池采用 Druid
7+
4. 搜索采用Hibernate Search,基于Lucene.中文分词采用org.apdplat.word
8+
5. 采用Quartz作业调度
9+
6. 安全认证,访问权限控制采用Spring Security4.
10+
7. 页面渲染引擎采用Thymeleaf
11+
8. 采用Freemarker自动生成Entity、Repository、service
12+
13+
## 实现功能
14+
### Front End
15+
#### 前台页面:
16+
* 登录
17+
* 验证码
18+
* RemeberMe
19+
* 支持类信息发布(类似FAQ)
20+
* 支持类信息列表,已发布信息修改
21+
* TODO 消息系统
22+
* TODO 评论系统
23+
* TODO 数据计算
24+
25+
26+
#### 后台页面:
27+
* 用户管理
28+
* TODO 停用用户启用
29+
* 权限配置
30+
* TODO 修改密码
31+
* TODO 配置部门
32+
* TODO 配置设备
33+
* TODO 配置分类
34+
* TODO FAQ数量统计
35+
* TODO 日志系统
36+
37+
### Back End
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,13 @@
11
package net.liuxuan.SprKi.controller.admin;
22

3-
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import com.fasterxml.jackson.databind.SerializationFeature;
5-
import net.liuxuan.SprKi.entity.DTO.BaseDTO;
6-
import net.liuxuan.SprKi.entity.labthink.Department;
7-
import net.liuxuan.SprKi.entity.security.Authorities;
8-
import net.liuxuan.SprKi.entity.security.Users;
9-
import net.liuxuan.SprKi.entity.user.UserDetailInfo;
10-
import net.liuxuan.SprKi.repository.labthink.DepartmentRepository;
11-
import net.liuxuan.SprKi.service.user.UserDetailInfoService;
12-
import net.liuxuan.spring.Helper.RequestHelper;
133
import org.slf4j.Logger;
144
import org.slf4j.LoggerFactory;
15-
import org.springframework.beans.factory.annotation.Autowired;
165
import org.springframework.security.access.prepost.PreAuthorize;
176
import org.springframework.stereotype.Controller;
18-
import org.springframework.web.bind.annotation.ModelAttribute;
197
import org.springframework.web.bind.annotation.PathVariable;
208
import org.springframework.web.bind.annotation.RequestMapping;
21-
import org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap;
229

23-
import javax.annotation.Resource;
24-
import javax.servlet.http.HttpServletRequest;
25-
import javax.servlet.http.HttpServletResponse;
26-
import java.io.IOException;
27-
import java.util.*;
10+
import java.util.Map;
2811

2912
/**
3013
* Copyright (c) 2010-2016. by Liuxuan All rights reserved. <br/>
@@ -41,10 +24,7 @@
4124
@RequestMapping("/admin")
4225
public class AdminController {
4326
private static Logger log = LoggerFactory.getLogger(AdminController.class);
44-
@Autowired
45-
UserDetailInfoService userDetailInfoService;
46-
@Resource
47-
DepartmentRepository departmentRepository;
27+
4828

4929
@RequestMapping("")
5030
@PreAuthorize("hasRole('ROLE_ADMIN')")
@@ -67,139 +47,14 @@ public String home(Map<String, Object> model) {
6747
@RequestMapping("{pageName}_admin")
6848
@PreAuthorize("hasRole('ROLE_ADMIN')")
6949
public String getPages(@PathVariable("pageName") String pageName, Map<String, Object> model) {
70-
//
71-
UserDetailInfo userDetailInfo = new UserDetailInfo();
72-
List<Users> users = userDetailInfoService.listAllUsers();
73-
model.put("user", userDetailInfo);
74-
model.put("users", users);
50+
////
51+
// UserDetailInfo userDetailInfo = new UserDetailInfo();
52+
// List<Users> users = userDetailInfoService.listAllUsers();
53+
// model.put("user", userDetailInfo);
54+
// model.put("users", users);
7555
return "admin/" + pageName + " :: middle";
7656
// return "admin/profile :: middle";
7757
}
7858

79-
@RequestMapping("user")
80-
// @ResponseBody
81-
public String userManage(@ModelAttribute("dto") BaseDTO dto, UserDetailInfo userDetailInfo, HttpServletRequest request,
82-
HttpServletResponse response, Map<String, Object> model, RedirectAttributesModelMap redirectAttributesModelMap) {
83-
//
84-
log.info("===userManage logged ,the value is : {}", dto.toString());
85-
log.info("===userManage logged ,the value is : {}", userDetailInfo.toString());
86-
// log.info("===userManage logged ,the value is : {}",userDetailInfo.getUsers().toString());
87-
88-
89-
Users u = new Users();
90-
u.setUsername(dto.sid);
91-
92-
switch (dto.action) {
93-
case "edit":
94-
95-
userDetailInfo = userDetailInfoService.findUserDetailInfoByUsers(u);
96-
if (userDetailInfo == null) {
97-
redirectAttributesModelMap.put("error", "无用户,请检查进入入口");
98-
// model.put("error","无用户,请检查进入入口");
99-
}
100-
// redirectAttributesModelMap.put("user", userDetailInfo);
101-
model.put("user", userDetailInfo);
102-
return "admin/snipplets/div_user :: useredit";
103-
// break;
104-
case "authedit":
105-
userDetailInfo = userDetailInfoService.findUserDetailInfoByUsers(u);
106-
if (userDetailInfo == null) {
107-
redirectAttributesModelMap.put("error", "无用户,请检查进入入口");
108-
// model.put("error","无用户,请检查进入入口");
109-
}
110-
List<String> authslist = userDetailInfoService.listAuths();
111-
redirectAttributesModelMap.put("user", userDetailInfo);
112-
redirectAttributesModelMap.put("authslist", authslist);
113-
model.put("user", userDetailInfo);
114-
model.put("authslist", authslist);
115-
Set<Authorities> authoritiesSet = userDetailInfo.getUsers().getAuths();
116-
Set<String> userauth = new HashSet<String>();
117-
authoritiesSet.forEach(auths -> userauth.add(auths.getAuthority()));
118-
model.put("userauth", userauth);
119-
120-
return "admin/snipplets/div_user :: authedit";
121-
// break;
122-
default:
123-
redirectAttributesModelMap.addFlashAttribute("dto", dto);
124-
redirectAttributesModelMap.addFlashAttribute("userDetailInfo", userDetailInfo);
125-
return "redirect:/admin/user_ajax";
126-
// break;
127-
}
128-
// return "";
129-
}
130-
131-
@RequestMapping("user_ajax")
132-
// @ResponseBody
133-
public void userManageAjax(@ModelAttribute("dto") BaseDTO dto, UserDetailInfo userDetailInfo, HttpServletRequest request,
134-
HttpServletResponse response) throws IOException {
135-
// response.setContentType("application/json");
136-
Map<String, Object> rtnData = new HashMap<String, Object>();
137-
138-
log.info("===userManageAjax logged ,the value is : {}", dto.toString());
139-
log.info("===userManageAjax logged ,the value is : {}", userDetailInfo.toString());
140-
// log.info("===userManage logged ,the value is : {}",userDetailInfo.getUsers().toString());
141-
142-
143-
response.setContentType("application/json");
144-
ObjectMapper mapper = new ObjectMapper();
145-
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
146-
switch (dto.action) {
147-
case "add":
148-
if (userDetailInfoService.checkUsersExists(userDetailInfo)) {
149-
log.info("===userManageAjax logged ,新用户已存在 : {}");
150-
rtnData.put("error", "ERROR_UserExists");
151-
rtnData.put("status", "fail");
152-
rtnData.put("msg", "用户已经存在");
153-
} else {
154-
rtnData.put("status", "success");
155-
rtnData.put("msg", "成功添加用户");
156-
userDetailInfoService.saveUserDetailInfo(userDetailInfo);
157-
}
158-
break;
159-
case "delete":
160-
boolean b = userDetailInfoService.deleteUsersByUsername(dto.sid);
161-
if (b) {
162-
rtnData.put("status", "success");
163-
rtnData.put("msg", "成功删除用户");
164-
} else {
165-
rtnData.put("error", "ERROR_UserNotExists");
166-
rtnData.put("status", "fail");
167-
rtnData.put("msg", "用户不存在,删除失败");
168-
}
169-
break;
170-
case "update":
171-
userDetailInfoService.saveUserDetailInfo(userDetailInfo);
172-
rtnData.put("success1", "success!");
173-
break;
174-
case "list":
175-
List<Users> users = userDetailInfoService.listAllUsers();
176-
177-
// return users;
178-
// return mapper.writeValueAsString(users);
179-
// return EntityGsonHelper.goEntityWithCollection2Gson(Users.class);
180-
break;
181-
case "updateauth":
182-
RequestHelper.showParameters(request.getParameterMap());
183-
String[] authArrays = request.getParameterValues("authArray");
184-
String newauth = request.getParameter("newAuth");
185-
Map<String, Object> map = userDetailInfoService.updateAuths(userDetailInfo, authArrays, newauth);
186-
rtnData.putAll(map);
187-
188-
// return users;
189-
// return mapper.writeValueAsString(users);
190-
// return EntityGsonHelper.goEntityWithCollection2Gson(Users.class);
191-
break;
192-
default:
193-
194-
break;
195-
}
196-
// return "";
197-
mapper.writeValue(response.getWriter(), rtnData);
198-
}
199-
200-
@ModelAttribute("Department_list")
201-
public List<Department> Departmentlist() {
202-
return departmentRepository.findAll();
203-
}
20459

20560
}

0 commit comments

Comments
 (0)