代码格式调整,升级优化

This commit is contained in:
2019-12-15 17:10:08 +08:00
parent eb12c48a78
commit 5e0c309aba
40 changed files with 340 additions and 303 deletions

View File

@@ -17,7 +17,7 @@ public class ArangoKit {
protected static final boolean winos = System.getProperty("os.name").contains("Window");
protected static Function<String, String> chDev = (s) -> s + (winos ? "_dev" : "");
protected static Function<String, String> chDev = (s) -> s + (winos ? "_dev" : "");
//Arango
protected static ArangoDB arangoDb = new ArangoDB.Builder().host("120.24.230.60", 8529).user("root").password("abc123").build();
@@ -50,6 +50,7 @@ public class ArangoKit {
public static long findInt(String aql) {
return dbDev.query(aql, long.class).first();
}
public static long findInt(String aql, Map para) {
return dbDev.query(aql, long.class).first();
}

View File

@@ -22,7 +22,7 @@ public class ArangoService extends BaseService {
protected static final boolean winos = System.getProperty("os.name").contains("Window");
protected Function<String, String> chDev = (s) -> s + (isDev ? "_dev" : "");
protected Function<String, String> chDev = (s) -> s + (isDev ? "_dev" : "");
@Resource(name = "property.arango.host")
private String arangoHost = "127.0.0.1";
@@ -45,18 +45,20 @@ public class ArangoService extends BaseService {
@Override
public void init(AnyValue config) {
System.out.println("isDev :" + isDev);
CompletableFuture.runAsync(() -> {
System.out.println("isDev :" + isDev);
arangoDb = new ArangoDB.Builder().host(arangoHost, port).user(user).password(password).build();
db = arangoDb.db(chDev.apply(database));
colVisLog = db.collection(chDev.apply(VIS_LOG));
arangoDb = new ArangoDB.Builder().host(arangoHost, port).user(user).password(password).build();
db = arangoDb.db(chDev.apply(database));
colVisLog = db.collection(chDev.apply(VIS_LOG));
if (!db.exists()) {
db.create();
}
if (!colVisLog.exists()) {
colVisLog.create();
}
if (!db.exists()) {
db.create();
}
if (!colVisLog.exists()) {
colVisLog.create();
}
});
}
@RestMapping(auth = false)
@@ -79,6 +81,7 @@ public class ArangoService extends BaseService {
public static long findInt(String aql) {
return db.query(aql, long.class).first();
}
public static long findInt(String aql, Map para) {
return db.query(aql, long.class).first();
}

View File

@@ -58,15 +58,15 @@ public class BaseService implements Service {
}
@RestMapping(ignore = true)
public int currentUserid(String sessionid){
public int currentUserid(String sessionid) {
if (sessionid == null) return 0;
long userid = 0;
try {
userid = sessions.getLong(sessionid, 0);
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
return (int)userid;
return (int) userid;
}
}

View File

@@ -22,6 +22,7 @@ import static net.tccn.bbs.base.kit.RetCodes.RET_USER_UNLOGIN;
/**
* Created by Lxy at 2017/10/3 13:39.
*/
@HttpUserType(UserInfo.class)
public class BaseServlet extends HttpServlet {
protected static final boolean winos = System.getProperty("os.name").contains("Window");
@@ -61,26 +62,26 @@ public class BaseServlet extends HttpServlet {
}
String uri = request.getRequestURI();
if (uri.startsWith("/res")){
if (uri.startsWith("/res")) {
File file = new File(webroot + uri);
response.finish(file);
return;
}
if (uri.endsWith(".html")){
if (uri.endsWith(".html")) {
response.finish(HttpScope.refer(uri));
return;
}
//异步记录访问日志
final int userid = currentid;
CompletableFuture.runAsync(()->{
CompletableFuture.runAsync(() -> {
Kv para = Kv.create();
for (String key : request.getParameterNames()){
for (String key : request.getParameterNames()) {
para.set(key, request.getParameter(key));
}
Kv headers = Kv.create();
request.getHeaders().forEach((k,v)->{
request.getHeaders().forEach((k, v) -> {
headers.set(k, request.getHeader(k));
});
@@ -106,9 +107,9 @@ public class BaseServlet extends HttpServlet {
@Override
protected void authenticate(HttpRequest request, HttpResponse response) throws IOException {
if (request.currentUser() == null) {
if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){
if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
response.finish(RetCodes.retResult(RET_USER_UNLOGIN, "未登录,登录后重试").toString());
}else {
} else {
response.finish(HttpScope.refer("/user/login.html"));
}
return;
@@ -116,55 +117,60 @@ public class BaseServlet extends HttpServlet {
response.nextEvent();
}
public int getLimit(HttpRequest request){
public int getLimit(HttpRequest request) {
return request.getIntParameter("limit", 1);
}
public int getOffset(HttpRequest request){
public int getOffset(HttpRequest request) {
return request.getIntParameter("offset", 10);
}
public String getPara(HttpRequest request){
public String getPara(HttpRequest request) {
String requestURI = request.getRequestURI();
String subStr = requestURI.substring(requestURI.lastIndexOf("/") + 1);
return subStr.contains("-") ? subStr.substring(0, subStr.indexOf("-")) : subStr;
}
public String getPara(HttpRequest request,int index){
public String getPara(HttpRequest request, int index) {
String requestURI = request.getRequestURI();
String subStr = requestURI.substring(requestURI.lastIndexOf("/") + 1);
String[] paraArr = subStr.split("-");
if (index < 0){
return paraArr.length < -index ? null : paraArr[paraArr.length+index];
}else {
return paraArr.length < index+1 ? null : paraArr[index];
if (index < 0) {
return paraArr.length < -index ? null : paraArr[paraArr.length + index];
} else {
return paraArr.length < index + 1 ? null : paraArr[index];
}
}
public <T> T getPara(HttpRequest request, int index, T defaultValue){
T para = (T)getPara(request,index);
public <T> T getPara(HttpRequest request, int index, T defaultValue) {
T para = (T) getPara(request, index);
return para == null || "".equals(para) ? defaultValue : para;
}
public int getParaToInt(HttpRequest request,int index, int defaultValue){
String para = getPara(request,index);
public int getParaToInt(HttpRequest request, int index, int defaultValue) {
String para = getPara(request, index);
return para == null || "".equals(para) ? defaultValue : Integer.parseInt(para);
}
public int getParaToInt(HttpRequest request,int index){
public int getParaToInt(HttpRequest request, int index) {
int n = 0;
String para = getPara(request,index);
String para = getPara(request, index);
if (para == null || "".equals(para)) n = 0;
try {
n = Integer.parseInt(para);
}catch (Exception e){
} catch (Exception e) {
}
return n;
}
//设置私密帖子过滤
protected FilterNode setPrivate(HttpRequest request,FilterNode node){
protected FilterNode setPrivate(HttpRequest request, FilterNode node) {
UserInfo userInfo = request.currentUser();
if (userInfo == null){
if (userInfo == null) {
node.and("status", FilterExpress.NOTEQUAL, 30);
}else if (!userService.isAdmin(userInfo.getUserid())){
} else if (!userService.isAdmin(userInfo.getUserid())) {
//select * from content c where c.status != -1 and (c.status!=30 or (c.status=30 and c.userid=100001))
node.and(FilterNode.create("status", FilterExpress.NOTEQUAL, 30).or(FilterNode.create("status", 30).and("userid", userInfo.getUserid())));
}

View File

@@ -27,15 +27,15 @@ public class FileService extends BaseService {
String path = String.format(format, System.currentTimeMillis()) + suffix;
File destFile = new File((winos ? "D:/wk/_own/redbbs/root/tem/" : dir) + path);
destFile.getParentFile().mkdir();
if (!tmpFile.renameTo(destFile)){
try{
if (!tmpFile.renameTo(destFile)) {
try {
Files.copy(tmpFile.toPath(), destFile.toPath(), StandardCopyOption.ATOMIC_MOVE);
}finally {
} finally {
tmpFile.delete();//删除临时文件
}
}
RetResult result = RetResult.success();
result.setRetinfo((winos ? "/tem/": view) + path);
result.setRetinfo((winos ? "/tem/" : view) + path);
return result;
}
}

View File

@@ -21,12 +21,12 @@ public class JBean<T> /*extends RetResult*/ {
this.retinfo = retinfo;
}
public static JBean by(int retcode, String retinfo){
public static JBean by(int retcode, String retinfo) {
JBean jBean = new JBean(retcode, retinfo);
return jBean;
}
public static JBean by(int retcode, String retinfo, Object t){
public static JBean by(int retcode, String retinfo, Object t) {
JBean jBean = new JBean(retcode, retinfo);
jBean.setResult(t);
return jBean;
@@ -68,7 +68,7 @@ public class JBean<T> /*extends RetResult*/ {
this.attach = attach;
}
public JBean attach(String key, Object object){
public JBean attach(String key, Object object) {
if (attach == null)
attach = new HashMap<>();
attach.put(key, object);
@@ -76,11 +76,12 @@ public class JBean<T> /*extends RetResult*/ {
}
private static final JBean ok = new JBean(0);
public static JBean ok(){
public static JBean ok() {
return ok;
}
public static JBean faild(String retinfo){
public static JBean faild(String retinfo) {
return new JBean(-1, retinfo);
}

View File

@@ -25,7 +25,7 @@ import java.util.function.Function;
/**
* Created by liangxianyou at 2018/6/20 22:54.
*/
@RestService(name = "xxx",automapping = true, comment = "日志记录")
@RestService(name = "xxx", automapping = true, comment = "日志记录")
public class TaskQueue<T extends Object> extends BaseService implements Runnable {
@Resource
@@ -63,7 +63,7 @@ public class TaskQueue<T extends Object> extends BaseService implements Runnable
VisLog visLog = (VisLog) _task;
//[访问量]
String uri = visLog.getUri();
if (uri != null && uri.startsWith("/jie/detail/")){
if (uri != null && uri.startsWith("/jie/detail/")) {
updateViewNum(visLog);
}
});
@@ -93,11 +93,11 @@ public class TaskQueue<T extends Object> extends BaseService implements Runnable
}
@RestMapping(ignore = true, comment = "访问热帖数据")
public Sheet<ContentInfo> hotView(String sessionid){
public Sheet<ContentInfo> hotView(String sessionid) {
int limit = 8;
String cacheKey = "hotView";
Object ids = cacheSource.get(cacheKey);
if (isEmpty.test(ids)){
if (isEmpty.test(ids)) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, -7);
@@ -136,9 +136,9 @@ public class TaskQueue<T extends Object> extends BaseService implements Runnable
//权限过滤
UserInfo userInfo = userService.current(sessionid);
if (userInfo == null){ //访客
if (userInfo == null) { //访客
node.and("status", FilterExpress.NOTEQUAL, 30);
}else if (!userService.isAdmin(userInfo.getUserid())){ //非管理员
} else if (!userService.isAdmin(userInfo.getUserid())) { //非管理员
node.and(FilterNode.create("status", FilterExpress.NOTEQUAL, 30).or(FilterNode.create("status", 30).and("userid", userInfo.getUserid())));
}
return contentService.contentQuery(flipper, node);
@@ -148,7 +148,7 @@ public class TaskQueue<T extends Object> extends BaseService implements Runnable
* TODO:帖子访客记录 --待完成
*/
@RestMapping(ignore = true, comment = "帖子访客记录")
public Sheet<Map> readRecordAsync(Flipper flipper ,int contentid){
public Sheet<Map> readRecordAsync(Flipper flipper, int contentid) {
/*Bson filter = eq("uri", "/jie/detail/"+ contentid);
FindIterable<Document> documents = visLog.find(filter).limit(flipper.getLimit()).skip(flipper.getOffset());

View File

@@ -8,5 +8,6 @@ import net.tccn.bbs.base.iface.UI;
*/
public interface UF<I extends UI> {
int getUserid();
I createInfo();
}

View File

@@ -7,7 +7,6 @@ import javax.persistence.Column;
import java.io.Serializable;
/**
*
* @author lxyer
*/
public class ActLogBean implements Serializable, FilterBean {

View File

@@ -1,18 +1,17 @@
package net.tccn.bbs.base.entity;
import org.redkale.convert.json.JsonConvert;
import javax.persistence.*;
import org.redkale.convert.json.*;
/**
*
* @author lxyer
*/
@Cacheable(interval = 5*60)
@Cacheable(interval = 5 * 60)
@Table(catalog = "redbbs", name = "sys_actlog")
public class ActLog implements java.io.Serializable {
@Id
@GeneratedValue
@Column(comment = "[日志id]")
private int logid;

View File

@@ -8,10 +8,9 @@ import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author lxyer
*/
@Cacheable(interval = 5*60)
@Cacheable(interval = 5 * 60)
@Table(catalog = "redbbs", name = "sys_dynattr", comment = "[动态属性表]")
public class DynAttr implements java.io.Serializable {

View File

@@ -12,16 +12,16 @@ import java.util.List;
public interface CService<I extends UI> {
@RestMapping(ignore = true)
default <A extends C> Sheet<I> createInfo(Sheet<A> fSheet){
default <A extends C> Sheet<I> createInfo(Sheet<A> fSheet) {
Sheet<I> sheet = new Sheet<>();
if (fSheet == null || fSheet.getTotal() < 1){
if (fSheet == null || fSheet.getTotal() < 1) {
sheet.setTotal(0);
sheet.setRows(new ArrayList<>());
}else {
int total = (int)fSheet.getTotal();
} else {
int total = (int) fSheet.getTotal();
List<I> rows = new ArrayList<>(total);
fSheet.forEach(x->rows.add((I)x.createInfo()));
fSheet.forEach(x -> rows.add((I) x.createInfo()));
sheet.setTotal(total);
sheet.setRows(rows);

View File

@@ -9,23 +9,29 @@ public interface UI<I extends UI> {
//抽象方法
int getUserid();
UserRecord getUser();
I setUser(UserRecord user);
//默认实现方法
default String getRealname(){
default String getRealname() {
return getUser() == null ? null : getUser().getRealname();
}
default String getNickname(){
default String getNickname() {
return getUser() == null ? null : getUser().getNickname();
}
default String getSite(){
default String getSite() {
return getUser() == null ? "" : getUser().getSite();
}
default String getGit(){
default String getGit() {
return getUser() == null ? "" : getUser().getGit();
}
default String getAvatar(){
default String getAvatar() {
return getUser() == null ? null : getUser().getAvatar();
}
}

View File

@@ -17,11 +17,11 @@ public interface UIService<I extends UI> extends CService<I> {
DataSource getSource();
@RestMapping(ignore = true)
default Sheet<I> setIUser(Sheet<I> sheet){
default Sheet<I> setIUser(Sheet<I> sheet) {
int[] userids = sheet.stream().mapToInt(I::getUserid).toArray();
List<UserRecord> users = getSource().queryList(UserRecord.class, FilterNode.create("userid", FilterExpress.IN, userids));
sheet.forEach(x->{
sheet.forEach(x -> {
UserRecord user = users.stream().filter(u -> u.getUserid() == x.getUserid()).findAny().orElse(null);
x.setUser(user);
});
@@ -29,7 +29,7 @@ public interface UIService<I extends UI> extends CService<I> {
}
@RestMapping(ignore = true)
default I setIUser(I i){
default I setIUser(I i) {
UserRecord user = getSource().find(UserRecord.class, i.getUserid());
return (I) i.setUser(user);

View File

@@ -12,10 +12,11 @@ import java.text.SimpleDateFormat;
@RestService
public class EJ {
public String date(long time){
public String date(long time) {
return date(time, "yyyy-MM-dd HH:mm:ss");
}
public String date(long time, String pattern){
public String date(long time, String pattern) {
return new SimpleDateFormat(pattern).format(time);
}

View File

@@ -10,7 +10,7 @@ import java.util.regex.Pattern;
*/
public final class LxyKit {
public static String dateFmt(long time){
public static String dateFmt(long time) {
/**
* 刚刚 60秒内 60 * 1000
* x分钟前 1小时候内 60 * 60*1000
@@ -23,45 +23,45 @@ public final class LxyKit {
long diff = now - time;
if (diff < 60 * 1000)
return "刚刚";
else if (diff < 60 * 60 *1000)
return Math.floorDiv(diff, 60 *1000) + "分钟前";
else if (diff < 24 * 60*60*1000)
return Math.floorDiv(diff, 60 *60*1000) + "小时前";
else if (diff > 24 * 60*60*1000 && diff < 7 * 24*60*60*1000)
return Math.floorDiv(diff, 24 * 60*60*1000) + "天前";
else if (diff < 60 * 60 * 1000)
return Math.floorDiv(diff, 60 * 1000) + "分钟前";
else if (diff < 24 * 60 * 60 * 1000)
return Math.floorDiv(diff, 60 * 60 * 1000) + "小时前";
else if (diff > 24 * 60 * 60 * 1000 && diff < 7 * 24 * 60 * 60 * 1000)
return Math.floorDiv(diff, 24 * 60 * 60 * 1000) + "天前";
else
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
public static String delHTMLTag(String htmlStr){
String regEx_script="<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式
String regEx_style="<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式
String regEx_html="<[^>]+>"; //定义HTML标签的正则表达式
public static String delHTMLTag(String htmlStr) {
String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式
String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式
String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式
Pattern p_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
Matcher m_script=p_script.matcher(htmlStr);
htmlStr=m_script.replaceAll(""); //过滤script标签
Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
Matcher m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); //过滤script标签
Pattern p_style=Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);
Matcher m_style=p_style.matcher(htmlStr);
htmlStr=m_style.replaceAll(""); //过滤style标签
Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
Matcher m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); //过滤style标签
Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
Matcher m_html=p_html.matcher(htmlStr);
htmlStr=m_html.replaceAll(""); //过滤html标签
Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
Matcher m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); //过滤html标签
return htmlStr.trim(); //返回文本字符串
}
public static <T> T[] listToArray(List list, T[] ts){
public static <T> T[] listToArray(List list, T[] ts) {
for (int i = 0; i < list.size(); i++) {
ts[0] = (T) list.get(i);
}
return ts;
}
public static int[] listToArray(List list, int[] ts){
public static int[] listToArray(List list, int[] ts) {
for (int i = 0; i < list.size(); i++) {
ts[0] = (int) list.get(i);
}

View File

@@ -55,7 +55,6 @@ public abstract class RetCodes {
public static final int RET_COMMENT_PARA_ILLEGAL = 3004_0002;
public static RetResult retResult(int retcode) {
return new RetResult(retcode);
}

View File

@@ -8,7 +8,6 @@ import javax.persistence.Column;
import javax.persistence.Id;
/**
*
* @author lxyer
*/
public class UserInfo implements java.io.Serializable {
@@ -58,7 +57,7 @@ public class UserInfo implements java.io.Serializable {
this.sex = sex;
}
@ConvertColumn(ignore = true,type = ConvertType.JSON)
@ConvertColumn(ignore = true, type = ConvertType.JSON)
public String getPassword() {
return password;
}
@@ -178,6 +177,7 @@ public class UserInfo implements java.io.Serializable {
/**
* 检查用户权限
*
* @param moduleid
* @param actionid
* @return

View File

@@ -9,10 +9,9 @@ import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author lxyer
*/
@Cacheable(interval = 5*60)
@Cacheable(interval = 5 * 60)
@Table(catalog = "redbbs", name = "sys_userrecord")
public class UserRecord implements java.io.Serializable {
@@ -221,11 +220,11 @@ public class UserRecord implements java.io.Serializable {
return userInfo;
}
public String passwordForMd5(){
public String passwordForMd5() {
return md5IfNeed(password);
}
public static String md5IfNeed(String password){
public static String md5IfNeed(String password) {
return Utility.md5Hex(password);
}
}

View File

@@ -30,44 +30,45 @@ import static net.tccn.bbs.base.kit.RetCodes.*;
public class UserService extends BaseService {
@RestMapping(auth = false, comment = "登录校验")
public RetResult<UserInfo> login(@RestParam(name = "bean") LoginBean loginBean){
if (loginBean == null || loginBean.emptyUsername()) return RetCodes.retResult(RetCodes.RET_PARAMS_ILLEGAL, "参数错误");
public RetResult<UserInfo> login(LoginBean bean) {
if (bean == null || bean.emptyUsername()) return RetCodes.retResult(RetCodes.RET_PARAMS_ILLEGAL, "参数错误");
final RetResult retResult = new RetResult();
UserRecord user = source.find(UserRecord.class, "username", loginBean.getUsername());
if (user == null || !Objects.equals(user.getPassword(), loginBean.getPassword())){
UserRecord user = source.find(UserRecord.class, "username", bean.getUsername());
if (user == null || !Objects.equals(user.getPassword(), bean.getPassword())) {
//log(null, 0, "用户或密码错误");
return RetCodes.retResult(RetCodes.RET_USER_ACCOUNT_PWD_ILLEGAL, "用户名或密码错误");
}
sessions.setAsync(sessionExpireSeconds, loginBean.getSessionid(), (long)user.getUserid());
sessions.setAsync(sessionExpireSeconds, bean.getSessionid(), (long) user.getUserid());
retResult.setRetcode(0);
retResult.setResult(Kv.by("token", loginBean.getSessionid()));
retResult.setResult(Kv.by("token", bean.getSessionid()));
retResult.setRetinfo("登录成功.");
return retResult;
}
public UserInfo current(String sessionid){
public UserInfo current(String sessionid) {
if (sessionid == null) return null;
long userid = 0;
try {
userid = sessions.getLong(sessionid, 0);
sessions.getAndRefresh(sessionid, sessionExpireSeconds);
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
return userid == 0 ? null : findUserInfo((int)userid);
return userid == 0 ? null : find((int) userid);
}
@RestMapping(name = "info", comment = "用户信息")
public UserInfo findUserInfo(int userid) {
public UserInfo find(int userid) {
UserRecord user = source.find(UserRecord.class, userid);
return user == null ? null : user.createUserInfo();
UserInfo bean = user.createUserInfo();
return bean;
}
@RestMapping(name = "logout", auth = false, comment = "退出登录")
public RetResult logout(@RestSessionid String sessionid){
public RetResult logout(@RestSessionid String sessionid) {
sessions.remove(sessionid);
return RetResult.success();
@@ -75,14 +76,14 @@ public class UserService extends BaseService {
}
@RestMapping(name = "query", auth = false, comment = "用户数据查询")
public Sheet<UserRecord> queryUser(Flipper flipper, @RestParam(name = "bean", comment = "过滤条件") final UserBean userBean){
public Sheet<UserRecord> query(Flipper flipper, @RestParam(name = "bean", comment = "过滤条件") final UserBean userBean) {
Sheet<UserRecord> users = source.querySheet(UserRecord.class, flipper, userBean);
return users;
}
@RestMapping(name = "changepwd", comment = "修改密码")
public RetResult updatePwd(@RestSessionid String sessionid, String pass, String nowpass){
public RetResult updatePwd(@RestSessionid String sessionid, String pass, String nowpass) {
UserInfo userInfo = current(sessionid);//不会为空
if (!Objects.equals(userInfo.getPassword(), UserRecord.md5IfNeed(nowpass)))
@@ -94,50 +95,51 @@ public class UserService extends BaseService {
}
@RestMapping(name = "register", auth = false, comment = "用户注册")
public RetResult register(@RestParam(name = "bean") UserRecord user){
public RetResult register(UserRecord bean) {
/*用户名、密码、邮箱*/
if (user.getEmail() == null) return RetCodes.retResult(RET_USER_EMAIL_ILLEGAL, "邮件地址无效");
if (user.getPassword() == null || user.getPassword().length() < 6) return RetCodes.retResult(RET_USER_PASSWORD_ILLEGAL, "密码设置无效");
if (bean.getEmail() == null) return RetCodes.retResult(RET_USER_EMAIL_ILLEGAL, "邮件地址无效");
if (bean.getPassword() == null || bean.getPassword().length() < 6)
return RetCodes.retResult(RET_USER_PASSWORD_ILLEGAL, "密码设置无效");
UserRecord _user = source.find(UserRecord.class, FilterNode.create("email", user.getEmail()));
UserRecord _user = source.find(UserRecord.class, FilterNode.create("email", bean.getEmail()));
if (_user != null) return RetCodes.retResult(RET_USER_USERNAME_EXISTS, "用户名已存在");
user.setCreatetime(System.currentTimeMillis());
user.setPassword(user.passwordForMd5());
user.setStatus((short) 10);
user.setUsername(user.getEmail());
user.setAvatar("/res/images/avatar/"+ new Random().nextInt(21) +".jpg");//默认头像
bean.setCreatetime(System.currentTimeMillis());
bean.setPassword(bean.passwordForMd5());
bean.setStatus((short) 10);
bean.setUsername(bean.getEmail());
bean.setAvatar("/res/images/avatar/" + new Random().nextInt(21) + ".jpg");//默认头像
int maxId = source.getNumberResult(UserRecord.class, FilterFunc.MAX, 10_0000, "userid").intValue();
int maxId = source.getNumberResult(UserRecord.class, FilterFunc.MAX, 10_0000, "userid").intValue();
if (maxId < 10_0000) maxId = 10_0000;
user.setUserid(maxId+1);
source.insert(user);
bean.setUserid(maxId + 1);
source.insert(bean);
//记录日志
return RetResult.success();
}
@RestMapping(name = "update", comment = "用户信息修改")
public RetResult userUpdate(@RestSessionid String sessionid, @RestParam(name = "bean") UserRecord user, String[] columns){
String nickname = user.getNickname();
public RetResult userUpdate(UserInfo user, UserRecord bean, String[] columns) {
String nickname = bean.getNickname();
if (nickname == null && nickname.isEmpty())
return RetCodes.retResult(RET_USER_NICKNAME_ILLEGAL, "昵称无效");
nickname = nickname.replace(" ", "");
UserRecord _user = source.find(UserRecord.class, FilterNode.create("nickname", nickname));
if (_user != null && _user.getUserid() != currentUserid(sessionid))
if (_user != null && _user.getUserid() != user.getUserid())
return RetCodes.retResult(RET_USER_NICKNAME_EXISTS, "昵称已存在");
user.setNickname(nickname);//去除昵称中的空格
source.updateColumn(user
,FilterNode.create("userid", currentUserid(sessionid))
,SelectColumn.includes(columns)
bean.setNickname(nickname);//去除昵称中的空格
source.updateColumn(bean
, FilterNode.create("userid", user.getUserid())
, SelectColumn.includes(columns)
);
return RetResult.success();
}
//最新加入
public Sheet<UserInfo> lastReg(){
public Sheet<UserInfo> lastReg() {
Sheet<UserRecord> users = source.querySheet(UserRecord.class
, SelectColumn.includes("userid", "nickname", "avatar", "createtime")
, new Flipper().sort("createtime DESC").limit(8)
@@ -146,7 +148,7 @@ public class UserService extends BaseService {
Sheet<UserInfo> infos = new Sheet<>();
ArrayList<UserInfo> list = new ArrayList<>();
users.forEach(x->{
users.forEach(x -> {
UserInfo info = x.createUserInfo();
info.setTime(LxyKit.dateFmt(x.getCreatetime()));
list.add(info);
@@ -164,7 +166,7 @@ public class UserService extends BaseService {
}
@RestMapping(ignore = true, comment = "判断用户是否是管理员")
public boolean isAdmin(int userid){
public boolean isAdmin(int userid) {
if (userid <= 0) return false;
List<Integer> userIds = source.queryColumnList("userid", UserRecord.class, FilterNode.create("roleid", 1));