@Mapper
public interface QueryCustomerInfoMapper {
@SelectProvider(type = QueryCustomerInfoMapperSql.class, method = "queryAppointRegisterInfo")
List<Map> queryAppointRegisterInfo(Map<String, String> map);
class QueryCustomerInfoMapperSql {
public String queryAppointRegisterInfo(Map<String, String> map) {
return new SQL() {{
SELECT("APPOINT_NO as \"appointNo\"");
SELECT("CHANNEL_CODE as \"channelCode\"");
SELECT("SALES_CHANNEL as \"salesChannel\"");
SELECT("SYSTEM_TYPE as \"systemType\"");
SELECT("TO_CHAR(DATE_APPOINT,'yyyy-mm-dd hh24:mi:ss') as \"dateAppoint\"");
SELECT("TO_CHAR(DATE_ACTIVE,'yyyy-mm-dd hh24:mi:ss') as \"dateActive\"");
FROM("APPOINT_REGISTER");
WHERE("CHANNEL_CODE is not null and LOAN_VALID='Y' ");
if (StringUtils.isNotEmpty(map.get("appointNo"))) {
WHERE("APPOINT_NO=#{appointNo}");
}
if (StringUtils.isNotEmpty(map.get("custNo"))) {
WHERE("CUST_NO=#{custNo}");
}
if (StringUtils.isNotEmpty(map.get("loanCode"))) {
WHERE("LOAN_CODE=#{loanCode}");
}
if (StringUtils.isNotEmpty(map.get("salesChannel"))) {
WHERE("SALES_CHANNEL=#{salesChannel}");
}
if (StringUtils.isNotEmpty(map.get("dateAppoint"))) {
WHERE("to_char(trunc(DATE_APPOINT), 'yyyy-mm-dd')=#{dateAppoint}");
}
ORDER_BY("DATE_UPDATED DESC");
}}.toString();
}
}
}