package com.lens.order.controller; import com.lens.order.entity.TestOrderEntity; import com.lens.order.service.ITestOrderService; import com.lens.order.service.Impl.TestOrderService; import org.dartframework.core.common.controller.BaseController; import org.dartframework.core.common.model.json.AjaxJson; import org.dartframework.core.util.ResourceUtil; import org.dartframework.web.system.pojo.base.TSUser; import org.dartframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.util.List; import java.util.Map; @Controller @RequestMapping("/TestOrderController") public class TestOrderController extends BaseController { // @Override @Resource private PlatformTransactionManager transactionManager; @Autowired //private TestOrderService orderService; private ITestOrderService orderService; @Autowired private SystemService systemService; @RequestMapping(params = "Hello") @ResponseBody public String Hello() { return "Hello,Lily"; } @RequestMapping(params = "getData") @ResponseBody public AjaxJson getData(String id) { //测试OK AjaxJson aj = new AjaxJson(); //CpsSaleSendoutPage cpsSaleSendoutPage = new CpsSaleSendoutPage(); //TestOrderEntity orderEntity = orderService.get() .co . .commonDao.get(TestOrderEntity.class, id); TestOrderEntity orderEntity = orderService.get(TestOrderEntity.class, id); if ( orderEntity==null) { orderEntity= new TestOrderEntity(); orderEntity.id="test001"; } orderEntity.order_sn="v02"; orderService.save( orderEntity); //this.get(CpsSaleSendoutEntity.class, id); aj.setMsg("获取发货信息成功"); //aj.setObj(cpsSaleSendoutPage); return aj; } @RequestMapping(params = "insertorder") @ResponseBody public AjaxJson InsertOrder(String id) { //测试OK AjaxJson j = new AjaxJson(); TestOrderEntity orderEntity = new TestOrderEntity() ; //orderService.get(TestOrderEntity.class, id); orderEntity.id="test_" + id; //人工指定,保存后还是会被覆盖 orderEntity.create_name="tany"; try { //systemService.saveOrUpdate(orderEntity); //用此方法没有成功 systemService.save(orderEntity); j.setSuccess(true); j.setMsg("操作成功!"); } catch (Exception ex){ j.setSuccess(false); j.setMsg("error:" + ex.getMessage()); } return j; } @RequestMapping(params = "updateorder") @ResponseBody public AjaxJson UpdateOrder(String id){ //更新 AjaxJson j = new AjaxJson(); TSUser u = ResourceUtil.getSessionUser(); //String sql1 = "update test_orders set update_by = ?, update_date = sysdate() where id = ?"; String sql1 = "update test_orders set memo = ? where id = ?"; systemService.executeSql(sql1,u.getRealName(),id); j.setSuccess(true); j.setMsg("操作成功!"); return j; } @RequestMapping(params = "updateorder2") @ResponseBody public AjaxJson UpdateOrder2(String id){ //更新 ,测试OK AjaxJson j = new AjaxJson(); TestOrderEntity orderEntity = systemService.getEntity( TestOrderEntity.class, id); if (orderEntity!=null) { try { //orderEntity.memo="updateorder2 v2"; systemService.saveOrUpdate(orderEntity); j.setSuccess(true); j.setMsg("操作成功!"); } catch (Exception ex){ j.setSuccess(false); j.setMsg("error:" + ex.getMessage()); } } else { j.setSuccess(false); j.setMsg("not found record"); } return j; } @Transactional //控制器中写此行,事务控制不到,tany @RequestMapping(params = "deleteorder1") @ResponseBody public AjaxJson DeleteOrder1(String id) { //测试不通过! AjaxJson j = new AjaxJson(); TestOrderEntity orderEntity = orderService.get(TestOrderEntity.class, id); if (orderEntity!=null){ systemService.delete(orderEntity); j.setSuccess(true); j.setMsg("操作成功!"); int a=0,b=0,c=0; c = a / b; } else { j.setSuccess(!true); j.setMsg("记录不存在!"); } return j; } @RequestMapping(params = "deleteorder2") //测试OK,但实体类中的int要改成Integer,否则为null时会出错 @ResponseBody public AjaxJson DeleteOrder2(String id) { String msg=""; AjaxJson j = new AjaxJson(); TestOrderEntity orderEntity=null ; try { orderEntity=orderService.get(TestOrderEntity.class, id); } catch (Exception ex){ msg= ex.getMessage(); } DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(); defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionManager.getTransaction(defaultTransactionDefinition); //原文链接:https://blog.csdn.net/quwenzhe/article/details/60308999 // // if (orderEntity!=null){ try { systemService.delete(orderEntity); j.setSuccess(true); j.setMsg("操作成功!"); int a=0,b=0,c=0; c = a / b; transactionManager.commit(status); } catch (Exception ex){ j.setSuccess(false); j.setMsg("error:" + ex.getMessage()); transactionManager.rollback(status); ex.printStackTrace(); //log.error("sava *** error" + ex.toString()); } } else { j.setSuccess(!true); j.setMsg("记录不存在!"); } return j; } //@Transactional //控制器中写此行,事务控制不到,tany @RequestMapping(params = "deleteorderok") @ResponseBody public AjaxJson DeleteOrderOK(String id) { //测试OK AjaxJson j = new AjaxJson(); try { boolean yn= orderService.tranDelete(id); //在service中控制,可以成功 j.setSuccess(yn); } catch (Exception ex){ j.setSuccess(false); j.setMsg("error:" + ex.getMessage()); } return j; } @RequestMapping(params = "twotrandeleteorder") @ResponseBody public AjaxJson TwoTranDeleteOrder(String id) { //测试OK,双层事务嵌套 String msg=""; AjaxJson j = new AjaxJson(); TestOrderEntity orderEntity=null ; try { orderEntity=orderService.get(TestOrderEntity.class, id); } catch (Exception ex){ msg= ex.getMessage(); } DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(); defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionManager.getTransaction(defaultTransactionDefinition); //原文链接:https://blog.csdn.net/quwenzhe/article/details/60308999 try { orderService.tranDelete("11"); } catch (Exception ex){ msg= ex.getMessage(); } // if (orderEntity!=null){ try { systemService.delete(orderEntity); //01 此处Service中的事务本身是提交的 j.setSuccess(true); j.setMsg("操作成功!"); transactionManager.rollback(status); //02 在控制器中的事务又回滚,最终service中的事务也被回滚 return j; // int a=0,b=0,c=0; // c = a / b; // // transactionManager.commit(status); } catch (Exception ex){ j.setSuccess(false); j.setMsg("error:" + ex.getMessage()); transactionManager.rollback(status); ex.printStackTrace(); //log.error("sava *** error" + ex.toString()); } } else { j.setSuccess(!true); j.setMsg("记录不存在!"); } return j; } @RequestMapping(params = "selectorder") @ResponseBody //测试OK 关联查询 public AjaxJson SelectOrder(String id){ String sql = " select a.* , b.order_sn, b.ccode, b.cname\n" + "from test_orderdetail a\n" + "left join test_orders b on a.oid=b.id\n" + "where a.oid='" + id + "'\n" ; List<Map<String, Object>> mapList=systemService.findForJdbc(sql); AjaxJson j = new AjaxJson(); j.setSuccess(true); j.setObj( mapList ); j.setMsg("操作成功!"); return j; } //URL调用方法:http://localhost:8080/jinying02/TestOrderController.do?getSendoutInfo2a&id=2 @RequestMapping(params = "getSendoutInfo2") @ResponseBody public AjaxJson getSendoutInfo2(String id){ AjaxJson aj = new AjaxJson(); aj.setMsg("获取发货信息成功"); //aj.setObj(cpsSaleSendoutPage); return aj; // try { // CpsSaleSendoutPage cpsSaleSendoutPage = cpsSaleService.getSendoutInfo(id); // aj.setMsg("获取发货信息成功"); // aj.setObj(cpsSaleSendoutPage); // return aj; // } catch (Exception e) { // e.printStackTrace(); // aj.setSuccess(false); // aj.setMsg("获取发货信息失败!"+e.getMessage()); // return aj; // } } }
spring MVC控制器基本用法
最新推荐文章于 2024-07-19 17:37:28 发布