重构接口,加入"项目"模块

This commit is contained in:
2018-06-21 21:22:15 +08:00
parent b6d1574603
commit 00ad1f87f4
20 changed files with 434 additions and 69 deletions

View File

@@ -1,19 +1,15 @@
package com.lxyer.bbs.base;
import com.lxyer.bbs.base.user.UserRecord;
import com.lxyer.bbs.base.iface.UI;
import com.lxyer.bbs.base.user.UserInfo;
import org.redkale.net.http.RestMapping;
import org.redkale.service.Service;
import org.redkale.source.CacheSource;
import org.redkale.source.DataSource;
import org.redkale.source.FilterExpress;
import org.redkale.source.FilterNode;
import org.redkale.util.Sheet;
import org.redkalex.cache.RedisCacheSource;
import javax.annotation.Resource;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Lxy at 2017/10/3 13:50.
@@ -36,8 +32,12 @@ public class BaseService<F extends UF,I extends UI> implements Service {
protected static final boolean winos = System.getProperty("os.name").contains("Window");
@RestMapping(ignore = true)
public DataSource getSource() {
return source;
}
protected Sheet<I> createInfo(Sheet<F> fSheet){
/*protected Sheet<I> createInfo(Sheet<F> fSheet){
Sheet<I> sheet = new Sheet<>();
if (fSheet == null || fSheet.getTotal() < 1){
@@ -53,7 +53,7 @@ public class BaseService<F extends UF,I extends UI> implements Service {
}
return sheet;
}
}*/
/**
* 批量设置用户信息
@@ -61,7 +61,7 @@ public class BaseService<F extends UF,I extends UI> implements Service {
* @param <I>
* @return
*/
protected <I extends UI> Sheet<I> setIUser(Sheet<I> ufSheet){
/*protected <I extends UI> Sheet<I> setIUser(Sheet<I> ufSheet){
int[] userIds = ufSheet.stream().mapToInt(I::getUserid).toArray();
List<UserRecord> users = source.queryList(UserRecord.class, FilterNode.create("userId", FilterExpress.IN, userIds));
@@ -70,16 +70,23 @@ public class BaseService<F extends UF,I extends UI> implements Service {
x.setUser(user);
});
return ufSheet;
}
}*/
/**
* 将含有用户外键的实体转为info并加入用户信息
* @param uf
* @return
*/
protected I setIUser(I uf){
/*protected I setIUser(I uf){
UserRecord user = source.find(UserRecord.class, uf.getUserid());
return (I) uf.setUser(user);
}*/
@RestMapping(ignore = true)
public int currentUserId(String sessionid){
if (sessionid == null) return 0;
Object userid = sessions.getAndRefresh(sessionid, sessionExpireSeconds);
return userid == null ? 0 : (Integer)userid;
}
}

View File

@@ -1,5 +1,7 @@
package com.lxyer.bbs.base;
import com.lxyer.bbs.base.iface.UI;
/**
* user foreign key (userId)
* Created by liangxianyou at 2018/6/9 14:50.

View File

@@ -0,0 +1,9 @@
package com.lxyer.bbs.base.iface;
/**
* 创建信息
* Created by liangxianyou at 2018/6/16 17:43.
*/
public interface C<I extends CI> {
I createInfo();
}

View File

@@ -0,0 +1,7 @@
package com.lxyer.bbs.base.iface;
/**
* Created by liangxianyou at 2018/6/16 18:39.
*/
public interface CI<I extends CI> {
}

View File

@@ -0,0 +1,32 @@
package com.lxyer.bbs.base.iface;
import org.redkale.net.http.RestMapping;
import org.redkale.util.Sheet;
import java.util.ArrayList;
import java.util.List;
/**
* Created by liangxianyou at 2018/6/16 17:56.
*/
public interface CService<I extends UI> {
@RestMapping(ignore = true)
default <A extends C> Sheet<I> createInfo(Sheet<A> fSheet){
Sheet<I> sheet = new Sheet<>();
if (fSheet == null || fSheet.getTotal() < 1){
sheet.setTotal(0);
sheet.setRows(new ArrayList<>());
}else {
int total = (int)fSheet.getTotal();
List<I> rows = new ArrayList<>(total);
fSheet.forEach(x->rows.add((I)x.createInfo()));
sheet.setTotal(total);
sheet.setRows(rows);
}
return sheet;
}
}

View File

@@ -1,4 +1,4 @@
package com.lxyer.bbs.base;
package com.lxyer.bbs.base.iface;
import com.lxyer.bbs.base.user.UserRecord;

View File

@@ -0,0 +1,38 @@
package com.lxyer.bbs.base.iface;
import com.lxyer.bbs.base.user.UserRecord;
import org.redkale.net.http.RestMapping;
import org.redkale.source.DataSource;
import org.redkale.source.FilterExpress;
import org.redkale.source.FilterNode;
import org.redkale.util.Sheet;
import java.util.List;
/**
* Created by liangxianyou at 2018/6/16 18:25.
*/
public interface UIService<I extends UI> extends CService<I> {
DataSource getSource();
@RestMapping(ignore = true)
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->{
UserRecord user = users.stream().filter(u -> u.getUserid() == x.getUserid()).findAny().orElse(null);
x.setUser(user);
});
return sheet;
}
@RestMapping(ignore = true)
default I setIUser(I i){
UserRecord user = getSource().find(UserRecord.class, i.getUserid());
return (I) i.setUser(user);
}
}

View File

@@ -52,12 +52,6 @@ public class UserService extends BaseService {
sessions.getAndRefresh(sessionid, sessionExpireSeconds);
return userid == null ? null : findUserInfo((Integer) userid);
}
@RestMapping(name = "userid")
public int currentUserId(String sessionid){
if (sessionid == null) return 0;
Object userid = sessions.getAndRefresh(sessionid, sessionExpireSeconds);
return userid == null ? 0 : (Integer)userid;
}
@RestMapping(name = "info", comment = "用户信息")
public UserInfo findUserInfo(int userid) {