示例描述:查询书来的DO中状态status可能是0,1,2,需要转化成VO中的待审核,通过,驳回;
具体写法如下:
import com.sqdsj.sxb_drb.conrtoller.vos.ApplyRecordVO;
import com.sqdsj.sxb_drb.conrtoller.vos.DealApplyRecordParam;
import com.sqdsj.sxb_drb.pojo.ApplyRecordDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface ApplyRecordMapStruct {
ApplyRecordMapStruct INSTANCE = Mappers.getMapper(ApplyRecordMapStruct.class);
ApplyRecordDO paramToDO(DealApplyRecordParam param);
@Mappings({
@Mapping(target = "certType", expression = "java(com.sqdsj.sxb_drb.conrtoller.vos.parse" +
".ApplyRecordParseUtil.parseCertType(doz.getCertType()))"),
@Mapping(target = "status", expression = "java(com.sqdsj.sxb_drb.conrtoller.vos.parse" +
".ApplyRecordParseUtil.parseStatus(doz.getStatus()))")
})
ApplyRecordVO dOToVO(ApplyRecordDO doz);
List<ApplyRecordVO> dOsToVOs(List<ApplyRecordDO> dos);
}
public class ApplyRecordParseUtil {
public static String parseCertType(Integer certType) {
switch (certType) {
case 1:
return "身份证";
case 2:
return "港澳台居民居住证";
default:
return null;
}
}
public static String parseStatus(Integer status) {
switch (status) {
case 0:
return "待审核";
case 1:
return "通过";
case 2:
return "驳回";
default:
return null;
}
}
}
注意:只需要在DOToVO单个对象转化的方法上标注,集合转化会默认循环调用单个对象转化的方法;