From 265ce168fd575ddd81041d6fd5425f445c5f0b2c Mon Sep 17 00:00:00 2001 From: "wei.peng" <123456> Date: Thu, 27 Jun 2019 17:24:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8D=95=E5=B8=90?= =?UTF-8?q?=E5=8F=B7=E5=A4=9A=E5=B9=B3=E5=8F=B0=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysUserService.java | 2 +- .../controller/base/WhiteController.java | 47 ++++++++++++++++++++-- .../controller/busi/SysEnumController.java | 10 +---- .../serviceimpl/base/SystemLoginService.java | 2 +- .../serviceimpl/busi/SysUserService.java | 11 ++--- 5 files changed, 52 insertions(+), 20 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index 60e05cf..136719d 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -25,7 +25,7 @@ public interface ISysUserService { * @return */ @ApiOperation(value = "账号登录",notes = "普通账号登录功能") - SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException; + SessionUser queryUserLogin(String loginName, String password, String languageCode,Integer loginPlatform) throws AuthenticationException; /** * 修改状态 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 8e8145f..8213be2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.CookieTool; import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -23,6 +24,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,6 +34,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -116,20 +119,22 @@ public class WhiteController extends CoreBaseController { LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode); ResultBean result = null; - this.startMultiService(); try { ValidatorBean.checkNotNull(loginName,"用户名不能为空"); ValidatorBean.checkNotNull(loginPwd,"密码不能为空"); ValidatorBean.checkNotNull(languageCode,"语言不能为空"); - logout(); - SessionUser user = userService.queryUserLogin(loginName.trim(),loginPwd.trim(),languageCode); + + SessionUser user = userService.queryUserLogin(loginName.trim(), loginPwd.trim(), languageCode, getLoginPlatform().getValue()); String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + user.getUser().getId(); redisCore.deleteKey(redisKey); LOGGER.info("会员登陆:{}",user); - AuthUtil.setSessionObject("languageCode",languageCode); + // Session 信息分装 + AuthUtil.setSessionObject(CommonConstWords.SESSION_LOGIN_LANGUAGE_CODE,languageCode); + AuthUtil.setSessionObject(CommonConstWords.SESSION_LOGIN_PLATFORM, getLoginPlatform().getValue()); + result = new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); result.setUrl("/"); @@ -320,4 +325,38 @@ public class WhiteController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + /** + * @return 处理结果 + */ + @GetMapping("/sys-login-platform") + @ApiOperation(value = "登录标识", notes = "登录标识") + public ResultBean getSysloginPlatforml() { + return new ResultBean(true, "操作成功", + Arrays.asList(CommonEnumUtil.LOG_LOGIN_PLATFORM.values())); + } + + /** + * 获取登录平台信息 + * @return + */ + private CommonEnumUtil.LOG_LOGIN_PLATFORM getLoginPlatform(){ + String value = CookieTool.getCookieValue(request, CommonConstWords.SESSION_LOGIN_PLATFORM); + if(StringUtils.isBlank(value)){ + value = CommonEnumUtil.LOG_LOGIN_PLATFORM.PC_IMPP_CORE.getValue() + ""; + }else{ + try { + Integer.parseInt(value); + }catch (Exception e){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode()) + .setErrorDetail("平台登录标识转换错误") + .setErrorSolution("请重新操作") + .build(); + } + } + CommonEnumUtil.LOG_LOGIN_PLATFORM platform = CommonEnumUtil.LOG_LOGIN_PLATFORM.valueOf(Integer.parseInt(value)); + return platform == null ? CommonEnumUtil.LOG_LOGIN_PLATFORM.PC_IMPP_CORE : platform; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java index 6ecea90..1ecaf17 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java @@ -296,13 +296,5 @@ public class SysEnumController extends CoreBaseController { return new ResultBean(true, "操作成功", list); } - /** - * @return 处理结果 - */ - @GetMapping("/sys-login-platform") - @ApiOperation(value = "数学表达式", notes = "数学表达式") - public ResultBean getSysloginPlatforml() { - return new ResultBean(true, "操作成功", - Arrays.asList(CommonEnumUtil.LOG_LOGIN_PLATFORM.values())); - } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java index 6239fd5..91fbbcc 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java @@ -69,7 +69,7 @@ public class SystemLoginService implements ISystemLoginService { SysUser user = getUserLoginInfo(userToken.getLoginName(),userToken.getLoginPwd()); LOGGER.info("【验证用户checkUserLogin】{}",user); //用户单地登录 -// AuthUtil.checkLoginOnly(userToken.getLoginName()); + AuthUtil.checkLoginOnly(userToken); return packSessionUser(user,CommonEnumUtil.USER_TYPE.USER.getCode(),userToken.getLanguageCode()); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 03747d5..8dd7c05 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -9,6 +9,7 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.EncryptTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -23,10 +24,7 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; -import com.alibaba.fastjson.JSON; import io.swagger.annotations.ApiOperation; -import org.apache.commons.collections.ListUtils; -import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.CredentialsException; @@ -40,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; + + /** * @Description : 平台用户业务 * @Reference : @@ -103,10 +103,10 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "用户登录", notes = "用户登录功能实现") @Transactional(propagation = Propagation.REQUIRED) - public SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException { + public SessionUser queryUserLogin(String loginName, String password, String languageCode,Integer loginPlatform) throws AuthenticationException { LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); - UserToken token = new UserToken(loginName,password,languageCode); + UserToken token = new UserToken(loginName,password,languageCode,loginPlatform); SessionUser sessionUser = AuthUtil.login(token); SysUser user = this.getSysUserByLoginName(loginName); @@ -116,6 +116,7 @@ public class SysUserService implements ISysUserService { packSessionUser(sessionUser, user, user.getUserType(), languageCode); AuthUtil.setSessionUser(sessionUser); refreshUserLoginInformation(user.getId()); + return sessionUser; } From f585ea56e4816698b53b268c14d020bb34c284a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Thu, 27 Jun 2019 18:08:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20excel=E9=80=9A=E7=94=A8=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysFileService.java | 7 ++++ .../controller/busi/SysFileController.java | 38 +++++++++++++++++++ .../serviceimpl/busi/SysFileServiceImpl.java | 44 +++++++++++++++++++--- .../i3plus/core/apiservice/util/MailUtil.java | 2 +- 4 files changed, 84 insertions(+), 7 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java index dc3940f..3d93785 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysFileService.java @@ -76,6 +76,13 @@ public interface ISysFileService { SysFile uploadFile(Object file) throws Exception; /** + * 上传文件资源,并设置文件代码 + * @param file + */ + @ApiOperation(value = "上传文件资源",notes = "上传文件资源") + SysFile uploadFile(Object file,SysFile sysFile) throws Exception; + + /** * 根据文件代码获取文件信息 * @param fileCode * @return diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java index 16a16c6..38af197 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysFileController.java @@ -18,6 +18,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -224,7 +225,44 @@ public class SysFileController extends CoreBaseController{ } SysFile fileDb = sysFileService.uploadFile(file); + return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(fileDb); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 文件上传至fastdfs并保存数据 + * @param file 文件 + * @return 处理结果 + */ + @PostMapping("/upload-fastdfs") + @ApiOperation(value = "文件上传至fastdfs并保存数据", notes = "文件上传至fastdfs并保存数据") + public ResultBean singleFileUpload(@RequestParam("file") MultipartFile file, SysFile sysFile) { + try { + startMultiService(); + + if(file.isEmpty()){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请选择需要上传的文件。") + .build(); + } + + boolean checkFileN = dictionaryService.checkFileName(file.getOriginalFilename()); + if(!checkFileN){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode()) + .setErrorDetail("文件格式不支持") + .setErrorSolution("请到字典管理中添加文件类型") + .build(); + } + SysFile fileDb = sysFileService.uploadFile(file,sysFile); return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(fileDb); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java index e5de0ef..bad01e6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java @@ -15,6 +15,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile; +import com.mchange.lang.IntegerUtils; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,7 +62,7 @@ public class SysFileServiceImpl implements ISysFileService { } } - return sysFileRDao.insert(sysFile); + return sysFileRDao.save(sysFile); } @Override @@ -127,18 +128,49 @@ public class SysFileServiceImpl implements ISysFileService { @Override @ApiOperation(value = "上传文件资源", notes = "上传文件资源") public SysFile uploadFile(Object file) throws Exception { + SysFile sysFile = uploadFastDfs(file, null); + return insertSysFile(sysFile); + } + + @Override + @ApiOperation(value = "上传文件资源", notes = "上传文件资源") + public SysFile uploadFile(Object file,SysFile sysFile) throws Exception { + sysFile = uploadFastDfs(file, sysFile); + return insertSysFile(sysFile); + } + + /** + * 上传文件至fastdfs + * @param file + * @param sysFile + * @return + * @throws Exception + */ + private SysFile uploadFastDfs(Object file,SysFile sysFile) throws Exception { + if(sysFile == null){ + sysFile = new SysFile(); + } + // 设置文件默认所属模块 + if(sysFile.getFileSoftTypeVal() == 0){ + sysFile.setFileSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + } + FastDFSFile fastDFSFile; + SysFile uploadFile; // 判断参数类型 if (file instanceof File) { - fastDFSFile = new FastDFSFile((( File ) file).getName(), FileTool.file2Byte((( File ) file).getPath()), - StringTool.getStringFileSuffix((( File ) file).getName(), true)); + fastDFSFile = new FastDFSFile(((File) file).getName(), FileTool.file2Byte(((File) file).getPath()), + StringTool.getStringFileSuffix(((File) file).getName(), true)); + uploadFile = dfsClient.upload(fastDFSFile, sysFile.getFileSoftTypeVal()); } else { - fastDFSFile = dfsClient.saveFile(( MultipartFile ) file); + uploadFile = dfsClient.saveFile((MultipartFile) file, sysFile.getFileSoftTypeVal()); } - SysFile sysFile = dfsClient.upload(fastDFSFile,CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + uploadFile.setId(sysFile.getId()); + // 设置文件代码 + uploadFile.setFileCode(sysFile.getFileCode()); - return insertSysFile(sysFile); + return uploadFile; } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java index 98ceaf0..f4b504c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java @@ -190,7 +190,7 @@ public class MailUtil { try { a[i] = new InternetAddress(add[i]); } catch (AddressException ex) { - ex.printStackTrace(); + LOGGER.error("邮箱地址错误!",ex.getMessage()); } } return a;