2021-04-01 14:49:37 +08:00

221 lines
7.8 KiB
Java

package com.yutou.bilibili.Controllers;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yutou.bilibili.BiliBili.Services.IBiliBiliLiveService;
import com.yutou.bilibili.Services.ISystemConfigService;
import com.yutou.bilibili.BiliBili.Tools.BiliTools;
import com.yutou.bilibili.Services.IUserService;
import com.yutou.bilibili.Tools.AppTools;
import com.yutou.bilibili.Tools.Config;
import com.yutou.bilibili.mybatis.Bili.mybatis.model.BilibiliUpInfo;
import com.yutou.bilibili.mybatis.model.UBiliUp;
import com.yutou.bilibili.mybatis.model.UUser;
import org.apache.tomcat.util.security.MD5Encoder;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Date;
import java.util.UUID;
@Controller
public class UserController {
@Resource
IUserService service;
@Resource
IBiliBiliLiveService biliService;
@Resource
ISystemConfigService configService;
@ResponseBody
@RequestMapping("/user/reg.do")
public JSONObject reg(UUser user, HttpServletResponse response) {
JSONObject json = new JSONObject();
String isReg = configService.getConfig(Config.USER_REG);
if (isReg != null) {
if (isReg.equals("0")) {
json.put("code", -2);
json.put("msg", "当前系统禁止注册");
return json;
}
}
user.setPower("[1,2,3,5,6,7]");
user.setSubtime(new Date());
user.setLogintoken(UUID.randomUUID().toString());
AppTools.setCookie(response, "login", user.getLogintoken(), -1);
boolean flag = service.reg(user);
if (flag) {
json.put("code", 0);
json.put("msg", "注册成功");
} else {
json.put("code", -1);
json.put("msg", "该用户已存在或无法注册");
}
return json;
}
@ResponseBody
@RequestMapping("/user/login.do")
public JSONObject login(UUser user, HttpServletResponse response) {
JSONObject json = new JSONObject();
json.put("code", 0);
if (service.login(user.getUser(), user.getPassword())) {
user = service.getUser(user.getUser());
user.setLogintoken(UUID.randomUUID().toString());
service.update(user);
AppTools.setCookie(response, "login", user.getLogintoken(), -1);
json.put("msg", "登陆成功");
json.put("power", user.getPower());
} else {
json.put("code", -1);
json.put("msg", "登陆失败");
}
return json;
}
@ResponseBody
@RequestMapping("/user/logout.do")
public JSONObject logout(HttpServletRequest request, HttpServletResponse response) {
JSONObject json = new JSONObject();
String token = AppTools.getLoginToken(request);
if (StringUtils.isEmpty(token)) {
json.put("code", -1);
json.put("msg", "注销失败");
} else {
UUser user = service.getUserToToken(token);
if (user != null) {
user.setLogintoken("");
service.update(user);
AppTools.deleteCookie(request, response, "login");
json.put("code", 0);
json.put("msg", "注销成功");
} else {
json.put("code", -2);
json.put("msg", "注销失败");
}
}
return json;
}
@ResponseBody
@RequestMapping("/user/set/update.do")
public JSONObject update(UUser user, HttpServletRequest request) {
JSONObject json = new JSONObject();
String token = AppTools.getLoginToken(request);
if (StringUtils.isEmpty(token)) {
json.put("code", -1);
json.put("msg", "未登录");
} else {
UUser loginUser = service.getUserToToken(token);
if (loginUser != null) {
user.setLogintoken("");
user.setId(loginUser.getId());
user.setPower(loginUser.getPower());
user.setBiliCookie(loginUser.getBiliCookie());
user.setSubtime(loginUser.getSubtime());
user.setPassword(AppTools.getMD5 (user.getPassword()));
service.update(user);
json.put("code", 0);
json.put("msg", "修改成功");
} else {
json.put("code", -2);
json.put("msg", "修改失败");
}
}
return json;
}
@ResponseBody
@RequestMapping("/user/up/list.do")
public JSONObject uplist(HttpServletRequest request) {
JSONObject json = new JSONObject();
String token = AppTools.getLoginToken(request);
if (StringUtils.isEmpty(token)) {
json.put("code", "-1");
json.put("msg", "未登录");
} else {
json.put("code", 0);
json.put("msg", "ok");
UUser user = service.getUserToToken(token);
json.put("data", service.getUserUp(user.getId()));
}
return json;
}
@ResponseBody
@RequestMapping("/user/up/set/add.do")
public JSONObject addUp(HttpServletRequest request, BilibiliUpInfo info) {
JSONObject json = new JSONObject();
String token = AppTools.getLoginToken(request);
if (StringUtils.isEmpty(token)) {
json.put("code", "-1");
json.put("msg", "未登录");
} else {
UUser user = service.getUserToToken(token);
int roomid = 0;
if (!info.getUrl().startsWith("http")) {
info.setUrl("https://live.bilibili.com/" + info.getUrl());
}
BilibiliUpInfo tmp = biliService.queryUpToUrl(info.getUrl());
if (tmp == null) {
info = BiliTools.checkout(info);
if (info != null) {
roomid = info.getRoomid();
info.setEnable(0);
biliService.addUpInfo(info);
}
} else {
roomid = tmp.getRoomid();
}
if (roomid == 0) {
json.put("code", -1);
json.put("msg", "添加失败");
return json;
}
UBiliUp up = new UBiliUp();
up.setUid(user.getId());
up.setRoomid(roomid);
json.put("code", 0);
json.put("msg", service.addUp(up) ? "添加成功" : "添加失败");
}
return json;
}
@ResponseBody
@RequestMapping("/user/get/test.do")
public JSONObject testUser(HttpServletRequest request) {
JSONObject json = new JSONObject();
String token = AppTools.getLoginToken(request);
if (StringUtils.isEmpty(token)) {
json.put("code", -1);
json.put("msg", "未登录");
} else {
UUser user = service.getUserToToken(token);
if (user == null) {
json.put("code", -2);
json.put("msg", "未登录");
return json;
}
JSONArray powers = JSONArray.parseArray(user.getPower());
JSONObject ujson = (JSONObject) JSON.toJSON(user);
ujson.remove("logintoken");
ujson.remove("biliCookie");
ujson.remove("password");
ujson.remove("subtime");
ujson.put("power", powers);
json.put("code", 0);
json.put("data", ujson);
}
return json;
}
}