Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.nkapps.billing.dao; import java.math.BigDecimal; import java.math.BigInteger; import java.text.SimpleDateFormat; import org.apache.commons.lang3.StringUtils; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.joda.time.LocalDateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.nkapps.billing.models.BankStatementMunis; import com.nkapps.billing.models.BankStatementMunisId; import com.nkapps.billing.models.Click; import com.nkapps.billing.models.ClickPayment; import com.nkapps.billing.models.ClickPaymentId; import com.nkapps.billing.models.ClickPojo; import com.nkapps.billing.models.Munis; import com.nkapps.billing.models.MunisPayment; import com.nkapps.billing.models.MunisPaymentId; import com.nkapps.billing.models.MunisPojo; import com.nkapps.billing.models.Payment; import com.nkapps.billing.models.Smst; import com.nkapps.billing.models.SmstPayment; import com.nkapps.billing.models.SmstPaymentId; import com.nkapps.billing.models.SmstPojo; /** * * @author nuraddin */ @Service("pgDao") public class PgDaoImpl extends AbstractDao implements PgDao { @Autowired private PaymentDao paymentDao; @Override public void clickSave(ClickPojo clickPojo) throws Exception { Session session = getSession(); Transaction transaction = session.beginTransaction(); Click click = (Click) session.get(Click.class, clickPojo.getId()); LocalDateTime dateTime = LocalDateTime.now(); if (click == null) { click = new Click(); click.setId(clickPojo.getId()); click.setTransactionId(clickPojo.getClickTransId()); click.setTin(clickPojo.getMerchantTransId()); click.setPaymentDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(clickPojo.getSignTime())); click.setPaymentSum(clickPojo.getAmount()); click.setDateCreated(dateTime); click.setDateUpdated(dateTime); session.save(click); Payment payment = new Payment(); payment.setTin(click.getTin()); payment.setPaymentNum(click.getTransactionId().toString()); payment.setPaymentDate(click.getPaymentDate()); payment.setPaymentSum(click.getPaymentSum()); // payment.setSourceCode((short) 3); // for click payment.setState((short) 1); // payment.setClaim((short) 0); // payment.setDateCreated(dateTime); payment.setDateUpdated(dateTime); session.save(payment); ClickPayment cp = new ClickPayment(); ClickPaymentId cpId = new ClickPaymentId(); cpId.setClick(click); cpId.setPayment(payment); cp.setId(cpId); session.save(cp); } else { click.setDateUpdated(dateTime); session.update(click); } transaction.commit(); session.close(); } @Override public void smstSave(SmstPojo smstPojo) throws Exception { Session session = getSession(); Transaction transaction = session.beginTransaction(); Smst smst = (Smst) session.get(Smst.class, smstPojo.getId()); LocalDateTime dateTime = LocalDateTime.now(); if (smst == null) { smst = new Smst(); smst.setId(smstPojo.getId()); smst.setTransactionId(smstPojo.getSmstTransId()); smst.setTin(smstPojo.getMerchantTransId()); smst.setPaymentDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(smstPojo.getSignTime())); smst.setPaymentSum(smstPojo.getAmount()); smst.setDateCreated(dateTime); smst.setDateUpdated(dateTime); session.save(smst); Payment payment = new Payment(); payment.setTin(smst.getTin()); payment.setPaymentNum(smst.getTransactionId().toString()); payment.setPaymentDate(smst.getPaymentDate()); payment.setPaymentSum(smst.getPaymentSum()); // payment.setSourceCode((short) 4); // for smst payment.setState((short) 1); // payment.setClaim((short) 0); // payment.setDateCreated(dateTime); payment.setDateUpdated(dateTime); session.save(payment); SmstPayment sp = new SmstPayment(); SmstPaymentId spId = new SmstPaymentId(); spId.setSmst(smst); spId.setPayment(payment); sp.setId(spId); session.save(sp); } else { smst.setDateUpdated(dateTime); session.update(smst); } transaction.commit(); session.close(); } @Override public void munisSave(MunisPojo munisPojo) throws Exception { Session session = getSession(); Transaction transaction = session.beginTransaction(); Munis munis = (Munis) session.get(Munis.class, new BigInteger(munisPojo.getPaymentId())); LocalDateTime dateTime = LocalDateTime.now(); if (munis == null) { munis = new Munis(); munis.setId(new BigInteger(munisPojo.getPaymentId())); munis.setConfirmCode(munisPojo.getConfirmCode()); munis.setConfirmMessage(munisPojo.getConfirmMessage()); munis.setSysinfoData(munisPojo.getSysinfoData()); munis.setSysinfoTime(munisPojo.getSysinfoTime()); munis.setSysinfoBid(munisPojo.getSysinfoBid()); munis.setSysinfoTid(munisPojo.getSysinfoTid()); munis.setSysinfoSid(munisPojo.getSysinfoSid()); munis.setSysinfoHash(munisPojo.getSysinfoHash()); munis.setPayerBranch(munisPojo.getPayerBranch()); munis.setPayerAccount(munisPojo.getPayerAccount()); munis.setPayerName(munisPojo.getPayerName()); munis.setPayerInn(munisPojo.getPayerInn()); munis.setPayeeBranch(munisPojo.getPayeeBranch()); munis.setPayeeAccount(munisPojo.getPayeeAccount()); munis.setPayeeName(munisPojo.getPayeeName()); munis.setPayeeInn(munisPojo.getPayeeInn()); munis.setPurposeCode(munisPojo.getPurposeCode()); munis.setPurposeText(munisPojo.getPurposeText()); munis.setAmountCurrency(munisPojo.getAmountCurrency()); munis.setAmountValue(new BigDecimal(munisPojo.getAmountValue()).divide(new BigDecimal("100"))); // tiyin convert to so'm munis.setDocumentNum(StringUtils.leftPad(munisPojo.getDocumentNum(), 10, "0")); munis.setDocumentData(new SimpleDateFormat("dd.MM.yyyy").parse(munisPojo.getDocumentData())); munis.setSettlementSupplier(munisPojo.getSettlementSupplier()); munis.setSettlementCode(munisPojo.getSettlementCode()); munis.setSubjectinfoGni(munisPojo.getSubjectinfoGni()); munis.setSubjectinfoInn(munisPojo.getSubjectinfoInn()); munis.setSubjectinfoCodeObj(munisPojo.getSubjectinfoCodeObj()); munis.setInfoserviceInn(munisPojo.getInfoserviceInn()); munis.setInfoserviceName(munisPojo.getInfoserviceName()); munis.setInfoserviceCodeObj(munisPojo.getInfoserviceCodeObj()); munis.setInfoserviceAddressObj(munisPojo.getInfoserviceAddressObj()); munis.setDateCreated(dateTime); munis.setDateUpdated(dateTime); session.save(munis); Payment payment = paymentDao.findPayment(munis.getSubjectinfoInn(), munis.getDocumentNum(), munis.getDocumentData(), munis.getAmountValue(), munis.getPayerInn(), (short) 1); // bank statement payment to search if (payment == null) { payment = new Payment(); payment.setTin(munis.getSubjectinfoInn()); payment.setPaymentNum(munis.getDocumentNum()); payment.setPaymentDate(munis.getDocumentData()); payment.setPaymentSum(munis.getAmountValue()); // payment.setTinDebtor(munis.getPayerInn()); payment.setSourceCode((short) 2); // for munis payment.setState((short) 1); // payment.setClaim((short) 0); // payment.setDateCreated(dateTime); payment.setDateUpdated(dateTime); session.save(payment); MunisPayment mp = new MunisPayment(); MunisPaymentId mpId = new MunisPaymentId(); mpId.setMunis(munis); mpId.setPayment(payment); mp.setId(mpId); session.save(mp); } else { BankStatementMunis bsm = new BankStatementMunis(); BankStatementMunisId bsmId = new BankStatementMunisId(); bsmId.setBankStatement(payment.getBankStatementPayment().getId().getBankStatement()); bsmId.setMunis(munis); bsm.setId(bsmId); session.save(bsm); } } else { munis.setDateUpdated(dateTime); session.update(munis); } transaction.commit(); session.close(); } }