
cn.basics.controller.LogController Maven / Gradle / Ivy
package cn.basics.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cn.basics.authority.interfaces.Authority;
import cn.basics.service.MyBaseService;
import cn.basics.util.DataUtil;
import cn.basics.util.ReturnUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@Controller
@RequestMapping("/log")
public class LogController {
@Resource(name="myBaseServiceImpl")
MyBaseService myBaseService;
/**获取日志*/
@Authority(addLog=false,explain="获取日志")
@RequestMapping("/getLog")
@ResponseBody
public ReturnUtil getLog(HttpServletRequest request,HttpServletResponse response){
JSONObject json = DataUtil.requestToJson(request);
ReturnUtil returnUtil = myBaseService.get(null,json, "systemMapper.getSystemLog");
return returnUtil;
}
/**获取日志列表*/
@Authority(addLog=false,explain="获取日志列表")
@RequestMapping("/getLogList")
@ResponseBody
public ReturnUtil getLogList(HttpServletRequest request,HttpServletResponse response){
return myBaseService.getList(null,DataUtil.requestToJson(request), "systemMapper.getSystemLogList");
}
/**获取日志列表并跳转页面*/
@Authority(addLog=false,explain="获取日志列表并跳转页面")
@RequestMapping("/getLogListToPage")
public String getLogListToPage(HttpServletRequest request,HttpServletResponse response){
request.setAttribute("logs", myBaseService.getList(null,DataUtil.requestToJson(request), "systemMapper.getSystemLogList"));
return "log";
}
/**删除日志*/
@Authority(addLog=false,explain="删除日志")
@RequestMapping("/delSystemLog")
@ResponseBody
public ReturnUtil delSystemLog(HttpServletRequest request,HttpServletResponse response){
JSONObject json = DataUtil.requestToJson(request,"id");
if(json.get("id")==null){
return ReturnUtil.init().sparameterLose();
}
json.put("statu", -1);
return myBaseService.upData(null,json, "systemMapper.upSystemLog");
}
/**彻底删除日志*/
@Authority(addLog=false,explain="彻底删除日志")
@RequestMapping("/delSystemLogThorough")
@ResponseBody
public ReturnUtil delSystemLogThorough(HttpServletRequest request,HttpServletResponse response){
JSONObject json = DataUtil.requestToJson(request,"id");
if(json.get("id")==null){
return ReturnUtil.init().sparameterLose();
}
return myBaseService.del(null,json, "systemMapper.delSystemLog");
}
/**根据日志恢复数据*/
@Authority(addLog=false,explain="根据日志恢复数据")
@RequestMapping("/recoveryData")
@ResponseBody
public ReturnUtil recoveryData(HttpServletRequest request,HttpServletResponse response){
ReturnUtil returnUtil = ReturnUtil.init();
JSONObject json = DataUtil.requestToJson(request,"id");
if(json.get("id")!=null){
returnUtil = myBaseService.get(null,json, "systemMapper.getSystemLog");
if(returnUtil.getCode()==ReturnUtil.SUCCESS_CODE){
json = returnUtil.gDataOne(JSONObject.class);
JSONArray operationLogs = json.getJSONArray("operationLogs");
if(operationLogs.size()>0){
for (int i = operationLogs.size()-1; i >= 0; i--) {
JSONObject operationLog = operationLogs.getJSONObject(i);
JSONArray contents = JSONArray.parseArray(operationLog.getString("content"));
String sql = "";
switch (operationLog.getInteger("operation_type")) {
case 0://增
String where = "";
for (int j = 0,jlength=contents.size(); j < jlength; j++) {
JSONObject content = contents.getJSONObject(j);
where += " and `"+content.getString("key")+"`="+content.getString("value");
}
where = where.substring(4);
sql = "delete from "+operationLog.getString("table_name")+" where "+where;
break;
case 1://删 -- 新增
String values = "(";
for (String key : contents.getJSONObject(0).keySet()) {
values += "`"+key+"`,";
}
values = values.substring(0,values.length()-1);
values += ") values ";
for (int j = 0,jlength=contents.size(); j < jlength; j++) {
values += "(";
JSONObject content = contents.getJSONObject(j);
for (String key : content.keySet()) {
String value = content.getString(key);
switch (value) {
case "true":value = "1";break;
case "false":value = "0";break;
}
values += "'"+value+"',";
}
values = values.substring(0,values.length()-1);
values += "),";
}
values = values.substring(0,values.length()-1);
sql = "insert into "+operationLog.getString("table_name")+" "+values;
break;
case 2://改
String set = "";
for (int j = 0,jlength=contents.size(); j < jlength; j++) {
JSONObject content = contents.getJSONObject(j);
set += "`"+content.getString("key")+"`='"+content.getString("used_value")+"',";
}
set = set.substring(0,set.length()-1);
sql = "update "+operationLog.getString("table_name")+" set " +set+ " where "+operationLog.getString("condition");
break;
}
JSONObject sqlJson = new JSONObject();
sqlJson.put("sql", sql);
returnUtil = myBaseService.upData(null,sqlJson, "systemMapper.implementBySql");
if(returnUtil.getCode()!=ReturnUtil.SUCCESS_CODE || "false".equals(returnUtil.getResult_data().toString())){
returnUtil.addError("恢复数据失败!当前数据可能已经变更!");
break;
}
}
if(returnUtil.getCode()==ReturnUtil.SUCCESS_CODE && "true".equals(returnUtil.getResult_data().toString())){
json = DataUtil.requestToJson(request,"id");
json.put("statu", 2);
returnUtil = myBaseService.upData(null,json, "systemMapper.upSystemLog");
if(returnUtil.getCode()!=ReturnUtil.SUCCESS_CODE){
returnUtil.addError("恢复数据失败!修改日志状态失败!");
}
}
}else{
returnUtil.addError("恢复数据失败!未获取到操作日志!");
}
}else{
returnUtil.addError("获取日志信息失败!请检查日志是否已经被删除或刷新页面后重试!");
}
}else{
returnUtil.sparameterLose();
}
return returnUtil;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy