1、用户资料加入[个人博客地址、码云/GitHub地址](部分用户开放设置)

2、加入用户信息接口UF/UI,优化用户信息设置代码
This commit is contained in:
2018-06-13 00:05:06 +08:00
parent 9e117e9e5b
commit 4a41fe20a1
15 changed files with 263 additions and 127 deletions

View File

@@ -1,18 +1,24 @@
package com.lxyer.bbs.base;
import com.lxyer.bbs.base.user.User;
import com.lxyer.bbs.base.user.UserInfo;
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.
*/
public class BaseService implements Service {
public class BaseService<F extends UF,I extends UI> implements Service {
protected final int sessionExpireSeconds = 7 * 24 * 60 * 60;
@@ -30,4 +36,50 @@ public class BaseService implements Service {
protected static final boolean winos = System.getProperty("os.name").contains("Window");
protected Sheet<I> createInfo(Sheet<F> fSheet){
if (fSheet == null || fSheet.getTotal() < 1){
Sheet<I> sheet = new Sheet<>();
sheet.setTotal(0);
sheet.setRows(new ArrayList<>());
return sheet;
}
List<I> list = new ArrayList<>((int)fSheet.getTotal());
fSheet.forEach(x->{
list.add((I)x.createInfo());
});
Sheet<I> sheet = new Sheet<>();
sheet.setTotal(fSheet.getTotal());
sheet.setRows(list);
return sheet;
}
protected <I extends UI> Sheet<I> setIUser(Sheet<I> ufSheet){
int[] userIds = ufSheet.stream().mapToInt(I::getUserId).toArray();
List<User> users = source.queryList(User.class, FilterNode.create("userId", FilterExpress.IN, userIds));
List<I> infos = new ArrayList((int) ufSheet.getTotal());
ufSheet.forEach(x->{
User user = users.stream().filter(u -> u.getUserId() == x.getUserId()).findAny().orElse(null);
infos.add((I) x.setUser(user));
});
Sheet<I> sheet = new Sheet<>();
sheet.setTotal(ufSheet.getTotal());
sheet.setRows(infos);
return sheet;
}
/**
* 将含有用户外键的实体转为info并加入用户信息
* @param uf
* @return
*/
protected I setIUser(I uf){
User user = source.find(User.class, uf.getUserId());
return (I) uf.setUser(user);
}
}