bruce

优化oracle事务

...@@ -14,6 +14,8 @@ import org.apache.commons.lang3.StringUtils; ...@@ -14,6 +14,8 @@ import org.apache.commons.lang3.StringUtils;
14 import org.apache.logging.log4j.LogManager; 14 import org.apache.logging.log4j.LogManager;
15 import org.apache.logging.log4j.Logger; 15 import org.apache.logging.log4j.Logger;
16 import org.springframework.beans.factory.annotation.Autowired; 16 import org.springframework.beans.factory.annotation.Autowired;
17 +import org.springframework.beans.factory.annotation.Qualifier;
18 +import org.springframework.jdbc.datasource.DataSourceTransactionManager;
17 import org.springframework.stereotype.Service; 19 import org.springframework.stereotype.Service;
18 20
19 import com.cjs.site.biz.ServiceException; 21 import com.cjs.site.biz.ServiceException;
...@@ -38,7 +40,11 @@ import com.cjs.site.util.redis.JedisTemplate; ...@@ -38,7 +40,11 @@ import com.cjs.site.util.redis.JedisTemplate;
38 import com.cjs.site.util.t2.T2Result; 40 import com.cjs.site.util.t2.T2Result;
39 import com.cjs.site.util.t2.T2Util; 41 import com.cjs.site.util.t2.T2Util;
40 import com.cjs.site.util.web.ActionUtil; 42 import com.cjs.site.util.web.ActionUtil;
43 +import org.springframework.transaction.TransactionDefinition;
44 +import org.springframework.transaction.TransactionStatus;
41 import org.springframework.transaction.annotation.Transactional; 45 import org.springframework.transaction.annotation.Transactional;
46 +import org.springframework.transaction.interceptor.TransactionAspectSupport;
47 +import org.springframework.transaction.support.DefaultTransactionDefinition;
42 48
43 /** 49 /**
44 * 提货 50 * 提货
...@@ -78,7 +84,9 @@ public class PickBiz { ...@@ -78,7 +84,9 @@ public class PickBiz {
78 private InventoryDao inventoryDao; 84 private InventoryDao inventoryDao;
79 @Autowired 85 @Autowired
80 private PickPackDao pickPackDao; 86 private PickPackDao pickPackDao;
81 - 87 + @Autowired
88 + @Qualifier("transactionManagerOracle")
89 + private DataSourceTransactionManager transactionManager;
82 /** 90 /**
83 * 封装费用汇总 91 * 封装费用汇总
84 */ 92 */
...@@ -181,6 +189,7 @@ public class PickBiz { ...@@ -181,6 +189,7 @@ public class PickBiz {
181 /* if (resultInfo.getCode() == 0) { 189 /* if (resultInfo.getCode() == 0) {
182 return resultInfo; 190 return resultInfo;
183 }*/ 191 }*/
192 + ResultInfo resultInfo;
184 if (pickInfo.getInsuranceType() == null) { 193 if (pickInfo.getInsuranceType() == null) {
185 return new ResultInfo(0, "请选择投保方式"); 194 return new ResultInfo(0, "请选择投保方式");
186 } 195 }
...@@ -189,6 +198,10 @@ public class PickBiz { ...@@ -189,6 +198,10 @@ public class PickBiz {
189 return new ResultInfo(0, "投保金额不能低于1000元"); 198 return new ResultInfo(0, "投保金额不能低于1000元");
190 } 199 }
191 } 200 }
201 + DefaultTransactionDefinition def = new DefaultTransactionDefinition();
202 + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
203 + TransactionStatus status = transactionManager.getTransaction(def);
204 + try{
192 HttpSession session = ActionUtil.getRequest().getSession(); 205 HttpSession session = ActionUtil.getRequest().getSession();
193 UserAddressInfo addressInfo = userAddressDao.queryById(addressId); 206 UserAddressInfo addressInfo = userAddressDao.queryById(addressId);
194 OutpropApplyInfo applyInfo = new OutpropApplyInfo(); 207 OutpropApplyInfo applyInfo = new OutpropApplyInfo();
...@@ -219,7 +232,13 @@ public class PickBiz { ...@@ -219,7 +232,13 @@ public class PickBiz {
219 pickInfo.setMerge(true); 232 pickInfo.setMerge(true);
220 } 233 }
221 } 234 }
222 - return this.pick(pickInfo, applyInfo); 235 + resultInfo = this.pick(pickInfo, applyInfo);
236 + transactionManager.commit(status);
237 + }catch (Exception e){
238 + transactionManager.rollback(status);
239 + return new ResultInfo(0, "数据异常,请联系客服!");
240 + }
241 + return resultInfo;
223 } 242 }
224 243
225 /**转赵涌在线拍卖*/ 244 /**转赵涌在线拍卖*/
...@@ -254,7 +273,6 @@ public class PickBiz { ...@@ -254,7 +273,6 @@ public class PickBiz {
254 * @return code(0:全部失败;1:成功;2:部分失败) 273 * @return code(0:全部失败;1:成功;2:部分失败)
255 */ 274 */
256 @SuppressWarnings("unchecked") 275 @SuppressWarnings("unchecked")
257 - @Transactional
258 public ResultInfo pick(OutpropApplyPickInfo pickInfo, OutpropApplyInfo applyInfo) { 276 public ResultInfo pick(OutpropApplyPickInfo pickInfo, OutpropApplyInfo applyInfo) {
259 UserInfo user = ActionUtil.getUser(); 277 UserInfo user = ActionUtil.getUser();
260 HttpSession session = ActionUtil.getRequest().getSession(); 278 HttpSession session = ActionUtil.getRequest().getSession();
......
...@@ -186,6 +186,10 @@ ...@@ -186,6 +186,10 @@
186 <property name="dataSource" ref="dataSourceMySql" /> 186 <property name="dataSource" ref="dataSourceMySql" />
187 </bean> 187 </bean>
188 188
189 + <bean id="transactionManagerOracle" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
190 + <property name="dataSource" ref="dataSourceOracle" />
191 + </bean>
192 +
189 <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> 193 <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
190 194
191 </beans> 195 </beans>
......