Merge remote-tracking branch 'remotes/origin/dev' into test

yun-zuoyi
wei.peng 6 years ago
commit 548c5a7bc8

@ -0,0 +1,22 @@
package cn.estsh.i3plus.core.api.iservice.base;
import cn.estsh.i3plus.pojo.model.report.TemplateModel;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-20 16:04
* @Modify:
**/
public interface IReportService {
@ApiOperation(value = "HQL 入侵检查",notes = "入侵检查")
void checkReportHQL(String hql);
@ApiOperation(value = "HQL 执行",notes = "执行 HQL")
List selectTemplateModel(TemplateModel model) throws Exception;
}

@ -101,6 +101,9 @@ public interface ISysRoleService {
@ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息")
List<SysRole> findSysRoleAll(); List<SysRole> findSysRoleAll();
@ApiOperation(value = "查信角色信息",notes = "查询指定角色信息")
List<SysRole> findSysRoleByInId(Long[] ids);
/** /**
* id * id
* *
@ -118,4 +121,5 @@ public interface ISysRoleService {
*/ */
@ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)")
ListPager<SysRole> querySysRole(SysRole role, Pager pager); ListPager<SysRole> querySysRole(SysRole role, Pager pager);
} }

@ -0,0 +1,24 @@
package cn.estsh.i3plus.core.apiservice.configuration;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2019-01-10 16:53
* @Modify:
**/
@Configuration
public class MqConfig {
@Resource(name="rabbitConnectionFactory")
private ConnectionFactory connectionFactory;
@Autowired
private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry;
}

@ -1,14 +1,20 @@
package cn.estsh.i3plus.core.apiservice.controller; package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig; import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig;
import cn.estsh.i3plus.core.apiservice.thread.CoreDemoThread;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.platform.common.util.QueueConstWords;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.thread.ImppThreadPool;
import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
@ -18,7 +24,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -27,7 +35,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
/** /**
@ -39,7 +49,7 @@ import java.util.concurrent.TimeoutException;
**/ **/
@RestController @RestController
@Api(description="复杂对象服务demo") @Api(description="复杂对象服务demo")
@RequestMapping(PlatformConstWords.BASE_URL + "/demo") @RequestMapping("/demo-redis-mq")
public class DemoRedisMqController extends CoreBaseController{ public class DemoRedisMqController extends CoreBaseController{
private static final Logger LOGGER = LoggerFactory.getLogger(DemoRedisMqController.class); private static final Logger LOGGER = LoggerFactory.getLogger(DemoRedisMqController.class);
@ -57,12 +67,36 @@ public class DemoRedisMqController extends CoreBaseController{
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Autowired
private ISysRoleService sysRoleService;
@Autowired
private RabbitListenerEndpointRegistry rabbitRegistry;
@Autowired
private ConnectionFactory connectionFactory;
/** /**
* mqack * mqack
*/ */
@Autowired @Autowired
private CachingConnectionFactory mqFactory; private CachingConnectionFactory mqFactory;
@GetMapping(value="/get-mq-info")
@ApiOperation(value="获取队列信息")
public ResultBean getMqInfo(){
System.out.println(rabbitRegistry.isAutoStartup() + " " + rabbitRegistry.isRunning());
System.out.println(mqFactory.isPublisherConfirms() + " " + mqFactory.isPublisherReturns());
System.out.println(connectionFactory);
Set<String> ids = rabbitRegistry.getListenerContainerIds();
for(String id : ids){
System.out.println("id = "+id);
}
return new ResultBean(true);
}
@GetMapping(value="/put-cache") @GetMapping(value="/put-cache")
@ApiOperation(value="缓存",notes="放入数据") @ApiOperation(value="缓存",notes="放入数据")
public ResultBean putCache(){ public ResultBean putCache(){
@ -76,13 +110,82 @@ public class DemoRedisMqController extends CoreBaseController{
@GetMapping(value="/get-cache") @GetMapping(value="/get-cache")
@ApiOperation(value="缓存",notes="获取数据") @ApiOperation(value="缓存",notes="获取数据")
public ResultBean getCache(){ public ResultBean getCache(){
//MachineFactory mf = (MachineFactory) redisCore.getObject("machineFactory");
//System.out.println("1===== " + mf);
System.out.println("2===== " + redisCore.getObject("wms")); System.out.println("2===== " + redisCore.getObject("wms"));
return new ResultBean(true); return new ResultBean(true);
} }
@GetMapping(value="/exception-demo")
@ApiOperation(value="异常demo",notes="异常demo")
public ResultBean exceptionDemp() throws IOException, TimeoutException {
String data = "true";
if("true".equals(data)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("aaa操作数据出错")
.setErrorSolution("检查数据完整性")
.build();
}
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/international")
@ApiOperation(value="国际化处理",notes="资源配置文件及国际化")
public ResultBean international() {
Locale locale = LocaleContextHolder.getLocale();
System.out.println(locale.getLanguage() + " " + locale.getCountry());
return new ResultBean(true,"操作成功 " + locale.getLanguage() + " " + locale.getCountry());
}
@Resource(name="redisSession")
private ImppRedis redisSession;
@GetMapping(value="/set-redis")
@ApiOperation(value="setredis")
public ResultBean setRedis(String key,String value) {
//redisSession.putObject(key,value);
//redisCore.putObject(key,value);
ResultBean rs = new ResultBean(true,"yes");
rs.setPager(new Pager(100));
redisSession.putObject("rs",rs);
redisCore.putObject("rs",rs);
return new ResultBean(true,"操作成功 " + key + " : " + value);
}
@GetMapping(value="/get-redis")
@ApiOperation(value="getredis")
public ResultBean getRedis(String key) {
Object d1 = redisSession.getObject(key);
System.out.println("redisSession-d1==" + d1);
Object d2 = redisCore.getObject(key);
if(d1 != null) {
SessionUser sessionUser = AuthUtil.getSessionUser();
System.out.println(sessionUser.toString());
}
System.out.println("redisCore-d2==" + d2);
System.out.println(d1 == null?"null":d1.toString());
System.out.println(d2 == null?"null":d2.toString());
return new ResultBean(true,"操作成功 " + d1 + " : " + d2);
}
@GetMapping(value="/test-thread")
@ApiOperation(value="testThread")
public ResultBean testThread(String param) {
ImppThreadPool.getThreadExcutorService().execute(new CoreDemoThread(param));
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/send-mq") @GetMapping(value="/send-mq")
@ApiOperation(value="队列",notes="发送") @ApiOperation(value="队列",notes="发送")
public ResultBean sendMQ(String data){ public ResultBean sendMQ(String data){
@ -156,7 +259,6 @@ public class DemoRedisMqController extends CoreBaseController{
/** /**
* ackRabbitListener * ackRabbitListener
* @param data
* @return * @return
* @throws IOException * @throws IOException
* @throws TimeoutException * @throws TimeoutException
@ -174,12 +276,12 @@ public class DemoRedisMqController extends CoreBaseController{
@ApiOperation(value="getack队列",notes="接收") @ApiOperation(value="getack队列",notes="接收")
public ResultBean getAckMQ() throws IOException, TimeoutException { public ResultBean getAckMQ() throws IOException, TimeoutException {
Channel channel = this.rabbitTemplate.getConnectionFactory().createConnection().createChannel(false); Channel channel = this.rabbitTemplate.getConnectionFactory().createConnection().createChannel(false);
System.out.println("1====" + channel); LOGGER.info("channel = {}",channel);
String str = (String) rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE); String str = (String) rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE);
System.out.println("2=============="+str); LOGGER.info("str = {}",str);
Message message = rabbitTemplate.receive(I3CoreQueueConfig.DEMO_ACK_QUEUE); Message message = rabbitTemplate.receive(I3CoreQueueConfig.DEMO_ACK_QUEUE);
System.out.println("3=============="+message); LOGGER.info("message = {}",message);
try { try {
/*String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE); /*String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE);
System.out.println("【client】数据接收成功" + data); System.out.println("【client】数据接收成功" + data);
@ -213,64 +315,42 @@ public class DemoRedisMqController extends CoreBaseController{
return new ResultBean(true,"操作成功"); return new ResultBean(true,"操作成功");
} }
@GetMapping(value="/exception-demo") /**
@ApiOperation(value="异常demo",notes="异常demo") * mq
public ResultBean exceptionDemp() throws IOException, TimeoutException { * @return
String data = "true"; * @throws IOException
* @throws TimeoutException
if("true".equals(data)) { */
throw ImppExceptionBuilder.newInstance() @GetMapping(value="/send-mq-role")
.setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode()) @ApiOperation(value="发送角色信息队列",notes="发送")
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) public ResultBean sendRoleMQ(int sendCount) throws IOException, TimeoutException {
.setErrorDetail("aaa操作数据出错") List<SysRole> roleList = sysRoleService.findSysRoleAll();
.setErrorSolution("检查数据完整性") LOGGER.info("共有角色数:{}",roleList.size());
.build();
//发送信息至通用交换机-》扇形交换
SysRole sysRole;
for(int i=0;i<sendCount;i++) {
sysRole = roleList.get(i);
LOGGER.info("{}次发送角色:{}",i,sysRole);
this.rabbitTemplate.convertAndSend(QueueConstWords.QUEUE_EXCHANGE_COMMON,"", sysRole);
} }
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/international")
@ApiOperation(value="国际化处理",notes="资源配置文件及国际化")
public ResultBean international() {
Locale locale = LocaleContextHolder.getLocale();
System.out.println(locale.getLanguage() + " " + locale.getCountry());
return new ResultBean(true,"操作成功 " + locale.getLanguage() + " " + locale.getCountry());
}
@Resource(name="redisSession")
private ImppRedis redisSession;
@GetMapping(value="/set-redis")
@ApiOperation(value="setredis")
public ResultBean setRedis(String key,String value) {
//redisSession.putObject(key,value);
//redisCore.putObject(key,value);
ResultBean rs = new ResultBean(true,"yes"); return new ResultBean(true,"操作成功");
rs.setPager(new Pager(100));
redisSession.putObject("rs",rs);
redisCore.putObject("rs",rs);
return new ResultBean(true,"操作成功 " + key + " : " + value);
} }
@GetMapping(value="/get-redis")
@ApiOperation(value="getredis")
public ResultBean getRedis(String key) {
Object d1 = redisSession.getObject(key);
System.out.println("redisSession-d1==" + d1);
Object d2 = redisCore.getObject(key);
if(d1 != null) { /**
SessionUser sessionUser = AuthUtil.getSessionUser(); * mq
System.out.println(sessionUser.toString()); * @return
} * @throws IOException
* @throws TimeoutException
*/
@GetMapping(value="/send-mq-role-direct")
@ApiOperation(value="发送角色信息队列",notes="发送")
public ResultBean sendRoleMQDirect(String routeKey) throws IOException, TimeoutException {
//通过routekey来控制接收的队列
this.rabbitTemplate.convertAndSend(QueueConstWords.QUEUE_EXCHANGE_DIRECT,routeKey, "发送信息=key" + routeKey);
System.out.println("redisCore-d2==" + d2); return new ResultBean(true,"操作成功");
System.out.println(d1 == null?"null":d1.toString());
System.out.println(d2 == null?"null":d2.toString());
return new ResultBean(true,"操作成功 " + d1 + " : " + d2);
} }
} }

@ -137,6 +137,8 @@ public class PersonnelController extends CoreBaseController {
personnelService.checkSysUserPassword(model.getUserLoginPassword()); personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user); personnelService.checkSysUserOnly(user);
SysUserInfo userInfo = personnelService.getSysUserInfoById(info.getId());
SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId())); SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId()));
if(infoDepartment == null){ if(infoDepartment == null){
ValidatorBean.checkNotNull(infoDepartment,"用户主部门不存在"); ValidatorBean.checkNotNull(infoDepartment,"用户主部门不存在");
@ -153,13 +155,35 @@ public class PersonnelController extends CoreBaseController {
} }
SysOrganize userOrganize = personnelService.getSysOrganizeById(userDepartment.getOrganizeId()); SysOrganize userOrganize = personnelService.getSysOrganizeById(userDepartment.getOrganizeId());
info.setDepartmentId(infoDepartment.getId()); userInfo.setDepartmentId(infoDepartment.getId());
info.setDepartmentNameRdd(infoDepartment.getName()); userInfo.setDepartmentNameRdd(infoDepartment.getName());
info.setOrganizeId(infoOrganize.getId()); userInfo.setOrganizeId(infoOrganize.getId());
info.setOrganizeNameRdd(infoOrganize.getName()); userInfo.setOrganizeNameRdd(infoOrganize.getName());
info.setOrganizeCode(infoOrganize.getOrganizeCode()); userInfo.setOrganizeCode(infoOrganize.getOrganizeCode());
info.setPositionId(position.getId()); userInfo.setPositionId(position.getId());
info.setPositionNameRdd(position.getName()); userInfo.setPositionNameRdd(position.getName());
userInfo.setName(info.getName());
userInfo.setUserEmpNo(info.getUserEmpNo());
userInfo.setUserJoinDate(info.getUserJoinDate());
userInfo.setUserResignationDate(info.getUserResignationDate());
userInfo.setUserCardType(info.getUserCardType());
userInfo.setUserCardNumber(info.getUserCardNumber());
userInfo.setUserSchool(info.getUserSchool());
userInfo.setUserSchoolProfession(info.getUserSchoolProfession());
userInfo.setUserSchoolLeaveDate(info.getUserSchoolLeaveDate());
userInfo.setUserSchoolEducation(info.getUserSchoolEducation());
userInfo.setUserSex(info.getUserSex());
userInfo.setUserBirthplace(info.getUserBirthplace());
userInfo.setUserRace(info.getUserRace());
userInfo.setUserMarriage(info.getUserMarriage());
userInfo.setUserEmergencyContact(info.getUserEmergencyContact());
userInfo.setUserEmergencyPhone(info.getUserEmergencyPhone());
userInfo.setUserFamilyAddress(info.getUserFamilyAddress());
userInfo.setUserBornDate(info.getUserBornDate());
userInfo.setUserHobby(info.getUserHobby());
userInfo.setUserPoliticalStatus(info.getUserPoliticalStatus());
userInfo.setUserGrade(info.getUserGrade());
userInfo.setUserEmployeeType(info.getUserEmployeeType());
user.setDepartmentId(userDepartment.getId()); user.setDepartmentId(userDepartment.getId());
user.setDepartmentNameRdd(userDepartment.getName()); user.setDepartmentNameRdd(userDepartment.getName());
@ -167,7 +191,7 @@ public class PersonnelController extends CoreBaseController {
user.setOrganizeNameRdd(userOrganize.getName()); user.setOrganizeNameRdd(userOrganize.getName());
// 关系 刷新 // 关系 刷新
refreshRef(user, info, model); refreshRef(user, userInfo, model);
// 更新 密码 // 更新 密码
refreshSysUserPassword(user); refreshSysUserPassword(user);

@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.MailConfig;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.base.controller.CoreBaseController;
@ -230,17 +231,23 @@ public class SysConfigController extends CoreBaseController {
} }
} }
@GetMapping("/send-test-mail/{to}") @GetMapping("/send-test-mail")
@ApiOperation(value = "邮件测试") @ApiOperation(value = "邮件测试")
public ResultBean sendTestMail(@PathVariable("to") String to){ public ResultBean sendTestMail(MailConfig mailConfig){
try { try {
ValidatorBean.checkNotNull(to,"收件人不能为空"); ValidatorBean.beginValid(mailConfig)
.notNull("mailHost",mailConfig.getMailHost())
.notNull("mailPort",mailConfig.getMailPort())
.notNull("mailUser",mailConfig.getMailUser())
.notNull("mailPassword",mailConfig.getMailPassword())
.notNull("mailNick",mailConfig.getMailNick())
.notNull("testTo",mailConfig.getTestTo());
mailUtil.init(); mailUtil.init(mailConfig);
mailUtil.setSubject("测试邮件"); mailUtil.setSubject("测试邮件");
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getDescription()); mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getDescription());
mailUtil.setBody("测试邮件"); mailUtil.setBody("测试邮件");
mailUtil.setTo(to); mailUtil.setTo(mailConfig.getTestTo());
mailUtil.send(); mailUtil.send();
return ResultBean.success("测试邮件已发送").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("测试邮件已发送").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){ }catch(ImppBusiException busExcep){

@ -3,11 +3,14 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
@ -58,7 +61,9 @@ public class SysFileController extends CoreBaseController{
public ResultBean updateSysFile(SysFile sysFile){ public ResultBean updateSysFile(SysFile sysFile){
try { try {
// 条件验证 // 条件验证
ValidatorBean.beginValid(sysFile).notNull("name",sysFile.getName()); ValidatorBean.beginValid(sysFile)
.notNull("id",sysFile.getId())
.notNull("name",sysFile.getName());
sysFileService.updateSysFile(sysFile); sysFileService.updateSysFile(sysFile);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -242,4 +247,39 @@ public class SysFileController extends CoreBaseController{
} }
} }
@PostMapping(value = "/insert")
@ApiOperation(value = "新增文件资源",notes = "新增文件资源")
public ResultBean insertSysFile(@RequestBody SysFile sysFile){
try {
// 条件验证
ValidatorBean.beginValid(sysFile)
.notNull("dfsFileName",sysFile.getDfsFileName())
.notNull("dfsGroupName",sysFile.getDfsGroupName())
.notNull("fileOriginalName",sysFile.getFileOriginalName());
// 文件类型验证
SysDictionary dictionary = dictionaryService.getSysDictionaryByParentCodeAndCode(BaseConstWords.DICTIONARY_FILE_TYPE,
StringTool.getStringFileSuffix(sysFile.getFileOriginalName(),false));
if(dictionary == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode())
.setErrorDetail("文件格式不支持")
.setErrorSolution("请到字典管理中添加文件类型")
.build();
}
// 初始化数据
sysFile.setFileTypeId(dictionary.getId());
sysFile.setFileTypeName(dictionary.getName());
sysFile = sysFileService.insertSysFile(sysFile);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile);
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
} }

@ -115,6 +115,19 @@ public class SysRoleController extends CoreBaseController{
} }
} }
@GetMapping(value = "/find-id-list")
@ApiOperation(value = "查询所有角色", notes = "查询所有系统角色")
public ResultBean findIdList(String[] ids) {
try {
List<SysRole> list = sysRoleService.findSysRoleAll();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/find-ref-menu/{roleId}") @GetMapping(value = "/find-ref-menu/{roleId}")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean findRefRoleMenu(@PathVariable("roleId") String roleId) { public ResultBean findRefRoleMenu(@PathVariable("roleId") String roleId) {

@ -1,21 +1,31 @@
package cn.estsh.i3plus.core.apiservice.controller.report; package cn.estsh.i3plus.core.apiservice.controller.report;
import cn.estsh.i3plus.core.api.iservice.base.IReportService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.platform.common.tool.ClassTool; import cn.estsh.i3plus.platform.common.tool.ClassTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.common.ClassFieldModel; import cn.estsh.i3plus.pojo.model.common.ClassFieldModel;
import cn.estsh.i3plus.pojo.model.common.ClassModel; import cn.estsh.i3plus.pojo.model.common.ClassModel;
import cn.estsh.i3plus.pojo.model.report.TemplateModel;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.QueryException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@ -23,7 +33,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
@RestController @RestController
@RequestMapping("/impp/cloud/report") @RequestMapping(PlatformConstWords.BASE_URL + "/cloud/report")
@Api(description="报表服务") @Api(description="报表服务")
public class CoreReportController { public class CoreReportController {
@ -32,59 +42,145 @@ public class CoreReportController {
@Value("${impp.app.pojo-packages}.bean") @Value("${impp.app.pojo-packages}.bean")
public String pojoPackagePath; public String pojoPackagePath;
@GetMapping(value="/list-clz") @Autowired
private ISysRoleService roleService;
@Autowired
private IReportService reportService;
@GetMapping(value = "/role/list")
@ApiOperation(value = "查询所有角色", notes = "查询所有系统角色")
public ResultBean findAll() {
try {
List<SysRole> list = roleService.findSysRoleAll();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping(value = "/role/list/ids")
@ApiOperation(value = "查询所有角色", notes = "查询所有系统角色")
public ResultBean findRoleByIdList(@RequestBody String[] ids) {
try {
List<SysRole> list = roleService.findSysRoleByInId(StringTool.getArrayLong(ids));
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping(value="/template-model/run")
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类") @ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
public BaseResultBean<ClassModel> listClz() { public ResultBean runTemplateModel(@RequestBody TemplateModel model){
LOGGER.info("【执行TemplateModel】TemplateModel{}",model);
try {
List list = reportService.selectTemplateModel(model);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
}catch (Exception e){
return ResultBean.fail("操作失败").setMsg(e.getMessage()).setErrorMsg(e.getLocalizedMessage()
);
}
}
@GetMapping(value="/clz-model/list")
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
public BaseResultBean<ClassModel> listClzModel() {
LOGGER.info("【类路径:{}】",pojoPackagePath); LOGGER.info("【类路径:{}】",pojoPackagePath);
List<String> clzNameList = ClassTool.getClassName(pojoPackagePath, true); List<String> clzNameList = ClassTool.getClassName(pojoPackagePath, true);
List<ClassModel> clzList = new ArrayList<>(clzNameList.size()); List<ClassModel> clzList = new ArrayList<>(clzNameList.size());
Class tmpClz = null;
Api api = null;
ClassModel classModel = null;
for(String clzName : clzNameList){ for(String clzName : clzNameList){
try { ClassModel model = getClassModel(clzName);
//注册类 if(model != null){
tmpClz = Class.forName(clzName); if(StringUtils.isNotBlank(model.getClzFullName())){
List<ClassFieldModel> list = getClassFieldModel(model.getClzFullName());
classModel = new ClassModel(); model.setFieldList(list);
classModel.setPackageName(pojoPackagePath);
classModel.setClzFullName(clzName);
classModel.setClzSimpleName(tmpClz.getSimpleName());
api = (Api) tmpClz.getAnnotation(Api.class);
if(api != null) {
classModel.setClzDesc(api.value());
clzList.add(classModel);
}else{
//classModel.setClzDesc(clzName);
LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz);
} }
} catch (ClassNotFoundException e) { clzList.add(model);
LOGGER.error("【类:{}注册出错】",clzName,clzName,e);
} }
} }
return ResultBean.success("获取类:" + clzList.size()).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(clzList);
}
@GetMapping(value="/clz-model/{classPath}")
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
public BaseResultBean<ClassModel> getClzModel(@PathVariable("classPath") String classPath) {
LOGGER.info("【类路径:{}】",pojoPackagePath);
ClassModel model = getClassModel(classPath);
if(model != null){
if(StringUtils.isNotBlank(model.getClzFullName())){
List<ClassFieldModel> list = getClassFieldModel(model.getClzFullName());
model.setFieldList(list);
}
}
return ResultBean.success("获取类:" + model.getClzDesc()).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(model);
}
@GetMapping(value="/list-clz")
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
public BaseResultBean<ClassModel> listClz() {
LOGGER.info("【类路径:{}】",pojoPackagePath);
List<String> clzNameList = ClassTool.getClassName(pojoPackagePath, true);
List<ClassModel> clzList = new ArrayList<>(clzNameList.size());
for(String clzName : clzNameList){
clzList.add(getClassModel(clzName));
}
return ResultBean.success("获取类:" + clzList.size()) return ResultBean.success("获取类:" + clzList.size())
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(clzList); .setResultList(clzList);
} }
@GetMapping(value="/pojo-property") @GetMapping(value="/pojo-property")
@ApiOperation(value="查询类所有属性") @ApiOperation(value="查询类所有属性")
public ResultBean<ClassFieldModel> testWms(@RequestParam("clzFullName") String clzFullName) { public ResultBean<ClassFieldModel> testWms(@RequestParam("clzFullName") String clzFullName) {
LOGGER.info("【查询类属性:{}】",clzFullName); LOGGER.info("【查询类属性:{}】",clzFullName);
List<ClassFieldModel> fieldModelList = getClassFieldModel(clzFullName);
return ResultBean.success("获取属性:" + fieldModelList.size())
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(fieldModelList);
}
ApiParam apiParam = null; private ClassModel getClassModel(String clzName){
Transient tran = null; try {
//注册类
Class tmpClz = Class.forName(clzName);
ClassModel classModel = new ClassModel();
classModel.setServerId(CommonEnumUtil.SOFT_TYPE.CORE.getValue());
classModel.setServerName(CommonEnumUtil.SOFT_TYPE.CORE.getCode());
classModel.setPackageName(pojoPackagePath);
classModel.setClzFullName(clzName);
classModel.setClzSimpleName(tmpClz.getSimpleName());
Api api = (Api) tmpClz.getAnnotation(Api.class);
if(api != null) {
classModel.setClzDesc(api.value());
return classModel;
}else{
LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz);
}
} catch (ClassNotFoundException e) {
LOGGER.error("【类:{}注册出错】",clzName,clzName,e);
}
return null;
}
private List<ClassFieldModel> getClassFieldModel(String clzFullName){
List<ClassFieldModel> fieldModelList = new ArrayList<>(); List<ClassFieldModel> fieldModelList = new ArrayList<>();
try { try {
Class tmpClz = Class.forName(clzFullName); Class tmpClz = Class.forName(clzFullName);
List<Field> fields = ClassTool.getAllFieldsList(tmpClz); List<Field> fields = ClassTool.getAllFieldsList(tmpClz);
ClassFieldModel fieldModel = null; ClassFieldModel fieldModel = null;
ApiParam apiParam;
Transient tran;
for(Field f : fields){ for(Field f : fields){
tran = f.getAnnotation(Transient.class); tran = f.getAnnotation(Transient.class);
if(tran == null) { if(tran == null && !"serialVersionUID".equals(f.getName())) {
// 临时对象不需要处理 // 临时对象不需要处理
fieldModel = new ClassFieldModel(); fieldModel = new ClassFieldModel();
fieldModel.setPackageName(pojoPackagePath); fieldModel.setPackageName(pojoPackagePath);
@ -95,12 +191,8 @@ public class CoreReportController {
apiParam = f.getAnnotation(ApiParam.class); apiParam = f.getAnnotation(ApiParam.class);
if(apiParam != null){ if(apiParam != null){
fieldModel.setFieldDesc(apiParam.value()); fieldModel.setFieldDesc(apiParam.value());
fieldModelList.add(fieldModel);
}else{
//fieldModel.setFieldDesc(fieldModel.getFieldName());
LOGGER.warn("不添加属性:{},因为没有添加api描述", f.getName());
} }
fieldModelList.add(fieldModel);
}else{ }else{
LOGGER.info("【临时属性:{}】",f.getName()); LOGGER.info("【临时属性:{}】",f.getName());
} }
@ -108,10 +200,7 @@ public class CoreReportController {
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
LOGGER.error("【类:{}实例化出错】",clzFullName,e); LOGGER.error("【类:{}实例化出错】",clzFullName,e);
} }
return fieldModelList;
return ResultBean.success("获取属性:" + fieldModelList.size())
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(fieldModelList);
} }
} }

@ -0,0 +1,16 @@
package cn.estsh.i3plus.core.apiservice.dao;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-20 16:11
* @Modify:
**/
public interface IReportDao {
List<Object[]> findByHqlObjects(String hql, String[] paramName, Object[] paramValue) throws Exception;
}

@ -0,0 +1,41 @@
package cn.estsh.i3plus.core.apiservice.daoimpl;
import cn.estsh.i3plus.core.apiservice.dao.IReportDao;
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 : Adair Peng
* @CreateDate : 2019-01-20 16:14
* @Modify:
**/
@Service
public class ReportDaoImpl implements IReportDao {
public static final Logger LOGGER = LoggerFactory.getLogger(ReportDaoImpl.class);
@Autowired
private EntityManager entityManager;
@Override
public List<Object[]> findByHqlObjects(String hql, String[] paramName, Object[] paramValue) throws Exception {
LOGGER.info(" find HQL:{} paramName:{} paramValue:{}", hql, paramName, paramValue);
Query queryObject = entityManager.createQuery(hql);
if(paramName != null && paramValue != null){
for (int i = 0; i < paramName.length; i++) {
if (paramValue[i] != null) {
queryObject.setParameter(paramName[i], paramValue[i].toString());
}
}
}
return queryObject.getResultList();
}
}

@ -0,0 +1,87 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.platform.common.util.QueueConstWords;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import java.io.IOException;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2019-01-14 17:01
* @Modify:
**/
@Component
public class CommonQueueReceive {
private static final Logger LOGGER = LoggerFactory.getLogger(CommonQueueReceive.class);
/**
*
* @param channel
* @param message
*/
@RabbitListener(bindings ={
//绑定队列
@QueueBinding(value = @Queue(value = QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON),
//绑定交换
exchange = @Exchange(type=ExchangeTypes.FANOUT,value = QueueConstWords.QUEUE_EXCHANGE_COMMON))
})
public void commonQueue(Object object, Channel channel, Message message){
try {
LOGGER.info("【{}】数据接收成功:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,object);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【{}】处理出错,丢弃:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
/**
*
* @param channel
* @param message
*/
@RabbitListener(bindings ={
//绑定队列
@QueueBinding(value = @Queue(value = QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.DIRECT_EXCHANGE_KEY_ROLE),
//绑定交换
exchange = @Exchange(type=ExchangeTypes.DIRECT,value = QueueConstWords.QUEUE_EXCHANGE_DIRECT),
key = QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.DIRECT_EXCHANGE_KEY_ROLE)
})
public void directQueue(Object object, Channel channel, Message message){
try {
LOGGER.info("【{}】数据接收成功:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,object);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【{}】处理出错,丢弃:{}",QueueConstWords.CORE_QUEUE_PREFIX + QueueConstWords.QUEUE_COMMON,e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}

@ -1,8 +1,9 @@
package cn.estsh.i3plus.core.apiservice.mq; package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.*;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -26,7 +27,6 @@ public class I3CoreQueueConfig {
return new Queue(IMPP_MESSAGE_QUEUE); return new Queue(IMPP_MESSAGE_QUEUE);
} }
/*********** 队列demo ***********/ /*********** 队列demo ***********/
public static final String DEMO_STR_QUEUE = "demo_str_queue"; public static final String DEMO_STR_QUEUE = "demo_str_queue";

@ -59,7 +59,7 @@ public class I3CoreQueueReceiver {
System.out.println("强转对象:" + data); System.out.println("强转对象:" + data);
}*/ }*/
@RabbitListener(queues = I3CoreQueueConfig.DEMO_RETURN_QUEUE) /*@RabbitListener(queues = I3CoreQueueConfig.DEMO_RETURN_QUEUE)
public Message processReturn(String data, Channel channel, Message message) { public Message processReturn(String data, Channel channel, Message message) {
try { try {
System.out.println("【client】数据接收成功" + data); System.out.println("【client】数据接收成功" + data);
@ -96,10 +96,10 @@ public class I3CoreQueueReceiver {
try { try {
System.out.println("【client】数据接收成功" + data); System.out.println("【client】数据接收成功" + data);
/*if(data.startsWith("ack")){ *//*if(data.startsWith("ack")){
System.out.println("【client】数据抛出异常"); System.out.println("【client】数据抛出异常");
throw new RuntimeException("【队列抛出异常】" + data); throw new RuntimeException("【队列抛出异常】" + data);
}*/ }*//*
//在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发 //在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) { } catch (IOException e) {
@ -114,5 +114,5 @@ public class I3CoreQueueReceiver {
e1.printStackTrace(); e1.printStackTrace();
} }
} }
} }*/
} }

@ -60,7 +60,7 @@ public class MessageMailQueueReceiver {
mailUtil.setBody(msg.getMessageContent()); mailUtil.setBody(msg.getMessageContent());
mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue()); mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue());
//信息已处理 //信息已处理
// mailUtil.send(); mailUtil.send();
}else { }else {
// 收件人信息 // 收件人信息
@ -91,7 +91,7 @@ public class MessageMailQueueReceiver {
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent()); mailUtil.setBody(msg.getMessageContent());
mailUtil.setTo(sysUser.getUserEmail()); mailUtil.setTo(sysUser.getUserEmail());
// mailUtil.send(); mailUtil.send();
} }
msg.setMessageSenderNameRdd(StringUtils.join(receiverName, ",")); msg.setMessageSenderNameRdd(StringUtils.join(receiverName, ","));

@ -22,7 +22,6 @@ public class DataSimpleService implements IDataSimpleService {
@Override @Override
public void saveMachineFactory(MachineFactory machineFactory) { public void saveMachineFactory(MachineFactory machineFactory) {
//生成主键 //生成主键
machineFactory.setId(new SnowflakeIdMaker().nextId());
machineFactoryDao.save(machineFactory); machineFactoryDao.save(machineFactory);
}*/ }*/
/* /*

@ -0,0 +1,43 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.IReportService;
import cn.estsh.i3plus.core.apiservice.dao.IReportDao;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.report.TemplateModel;
import org.hibernate.QueryException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-20 16:06
* @Modify:
**/
@Service
public class ReportService implements IReportService {
private Logger LOGGER = LoggerFactory.getLogger(ReportService.class);
@Autowired
private IReportDao reportDao;
@Override
public void checkReportHQL(String hql) {
LOGGER.info("报表 HQL 注入检查:{}",hql);
// HQL 非法入侵检查
hql = HqlPack.getSafeParam(hql);
}
@Override
public List selectTemplateModel(TemplateModel model) throws Exception{
LOGGER.info("报表执行 model :{}",model);
return reportDao.findByHqlObjects(model.getHql(), model.getParamName(), model.getParamValue());
}
}

@ -2,7 +2,6 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -41,7 +40,7 @@ public class SysRoleService implements ISysRoleService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysRoleService.class); public static final Logger LOGGER = LoggerFactory.getLogger(SysRoleService.class);
@Autowired @Autowired
private SysRoleRepository sysRoleRDao; private SysRoleRepository roleRDao;
@Autowired @Autowired
private SysMenuRepository sysMenuRDao; private SysMenuRepository sysMenuRDao;
@ -56,7 +55,7 @@ public class SysRoleService implements ISysRoleService {
@ApiOperation(value = "更新角色信息",notes = "更新角色信息") @ApiOperation(value = "更新角色信息",notes = "更新角色信息")
public void updateSysRole(SysRole sysRole) { public void updateSysRole(SysRole sysRole) {
LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); LOGGER.info("系统角色 SYS_ROLE :{}", sysRole);
sysRoleRDao.update(sysRole); roleRDao.update(sysRole);
// 更新冗余信息 // 更新冗余信息
personnelService.refreshUpdateSysRoleRdd(sysRole.getId()); personnelService.refreshUpdateSysRoleRdd(sysRole.getId());
} }
@ -65,10 +64,10 @@ public class SysRoleService implements ISysRoleService {
@ApiOperation(value = "更新角色信息",notes = "更新角色状态信息") @ApiOperation(value = "更新角色信息",notes = "更新角色状态信息")
public void updateSysRoleStatus(Long id, int status, SessionUser user) { public void updateSysRoleStatus(Long id, int status, SessionUser user) {
LOGGER.info("系统角色 SYS_MENU id:{} status:{} user:{}", id,status,user); LOGGER.info("系统角色 SYS_MENU id:{} status:{} user:{}", id,status,user);
SysRole role = sysRoleRDao.getById(id); SysRole role = roleRDao.getById(id);
role.setRoleStatus(status); role.setRoleStatus(status);
role.setModifyUser(user.getUserName()); role.setModifyUser(user.getUserName());
sysRoleRDao.update(role); roleRDao.update(role);
} }
@Override @Override
@ -78,7 +77,7 @@ public class SysRoleService implements ISysRoleService {
StringBuffer where = new StringBuffer(); StringBuffer where = new StringBuffer();
HqlPack.getInPack(StringUtils.join( ids,","), "id", where); HqlPack.getInPack(StringUtils.join( ids,","), "id", where);
sysRoleRDao.updateByHqlWhere(where.toString(), "roleStatus", status); roleRDao.updateByHqlWhere(where.toString(), "roleStatus", status);
} }
@Override @Override
@ -86,14 +85,14 @@ public class SysRoleService implements ISysRoleService {
public void deleteSysRoleById(Long id) { public void deleteSysRoleById(Long id) {
LOGGER.info("系统角色 SYS_ROLE Key:{}", id); LOGGER.info("系统角色 SYS_ROLE Key:{}", id);
refRoleMenuRDao.deleteByProperty("roleId",id); refRoleMenuRDao.deleteByProperty("roleId",id);
sysRoleRDao.deleteById(id); roleRDao.deleteById(id);
} }
@Override @Override
@ApiOperation(value = "删除角色信息",notes = "根据ID 批量删除角色信息") @ApiOperation(value = "删除角色信息",notes = "根据ID 批量删除角色信息")
public void deleteSysRoleByIds(Long[] ids) { public void deleteSysRoleByIds(Long[] ids) {
LOGGER.info("系统角色 SYS_ROLE ids :{}", ids); LOGGER.info("系统角色 SYS_ROLE ids :{}", ids);
long positionCount = sysRoleRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids)); long positionCount = roleRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids));
if (positionCount >= 1) { if (positionCount >= 1) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
@ -103,7 +102,7 @@ public class SysRoleService implements ISysRoleService {
.build(); .build();
}else { }else {
refRoleMenuRDao.deleteByPropertyIn("roleId",ids); refRoleMenuRDao.deleteByPropertyIn("roleId",ids);
sysRoleRDao.deleteByIds(ids); roleRDao.deleteByIds(ids);
} }
} }
@ -111,7 +110,7 @@ public class SysRoleService implements ISysRoleService {
@ApiOperation(value = "新增角色信息") @ApiOperation(value = "新增角色信息")
public SysRole insertSysRole(SysRole sysRole) { public SysRole insertSysRole(SysRole sysRole) {
LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); LOGGER.info("系统角色 SYS_ROLE :{}", sysRole);
return sysRoleRDao.insert(sysRole); return roleRDao.insert(sysRole);
} }
@Override @Override
@ -130,7 +129,7 @@ public class SysRoleService implements ISysRoleService {
LOGGER.info("系统角色 List<SysMenu> :{}", ids); LOGGER.info("系统角色 List<SysMenu> :{}", ids);
String roleWhere = CoreHqlPack.packHqlIds("id", roleIds); String roleWhere = CoreHqlPack.packHqlIds("id", roleIds);
List<SysRole> roleList = sysRoleRDao.findByHqlWhere(roleWhere); List<SysRole> roleList = roleRDao.findByHqlWhere(roleWhere);
if(roleList != null && roleList.size() > 0){ if(roleList != null && roleList.size() > 0){
List<String> moduleListRdd = new ArrayList<>(); List<String> moduleListRdd = new ArrayList<>();
@ -190,7 +189,7 @@ public class SysRoleService implements ISysRoleService {
} }
refRoleMenuRDao.saveAll(refs); refRoleMenuRDao.saveAll(refs);
sysRoleRDao.saveAll(roleList); roleRDao.saveAll(roleList);
}else { }else {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
@ -215,14 +214,23 @@ public class SysRoleService implements ISysRoleService {
@ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息")
public List<SysRole> findSysRoleAll() { public List<SysRole> findSysRoleAll() {
LOGGER.info("系统角色 SYS_ROLE find All"); LOGGER.info("系统角色 SYS_ROLE find All");
return sysRoleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); return roleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()});
}
@Override
@ApiOperation(value = "查信角色信息",notes = "查询指定角色信息")
public List<SysRole> findSysRoleByInId(Long[] ids) {
LOGGER.info("系统角色 SYS_ROLE find In Id");
StringBuffer findWhere = new StringBuffer();
HqlPack.getInPack(StringUtils.join(ids,","),"id",findWhere);
return roleRDao.findByHqlWhere(findWhere.toString());
} }
@Override @Override
@ApiOperation(value = "查信角色信息",notes = "根据 ID 查询角色信息") @ApiOperation(value = "查信角色信息",notes = "根据 ID 查询角色信息")
public SysRole getSysRoleById(Long id) { public SysRole getSysRoleById(Long id) {
LOGGER.info("系统角色 SYS_ROLE find id:{}", id); LOGGER.info("系统角色 SYS_ROLE find id:{}", id);
return sysRoleRDao.getOne(id); return roleRDao.getOne(id);
} }
@Override @Override
@ -232,14 +240,14 @@ public class SysRoleService implements ISysRoleService {
if (role == null) { if (role == null) {
//不传入实体对象,查询所有 //不传入实体对象,查询所有
int count = sysRoleRDao.listCount(); int count = roleRDao.listCount();
pager = PagerHelper.getPager(pager, count); pager = PagerHelper.getPager(pager, count);
return new ListPager(sysRoleRDao.listPager(pager), pager); return new ListPager(roleRDao.listPager(pager), pager);
} else { } else {
//生成hql查询语句 //生成hql查询语句
String hqlPack = CoreHqlPack.packHqlSysRole(role); String hqlPack = CoreHqlPack.packHqlSysRole(role);
pager = PagerHelper.getPager(pager, sysRoleRDao.findByHqlWhereCount(hqlPack)); pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(hqlPack));
return new ListPager(sysRoleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager); return new ListPager(roleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager);
} }
} }
} }

@ -0,0 +1,50 @@
package cn.estsh.i3plus.core.apiservice.thread;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.icloud.core.sdk.ICorePersonnelCloud;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.impp.framework.boot.thread.BaseThread;
import cn.estsh.impp.framework.boot.thread.ImppThreadPool;
import cn.estsh.impp.framework.boot.util.ServletContextUtil;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* @Description : 线
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2019-01-14 15:26
* @Modify:
**/
public class CoreDemoThread extends BaseThread {
private static final Logger LOGGER = LoggerFactory.getLogger(CoreDemoThread.class);
private String param;
public CoreDemoThread(String param){
this.param = param;
IPersonnelService personnelService = (IPersonnelService) SpringContextsUtil.getBean(IPersonnelService.class);
LOGGER.info("spring容器获取服务{}" + personnelService);
WebApplicationContext webAppContext = WebApplicationContextUtils.getWebApplicationContext(ServletContextUtil.getServletContext());
ISysMessageService sysMessageService = webAppContext.getBean(ISysMessageService.class);
LOGGER.info("servlet容器获取服务{}" + sysMessageService);
}
@Override
public boolean doRun() {
//处理业务逻辑
System.out.println("线程执行:获取参数" + param);
return true;
}
//使用方式
public static void main(String[] args){
ImppThreadPool.getThreadExcutorService().execute(new CoreDemoThread("thread param"));
}
}

@ -12,7 +12,6 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysTool;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
@ -175,7 +174,7 @@ public class ExcelUtil {
} finally { } finally {
try { try {
workbook.close(); workbook.close();
fos.close();; fos.close();
} catch (IOException e) { } catch (IOException e) {
LOGGER.error("IOException!", e); LOGGER.error("IOException!", e);
} }

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.util;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.MailConfig;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -58,6 +59,18 @@ public class MailUtil {
return this; return this;
} }
//初始化服务器邮箱参数
public MailUtil init(MailConfig mailConfig) {
this.smtpHost = mailConfig.getMailHost();
this.smtpPort = mailConfig.getMailPort();
this.from = mailConfig.getMailUser();
this.nick = mailConfig.getMailNick();
this.smtpUser = mailConfig.getMailUser();
this.smtpPassword = mailConfig.getMailPassword();
this.isAuthenticationSMTP = true;
return this;
}
/** /**
* *
* *

@ -35,12 +35,12 @@ spring.resources.static-locations=/static/**,/**
#app基础包路径 #app基础包路径
impp.app.base-packages=cn.estsh.i3plus.core impp.app.base-packages=cn.estsh.i3plus.core
#app对象路径 #app对象路径
impp.app.pojo-packages=cn.estsh.i3plus.pojo impp.app.pojo-packages=cn.estsh.i3plus.pojo.platform
#dao接口包 #dao接口包
impp.app.pojo-dao=${impp.app.base-packages}.apiservice.dao impp.app.pojo-dao=${impp.app.base-packages}.apiservice.dao
#mongo-dao接口包 #mongo-dao接口包
impp.app.pojo-mongo-dao=${impp.app.base-packages}.**.apiservice.daomongo impp.app.pojo-mongo-dao=${impp.app.base-packages}.**.apiservice.daomongo
#对象持久化包路径,可以多个包,逗号分隔 #对象持久化包路径,可以多个包,逗号分隔
impp.app.pojo-repository=${impp.app.pojo-packages}.**.repository impp.app.pojo-repository=${impp.app.pojo-packages}.**.repository
#mongodb资源仓 #mongodb资源仓go
impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.**.repositorymongo impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.**.repositorymon
Loading…
Cancel
Save