Hej, tworzę projekt aplikacji ubezpieczniowej. Jakiś czas temu założyłem post na temat pewnej funkcjonalności aplikacji, teraz chciałbym go kontynuować.
Jest to projekt oparty na tutorialu ze strony: http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/
Jako że jest to aplikacja firmy ubezpieczeniowej pierwszym modułem który chciałem zrobić było obliczenie składki ubezpieczenia. W 80% jest on zrobiony. Użytkownik wypełnia formularz, następnie dane te przesyłane są i zapisywane w bazie a potem można je odczytać
Chciałbym zwrócić się o pomoc w napisaniu fragmentu kodu wyliczającego taką składkę ubezpieczenia.
Składka będzie dotyczyła ubezpieczenia samochodu.
Jako przykładowe pole w formularzu które chciałbym wspólnie z Wami napisać będzie „zakresUbezpieczenia”. Posiada ono dwie wartości, „OC” i „OCiAC”. Jeżeli zostanie wybrana druga opcja chciałbym żeby pole „wartoscUbezpieczenia” miało wartość „1000”.
Przygotowałem wstępną implementację, utworzyłem metodę „obliczSkladkeUbezpieczenia” (oczywiście nie działa :)) jest ona zrobiona z jednym polem które ma posłużyć jako przykład, chciałbym uzyskać pomoc i zostać jakoś nakierowanym na właściwe rozwiązanie.
Pytanie 1: DAO, to w nim będzie implementacja wyliczania takiej składki?
Cały kod:
model: https://pastebin.com/WRW588A9
DAO: https://pastebin.com/Yfb3FD4d
serwis: https://pastebin.com/4Q7P7Gim
kontroler: https://pastebin.com/iv03gsqQ
Jeżeli ktoś będzie chciał, mogę wrzucić projekt na Git'a.
Fragmenty kodu:
Model:
public class UbezpieczenieSamochodu {
Integer wartoscUbezpieczenia;
public Integer getWartoscUbezpieczenia() {
//wartoscUbezpieczenia = 500;
return wartoscUbezpieczenia;
}
public void setWartoscUbezpieczenia(Integer wartoscUbezpieczenia) {
this.wartoscUbezpieczenia = wartoscUbezpieczenia;
}
}
DAOImpl:
@Repository
public class UbezpieczenieSamochoduDAOImpl implements UbezpieczenieSamochoduDAO {
NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public void obliczSkladkeUbezpieczenia(UbezpieczenieSamochodu ubezpieczenieSamochodu) {
KeyHolder keyHolder = new GeneratedKeyHolder();
String sql = "INSERT INTO ubezpieczeniaSamochodu(wartoscUbezpieczenia)"
+"VALUES( :wartoscUbezpieczenia)";
if (ubezpieczenieSamochodu.getZakresUbezpieczenia() == "OCiAC") {
ubezpieczenieSamochodu.setWartoscUbezpieczenia(1500);
namedParameterJdbcTemplate.update(sql, getSqlParameterByModel(ubezpieczenieSamochodu),keyHolder);
ubezpieczenieSamochodu.setId(keyHolder.getKey().intValue());
}
}
private SqlParameterSource getSqlParameterByModel (UbezpieczenieSamochodu ubezpieczenieSamochodu) {
MapSqlParameterSource paramSource = new MapSqlParameterSource();
paramSource.addValue("id", ubezpieczenieSamochodu.getId());
paramSource.addValue("zakresUbezpieczenia", ubezpieczenieSamochodu.getZakresUbezpieczenia());
paramSource.addValue("wartoscUbezpiecznia", ubezpieczenieSamochodu.getWartoscUbezpieczenia());
return paramSource;
}
}
Serwis:
@Service("ubezpieczenieSamochoduService")
public class UbezpieczenieSamochoduServiceImpl implements UbezpieczenieSamochoduService {
UbezpieczenieSamochoduDAO ubezpieczenieSamochoduDAO;
@Override
public void obliczSkladkeUbezpieczenia(UbezpieczenieSamochodu ubezpieczenieSamochodu) {
ubezpieczenieSamochoduDAO.obliczSkladkeUbezpieczenia(ubezpieczenieSamochodu);
}
}
Kontroler
@RequestMapping(value = "ubezpieczenia/{id}", method = RequestMethod.GET)
public String showUbezpieczenieSamochodu(@PathVariable ("id") int id, Model model) {
logger.debug("ShowUbezpieczenieSamochodu id: {}", id);
UbezpieczenieSamochodu ubezpieczenieSamochodu = ubezpieczenieSamochoduService.findById(id);
if (ubezpieczenieSamochodu == null) {
model.addAttribute("msg", "Użytkownik nie znaleziony");
}
ubezpieczenieSamochoduService.obliczSkladkeUbezpieczenia(ubezpieczenieSamochodu);
model.addAttribute("ubezpieczenieSamochodu", ubezpieczenieSamochodu);
return "users/obliczonaSkladka";
private void populateDefaultModel(Model model) {
Map<String, String> zakresUbezpieczenia = new LinkedHashMap<String, String>();
zakresUbezpieczenia.put("OC","OC");
zakresUbezpieczenia.put("OCiAC","OC i AC");
model.addAttribute("zakresUbezpieczenia", zakresUbezpieczenia);
}
}
}