yun-zuoyi
汪云昊 6 years ago
commit b11989a0c6

@ -1,42 +1,42 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import io.swagger.annotations.ApiOperation;
import javax.transaction.Transactional;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2019-02-20 21:23
* @Modify:
**/
public interface ITestService {
@ApiOperation(value = "多表查询")
List<Object> queryToolAndToolType(Pager pager);
@ApiOperation(value = "条件查询")
public ListPager<SysUser> querySysUserByPager(SysUser user, Pager pager);
@ApiOperation(value = "in条件封装查询")
List<SysUser> querySysUserByPack(DdlPackBean packBean);
@ApiOperation(value = "添加用户")
void insertSysUser(SysUser sysUser);
@ApiOperation(value = "修改用户")
void updateSysUser(SysUser sysUser);
@ApiOperation(value = "查询用户")
List<SysUser> listSysUser();
@ApiOperation(value = "读写分离测试写")
@Transactional
void write();
}
//package cn.estsh.i3plus.core.api.iservice.busi;
//
//import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
//import cn.estsh.i3plus.pojo.base.bean.ListPager;
//import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.platform.bean.SysUser;
//import io.swagger.annotations.ApiOperation;
//
//import javax.transaction.Transactional;
//import java.util.List;
//
///**
// * @Description :
// * @Reference :
// * @Author : yunhao
// * @CreateDate : 2019-02-20 21:23
// * @Modify:
// **/
//public interface ITestService {
//
// @ApiOperation(value = "多表查询")
// List<Object> queryToolAndToolType(Pager pager);
//
// @ApiOperation(value = "条件查询")
// public ListPager<SysUser> querySysUserByPager(SysUser user, Pager pager);
//
// @ApiOperation(value = "in条件封装查询")
// List<SysUser> querySysUserByPack(DdlPackBean packBean);
//
// @ApiOperation(value = "添加用户")
// void insertSysUser(SysUser sysUser);
//
// @ApiOperation(value = "修改用户")
// void updateSysUser(SysUser sysUser);
//
// @ApiOperation(value = "查询用户")
// List<SysUser> listSysUser();
//
// @ApiOperation(value = "读写分离测试写")
// @Transactional
// void write();
//}

@ -1,137 +1,137 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.core.api.iservice.busi.ITestService;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/impp-ddl")
@Api(description="hql封装demo")
public class DemoDdlPackController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoDdlPackController.class);
@Autowired
ITestService testService;
/**
* ddl
* @param user
* @param pager
* @return
* @throws Exception
*/
@GetMapping(value="/test-ddlpack")
@ApiOperation(value="ddl封装测试")
public ResultBean testDdlPack(SysUser user, Pager pager) throws Exception{
try{
ListPager<SysUser> listPager = testService.querySysUserByPager(user,pager);
return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
return ResultBean.fail(busExcep);
}
}
/**
* ddlin
* @param testType
* @return
*/
@GetMapping(value="/testpackin")
@ApiOperation(value="ddl封装in")
public BaseResultBean testDdlPackIn(int testType){
String[] strArr = {"1","2"};
Integer[] intArr = {1,2};
List strList = new ArrayList();
strList.add("1");
strList.add("2");
List intList = new ArrayList();
intList.add(1);
intList.add(2);
DdlPackBean packBean = new DdlPackBean(true);
if(testType == 1) {
DdlPreparedPack.getInPack("aaa", "userName", packBean);
}else if(testType == 2) {
DdlPreparedPack.getInPackArray(strArr, "userName", packBean);
}else if(testType == 3) {
DdlPreparedPack.getInPackArray(intArr, "userStatus", packBean);
}else if(testType == 4) {
DdlPreparedPack.getInPackList(strList, "userName", packBean);
}else if(testType == 5) {
DdlPreparedPack.getInPackList(intList, "userStatus", packBean);
}
List<SysUser> list = testService.querySysUserByPack(packBean);
return ResultBean.success("用户数量:" + list.size())
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
}
/**
* ddl
* @param user
* @param pager
* @return
*/
@GetMapping(value="/testpager")
@ApiOperation(value="ddl测试分页")
public BaseResultBean testDdlPager(SysUser user,Pager pager){
ListPager<SysUser> listPager = testService.querySysUserByPager(user,pager);
return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
/**
*
* @param sysUser
* @return
*/
@PostMapping(value="/test-insert")
@ApiOperation(value="测试添加长文本数据")
public BaseResultBean testInsertSysUserLob(SysUser sysUser){
testService.insertSysUser(sysUser);
return ResultBean.success("操作成功").setResultObject(sysUser).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
/**
*
* @param sysUser
* @return
*/
@PutMapping(value="/test-update")
@ApiOperation(value="测试添加长文本数据")
public BaseResultBean testUpdateSysUserLob(SysUser sysUser){
testService.updateSysUser(sysUser);
return ResultBean.success("操作成功").setResultObject(sysUser).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
/**
*
* @return
*/
@PutMapping(value="/test-list")
@ApiOperation(value="测试添加长文本数据")
public BaseResultBean testListSysUserLob(){
List<SysUser> sysUserList = testService.listSysUser();
return ResultBean.success("操作成功").setResultList(sysUserList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}
//package cn.estsh.i3plus.core.apiservice.controller;
//
//import cn.estsh.i3plus.core.api.iservice.busi.ITestService;
//import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
//import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
//import cn.estsh.i3plus.pojo.base.bean.ListPager;
//import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
//import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
//import cn.estsh.i3plus.pojo.platform.bean.SysUser;
//import cn.estsh.impp.framework.boot.exception.ImppBusiException;
//import cn.estsh.impp.framework.boot.util.ResultBean;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@RestController
//@RequestMapping("/impp-ddl")
//@Api(description="hql封装demo")
//public class DemoDdlPackController {
//
// private static final Logger LOGGER = LoggerFactory.getLogger(DemoDdlPackController.class);
//
// @Autowired
// ITestService testService;
//
// /**
// * ddl封装测试
// * @param user 用户
// * @param pager 分页信息
// * @return 处理结果
// * @throws Exception
// */
// @GetMapping(value="/test-ddlpack")
// @ApiOperation(value="ddl封装测试")
// public ResultBean testDdlPack(SysUser user, Pager pager) throws Exception{
// try{
// ListPager<SysUser> listPager = testService.querySysUserByPager(user,pager);
// return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }catch(ImppBusiException busExcep){
// LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
// return ResultBean.fail(busExcep);
// }
// }
//
// /**
// * ddl封装in
// * @param testType 参数
// * @return 处理结果
// */
// @GetMapping(value="/testpackin")
// @ApiOperation(value="ddl封装in")
// public BaseResultBean testDdlPackIn(int testType){
// String[] strArr = {"1","2"};
// Integer[] intArr = {1,2};
//
// List strList = new ArrayList();
// strList.add("1");
// strList.add("2");
//
// List intList = new ArrayList();
// intList.add(1);
// intList.add(2);
//
// DdlPackBean packBean = new DdlPackBean(true);
// if(testType == 1) {
// DdlPreparedPack.getInPack("aaa", "userName", packBean);
// }else if(testType == 2) {
// DdlPreparedPack.getInPackArray(strArr, "userName", packBean);
// }else if(testType == 3) {
// DdlPreparedPack.getInPackArray(intArr, "userStatus", packBean);
// }else if(testType == 4) {
// DdlPreparedPack.getInPackList(strList, "userName", packBean);
// }else if(testType == 5) {
// DdlPreparedPack.getInPackList(intList, "userStatus", packBean);
// }
// List<SysUser> list = testService.querySysUserByPack(packBean);
//
// return ResultBean.success("用户数量:" + list.size())
// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
// .setResultList(list);
// }
//
// /**
// * ddl测试分页
// * @param user 用户
// * @param pager 分页信息
// * @return 处理结果
// */
// @GetMapping(value="/testpager")
// @ApiOperation(value="ddl测试分页")
// public BaseResultBean testDdlPager(SysUser user,Pager pager){
// ListPager<SysUser> listPager = testService.querySysUserByPager(user,pager);
// return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// /**
// * 测试添加长文本数据
// * @param sysUser
// * @return
// */
// @PostMapping(value="/test-insert")
// @ApiOperation(value="测试添加长文本数据")
// public BaseResultBean testInsertSysUserLob(SysUser sysUser){
// testService.insertSysUser(sysUser);
// return ResultBean.success("操作成功").setResultObject(sysUser).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
// /**
// * 测试添加长文本数据
// * @param sysUser
// * @return
// */
// @PutMapping(value="/test-update")
// @ApiOperation(value="测试添加长文本数据")
// public BaseResultBean testUpdateSysUserLob(SysUser sysUser){
// testService.updateSysUser(sysUser);
// return ResultBean.success("操作成功").setResultObject(sysUser).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
// /**
// * 测试查询长文本数据
// * @return
// */
// @PutMapping(value="/test-list")
// @ApiOperation(value="测试添加长文本数据")
// public BaseResultBean testListSysUserLob(){
// List<SysUser> sysUserList = testService.listSysUser();
// return ResultBean.success("操作成功").setResultList(sysUserList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
//
//}

@ -1,414 +1,414 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.core.api.iservice.busi.ITestService;
import cn.estsh.i3plus.core.api.iservice.busi.ITestTransService;
import cn.estsh.i3plus.pojo.platform.bean.TestTransUser;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description : entityManager
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2019-04-29 17:20
* @Modify:
**/
@RestController
@Api(description = "对事务以及entityManager的操作演示")
@RequestMapping("/demo-trans")
public class DemoTransactionController extends CoreBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoTransactionController.class);
@Autowired
private ITestTransService transService;
@Autowired
private ITestService testService;
/**
*
* @return
*/
@PostMapping("/trans-test-redis")
@ApiOperation(value = "事务测试缓存")
public ResultBean testRedisTrans(String name,String val) {
transService.testRedisTrans(name,val);
return ResultBean.success("事务测试缓存");
}
/**
* dao
*
* @param type
* @param name
* @return
*/
@PostMapping("/test1")
@ApiOperation(value = "dao混合调用")
public ResultBean transTest1(int type, String name) {
transService.testListTran(type, name);
return ResultBean.success("测试成功");
}
/**
*
*
* @return
*/
@PostMapping("/test-dynamic-datasource")
@ApiOperation(value = "测试多数据源切换")
public ResultBean testDynamicDataSource(int type) {
//多服务调用
startMultiService();
if(type == 1){
System.out.println("====先查后插入====");
List<TestTransUser> uList = transService.listRead();
System.out.println("对象总数:" + uList.size());
System.out.println("开始插入");
transService.write();
uList = transService.listRead();
System.out.println("再次查询:" + uList.size());
}else if(type == 2){
System.out.println("====先插入后查====");
System.out.println("开始插入");
transService.write();
List<TestTransUser> uList = transService.listRead();
System.out.println("对象总数:" + uList.size());
if(uList.size() > 0){
throw new RuntimeException("111");
}
}else if(type == 3){
System.out.println("====先查后插入====");
List<TestTransUser> uList = transService.listRead();
System.out.println("对象总数:" + uList.size());
System.out.println("开始插入");
testService.write();
uList = transService.listRead();
System.out.println("再次查询:" + uList.size());
}
return ResultBean.success("测试成功");
}
/**
* Controller
*
* @return
*/
@PostMapping("/test-dynamic-datasource-more")
@ApiOperation(value = "测试多数据源切换")
public ResultBean testDynamicDataSourceWithController(boolean withMulti) {
if(withMulti) {
//多服务调用
startMultiService();
}
//读
readWriteTransactionTest(1);
//写
readWriteTransactionTest(2);
return ResultBean.success("测试成功");
}
/**
* -
* @return
*/
@PostMapping("/read-write-test")
@ApiOperation(value = "读写分离-事务测试")
public ResultBean readWriteTransactionTest(@RequestParam("testType") int testType) {
if(testType == 1) {
//读
List<TestTransUser> uList = transService.listRead();
System.out.println("对象总数:" + uList.size());
for (TestTransUser u : uList){
System.out.println(u);
}
}else if(testType == 2) {
//写
transService.write();
}else if(testType == 3) {
//读写(写事务)
transService.transReadWrite();
}else if(testType == 4) {
//读写(写事务)
transService.readWrite();
}
return ResultBean.success("测试成功");
}
/******************* 事务并发出现的问题*******************/
/**
*
* @param name name
* @param time
* @param execp
* @return
*/
@PostMapping("/update-lost")
@ApiOperation(value = "第一类丢失更新")
public ResultBean updateLost1(String name,int time,boolean execp) {
transService.updateLost(name,time,execp);
return ResultBean.success("幻读模拟结束");
}
/**
*
* @return
*/
@PostMapping("/update-lost-trans")
@ApiOperation(value = "第二类丢失更新")
public ResultBean updateLostTrans(String name,double salary,int time,boolean execp) {
transService.updateLostTrans(name,salary,time,execp);
return ResultBean.success("第二类丢失更新结束");
}
/**
*
* @return
*/
@PostMapping("/trans-dirty-a")
@ApiOperation(value = "脏读模拟A")
public ResultBean transDirtyA(long id) {
try{
transService.writeDirtyA(id);
}catch(Exception e){
System.out.println(e.getMessage());
}
return ResultBean.success("脏读模拟A结束");
}
/**
*
* @return
*/
@PostMapping("/trans-dirty-b")
@ApiOperation(value = "脏读模拟B")
public ResultBean transDirtyB(long id) {
transService.writeDirtyB(id);
return ResultBean.success("脏读模拟B结束");
}
/**
* A
* @return
*/
@PostMapping("/trans-repeat-a")
@ApiOperation(value = "不可重复读A")
public ResultBean transRepeatA(long id) {
transService.writeRepeatA(id);
return ResultBean.success("不可重复读A结束");
}
/**
* B
* @return
*/
@PostMapping("/trans-repeat-b")
@ApiOperation(value = "不可重复读B")
public ResultBean transRepeatB(long id) {
transService.writeRepeatB(id);
return ResultBean.success("不可重复读B结束");
}
/**
*
* @return
*/
@PostMapping("/trans-phantom-a")
@ApiOperation(value = "幻读模拟A")
public ResultBean transPhantomA(long id,boolean listOrDelete) {
try {
transService.writePhantomA(id, listOrDelete);
}catch(Exception e){
System.out.println("幻读异常:" + e.getMessage());
}
return ResultBean.success("幻读模拟A结束");
}
/**
*
* @return
*/
@PostMapping("/trans-phantom-b")
@ApiOperation(value = "幻读模拟B")
public ResultBean transPhantomB() {
transService.writePhantomB();
return ResultBean.success("幻读模拟B结束");
}
/********************* 事务传播 *******************/
/**
* -
* @return
*/
@PostMapping("/trans-require-new")
@ApiOperation(value = "创建新事务")
public ResultBean transRequireNew() {
transService.writeRequireNew();
return ResultBean.success("require-new结束");
}
/**
* -mandatory
* @return
*/
@PostMapping("/trans-mandatory")
@ApiOperation(value = "没有事务抛出异常")
public ResultBean transMandatory() {
transService.writeTransMandatory();
return ResultBean.success("mandatory结束");
}
/******************* 事务隔离级别 *******************/
//调用事务出现的问题,打开事务注释
/********************* 乐观锁 Optimistic lock *******************/
/**
* A
* @return
*/
@PostMapping("/trans-optimistic-a")
@ApiOperation(value = "乐观锁 Optimistic lockA")
public ResultBean transOptimisticA(long id,int type) {
transService.writeOptimisticA(id,type);
return ResultBean.success("乐观锁 Optimistic lockA结束");
}
/**
* B
* @return
*/
@PostMapping("/trans-optimistic-b")
@ApiOperation(value = "乐观锁 Optimistic lockB")
public ResultBean transOptimisticB(long id,int type) {
transService.writeOptimisticB(id,type);
return ResultBean.success("乐观锁 Optimistic lockB结束");
}
/********************* 悲观锁 Pessimistic Lock *******************/
/**
* A
* @return
*/
@PostMapping("/trans-pessimistic-a")
@ApiOperation(value = "悲观锁 pessimistic lockA")
public ResultBean transPessimisticA(long id,int type) {
transService.writePessimisticA(id,type);
return ResultBean.success("悲观锁 pessimistic lockA结束");
}
/**
* B
* @return
*/
@PostMapping("/trans-pessimistic-b")
@ApiOperation(value = "悲观锁 pessimistic lockB")
public ResultBean transPessimisticB(long id,int type) {
transService.writePessimisticB(id,type);
return ResultBean.success("悲观锁 pessimistic lockB结束");
}
/********************* 事务设计 *******************/
/**
*
* @return
*/
@PostMapping("/trans-pattern-wrong")
@ApiOperation(value = "常见事务处理(可能出现并发问题)")
public ResultBean transPatternWrong(long id,double salary) {
transService.writePatternWrong(id,salary);
return ResultBean.success("常见事务处理");
}
/**
* 线
* @return
*/
@PostMapping("/trans-pattern-synchronized")
@ApiOperation(value = "事务模式-线程锁")
public ResultBean transPatternSynchron(long id,double salary) {
transService.writePatternSynchron(id,salary);
return ResultBean.success("事务模式-线程锁");
}
/**
*
* @return
*/
@PostMapping("/trans-pattern-opti")
@ApiOperation(value = "事务模式-乐观锁")
public ResultBean transPatternOpti(long id,double salary) {
transService.writePatternOpti(id,salary);
return ResultBean.success("事务模式-乐观锁");
}
/**
*
* @return
*/
@PostMapping("/trans-pattern-pessi")
@ApiOperation(value = "事务模式-悲观锁")
public ResultBean transPatternPessi(long id,double salary) {
transService.writePatternPessi(id,salary);
return ResultBean.success("事务模式-悲观锁");
}
/**
*
* @return
*/
@PostMapping("/trans-pattern-param-update")
@ApiOperation(value = "事务模式-属性更新")
public ResultBean transPatternParamUpdate(long id,double salary) {
transService.writePatternParamUpdate(id,salary);
return ResultBean.success("事务模式-属性更新");
}
}
//package cn.estsh.i3plus.core.apiservice.controller;
//
//import cn.estsh.i3plus.core.api.iservice.busi.ITestService;
//import cn.estsh.i3plus.core.api.iservice.busi.ITestTransService;
//import cn.estsh.i3plus.pojo.platform.bean.TestTransUser;
//import cn.estsh.impp.framework.base.controller.CoreBaseController;
//import cn.estsh.impp.framework.boot.util.ResultBean;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.List;
//
///**
// * @Description : 对事务以及entityManager的操作演示
// * @Reference :
// * @Author : alwaysfrin
// * @CreateDate : 2019-04-29 17:20
// * @Modify:
// **/
//@RestController
//@Api(description = "对事务以及entityManager的操作演示")
//@RequestMapping("/demo-trans")
//public class DemoTransactionController extends CoreBaseController {
// private static final Logger LOGGER = LoggerFactory.getLogger(DemoTransactionController.class);
//
// @Autowired
// private ITestTransService transService;
//
// @Autowired
// private ITestService testService;
//
//
// /**
// * 属性更新
// * @return 处理结果
// */
// @PostMapping("/trans-test-redis")
// @ApiOperation(value = "事务测试缓存")
// public ResultBean testRedisTrans(String name,String val) {
// transService.testRedisTrans(name,val);
//
// return ResultBean.success("事务测试缓存");
// }
//
// /**
// * dao混合调用
// *
// * @param type 调用参数
// * @param name 名称
// * @return 处理结果
// */
// @PostMapping("/test1")
// @ApiOperation(value = "dao混合调用")
// public ResultBean transTest1(int type, String name) {
// transService.testListTran(type, name);
//
// return ResultBean.success("测试成功");
// }
//
// /**
// * 测试多数据源切换
// *
// * @return 处理结果
// */
// @PostMapping("/test-dynamic-datasource")
// @ApiOperation(value = "测试多数据源切换")
// public ResultBean testDynamicDataSource(int type) {
// //多服务调用
// startMultiService();
//
// if(type == 1){
// System.out.println("====先查后插入====");
// List<TestTransUser> uList = transService.listRead();
// System.out.println("对象总数:" + uList.size());
//
// System.out.println("开始插入");
// transService.write();
//
// uList = transService.listRead();
// System.out.println("再次查询:" + uList.size());
// }else if(type == 2){
// System.out.println("====先插入后查====");
// System.out.println("开始插入");
// transService.write();
//
// List<TestTransUser> uList = transService.listRead();
// System.out.println("对象总数:" + uList.size());
//
// if(uList.size() > 0){
// throw new RuntimeException("111");
// }
// }else if(type == 3){
// System.out.println("====先查后插入====");
// List<TestTransUser> uList = transService.listRead();
// System.out.println("对象总数:" + uList.size());
//
// System.out.println("开始插入");
// testService.write();
//
// uList = transService.listRead();
// System.out.println("再次查询:" + uList.size());
// }
//
// return ResultBean.success("测试成功");
// }
//
//
// /**
// * 测试多数据源切换Controller调用
// *
// * @return 处理结果
// */
// @PostMapping("/test-dynamic-datasource-more")
// @ApiOperation(value = "测试多数据源切换")
// public ResultBean testDynamicDataSourceWithController(boolean withMulti) {
// if(withMulti) {
// //多服务调用
// startMultiService();
// }
//
// //读
// readWriteTransactionTest(1);
// //写
// readWriteTransactionTest(2);
//
// return ResultBean.success("测试成功");
// }
//
// /**
// * 读写分离-事务测试
// * @return 处理结果
// */
// @PostMapping("/read-write-test")
// @ApiOperation(value = "读写分离-事务测试")
// public ResultBean readWriteTransactionTest(@RequestParam("testType") int testType) {
// if(testType == 1) {
// //读
// List<TestTransUser> uList = transService.listRead();
// System.out.println("对象总数:" + uList.size());
// for (TestTransUser u : uList){
// System.out.println(u);
// }
// }else if(testType == 2) {
// //写
// transService.write();
// }else if(testType == 3) {
// //读写(写事务)
// transService.transReadWrite();
// }else if(testType == 4) {
// //读写(写事务)
// transService.readWrite();
// }
//
// return ResultBean.success("测试成功");
// }
//
// /******************* 事务并发出现的问题*******************/
//
// /**
// * 第一类丢失更新
// * @param name 更新的name的值
// * @param time 停止时间,秒
// * @param execp 是否抛出异常
// * @return 处理结果
// */
// @PostMapping("/update-lost")
// @ApiOperation(value = "第一类丢失更新")
// public ResultBean updateLost1(String name,int time,boolean execp) {
// transService.updateLost(name,time,execp);
//
// return ResultBean.success("幻读模拟结束");
// }
//
// /**
// * 第二类丢失更新
// * @return 处理结果
// */
// @PostMapping("/update-lost-trans")
// @ApiOperation(value = "第二类丢失更新")
// public ResultBean updateLostTrans(String name,double salary,int time,boolean execp) {
// transService.updateLostTrans(name,salary,time,execp);
//
// return ResultBean.success("第二类丢失更新结束");
// }
//
// /**
// * 模拟脏读
// * @return 处理结果
// */
// @PostMapping("/trans-dirty-a")
// @ApiOperation(value = "脏读模拟A")
// public ResultBean transDirtyA(long id) {
// try{
// transService.writeDirtyA(id);
// }catch(Exception e){
// System.out.println(e.getMessage());
// }
//
// return ResultBean.success("脏读模拟A结束");
// }
//
// /**
// * 模拟脏读
// * @return 处理结果
// */
// @PostMapping("/trans-dirty-b")
// @ApiOperation(value = "脏读模拟B")
// public ResultBean transDirtyB(long id) {
// transService.writeDirtyB(id);
//
// return ResultBean.success("脏读模拟B结束");
// }
//
// /**
// * 模拟不可重复读A
// * @return 处理结果
// */
// @PostMapping("/trans-repeat-a")
// @ApiOperation(value = "不可重复读A")
// public ResultBean transRepeatA(long id) {
// transService.writeRepeatA(id);
//
// return ResultBean.success("不可重复读A结束");
// }
//
// /**
// * 模拟不可重复读B
// * @return 处理结果
// */
// @PostMapping("/trans-repeat-b")
// @ApiOperation(value = "不可重复读B")
// public ResultBean transRepeatB(long id) {
// transService.writeRepeatB(id);
//
// return ResultBean.success("不可重复读B结束");
// }
//
// /**
// * 模拟幻读
// * @return 处理结果
// */
// @PostMapping("/trans-phantom-a")
// @ApiOperation(value = "幻读模拟A")
// public ResultBean transPhantomA(long id,boolean listOrDelete) {
// try {
// transService.writePhantomA(id, listOrDelete);
// }catch(Exception e){
// System.out.println("幻读异常:" + e.getMessage());
// }
//
// return ResultBean.success("幻读模拟A结束");
// }
//
// /**
// * 模拟幻读
// * @return 处理结果
// */
// @PostMapping("/trans-phantom-b")
// @ApiOperation(value = "幻读模拟B")
// public ResultBean transPhantomB() {
// transService.writePhantomB();
//
// return ResultBean.success("幻读模拟B结束");
// }
//
// /********************* 事务传播 *******************/
//
// /**
// * 事务传播-创建新事物
// * @return 处理结果
// */
// @PostMapping("/trans-require-new")
// @ApiOperation(value = "创建新事务")
// public ResultBean transRequireNew() {
// transService.writeRequireNew();
//
// return ResultBean.success("require-new结束");
// }
//
// /**
// * 事务传播-mandatory
// * @return 处理结果
// */
// @PostMapping("/trans-mandatory")
// @ApiOperation(value = "没有事务抛出异常")
// public ResultBean transMandatory() {
// transService.writeTransMandatory();
//
// return ResultBean.success("mandatory结束");
// }
//
// /******************* 事务隔离级别 *******************/
// //调用事务出现的问题,打开事务注释
//
// /********************* 乐观锁 Optimistic lock *******************/
//
// /**
// * 乐观锁A
// * @return 处理结果
// */
// @PostMapping("/trans-optimistic-a")
// @ApiOperation(value = "乐观锁 Optimistic lockA")
// public ResultBean transOptimisticA(long id,int type) {
// transService.writeOptimisticA(id,type);
//
// return ResultBean.success("乐观锁 Optimistic lockA结束");
// }
//
// /**
// * 乐观锁B
// * @return 处理结果
// */
// @PostMapping("/trans-optimistic-b")
// @ApiOperation(value = "乐观锁 Optimistic lockB")
// public ResultBean transOptimisticB(long id,int type) {
// transService.writeOptimisticB(id,type);
//
// return ResultBean.success("乐观锁 Optimistic lockB结束");
// }
//
// /********************* 悲观锁 Pessimistic Lock *******************/
// /**
// * 悲观锁A
// * @return 处理结果
// */
// @PostMapping("/trans-pessimistic-a")
// @ApiOperation(value = "悲观锁 pessimistic lockA")
// public ResultBean transPessimisticA(long id,int type) {
// transService.writePessimisticA(id,type);
//
// return ResultBean.success("悲观锁 pessimistic lockA结束");
// }
//
// /**
// * 悲观锁B
// * @return 处理结果
// */
// @PostMapping("/trans-pessimistic-b")
// @ApiOperation(value = "悲观锁 pessimistic lockB")
// public ResultBean transPessimisticB(long id,int type) {
// transService.writePessimisticB(id,type);
//
// return ResultBean.success("悲观锁 pessimistic lockB结束");
// }
//
// /********************* 事务设计 *******************/
//
// /**
// * 通常(可能出现问题)
// * @return 处理结果
// */
// @PostMapping("/trans-pattern-wrong")
// @ApiOperation(value = "常见事务处理(可能出现并发问题)")
// public ResultBean transPatternWrong(long id,double salary) {
// transService.writePatternWrong(id,salary);
//
// return ResultBean.success("常见事务处理");
// }
//
// /**
// * 线程锁(性能)
// * @return 处理结果
// */
// @PostMapping("/trans-pattern-synchronized")
// @ApiOperation(value = "事务模式-线程锁")
// public ResultBean transPatternSynchron(long id,double salary) {
// transService.writePatternSynchron(id,salary);
//
// return ResultBean.success("事务模式-线程锁");
// }
//
// /**
// * 乐观锁
// * @return 处理结果
// */
// @PostMapping("/trans-pattern-opti")
// @ApiOperation(value = "事务模式-乐观锁")
// public ResultBean transPatternOpti(long id,double salary) {
// transService.writePatternOpti(id,salary);
//
// return ResultBean.success("事务模式-乐观锁");
// }
//
// /**
// * 悲观锁
// * @return 处理结果
// */
// @PostMapping("/trans-pattern-pessi")
// @ApiOperation(value = "事务模式-悲观锁")
// public ResultBean transPatternPessi(long id,double salary) {
// transService.writePatternPessi(id,salary);
//
// return ResultBean.success("事务模式-悲观锁");
// }
//
// /**
// * 属性更新
// * @return 处理结果
// */
// @PostMapping("/trans-pattern-param-update")
// @ApiOperation(value = "事务模式-属性更新")
// public ResultBean transPatternParamUpdate(long id,double salary) {
// transService.writePatternParamUpdate(id,salary);
//
// return ResultBean.success("事务模式-属性更新");
// }
//}

@ -1,72 +1,72 @@
package cn.estsh.i3plus.core.apiservice.daoimpl;
import cn.estsh.i3plus.core.apiservice.dao.ITestDao;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysTool;
import org.apache.commons.lang3.RandomStringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2019-02-20 21:17
* @Modify:
**/
@Service
public class TestDaoImpl implements ITestDao {
public static final Logger LOGGER = LoggerFactory.getLogger(UserPermissionDaoImpl.class);
@Autowired
private EntityManager entityManager;
public static final String TEXT = "党的十八大提出倡导富强、民主、文明、和谐倡导自由、平等、公正、法治倡导爱国、敬业、诚信、友善积极培育和践行社会主义核心价值观。富强、民主、文明、和谐是国家层面的价值目标自由、平等、公正、法治是社会层面的价值取向爱国、敬业、诚信、友善是公民个人层面的价值准则这24个字是社会主义核心价值观的基本内容。";
@Override
public void insertBatch(int num, int waitTime) {
long t1 = System.currentTimeMillis();
SysTool sysTool;
StringBuffer sb = new StringBuffer();
sb.append("insert into sys_tool (id,name,tool_type_name_rdd,tool_type_id,tool_ip,tool_port,tool_description) values ");
SnowflakeIdMaker snf = new SnowflakeIdMaker();
for (int i = 0; i < num * 100; i++) {
sysTool = new SysTool();
sysTool.setId(snf.nextId() + System.currentTimeMillis());
sysTool.setName(RandomStringUtils.random(10, TEXT));
sysTool.setToolTypeNameRdd(RandomStringUtils.random(10, TEXT));
sysTool.setToolTypeId(System.currentTimeMillis());
sysTool.setToolIp(RandomStringUtils.random(10, TEXT));
sysTool.setToolPort((int) (Math.random() * i));
sysTool.setToolDescription(RandomStringUtils.random(10, TEXT));
sysTool.setCreateDatetime(TimeTool.getNowTime(true));
sysTool.setModifyDatetime(TimeTool.getNowTime(true));
sb.append("("+sysTool.getId()+",'"+sysTool.getName()+"','"+sysTool.getToolTypeNameRdd()+"',"+sysTool.getToolTypeId()+",'"
+sysTool.getToolIp()+"',"+sysTool.getToolPort()+",'"+sysTool.getToolDescription()+"'),");
}
sb.deleteCharAt(sb.length() - 1);
Query sql = entityManager.createNativeQuery(sb.toString());
LOGGER.info("插入耗时:" + (System.currentTimeMillis() - t1) + ",操作数:" + sql.executeUpdate());
}
@Override
public List<Object> queryToolAndToolType(Pager pager) {
String hql = "select t,tt from SysTool as t " +
" left join SysToolType as tt on t.toolTypeId = tt.id " +
" where 1=1";
return entityManager.createQuery(hql).setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize()).getResultList();
}
}
//package cn.estsh.i3plus.core.apiservice.daoimpl;
//
//import cn.estsh.i3plus.core.apiservice.dao.ITestDao;
//import cn.estsh.i3plus.platform.common.tool.TimeTool;
//import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
//import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.platform.bean.SysTool;
//import org.apache.commons.lang3.RandomStringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import javax.persistence.EntityManager;
//import javax.persistence.Query;
//import java.util.List;
//
///**
// * @Description : 性能测试
// * @Reference :
// * @Author : yunhao
// * @CreateDate : 2019-02-20 21:17
// * @Modify:
// **/
//@Service
//public class TestDaoImpl implements ITestDao {
// public static final Logger LOGGER = LoggerFactory.getLogger(UserPermissionDaoImpl.class);
//
// @Autowired
// private EntityManager entityManager;
//
// public static final String TEXT = "党的十八大提出倡导富强、民主、文明、和谐倡导自由、平等、公正、法治倡导爱国、敬业、诚信、友善积极培育和践行社会主义核心价值观。富强、民主、文明、和谐是国家层面的价值目标自由、平等、公正、法治是社会层面的价值取向爱国、敬业、诚信、友善是公民个人层面的价值准则这24个字是社会主义核心价值观的基本内容。";
//
// @Override
// public void insertBatch(int num, int waitTime) {
// long t1 = System.currentTimeMillis();
// SysTool sysTool;
// StringBuffer sb = new StringBuffer();
// sb.append("insert into sys_tool (id,name,tool_type_name_rdd,tool_type_id,tool_ip,tool_port,tool_description) values ");
// SnowflakeIdMaker snf = new SnowflakeIdMaker();
// for (int i = 0; i < num * 100; i++) {
// sysTool = new SysTool();
// sysTool.setId(snf.nextId() + System.currentTimeMillis());
// sysTool.setName(RandomStringUtils.random(10, TEXT));
// sysTool.setToolTypeNameRdd(RandomStringUtils.random(10, TEXT));
// sysTool.setToolTypeId(System.currentTimeMillis());
// sysTool.setToolIp(RandomStringUtils.random(10, TEXT));
// sysTool.setToolPort((int) (Math.random() * i));
// sysTool.setToolDescription(RandomStringUtils.random(10, TEXT));
// sysTool.setCreateDatetime(TimeTool.getNowTime(true));
// sysTool.setModifyDatetime(TimeTool.getNowTime(true));
//
// sb.append("("+sysTool.getId()+",'"+sysTool.getName()+"','"+sysTool.getToolTypeNameRdd()+"',"+sysTool.getToolTypeId()+",'"
// +sysTool.getToolIp()+"',"+sysTool.getToolPort()+",'"+sysTool.getToolDescription()+"'),");
//
//
// }
// sb.deleteCharAt(sb.length() - 1);
// Query sql = entityManager.createNativeQuery(sb.toString());
// LOGGER.info("插入耗时:" + (System.currentTimeMillis() - t1) + ",操作数:" + sql.executeUpdate());
// }
//
// @Override
// public List<Object> queryToolAndToolType(Pager pager) {
// String hql = "select t,tt from SysTool as t " +
// " left join SysToolType as tt on t.toolTypeId = tt.id " +
// " where 1=1";
//
// return entityManager.createQuery(hql).setFirstResult(pager.getStartRow())
// .setMaxResults(pager.getPageSize()).getResultList();
// }
//}

@ -40,9 +40,6 @@ public class SysToolService implements ISysToolService {
@Autowired
private SysToolTypeRepository toolTypeRDao;
@Autowired
private ITestDao testDao;
@Override
@ApiOperation(value = "新增硬件信息")
public SysTool insertSysTool(SysTool tool) {
@ -108,7 +105,7 @@ public class SysToolService implements ISysToolService {
@Override
public void insertBatch(int num,int waitTime){
try {
testDao.insertBatch(num,waitTime);
// testDao.insertBatch(num,waitTime);
Thread.sleep(waitTime);
} catch (InterruptedException e) {
e.printStackTrace();

@ -1,123 +1,123 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ITestService;
import cn.estsh.i3plus.core.apiservice.dao.ITestDao;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import cn.estsh.i3plus.pojo.platform.bean.TestTransUser;
import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
import cn.estsh.i3plus.pojo.platform.repository.TestTransUserRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2019-02-20 21:24
* @Modify:
**/
@Service
public class TestService implements ITestService {
public static final Logger LOGGER = LoggerFactory.getLogger(TestService.class);
@Autowired
ITestDao testDao;
@Autowired
private SysUserRepository sysUserRDao;
@Autowired
private TestTransUserRepository testTransUserRepository;
@Override
@ApiOperation(value = "多表查询")
public List<Object> queryToolAndToolType(Pager pager) {
return testDao.queryToolAndToolType(pager);
}
@Override
@ApiOperation(value = "账号分页查询", notes = "组合查询")
public ListPager<SysUser> querySysUserByPager(SysUser user, Pager pager) {
LOGGER.debug("系统用户 SysUser find user :{} page :{}", user, pager);
//生成hql查询语句
String hqlPack = CoreHqlPack.packHqlSysUser(user);
pager = PagerHelper.getPager(pager, sysUserRDao.findByHqlWhereCount(hqlPack));
ListPager<SysUser> list = new ListPager(sysUserRDao.findByHqlWherePage(hqlPack + user.orderBy(), pager), pager);
LOGGER.info("size:{},pager:{}",list.getObjectList().size(),list.getObjectPager());
// DdlPackBean packBean = new DdlPackBean();
// DdlPreparedPack.getNumEqualPackOverZero(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",packBean);
// DdlPreparedPack.getNumEqualPackOverZero(user.getDepartmentId(),"departmentId",packBean);
// DdlPreparedPack.getNumEqualPackOverZero(user.getUserStatus(),"userStatus",packBean);
// DdlPreparedPack.getStringLikerPack(user.getUserName(),"userName",packBean);
// DdlPreparedPack.getStringLikerPack(user.getUserLoginName(),"userLoginName",packBean);
// DdlPreparedPack.getStringLikerPack(user.getUserEmail(),"userEmail",packBean);
// DdlPreparedPack.getStringLikerPack(user.getUserPhone(),"userPhone",packBean);
DdlPackBean packBean = CoreHqlPack.packDdlSysUser(user);
System.out.println("getPackedHql=="+packBean.getPackedHql());
System.out.println("getPackedHqlAll=="+packBean.getPackedHqlAll());
System.out.println("getHqlAppend=="+packBean.getHqlAppend());
System.out.println("getWhereAppend=="+packBean.getWhereAppend());
System.out.println("getOrderByStr=="+packBean.getOrderByStr());
pager = PagerHelper.getPager(pager, sysUserRDao.findByHqlWhereCount(packBean));
list = new ListPager(sysUserRDao.findByHqlWherePage(packBean, pager), pager);
LOGGER.info("size:{},pager:{}",list.getObjectList().size(),list.getObjectPager());
return list;
}
@Override
public List<SysUser> querySysUserByPack(DdlPackBean packBean) {
return sysUserRDao.findByHqlWhere(packBean);
}
@Override
public void write() {
Random ran = new Random(10000);
TestTransUser u = new TestTransUser();
u.setName("na2me" + ran.nextInt(100));
u.setSalary(ran.nextDouble());
System.out.println("插入对象:" + u);
u = testTransUserRepository.insert(u);
System.out.println("插入对象:" + u);
}
@Override
public void insertSysUser(SysUser sysUser) {
sysUserRDao.insert(sysUser);
}
@Override
public void updateSysUser(SysUser sysUser) {
sysUserRDao.update(sysUser);
}
@Override
public List<SysUser> listSysUser() {
return sysUserRDao.list();
}
}
//package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
//
//import cn.estsh.i3plus.core.api.iservice.busi.ITestService;
//import cn.estsh.i3plus.core.apiservice.dao.ITestDao;
//import cn.estsh.i3plus.platform.common.tool.StringTool;
//import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
//import cn.estsh.i3plus.pojo.base.bean.ListPager;
//import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.base.common.PagerHelper;
//import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
//import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
//import cn.estsh.i3plus.pojo.base.tool.HqlPack;
//import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
//import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
//import cn.estsh.i3plus.pojo.platform.bean.SysUser;
//import cn.estsh.i3plus.pojo.platform.bean.TestTransUser;
//import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
//import cn.estsh.i3plus.pojo.platform.repository.TestTransUserRepository;
//import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
//import io.swagger.annotations.ApiOperation;
//import org.apache.commons.lang3.StringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Random;
//
///**
// * @Description :
// * @Reference :
// * @Author : yunhao
// * @CreateDate : 2019-02-20 21:24
// * @Modify:
// **/
//@Service
//public class TestService implements ITestService {
//
// public static final Logger LOGGER = LoggerFactory.getLogger(TestService.class);
//
// @Autowired
// ITestDao testDao;
//
// @Autowired
// private SysUserRepository sysUserRDao;
//
// @Autowired
// private TestTransUserRepository testTransUserRepository;
//
// @Override
// @ApiOperation(value = "多表查询")
// public List<Object> queryToolAndToolType(Pager pager) {
// return testDao.queryToolAndToolType(pager);
// }
//
// @Override
// @ApiOperation(value = "账号分页查询", notes = "组合查询")
// public ListPager<SysUser> querySysUserByPager(SysUser user, Pager pager) {
// LOGGER.debug("系统用户 SysUser find user :{} page :{}", user, pager);
//
// //生成hql查询语句
// String hqlPack = CoreHqlPack.packHqlSysUser(user);
// pager = PagerHelper.getPager(pager, sysUserRDao.findByHqlWhereCount(hqlPack));
// ListPager<SysUser> list = new ListPager(sysUserRDao.findByHqlWherePage(hqlPack + user.orderBy(), pager), pager);
// LOGGER.info("size:{},pager:{}",list.getObjectList().size(),list.getObjectPager());
//
//// DdlPackBean packBean = new DdlPackBean();
//// DdlPreparedPack.getNumEqualPackOverZero(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",packBean);
//// DdlPreparedPack.getNumEqualPackOverZero(user.getDepartmentId(),"departmentId",packBean);
//// DdlPreparedPack.getNumEqualPackOverZero(user.getUserStatus(),"userStatus",packBean);
//// DdlPreparedPack.getStringLikerPack(user.getUserName(),"userName",packBean);
//// DdlPreparedPack.getStringLikerPack(user.getUserLoginName(),"userLoginName",packBean);
//// DdlPreparedPack.getStringLikerPack(user.getUserEmail(),"userEmail",packBean);
//// DdlPreparedPack.getStringLikerPack(user.getUserPhone(),"userPhone",packBean);
//
// DdlPackBean packBean = CoreHqlPack.packDdlSysUser(user);
// System.out.println("getPackedHql=="+packBean.getPackedHql());
// System.out.println("getPackedHqlAll=="+packBean.getPackedHqlAll());
// System.out.println("getHqlAppend=="+packBean.getHqlAppend());
// System.out.println("getWhereAppend=="+packBean.getWhereAppend());
// System.out.println("getOrderByStr=="+packBean.getOrderByStr());
//
// pager = PagerHelper.getPager(pager, sysUserRDao.findByHqlWhereCount(packBean));
// list = new ListPager(sysUserRDao.findByHqlWherePage(packBean, pager), pager);
// LOGGER.info("size:{},pager:{}",list.getObjectList().size(),list.getObjectPager());
//
// return list;
// }
//
// @Override
// public List<SysUser> querySysUserByPack(DdlPackBean packBean) {
// return sysUserRDao.findByHqlWhere(packBean);
// }
//
// @Override
// public void write() {
// Random ran = new Random(10000);
// TestTransUser u = new TestTransUser();
// u.setName("na2me" + ran.nextInt(100));
// u.setSalary(ran.nextDouble());
// System.out.println("插入对象:" + u);
//
// u = testTransUserRepository.insert(u);
// System.out.println("插入对象:" + u);
// }
//
// @Override
// public void insertSysUser(SysUser sysUser) {
// sysUserRDao.insert(sysUser);
// }
//
// @Override
// public void updateSysUser(SysUser sysUser) {
// sysUserRDao.update(sysUser);
// }
//
// @Override
// public List<SysUser> listSysUser() {
// return sysUserRDao.list();
// }
//}

@ -27,214 +27,214 @@ import java.util.regex.Pattern;
* @Modify:
**/
public class ResourceImportUtil {
public static void main(String[] args) {
File file = new File("C:\\Users\\yunha\\Desktop\\资源文件.xlsx");
File sql = new File("C:\\Users\\yunha\\Desktop\\imppResource.sql");
int i = 1;
try {
FileWriter fileWritter = new FileWriter(sql,false);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
SnowflakeIdMaker snowflakeIdMaker = new SnowflakeIdMaker();
Workbook wb = new XSSFWorkbook(file);
// 前端资源
Sheet webSheet = wb.getSheet("前端");
Row row =null;
SysLocaleResource sysLocaleResource = new SysLocaleResource();
for (; i < webSheet.getLastRowNum(); i++) {
row = webSheet.getRow(i);
if(row == null|| row.getCell(2) == null|| row.getCell(3) == null){
continue;
}
System.out.println(snowflakeIdMaker.nextId()+"行:"+i);
row.getCell(2).setCellType(CellType.STRING);
row.getCell(3).setCellType(CellType.STRING);
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("CN/zh");
sysLocaleResource.setLanguageNameRdd("简体中文");
sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.WEB.getValue());
sysLocaleResource.setResourceKey(row.getCell(2).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(2).getStringCellValue());
System.out.println(sql(sysLocaleResource));
if(isContainChinese(row.getCell(2).getStringCellValue())){
bufferWritter.write(sql(sysLocaleResource));
}
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("US/en");
sysLocaleResource.setLanguageNameRdd("English");
sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.WEB.getValue());
sysLocaleResource.setResourceKey(row.getCell(2).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
System.out.println(sql(sysLocaleResource));
bufferWritter.write(sql(sysLocaleResource));
}
// IMPP 资源
Sheet imppSheet = wb.getSheet("IMPP");
i =0;
for (; i < imppSheet.getLastRowNum(); i++) {
row = imppSheet.getRow(i);
//
// public static void main(String[] args) {
// File file = new File("C:\\Users\\yunha\\Desktop\\资源文件.xlsx");
// File sql = new File("C:\\Users\\yunha\\Desktop\\imppResource.sql");
// int i = 1;
// try {
// FileWriter fileWritter = new FileWriter(sql,false);
// BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
//
//
// SnowflakeIdMaker snowflakeIdMaker = new SnowflakeIdMaker();
// Workbook wb = new XSSFWorkbook(file);
// // 前端资源
// Sheet webSheet = wb.getSheet("前端");
// Row row =null;
// SysLocaleResource sysLocaleResource = new SysLocaleResource();
// for (; i < webSheet.getLastRowNum(); i++) {
// row = webSheet.getRow(i);
//
// if(row == null|| row.getCell(2) == null|| row.getCell(3) == null){
// continue;
// }
System.out.println(snowflakeIdMaker.nextId()+" IMPP 行:"+i);
row.getCell(2).setCellType(CellType.STRING);
row.getCell(3).setCellType(CellType.STRING);
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("CN/zh");
sysLocaleResource.setLanguageNameRdd("简体中文");
sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
System.out.println(sql(sysLocaleResource));
if(isContainChinese(row.getCell(3).getStringCellValue())){
bufferWritter.write(sql(sysLocaleResource));
}
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("US/en");
sysLocaleResource.setLanguageNameRdd("English");
sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
System.out.println(sql(sysLocaleResource));
bufferWritter.write(sql(sysLocaleResource));
}
// WMS资源
Sheet wmsSheet = wb.getSheet("WMS");
i =0;
for (; i < wmsSheet.getLastRowNum(); i++) {
row = wmsSheet.getRow(i);
System.out.println(snowflakeIdMaker.nextId()+" WMS 行:"+i);
row.getCell(2).setCellType(CellType.STRING);
row.getCell(3).setCellType(CellType.STRING);
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("CN/zh");
sysLocaleResource.setLanguageNameRdd("简体中文");
sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
System.out.println(sql(sysLocaleResource));
if(isContainChinese(row.getCell(3).getStringCellValue())){
bufferWritter.write(sql(sysLocaleResource));
}
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("US/en");
sysLocaleResource.setLanguageNameRdd("English");
sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
System.out.println(sql(sysLocaleResource));
bufferWritter.write(sql(sysLocaleResource));
}
// ENUM
Sheet enumSheet = wb.getSheet("ENUM");
i =1;
for (; i < enumSheet.getLastRowNum(); i++) {
row = enumSheet.getRow(i);
System.out.println(snowflakeIdMaker.nextId()+" ENUM 行:"+i);
// 模块
row.getCell(0).setCellType(CellType.STRING);
// 枚举名称
row.getCell(1).setCellType(CellType.STRING);
// 枚举项名称
row.getCell(2).setCellType(CellType.STRING);
// 国际化(汉)
row.getCell(3).setCellType(CellType.STRING);
// 国际化(英)
// row.getCell(4).setCellType(CellType.STRING);
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("CN/zh");
sysLocaleResource.setLanguageNameRdd("简体中文");
sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.ENUM.getValue());
sysLocaleResource.setResourceKey(row.getCell(1).getStringCellValue()+":"+row.getCell(2).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
System.out.println(sql(sysLocaleResource));
bufferWritter.write(sql(sysLocaleResource));
sysLocaleResource.setId(snowflakeIdMaker.nextId());
sysLocaleResource.setLanguageCode("US/en");
sysLocaleResource.setLanguageNameRdd("English");
sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.ENUM.getValue());
sysLocaleResource.setResourceKey(row.getCell(1).getStringCellValue()+":"+row.getCell(2).getStringCellValue());
if(row.getCell(4)!= null) {
row.getCell(4).setCellType(CellType.STRING);
sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
}
System.out.println(sql(sysLocaleResource));
bufferWritter.write(sql(sysLocaleResource));
}
// 字典
Sheet dcSheet = wb.getSheet("字典");
i =1;
for (; i < dcSheet.getLastRowNum(); i++) {
row = dcSheet.getRow(i);
System.out.println(snowflakeIdMaker.nextId()+" 字典 行:"+i);
row.getCell(0).setCellType(CellType.STRING);
row.getCell(1).setCellType(CellType.STRING);
row.getCell(2).setCellType(CellType.STRING);
SysDictionary sysDictionary = new SysDictionary();
sysDictionary.setId(Long.parseLong(row.getCell(0).getStringCellValue()));
sysDictionary.setName(row.getCell(1).getStringCellValue());
sysDictionary.setParentNameRdd(row.getCell(2).getStringCellValue());
System.out.println(sql(sysDictionary));
bufferWritter.write(sql(sysDictionary));
}
// 参数
Sheet configSheet = wb.getSheet("参数");
i =1;
for (; i < configSheet.getLastRowNum(); i++) {
row = configSheet.getRow(i);
System.out.println(snowflakeIdMaker.nextId() + " 参数 行:" + i);
row.getCell(0).setCellType(CellType.STRING);
row.getCell(1).setCellType(CellType.STRING);
row.getCell(2).setCellType(CellType.STRING);
SysConfig sysConfig = new SysConfig();
sysConfig.setId(Long.parseLong(row.getCell(0).getStringCellValue()));
sysConfig.setName(row.getCell(1).getStringCellValue());
sysConfig.setConfigDescription(row.getCell(2).getStringCellValue());
System.out.println(sql(sysConfig));
bufferWritter.write(sql(sysConfig));
}
bufferWritter.flush();
bufferWritter.close();
System.out.println("Done");
} catch (IOException e) {
System.out.println(i);
e.printStackTrace();
} catch (InvalidFormatException e) {
System.out.println(i);
e.printStackTrace();
}
}
// System.out.println(snowflakeIdMaker.nextId()+"行:"+i);
// row.getCell(2).setCellType(CellType.STRING);
// row.getCell(3).setCellType(CellType.STRING);
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("CN/zh");
// sysLocaleResource.setLanguageNameRdd("简体中文");
// sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.WEB.getValue());
// sysLocaleResource.setResourceKey(row.getCell(2).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(2).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
// if(isContainChinese(row.getCell(2).getStringCellValue())){
// bufferWritter.write(sql(sysLocaleResource));
// }
//
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("US/en");
// sysLocaleResource.setLanguageNameRdd("English");
// sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.WEB.getValue());
// sysLocaleResource.setResourceKey(row.getCell(2).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
//
// bufferWritter.write(sql(sysLocaleResource));
// }
//
// // IMPP 资源
// Sheet imppSheet = wb.getSheet("IMPP");
// i =0;
// for (; i < imppSheet.getLastRowNum(); i++) {
// row = imppSheet.getRow(i);
//
//// if(row == null|| row.getCell(2) == null|| row.getCell(3) == null){
//// continue;
//// }
// System.out.println(snowflakeIdMaker.nextId()+" IMPP 行:"+i);
// row.getCell(2).setCellType(CellType.STRING);
// row.getCell(3).setCellType(CellType.STRING);
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("CN/zh");
// sysLocaleResource.setLanguageNameRdd("简体中文");
// sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
// sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
//
// if(isContainChinese(row.getCell(3).getStringCellValue())){
// bufferWritter.write(sql(sysLocaleResource));
// }
//
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("US/en");
// sysLocaleResource.setLanguageNameRdd("English");
// sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
// sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
//
// bufferWritter.write(sql(sysLocaleResource));
// }
//
// // WMS资源
// Sheet wmsSheet = wb.getSheet("WMS");
// i =0;
// for (; i < wmsSheet.getLastRowNum(); i++) {
// row = wmsSheet.getRow(i);
//
// System.out.println(snowflakeIdMaker.nextId()+" WMS 行:"+i);
// row.getCell(2).setCellType(CellType.STRING);
// row.getCell(3).setCellType(CellType.STRING);
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("CN/zh");
// sysLocaleResource.setLanguageNameRdd("简体中文");
// sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
// sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
//
// if(isContainChinese(row.getCell(3).getStringCellValue())){
// bufferWritter.write(sql(sysLocaleResource));
// }
//
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("US/en");
// sysLocaleResource.setLanguageNameRdd("English");
// sysLocaleResource.setResourceType( getType(row.getCell(1).getStringCellValue()));
// sysLocaleResource.setResourceKey(row.getCell(3).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
//
// bufferWritter.write(sql(sysLocaleResource));
// }
//
// // ENUM
// Sheet enumSheet = wb.getSheet("ENUM");
// i =1;
// for (; i < enumSheet.getLastRowNum(); i++) {
// row = enumSheet.getRow(i);
//
// System.out.println(snowflakeIdMaker.nextId()+" ENUM 行:"+i);
// // 模块
// row.getCell(0).setCellType(CellType.STRING);
// // 枚举名称
// row.getCell(1).setCellType(CellType.STRING);
// // 枚举项名称
// row.getCell(2).setCellType(CellType.STRING);
// // 国际化(汉)
// row.getCell(3).setCellType(CellType.STRING);
// // 国际化(英)
//// row.getCell(4).setCellType(CellType.STRING);
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("CN/zh");
// sysLocaleResource.setLanguageNameRdd("简体中文");
// sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.ENUM.getValue());
// sysLocaleResource.setResourceKey(row.getCell(1).getStringCellValue()+":"+row.getCell(2).getStringCellValue());
// sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
// System.out.println(sql(sysLocaleResource));
//
// bufferWritter.write(sql(sysLocaleResource));
//
// sysLocaleResource.setId(snowflakeIdMaker.nextId());
// sysLocaleResource.setLanguageCode("US/en");
// sysLocaleResource.setLanguageNameRdd("English");
// sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.ENUM.getValue());
// sysLocaleResource.setResourceKey(row.getCell(1).getStringCellValue()+":"+row.getCell(2).getStringCellValue());
// if(row.getCell(4)!= null) {
// row.getCell(4).setCellType(CellType.STRING);
// sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
// }
// System.out.println(sql(sysLocaleResource));
//
// bufferWritter.write(sql(sysLocaleResource));
// }
//
//
//
// // 字典
// Sheet dcSheet = wb.getSheet("字典");
// i =1;
// for (; i < dcSheet.getLastRowNum(); i++) {
// row = dcSheet.getRow(i);
//
// System.out.println(snowflakeIdMaker.nextId()+" 字典 行:"+i);
// row.getCell(0).setCellType(CellType.STRING);
// row.getCell(1).setCellType(CellType.STRING);
// row.getCell(2).setCellType(CellType.STRING);
// SysDictionary sysDictionary = new SysDictionary();
// sysDictionary.setId(Long.parseLong(row.getCell(0).getStringCellValue()));
// sysDictionary.setName(row.getCell(1).getStringCellValue());
// sysDictionary.setParentNameRdd(row.getCell(2).getStringCellValue());
//
// System.out.println(sql(sysDictionary));
// bufferWritter.write(sql(sysDictionary));
// }
//
// // 参数
// Sheet configSheet = wb.getSheet("参数");
// i =1;
// for (; i < configSheet.getLastRowNum(); i++) {
// row = configSheet.getRow(i);
//
// System.out.println(snowflakeIdMaker.nextId() + " 参数 行:" + i);
// row.getCell(0).setCellType(CellType.STRING);
// row.getCell(1).setCellType(CellType.STRING);
// row.getCell(2).setCellType(CellType.STRING);
//
// SysConfig sysConfig = new SysConfig();
// sysConfig.setId(Long.parseLong(row.getCell(0).getStringCellValue()));
// sysConfig.setName(row.getCell(1).getStringCellValue());
// sysConfig.setConfigDescription(row.getCell(2).getStringCellValue());
//
// System.out.println(sql(sysConfig));
// bufferWritter.write(sql(sysConfig));
// }
//
// bufferWritter.flush();
// bufferWritter.close();
//
// System.out.println("Done");
// } catch (IOException e) {
// System.out.println(i);
// e.printStackTrace();
// } catch (InvalidFormatException e) {
// System.out.println(i);
// e.printStackTrace();
// }
// }
static int getType(String name){
if("错误提示".equals(name.trim())){

@ -1,55 +0,0 @@
package cn.estsh.i3plus.core.apiservice.websocket;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.RandomStringUtils;
import java.util.Random;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2018-11-22 15:02
* @Modify:
**/
public class TestMain {
public static void main(String[] args) {
System.out.println(RandomStringUtils.random(15, true, false));
// StringEscapeUtils.escapeHtml();
/*long workerIdBits = 5L;
long maxWorkerId = -1L ^ (-1L << workerIdBits);
System.out.println("5 --> "+maxWorkerId);
workerIdBits = 6L;
maxWorkerId = -1L ^ (-1L << workerIdBits);
System.out.println("6 --> "+maxWorkerId);
workerIdBits = 8L;
maxWorkerId = -1L ^ (-1L << workerIdBits);
System.out.println("8 --> " + maxWorkerId);*/
int wId = new Random().nextInt(29) + 1;
System.out.println("random id -> "+wId);
SnowflakeIdMaker m = new SnowflakeIdMaker(wId,3);
int i = 0;
long id;
int c = 0;
long l1 = System.currentTimeMillis();
while(i < 1000){
if(m.nextId() < 0) {
System.out.println("======="+m.nextId());
c++;
}else{
//System.out.println(m.nextId());
}
i++;
}
System.out.println("耗时:" + (System.currentTimeMillis()-l1));
System.out.println("====end====error:" + c);
}
}
Loading…
Cancel
Save