package com.moral.api.pojo.vo.account; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageAccount; import com.moral.api.entity.ManageRole; import com.moral.api.pojo.dto.account.AccountDTO; import com.moral.api.pojo.dto.account.AccountQueryDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; import org.springframework.util.ObjectUtils; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @ClassName AccountPageVO * @Description TODO * @Author 陈凯裕 * @Date 2021/3/15 13:25 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class AccountQueryVO { private long pages; private long total; private long current; private long size; private List accountVOs; public static AccountQueryVO convert(AccountQueryDTO dto) { if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; long total = dto.getTotal(); long current = dto.getCurrent(); long pages = dto.getPages(); long size = dto.getSize(); List accountVOs = new ArrayList<>(); List accountDTOs = dto.getAccountDTOS(); if (!ObjectUtils.isEmpty(accountDTOs)) { for (AccountDTO accountDTO : accountDTOs) { AccountVO vo = convertToQueryPage(accountDTO); accountVOs.add(vo); } } AccountQueryVO vo = new AccountQueryVO(); vo.setTotal(total); vo.setAccountVOs(accountVOs); vo.setCurrent(current); vo.setPages(pages); vo.setSize(size); return vo; } public static AccountVO convertToQueryPage(AccountDTO dto) { if (dto.getAccount() == null) return null; AccountInsertVO vo = new AccountInsertVO(); ManageAccount account = dto.getAccount(); List roles = dto.getRoles(); List roleNames = new ArrayList<>(); if (!ObjectUtils.isEmpty(roles)) { roles.forEach(role -> roleNames.add(role.getName())); } vo.setId(account.getId()); vo.setUserName(account.getUserName()); vo.setEmail(account.getEmail()); vo.setMobile(account.getMobile()); vo.setWechat(account.getWechat()); vo.setRoleNames(roleNames); //Date转换String Date createTime = account.getCreateTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String createTimeStr = sdf.format(createTime); vo.setCreateTime(createTimeStr); return vo; } }