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.youkuaiyun.com/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.youkuaiyun.com/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;
// }
}
}