package com.tourguide.modules.user.dto;
|
|
import com.tourguide.modules.user.entity.GuideScenicConfig;
|
import com.tourguide.modules.user.entity.GuideUser;
|
import java.math.BigDecimal;
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
import java.time.Period;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
public class GuideUserDetailResponse {
|
private final Long id;
|
private final String username;
|
private final String realName;
|
private final String mobile;
|
private final String avatar;
|
private final String certificateNo;
|
private final Integer gender;
|
private final LocalDate birthDate;
|
private final Integer age;
|
private final Integer workYears;
|
private final String idCardNo;
|
private final String idCardFrontUrl;
|
private final String idCardBackUrl;
|
private final String guideCertificateUrl;
|
private final String qualificationCertificateUrl;
|
private final Long teamId;
|
private final String teamName;
|
private final String teamType;
|
private final Long acceptedOrderCount;
|
private final Long currentMonthOrderCount;
|
private final BigDecimal rating;
|
private final boolean autoDisableWhitelisted;
|
private final String wechatOpenId;
|
private final Integer status;
|
private final LocalDateTime createdAt;
|
private final List<GuideScenicConfigResponse> scenicConfigs;
|
|
public GuideUserDetailResponse(GuideUser user, String teamName, List<GuideScenicConfig> scenicConfigs) {
|
this(user, teamName, scenicConfigs, user.getBirthDate(), user.getWorkYears());
|
}
|
|
public GuideUserDetailResponse(GuideUser user, String teamName, List<GuideScenicConfig> scenicConfigs,
|
LocalDate birthDate, Integer workYears) {
|
this.id = user.getId();
|
this.username = user.getUsername();
|
this.realName = user.getRealName();
|
this.mobile = user.getMobile();
|
this.avatar = user.getAvatar();
|
this.certificateNo = user.getCertificateNo();
|
this.gender = user.getGender();
|
this.birthDate = birthDate;
|
this.age = birthDate == null ? null : Period.between(birthDate, LocalDate.now()).getYears();
|
this.workYears = workYears;
|
this.idCardNo = user.getIdCardNo();
|
this.idCardFrontUrl = user.getIdCardFrontUrl();
|
this.idCardBackUrl = user.getIdCardBackUrl();
|
this.guideCertificateUrl = user.getGuideCertificateUrl();
|
this.qualificationCertificateUrl = user.getQualificationCertificateUrl();
|
this.teamId = user.getTeamId();
|
this.teamName = teamName;
|
this.teamType = user.getTeamId() == null ? "个人" : "讲解队";
|
this.acceptedOrderCount = user.getAcceptedOrderCount() == null ? 0L : user.getAcceptedOrderCount();
|
this.currentMonthOrderCount = user.getCurrentMonthOrderCount() == null ? 0L : user.getCurrentMonthOrderCount();
|
this.rating = user.getRating() == null ? BigDecimal.ZERO : user.getRating();
|
this.autoDisableWhitelisted = user.getAutoDisableWhitelisted() != null && user.getAutoDisableWhitelisted() == 1;
|
this.wechatOpenId = user.getWechatOpenId();
|
this.status = user.getStatus();
|
this.createdAt = user.getCreatedAt();
|
this.scenicConfigs = scenicConfigs.stream().map(GuideScenicConfigResponse::new).collect(Collectors.toList());
|
}
|
public Long getId() { return id; }
|
public String getUsername() { return username; }
|
public String getRealName() { return realName; }
|
public String getMobile() { return mobile; }
|
public String getAvatar() { return avatar; }
|
public String getCertificateNo() { return certificateNo; }
|
public Integer getGender() { return gender; }
|
public LocalDate getBirthDate() { return birthDate; }
|
public Integer getAge() { return age; }
|
public Integer getWorkYears() { return workYears; }
|
public String getIdCardNo() { return idCardNo; }
|
public String getIdCardFrontUrl() { return idCardFrontUrl; }
|
public String getIdCardBackUrl() { return idCardBackUrl; }
|
public String getGuideCertificateUrl() { return guideCertificateUrl; }
|
public String getQualificationCertificateUrl() { return qualificationCertificateUrl; }
|
public Long getTeamId() { return teamId; }
|
public String getTeamName() { return teamName; }
|
public String getTeamType() { return teamType; }
|
public Long getAcceptedOrderCount() { return acceptedOrderCount; }
|
public Long getCurrentMonthOrderCount() { return currentMonthOrderCount; }
|
public BigDecimal getRating() { return rating; }
|
public boolean isAutoDisableWhitelisted() { return autoDisableWhitelisted; }
|
public String getWechatOpenId() { return wechatOpenId; }
|
public Integer getStatus() { return status; }
|
public LocalDateTime getCreatedAt() { return createdAt; }
|
public List<GuideScenicConfigResponse> getScenicConfigs() { return scenicConfigs; }
|
}
|