|
@ -1,511 +0,0 @@
|
|
package com.yihu.figure.web;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import com.yihu.figure.model.IdEntity;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.json.JSONArray;
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.data.domain.Page;
|
|
|
|
import org.springframework.util.ReflectionUtils;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
public class BaseController {
|
|
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(BaseController.class);
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
protected HttpServletRequest request;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 獲取髮送請求用戶的uid
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String getUID() {
|
|
|
|
try {
|
|
|
|
String userAgent = request.getHeader("userAgent");
|
|
|
|
if (StringUtils.isEmpty(userAgent)) {
|
|
|
|
userAgent = request.getHeader("User-Agent");
|
|
|
|
}
|
|
|
|
JSONObject json = new JSONObject(userAgent);
|
|
|
|
return json.getString("uid");
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 獲取髮送請求用戶的uid
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String getLastUid() {
|
|
|
|
try {
|
|
|
|
String userAgent = request.getHeader("userAgent");
|
|
|
|
if (StringUtils.isEmpty(userAgent)) {
|
|
|
|
userAgent = request.getHeader("User-Agent");
|
|
|
|
}
|
|
|
|
JSONObject json = new JSONObject(userAgent);
|
|
|
|
return json.getString("lastUid");
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getOpenid() {
|
|
|
|
try {
|
|
|
|
String userAgent = request.getHeader("userAgent");
|
|
|
|
if (StringUtils.isEmpty(userAgent)) {
|
|
|
|
userAgent = request.getHeader("User-Agent");
|
|
|
|
}
|
|
|
|
JSONObject json = new JSONObject(userAgent);
|
|
|
|
return json.getString("openid");
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取用户ID
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public long getId() {
|
|
|
|
try {
|
|
|
|
String userAgent = request.getHeader("userAgent");
|
|
|
|
if (StringUtils.isEmpty(userAgent)) {
|
|
|
|
userAgent = request.getHeader("User-Agent");
|
|
|
|
}
|
|
|
|
JSONObject json = new JSONObject(userAgent);
|
|
|
|
return json.getLong("id");
|
|
|
|
} catch (Exception e) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getIMEI() {
|
|
|
|
try {
|
|
|
|
String userAgent = request.getHeader("userAgent");
|
|
|
|
if (StringUtils.isEmpty(userAgent)) {
|
|
|
|
userAgent = request.getHeader("User-Agent");
|
|
|
|
}
|
|
|
|
JSONObject json = new JSONObject(userAgent);
|
|
|
|
return json.getString("imei");
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getToken() {
|
|
|
|
try {
|
|
|
|
String userAgent = request.getHeader("userAgent");
|
|
|
|
if (StringUtils.isEmpty(userAgent)) {
|
|
|
|
userAgent = request.getHeader("User-Agent");
|
|
|
|
}
|
|
|
|
JSONObject json = new JSONObject(userAgent);
|
|
|
|
return json.getString("token");
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void error(Exception e) {
|
|
|
|
logger.error(getClass().getName() + ":", e.getMessage());
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void warn(Exception e) {
|
|
|
|
logger.warn(getClass().getName() + ":", e.getMessage());
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void infoMessage(String message) {
|
|
|
|
logger.info(message);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String error(int code, String msg) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 接口处理成功
|
|
|
|
*
|
|
|
|
* @param msg
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String success(String msg) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", 200);
|
|
|
|
map.put("msg", msg);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String write(int code, String msg) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param key 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, List<?> list) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
map.put(key, list);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param value 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, JSONObject value) {
|
|
|
|
try {
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
json.put("status", code);
|
|
|
|
json.put("msg", msg);
|
|
|
|
json.put(key, value);
|
|
|
|
return json.toString();
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param value 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, JSONArray value) {
|
|
|
|
try {
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
json.put("status", code);
|
|
|
|
json.put("msg", msg);
|
|
|
|
json.put(key, value);
|
|
|
|
return json.toString();
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param total 总数
|
|
|
|
* @param value 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, int total, String key, JSONArray value) {
|
|
|
|
try {
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
json.put("status", code);
|
|
|
|
json.put("msg", msg);
|
|
|
|
json.put("total", total);
|
|
|
|
json.put(key, value);
|
|
|
|
return json.toString();
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param value 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, Object value) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
map.put(key, value);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param key 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, Page<?> list) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
// 是否为第一页
|
|
|
|
map.put("isFirst", list.isFirst());
|
|
|
|
// 是否为最后一页
|
|
|
|
map.put("isLast", list.isLast());
|
|
|
|
// 总条数
|
|
|
|
map.put("total", list.getTotalElements());
|
|
|
|
// 总页数
|
|
|
|
map.put("totalPages", list.getTotalPages());
|
|
|
|
map.put(key, list.getContent());
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param key 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, Page<?> page, JSONArray array) {
|
|
|
|
try {
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
json.put("status", code);
|
|
|
|
json.put("msg", msg);
|
|
|
|
// 是否为第一页
|
|
|
|
json.put("isFirst", page == null ? false : page.isFirst());
|
|
|
|
// 是否为最后一页
|
|
|
|
json.put("isLast", page == null ? true : page.isLast());
|
|
|
|
// 总条数
|
|
|
|
json.put("total", page == null ? 0 : page.getTotalElements());
|
|
|
|
// 总页数
|
|
|
|
json.put("totalPages", page == null ? 0 : page.getTotalPages());
|
|
|
|
json.put(key, array);
|
|
|
|
return json.toString();
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param value 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, Map<?, ?> value) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
map.put(key, value);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param value 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, String value) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
map.put(key, value);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param key 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, String key, IdEntity entity) {
|
|
|
|
try {
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
map.put("status", code);
|
|
|
|
map.put("msg", msg);
|
|
|
|
map.put(key, entity);
|
|
|
|
return mapper.writeValueAsString(map);
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 返回接口处理结果
|
|
|
|
*
|
|
|
|
* @param code 结果码,成功为200
|
|
|
|
* @param msg 结果提示信息
|
|
|
|
* @param key 结果数据
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String write(int code, String msg, boolean isFirst, boolean isLast, long total, int totalPages, String key, Object values) {
|
|
|
|
try {
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
json.put("status", code);
|
|
|
|
json.put("msg", msg);
|
|
|
|
// 是否为第一页
|
|
|
|
json.put("isFirst", isFirst);
|
|
|
|
// 是否为最后一页
|
|
|
|
json.put("isLast", isLast);
|
|
|
|
// 总条数
|
|
|
|
json.put("total", total);
|
|
|
|
// 总页数
|
|
|
|
json.put("totalPages", totalPages);
|
|
|
|
json.put(key, values);
|
|
|
|
return json.toString();
|
|
|
|
} catch (Exception e) {
|
|
|
|
logger.error("BaseController:", e.getMessage());
|
|
|
|
return error(-1, "服务器异常,请稍候再试!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String trimEnd(String param, String trimChars) {
|
|
|
|
if (param.endsWith(trimChars)) {
|
|
|
|
param = param.substring(0, param.length() - trimChars.length());
|
|
|
|
}
|
|
|
|
return param;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 无效用户消息返回
|
|
|
|
*
|
|
|
|
* @param e
|
|
|
|
* @param defaultCode
|
|
|
|
* @param defaultMsg
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String invalidUserException(Exception e, int defaultCode, String defaultMsg) {
|
|
|
|
try {
|
|
|
|
// if (e instanceof UndeclaredThrowableException) {
|
|
|
|
// UndeclaredThrowableException ute = (UndeclaredThrowableException) e;
|
|
|
|
// InvalidUserException iue = (InvalidUserException) ute.getUndeclaredThrowable();
|
|
|
|
// if (iue != null) {
|
|
|
|
// return error(iue.getCode(), iue.getMsg());
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
return error(defaultCode, defaultMsg);
|
|
|
|
} catch (Exception e2) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<Map<String, Object>> copyBeans(Collection<? extends Object> beans, String... propertyNames) {
|
|
|
|
List<Map<String, Object>> result = new ArrayList<>();
|
|
|
|
for (Object bean : beans) {
|
|
|
|
result.add(copyBeanProperties(bean, propertyNames));
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 复制特定属性。
|
|
|
|
*
|
|
|
|
* @param bean
|
|
|
|
* @param propertyNames
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public Map<String, Object> copyBeanProperties(Object bean, String... propertyNames) {
|
|
|
|
Map<String, Object> simplifiedBean = new HashMap<>();
|
|
|
|
for (String propertyName : propertyNames) {
|
|
|
|
Field field = ReflectionUtils.findField(bean.getClass(), propertyName);
|
|
|
|
if (field != null) {
|
|
|
|
field.setAccessible(true);
|
|
|
|
Object value = ReflectionUtils.getField(field, bean);
|
|
|
|
simplifiedBean.put(propertyName, value == null ? "" : value);
|
|
|
|
} else {
|
|
|
|
simplifiedBean.put(propertyName, "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return simplifiedBean;
|
|
|
|
}
|
|
|
|
}
|
|
|