ResistStatusDaoImpl.java
package com.mycim.server.resist.dao.impl;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.jdbc.JdbcTemplate;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.server.resist.dao.ResistStatusDao;
import com.mycim.server.resist.dao.mapper.ResistStatusRowMapper;
import com.mycim.valueobject.bas.TransactionLog;
import com.mycim.valueobject.consts.DataBaseNames;
import com.mycim.valueobject.ems.ResistStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
/**
* @author can.yang
*/
@Repository
public class ResistStatusDaoImpl implements ResistStatusDao {
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public void insertResistStatus(Long eventRrn, ResistStatus resistStatus, TransactionLog transactionLog) {
StringBuilder sql = new StringBuilder("insert into ");
sql.append(DataBaseNames.RESIST_STATUS);
sql.append("( RESIST_SYS_RRN,STATUS_GROUP_ID,CURRENT_STATUS,LAST_EVENT_TRANS_RRN,CREATE_TIME,UPDATE_TIME,");
sql.append(" CREATE_USER_RRN,UPDATE_USER_RRN,LOCK_VERSION) SELECT ?, T.STATUS_GROUP_ID STATUS_GROUP_ID, ");
sql.append("T.TARGET_STATUS CURRENT_STATUS,?,?,?,?,?,? FROM ");
sql.append(DataBaseNames.EVENT_MODEL);
sql.append(" T WHERE T.EVENT_RRN= ? ");
List args = new ArrayList();
args.add(resistStatus.getResistSysRrn());
args.add(transactionLog.getTransRrn());
args.add(transactionLog.getTransStartTimestamp());
args.add(transactionLog.getTransStartTimestamp());
args.add(LocalContext.getUserRrn());
args.add(LocalContext.getUserRrn());
args.add(NumberUtils.INTEGER_ZERO);
args.add(eventRrn);
jdbcTemplate.update(sql.toString(), args.toArray());
}
@Override
public void insertResistStatusH(Long eventRrn, ResistStatus resistStatus, TransactionLog transactionLog) {
StringBuilder sql = new StringBuilder("INSERT INTO ");
sql.append(DataBaseNames.RESIST_STATUS_H);
sql.append(" (TRANS_RRN,STATUS_GROUP_ID,STATUS_BEFORE,STATUS_AFTER,TRANS_ID,TRANS_USER_RRN,TRANS_TIME, ");
sql.append(" RESIST_SYS_RRN) VALUES(?,?,?,?,?,?,?,?) ");
List args = new ArrayList();
args.add(transactionLog.getTransRrn());
args.add(resistStatus.getStatusGroupId());
args.add(resistStatus.getStatusBefore());
args.add(resistStatus.getCurrentStatus());
args.add(transactionLog.getTransId());
args.add(LocalContext.getUserRrn());
args.add(transactionLog.getTransStartTimestamp());
args.add(resistStatus.getResistSysRrn());
jdbcTemplate.update(sql.toString(), args.toArray());
}
@Override
public void initInsertResistStatusH(ResistStatus resistStatus, TransactionLog transactionLog) {
StringBuilder sql = new StringBuilder("insert into ");
sql.append(DataBaseNames.RESIST_STATUS_H);
sql.append(" ( TRANS_RRN,STATUS_GROUP_ID,STATUS_BEFORE,TRANS_ID,TRANS_USER_RRN,TRANS_TIME,RESIST_SYS_RRN) ");
sql.append(" SELECT ?,STATUS_GROUP_ID,T.CURRENT_STATUS, ?, ?, ?, T.RESIST_SYS_RRN FROM ");
sql.append(DataBaseNames.RESIST_STATUS);
sql.append(" T WHERE RESIST_SYS_RRN = ? ");
List args = new ArrayList();
args.add(transactionLog.getTransRrn());
args.add(transactionLog.getTransId());
args.add(LocalContext.getUserRrn());
args.add(transactionLog.getTransStartTimestamp());
args.add(resistStatus.getResistSysRrn());
jdbcTemplate.update(sql.toString(), args.toArray());
}
@Override
public void updateResistStatus(ResistStatus resistStatus, TransactionLog transactionLog) {
List args = new ArrayList();
StringBuilder sql = new StringBuilder("UPDATE ");
sql.append(DataBaseNames.RESIST_STATUS);
sql.append(" SET CURRENT_STATUS = ?, LAST_EVENT_TRANS_RRN =? ,UPDATE_USER_RRN=?, UPDATE_TIME= ? ");
sql.append(" WHERE RESIST_SYS_RRN = ? AND STATUS_GROUP_ID = ? ");
args.add(resistStatus.getCurrentStatus());
args.add(transactionLog.getTransRrn());
args.add(LocalContext.getUserRrn());
args.add(transactionLog.getTransStartTimestamp());
args.add(resistStatus.getResistSysRrn());
args.add(resistStatus.getStatusGroupId());
jdbcTemplate.update(sql.toString(), args.toArray());
}
@Override
public ResistStatus getResistStatus(ResistStatus resistStatus) {
StringBuilder sql = new StringBuilder("SELECT ");
sql.append(" RESIST_SYS_RRN,STATUS_GROUP_ID,CURRENT_STATUS,LAST_EVENT_TRANS_RRN,CREATE_TIME FROM ");
sql.append(DataBaseNames.RESIST_STATUS);
sql.append(" WHERE RESIST_SYS_RRN = ?");
List args = new ArrayList();
args.add(resistStatus.getResistSysRrn());
return jdbcTemplate.queryForObjectWithNull(sql.toString(), args.toArray(), new ResistStatusRowMapper());
}
@Override
public String getPreResistStatus(ResistStatus resistStatus) {
StringBuilder sql = new StringBuilder("SELECT ");
sql.append("rh.status_before FROM ");
sql.append(DataBaseNames.RESIST_STATUS);
sql.append(" rs, ");
sql.append(DataBaseNames.RESIST_STATUS_H);
sql.append(" rh WHERE ");
sql.append(" rs.RESIST_SYS_RRN = rh.RESIST_SYS_RRN AND rs.LAST_EVENT_TRANS_RRN = rh.TRANS_RRN ");
sql.append(" AND rs.RESIST_SYS_RRN = ? ");
return jdbcTemplate.queryForObject(sql.toString(), new Object[]{resistStatus.getResistSysRrn()}, String.class);
}
@Override
public void deleteResistStatus(long resistRrn) {
StringBuilder sql = new StringBuilder(" DELETE FROM ");
sql.append(DataBaseNames.RESIST_STATUS);
sql.append(" WHERE RESIST_SYS_RRN = ?");
List args = new ArrayList();
args.add(resistRrn);
jdbcTemplate.update(sql.toString(), args.toArray());
}
}