spring MVC控制器基本用法

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;
//        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值