@RequestMapping("/autoSort2")
public R autoSort2(@RequestParam Map<String, Object> params, RichangshiwuEntity richangshiwu, HttpServletRequest request){
String userId = request.getSession().getAttribute("userId").toString();
String inteltypeColumn = "shiwufenlei";
List storeups = storeupService.selectList(new EntityWrapper().eq("type", 1).eq("userid", userId).eq("tablename", "richangshiwu").orderBy("addtime", false));
List inteltypes = new ArrayList();
Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
List richangshiwuList = new ArrayList();
//去重
if(storeups!=null && storeups.size()>0) {
for(StoreupEntity s : storeups) {
richangshiwuList.addAll(richangshiwuService.selectList(new EntityWrapper().eq(inteltypeColumn, s.getInteltype())));
}
}
EntityWrapper ew = new EntityWrapper();
params.put("sort", "id");
params.put("order", "desc");
PageUtils page = richangshiwuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, richangshiwu), params), params));
List pageList = (List)page.getList();
if(richangshiwuList.size()<limit) {
int toAddNum = (limit-richangshiwuList.size())<=pageList.size()?(limit-richangshiwuList.size()):pageList.size();
for(RichangshiwuEntity o1 : pageList) {
boolean addFlag = true;
for(RichangshiwuEntity o2 : richangshiwuList) {
if(o1.getId().intValue()==o2.getId().intValue()) {
addFlag = false;
break;
}
}
if(addFlag) {
richangshiwuList.add(o1);
if(--toAddNum==0) break;
}
}
} else if(richangshiwuList.size()>limit) {
richangshiwuList = richangshiwuList.subList(0, limit);
}
page.setList(richangshiwuList);
return R.ok().put("data", page);
}
// 中文解释内容:这段代码是一个Java Spring框架中的控制器方法,使用了@RequestMapping注解来映射请求路径。方法名为autoSort2,接收一个Map类型的参数params、一个RichangshiwuEntity类型的参数richangshiwu和一个HttpServletRequest类型的参数request。该方法的作用是根据用户的收藏记录和搜索条件自动排序返回日常事务列表数据。
具体实现是先从收藏记录中获取用户已收藏的日常事务类型inteltypes,然后根据搜索条件查询匹配的日常事务列表数据,将已收藏的日常事务数据添加到列表中。如果日常事务数量不足limit,则从查询结果中补充添加未收藏的数据,直到达到limit数量。如果日常事务数量超过limit,则截取前limit条数据。最终返回包含日常事务列表数据的R对象。