diff --git a/src/com/engine/salary/biz/SalarySobBiz.java b/src/com/engine/salary/biz/SalarySobBiz.java index bc9dfec8c..62db68031 100644 --- a/src/com/engine/salary/biz/SalarySobBiz.java +++ b/src/com/engine/salary/biz/SalarySobBiz.java @@ -2,7 +2,7 @@ package com.engine.salary.biz; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.mapper.salarysob.SalarySobMapper; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; @@ -11,7 +11,7 @@ import java.util.List; public class SalarySobBiz { public SalarySobPO getById(Long id) { - SalarySobMapper mapper = SqlProxyHandle.getProxy(SalarySobMapper.class); + SalarySobMapper mapper = MapperProxyFactory.getProxy(SalarySobMapper.class); return mapper.getById(id); } diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index 9364515ab..88d432fa3 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -20,7 +20,7 @@ import com.engine.salary.mapper.datacollection.AttendQuoteFieldMapper; import com.engine.salary.service.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; import com.weaver.excel.formula.api.entity.FormulaVar; import org.apache.commons.collections4.CollectionUtils; @@ -43,7 +43,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic // private SIAccountService siAccountService; private AttendQuoteFieldMapper getAttendQuoteFieldMapper() { - return SqlProxyHandle.getProxy(AttendQuoteFieldMapper.class); + return MapperProxyFactory.getProxy(AttendQuoteFieldMapper.class); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 107817fb6..50985f8ca 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -19,7 +19,7 @@ import com.engine.salary.service.*; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.PageUtil; import com.engine.salary.util.valid.ValidUtil; @@ -45,7 +45,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct private SalaryAcctEmployeeMapper salaryAcctEmployeeMapper; private SalaryAcctEmployeeMapper getSalaryAcctEmployeeMapper() { - return SqlProxyHandle.getProxy(SalaryAcctEmployeeMapper.class); + return MapperProxyFactory.getProxy(SalaryAcctEmployeeMapper.class); } private SalaryAcctRecordService getSalaryAcctRecordService(User user) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 0d4d24e17..08c0a0018 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -21,7 +21,7 @@ import com.engine.salary.service.SalarySobService; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.PageUtil; import com.engine.salary.util.valid.ValidUtil; @@ -46,7 +46,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe private SalaryAcctRecordMapper getSalaryAcctRecordMapper() { - return SqlProxyHandle.getProxy(SalaryAcctRecordMapper.class); + return MapperProxyFactory.getProxy(SalaryAcctRecordMapper.class); } private SalarySobService getSalarySobService(User user) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultTempServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultTempServiceImpl.java index 702d221e1..d42da581f 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultTempServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultTempServiceImpl.java @@ -4,7 +4,7 @@ import com.engine.core.impl.Service; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultTempPO; import com.engine.salary.mapper.salaryacct.SalaryAcctResultTempMapper; import com.engine.salary.service.SalaryAcctResultTempService; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -23,7 +23,7 @@ import java.util.List; public class SalaryAcctResultTempServiceImpl extends Service implements SalaryAcctResultTempService { private SalaryAcctResultTempMapper getSalaryAcctResultTempMapper(){ - return SqlProxyHandle.getProxy(SalaryAcctResultTempMapper.class); + return MapperProxyFactory.getProxy(SalaryAcctResultTempMapper.class); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java index 47c629724..ed205f6c9 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java @@ -17,7 +17,7 @@ import com.engine.salary.mapper.archive.SalaryArchiveMapper; import com.engine.salary.mapper.archive.SalaryArchiveTaxAgentMapper; import com.engine.salary.service.SalaryArchiveTaxAgentService; import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.PageUtil; @@ -43,7 +43,7 @@ public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryA private static final Logger log = LoggerFactory.getLogger(SalaryArchiveTaxAgentServiceImpl.class); private SalaryArchiveTaxAgentMapper getSalaryArchiveTaxAgentMapper() { - return SqlProxyHandle.getProxy(SalaryArchiveTaxAgentMapper.class); + return MapperProxyFactory.getProxy(SalaryArchiveTaxAgentMapper.class); } private TaxAgentBiz taxAgentService = new TaxAgentBiz(); @@ -97,7 +97,7 @@ public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryA SalaryArchiveTaxAgentSaveParam.checkParam(saveParam); // 薪资档案 - SalaryArchiveMapper salaryArchiveMapper = SqlProxyHandle.getProxy(SalaryArchiveMapper.class); + SalaryArchiveMapper salaryArchiveMapper = MapperProxyFactory.getProxy(SalaryArchiveMapper.class); SalaryArchivePO salaryArchive = salaryArchiveMapper.getById(saveParam.getSalaryArchiveId()); // 获取当前已生效 SalaryArchiveTaxAgentPO effectiveTaxAgent = getEffectiveTaxAgent(saveParam.getSalaryArchiveId()); diff --git a/src/com/engine/salary/service/impl/SalarySobAdjustRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobAdjustRuleServiceImpl.java index f0d2c0c16..74c4464b5 100644 --- a/src/com/engine/salary/service/impl/SalarySobAdjustRuleServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobAdjustRuleServiceImpl.java @@ -11,7 +11,7 @@ import com.engine.salary.mapper.salarysob.SalarySobAdjustRuleMapper; import com.engine.salary.mapper.salarysob.SalarySobMapper; import com.engine.salary.service.SalarySobAdjustRuleService; import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.db.SalarySqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.session.SqlSession; @@ -54,7 +54,7 @@ public class SalarySobAdjustRuleServiceImpl extends Service implements SalarySob //开启事务 SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { - SalarySobMapper salarySobMapper = SalarySqlProxyHandle.getProxy(SalarySobMapper.class, sqlSession); + SalarySobMapper salarySobMapper = MapperProxyFactory.getProxy(SalarySobMapper.class); // 查询薪资账套 SalarySobPO salarySobPO = salarySobMapper.getById(saveParam.getSalarySobId()); @@ -62,7 +62,7 @@ public class SalarySobAdjustRuleServiceImpl extends Service implements SalarySob throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除")); } // 删除之前的调薪计薪规则 - SalarySobAdjustRuleMapper salarySobAdjustRuleMapper = SalarySqlProxyHandle.getProxy(SalarySobAdjustRuleMapper.class, sqlSession); + SalarySobAdjustRuleMapper salarySobAdjustRuleMapper = MapperProxyFactory.getProxy(SalarySobAdjustRuleMapper.class); salarySobAdjustRuleMapper.deleteBySalarySobIds(Collections.singleton(saveParam.getSalarySobId())); // 保存参数转换成薪资账套的调薪计薪规则po List salarySobAdjustRulePOS = SalarySobAdjustRuleBO.convert2PO(saveParam, (long)user.getUID()); diff --git a/src/com/engine/salary/service/impl/TaxRateBaseServiceImpl.java b/src/com/engine/salary/service/impl/TaxRateBaseServiceImpl.java index 78a4c350e..86379c60f 100644 --- a/src/com/engine/salary/service/impl/TaxRateBaseServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxRateBaseServiceImpl.java @@ -7,7 +7,7 @@ import com.engine.salary.entity.taxrate.TaxRateBase; import com.engine.salary.mapper.SysTaxRateBaseMapper; import com.engine.salary.mapper.TaxRateBaseMapper; import com.engine.salary.service.TaxRateBaseService; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; import org.springframework.beans.BeanUtils; @@ -20,12 +20,12 @@ public class TaxRateBaseServiceImpl extends Service implements TaxRateBaseServic private SysTaxRateBaseMapper getSysTaxRateBaseMapper(){ - return SqlProxyHandle.getProxy(SysTaxRateBaseMapper.class); + return MapperProxyFactory.getProxy(SysTaxRateBaseMapper.class); } private TaxRateBaseMapper getTaxRateBaseMapper(){ - return SqlProxyHandle.getProxy(TaxRateBaseMapper.class); + return MapperProxyFactory.getProxy(TaxRateBaseMapper.class); } @Override diff --git a/src/com/engine/salary/service/impl/TaxRateDetailServiceImpl.java b/src/com/engine/salary/service/impl/TaxRateDetailServiceImpl.java index eaeb16bf2..ba99f7960 100644 --- a/src/com/engine/salary/service/impl/TaxRateDetailServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxRateDetailServiceImpl.java @@ -6,7 +6,7 @@ import com.engine.salary.entity.taxrate.TaxRateDetail; import com.engine.salary.mapper.SysTaxRateDetailMapper; import com.engine.salary.mapper.TaxRateDetailMapper; import com.engine.salary.service.TaxRateDetailService; -import com.engine.salary.util.db.SqlProxyHandle; +import com.engine.salary.util.db.MapperProxyFactory; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; @@ -25,11 +25,11 @@ import java.util.stream.Collectors; public class TaxRateDetailServiceImpl extends Service implements TaxRateDetailService { private TaxRateDetailMapper getTaxRateDetailMapper(){ - return SqlProxyHandle.getProxy(TaxRateDetailMapper.class); + return MapperProxyFactory.getProxy(TaxRateDetailMapper.class); } private SysTaxRateDetailMapper getSysTaxRateDetailMapper(){ - return SqlProxyHandle.getProxy(SysTaxRateDetailMapper.class); + return MapperProxyFactory.getProxy(SysTaxRateDetailMapper.class); } diff --git a/src/com/engine/salary/util/db/SqlProxyHandle.java b/src/com/engine/salary/util/db/MapperProxyFactory.java similarity index 72% rename from src/com/engine/salary/util/db/SqlProxyHandle.java rename to src/com/engine/salary/util/db/MapperProxyFactory.java index 00b938a4c..8be49e807 100644 --- a/src/com/engine/salary/util/db/SqlProxyHandle.java +++ b/src/com/engine/salary/util/db/MapperProxyFactory.java @@ -10,16 +10,13 @@ import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; -/** - * @author zhangjian - * @date 2017-8-25 下午5:41:17 - */ -public class SqlProxyHandle implements InvocationHandler { + +public class MapperProxyFactory implements InvocationHandler { private Class clazz; - private boolean isAutoCommit = true; + private boolean enableTransactions = false; private SqlSession session; - public SqlProxyHandle(Class clazz) { + public MapperProxyFactory(Class clazz) { this.clazz = clazz; } @@ -28,12 +25,11 @@ public class SqlProxyHandle implements InvocationHandler { if (this.session == null) { this.session = MyBatisFactory.sqlSessionFactory.openSession(); } -// System.out.println(MyBatisFactory.getSql(this.clazz, method.getName(), args[0])); try { Object target = session.getMapper(clazz); return method.invoke(target, args); } finally { - if (isAutoCommit) { + if (!enableTransactions) { session.commit(); session.close(); } @@ -41,7 +37,7 @@ public class SqlProxyHandle implements InvocationHandler { } public Object getProxy() { - if (!isAutoCommit) + if (enableTransactions) this.session = MyBatisFactory.sqlSessionFactory.openSession(); ClassLoader loader = Thread.currentThread().getContextClassLoader(); Class[] interfaces = new Class[1]; @@ -50,7 +46,7 @@ public class SqlProxyHandle implements InvocationHandler { } public Object getProxy(boolean isAutoCommit) { - this.isAutoCommit = isAutoCommit; + this.enableTransactions = isAutoCommit; return this.getProxy(); } @@ -69,12 +65,12 @@ public class SqlProxyHandle implements InvocationHandler { } public static T getProxy(Class clazz) { - SqlProxyHandle handle = new SqlProxyHandle(clazz); + MapperProxyFactory handle = new MapperProxyFactory(clazz); return (T) handle.getProxy(); } - public static T getProxy(Class clazz, boolean isAutoSubmit) { - SqlProxyHandle handle = new SqlProxyHandle(clazz); - return (T) handle.getProxy(isAutoSubmit); + public static T getProxy(Class clazz, boolean enableTransactions) { + MapperProxyFactory handle = new MapperProxyFactory(clazz); + return (T) handle.getProxy(enableTransactions); } } diff --git a/src/com/engine/salary/util/db/SalarySqlProxyHandle.java b/src/com/engine/salary/util/db/SalarySqlProxyHandle.java deleted file mode 100644 index 55c1a51b7..000000000 --- a/src/com/engine/salary/util/db/SalarySqlProxyHandle.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.engine.salary.util.db; - -import org.apache.ibatis.session.SqlSession; -import weaver.conn.mybatis.MyBatisFactory; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -public class SalarySqlProxyHandle implements InvocationHandler { - private Class clazz; - private boolean enableTransactions = false; - private SqlSession session; - - public SalarySqlProxyHandle() { - } - - public SalarySqlProxyHandle(Class clazz) { - this.clazz = clazz; - } - - public SalarySqlProxyHandle(Class clazz, boolean enableTransactions) { - this.clazz = clazz; - this.enableTransactions = enableTransactions; - } - - public SalarySqlProxyHandle(Class clazz, boolean enableTransactions, SqlSession session) { - this.clazz = clazz; - this.enableTransactions = enableTransactions; - this.session = session; - } - - @Override - public Object invoke(Object proxy, Method method, Object[] args) throws Exception { - if (this.session == null) { - this.session = MyBatisFactory.sqlSessionFactory.openSession(); - } - try { - Object target = session.getMapper(clazz); - Object invoke = method.invoke(target, args); - if (!enableTransactions) { - session.commit(); - } - return invoke; - } finally { - if (!enableTransactions) { - this.session.close(); - } - } - } - - public Object getProxy() { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - Class[] interfaces = new Class[1]; - interfaces[0] = this.clazz; - return Proxy.newProxyInstance(loader, interfaces, this); - } - - - public void commit() { - if (this.session != null) { - this.session.commit(); - this.session.close(); - } - } - - public void rollback() { - if (this.session != null) { - this.session.rollback(); - this.session.close(); - } - } - - public static T getProxy(Class clazz) { - SalarySqlProxyHandle handle = new SalarySqlProxyHandle(clazz); - return (T) handle.getProxy(); - } - - public static T getProxy(Class clazz, SqlSession sqlSession) { - SalarySqlProxyHandle handle = new SalarySqlProxyHandle(clazz, true, sqlSession); - return (T) handle.getProxy(); - } -}