You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.8 KiB
120 lines
4.8 KiB
3 years ago
|
package com.fr.plugin.web.hander;
|
||
|
|
||
|
import com.fr.decision.fun.impl.BaseHttpHandler;
|
||
|
import com.fr.json.JSONArray;
|
||
|
import com.fr.json.JSONObject;
|
||
|
import com.fr.plugin.beans.MyDepBean;
|
||
|
import com.fr.plugin.beans.MyGroupBean;
|
||
|
import com.fr.plugin.dao.MyGroupDao;
|
||
|
import com.fr.plugin.entitys.YtGroupEntity;
|
||
|
import com.fr.plugin.utils.MyUtils;
|
||
|
import com.fr.plugin.yt.MyCoreDBAccess;
|
||
|
import com.fr.plugin.yt.MyUserSyncManager;
|
||
|
import com.fr.stable.StringUtils;
|
||
|
import com.fr.stable.db.action.DBAction;
|
||
|
import com.fr.stable.db.dao.DAOContext;
|
||
|
import com.fr.stable.query.QueryFactory;
|
||
|
import com.fr.stable.query.condition.QueryCondition;
|
||
|
import com.fr.stable.query.restriction.RestrictionFactory;
|
||
|
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
|
||
|
import com.fr.web.utils.WebUtils;
|
||
|
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import javax.servlet.http.HttpServletResponse;
|
||
|
import java.util.Iterator;
|
||
|
import java.util.List;
|
||
|
import java.util.stream.Collectors;
|
||
|
|
||
|
public class GetGroupsHandler extends BaseHttpHandler {
|
||
|
@Override
|
||
|
public RequestMethod getMethod() {
|
||
|
return RequestMethod.GET;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getPath() {
|
||
|
return "/yt/groups";
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean isPublic() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void handle(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||
|
int startIdx = WebUtils.getHTTPRequestIntParameter(request, "startIdx", 0);
|
||
|
int count = WebUtils.getHTTPRequestIntParameter(request, "count", 10);
|
||
|
String keyword = WebUtils.getHTTPRequestParameter(request, "keyword");
|
||
|
List<MyGroupBean> users;
|
||
|
Long size = 0L;
|
||
|
try {
|
||
|
users = this.getGroups(keyword, startIdx, count);
|
||
|
size = this.countSelectedUser(keyword);
|
||
|
JSONObject jsonObject = toUserResultJo(users, size);
|
||
|
JSONObject responseJSONObject = MyUtils.createSuccessResponseJSONObject();
|
||
|
responseJSONObject.put("userList", jsonObject);
|
||
|
WebUtils.flushSuccessMessageAutoClose(request, response, responseJSONObject);
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace(response.getWriter());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private Long countSelectedDepartmentUser( ) throws Exception {
|
||
|
return MyUserSyncManager.getInstance().countDepartmentUserList( );
|
||
|
}
|
||
|
|
||
|
private List<MyGroupBean> getGroups(String name, int start, int count) throws Exception {
|
||
|
if (StringUtils.isNotBlank(name)) {
|
||
|
List<YtGroupEntity> entityList = MyCoreDBAccess.getAccessor().runQueryAction(new DBAction<List<YtGroupEntity>>() {
|
||
|
public List<YtGroupEntity> run(DAOContext content) throws Exception {
|
||
|
QueryCondition queryCondition = QueryFactory.create();
|
||
|
queryCondition.addRestriction(RestrictionFactory.and(RestrictionFactory.like("name", name)));
|
||
|
queryCondition.setSkip(start);
|
||
|
queryCondition.setCount(count);
|
||
|
return content.getDAO(MyGroupDao.class).find(queryCondition);
|
||
|
}
|
||
|
});
|
||
|
return entityList.stream().map(YtGroupEntity::createBean).collect(Collectors.toList());
|
||
|
} else {
|
||
|
List<YtGroupEntity> entityList = MyCoreDBAccess.getAccessor().runQueryAction(new DBAction<List<YtGroupEntity>>() {
|
||
|
public List<YtGroupEntity> run(DAOContext content) throws Exception {
|
||
|
QueryCondition queryCondition = QueryFactory.create();
|
||
|
queryCondition.setSkip(start);
|
||
|
queryCondition.setCount(count);
|
||
|
return content.getDAO(MyGroupDao.class).find(queryCondition);
|
||
|
}
|
||
|
});
|
||
|
return entityList.stream().map(YtGroupEntity::createBean).collect(Collectors.toList());
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
private Long countSelectedUser(String key) throws Exception {
|
||
|
return MyCoreDBAccess.getAccessor().runQueryAction(new DBAction<Long>() {
|
||
|
public Long run(DAOContext content) throws Exception {
|
||
|
QueryCondition queryCondition = QueryFactory.create();
|
||
|
queryCondition.addRestriction(RestrictionFactory.and(RestrictionFactory.like("name", key)));
|
||
|
System.out.println(queryCondition);
|
||
|
return content.getDAO(MyGroupDao.class).count(queryCondition);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
public static JSONObject toUserResultJo(List<MyGroupBean> users, Long var1) throws Exception {
|
||
|
JSONObject var2 = JSONObject.create();
|
||
|
JSONArray var3 = JSONArray.create();
|
||
|
|
||
|
JSONObject var6;
|
||
|
for (Iterator var4 = users.iterator(); var4.hasNext(); var3.put(var6)) {
|
||
|
MyGroupBean var5 = (MyGroupBean) var4.next();
|
||
|
var6 = var5.createJSONConfig();
|
||
|
}
|
||
|
|
||
|
var2.put("total", var1);
|
||
|
var2.put("users", var3);
|
||
|
return var2;
|
||
|
}
|
||
|
}
|