// при параметре nID_Subject != null private SubjectContact syncMail(String sMail, Long nID_Subject) { Subject subject = subjectDao.getSubject(nID_Subject); SubjectHuman subjectHuman = null; try { subjectHuman = subjectHumanDao.findByExpected("oSubject", subject); } catch (Exception e) { LOG.error(e.getMessage(), e); } List<SubjectContact> subjectContacts = subjectContactDao.findContacts(subject); SubjectContact res = null; for (SubjectContact subjectContact : subjectContacts) { SubjectContactType sct = subjectContact.getSubjectContactType(); if (sct.getsName_EN().equals("Email")) { if (subjectContact.getsValue().equals(sMail)) { res = subjectContact; res.setSubject(subject); res.setsDate(); subjectContactDao.saveOrUpdate(res); break; } } } if (res == null) { res = new SubjectContact(); SubjectContactType subjectContactType = subjectContactTypeDao.getEmailType(); res.setSubject(subject); res.setSubjectContactType(subjectContactType); res.setsValue(sMail); res.setsDate(); subjectContactDao.saveOrUpdate(res); if (subjectHuman != null) { subjectHuman.setDefaultEmail(res); // subjectHuman.setSubjectHumanIdType(SubjectHumanIdType.Email); subjectHumanDao.saveOrUpdateHuman(subjectHuman); } } return res; }
// при параметре nID_Subject == null private SubjectContact syncMail(String sMail, Subject oSubject) { SubjectContact res = null; SubjectHuman oSubjectHuman = subjectHumanDao.getSubjectHuman(SubjectHumanIdType.Email, sMail); Subject subject = (oSubjectHuman != null) ? oSubjectHuman.getoSubject() : null; if (subject != null) { oSubject.setId(subject.getId()); oSubject.setsID(subject.getsID()); oSubject.setsLabel(subject.getsLabel()); oSubject.setsLabelShort(subject.getsLabelShort()); res = subjectContactDao.findByExpected("sValue", sMail); if (res != null) { res.setSubject(subject); res.setsDate(); subjectContactDao.saveOrUpdate(res); } } return res; }