功能代码优化

yun-zuoyi
wei.peng 7 years ago
parent 063c1dfb5c
commit 28b17c83a6

@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import java.util.List;
@ -25,4 +26,6 @@ public interface ISystemLoginService {
SessionUser queryCheckAdminLogin(AdminToken authenticationToken);
SessionUser queryCheckSaAdminLogin(SaAdminToken authenticationToken);
Integer doLoginPasswordError(SysUser user);
}

@ -1,127 +1,127 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud;
import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.bean.BaseModelBean;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
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.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/impp/cloud")
@Api(description="分布式服务测试")
public class DemoCloudController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoCloudController.class);
@Value("${server.port}")
private String serverPort;
@Value("${eureka.instance.ip-address}")
private String ipAddress;
@Autowired
ICoreDemoCloud iCoreDemoCloud;
@Autowired
IWmsDemoCloud iWmsDemoCloud;
@GetMapping(value="/test")
@ApiOperation(value="core测试",notes = "core测试")
public ResultBean testCore(String test) {
LOGGER.info("{}{}【impp-core接受数据】{}",ipAddress,serverPort,test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@GetMapping(value="/test-wms")
@ApiOperation(value="wms测试",notes = "wms测试")
public ResultBean testWms(String test) {
LOGGER.info("【{}{}impp-core接受数据 -> wms】{}",ipAddress,serverPort,test);
BaseResultBean result = iWmsDemoCloud.testWms(test);
if(result.isSuccess()){
return ResultBean.success("wms返回" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}else{
LOGGER.error("无法调用wms服务{}",result.getErrorMsg());
return ResultBean.fail("调用wms服务出错" + result.getErrorMsg());
}
}
@GetMapping(value="/test-get")
@ApiOperation(value="测试get",notes = "测试get")
public ResultBean testFeignGet(String test) {
LOGGER.info("【impp-core-get接受数据】{}" ,test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-post")
@ApiOperation(value="测试post",notes = "测试post")
public ResultBean testFeignPost(String test) {
LOGGER.info("【impp-core-post接受数据】{}" ,test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PutMapping(value="/test-put")
@ApiOperation(value="put接受数据",notes = "put接受数据")
public ResultBean testPut(String test,String name) {
LOGGER.info("【impp-core-put接受数据】param1:{},param2:{}", test,name);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@DeleteMapping(value="/test-delete")
@ApiOperation(value="delete接受数据",notes = "delete接受数据")
public ResultBean testDelete(
@RequestBody Pager pager,
@RequestParam("test") String test) {
LOGGER.info("【impp-core-delete接受数据】pager:{},test:{}",pager,test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PutMapping(value="/test-cloud-put")
@ApiOperation(value="测试cloudput",notes = "测试cloudput")
public ResultBean putTestCloud(String test,String name) {
LOGGER.info("【impp-core-put接受数据】test:{},name:{}",test,name);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-object")
@ApiOperation(value="测试单对象")
public ResultBean testObject(@RequestBody Pager pager) {
LOGGER.info("【impp-core-object接受数据】{}" ,pager);
return ResultBean.success("返回:" + pager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-map")
@ApiOperation(value="测试get",notes = "测试get")
public ResultBean testFeignMap(@RequestBody Map<String,String> map) {
LOGGER.info("【impp-core-map接受数据】{}" ,map);
return ResultBean.success("返回:" + map).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-arr")
@ApiOperation(value="测试arr",notes = "测试arr")
public ResultBean testFeignArr(@RequestBody String[] arr) {
LOGGER.info("【impp-core-arr接受数据】{}" ,arr);
return ResultBean.success("返回:" + arr).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-more-object")
@ApiOperation(value="测试多对象模型",notes = "测试多对象模型")
public ResultBean testFeignMoreObj(@RequestBody BaseModelBean<SysRole> roleBean) {
LOGGER.info("【impp-core-more-obj接受多对象模型】objBean:{},pager:{}" ,roleBean.getObj(),roleBean.getPager());
return ResultBean.success("返回:" + roleBean).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}
//package cn.estsh.i3plus.core.apiservice.controller;
//
//import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud;
//import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud;
//import cn.estsh.i3plus.pojo.base.bean.BaseBean;
//import cn.estsh.i3plus.pojo.base.bean.BaseModelBean;
//import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
//import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
//import cn.estsh.i3plus.pojo.platform.bean.SysRole;
//import cn.estsh.i3plus.pojo.platform.bean.SysUser;
//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.beans.factory.annotation.Value;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.Map;
//
//@RestController
//@RequestMapping("/impp/cloud")
//@Api(description="分布式服务测试")
//public class DemoCloudController {
//
// private static final Logger LOGGER = LoggerFactory.getLogger(DemoCloudController.class);
//
// @Value("${server.port}")
// private String serverPort;
//
// @Value("${eureka.instance.ip-address}")
// private String ipAddress;
//
// @Autowired
// ICoreDemoCloud iCoreDemoCloud;
//
// @Autowired
// IWmsDemoCloud iWmsDemoCloud;
//
// @GetMapping(value="/test")
// @ApiOperation(value="core测试",notes = "core测试")
// public ResultBean testCore(String test) {
// LOGGER.info("{}{}【impp-core接受数据】{}",ipAddress,serverPort,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @GetMapping(value="/test-wms")
// @ApiOperation(value="wms测试",notes = "wms测试")
// public ResultBean testWms(String test) {
// LOGGER.info("【{}{}impp-core接受数据 -> wms】{}",ipAddress,serverPort,test);
//
// BaseResultBean result = iWmsDemoCloud.testWms(test);
// if(result.isSuccess()){
// return ResultBean.success("wms返回" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }else{
// LOGGER.error("无法调用wms服务{}",result.getErrorMsg());
// return ResultBean.fail("调用wms服务出错" + result.getErrorMsg());
// }
// }
//
// @GetMapping(value="/test-get")
// @ApiOperation(value="测试get",notes = "测试get")
// public ResultBean testFeignGet(String test) {
// LOGGER.info("【impp-core-get接受数据】{}" ,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-post")
// @ApiOperation(value="测试post",notes = "测试post")
// public ResultBean testFeignPost(String test) {
// LOGGER.info("【impp-core-post接受数据】{}" ,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PutMapping(value="/test-put")
// @ApiOperation(value="put接受数据",notes = "put接受数据")
// public ResultBean testPut(String test,String name) {
// LOGGER.info("【impp-core-put接受数据】param1:{},param2:{}", test,name);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @DeleteMapping(value="/test-delete")
// @ApiOperation(value="delete接受数据",notes = "delete接受数据")
// public ResultBean testDelete(
// @RequestBody Pager pager,
// @RequestParam("test") String test) {
// LOGGER.info("【impp-core-delete接受数据】pager:{},test:{}",pager,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PutMapping(value="/test-cloud-put")
// @ApiOperation(value="测试cloudput",notes = "测试cloudput")
// public ResultBean putTestCloud(String test,String name) {
// LOGGER.info("【impp-core-put接受数据】test:{},name:{}",test,name);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-object")
// @ApiOperation(value="测试单对象")
// public ResultBean testObject(@RequestBody Pager pager) {
// LOGGER.info("【impp-core-object接受数据】{}" ,pager);
// return ResultBean.success("返回:" + pager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-map")
// @ApiOperation(value="测试get",notes = "测试get")
// public ResultBean testFeignMap(@RequestBody Map<String,String> map) {
// LOGGER.info("【impp-core-map接受数据】{}" ,map);
// return ResultBean.success("返回:" + map).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-arr")
// @ApiOperation(value="测试arr",notes = "测试arr")
// public ResultBean testFeignArr(@RequestBody String[] arr) {
// LOGGER.info("【impp-core-arr接受数据】{}" ,arr);
// return ResultBean.success("返回:" + arr).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-more-object")
// @ApiOperation(value="测试多对象模型",notes = "测试多对象模型")
// public ResultBean testFeignMoreObj(@RequestBody BaseModelBean<SysRole> roleBean) {
// LOGGER.info("【impp-core-more-obj接受多对象模型】objBean:{},pager:{}" ,roleBean.getObj(),roleBean.getPager());
// return ResultBean.success("返回:" + roleBean).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//}

@ -71,8 +71,15 @@ public class AuthController extends CoreBaseController {
result.setUrl("/");
return result;
}catch (AuthenticationException e) {
ResultBean result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
result.setErrorMsg(e.getMessage());
ResultBean result = ResultBean.fail();
Throwable cause = e.getCause();
if(cause instanceof ImppBusiException ){
ImppBusiException exception = (ImppBusiException) cause;
result.setErrorMsg(exception.getMessage() + exception.getErrorSolution());
}else {
result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
result.setErrorMsg(e.getMessage());
}
return result;
}catch (ImppBusiException e) {
return ResultBean.fail(e);

@ -47,9 +47,6 @@ public class SysUserController extends CoreBaseController{
public static final Logger LOGGER = LoggerFactory.getLogger(SysUserController.class);
@Resource(name="redisCore")
private ImppRedis redisCore;
@Autowired
private ISysUserService sysUserService;
@ -93,7 +90,7 @@ public class SysUserController extends CoreBaseController{
//新增初始化
sysUser.setUserName(userInfo.getName());
sysUser.setUserStatus(CommonEnumUtil.USER_STATUS.NORMAL.getValue());
sysUser.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
sysUser.setDepartmentId(userInfo.getDepartmentId());
sysUser.setDepartmentNameRdd(userInfo.getDepartmentNameRdd());
sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());

@ -72,7 +72,7 @@ public class SysUserInfoController extends CoreBaseController{
.checkNotZero("positionId",userInfo.getPositionId());
ConvertBean.modelInitialize(userInfo,user);
userInfo.setUserInfoStatus(CommonEnumUtil.USER_STATUS.NORMAL.getValue());
userInfo.setUserInfoStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
SysUserInfo pos = sysUserInfoService.insertSysUserInfo(userInfo);
sysUserInfoService.refreshRefUserDepartment(pos.getId(),

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
import cn.estsh.i3plus.platform.common.tool.EncryptTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
@ -12,12 +13,17 @@ import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
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 cn.estsh.impp.framework.boot.util.ImppRedis;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @Description :
@ -33,6 +39,12 @@ public class SystemLoginService implements ISystemLoginService {
@Autowired
private SysUserRepository sysUserRDao;
/**
*
*/
@Resource(name="redisCore")
protected ImppRedis redisCore;
@Override
public SessionUser queryUserLogin(String loginName, String loginPwd, String languageCode) {
//生成令牌
@ -79,6 +91,26 @@ public class SystemLoginService implements ISystemLoginService {
return packSessionUser(user,CommonEnumUtil.USER_TYPE.SA.getCode(),saAdminToken.getLanguageCode());
}
@Override
// @Transactional(propagation = Propagation.NOT_SUPPORTED)
public Integer doLoginPasswordError(SysUser user) {
String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + user.getId();
// Object redisValue = redisCore.getObject(redisKey);
Object redisValue = AuthUtil.getSessionAttribute(redisKey);
Integer num = redisValue == null ? 1 : Integer.parseInt(redisValue.toString()) + 1;
if(num >= CommonConstWords.USER_LOGIN_ERROR_MAX_NUM){
user.setUserStatus(CommonEnumUtil.USER_STATUS.LOCKING.getValue());
redisCore.putObject(redisKey,num,0); // 账号锁定后移除锁
sysUserRDao.update(user);
}
redisCore.putObject(redisKey,num,24 * 60 * 60);
AuthUtil.setSessionObject(redisKey,num);
return num;
}
/**
*
* @param loginName
@ -90,15 +122,29 @@ public class SystemLoginService implements ISystemLoginService {
if(user == null){ //用户不存在
throw new AuthenticationException("用户不存在");
}else {
try { // 密码加密
if(user.getUserStatus() != CommonEnumUtil.USER_STATUS.ENABLE.getValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_USER_NAME_EXCEPTION.getCode())
.setErrorDetail("账号状态:"+CommonEnumUtil.USER_STATUS.valueOf(user.getUserStatus()))
.setErrorSolution("请联系管理员")
.build();
}
try {
// 密码加密
pwd = EncryptTool.hexMD5(pwd);
} catch (Exception e) {
LOGGER.error("登录密码加密出错。");
throw new AuthenticationException("登陆密码错误");
// doLoginPasswordError( user);
// throw new AuthenticationException("密码输入错误。如果输错次数超过"+CommonConstWords.USER_LOGIN_ERROR_MAX_NUM+"次,用户将被锁定。");
}
if (!StringUtils.equals(user.getUserLoginPassword(), pwd)) { //密码不符
throw new AuthenticationException("登陆密码错误");
// doLoginPasswordError( user);
// throw new AuthenticationException("密码输入错误。如果输错次数超过"+CommonConstWords.USER_LOGIN_ERROR_MAX_NUM+"次,用户将被锁定。");
}
return user;
}
}
@ -120,4 +166,6 @@ public class SystemLoginService implements ISystemLoginService {
return sessionUser;
}
}

@ -151,9 +151,10 @@ public class SysDepartmentService implements ISysDepartmentService {
LOGGER.info("部门信息 DEPARTMENT department:{}",department);
departmentRDao.update(department);
// 修改冗余信息
// 修改冗余信息
departmentRDao.updateByProperties("parentId",department.getId(),
"parentNameRdd",department.getName());
new String[]{"parentNameRdd", "organizeId", "organizeNameRdd"},
new Object[]{department.getName(), department.getOrganizeId(), department.getOrganizeNameRdd()});
}
@Override

@ -68,7 +68,7 @@ public class SysRoleService implements ISysRoleService {
StringBuffer where = new StringBuffer();
HqlPack.getInPack(StringUtils.join( ids,","), "id", where);
sysRoleRDao.updateByHqlWhere(where.toString(), "roleStatusId", status);
sysRoleRDao.updateByHqlWhere(where.toString(), "roleStatus", status);
}
@Override

@ -90,6 +90,7 @@ public class SysUserService implements ISysUserService {
.build();
}
packSessionUser(sessionUser, user, user.getUserType(), languageCode);
AuthUtil.setSessionUser(sessionUser);
refreshUserLoginInformation(user.getId());
@ -379,7 +380,7 @@ public class SysUserService implements ISysUserService {
public void checkSysUserOnly(SysUser user) {
if(user != null){
// 登录名唯一教研
if(checkSysUserLoginName(user.getUserLoginName(),user.getId())){
if(!checkSysUserLoginName(user.getUserLoginName(), user.getId() == null ? 0 : user.getId())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
@ -389,7 +390,7 @@ public class SysUserService implements ISysUserService {
}
// 登录名唯一教研
if(checkSysUserEmail(user.getUserEmail(),user.getId())){
if(!checkSysUserEmail(user.getUserEmail(),user.getId() == null ? 0 : user.getId())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
@ -399,7 +400,7 @@ public class SysUserService implements ISysUserService {
}
// 登录名唯一教研
if(checkSysUserPhone(user.getUserPhone(),user.getId())){
if(!checkSysUserPhone(user.getUserPhone(),user.getId() == null ? 0 : user.getId())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())

Loading…
Cancel
Save