mirror of
https://github.com/Hello-hao/Tbed.git
synced 2024-04-21 12:32:10 +00:00
317 lines
12 KiB
Java
317 lines
12 KiB
Java
package cn.hellohao.controller;
|
|
|
|
import cn.hellohao.auth.token.JWTUtil;
|
|
import cn.hellohao.pojo.*;
|
|
import cn.hellohao.service.*;
|
|
import cn.hellohao.service.impl.*;
|
|
import cn.hellohao.utils.*;
|
|
import cn.hellohao.utils.verifyCode.IVerifyCodeGen;
|
|
import cn.hellohao.utils.verifyCode.SimpleCharVerifyCodeGenImpl;
|
|
import cn.hellohao.utils.verifyCode.VerifyCode;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.authc.UsernamePasswordToken;
|
|
import org.apache.shiro.subject.Subject;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpSession;
|
|
import java.io.*;
|
|
|
|
@Controller
|
|
public class IndexController {
|
|
@Autowired
|
|
private ImgService imgService;
|
|
@Autowired
|
|
private SysConfigService sysConfigService;
|
|
@Autowired
|
|
IRedisService iRedisService;
|
|
@Autowired
|
|
private ConfigService configService;
|
|
@Autowired
|
|
private UploadConfigService uploadConfigService;
|
|
@Autowired
|
|
private UploadServicel uploadServicel;
|
|
@Autowired
|
|
private NOSImageupload nosImageupload;
|
|
@Autowired
|
|
private OSSImageupload ossImageupload;
|
|
@Autowired
|
|
private COSImageupload cosImageupload;
|
|
@Autowired
|
|
private KODOImageupload kodoImageupload;
|
|
@Autowired
|
|
private USSImageupload ussImageupload;
|
|
@Autowired
|
|
private UFileImageupload uFileImageupload;
|
|
@Autowired
|
|
private FTPImageupload ftpImageupload;
|
|
@Autowired
|
|
AlbumServiceImpl albumService;
|
|
@Autowired
|
|
private KeysService keysService;
|
|
@Autowired
|
|
private ImgTempService imgTempService;
|
|
@Autowired
|
|
private ImgAndAlbumService imgAndAlbumService;
|
|
|
|
|
|
@RequestMapping(value = "/webInfo")
|
|
@ResponseBody
|
|
public Msg webInfo() {
|
|
final Msg msg = new Msg();
|
|
Config config = configService.getSourceype();
|
|
UploadConfig updateConfig = uploadConfigService.getUpdateConfig();
|
|
SysConfig sysConfig = sysConfigService.getstate();
|
|
JSONObject jsonObject = new JSONObject();
|
|
jsonObject.put("webname",config.getWebname());
|
|
jsonObject.put("websubtitle",config.getWebsubtitle());
|
|
jsonObject.put("keywords",config.getWebkeywords());
|
|
jsonObject.put("description",config.getWebms());
|
|
jsonObject.put("explain",config.getExplain());
|
|
jsonObject.put("favicon",config.getWebfavicons());
|
|
jsonObject.put("baidu",config.getBaidu());
|
|
jsonObject.put("links",config.getLinks());
|
|
jsonObject.put("aboutinfo",config.getAboutinfo());
|
|
jsonObject.put("logo",config.getLogo());
|
|
jsonObject.put("api",updateConfig.getApi());
|
|
jsonObject.put("register",sysConfig.getRegister());
|
|
msg.setData(jsonObject);
|
|
return msg;
|
|
}
|
|
|
|
|
|
@PostMapping(value = "/upload")//upimg new
|
|
@ResponseBody
|
|
public Msg upimg(HttpServletRequest request,HttpSession httpSession
|
|
, @RequestParam(value = "file", required = false) MultipartFile multipartFile,Integer day,
|
|
@RequestParam(value = "classifications", defaultValue = "" ) String classifications) {
|
|
final JSONArray jsonArray = new JSONArray();
|
|
if(!classifications.equals("")){
|
|
String[] calssif = classifications.split(",");
|
|
for (int i = 0; i < calssif.length; i++) {
|
|
jsonArray.add(calssif[i]);
|
|
}
|
|
}
|
|
return uploadServicel.uploadForLoc(request,multipartFile,day,null,jsonArray);
|
|
}
|
|
|
|
@RequestMapping(value = "/getUploadInfo")//new
|
|
@ResponseBody
|
|
public Msg getUploadInfo() {
|
|
Msg msg = new Msg();
|
|
JSONObject jsonObject = new JSONObject();
|
|
Subject subject = SecurityUtils.getSubject();
|
|
User user = (User) subject.getPrincipal();
|
|
try {
|
|
UploadConfig updateConfig = uploadConfigService.getUpdateConfig();
|
|
jsonObject.put("suffix",updateConfig.getSuffix().split(","));
|
|
if(null==user){
|
|
jsonObject.put("filesize",Integer.valueOf(updateConfig.getFilesizetourists())/1024);
|
|
jsonObject.put("imgcount",updateConfig.getImgcounttourists());
|
|
jsonObject.put("uploadSwitch",updateConfig.getIsupdate());
|
|
jsonObject.put("uploadInfo","您登陆后才能使用此功能哦");
|
|
}else{
|
|
jsonObject.put("filesize",Integer.valueOf(updateConfig.getFilesizeuser())/1024);
|
|
jsonObject.put("imgcount",updateConfig.getImgcountuser());
|
|
}
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
msg.setData(jsonObject);
|
|
return msg;
|
|
}
|
|
|
|
|
|
@RequestMapping("/checkStatus")
|
|
@ResponseBody
|
|
public Msg checkStatus(HttpServletRequest request) {
|
|
Msg msg = new Msg();
|
|
String token = request.getHeader("Authorization");
|
|
if(token != null) {
|
|
JSONObject tokenJson = JWTUtil.checkToken(token);
|
|
if(tokenJson.getBoolean("check")){
|
|
Subject subject = SecurityUtils.getSubject();
|
|
UsernamePasswordToken tokenOBJ = new UsernamePasswordToken(tokenJson.getString("email"),tokenJson.getString("password"));
|
|
tokenOBJ.setRememberMe(true);
|
|
try {
|
|
subject.login(tokenOBJ);
|
|
SecurityUtils.getSubject().getSession().setTimeout(3600000);
|
|
User u = (User) subject.getPrincipal();
|
|
final JSONObject jsonObject = new JSONObject();
|
|
jsonObject.put("RoleLevel",u.getLevel()==2?"admin":"user");
|
|
jsonObject.put("userName",u.getUsername());
|
|
msg.setCode("200");
|
|
msg.setData(jsonObject);
|
|
} catch (Exception e) {
|
|
msg.setCode("40041");
|
|
msg.setInfo("登录失效,请重新登录");
|
|
System.err.println("登录失效,请重新登录");
|
|
e.printStackTrace();
|
|
}
|
|
}else{
|
|
msg.setCode("40041");
|
|
msg.setInfo("登录失效,请重新登录");
|
|
}
|
|
}else{
|
|
msg.setCode("40040");
|
|
msg.setInfo("当前未登录,请先登录");
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("/verifyCode")
|
|
public void verifyCode(HttpServletRequest request, HttpServletResponse response,HttpSession httpSession) {
|
|
IVerifyCodeGen iVerifyCodeGen = new SimpleCharVerifyCodeGenImpl();
|
|
try {
|
|
//登录页面验证码
|
|
VerifyCode verifyCode = iVerifyCodeGen.generate(80, 38);
|
|
String code = verifyCode.getCode();
|
|
String userIP = GetIPS.getIpAddr(request);
|
|
iRedisService.setValue(userIP+"_hellohao_verifyCode",code);
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setDateHeader("Expires", 0);
|
|
response.setContentType("image/jpeg");
|
|
response.getOutputStream().write(verifyCode.getImgBytes());
|
|
response.getOutputStream().flush();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@GetMapping("/verifyCodeForRegister")
|
|
public void verifyCodeForRegister(HttpServletRequest request, HttpServletResponse response,HttpSession httpSession) {
|
|
IVerifyCodeGen iVerifyCodeGen = new SimpleCharVerifyCodeGenImpl();
|
|
try {
|
|
VerifyCode verifyCode = iVerifyCodeGen.generate(80, 38);
|
|
String code = verifyCode.getCode();
|
|
String userIP = GetIPS.getIpAddr(request);
|
|
iRedisService.setValue(userIP+"_hellohao_verifyCodeForRegister",code);
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setDateHeader("Expires", 0);
|
|
response.setContentType("image/jpeg");
|
|
response.getOutputStream().write(verifyCode.getImgBytes());
|
|
response.getOutputStream().flush();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@GetMapping("/verifyCodeForRetrieve")
|
|
public void verifyCodeForRetrieve(HttpServletRequest request, HttpServletResponse response,HttpSession httpSession) {
|
|
IVerifyCodeGen iVerifyCodeGen = new SimpleCharVerifyCodeGenImpl();
|
|
try {
|
|
VerifyCode verifyCode = iVerifyCodeGen.generate(80, 38);
|
|
String code = verifyCode.getCode();
|
|
System.out.println("verifyCodeForRetrieve-zhaoHui httpSession ID==="+httpSession.getId());
|
|
String userIP = GetIPS.getIpAddr(request);
|
|
iRedisService.setValue(userIP+"_hellohao_verifyCodeForEmailRetrieve",code);
|
|
response.setHeader("Pragma", "no-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setDateHeader("Expires", 0);
|
|
response.setContentType("image/jpeg");
|
|
response.getOutputStream().write(verifyCode.getImgBytes());
|
|
response.getOutputStream().flush();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
//删除图像
|
|
@PostMapping("/deleImagesByUid") //new
|
|
@ResponseBody
|
|
public Msg deleImagesByUid(@RequestParam(value = "data", defaultValue = "") String data) {
|
|
Msg msg = new Msg();
|
|
JSONObject jsonObj = JSONObject.parseObject(data);
|
|
String imguid = jsonObj.getString("imguid");
|
|
Images image = imgService.selectImgUrlByImgUID(imguid);
|
|
Subject subject = SecurityUtils.getSubject();
|
|
User user = (User) subject.getPrincipal();
|
|
if(null!=user){
|
|
if(user.getId()!=image.getUserid()){
|
|
msg.setInfo("删除失败,该图片不允许你执行操作");
|
|
msg.setCode("100403");
|
|
return msg;
|
|
}
|
|
}
|
|
Integer keyid = image.getSource();
|
|
String imgname = image.getImgname();
|
|
Keys key = keysService.selectKeys(keyid);
|
|
//删除图片
|
|
boolean isDele = false;
|
|
if (key.getStorageType() == 1) {
|
|
isDele = nosImageupload.delNOS(key.getId(), imgname);
|
|
} else if (key.getStorageType() == 2) {
|
|
isDele = ossImageupload.delOSS(key.getId(), imgname);
|
|
} else if (key.getStorageType() == 3) {
|
|
isDele = ussImageupload.delUSS(key.getId(), imgname);
|
|
} else if (key.getStorageType() == 4) {
|
|
isDele = kodoImageupload.delKODO(key.getId(), imgname);
|
|
} else if (key.getStorageType() == 5) {
|
|
isDele = LocUpdateImg.deleteLOCImg(imgname);
|
|
}else if (key.getStorageType() == 6) {
|
|
isDele = cosImageupload.delCOS(key.getId(), imgname);
|
|
}else if (key.getStorageType() == 7) {
|
|
isDele = ftpImageupload.delFTP(key.getId(), imgname);
|
|
}else if (key.getStorageType() == 8) {
|
|
isDele = uFileImageupload.delUFile(key.getId(), imgname);
|
|
}else {
|
|
System.err.println("未获取到对象存储参数,删除失败。");
|
|
}
|
|
//删除库
|
|
if(isDele){
|
|
try {
|
|
imgAndAlbumService.deleteImgAndAlbum(imgname);
|
|
imgTempService.delImgAndExp(image.getImguid());
|
|
imgService.deleimg(image.getId());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
msg.setInfo("图片记录时发生错误");
|
|
msg.setCode("500");
|
|
return msg;
|
|
}
|
|
msg.setInfo("删除成功");
|
|
}else{
|
|
imgAndAlbumService.deleteImgAndAlbum(imgname);
|
|
imgTempService.delImgAndExp(image.getImguid());
|
|
imgService.deleimg(image.getId());
|
|
msg.setInfo("图片记录已删除,但是图片源删除失败");
|
|
msg.setCode("500");
|
|
}
|
|
System.out.println("返回的值:"+msg.toString());
|
|
return msg;
|
|
}
|
|
|
|
|
|
//没有权限
|
|
@RequestMapping("/authError")
|
|
@ResponseBody
|
|
public Msg authError(HttpServletRequest request){
|
|
Msg msg = new Msg();
|
|
msg.setCode("4031");
|
|
msg.setInfo("You don't have authority");
|
|
return msg;
|
|
}
|
|
|
|
//认证失败
|
|
@RequestMapping("/jurisError")
|
|
@ResponseBody
|
|
public Msg jurisError(HttpServletRequest request){
|
|
Msg msg = new Msg();
|
|
msg.setCode("4031");
|
|
msg.setInfo("Authentication request failed");
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
}
|