mybatis項目模塊搭建
mybatis使用步驟
1.PO.xml
2.po定義
3.dao定義
4.PO.xml對應sql語句,返回結果集合
5.mybatis.xml配置別名
6.bean.xml配置PO.xml路徑,Dao對應bean實例化
/**
*
*/
package com.ym.qab.commons.dao;
import java.lang.reflect.ParameterizedType;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import com.ym.qab.commons.dto.Page;
import com.ym.qab.commons.exception.PersistenceException;
import com.ym.qab.commons.persistence.AbstractBaseDao;
import com.ym.qab.commons.persistence.IBaseDAO;
import com.ym.qab.commons.utils.FunIMsgFormat;
/**
* @author Hing<xingguang.ren@pactera.com>
* @since 2014年4月19日
*/
public abstract class BaseDao<T, ID> extends AbstractBaseDao implements IBaseDAO<T, ID> {
private final Logger logger = LoggerFactory.getLogger(getClass().getName());
public static final String POSTFIX_SELECTBYID = ".selectById";
public static final String POSTFIX_SELECTALL = ".selectAll";
public static final String POSTFIX_SELECTBYPROPERTIES = ".selectByProperties";
public static final String POSTFIX_SELECTBYIDS = ".selectByIds";
public static final String POSTFIX_SELECTBYMAP = ".selectByMap";
public static final String POSTFIX_SELECTIDSLIKEBYMAP = ".selectIdsLikeByMap";
public static final String POSTFIX_PKSELECTMAP = ".pkSelectByMap";
public static final String POSTFIX_COUNT = ".count";
public static final String POSTFIX_COUNTLIKEBYMAP = ".countLikeByMap";
public static final String POSTFIX_INSERT = ".insert";
public static final String POSTFIX_DELETEBYID = ".deleteById";
public static final String POSTFIX_DELETEBYIDS = ".deleteByIds";
public static final String POSTFIX_DELETEBYIDSMAP = ".deleteByIdsMap";
public static final String POSTFIX_DELETEBYMAP = ".deleteByMap";
public static final String POSTFIX_UPDATE = ".update";
public static final String POSTFIX_UPDATEBYMAP = ".updateByMap";
public static final String POSTFIX_UPDATEBYIDSMAP = ".updateByIdsMap";
protected Class<T> clazz;
protected String clazzName;
public String getClazzName() {
return clazzName;
}
public void setClazzName(String clazzName) {
this.clazzName = clazzName;
}
protected T t;
@SuppressWarnings("unchecked")
public BaseDao() {
clazz =
(Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
clazzName = clazz.getName();
}
/**
* 獲得方法名,可以作為mybatis的id,便于靈活定義id<br>
* 方法名 == id
* */
public String getPostifx() {
StackTraceElement[] stacks = new Exception().getStackTrace();
String mn = stacks[1].getMethodName();
return "." + mn;
}
/**
* 通過id得到實體對象
*/
@Override
public T selectById(ID id) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的findById方法,傳入的參數是{}。"),
new Object[] { this.getClass().getName(), id });
if (id == null)
return null;
T t = getSqlSession().selectOne(clazzName + POSTFIX_SELECTBYID, id);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findById方,執行的結果是{}。"),
new Object[] { this.getClass().getName(), t });
return t;
}
@Override
public List<T> selectAll() {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的findAll()方法。"), this.getClass()
.getName());
List<T> list = getSqlSession().selectList(clazzName + POSTFIX_SELECTALL);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findAll()方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
@Override
public T selectByProperties(String propertie, Object values) {
return selectByProperties(new String[] { propertie }, values);
}
@Override
public T selectByProperties(String[] properties, Object... values) {
return findOneByStatementPostfix(".selectByProperties", properties, values, null, null);
}
@Override
public <E> E selectByProperties(String statement, String[] properties, Object... values) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的方法,傳遞的參數是statement={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), statement, properties, values });
if (StringUtils.isEmpty(statement))
return null;
Map<String, Object> map = buildMap(properties, values);
E t = getSqlSession().selectOne(clazzName + statement, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的{}方法,結果是{}。"),
new Object[] { this.getClass().getName(), statement, t });
return t;
}
/**
* 根據ids獲取實體列表
*
* @param ids
* @return
*/
@Override
public List<T> selectByIds(List<ID> ids) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的findByIds方法,傳入的參數是{}。"),
new Object[] { this.getClass().getName(), ids });
if (CollectionUtils.isEmpty(ids)) {
throw new PersistenceException("傳入參數為空!");
}
List<T> list = getSqlSession().selectList(clazzName + POSTFIX_SELECTBYIDS, ids);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findByIds方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 根據條件查詢結果
*
* @param properties
* 查詢條件名
* @param propertyValues
* 查詢條件值
* @return
*/
public List<T> selectByMap(String[] properties, Object[] propertyValues, String orderBy, String order)
throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的selectByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order });
Map<String, Object> map = buildMapWithOrder(properties, propertyValues, orderBy, order);
List<T> list = getSqlSession().selectList(clazzName + POSTFIX_SELECTBYMAP, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的selectByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 根據條件分頁查詢結果
*
* @param properties
* @param propertyValues
* @param offset
* 起始記錄
* @param limit
* 最大記錄數
* @param orderBy
* @param order
* @return
* @throws PersistenceException
*/
public List<T> selectByMap(String[] properties, Object[] propertyValues, int offset, int limit,
String orderBy, String order) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的selectByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order });
Map<String, Object> map = buildMapWithOrder(properties, propertyValues, orderBy, order);
RowBounds rowBound = new RowBounds(offset, limit);
List<T> list = getSqlSession().selectList(clazzName + POSTFIX_SELECTBYMAP, map, rowBound);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的selectByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/** like分頁查詢(不走列表緩存) */
public List<T> pageLikeByMap(String[] properties, Object[] propertyValues, String orderBy, String order,
int pageSize, int pageNo) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的pageLikeByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={},pageSize={},pageNo={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order,
pageSize, pageNo });
Map<String, Object> map =
buildMapWithOrderAndPagination(properties, propertyValues, orderBy, order, pageSize, pageNo);
List<ID> ids = getSqlSession().selectList(clazzName + POSTFIX_SELECTIDSLIKEBYMAP, map);
List<T> list = selectByIds(ids);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的pageLikeByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 新增對象
*/
@Override
public T insert(T entity) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的insert方法,傳入的參數是entity={}。"),
new Object[] { this.getClass().getName(), entity });
if (entity == null)
throw new PersistenceException("保存的數據為空!");
try {
getSqlSession().insert(clazzName + POSTFIX_INSERT, entity);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的insert方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行數據插入出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的insert方法,結果是{}。"),
new Object[] { this.getClass().getName(), entity });
return entity;
}
/**
* 更新對象
*/
@Override
public T update(T entity) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的update方法,傳入的參數是entity={}。"),
new Object[] { this.getClass().getName(), entity });
if (entity == null)
throw new PersistenceException("更新的數據為空!");
try {
getSqlSession().update(clazzName + POSTFIX_UPDATE, entity);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的update方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行數據更新出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的update方法,結果是{}。"),
new Object[] { this.getClass().getName(), entity });
return entity;
}
/**
* 根據ID刪除對象
*/
@Override
public void deleteById(ID id) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的deleteById方法,傳遞的參數是id={}。"),
new Object[] { this.getClass().getName(), id });
if (id == null)
throw new PersistenceException("主鍵為空!");
try {
getSqlSession().delete(clazzName + POSTFIX_DELETEBYID, id);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的deleteById方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行刪除出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的deleteById方法。"), this.getClass()
.getName());
}
/**
* 根據ID刪除對象
*/
@Override
public void deleteByIds(List<ID> ids) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調用{}的deleteByIds方法,傳遞的參數是ids={}。"),
new Object[] { this.getClass().getName(), ids });
if (CollectionUtils.isEmpty(ids))
throw new PersistenceException("主鍵為空!");
try {
getSqlSession().delete(clazzName + POSTFIX_DELETEBYIDS, ids);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的deleteByIds方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行批量刪除出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的deleteByIds方法。"), this.getClass()
.getName());
}
@Override
public Integer count(String propertyName, Object propertyValue) {
return count(new String[] { propertyName }, new Object[] { propertyValue });
}
@Override
public Integer count(String[] propertyNames, Object... propertyValues) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的count方法,傳入的參數propertyNames={},propertyValues={}"),
new Object[] { this.getClass().getName(), propertyNames, propertyValues });
Map<String, Object> map = buildMap(propertyNames, propertyValues);
BigDecimal cout = (BigDecimal) getSqlSession().selectOne(clazzName + POSTFIX_COUNT, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的count方法,執行的結果是{}。"),
new Object[] { this.getClass().getName(), cout });
if (cout != null && cout.compareTo(BigDecimal.ZERO) > 0)
return cout.intValue();
return BigDecimal.ZERO.intValue();
}
@Override
public Integer countLikeByMap(String[] propertyNames, Object[] propertyValues)
throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的countLikeByMap方法,傳入的參數propertyNames={},propertyValues={}"),
new Object[] { this.getClass().getName(), propertyNames, propertyValues });
Map<String, Object> map = buildMap(propertyNames, propertyValues);
Integer cout = (Integer) getSqlSession().selectOne(clazzName + POSTFIX_COUNTLIKEBYMAP, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的countLikeByMap方法,執行的結果是{}。"),
new Object[] { this.getClass().getName(), cout });
return cout;
}
/** 根據自定義SqlMap中的條件語句查詢出記錄數量 */
@Override
public Integer countByStatementPostfix(String statementPostfix, String[] properties,
Object[] propertyValues) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的countByStatementPostfix方法,傳入的參數statementPostfix={},propertyNames={},propertyValues={}"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues });
if (StringUtils.isEmpty(statementPostfix))
return 0;
Map<String, Object> map = buildMap(properties, propertyValues);
Integer cout = (Integer) getSqlSession().selectOne(clazzName + statementPostfix, map);
logger.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的countByStatementPostfix方法,執行的結果是{}。"),
new Object[] { this.getClass().getName(), cout });
if (cout != null) {
return cout.intValue();
}
return 0;
}
/**
* 直接從數據庫查詢出ids列表(包括符合條件的所有id)
*
* @param properties
* 查詢條件字段名
* @param propertyValues
* 字段取值
* @return
*/
@Override
public List<ID> findIdsByMap(String[] properties, Object[] propertyValues, String orderBy, String order)
throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findIdsByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order });
Map<String, Object> map = buildMapWithOrder(properties, propertyValues, orderBy, order);
List<ID> list = getSqlSession().selectList(clazzName + POSTFIX_PKSELECTMAP, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findIdsByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 直接從數據庫查詢出ids列表(包括符合條件的所有id)
*
* @param <E>
*
* @param properties
* 查詢條件字段名
* @param propertyValues
* 字段取值
* @return
*/
@Override
public <E> List<E> findByStatementPostfix(String statement, String[] properties, Object[] propertyValues,
int offset, int limit) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的{}方法,傳入的參數是properties={},propertyValues={}。"), new Object[] {
this.getClass()
.getName(),
statement,
properties,
propertyValues });
Map<String, Object> map = buildMap(properties, propertyValues);
RowBounds row = new RowBounds(offset, limit);
List<E> list = getSqlSession().selectList(clazzName + statement, map, row);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的{}方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), statement, list, list.size() });
return list;
}
/**
* 根據條件查詢結果
*
* @param properties
* 查詢條件名
* @param propertyValues
* 查詢條件值
* @return
*/
@Override
public List<T> findByMap(String[] properties, Object[] propertyValues, String orderBy, String order)
throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order });
Map<String, Object> map = buildMapWithOrder(properties, propertyValues, orderBy, order);
List<T> list = getSqlSession().selectList(clazzName + POSTFIX_SELECTBYMAP, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 分頁查詢(未處理緩存)
*
* @param properties
* 查詢條件字段名
* @param propertyValues
* 字段取值
* @return
*/
@Override
public List<T> pageQueryByMap(String[] properties, Object[] propertyValues, String orderBy, String order,
int pageSize, int pageNo) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的pageQueryByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={},pageSize={},pageNo={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order,
pageSize, pageNo });
Map<String, Object> map =
buildMapWithOrderAndPagination(properties, propertyValues, orderBy, order, pageSize, pageNo);
List<T> list = getSqlSession().selectList(clazzName + POSTFIX_SELECTBYMAP, map);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的pageQueryByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 分頁查詢出id列表(處理緩存)
*
* @param properties
* 查詢條件字段名
* @param propertyValues
* 字段取值
* @return
*/
@Override
public List<ID> pageQueryIdsByMap(String[] properties, Object[] propertyValues, String orderBy,
String order, int pageSize, int pageNo) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的pageQueryIdsByMap方法,傳入的參數是properties={},propertyValues={},orderBy={},order={},pageSize={},pageNo={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues, orderBy, order,
pageSize, pageNo });
Map<String, Object> map =
buildMapWithOrderAndPagination(properties, propertyValues, orderBy, order, pageSize, pageNo);
List<ID> list = getSqlSession().selectList(clazzName + POSTFIX_PKSELECTMAP, map);
logger.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的pageQueryIdsByMap方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 更新對象的部分屬性
*/
@Override
public int update(ID id, String propertie, Object propertyValue) throws PersistenceException {
return update(id, new String[] { propertie }, new Object[] { propertyValue });
}
/**
* 更新對象的部分屬性
*/
@Override
public int update(ID id, String[] properties, Object[] propertyValues) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的update方法,傳入的參數是id={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), id, properties, propertyValues });
if (id == null)
throw new PersistenceException("主鍵為空!");
Map<String, Object> map = buildMap(properties, propertyValues);
map.put("id", id);
int count = 0;
try {
count = getSqlSession().update(clazzName + POSTFIX_UPDATEBYMAP, map);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的update方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行數據更新出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的update方法,結果是{}。"),
new Object[] { this.getClass().getName(), count });
return count;
}
/**
* 根據ID列表更新對象的部分屬性
*/
@Override
public int updateByIdsMap(List<ID> ids, String[] properties, Object[] propertyValues)
throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的updateByIdsMap方法,傳入的參數是ids={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), ids, properties, propertyValues });
if (CollectionUtils.isEmpty(ids))
new PersistenceException("主鍵為空!");
Map<String, Object> map = buildMap(properties, propertyValues);
map.put("ids", ids);
int count = 0;
try {
count = getSqlSession().update(clazzName + POSTFIX_UPDATEBYIDSMAP, map);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的updateByIdsMap方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行批量數據更新出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的updateByIdsMap方法,結果是{}。"),
new Object[] { this.getClass().getName(), count });
return count;
}
/** 根據ID及條件刪除對象 */
@Override
public void deleteByIdsMap(List<ID> ids, String[] properties, Object[] propertyValues)
throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的deleteByIdsMap方法,傳遞的參數是ids={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), ids, properties, propertyValues });
if (CollectionUtils.isEmpty(ids))
throw new PersistenceException("主鍵為空!");
Map<String, Object> map = buildMap(properties, propertyValues);
map.put("ids", ids);
try {
getSqlSession().delete(clazzName + POSTFIX_DELETEBYIDSMAP, map);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的deleteByIdsMap方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行批量刪除出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的deleteByIdsMap方法。"), this
.getClass().getName());
}
/**
* 根據條件刪除對象
*/
@Override
public int deleteByMap(String[] properties, Object[] propertyValues) throws PersistenceException {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的deleteByMap方法,傳遞的參數是properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), properties, propertyValues });
Map<String, Object> map = buildMap(properties, propertyValues);
int count = 0;
try {
count = getSqlSession().delete(clazzName + POSTFIX_DELETEBYMAP, map);
} catch (Exception ex) {
logger.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT.getFormat("執行{}的deleteByMap方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行批量刪除出錯。", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的deleteByMap方法,執行的結果是{}。"),
new Object[] { this.getClass().getName(), count });
return count;
}
/**
* 根據自定義SqlMap中的條件語句查詢出列表(注意:不處理緩存)
*/
@Override
public List<T> findByStatementPostfix(String statementPostfix, String[] properties,
Object[] propertyValues, String orderBy, String order) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues,
orderBy, order });
if (StringUtils.isEmpty(statementPostfix))
return null;
Map<String, Object> map = buildMapWithOrder(properties, propertyValues, orderBy, order);
List<T> list = getSqlSession().selectList(clazzName + statementPostfix, map);
logger.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findByStatementPostfix方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 根據自定義SqlMap中的條件語句查詢出對象(注意:不處理緩存)
*/
@Override
public T findOneByStatementPostfix(String statementPostfix, String[] properties, Object[] propertyValues,
String orderBy, String order) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findOneByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues,
orderBy, order });
if (StringUtils.isEmpty(statementPostfix))
return null;
Map<String, Object> map = buildMapWithOrder(properties, propertyValues, orderBy, order);
T t = getSqlSession().selectOne(clazzName + statementPostfix, map);
logger.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的findOneByStatementPostfix方法,結果是{}。"),
new Object[] { this.getClass().getName(), t });
return t;
}
/**
* 根據自定義SqlMap中的條件語句查詢出列表(注意:不處理緩存)
*/
@Override
public List<T> pageQueryByStatementPostfix(String statementPostfix, String[] properties,
Object[] propertyValues, String orderBy, String order, int pageSize, int pageNo)
throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={},orderBy={},order={},pageSize={},pageNo={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues,
orderBy, order, pageSize, pageNo });
if (StringUtils.isEmpty(statementPostfix))
return null;
Map<String, Object> map =
buildMapWithOrderAndPagination(properties, propertyValues, orderBy, order, pageSize, pageNo);
List<ID> ids = getSqlSession().selectList(clazzName + statementPostfix, map);
List<T> list = selectByIds(ids);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("結束執行{}的pageQueryByStatementPostfix方法,結果是{},size={}。"),
new Object[] { this.getClass().getName(), list, list.size() });
return list;
}
/**
* 根據自定義SqlMap中的條件語句更新數據(注意:不處理緩存)
*/
@Override
public int updateByStatementPostfix(String statementPostfix, String[] properties, Object[] propertyValues)
throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的updateByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues });
if (StringUtils.isEmpty(statementPostfix))
throw new PersistenceException("自定義SqlMap中的條件語句為空!");
Map<String, Object> map = buildMap(properties, propertyValues);
int record = 0;
try {
record = getSqlSession().update(clazzName + statementPostfix, map);
} catch (Exception ex) {
logger
.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT
.getFormat("執行{}的updateByStatementPostfix方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行數據更新時出錯!", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的updateByStatementPostfix方法。"), this
.getClass().getName());
return record;
}
/**
* 根據自定義SqlMap中的條件語句刪除數據(注意:不處理緩存)
*/
@Override
public void deleteByStatementPostfix(String statementPostfix, String[] properties, Object[] propertyValues)
throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的deleteByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues });
if (StringUtils.isEmpty(statementPostfix))
throw new PersistenceException("自定義SqlMap中的條件語句為空!");
Map<String, Object> map = buildMap(properties, propertyValues);
try {
getSqlSession().delete(clazzName + statementPostfix, map);
} catch (Exception ex) {
logger
.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT
.getFormat("執行{}的deleteByStatementPostfix方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行數據刪除時出錯!", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的deleteByStatementPostfix方法。"), this
.getClass().getName());
}
/**
* 根據自定義SqlMap中的條件語句 插入數據(注意:不處理緩存)
*/
@Override
public void insertByStatementPostfix(String statementPostfix, String[] properties, Object[] propertyValues)
throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的insertByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues });
if (StringUtils.isEmpty(statementPostfix))
throw new PersistenceException("自定義SqlMap中的條件語句為空!");
Map<String, Object> map = buildMap(properties, propertyValues);
try {
getSqlSession().insert(clazzName + statementPostfix, map);
} catch (Exception ex) {
logger
.debug(FunIMsgFormat.MsgStyle.ERROR_REPORT
.getFormat("執行{}的insertByStatementPostfix方法出現異常,具體原因是:{}"),
new Object[] { this.getClass().getName(), ex.getStackTrace() });
throw new PersistenceException("執行數據插入時出錯!", ex);
}
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的insertByStatementPostfix方法。"), this
.getClass().getName());
}
@Override
public <E> List<E> listByPage(String statement, Page page) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findByStatementPostfix方法,傳遞的參數是statementPostfix={}。"),
new Object[] { this.getClass().getName(), statement });
if (StringUtils.isEmpty(statement))
throw new PersistenceException("自定義SqlMap中的條件語句為空!");
if (!statement.endsWith("ByPage"))
throw new PersistenceException("statement定義錯誤!分頁查詢必須以ByPage結尾");
List<E> list = getSqlSession().selectList(clazzName + statement, page);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行{}的listByPage方法。"), this.getClass()
.getName());
return list;
}
private Map<String, Object> buildMap(String[] propertyNames, Object[] propertyValues)
throws PersistenceException {
Map<String, Object> map = new HashMap<String, Object>();
if (ArrayUtils.isNotEmpty(propertyNames) && ArrayUtils.isNotEmpty(propertyValues)) {
int prosKeyLen = propertyNames.length;
int prosValueLen = propertyValues.length;
if (prosKeyLen != prosValueLen)
throw new PersistenceException("傳遞的參數不匹配!");
for (int i = 0; i < prosKeyLen; i++) {
map.put(propertyNames[i], propertyValues[i]);
}
}
return map;
}
private Map<String, Object> buildMapWithOrder(String[] propertyNames, Object[] propertyValues,
String orderBy, String order) throws PersistenceException {
Map<String, Object> map = buildMap(propertyNames, propertyValues);
if (StringUtils.isNotEmpty(orderBy)) {
map.put("orderBy", orderBy);
map.put("order", order);
}
return map;
}
private Map<String, Object> buildMapWithOrderAndPagination(String[] propertyNames,
Object[] propertyValues, String orderBy, String order, int pageSize, int pageNo)
throws PersistenceException {
Map<String, Object> map = buildMap(propertyNames, propertyValues);
if (StringUtils.isNotEmpty(orderBy)) {
map.put("orderBy", orderBy);
map.put("order", order);
}
map.put("limit", true);
map.put("start", (pageNo - 1) * pageSize);// limit 操作
map.put("end", pageSize);
return map;
}
}<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ym.qab.ts.po.OrderListPO">
<resultMap id="BaseResultMap" type="OrderListPO">
<id column="ID" jdbcType="VARCHAR" property="id" />
<result column="TXN_DATE" jdbcType="TIMESTAMP" property="txnDate" />
<result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" />
<result column="CHNL_ID" jdbcType="CHAR" property="chnlId" />
<result column="ORDER_NO" jdbcType="CHAR" property="orderNo" />
<result column="TXN_TYPE" jdbcType="CHAR" property="txnType" />
<result column="CUST_NO" jdbcType="CHAR" property="custNo" />
<result column="ACCT_NO" jdbcType="VARCHAR" property="acctNo" />
<result column="ACCT_TYPE" jdbcType="CHAR" property="acctType" />
<result column="CARDMER_CODE" jdbcType="CHAR" property="cardmerCode" />
<result column="MER_TIME" jdbcType="TIMESTAMP" property="merTime" />
<result column="MER_ORDER" jdbcType="VARCHAR" property="merOrder" />
<result column="PRODUCT_NAME" jdbcType="VARCHAR" property="productName" />
<result column="ACQMER_CODE" jdbcType="CHAR" property="acqmerCode" />
<result column="ACQMER_NAME" jdbcType="VARCHAR" property="acqmerName" />
<result column="ACQMER_TYPE" jdbcType="CHAR" property="acqmerType" />
<result column="REL_ACCT" jdbcType="VARCHAR" property="relAcct" />
<result column="REL_ACCT_TYPE" jdbcType="CHAR" property="relAcctType" />
<result column="REL_CARDMER_CODE" jdbcType="VARCHAR" property="relCardmerCode" />
<result column="ORDER_STAT" jdbcType="CHAR" property="orderStat" />
<result column="DEL_FLAG" jdbcType="CHAR" property="delFlag" />
<result column="END_TIME" jdbcType="TIMESTAMP" property="endTime" />
<result column="ORDER_DEL_TIME" jdbcType="TIMESTAMP" property="orderDelTime" />
<result column="NOTE_STAT" jdbcType="CHAR" property="noteStat" />
<result column="NOTE_TIME" jdbcType="TIMESTAMP" property="noteTime" />
<result column="TXN_AMT" jdbcType="DECIMAL" property="txnAmt" />
<result column="BEF_AMT" jdbcType="DECIMAL" property="befAmt" />
<result column="TXN_FEE" jdbcType="DECIMAL" property="txnFee" />
<result column="CCY" jdbcType="CHAR" property="ccy" />
<result column="ORI_ORDER_NO" jdbcType="CHAR" property="oriOrderNo" />
<result column="EJECT_AMT" jdbcType="DECIMAL" property="ejectAmt" />
<result column="CHK_FLAG" jdbcType="CHAR" property="chkFlag" />
<result column="CHK_BATCH_NO" jdbcType="CHAR" property="chkBatchNo" />
<result column="CHK_DATE" jdbcType="TIMESTAMP" property="chkDate" />
<result column="MER_STL_FLAG" jdbcType="CHAR" property="merStlFlag" />
<result column="MER_STL_BATCH_NO" jdbcType="CHAR" property="merStlBatchNo" />
<result column="MER_STL_DATE" jdbcType="TIMESTAMP" property="merStlDate" />
<result column="COP_STL_FLAG" jdbcType="CHAR" property="copStlFlag" />
<result column="COP_STL_BATCH_NO" jdbcType="CHAR" property="copStlBatchNo" />
<result column="COP_STL_DATE" jdbcType="TIMESTAMP" property="copStlDate" />
<result column="MEMO" jdbcType="VARCHAR" property="memo" />
<result column="ORDER_CLOSE_TIME" jdbcType="TIMESTAMP" property="orderCloseTime" />
<result column="POS_CODE" jdbcType="VARCHAR" property="posCode" />
<result column="STL_MER_FLAG" jdbcType="CHAR" property="stlMerFlag" />
<result column="ERR_STL_FLAG" jdbcType="CHAR" property="errStlFlag" />
<result column="DEAL_AMT" jdbcType="DECIMAL" property="dealAmt" />
<result column="MER_ERR_STL_BATCH_NO" jdbcType="CHAR" property="merErrStlBatchNo" />
<result column="COP_ERR_STL_BATCH_NO" jdbcType="CHAR" property="copErrStlBatchNo" />
<result column="COPMER_CODE" jdbcType="CHAR" property="copmerCode" />
<result column="CARDMER_TYPE" jdbcType="CHAR" property="cardmerType" />
<result column="COP_ERR_STL_FLAG" jdbcType="CHAR" property="copErrStlFlag" />
<result column="PAY_METHOD" jdbcType="CHAR" property="payMethod" />
<result column="OPER_NO" jdbcType="VARCHAR" property="operNo" />
</resultMap>
<insert id="insert" parameterType="OrderListPO">
insert into T_ORDER_LIST (ID, TXN_DATE, CREATE_TIME,
CHNL_ID, ORDER_NO, TXN_TYPE, CUST_NO,
ACCT_NO, ACCT_TYPE, CARDMER_CODE,
MER_TIME, MER_ORDER, PRODUCT_NAME,
ACQMER_CODE, ACQMER_NAME, ACQMER_TYPE,
REL_ACCT, REL_ACCT_TYPE, REL_CARDMER_CODE,
ORDER_STAT, DEL_FLAG, END_TIME,
ORDER_DEL_TIME, NOTE_STAT, NOTE_TIME,
TXN_AMT, BEF_AMT, TXN_FEE,
CCY, ORI_ORDER_NO, EJECT_AMT,
CHK_FLAG, CHK_BATCH_NO, CHK_DATE,
MER_STL_FLAG, MER_STL_BATCH_NO, MER_STL_DATE,
COP_STL_FLAG, COP_STL_BATCH_NO, COP_STL_DATE,
MEMO, ORDER_CLOSE_TIME, POS_CODE,
STL_MER_FLAG, ERR_STL_FLAG, DEAL_AMT,
MER_ERR_STL_BATCH_NO, COP_ERR_STL_BATCH_NO, COPMER_CODE,
CARDMER_TYPE, COP_ERR_STL_FLAG,PAY_METHOD,OPER_NO)
values (sys_guid(), #{txnDate,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP},
#{chnlId,jdbcType=CHAR}, #{orderNo,jdbcType=CHAR}, #{txnType,jdbcType=CHAR}, #{custNo,jdbcType=CHAR},
#{acctNo,jdbcType=VARCHAR}, #{acctType,jdbcType=CHAR}, #{cardmerCode,jdbcType=CHAR},
#{merTime,jdbcType=TIMESTAMP}, #{merOrder,jdbcType=VARCHAR}, #{productName,jdbcType=VARCHAR},
#{acqmerCode,jdbcType=CHAR}, #{acqmerName,jdbcType=VARCHAR}, #{acqmerType,jdbcType=CHAR},
#{relAcct,jdbcType=VARCHAR}, #{relAcctType,jdbcType=CHAR}, #{relCardmerCode,jdbcType=VARCHAR},
#{orderStat,jdbcType=CHAR}, #{delFlag,jdbcType=CHAR}, #{endTime,jdbcType=TIMESTAMP},
#{orderDelTime,jdbcType=TIMESTAMP}, #{noteStat,jdbcType=CHAR}, #{noteTime,jdbcType=TIMESTAMP},
#{txnAmt,jdbcType=DECIMAL}, #{befAmt,jdbcType=DECIMAL}, #{txnFee,jdbcType=DECIMAL},
#{ccy,jdbcType=CHAR}, #{oriOrderNo,jdbcType=CHAR}, #{ejectAmt,jdbcType=DECIMAL},
#{chkFlag,jdbcType=CHAR}, #{chkBatchNo,jdbcType=CHAR}, #{chkDate,jdbcType=TIMESTAMP},
#{merStlFlag,jdbcType=CHAR}, #{merStlBatchNo,jdbcType=CHAR}, #{merStlDate,jdbcType=TIMESTAMP},
#{copStlFlag,jdbcType=CHAR}, #{copStlBatchNo,jdbcType=CHAR}, #{copStlDate,jdbcType=TIMESTAMP},
#{memo,jdbcType=VARCHAR}, #{orderCloseTime,jdbcType=TIMESTAMP}, #{posCode,jdbcType=VARCHAR},
#{stlMerFlag,jdbcType=CHAR}, #{errStlFlag,jdbcType=CHAR}, #{dealAmt,jdbcType=DECIMAL},
#{merErrStlBatchNo,jdbcType=CHAR}, #{copErrStlBatchNo,jdbcType=CHAR}, #{copmerCode,jdbcType=CHAR},
#{cardmerType,jdbcType=CHAR}, #{copErrStlFlag,jdbcType=CHAR},#{payMethod,jdbcType=CHAR}, #{operNo,jdbcType=VARCHAR})
</insert>
<sql id="Query_Column_List">
ID, TXN_DATE, CREATE_TIME, CHNL_ID, ORDER_NO, TXN_TYPE, CUST_NO, ACCT_NO, ACCT_TYPE,
CARDMER_CODE, MER_TIME, MER_ORDER, PRODUCT_NAME, ACQMER_CODE, ACQMER_NAME, ACQMER_TYPE,
REL_ACCT, REL_ACCT_TYPE, REL_CARDMER_CODE, ORDER_STAT, DEL_FLAG, END_TIME, ORDER_DEL_TIME,
NOTE_STAT, NOTE_TIME, TXN_AMT, BEF_AMT, TXN_FEE, CCY, ORI_ORDER_NO, EJECT_AMT, CHK_FLAG,
CHK_BATCH_NO, CHK_DATE, MER_STL_FLAG, MER_STL_BATCH_NO, MER_STL_DATE, COP_STL_FLAG,
COP_STL_BATCH_NO, COP_STL_DATE, MEMO, ORDER_CLOSE_TIME, POS_CODE, STL_MER_FLAG, ERR_STL_FLAG,
DEAL_AMT, MER_ERR_STL_BATCH_NO, COP_ERR_STL_BATCH_NO, COPMER_CODE, CARDMER_TYPE,
COP_ERR_STL_FLAG,PAY_METHOD,OPER_NO
</sql>
<sql id="Query_Order_List">
o.ID, o.TXN_DATE, o.CREATE_TIME, o.CHNL_ID, o.ORDER_NO, o.TXN_TYPE, o.CUST_NO, o.ACCT_NO,
ACCT_TYPE,
o.CARDMER_CODE, o.MER_TIME, o.MER_ORDER, o.PRODUCT_NAME, o.ACQMER_CODE, o.ACQMER_NAME,
o.ACQMER_TYPE,
o.REL_ACCT, o.REL_ACCT_TYPE, o.REL_CARDMER_CODE, o.ORDER_STAT, o.DEL_FLAG,
END_TIME,ORDER_CLOSE_TIME, ORDER_DEL_TIME,
o.NOTE_STAT, o.NOTE_TIME, o.TXN_AMT, o.BEF_AMT, o.TXN_FEE, o.CCY, o.ORI_ORDER_NO, o.EJECT_AMT,
o.CHK_FLAG,
o.CHK_BATCH_NO, o.CHK_DATE, o.MER_STL_FLAG, o.MER_STL_BATCH_NO, o.MER_STL_DATE, o.COP_STL_FLAG,
o.COP_STL_BATCH_NO, o.COP_STL_DATE,o.POS_CODE
</sql>
<!-- 頻繁交易、大額消費監控 -->
<sql id="Query_Mon_Column_List">
ID, CUST_NO, ORDER_NO, CREATE_TIME, TXN_AMT, ACCT_NO, ACCT_TYPE, CARDMER_CODE,
MER_ORDER, PRODUCT_NAME, ACQMER_CODE, ACQMER_NAME, MEMO
</sql>
<update id="updateByMap">
update t_order_list set
order_stat=#{orderStat},end_time=#{endTime} where id=#{id}
</update>
<update id="updateOriOrderEjectAmt">
update T_ORDER_LIST SET EJECT_AMT = #{ejectAmt} where ORDER_NO = #{orderNo}
</update>
<update id="updateStatByOrderNo">
update t_order_list set order_stat=#{orderStat}
<if test="endTime != null">
, end_time=#{endTime}
</if>
<if test="acctNo != null">
, acct_no=#{acctNo}
</if>
<if test="txnAmt != null">
, txn_amt=#{txnAmt}
</if>
<if test="cardmerCode != null and cardmerCode != ''">
, cardmer_code=#{cardmerCode}
</if>
where order_stat = #{preStat} and order_no=#{orderNo}
</update>
<update id="updateNoteStatByOrderNo">
update t_order_list set NOTE_STAT=#{noteStat}
,NOTE_TIME=#{noteTime}
where order_stat = #{preStat} and order_no=#{orderNo}
</update>
<!-- 根據操作員賬號查詢訂單信息,liu.xu于2014-11-13添加 -->
<sql id="operNoQryCondition">
<where>
<if test="operNo != null">
and oper_no in(
select cust_no from t_es_login_info where user_flag='2' and cust_no=#{operNo}
union
select cust_no from t_es_login_info where mer_code =(select mer_code from t_es_login_info where user_flag='1' and cust_no=#{operNo})
)
</if>
<if test="orderNo != null">
and order_no like #{orderNo}
</if>
and Del_FLAG=#{delFlag}
and txn_type in('01','02','11')
</where>
</sql>
<!-- 查詢消費凈額消費部分金額,liu.xu于2014-11-17添加 -->
<sql id="qryNetAmtInCondition">
<where>
<if test="operNo != null">
and oper_no in(
select cust_no from t_es_login_info where user_flag='2' and cust_no=#{operNo}
union
select cust_no from t_es_login_info where mer_code =(select mer_code from t_es_login_info where user_flag='1' and cust_no=#{operNo})
)
</if>
<if test="orderNo != null">
and order_no like #{orderNo}
</if>
and Del_FLAG=#{delFlag}
and txn_type='01'
and order_stat='1'
</where>
</sql>
<!-- 查詢消費凈額退貨部分金額,liu.xu于2014-11-17添加 -->
<sql id="qryNetAmtOutCondition">
<where>
<if test="operNo != null">
and oper_no in(
select cust_no from t_es_login_info where user_flag='2' and cust_no=#{operNo}
union
select cust_no from t_es_login_info where mer_code =(select mer_code from t_es_login_info where user_flag='1' and cust_no=#{operNo})
)
</if>
<if test="orderNo != null">
and order_no like #{orderNo}
</if>
and Del_FLAG=#{delFlag}
and txn_type in ('02','11')
and order_stat='1'
</where>
</sql>
<!-- app訂單查詢,不顯示退款 -->
<sql id="pageQueryCondition">
<where>
<if test="orderNoList != null">
order_no in
<foreach collection="orderNoList" index="index" item="item"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="acqmerCode != null">
and acqmer_Code = #{acqmerCode}
</if>
<if test="acqmerType != null">
and acqmer_type = #{acqmerType}
</if>
<if test="productName != null">
and product_name like #{productName}
</if>
<!-- 統計數量 2014-10-21添加退款項 j.zhou -->
and TXN_TYPE in ('01','11','02')
<!-- and txn_Type='01' -->
and Del_FLAG=#{delFlag}
and cust_no=#{custNo}
and txn_date >= #{txnDate}
</where>
</sql>
<!-- app訂單查詢,不顯示退款 -->
<!-- <select id="selectByMap" resultMap="BaseResultMap">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST
<include refid="pageQueryCondition" />
order by order_no desc
</select> -->
<!-- 根據操作員賬號查詢訂單信息,liu.xu于2014-11-13添加 -->
<select id="selectByOperNo" resultMap="BaseResultMap">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST
<include refid="operNoQryCondition" />
order by order_no desc
</select>
<!-- 添加退款訂單 -->
<sql id="Query_Column_List2">
t.ID, t.TXN_DATE, t.CREATE_TIME, t.CHNL_ID, t.ORDER_NO, t.TXN_TYPE, t.CUST_NO, t.ACCT_NO,
t.ACCT_TYPE,t.CARDMER_CODE, t.MER_TIME, t.MER_ORDER, t.PRODUCT_NAME, t.ACQMER_CODE, t.ACQMER_NAME,
t.ACQMER_TYPE,t.REL_ACCT, t.REL_ACCT_TYPE, t.REL_CARDMER_CODE, t.ORDER_STAT, t.DEL_FLAG,t.END_TIME,
t.ORDER_DEL_TIME,t.NOTE_STAT, t.NOTE_TIME, t.TXN_AMT, t.BEF_AMT, t.TXN_FEE, t.CCY,
(case when (t.txn_type='02' or t.txn_type='11') then p.mer_order else t.ori_order_no end) as ORI_ORDER_NO,
t.EJECT_AMT,t.CHK_FLAG,t.CHK_BATCH_NO, t.CHK_DATE, t.MER_STL_FLAG, t.MER_STL_BATCH_NO, t.MER_STL_DATE, t.COP_STL_FLAG,
t.COP_STL_BATCH_NO, t.COP_STL_DATE, t.MEMO, t.ORDER_CLOSE_TIME, t.POS_CODE,
t.STL_MER_FLAG, t.ERR_STL_FLAG,t.DEAL_AMT, t.MER_ERR_STL_BATCH_NO, t.COP_ERR_STL_BATCH_NO, t.COPMER_CODE, t.CARDMER_TYPE,
t.COP_ERR_STL_FLAG,t.PAY_METHOD
</sql>
<select id="selectByMap" resultMap="BaseResultMap">
select
<include refid="Query_Column_List2" />
from t_order_list t, t_order_list p
where t.ori_order_no=p.order_no(+)
<if test="orderNoList != null">
and t.order_no in
<foreach collection="orderNoList" index="index" item="item"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="acqmerCode != null">
and t.acqmer_Code = #{acqmerCode}
</if>
<if test="acqmerType != null">
and t.acqmer_type = #{acqmerType}
</if>
<if test="productName != null">
and t.product_name like #{productName}
</if>
and t.TXN_TYPE in ('01','11','02')
and t.Del_FLAG=#{delFlag}
and t.cust_no=#{custNo}
and t.txn_date >=#{txnDate}
order by t.order_no desc
</select>
<select id="countRetSuccess" resultType="Integer">
select count(id) from t_order_list where txn_type in ('02','11') and order_stat='1' and ori_order_no=#{orderNo}
</select>
<select id="selectByMapTotalrecord" resultType="Integer">
select count(id) from T_ORDER_LIST
<include refid="pageQueryCondition" />
</select>
<!-- 根據操作員賬號查詢訂單總數,liu.xu于2014-11-13添加 -->
<select id="selectTotalrecordByOperNo" resultType="Integer">
select count(id) from T_ORDER_LIST
<include refid="operNoQryCondition" />
</select>
<!-- 根據操作員賬號查詢交易凈額,liu.xu于2014-11-17添加 -->
<select id="selectNetAmountByOperNo" resultType="BigDecimal">
select consumeAmt-returnAmt from (select decode(sum(txn_amt) ,null,0,sum(txn_amt)) as consumeAmt from t_order_list <include refid="qryNetAmtInCondition" />) , (select decode(sum(txn_amt) ,null,0,sum(txn_amt)) as returnAmt from t_order_list <include refid="qryNetAmtOutCondition" />)
</select>
<select id="findLastPayOrderList" resultMap="BaseResultMap">
select <include refid="Query_Column_List"/> from
T_ORDER_LIST where CUST_NO = #{custNo} and CARDMER_CODE =
#{cardmerCode} and ACCT_NO = #{acctNo} and TXN_TYPE = #{txnType}
and ORDER_STAT = #{orderStat} and rownum = 1 order by TXN_DATE desc
</select>
<!--APP訂單按月份統計 -->
<!-- 2014-10-22 添加退款記錄,并從支出中去除 -->
<select id="sumTxnAmt" resultType="Map">
select sum(amt)*100 AMT,YYMM from(
select
sum((case when (txn_type='02' or txn_type='11') then 0-txn_amt else txn_amt end)) amt,
to_char(txn_date,'yymm') yymm
from T_ORDER_LIST
where
ORDER_STAT=#{orderStat}
and Del_FLAG=#{delFlag}
and txn_type in ('01','02','11')
and CUST_NO = #{custNo}
and TXN_DATE
>= #{txnDateBegin}
and txn_date <= #{txnDateEnd}
group by txn_date
)group by yymm order by yymm desc
</select>
<!-- <select id="sumTxnAmt" resultType="Map">
select sum(amt)*100 AMT,YYMM from(
select sum(txn_amt) amt,to_char(txn_date,'yymm') yymm from
T_ORDER_LIST where ORDER_STAT=#{orderStat} and Del_FLAG=#{delFlag}
and txn_type=#{txnType}
and CUST_NO = #{custNo} and TXN_DATE
>= #{txnDateBegin} and txn_date <= #{txnDateEnd}
group by txn_date
)group by yymm order by yymm desc
</select> -->
<!--SZL 2014-12-25 添加用于輔助賬戶余額表 凍結金額處理-->
<select id="frozenOrderInfo" resultType="Map">
SELECT o.order_no,o.txn_amt,o.acqmer_code,o.cardmer_code, c.cardmer_type FROM t_order_list o, t_cardmer_info c
WHERE o.cardmer_code = c.cardmer_code AND o.order_no= #{orderNo}
</select>
<select id="getByMerOrder" resultMap="BaseResultMap">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST
where
mer_order=#{merOrder}
and acqmer_Code=#{acqmerCode}
</select>
<update id="delOrder">
update T_ORDER_LIST
set del_flag=#{delFlag},
ORDER_DEL_TIME = #{orderDelTime}
where order_no in
<foreach collection="orderNoList" index="index" item="item"
open="(" separator="," close=")">
#{item}
</foreach>
and cust_no = #{custNo}
</update>
<select id="getRefundOrder" resultMap="BaseResultMap"
parameterType="String">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST where ACQMER_CODE = #{acqmerCode}
and ORI_ORDER_NO = #{oriOrderNo} and ORDER_STAT = '1'
</select>
<select id="getOriOrder" resultMap="BaseResultMap"
parameterType="Object">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST where ACQMER_CODE = #{acqmerCode}
and ORDER_STAT = #{stat} and TXN_TYPE = #{txnType}
<if test="oriMerOrder !=null and oriMerOrder != ''">
and MER_ORDER = #{oriMerOrder}
</if>
<if test="oriTranDate !=null and oriTranDate != ''">
and TXN_DATE = #{oriTranDate}
</if>
<if test="oriOrderNo !=null and oriOrderNo != ''">
and ORDER_NO = #{oriOrderNo}
</if>
</select>
<!-- 退款,退貨操作查詢是否有原訂單非失敗的退款退貨訂單 -->
<select id="queryByProps" resultMap="BaseResultMap"
parameterType="Object">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST
<where>
<if test="acqmerCode !=null and acqmerCode != ''">
and ACQMER_CODE = #{acqmerCode}
</if>
<if test="stat !=null and stat != ''">
and ORDER_STAT <> #{stat}
</if>
<if test="txnType !=null and txnType != ''">
and TXN_TYPE = #{txnType}
</if>
<!-- 退款成功的,無論是商戶還是亞盟 zhoujian 20141211 -->
<if test="txnType ==null or txnType == ''">
and (TXN_TYPE = '11' or TXN_TYPE='02')
</if>
<if test="oriMerOrder !=null and oriMerOrder != ''">
and MER_ORDER = #{oriMerOrder}
</if>
<if test="oriTranDate !=null and oriTranDate != ''">
and TXN_DATE = #{oriTranDate}
</if>
<if test="oriOrderNo !=null and oriOrderNo != ''">
and ORI_ORDER_NO = #{oriOrderNo}
</if>
</where>
</select>
<!-- 查詢客戶交易記錄 memo==loginName -->
<select id="queryOrderListByPage" parameterType="com.ym.qab.commons.dto.Page"
resultMap="BaseResultMap">
select
tc.CUST_NO,tc.TXN_DATE,tc.CHNL_ID,tc.ACQMER_NAME,tc.TXN_TYPE,tc.ACCT_TYPE,tc.ACCT_NO
,tc.ORDER_STAT,tc.TXN_AMT,tc.ORDER_NO,tc.ORI_ORDER_NO,tc.PAY_METHOD
<choose>
<when test="memo != null and memo != ''">
from T_CUST_INFO c, T_ORDER_LIST tc
</when>
<otherwise>
from T_ORDER_LIST tc
</otherwise>
</choose>
<where>
<if test="memo !=null and memo != ''">
and tc.CUST_NO = c.CUST_NO and c.LOGIN_NAME = #{memo}
</if>
<if test="custNo !=null and custNo != ''">
and tc.CUST_NO = #{custNo}
</if>
<if test="txnDate !=null and txnDate != ''">
and tc.TXN_DATE = #{txnDate}
</if>
<if test="chnlId !=null and chnlId != ''">
and tc.CHNL_ID = #{chnlId}
</if>
<if test="txnType !=null and txnType != ''">
and tc.TXN_TYPE = #{txnType}
</if>
<if test="acctType !=null and acctType != ''">
and tc.ACCT_TYPE = #{acctType}
</if>
<if test="acctNo !=null and acctNo != ''">
and tc.ACCT_NO = #{acctNo}
</if>
<if test="orderStat !=null and orderStat != ''">
and tc.ORDER_STAT = #{orderStat}
</if>
<if test="cardmerCode !=null and cardmerCode != ''">
and tc.CARDMER_CODE = #{cardmerCode}
</if>
<if test="acqmerCode !=null and acqmerCode != ''">
and tc.ACQMER_CODE = #{acqmerCode}
</if>
<if test="merOrder !=null and merOrder != ''">
and tc.MER_ORDER = #{merOrder}
</if>
<if test="orderNo !=null and orderNo != ''">
and tc.ORDER_NO = #{orderNo}
</if>
<if test="startDate != null and startDate != ''" >
<![CDATA[
and to_char(tc.TXN_DATE,'yyyy.mm.dd') >= #{startDate}
]]>
</if>
<if test="endDate != null and endDate != ''" >
<![CDATA[
and to_char(tc.TXN_DATE,'yyyy.mm.dd') <= #{endDate}
]]>
</if>
<if test="payMethod !=null and payMethod != ''">
and tc.PAY_METHOD = #{payMethod}
</if>
</where>
order by CREATE_TIME desc
</select>
<!-- 查詢客戶交易記錄,進行大額、頻繁交易監控 -->
<select id="queryMonOrderList" parameterType="Map"
resultMap="BaseResultMap">
select <include refid="Query_Mon_Column_List" />
from T_ORDER_LIST
where create_time <= #{endTime}
and create_time >= #{startTime}
and ORDER_STAT = #{orderStat}
order by create_time asc
</select>
<!-- 查詢客戶交易記錄的條數,進行大額、頻繁交易監控 -->
<select id="queryMonOrderListCount" parameterType="Map"
resultType="Long">
select count(ID)
from T_ORDER_LIST
where create_time <= #{endTime}
and create_time >= #{startTime}
and ORDER_STAT = #{orderStat}
</select>
<!-- 查詢客戶交易記錄總數 -->
<select id="queryOrderCount" parameterType="OrderListPO"
resultType="Long">
select count(*)
<choose>
<when test="memo != null and memo != ''">
from T_CUST_INFO c, T_ORDER_LIST tc
</when>
<otherwise>
from T_ORDER_LIST tc
</otherwise>
</choose>
<where>
<if test="memo !=null and memo != ''">
and tc.CUST_NO = c.CUST_NO and c.LOGIN_NAME = #{memo}
</if>
<if test="custNo !=null and custNo != ''">
and tc.CUST_NO = #{custNo}
</if>
<if test="txnDate !=null and txnDate != ''">
and tc.TXN_DATE = #{txnDate}
</if>
<if test="chnlId !=null and chnlId != ''">
and tc.CHNL_ID = #{chnlId}
</if>
<if test="txnType !=null and txnType != ''">
and tc.TXN_TYPE = #{txnType}
</if>
<if test="acctType !=null and acctType != ''">
and tc.ACCT_TYPE = #{acctType}
</if>
<if test="acctNo !=null and acctNo != ''">
and tc.ACCT_NO = #{acctNo}
</if>
<if test="orderStat !=null and orderStat != ''">
and tc.ORDER_STAT = #{orderStat}
</if>
<if test="cardmerCode !=null and cardmerCode != ''">
and tc.CARDMER_CODE = #{cardmerCode}
</if>
<if test="acqmerCode !=null and acqmerCode != ''">
and tc.ACQMER_CODE = #{acqmerCode}
</if>
<if test="merOrder !=null and merOrder != ''">
and tc.MER_ORDER = #{merOrder}
</if>
<if test="orderNo !=null and orderNo != ''">
and tc.ORDER_NO = #{orderNo}
</if>
</where>
</select>
<!-- 對賬 order_stat=#{orderStat} and chk_Flag=#{chkFlag} and -->
<select id="selectChkUnique" resultMap="BaseResultMap">
select id,txn_amt,order_no,order_stat,chk_Flag from T_ORDER_LIST
where ACQMER_CODE=#{acqmerCode} and MER_ORDER=#{merOrder}
</select>
<update id="updateChkFlag">
update T_ORDER_LIST set chk_Flag=#{chkFlag} , chk_Batch_No=#{chkBatchNo},chk_date=trunc(sysdate)
where id=#{id}
</update>
<!-- 對賬,登記亞盟多的記錄 -->
<select id="countChkList" resultType="Integer">
select count(id) from T_ORDER_LIST
where txn_type in('01','02','11') and order_stat=#{orderStat} and txn_Date =#{txnDate} and chk_Flag=#{chkFlag} and
acqmer_Code=#{acqmerCode}
</select>
<!-- 對賬,登記亞盟多的記錄 -->
<select id="findChkList" resultMap="BaseResultMap">
select
<include refid="Query_Column_List" />
from T_ORDER_LIST
where txn_type in('01','02','11') and order_stat=#{orderStat} and txn_Date =#{txnDate} and chk_Flag=#{chkFlag} and
acqmer_Code=#{acqmerCode}
</select>
<!-- 根據訂單號查詢訂單(可擴展) -->
<select id="queryOrderByOrderNo" parameterType="OrderListPO"
resultMap="BaseResultMap">
select
<include refid="Query_Order_List" />,
(select login_name from t_cust_info c where o.cust_no = c.cust_no) as memo
from T_ORDER_LIST o
<where>
<if test="orderNo !=null and orderNo !=''">
and o.ORDER_NO = #{orderNo}
</if>
</where>
</select>
<update id="updateByOrderNo">
update t_order_list
<set>
<if test="orderStat != null and orderStat !=''">
order_stat=#{orderStat}
</if>
</set>
where order_no=#{orderNo}
</update>
<update id="updateFail">
update T_ORDER_LIST set order_stat=#{orderStat} , chk_Flag=#{chkFlag},err_stl_flag=#{errStlFlag}
where id=#{id}
</update>
<update id="updateFailWithCop">
update T_ORDER_LIST set order_stat=#{orderStat} , chk_Flag=#{chkFlag},err_stl_flag=#{errStlFlag},COP_ERR_STL_FLAG=#{copErrStlFlag}
where id=#{id}
</update>
<update id="updateFailWithFlag">
update T_ORDER_LIST set order_stat=#{orderStat} ,chk_Flag=#{chkFlag},mer_stl_flag=#{merStlFlag},cop_stl_flag=#{copStlFlag}, err_stl_flag=#{errStlFlag},cop_err_stl_flag=#{copErrStlFlag}
where id=#{id}
</update>
<!-- 合作伙伴結算 -->
<update id="copmerUpdateOrder">
update t_order_list t
set t.COP_STL_BATCH_NO=#{copStlBatchNo},t.COP_STL_DATE=#{copStlDate},
t.COP_STL_FLAG=#{copStlFlag}
where t.order_no in
((select order_no from t_cust_acct_list where order_no in
(select o.order_no from t_order_list o
where o.COPMER_CODE=#{copmerCode} and o.txn_date<#{txnDate}
and o.COP_STL_FLAG=#{oldCopStlFlag} and o.ORDER_STAT=#{orderStat}) and STL_FLAG=#{stlFlag} ))
</update>
<update id="copmerUpdateAmountDifferOrder">
update t_order_list t
set t.COP_ERR_STL_BATCH_NO=#{copErrStlBatchNo}, t.COP_ERR_STL_FLAG=#{copErrStlFlag}
where t.order_no in
(select ori_order_no from t_cust_acct_list where ori_order_no in
(select o.order_no from t_order_list o
where o.COPMER_CODE=#{copmerCode} and o.txn_date<#{txnDate}
and o.COP_ERR_STL_FLAG=#{oldcopErrStlFlag} and o.ORDER_STAT=#{orderStat}) and txn_type not in ('02','11') and STL_FLAG=#{stlFlag})
</update>
<update id="copmerUpdateDealOrder">
update t_order_list t
set t.COP_ERR_STL_BATCH_NO=#{copErrStlBatchNo}, t.COP_ERR_STL_FLAG=#{copErrStlFlag}
where t.order_no in
(select order_no from t_cust_acct_list where order_no in
(select o.order_no from t_order_list o
where o.COPMER_CODE=#{copmerCode} and o.txn_date<#{txnDate}
and o.COP_ERR_STL_FLAG=#{oldcopErrStlFlag} and o.ORDER_STAT=#{orderStat} ) and STL_FLAG=#{stlFlag} )
</update>
<!-- 特約商戶結算-先對賬后結算
對賬標記:成功=1 或者 無需對賬=4 SZL 2014-12-04
-->
<select id="sumMerTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0)+nvl(sum(o.DEAL_AMT),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and (o.CHK_FLAG='1' or o.CHK_FLAG='4') and o.ORDER_STAT=#{orderStat} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 登記結算后修改訂單明細狀態。[訂單狀態成功=1; 對賬成功=1 或者 無需對賬=4; 未結算=0] 才參與修改
結算狀態為 結算中=1
SZL
-->
<update id="merUpdateOrder">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate},
t.MER_STL_FLAG='1'
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.MER_STL_FLAG='0' and o.ORDER_STAT='1' and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag}
and (o.CHK_FLAG='1' or o.CHK_FLAG='4'))
</update>
<!-- 修訂 調賬后訂單是成功的,結算時沒同步調漲標記為 調賬成功已結算 SZL-->
<!-- 操作 修改 成功狀態、并結算中、并調帳標記不為null的記錄為 調賬成功已結算 SZL-->
<update id="syncErrStlingState">
update t_order_list o
set o.err_stl_flag='3'
where o.order_stat = '1' and o.MER_STL_FLAG = '1' and o.err_stl_flag is not null
</update>
<update id="merUpdateAmountDifferOrder">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merStlBatchNo},t.ERR_STL_FLAG=#{newErrStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.MER_STL_FLAG=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} and o.CHK_FLAG=#{chkFlag} and o.ERR_STL_FLAG=#{oldErrStlFlag})
</update>
<!-- 特約商戶結算-先結算后對賬 -->
<select id="sumMerChkStlTxnAmt" resultType="Map">
select nvl(nvl(sum(o.txn_amt),0)+nvl(sum(o.DEAL_AMT),0),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ORDER_STAT=#{orderStat} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="sumMerChkStlDealTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ERR_STL_FLAG=#{errStlFlag} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.order_stat=#{orderStat}
</select>
<select id="sumMerAmountDifferTxnAmt" resultType="Map">
select nvl(sum(o.DEAL_AMT),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ERR_STL_FLAG=#{errStlFlag} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.order_stat=#{orderStat}
</select>
<update id="merUpdatebefOrder">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate},
t.MER_STL_FLAG=#{newMerStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.mer_stl_flag=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} )
</update>
<update id="merNoChkUpdateAmountDifferOrder">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merStlBatchNo},t.ERR_STL_FLAG=#{newErrStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.MER_STL_FLAG=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} and o.ERR_STL_FLAG=#{oldErrStlFlag})
</update>
<update id="merUpdateaftOrder">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merErrStlBatchNo},
t.ERR_STL_FLAG=#{errStlFlagaft}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.mer_stl_flag=#{merStlFlag} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} and o.ERR_STL_FLAG=#{errStlFlagbef} and o.ORDER_STAT=#{orderStat})
</update>
<!-- 發卡機構結算-單用途卡-先對賬 后結算-->
<select id="sumCardSingleTxnAmt" resultType="Map">
select nvl(nvl(sum(o.txn_amt),0)+nvl(sum(o.DEAL_AMT),0),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.CHK_FLAG in ('1','4')
and o.ORDER_STAT=#{orderStat} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.CARDMER_CODE=#{cardmerCode}
</select>
<update id="cardSingleUpdateOrder">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate},
t.MER_STL_FLAG=#{newMerStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.MER_STL_FLAG=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType}
and o.STL_MER_FLAG=#{stlMerFlag} and o.CHK_FLAG in ('1','4') and o.CARDMER_CODE=#{cardmerCode})
</update>
<update id="cardSingleUpdateAmountDifferOrder">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merStlBatchNo},t.ERR_STL_FLAG=#{newErrStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.MER_STL_FLAG=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType}
and o.STL_MER_FLAG=#{stlMerFlag} and o.CHK_FLAG in ('1','4') and o.ERR_STL_FLAG=#{oldErrStlFlag} and
o.CARDMER_CODE=#{cardmerCode})
</update>
<!-- 發卡機構結算-單用途卡-先結算后對賬 -->
<select id="sumCardSingleNoChkTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0)+nvl(sum(o.DEAL_AMT),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ORDER_STAT=#{orderStat} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.cardmer_code=#{cardmerCode}
</select>
<select id="sumCardSingleNoChkDealTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ERR_STL_FLAG=#{errStlFlag} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.order_stat=#{orderStat}
and o.cardmer_code=#{cardmerCode}
</select>
<select id="sumCardSingleNoChkAmountDifferTxnAmt" resultType="Map">
select nvl(sum(o.DEAL_AMT),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ERR_STL_FLAG=#{errStlFlag} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.order_stat=#{orderStat}
and o.cardmer_code=#{cardmerCode}
</select>
<update id="cardSingleNoChkUpdatebefOrder">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate},
t.MER_STL_FLAG=#{newMerStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.mer_stl_flag=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} and o.cardmer_code=#{cardmerCode} )
</update>
<update id="cardSingleNoChkUpdateAmountDifferOrder">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merStlBatchNo},t.ERR_STL_FLAG=#{newErrStlFlag}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.MER_STL_FLAG=#{oldMerStlFlag} and o.ORDER_STAT=#{orderStat} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} and o.ERR_STL_FLAG=#{oldErrStlFlag}
and o.cardmer_code=#{cardmerCode})
</update>
<update id="cardSingleNoChkUpdateaftOrder">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merErrStlBatchNo},
t.ERR_STL_FLAG=#{errStlFlagaft}
where t.order_no in
(select order_no from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.txn_date<#{txnDate}
and o.mer_stl_flag=#{merStlFlag} and o.CARDMER_TYPE=#{cardmerType} and o.STL_MER_FLAG=#{stlMerFlag} and o.ERR_STL_FLAG=#{errStlFlagbef} and o.ORDER_STAT=#{orderStat}
and o.cardmer_code=#{cardmerCode})
</update>
<!-- 發卡機構結算-多用途卡-先對賬后結算 -->
<select id="sumCardChkStlTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0) DTXNAMT from t_order_list o
inner join t_cust_acct_list t on t.order_no=o.order_no
and t.STL_FLAG=#{stlFlag} and t.CHK_FLAG=#{tchkFlag} and t.TXN_STAT=#{txnStat} and t.CARDMER_code=#{cardmerCode} and t.txn_date<#{txnDate}
where o.MER_STL_FLAG=#{merStlFlag} and o.CHK_FLAG in ('1','4') and t.ORDER_STAT=#{orderStat} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.ACQMER_CODE=#{acqmerCode}
</select>
<update id="updateCardChkStlTxnAmt">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate}, t.MER_STL_FLAG=#{merStlFlag}
where t.cardmer_code=#{cardmerCode} and t.MER_STL_FLAG=#{oldMerStlFlag} and t.ORDER_STAT=#{orderStat} and t.ACQMER_CODE=#{acqmerCode} and t.ERR_STL_FLAG is null and t.CHK_FLAG in ('1','4')
</update>
<update id="updateCardChkDealStlTxnAmt">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate}, t.MER_STL_FLAG=#{merStlFlag},t.ERR_STL_FLAG ='3',t.MER_ERR_STL_BATCH_NO=#{merStlBatchNo}
where t.cardmer_code=#{cardmerCode} and t.MER_STL_FLAG=#{oldMerStlFlag} and t.ORDER_STAT=#{orderStat} and t.ACQMER_CODE=#{acqmerCode} and t.ERR_STL_FLAG ='1' and t.CHK_FLAG in ('1','4')
</update>
<!-- 發卡機構結算-多用途卡-先結算后對賬 -->
<select id="sumCardNoChkStlTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0)+nvl(sum(o.DEAL_AMT),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ORDER_STAT=#{orderStat} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.cardmer_code=#{cardmerCode}
</select>
<select id="sumCardNoChkDealStlTxnAmt" resultType="Map">
select nvl(sum(o.txn_amt),0) DTXNAMT from t_order_list o
where o.acqmer_code=#{acqmerCode} and o.STL_MER_FLAG=#{stlMerFlag} and o.txn_date<#{txnDate}
and o.CARDMER_TYPE=#{cardmerType} and o.mer_stl_flag=#{merStlFlag} and o.ERR_STL_FLAG=#{errStlFlag} and o.txn_type in
<foreach item="item" index="index" collection="txnType" open="(" separator="," close=")">
#{item}
</foreach>
and o.CARDMER_code=#{cardmerCode}
</select>
<update id="updateCardNoChkStlTxn">
update t_order_list t
set t.MER_STL_BATCH_NO=#{merStlBatchNo},t.MER_STL_DATE=#{merStlDate}, t.MER_STL_FLAG=#{merStlFlag}
where t.cardmer_code=#{cardmerCode} and t.MER_STL_FLAG=#{oldMerStlFlag} and t.ORDER_STAT=#{orderStat} and t.ACQMER_CODE=#{acqmerCode} and t.ERR_STL_FLAG is null
</update>
<update id="updateCardNoChkDealStlTxn">
update t_order_list t
set t.MER_ERR_STL_BATCH_NO=#{merErrStlBatchNo},
t.ERR_STL_FLAG=#{errStlFlagaft}
where t.cardmer_code=#{cardmerCode} and t.MER_STL_FLAG=#{oldMerStlFlag} and t.ACQMER_CODE=#{acqmerCode} and t.ERR_STL_FLAG=#{errStlFlag}
</update>
<!-- 金額不符調賬后更新訂單調賬金額 -->
<update id="updateOriDealAmt">
update T_ORDER_LIST SET ERR_STL_FLAG=#{errStlFlag},COP_ERR_STL_FLAG=#{copErrStlFlag},DEAL_AMT = #{dealAmt} where ID = #{id}
</update>
<!-- 根據結算批次號更新商戶結算標志 -->
<update id="updateStlFlagByStlBatchNo">
update t_order_list
<set>
<if test="merStlFlag != null and merStlFlag !=''">
MER_STL_FLAG=#{merStlFlag},
</if>
<if test="copStlFlag != null and copStlFlag !=''">
COP_STL_FLAG=#{copStlFlag},
</if>
<if test="errStlFlag != null and errStlFlag !=''">
ERR_STL_FLAG=#{errStlFlag},
</if>
<if test="copErrStlFlag != null and copErrStlFlag !=''">
COP_ERR_STL_FLAG=#{copErrStlFlag},
</if>
</set>
<where>
<if test="merStlBatchNo != null and merStlBatchNo !=''">
and MER_STL_BATCH_NO=#{merStlBatchNo}
</if>
<if test="copStlBbatchNo != null and copStlBbatchNo !=''">
and COP_STL_BATCH_NO=#{copStlBbatchNo}
</if>
<if test="merErrStlBatchNo != null and merErrStlBatchNo !=''">
and MER_ERR_STL_BATCH_NO=#{merErrStlBatchNo}
</if>
<if test="copErrStlBatchNo != null and copErrStlBatchNo !=''">
and COP_ERR_STL_BATCH_NO=#{copErrStlBatchNo}
</if>
<if test="orderNo != null and orderNo !=''">
and ORDER_NO=#{orderNo}
</if>
</where>
</update>
<!-- 根據結算批次號更新商戶結算標志 -->
<update id="updateStlFlagByStlBatchNoFor11">
update T_ORDER_LIST SET ERR_STL_FLAG=#{errStlFlag} where MER_STL_BATCH_NO=#{merStlBatchNo} and txn_type='11'
</update>
<!-- 根據結算批次號更新商戶結算標志 -->
<select id="selectByStlBatchNo" parameterType="OrderListPO"
resultMap="BaseResultMap">
select <include refid="Query_Column_List" /> from t_order_list
<where>
<if test="merStlBatchNo != null and merStlBatchNo !=''">
and MER_STL_BATCH_NO=#{merStlBatchNo}
</if>
<if test="copStlBbatchNo != null and copStlBbatchNo !=''">
and COP_STL_BATCH_NO=#{copStlBbatchNo}
</if>
<if test="merErrStlBatchNo != null and merErrStlBatchNo !=''">
and MER_ERR_STL_BATCH_NO=#{merErrStlBatchNo}
</if>
<if test="copErrStlBatchNo != null and copErrStlBatchNo !=''">
and COP_ERR_STL_BATCH_NO=#{copErrStlBatchNo}
</if>
</where>
order by acqmer_code,order_no
</select>
<!-- 查詢發卡機構結算是否需要參與結算的記錄數-->
<select id="countCardStlNum" resultType="Map">
select count(*) STLNUM from t_order_list t
where
(t.Mer_STL_FLAG in
<foreach item="item" index="index" collection="stlFlag" open="(" separator="," close=")">
#{item}
</foreach>
or t.ERR_STL_FLAG in
<foreach item="item" index="index" collection="errStlFlag" open="(" separator="," close=")">
#{item}
</foreach>) and t.CARDMER_code=#{cardmerCode}
</select>
<!-- 查詢商戶是否需要參與結算的記錄數-->
<select id="countMerStlNum" resultType="Map">
select count(*) STLNUM from t_order_list t
where (t.Mer_STL_FLAG in
<foreach item="item" index="index" collection="merStlFlag" open="(" separator="," close=")">
#{item}
</foreach>
or t.ERR_STL_FLAG in
<foreach item="item" index="index" collection="errStlFlag" open="(" separator="," close=")">
#{item}
</foreach>) and t.ACQMER_CODE=#{acqmerCode}
</select>
<!-- 查詢合作伙伴是否需要參與結算的記錄數-->
<select id="countCopStlNum" resultType="Map">
select count(*) STLNUM from t_order_list t
where (t.COP_STL_FLAG in
<foreach item="item" index="index" collection="copStlFlag" open="(" separator="," close=")">
#{item}
</foreach>
or t.COP_ERR_STL_FLAG in
<foreach item="item" index="index" collection="copErrStlFlag" open="(" separator="," close=")">
#{item}
</foreach>) and t.COPMER_CODE=#{copmerCode}
</select>
</mapper>package com.ym.qab.ts.po;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
public class OrderListPO implements Serializable {
private static final long serialVersionUID = -8911518589443724L;
private String id;
private Date txnDate;
private Date createTime;
private String chnlId;
private String orderNo;
private String txnType;
private String custNo;
private String acctNo;
private String acctType;
private String cardmerCode;
private Date merTime;
private String merOrder;
private String productName;
private String acqmerCode;
private String acqmerName;
private String acqmerType;
private String relAcct;
private String relAcctType;
private String relCardmerCode;
private String orderStat;
private String delFlag;
private Date endTime;
private Date orderDelTime;
private String noteStat;
private Date noteTime;
private BigDecimal txnAmt;
private BigDecimal befAmt;
private BigDecimal txnFee;
private String ccy;
private String oriOrderNo;
private BigDecimal ejectAmt;
private String chkFlag;
private String chkBatchNo;
private Date chkDate;
private String stlMerFlag;
private String errStlFlag;
private String copErrStlFlag;
private BigDecimal dealAmt;
private String merErrStlBatchNo;
private String copErrStlBatchNo;
private String copmerCode;
private String cardmerType;
private String merStlFlag;
private String merStlBatchNo;
private Date merStlDate;
private String copStlFlag;
private String copStlBatchNo;
private Date copStlDate;
private String memo;
private Date orderCloseTime;
private String posCode;
private Date cardmerDate;
private Date cardmerTime;
private String cardmerSeq;
private String operNo;// 操作員賬號,liu.xu于2014.11.12添加
/** 支付方式:一維碼支付、二維碼支付 */
private String payMethod;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Date getTxnDate() {
return txnDate;
}
public void setTxnDate(Date txnDate) {
this.txnDate = txnDate;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getChnlId() {
return chnlId;
}
public void setChnlId(String chnlId) {
this.chnlId = chnlId == null ? null : chnlId.trim();
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo == null ? null : orderNo.trim();
}
public String getTxnType() {
return txnType;
}
public void setTxnType(String txnType) {
this.txnType = txnType == null ? null : txnType.trim();
}
public String getCustNo() {
return custNo;
}
public void setCustNo(String custNo) {
this.custNo = custNo == null ? null : custNo.trim();
}
public String getAcctNo() {
return acctNo;
}
public void setAcctNo(String acctNo) {
this.acctNo = acctNo == null ? null : acctNo.trim();
}
public String getAcctType() {
return acctType;
}
public void setAcctType(String acctType) {
this.acctType = acctType == null ? null : acctType.trim();
}
public String getCardmerCode() {
return cardmerCode;
}
public void setCardmerCode(String cardmerCode) {
this.cardmerCode = cardmerCode == null ? null : cardmerCode.trim();
}
public Date getMerTime() {
return merTime;
}
public void setMerTime(Date merTime) {
this.merTime = merTime;
}
public String getMerOrder() {
return merOrder;
}
public void setMerOrder(String merOrder) {
this.merOrder = merOrder == null ? null : merOrder.trim();
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName == null ? null : productName.trim();
}
public String getAcqmerCode() {
return acqmerCode;
}
public void setAcqmerCode(String acqmerCode) {
this.acqmerCode = acqmerCode == null ? null : acqmerCode.trim();
}
public String getAcqmerName() {
return acqmerName;
}
public void setAcqmerName(String acqmerName) {
this.acqmerName = acqmerName == null ? null : acqmerName.trim();
}
public String getAcqmerType() {
return acqmerType;
}
public void setAcqmerType(String acqmerType) {
this.acqmerType = acqmerType == null ? null : acqmerType.trim();
}
public String getPosCode() {
return posCode;
}
public void setPosCode(String posCode) {
this.posCode = posCode;
}
public String getRelAcct() {
return relAcct;
}
public void setRelAcct(String relAcct) {
this.relAcct = relAcct == null ? null : relAcct.trim();
}
public String getRelAcctType() {
return relAcctType;
}
public void setRelAcctType(String relAcctType) {
this.relAcctType = relAcctType == null ? null : relAcctType.trim();
}
public String getRelCardmerCode() {
return relCardmerCode;
}
public void setRelCardmerCode(String relCardmerCode) {
this.relCardmerCode = relCardmerCode;
}
public String getOrderStat() {
return orderStat;
}
public void setOrderStat(String orderStat) {
this.orderStat = orderStat;
}
public String getDelFlag() {
return delFlag;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag == null ? null : delFlag.trim();
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Date getOrderDelTime() {
return orderDelTime;
}
public void setOrderDelTime(Date orderDelTime) {
this.orderDelTime = orderDelTime;
}
public String getNoteStat() {
return noteStat;
}
public void setNoteStat(String noteStat) {
this.noteStat = noteStat == null ? null : noteStat.trim();
}
public Date getNoteTime() {
return noteTime;
}
public void setNoteTime(Date noteTime) {
this.noteTime = noteTime;
}
public BigDecimal getTxnAmt() {
return txnAmt;
}
public void setTxnAmt(BigDecimal txnAmt) {
this.txnAmt = txnAmt;
}
public BigDecimal getBefAmt() {
return befAmt;
}
public void setBefAmt(BigDecimal befAmt) {
this.befAmt = befAmt;
}
public BigDecimal getTxnFee() {
return txnFee;
}
public void setTxnFee(BigDecimal txnFee) {
this.txnFee = txnFee;
}
public String getCcy() {
return ccy;
}
public void setCcy(String ccy) {
this.ccy = ccy == null ? null : ccy.trim();
}
public String getOriOrderNo() {
return oriOrderNo;
}
public void setOriOrderNo(String oriOrderNo) {
this.oriOrderNo = oriOrderNo == null ? null : oriOrderNo.trim();
}
public BigDecimal getEjectAmt() {
return ejectAmt;
}
public void setEjectAmt(BigDecimal ejectAmt) {
this.ejectAmt = ejectAmt;
}
public String getChkFlag() {
return chkFlag;
}
public void setChkFlag(String chkFlag) {
this.chkFlag = chkFlag == null ? null : chkFlag.trim();
}
public String getChkBatchNo() {
return chkBatchNo;
}
public void setChkBatchNo(String chkBatchNo) {
this.chkBatchNo = chkBatchNo == null ? null : chkBatchNo.trim();
}
public Date getChkDate() {
return chkDate;
}
public void setChkDate(Date chkDate) {
this.chkDate = chkDate;
}
public String getMerStlFlag() {
return merStlFlag;
}
public void setMerStlFlag(String merStlFlag) {
this.merStlFlag = merStlFlag == null ? null : merStlFlag.trim();
}
public String getMerStlBatchNo() {
return merStlBatchNo;
}
public void setMerStlBatchNo(String merStlBatchNo) {
this.merStlBatchNo = merStlBatchNo == null ? null : merStlBatchNo.trim();
}
public Date getMerStlDate() {
return merStlDate;
}
public void setMerStlDate(Date merStlDate) {
this.merStlDate = merStlDate;
}
public String getCopStlFlag() {
return copStlFlag;
}
public void setCopStlFlag(String copStlFlag) {
this.copStlFlag = copStlFlag == null ? null : copStlFlag.trim();
}
public String getCopStlBatchNo() {
return copStlBatchNo;
}
public void setCopStlBatchNo(String copStlBatchNo) {
this.copStlBatchNo = copStlBatchNo == null ? null : copStlBatchNo.trim();
}
public Date getCopStlDate() {
return copStlDate;
}
public void setCopStlDate(Date copStlDate) {
this.copStlDate = copStlDate;
}
public Date getOrderCloseTime() {
return orderCloseTime;
}
public void setOrderCloseTime(Date orderCloseTime) {
this.orderCloseTime = orderCloseTime;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo == null ? null : memo.trim();
}
public String getStlMerFlag() {
return stlMerFlag;
}
public void setStlMerFlag(String stlMerFlag) {
this.stlMerFlag = stlMerFlag;
}
public String getErrStlFlag() {
return errStlFlag;
}
public void setErrStlFlag(String errStlFlag) {
this.errStlFlag = errStlFlag;
}
public String getMerErrStlBatchNo() {
return merErrStlBatchNo;
}
public void setMerErrStlBatchNo(String merErrStlBatchNo) {
this.merErrStlBatchNo = merErrStlBatchNo;
}
public String getCopErrStlBatchNo() {
return copErrStlBatchNo;
}
public void setCopErrStlBatchNo(String copErrStlBatchNo) {
this.copErrStlBatchNo = copErrStlBatchNo;
}
public String getCopmerCode() {
return copmerCode;
}
public void setCopmerCode(String copmerCode) {
this.copmerCode = copmerCode;
}
public BigDecimal getDealAmt() {
return dealAmt;
}
public void setDealAmt(BigDecimal dealAmt) {
this.dealAmt = dealAmt;
}
public String getCardmerType() {
return cardmerType;
}
public void setCardmerType(String cardmerType) {
this.cardmerType = cardmerType;
}
public String getCopErrStlFlag() {
return copErrStlFlag;
}
public void setCopErrStlFlag(String copErrStlFlag) {
this.copErrStlFlag = copErrStlFlag;
}
public Date getCardmerDate() {
return cardmerDate;
}
public void setCardmerDate(Date cardmerDate) {
this.cardmerDate = cardmerDate;
}
public Date getCardmerTime() {
return cardmerTime;
}
public void setCardmerTime(Date cardmerTime) {
this.cardmerTime = cardmerTime;
}
public String getCardmerSeq() {
return cardmerSeq;
}
public void setCardmerSeq(String cardmerSeq) {
this.cardmerSeq = cardmerSeq;
}
public String getPayMethod() {
return payMethod;
}
public void setPayMethod(String payMethod) {
this.payMethod = payMethod;
}
public String getOperNo() {
return operNo;
}
public void setOperNo(String operNo) {
this.operNo = operNo;
}
}package com.ym.qab.ts.dao.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ym.qab.comm.QueryResult;
import com.ym.qab.commons.consts.CommonConst;
import com.ym.qab.commons.consts.OrderStatConsts;
import com.ym.qab.commons.dao.BaseDao;
import com.ym.qab.commons.exception.PersistenceException;
import com.ym.qab.commons.utils.DateUtil;
import com.ym.qab.commons.utils.FunIMsgFormat;
import com.ym.qab.ts.dao.IOrderListDao;
import com.ym.qab.ts.po.OrderListPO;
/**
*
* @author WUDUFENG
* @since 2014年4月24日
*/
public class OrderListDaoImpl extends BaseDao<OrderListPO, String> implements IOrderListDao {
private final Logger logger = LoggerFactory.getLogger(getClass().getName());
private static final String QUERY_ORDER_LIST = ".queryOrderListByPage";
private static final String QUERY_ORDER_COUNT = ".queryOrderCount";
private static final String QUERY_ORDER_BYORDERNOT = ".queryOrderByOrderNo";
private static final String UPDATE_ORDER_BYORDERNOT = ".updateByOrderNo";
private static final String QUERY_MON_ORDER_LIST = ".queryMonOrderList";
private static final String QUERY_MON_ORDER_COUNT = ".queryMonOrderListCount";
@Override
public QueryResult<OrderListPO> search(Date ltTxnDate, String custNo, String acqmerType,
String acqmerCode, String productName, int startIndex, int maxResult) {
if (productName != null && !productName.trim().equals("")) {
productName = "%" + productName + "%";
}
String[] properties = { "custNo", "acqmerType", "acqmerCode", "productName", "txnDate", "delFlag" };
Object[] propertyValues =
{ custNo, acqmerType, acqmerCode, productName, ltTxnDate, CommonConst.ORDER_DEL_FLAG_N };
List<OrderListPO> orderList =
selectByMap(properties, propertyValues, startIndex, maxResult, null, null);
long totalRecord = countByStatementPostfix(".selectByMapTotalrecord", properties, propertyValues);
QueryResult<OrderListPO> queryResult = new QueryResult<OrderListPO>();
queryResult.setResultList(orderList);
queryResult.setTotalRecord(totalRecord);
return queryResult;
}
@Override
public List<OrderListPO> search(List<String> orderNoList, String custNo, Date date) {
String[] properties = { "orderNoList", "custNo", "txnDate", "delFlag" };
Object[] propertyValues = { orderNoList, custNo, date, CommonConst.ORDER_DEL_FLAG_N };
List<OrderListPO> orderList = selectByMap(properties, propertyValues, null, null);
return orderList;
}
@Override
public OrderListPO get(String merOrder, String acqmerCode) {
String[] properties = { "merOrder", "acqmerCode" };
Object[] propertyValues = { merOrder, acqmerCode };
return findOneByStatementPostfix(".getByMerOrder", properties, propertyValues, null, null);
}
@Override
public int updateStat(String orderNo, String stat, String preStat, Date endTime) {
return updateStat(orderNo, stat, preStat, null, null, endTime,null);
}
@Override
public int updateStat(String orderNo, String stat, String preStat, String acctNo, BigDecimal txnAmt,
Date endTime,String cardmerCode) {
String[] properties = { "orderNo", "orderStat", "preStat", "endTime", "acctNo", "txnAmt","cardmerCode" };
Object[] propertyValues = { orderNo, stat, preStat, endTime, acctNo, txnAmt,cardmerCode };
int record = updateByStatementPostfix(".updateStatByOrderNo", properties, propertyValues);
return record;
}
@Override
public int updateChkFlag(String id, String chkFlag, String chkBatchNo) {
String[] properties = { "id", "chkFlag", "chkBatchNo" };
Object[] propertyValues = { id, chkFlag, chkBatchNo };
int record = updateByStatementPostfix(".updateChkFlag", properties, propertyValues);
return record;
}
/**
* 根據客戶號查詢客戶訂單信息
*
* @param custInfoPO
* @return
*/
public List<OrderListPO> queryOrderList(OrderListPO orderListPO, int start, int limit) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調queryOrderList方法,傳入的參數是。" + orderListPO));
RowBounds rowBound = new RowBounds(start, limit);
String clazzName = orderListPO.getClass().getName();
List<OrderListPO> orderListPOList =
this.getSqlSession().selectList(clazzName + QUERY_ORDER_LIST, orderListPO, rowBound);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行queryOrderList方法,執行的結果取到數據條數為:"
+ orderListPOList.size()));
return orderListPOList;
}
/**
* 查詢客戶交易記錄,進行大額、頻繁交易監控
*
* @param parMap
* @return
*/
public List<OrderListPO> queryMonOrderList(Map<String,Object> parMap, int start, int limit) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調queryMonOrderList方法,傳入的參數是:" + parMap));
RowBounds rowBound = new RowBounds(start, limit);
String clazzName = this.getClazzName();
List<OrderListPO> orderMonListPOList =
this.getSqlSession().selectList(clazzName + QUERY_MON_ORDER_LIST, parMap, rowBound);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行queryMonOrderList方法,執行的結果取到數據條數為:"
+ orderMonListPOList.size()));
return orderMonListPOList;
}
/**
* 根據查詢訂單條數
*
* @param parMap
* @return
*/
public long queryMonOrderListCount(Map<String,Object> parMap) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調queryMonOrderListCount方法,傳入的參數是:"
+ parMap));
String clazzName = this.getClazzName();
Long orderListPOCount = this.getSqlSession().selectOne(clazzName + QUERY_MON_ORDER_COUNT, parMap);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行queryMonOrderListCount方法,執行的結果取到數據條數為:"
+ orderListPOCount));
return orderListPOCount;
}
@Override
public void syncErrStlingState() {
this.getSqlSession().update(clazzName + ".syncErrStlingState");
}
@Override
public Map<String, Object> getFrozenOrderInfo(String orderNo) {
assert orderNo != null : "訂單號不能為空";
Map<String, Object> params = new HashMap<>();
params.put("orderNo", orderNo);
Map<String, Map<String,Object>> orderInfoMap = getSqlSession().selectMap(clazzName + ".frozenOrderInfo",params, "ORDER_NO");
return orderInfoMap.get(orderNo);
}
/**
* 根據客戶號查詢客戶訂單條數
*
* @param custInfoPO
* @return
*/
public long queryOrderCount(OrderListPO orderListPO) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調queryOrderCount方法,傳入的參數是。"
+ orderListPO));
String clazzName = orderListPO.getClass().getName();
Long orderListPOCount = this.getSqlSession().selectOne(clazzName + QUERY_ORDER_COUNT, orderListPO);
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("結束執行queryOrderCount方法,執行的結果取到數據條數為:"
+ orderListPOCount));
return orderListPOCount;
}
/**
* 根據訂單號查詢客戶訂單信息(此方法可擴展)
*
* @param orderListPO
* @return
*/
public OrderListPO queryOrderByOrderNo(OrderListPO orderListPO) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調queryOrderByOrderNo方法,傳入的參數是。"
+ orderListPO));
String clazzName = orderListPO.getClass().getName();
OrderListPO po = this.getSqlSession().selectOne(clazzName + QUERY_ORDER_BYORDERNOT, orderListPO);
return po;
}
/**
* 根據訂單號更新客戶訂單信息(此方法可擴展)
*
* @param custInfoPO
* @return
*/
public void updateOrderByOrderNo(OrderListPO orderListPO) {
logger.debug(FunIMsgFormat.MsgStyle.DEFAULT_LOG.getFormat("開始調updateOrderByOrderNo方法,傳入的參數是。"
+ orderListPO));
String clazzName = orderListPO.getClass().getName();
this.getSqlSession().update(clazzName + UPDATE_ORDER_BYORDERNOT, orderListPO);
}
@Override
public List<BigDecimal> getSumTxnAmt(String custNo, Date begin, Date endDate) {
Map<String, Object> parameter = new HashMap<String, Object>();
parameter.put("custNo", custNo);
parameter.put("txnDateBegin", begin);
parameter.put("txnDateEnd", endDate);
parameter.put("delFlag", CommonConst.ORDER_DEL_FLAG_N);
parameter.put("orderStat", OrderStatConsts.SUCESS);
parameter.put("txnType", CommonConst.TXN_TYPE_PAY);
Map<String, Map<String, Object>> map =
getSqlSession().selectMap(clazzName + ".sumTxnAmt", parameter, "YYMM");
List<BigDecimal> list = new ArrayList<BigDecimal>();
if (map != null && map.size() > 0) {
Date d = endDate;
while (d.compareTo(begin) >= 0) {
String yyMM = DateUtil.format(d, "yyMM");
Map<String, Object> o = map.get(yyMM);
if (o != null) {
list.add((BigDecimal) o.get("AMT"));
} else {
list.add(BigDecimal.ZERO);
}
d = DateUtil.add(d, Calendar.MONTH, -1);
}
}
return list;
}
@Override
public Map<String, Object> findMapByStatementPostfix(String statementPostfix, String[] properties,
Object[] propertyValues) throws PersistenceException {
logger
.debug(
FunIMsgFormat.MsgStyle.DEFAULT_LOG
.getFormat("開始調用{}的findMapByStatementPostfix方法,傳遞的參數是statementPostfix={},properties={},propertyValues={},orderBy={},order={}。"),
new Object[] { this.getClass().getName(), statementPostfix, properties, propertyValues });
if (StringUtils.isEmpty(statementPostfix))
return null;
Map<String, Object> map = new HashMap<String, Object>();
if (ArrayUtils.isNotEmpty(properties) && ArrayUtils.isNotEmpty(propertyValues)) {
int prosKeyLen = properties.length;
int prosValueLen = propertyValues.length;
if (prosKeyLen != prosValueLen)
throw new PersistenceException("傳遞的參數不匹配!");
for (int i = 0; i < prosKeyLen; i++) {
map.put(properties[i], propertyValues[i]);
}
}
return getSqlSession().selectOne(clazzName + statementPostfix, map);
}
/**
* 根據訂單號更新狀態(特約商戶發送通知狀態)
*
* @param orderNo
* @param stat
* @param preStat
* @param endTime
* @return
*/
@Override
public int updateNoteStat(String orderNo,String preStat, String noteStat, Date noteTime) {
String[] properties = { "orderNo","preStat", "noteStat", "noteTime"};
Object[] propertyValues = { orderNo,preStat, noteStat, noteTime};
int record = updateByStatementPostfix(".updateNoteStatByOrderNo", properties, propertyValues);
return record;
}
/**
* 根據操作員賬號及訂單號查詢訂單信息
*
* @param operNo
* 操作員賬號
* @param orderNo
* 訂單號(模糊匹配)
* @param startIndex
* 分頁開始索引
* @param maxResult
* 每頁條數
* @return
* @author liu.xu
* @since 2014-11-13
*/
public QueryResult<OrderListPO> search(String operNo, String orderNo, int startIndex, int maxResult) {
if (StringUtils.isNotBlank(orderNo)) {
orderNo = "%" + orderNo + "%";
}
String[] properties = { "operNo", "orderNo", "delFlag" };
Object[] propertyValues = { operNo, orderNo, CommonConst.ORDER_DEL_FLAG_N }; // 查詢未刪除的記錄
List<OrderListPO> orderList =
findByStatementPostfix(".selectByOperNo", properties, propertyValues, startIndex, maxResult);
long totalRecord = countByStatementPostfix(".selectTotalrecordByOperNo", properties, propertyValues);
QueryResult<OrderListPO> queryResult = new QueryResult<OrderListPO>();
queryResult.setResultList(orderList);
queryResult.setTotalRecord(totalRecord);
return queryResult;
}
/**
* 查詢交易凈消費額(消費總額-退貨總額)
*
* @param operNo
* 操作員賬號
* @param orderNo
* 訂單號(模糊匹配)
* @return
* @author liu.xu
* @since 2014-11-17
*/
public BigDecimal selectNetAmountByOperNo(String operNo, String orderNo) {
if (StringUtils.isNotBlank(orderNo)) {
orderNo = "%" + orderNo + "%";
}
String[] properties = { "operNo", "orderNo", "delFlag" };
Object[] propertyValues = { operNo, orderNo, CommonConst.ORDER_DEL_FLAG_N }; // 查詢未刪除的記錄
return this.<BigDecimal> selectByProperties(".selectNetAmountByOperNo", properties, propertyValues);
}
}<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <!-- A --> <typeAlias alias="AcctBindChgPO" type="com.ym.qab.uc.po.AcctBindChgPO" /> <typeAlias alias="AcctFundsBalancePO" type="com.ym.qab.ts.po.AcctFundsBalancePO" /> <typeAlias alias="AssDetailPO" type="com.ym.qab.mer.po.AssDetailPO" /> <typeAlias alias="AreaCodePO" type="com.ym.qab.comm.po.AreaCodePO" /> <typeAlias alias="AddrBookPO" type="com.ym.qab.bmoa.po.AddrBookPO" /> <typeAlias alias="AppStorePO" type="com.ym.qab.uc.po.AppStorePO" /> <typeAlias alias="AcctTatisticsTotalPO" type="com.ym.qab.bmoa.po.AcctTatisticsTotalPO" /> <typeAlias alias="AdPlayPlanPO" type="com.ym.qab.ts.po.AdPlayPlanPO" /> <!-- B --> <typeAlias alias="BatchFileInfoPO" type="com.ym.qab.comm.po.BatchFileInfoPO" /> <typeAlias alias="BindPrepayCardPO" type="com.ym.qab.uc.po.BindPrepayCardPO" /> <typeAlias alias="BlackCustPO" type="com.ym.qab.uc.po.BlackCustPO" /> <typeAlias alias="BlackWhiteListPO" type="com.ym.qab.uc.po.BlackWhiteListPO" /> <typeAlias alias="BlackWhiteListChgPO" type="com.ym.qab.bmoa.po.BlackWhiteListChgPO" /> <typeAlias alias="BlackWhiteTatisticsTotalPO" type="com.ym.qab.bmoa.po.BlackWhiteTatisticsTotalPO" /> <!-- C --> <typeAlias alias="CardBusinessInfoPO" type="com.ym.qab.uc.po.CardBusinessInfoPO" /> <typeAlias alias="CardmerRangeRegionPO" type="com.ym.qab.mer.po.CardmerRangeRegionPO" /> <typeAlias alias="CardmerRangeMertypePO" type="com.ym.qab.mer.po.CardmerRangeMertypePO" /> <typeAlias alias="ChkInfoPO" type="com.ym.qab.bmfinance.po.ChkInfoPO" /> <typeAlias alias="ChkMerlistPO" type="com.ym.qab.bmfinance.po.ChkMerlistPO" /> <typeAlias alias="ChkRulePO" type="com.ym.qab.bmfinance.po.ChkRulePO" /> <typeAlias alias="CmAppMngPO" type="com.ym.qab.uc.po.CmAppMngPO" /> <typeAlias alias="CmCodePO" type="com.ym.qab.uc.po.CmCodePO" /> <typeAlias alias="CmCustKeyPO" type="com.ym.qab.uc.po.CmCustKeyPO" /> <typeAlias alias="CmSysInfoPO" type="com.ym.qab.comm.po.CmSysInfoPO" /> <typeAlias alias="CustAcctBookPO" type="com.ym.qab.uc.po.CustAcctBookPO" /> <typeAlias alias="CustAcctListPO" type="com.ym.qab.ts.po.CustAcctListPO" /> <typeAlias alias="CustInfoPO" type="com.ym.qab.uc.po.CustInfoPO" /> <typeAlias alias="CustLoginInfoPO" type="com.ym.qab.uc.po.CustLoginInfoPO" /> <typeAlias alias="CustLoginLogPO" type="com.ym.qab.uc.po.CustLoginLogPO" /> <typeAlias alias="CustPwdGetBookPO" type="com.ym.qab.uc.po.CustPwdGetBookPO" /> <typeAlias alias="CardDiscInfoPO" type="com.ym.qab.ts.po.CardDiscInfoPO" /> <typeAlias alias="CardMerInfoPO" type="com.ym.qab.mer.po.CardmerInfoPO" /> <typeAlias alias="CopmerInfoPO" type="com.ym.qab.mer.po.CopmerInfoPO" /> <typeAlias alias="CopmerRateInfoPO" type="com.ym.qab.mer.po.CopmerRateInfoPO" /> <typeAlias alias="CmEmailPO" type="com.ym.qab.comm.po.CmEmailPO" /> <typeAlias alias="CardMerRateInfoPO" type="com.ym.qab.mer.po.CardMerRateInfoPO" /> <typeAlias alias="CardmerKindConfPO" type="com.ym.qab.mer.po.CardmerKindConfPO" /> <typeAlias alias="CmParmPO" type="com.ym.qab.uc.po.CmParmPO" /> <typeAlias alias="CmVcTotPO" type="com.ym.qab.uc.po.CmVcTotPO" /> <typeAlias alias="CustFrzBookHisPO" type="com.ym.qab.bmoa.po.CustFrzBookHisPO" /> <typeAlias alias="CustAcctCtrlPO" type="com.ym.qab.uc.po.CustAcctCtrlPO" /> <typeAlias alias="CustLoginLogHisPO" type="com.ym.qab.bmoa.po.CustLoginLogHisPO" /> <typeAlias alias="CustAcctConfPO" type="com.ym.qab.uc.po.CustAcctConfPO" /> <typeAlias alias="CmTxnInfoPO" type="com.ym.qab.ts.po.CmTxnInfoPO" /> <typeAlias alias="CustFrzBookPO" type="com.ym.qab.bmoa.po.CustFrzBookPO" /> <typeAlias alias="CustSysLmtConfPO" type="com.ym.qab.ts.po.CustSysLmtConfPO" /> <typeAlias alias="CustLmtTotalPO" type="com.ym.qab.ts.po.CustLmtTotalPO" /> <typeAlias alias="CustTatisticsTotalPO" type="com.ym.qab.bmoa.po.CustTatisticsTotalPO" /> <typeAlias alias="CustTranListPO" type="com.ym.qab.uc.po.CustTranListPO" /> <typeAlias alias="CmLogoFilePO" type="com.ym.qab.bmpublic.po.CmLogoFilePO" /> <typeAlias alias="CardSelectMerPO" type="com.ym.qab.uc.po.CardSelectMerPO"/> <typeAlias alias="CardSelectKindPO" type="com.ym.qab.uc.po.CardSelectKindPO"/> <typeAlias alias="CardSelectAcctPO" type="com.ym.qab.uc.po.CardSelectAcctPO"/> <typeAlias alias="CouponListPO" type="com.ym.qab.ts.po.CouponListPO"/> <typeAlias alias="CustTransferListPO" type="com.ym.qab.ts.po.CustTransferListPO"/> <!-- D --> <typeAlias alias="DiscActInfoPO" type="com.ym.qab.ts.po.DiscActInfoPO" /> <!-- E --> <typeAlias alias="ESLoginPO" type="com.ym.qab.uc.po.ESLoginPO" /> <!-- 電子憑證 --> <typeAlias alias="ECouponPO" type="com.ym.qab.ts.po.ECouponPO"/> <!-- G --> <!-- I --> <typeAlias alias="InAcctBookPO" type="com.ym.qab.mer.po.InAcctBookPO" /> <typeAlias alias="InAcctListPO" type="com.ym.qab.mer.po.InAcctListPO" /> <!-- L --> <typeAlias alias="LoginTatisticsTotalPO" type="com.ym.qab.bmoa.po.LoginTatisticsTotalPO" /> <!-- M --> <typeAlias alias="MerInfoPO" type="com.ym.qab.mer.po.MerInfoPO" /> <typeAlias alias="MinNumberNoPwdPO" type="com.ym.qab.uc.po.MinNumberNoPwdPO" /> <typeAlias alias="MerAcctBookPO" type="com.ym.qab.mer.po.MerAcctBookPO" /> <typeAlias alias="MerAcctListPO" type="com.ym.qab.mer.po.MerAcctListPO" /> <typeAlias alias="MerRateInfoPO" type="com.ym.qab.mer.po.MerRateInfoPO" /> <typeAlias alias="MerStoreInfoPO" type="com.ym.qab.mer.po.MerStoreInfoPO" /> <typeAlias alias="MerTypePO" type="com.ym.qab.bmmer.po.MerTypePO" /> <typeAlias alias="MerAddrBookPO" type="com.ym.qab.mer.po.MerAddrBookPO" /> <typeAlias alias="MerKeyPO" type="com.ym.qab.mer.po.MerKeyPO" /> <typeAlias alias="MonBigatmLmtPO" type="com.ym.qab.bmmonitor.po.MonBigatmLmtPO" /> <typeAlias alias="MonBigatmPayPO" type="com.ym.qab.bmmonitor.po.MonBigatmPayPO" /> <typeAlias alias="MonBigatmAverPO" type="com.ym.qab.bmmonitor.po.MonBigatmAverPO" /> <typeAlias alias="MonFrequentListPO" type="com.ym.qab.bmmonitor.po.MonFrequentListPO" /> <typeAlias alias="MonFrequentConfPO" type="com.ym.qab.bmmonitor.po.MonFrequentConfPO" /> <typeAlias alias="MonFundsFrequentPO" type="com.ym.qab.bmmonitor.po.MonFundsFrequentPO" /> <typeAlias alias="MonFundsListPO" type="com.ym.qab.bmmonitor.po.MonFundsListPO" /> <typeAlias alias="MonPwdLockPO" type="com.ym.qab.bmmonitor.po.MonPwdLockPO" /> <typeAlias alias="MonRemoteLoginPO" type="com.ym.qab.bmmonitor.po.MonRemoteLoginPO" /> <typeAlias alias="MonBatchTimePO" type="com.ym.qab.bmmonitor.po.MonBatchTimePO" /> <typeAlias alias="MerGoodsPO" type="com.ym.qab.bmpublic.po.MerGoodsPO"/> <!-- O --> <typeAlias alias="OrderGoodsListPO" type="com.ym.qab.ts.po.OrderGoodsListPO" /> <typeAlias alias="OrderListPO" type="com.ym.qab.ts.po.OrderListPO" /> <typeAlias alias="OrderTatisticsTotalPO" type="com.ym.qab.bmoa.po.OrderTatisticsTotalPO" /> <!-- Q --> <typeAlias alias="QRFilePO" type="com.ym.qab.bmpublic.po.QRFilePO" /> <!-- R --> <typeAlias alias="RefundOrderListPO" type="com.ym.qab.bmfinance.po.RefundOrderListPO" /> <typeAlias alias="ReportPO" type="com.ym.qab.bmfinance.po.ReportPO" /> <!-- S --> <typeAlias alias="SafeQuePO" type="com.ym.qab.uc.po.SafeQuePO" /> <typeAlias type="com.ym.qab.comm.po.SmsMessagePO" alias="SmsMessagePO" /> <!-- V --> <typeAlias alias="ViewMonitorQueryListPO" type="com.ym.qab.bmmonitor.po.ViewMonitorQueryListPO" /> <!-- W --> <typeAlias type="com.ym.qab.bmmer.po.WorkflowAuditPO" alias="WorkflowAuditPO" /> <typeAlias type="com.ym.qab.bmmer.po.WorkflowInfoPO" alias="WorkflowInfoPO" /> <typeAlias type="com.ym.qab.bmpublic.po.WghtParmPO" alias="WghtParmPO" /> </typeAliases> <plugins> <plugin interceptor="com.ym.qab.commons.utils.PagePlugin"> <property name="dialect" value="oracle" /> <property name="pageSqlId" value=".*ByPage" /> </plugin> </plugins> </configuration>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:META-INF/com/unilife/mybatis-config.xml" /> <property name="mapperLocations" > <list> <value>classpath:META-INF/com/unilife/bmmdt/sqlmap/DeviceInfoPO.xml</value> <value>classpath:META-INF/com/unilife/bmmdt/sqlmap/MdtInfoPO.xml</value> <value>classpath:META-INF/com/unilife/bmmdt/sqlmap/MdtAlarmInfoPO.xml</value> <value>classpath:META-INF/com/unilife/bmmdt/sqlmap/MdtParameterPO.xml</value> <value>classpath:META-INF/com/unilife/finance/sqlmap/OrderAccountSettlePO.xml</value> <value>classpath:META-INF/com/unilife/finance/sqlmap/OrderAccountCashPO.xml</value> <value>classpath:META-INF/com/unilife/finance/sqlmap/OrderAccountCheckPO.xml</value> <value>classpath:META-INF/com/unilife/finance/sqlmap/OrderAccountInfoPO.xml</value> </list> </property> </bean> <bean id="baseDao" class="com.unilife.commons.dao.BaseDao" abstract="true"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <bean id="sequenceGenerator" class="com.unilife.common.SequenceGeneratorImpl" parent="baseDao"> </bean> <bean id="deviceInfoDao" class="com.unilife.bmmdt.dao.impl.DeviceInfoDaoImpl" parent="baseDao"> </bean> <bean id="merInfoDao" class="com.unilife.bmmdt.dao.impl.MdtInfoDaoImpl" parent="baseDao"> </bean> <bean id="merAlarmInfoDao" class="com.unilife.bmmdt.dao.impl.MdtAlarmInfoDaoImpl" parent="baseDao"> </bean> <bean id="merParameterDao" class="com.unilife.bmmdt.dao.impl.MdtParameterDaoImpl" parent="baseDao"> </bean> <bean id="orderAccountSettleDao" class="com.unilife.finance.dao.impl.OrderAccountSettleDaoImpl" parent="baseDao"> </bean> <bean id="orderAccountCashDao" class="com.unilife.finance.dao.impl.OrderAccountCashDaoImpl" parent="baseDao"> </bean> <bean id="orderAccountCheckDao" class="com.unilife.finance.dao.impl.OrderAccountCheckDaoImpl" parent="baseDao"> </bean> <bean id="orderAccountInfoDao" class="com.unilife.finance.dao.impl.OrderAccountInfoDaoImpl" parent="baseDao"> </bean> </beans>
String[] properties = { "chkDate", "merFlag", "merCode"};
Object[] propertyValues = { chkEndDate, merFlag, merCode};
ChkInfoPO chkInfoPO =
chkInfoDao.findOneByStatementPostfix(".selectByProperties", properties, propertyValues, null,
null);
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!