Skip to content

Commit c61aa4a

Browse files
committed
完善功能
1 parent d4f99da commit c61aa4a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1296
-210
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,7 @@ rebel.xml
2929
build/
3030

3131
### VS Code ###
32-
.vscode/
32+
.vscode/
33+
/.mvn
34+
.mvn
35+
/ys.iml

pom.xml

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111
<groupId>com.danbai</groupId>
1212
<artifactId>ys</artifactId>
13-
<version>1.0.0-SNAPSHOT</version>
13+
<version>1.1.0</version>
1414
<name>ys</name>
1515
<description>Demo project for Spring Boot</description>
1616
<properties>
@@ -92,6 +92,44 @@
9292
<artifactId>commons-codec</artifactId>
9393
<version>1.11</version>
9494
</dependency>
95+
<!-- swagger工具包 -->
96+
<dependency>
97+
<groupId>io.springfox</groupId>
98+
<artifactId>springfox-swagger2</artifactId>
99+
<version>2.9.2</version>
100+
<exclusions>
101+
<exclusion>
102+
<groupId>io.swagger</groupId>
103+
<artifactId>swagger-annotations</artifactId>
104+
</exclusion>
105+
<exclusion>
106+
<groupId>io.swagger</groupId>
107+
<artifactId>swagger-models</artifactId>
108+
</exclusion>
109+
</exclusions>
110+
</dependency>
111+
<!--解决进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本-->
112+
<dependency>
113+
<groupId>io.swagger</groupId>
114+
<artifactId>swagger-annotations</artifactId>
115+
<version>1.5.21</version>
116+
</dependency>
117+
<dependency>
118+
<groupId>io.swagger</groupId>
119+
<artifactId>swagger-models</artifactId>
120+
<version>1.5.21</version>
121+
</dependency>
122+
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
123+
<dependency>
124+
<groupId>io.springfox</groupId>
125+
<artifactId>springfox-swagger-ui</artifactId>
126+
<version>2.9.2</version>
127+
</dependency>
128+
<dependency>
129+
<groupId>com.google.guava</groupId>
130+
<artifactId>guava</artifactId>
131+
<version>28.1-jre</version>
132+
</dependency>
95133
</dependencies>
96134
<build>
97135
<plugins>

src/main/java/com/danbai/ys/async/AsyncDmAllSend.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class AsyncDmAllSend {
1515
/**
1616
* 群发自定义消息
17-
* */
17+
*/
1818
@Async
1919
public void sendInfo(String message) throws IOException {
2020
for (TvDmSocket item : TvDmSocket.webSocketSet) {
@@ -25,10 +25,11 @@ public void sendInfo(String message) throws IOException {
2525
}
2626
}
2727
}
28+
2829
@Async
29-
public void sendInfo(String message,String dmid) throws IOException {
30+
public void sendInfo(String message, String dmid) throws IOException {
3031
for (TvDmSocket item : TvDmSocket.webSocketSet) {
31-
if(item.getDmid().equals(dmid)){
32+
if (item.getDmid().equals(dmid)) {
3233
try {
3334
item.sendMessage(message);
3435
} catch (IOException e) {
@@ -37,10 +38,11 @@ public void sendInfo(String message,String dmid) throws IOException {
3738
}
3839
}
3940
}
41+
4042
@Async
41-
public void sendInfoNothis(String message,String dmid,TvDmSocket t) throws IOException {
43+
public void sendInfoNothis(String message, String dmid, TvDmSocket t) throws IOException {
4244
for (TvDmSocket item : TvDmSocket.webSocketSet) {
43-
if(item.getDmid().equals(dmid)&&item!=t){
45+
if (item.getDmid().equals(dmid) && item != t) {
4446
try {
4547
item.sendMessage(message);
4648
} catch (IOException e) {

src/main/java/com/danbai/ys/async/CinemaSocketAsync.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,30 @@
1111

1212
@Component
1313
public class CinemaSocketAsync {
14+
/**
15+
* 发送房间消息
16+
*
17+
* @param id
18+
* @param msg
19+
*/
1420
@Async
15-
public void sendRoomMsg(int id,String msg){
16-
CinemaSocket.ROOM_POOL.get(id).getSockets().forEach(sid->{
21+
public void sendRoomMsg(int id, String msg) {
22+
CinemaSocket.ROOM_POOL.get(id).getSockets().forEach(sid -> {
1723
CinemaSocket.POOL.get(sid).sendMessage(msg);
1824
});
1925
}
26+
27+
/**
28+
* 发送房间消息跳过房主
29+
*
30+
* @param id
31+
* @param msg
32+
*/
2033
@Async
21-
public void sendRoomMsgPassAuthor(int id,String msg){
34+
public void sendRoomMsgPassAuthor(int id, String msg) {
2235
String authorId = CinemaSocket.ROOM_POOL.get(id).getAuthorId();
23-
CinemaSocket.ROOM_POOL.get(id).getSockets().forEach(sid->{
24-
if(!sid.equals(authorId)){
36+
CinemaSocket.ROOM_POOL.get(id).getSockets().forEach(sid -> {
37+
if (!sid.equals(authorId)) {
2538
CinemaSocket.POOL.get(sid).sendMessage(msg);
2639
}
2740
});

src/main/java/com/danbai/ys/async/Dmas.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.springframework.data.mongodb.core.MongoTemplate;
1010
import org.springframework.scheduling.annotation.Async;
1111
import org.springframework.stereotype.Component;
12+
1213
import static java.lang.System.currentTimeMillis;
1314

1415
/**
@@ -20,6 +21,12 @@ public class Dmas {
2021
@Autowired
2122
MongoTemplate mongoTemplate;
2223

24+
/**
25+
* 保存弹幕
26+
*
27+
* @param url
28+
* @param player
29+
*/
2330
@Async
2431
public void xzbcdm(String url, String player) {
2532
String json = HtmlUtils.getHtmlContentNp(url);

src/main/java/com/danbai/ys/config/ScheduledConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
@Configuration
1313
public class ScheduledConfig {
1414
@Bean
15-
public TaskScheduler taskScheduler(){
15+
public TaskScheduler taskScheduler() {
1616
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
1717
taskScheduler.setPoolSize(20);
1818
taskScheduler.initialize();
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.danbai.ys.config;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
import springfox.documentation.builders.ApiInfoBuilder;
6+
import springfox.documentation.builders.PathSelectors;
7+
import springfox.documentation.builders.RequestHandlerSelectors;
8+
import springfox.documentation.service.ApiInfo;
9+
import springfox.documentation.service.Contact;
10+
import springfox.documentation.spi.DocumentationType;
11+
import springfox.documentation.spring.web.plugins.Docket;
12+
import springfox.documentation.swagger2.annotations.EnableSwagger2;
13+
14+
/**
15+
* @program: dbys
16+
* @description: Swagger2Config
17+
* @author: DanBai
18+
* @create: 2020-06-28 14:56
19+
**/
20+
@Configuration
21+
@EnableSwagger2
22+
public class Swagger2Config {
23+
@Bean
24+
Docket docket() {
25+
return new Docket(DocumentationType.SWAGGER_2)
26+
.apiInfo(apiInfo())
27+
.select()
28+
.apis(RequestHandlerSelectors.basePackage("com.danbai.ys.controller"))
29+
.paths(PathSelectors.any())
30+
.build();
31+
}
32+
33+
private ApiInfo apiInfo() {
34+
return new ApiInfoBuilder()
35+
.title("淡白影视API文档")
36+
.description("淡白影视的API接口文档")
37+
.termsOfServiceUrl("https://dbys.vip")
38+
.version("1.0")
39+
.contact(new Contact("淡白",
40+
"https://p00q.cn/",
41+
42+
.build();
43+
}
44+
}

src/main/java/com/danbai/ys/controller/AdminController.java

Lines changed: 107 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@
33
import com.alibaba.fastjson.JSON;
44
import com.alibaba.fastjson.JSONArray;
55
import com.alibaba.fastjson.JSONObject;
6-
import com.danbai.ys.entity.Acces;
7-
import com.danbai.ys.entity.Config;
8-
import com.danbai.ys.entity.Ysb;
9-
import com.danbai.ys.service.impl.AdminServiceImpl;
10-
import com.danbai.ys.service.impl.StatisticalImpl;
11-
import com.danbai.ys.service.impl.UserServiceImpl;
12-
import com.danbai.ys.service.impl.YsServiceImpl;
6+
import com.danbai.ys.entity.*;
7+
import com.danbai.ys.service.impl.*;
138
import com.github.pagehelper.PageInfo;
9+
import io.swagger.annotations.Api;
10+
import io.swagger.annotations.ApiOperation;
1411
import org.springframework.beans.factory.annotation.Autowired;
1512
import org.springframework.data.redis.core.RedisTemplate;
1613
import org.springframework.stereotype.Controller;
@@ -28,6 +25,7 @@
2825
* @date 2019/10/13
2926
*/
3027
@Controller
28+
@Api(tags = "管理api")
3129
public class AdminController {
3230
@Autowired
3331
RedisTemplate redisTemplate;
@@ -39,13 +37,19 @@ public class AdminController {
3937
StatisticalImpl statistical;
4038
@Autowired
4139
AdminServiceImpl adminService;
40+
@Autowired
41+
DmServiceImpl dmService;
42+
@Autowired
43+
CommImpl comm;
4244

4345
@RequestMapping(value = "/admin", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
44-
String admin(Model model) {
46+
@ApiOperation(value = "管理视图框架首页")
47+
String admin() {
4548
return "admin/index";
4649
}
4750

4851
@RequestMapping(value = "/admin/index_v1", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
52+
@ApiOperation(value = "管理视图首页")
4953
String adminIndex(Model model) {
5054
model.addAttribute("yssize", ysService.contYs());
5155
model.addAttribute("usersize", userService.contUser());
@@ -64,12 +68,38 @@ String adminIndex(Model model) {
6468
}
6569

6670
@RequestMapping(value = "/admin/ystable", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
67-
String adminYstable(Model model) {
71+
@ApiOperation(value = "影视表视图")
72+
String adminYstable() {
6873
return "admin/ystable";
6974
}
7075

76+
@RequestMapping(value = "/admin/dmtable", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
77+
@ApiOperation(value = "弹幕表视图")
78+
String adminDmtable() {
79+
return "admin/dmtable";
80+
}
81+
82+
@RequestMapping(value = "/admin/feedback", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
83+
@ApiOperation(value = "反馈处理视图")
84+
String adminFeedback(Model model) {
85+
List<Feedback> allFeedback = comm.getAllFeedback();
86+
List tList = new ArrayList();
87+
List fList = new ArrayList();
88+
allFeedback.forEach(b -> {
89+
if (b.getDispose()) {
90+
tList.add(b);
91+
} else {
92+
fList.add(b);
93+
}
94+
model.addAttribute("tlist", tList);
95+
model.addAttribute("flist", fList);
96+
});
97+
return "admin/fb";
98+
}
99+
71100
@RequestMapping(value = "/admin/getysb", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
72101
@ResponseBody
102+
@ApiOperation(value = "获取影视表api")
73103
String adminGetysb(@RequestParam("rows") Integer rows, @RequestParam("page") Integer page, String searchString,
74104
String searchField) {
75105
JSONObject re = new JSONObject();
@@ -84,7 +114,7 @@ String adminGetysb(@RequestParam("rows") Integer rows, @RequestParam("page") Int
84114
JSONArray array = JSONArray.parseArray(JSON.toJSONString(p.getList()));
85115
re.put("rows", array);
86116
re.put("page", p.getPageNum());
87-
re.put("total", p.getPageSize());
117+
re.put("total", p.getPages());
88118
re.put("records", ysService.contYs());
89119

90120
} else {
@@ -107,6 +137,7 @@ String adminGetysb(@RequestParam("rows") Integer rows, @RequestParam("page") Int
107137

108138
@RequestMapping(value = "/admin/ysedit", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
109139
@ResponseBody
140+
@ApiOperation(value = "影视编辑api")
110141
String adminYsedit(Ysb ysb, @RequestParam(value = "oper", required = false) String oper) {
111142
JSONObject re = new JSONObject();
112143
//noinspection AlibabaSwitchStatement,AlibabaSwitchStatement
@@ -126,11 +157,77 @@ String adminYsedit(Ysb ysb, @RequestParam(value = "oper", required = false) Stri
126157
}
127158

128159
@RequestMapping(value = "/admin/config", produces = "text/plain;charset=UTF-8", method = RequestMethod.GET)
160+
@ApiOperation(value = "配置视图")
129161
String adminConfig(Model model) {
130162
List<Config> config = adminService.getConfig();
131163
for (Config c : config) {
132164
model.addAttribute(c.getItem(), c.getValue());
133165
}
134166
return "admin/config";
135167
}
168+
169+
@RequestMapping(value = "/admin/getdmb", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
170+
@ResponseBody
171+
@ApiOperation(value = "获取弹幕表api")
172+
String adminGetDmb(@RequestParam("rows") Integer rows, @RequestParam("page") Integer page, String searchString,
173+
String searchField) {
174+
JSONObject re = new JSONObject();
175+
if (searchString == null) {
176+
searchString = "";
177+
}
178+
if (searchField == null) {
179+
searchField = "";
180+
}
181+
PageResult<Dan> dmList = null;
182+
if ("".equals(searchString) && "".equals(searchField)) {
183+
dmList = dmService.getDmList(rows, page);
184+
} else {
185+
switch (searchField) {
186+
case "id":
187+
dmList = dmService.getDmListById(searchString, rows, page);
188+
break;
189+
case "author":
190+
dmList = dmService.getDmListByYsUsername(searchString, rows, page);
191+
break;
192+
case "player":
193+
dmList = dmService.getDmListByYsJi(searchString, rows, page);
194+
break;
195+
default:
196+
dmList = dmService.getDmList(rows, page);
197+
}
198+
}
199+
JSONArray array = JSONArray.parseArray(JSON.toJSONString(dmList.getList()));
200+
re.put("rows", array);
201+
re.put("page", page);
202+
re.put("total", dmList.getPages());
203+
re.put("records", dmList.getTotal());
204+
return re.toJSONString();
205+
}
206+
207+
@RequestMapping(value = "/admin/dmedit", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
208+
@ResponseBody
209+
@ApiOperation(value = "弹幕编辑api")
210+
String adminDmedit(Dan dan, @RequestParam(value = "oper", required = false) String oper) {
211+
JSONObject re = new JSONObject();
212+
switch (oper) {
213+
case "add":
214+
dmService.addDm(dan);
215+
break;
216+
case "edit":
217+
dmService.updateDm(dan);
218+
break;
219+
case "del":
220+
dmService.delDm(dan);
221+
break;
222+
default:
223+
}
224+
return re.toJSONString();
225+
}
226+
227+
@RequestMapping(value = "/admin/okfb", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
228+
@ResponseBody
229+
@ApiOperation(value = "完成反馈处理")
230+
void adminGetDmb(Integer id) {
231+
comm.okFeedback(id);
232+
}
136233
}

0 commit comments

Comments
 (0)