package sample.usecase;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sample.context.AppSetting;
import sample.context.AppSetting.FindAppSetting;
import sample.context.audit.*;
import sample.context.audit.AuditActor.FindAuditActor;
import sample.context.audit.AuditEvent.FindAuditEvent;
import sample.context.orm.*;
/**
* システムドメインに対する社内ユースケース処理。
*/
@Service
public class SystemAdminService extends ServiceSupport {
@Autowired
private SystemRepository rep;
/** 利用者監査ログを検索します。 */
@Transactional(SystemRepository.BeanNameTx)
public PagingList<AuditActor> findAuditActor(FindAuditActor p) {
return AuditActor.find(rep, p);
}
/** イベント監査ログを検索します。 */
@Transactional(SystemRepository.BeanNameTx)
public PagingList<AuditEvent> findAuditEvent(FindAuditEvent p) {
return AuditEvent.find(rep, p);
}
/** アプリケーション設定一覧を検索します。 */
@Transactional(SystemRepository.BeanNameTx)
public List<AppSetting> findAppSetting(FindAppSetting p) {
return AppSetting.find(rep, p);
}
public void changeAppSetting(String id, String value) {
audit().audit("アプリケーション設定情報を変更する", () -> dh().settingSet(id, value));
}
public void processDay() {
audit().audit("営業日を進める", () -> dh().time().proceedDay(businessDay().day(1)));
}
}