You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.8 KiB
Java

package cokr.xit.interfaces.smg.dao;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.interfaces.smg.Petition;
/**국민 신문고 수신 민원 파일의 연계를 위한 DAO
* @author mjkhan
*/
@Mapper("smgMapper")
public interface SmgMapper extends AbstractMapper {
/**지정하는 인터페이스 키의 수신 민원 목록을 반환한다.
* @param interfaceSequences 인터페이스 키
* @return 수신 민원 목록
*/
List<Petition> selectPetitions(List<String> interfaceSequences);
/**지정하는 인터페이스 키의 수신 민원 목록을 반환한다.
* @param interfaceSequences 인터페이스 키
* @return 수신 민원 목록
*/
default List<Petition> selectPetitions(String... interfaceSequences) {
return selectPetitions(!isEmpty(interfaceSequences) ? Arrays.asList(interfaceSequences) : null);
}
/**민원 정보를 등록한다.
* @param petition 민원 정보
* @return 저장된 정보 수
*/
int insertPetition(Petition petition);
/**민원의 첨부파일 정보를 등록한다.
* @param petition 민원 정보
* @return 저장된 정보 수
*/
int insertFile(Petition petition);
/**수신 민원 정보와 민원의 첨부 파일 정보를 등록한다.
* @param petition 수신 민원 정보
* @return 저장된 정보 수
*/
default int create(Petition petition) {
int affected = insertPetition(petition);
insertFile(petition);
return affected;
}
/**민원의 답변/반송 목록을 반환한다.
* 인터페이스 키를 지정하면 해당하는 민원의 답변/반송 목록을 반환한다.
* 인터페이스 키를 지정하지 않으면 전송 대상이 되는 답변/반송 목록을 반환한다.
* @param interfaceSequences 민원의 인터페이스 키
* @return 민원의 답변/반송 목록
*/
List<Petition> selectReplies(List<String> interfaceSequences);
/**인터페이스 키를 지정하면 해당하는 민원의 답변/반송 목록을 반환한다.<br />
* 인터페이스 키를 지정하지 않으면 전송 대상이 되는 답변/반송 목록을 반환한다.
* @param interfaceSequences 민원의 인터페이스 키
* @return 민원의 답변/반송 목록
*/
default List<Petition> selectReplies(String... interfaceSequences) {
return selectReplies(!isEmpty(interfaceSequences) ? Arrays.asList(interfaceSequences) : null);
}
/**민원의 답변/반송 정보를 등록한다.
* @param params 파라미터
* <ul><li>reply - 답변/반송 정보</li>
* <li>currentUser - 현재 사용자 정보</li>
* </ul>
* @return 저장된 정보수
*/
int insertReply(Map<String, Object> params);
/**민원의 답변/반송 정보를 등록한다.
* @param reply 답변/반송 정보
* @return 저장된 정보수
*/
default int createReply(Petition reply) {
return insertReply(
params().set("reply", reply)
);
}
/**민원 답변/반송 파일 생성 후 완료/전송 상태를 업데이트 한다.
* @param params 파라미터
* <ul><li>replies - 답변/반송 정보 목록</li>
* <li>now - 생성 일시(yyyyMMddhhmmss)</li>
* </ul>
* @return 저장된 정보 수
*/
int updateSendStatus(Map<String, Object> params);
/**민원 답변/반송 파일 생성 후 완료/전송 상태를 업데이트 한다.
* @param replies 답변/반송 정보 목록
* @param now 생성 일시(yyyyMMddhhmmss)
* @return 저장된 정보 수
*/
default int updateSendStatus(List<Petition> replies, String now) {
if (isEmpty(replies)) return 0;
return updateSendStatus(params()
.set("replies", replies)
.set("now", now)
);
}
}