对象列表相对于调用者显示不同的标记(Tag),当然也可以在父类当中添加属性,再动态赋值。
但对在用的系统,为了某个应用添加一堆没大用的空列我本人不爽,就直接做了个子类继承父类,增加两个标记属性。
@EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor @NoArgsConstructor public class UserTag extends Userinfo { /** * 左右接点状态 */ private int isFull; /** * 是否完成众筹 */ /**/ private int isGive; }
应用时,动态拷贝父对象,set动态标记:
for (Integer integer : teamId) { user = userMapper.selectById(integer); UserTag userTag = new UserTag(); BeanUtils.copyProperties(user, userTag); int amount=0; //左右边是否有人 if (user.getLeftId()==0){amount++;} if(user.getRightId()==0){amount++;} userTag.setIsFull(amount); QueryWrapper<Goldbag> wrapper=new QueryWrapper<>(); wrapper.eq("sendFrom",integer) .eq("sendTo",userId) .eq("sendState",3); Integer isGive = goldMapper.selectCount(wrapper);//红包是否发过 userTag.setIsGive(isGive); layerTeam.add(userTag); }
重点是工具:
BeanUtils.copyProperties(父类对象, 子类对象)
就是这样。