Commit b8e6774e by java-李谡

添加redis方法

parent fe89cc89
......@@ -24,33 +24,17 @@ public class RedisUtils {
* @param indexDb
* @return boolean
**/
public boolean exists(String key,int indexDb) {
Jedis jedis = jedisPool.getResource();
jedis.select(indexDb);
boolean exist = jedis.exists(key);
if (null != jedis && null != jedisPool) {
returnResource(jedisPool, jedis);
}
return exist;
}
/**
* 删除key
*
* @param key
* @param indexDb
* @return
*/
public long del(String key, int indexDb) {
public boolean exists(String key, int indexDb) {
Jedis jedis = jedisPool.getResource();
jedis.select(indexDb);
long s = jedis.del(key);
boolean exist = jedis.exists(key);
if (null != jedis && null != jedisPool) {
returnResource(jedisPool, jedis);
}
return s;
return exist;
}
/**
* 通过key获取储存在redis中的value
* 并释放连接
......@@ -124,9 +108,9 @@ public class RedisUtils {
try {
jedis = jedisPool.getResource();
jedis.select(indexDb);
Integer expireTime =jedis.ttl(key).intValue();
Integer expireTime = jedis.ttl(key).intValue();
res = jedis.incr(key);
// jedis.expireAt(key, expireTime);
// jedis.expireAt(key, expireTime);
res = jedis.expire(key, expireTime);
} catch (Exception e) {
......
......@@ -11,9 +11,7 @@ import com.ejweb.core.fetcher.HCFetcher;
import com.ejweb.core.util.IdWorker;
import com.ejweb.core.util.PropertiesUtils;
import com.ejweb.core.util.RedisUtils;
import com.ejweb.core.util.RedisUtils;
import com.ejweb.core.util.Util;
import com.ejweb.modules.im.service.HuaweiInterfaseService;
import com.ejweb.modules.mobile.verify.entity.MobileVerifyEntity;
import com.ejweb.modules.mobile.verify.service.MobileVerifyService;
import com.ejweb.modules.role.bean.UserRolesBean;
......@@ -44,27 +42,22 @@ import java.util.*;
public class UserController {
private final static Logger LOG = Logger.getLogger(UserController.class);
@Autowired
private UserService userService;
// @Autowired
// private OfficedService officedService;
@Autowired
private MobileVerifyService mobileVerifyService;
@Value("${redis.dbIndex}")
private int indexDb;
@Autowired
private RedisUtils RedisUtils;
@Autowired
private UserRolesService userRolesService;
private RedisUtils redisUtils;
@Autowired
private HuaweiInterfaseService huaweiInterfaseService;
private UserRolesService userRolesService;
/**
* 根据用户CODE查询用户信息
*
*
* @param requestBean
* @param errors
* @return
......@@ -95,7 +88,7 @@ public class UserController {
/**
* 注册用户信息
*
*
* @param requestBean
* @param errors
* @return
......@@ -133,132 +126,134 @@ public class UserController {
*/
@ResponseBody
@RequestMapping("/login")
public ResponseBean login(HttpServletRequest request, RequestBean requestBean,String userIp) {
//获取redis的库
int indexDb = Integer.valueOf(PropertiesUtils.getProperties().get("redis.dbIndex").toString());
public ResponseBean login(HttpServletRequest request, RequestBean requestBean) {
long startTime = System.nanoTime();
ResponseBean responseBean = new ResponseBean();
String message = userService.validate(requestBean);
LoginBean loginBean = requestBean.getObjectBean(LoginBean.class);
int a = indexDb;
String s = RedisUtils.get(loginBean.getLoginName(), indexDb);
if (null!=s && Integer.parseInt(s) >=6 ){
RedisUtils.expire("black_username"+loginBean.getLoginName(),300,indexDb);
responseBean.setStatus(ErrorCode.STATUS_CODE_4101);
responseBean.setMessage("该帐号已禁止登录");
return responseBean;
}
if (StringUtils.isEmpty(s)){
RedisUtils.set(loginBean.getLoginName(),1,indexDb);
RedisUtils.expire(loginBean.getLoginName(),360,indexDb);
RedisUtils.incrNotResetExpireTime(loginBean.getLoginName(),indexDb);
}else {
RedisUtils.incrNotResetExpireTime(loginBean.getLoginName(),indexDb);
}
message = userService.validate(loginBean);
String message = userService.validate(loginBean);
String userIp;
if (message == null) {
userIp = loginBean.getUserIp();
LoginIpInfo loginIpInfo = userService.findByIp(userIp);
if(loginIpInfo != null){
String redisUsername = redisUtils.get(loginBean.getLoginName(), indexDb);
if (loginIpInfo != null) {
responseBean.setStatus(ErrorCode.STATUS_CODE_4102);
responseBean.setMessage("IP受限!请联系管理员");
responseBean.setMessage("IP地址已被锁定");
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4102]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4102]总共用时:" + Util.getDurationTime(duration));
return responseBean;
}
if (null != redisUsername && Integer.parseInt(redisUsername) >= 6) {
redisUtils.expire("black_username:" + loginBean.getLoginName(), 300, indexDb);
responseBean.setStatus(ErrorCode.STATUS_CODE_4101);
responseBean.setMessage("该帐号已禁止登录");
return responseBean;
}
LoginUserEntity userEntity = userService.findUserByLoginName(loginBean);
// 查询不到用户信息
if(userEntity == null){
if (userEntity == null) {
//todo ip username +1
if (StringUtils.isEmpty(redisUsername)) {
redisUtils.set(loginBean.getLoginName(), 1, indexDb);
redisUtils.expire(loginBean.getLoginName(), 360, indexDb);
} else {
redisUtils.incrNotResetExpireTime(loginBean.getLoginName(), indexDb);
}
checkIpLimit(userIp);
responseBean.setStatus(ErrorCode.STATUS_CODE_4102);
responseBean.setMessage("用户名不存在");
responseBean.setMessage("账户或密码错误");
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4102]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4102]总共用时:" + Util.getDurationTime(duration));
return responseBean;
} else if (GConstants.NO.equals(userEntity.getLoginFlag())) {// 用户被查封
// 用户被查封
} else if (GConstants.NO.equals(userEntity.getLoginFlag())) {
responseBean.setStatus(ErrorCode.STATUS_CODE_4101);
responseBean.setMessage("该帐号已禁止登录");
//判断ip限制
checkIpLimit(redisUtils,userIp,indexDb,responseBean);
checkIpLimit(userIp);
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4101]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4101]总共用时:" + Util.getDurationTime(duration));
return responseBean;
} else if (!"2".equals(userEntity.getUserType()) && !"4".equals(userEntity.getUserType()) && !"6".equals(userEntity.getUserType())) { //不是内部联系人 通讯录联系人不允许登陆
//不是内部联系人 通讯录联系人不允许登陆
} else if (!"2".equals(userEntity.getUserType()) && !"4".equals(userEntity.getUserType()) && !"6".equals(userEntity.getUserType())) {
responseBean.setStatus(ErrorCode.STATUS_CODE_4101);
responseBean.setMessage("当前用户类型不允许登陆,请联系系统管理员");
//判断ip限制
checkIpLimit(redisUtils,userIp,indexDb,responseBean);
checkIpLimit(userIp);
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4101]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4101]总共用时:" + Util.getDurationTime(duration));
return responseBean;
}
boolean passwordError = false;
//只开放几个测试账号密码验证走数据库,其他的通过首航接口去验证
// if((loginBean.getLoginName().equals("hwss1") || loginBean.getLoginName().equals("hwss2") || loginBean.getLoginName().equals("tianyz") || loginBean.getLoginName().equals("wangzl") || loginBean.getLoginName().equals("wtfk1") || loginBean.getLoginName().equals("test001") || loginBean.getLoginName().equals("test002"))){
if("6".equals(userEntity.getUserType())){
if(!Util.validatePassword(loginBean.getPassword(), userEntity.getPassword())){
if ("6".equals(userEntity.getUserType())) {
if (!Util.validatePassword(loginBean.getPassword(), userEntity.getPassword())) {
passwordError = true;
}
}else{
if (!userService.validateServerPassword(loginBean)){
} else {
if (!userService.validateServerPassword(loginBean)) {
passwordError = true;
}
}
if (passwordError){
if (passwordError) {
responseBean.setStatus(ErrorCode.STATUS_CODE_4103);
responseBean.setMessage("用户名密码不匹配!");
responseBean.setMessage("账户或密码错误");
//todo ip username +1
if (StringUtils.isEmpty(redisUsername)) {
redisUtils.set(loginBean.getLoginName(), 1, indexDb);
redisUtils.expire(loginBean.getLoginName(), 360, indexDb);
} else {
redisUtils.incrNotResetExpireTime(loginBean.getLoginName(), indexDb);
}
checkIpLimit(userIp);
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4103]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4103]总共用时:" + Util.getDurationTime(duration));
return responseBean;
} else {
// 校验码登录
if(StringUtils.isNotBlank(loginBean.getVerifyCode())){
if (StringUtils.isNotBlank(loginBean.getVerifyCode())) {
MobileVerifyEntity entity = mobileVerifyService.getVerifyCode(loginBean.getLoginName(), loginBean.getVerifyCode());
// 校验码不存在
if(entity == null){
if (entity == null) {
responseBean.setStatus(ErrorCode.STATUS_CODE_4104);
responseBean.setMessage("校验码错误");
//判断ip限制
checkIpLimit(redisUtils,userIp,indexDb,responseBean);
checkIpLimit(userIp);
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4104]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4104]总共用时:" + Util.getDurationTime(duration));
return responseBean;
} else if(entity.getExpireTime().getTime()>System.currentTimeMillis()){// 校验码已经失效
RedisUtils.del(loginBean.getLoginName(),indexDb);
// 校验码已经失效
} else if (entity.getExpireTime().getTime() > System.currentTimeMillis()) {
redisUtils.del(loginBean.getLoginName(), indexDb);
responseBean.setStatus(ErrorCode.STATUS_CODE_4105);
responseBean.setMessage("校验码已失效");
//判断ip限制
checkIpLimit(redisUtils,userIp,indexDb,responseBean);
checkIpLimit(userIp);
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_4105]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_4105]总共用时:" + Util.getDurationTime(duration));
return responseBean;
}
mobileVerifyService.updateVerifyCodeStatus(loginBean.getLoginName(), loginBean.getVerifyCode(), 1);// 修改验证码使用状态
// 修改验证码使用状态
mobileVerifyService.updateVerifyCodeStatus(loginBean.getLoginName(), loginBean.getVerifyCode(), 1);
}
String clientip = StringUtils.isEmpty(loginBean.getClientip()) ? Util.getOnlineIP(request) : loginBean.getClientip();
// UserLoginInfoEntity loginInfo = new UserLoginInfoEntity();
// loginInfo.setUserId(userEntity.getId());
// loginInfo.setLoginDate(new Date());
// loginInfo.setLoginIp(clientip);
RedisUtils.del(loginBean.getLoginName(),indexDb);
//todo ip username 删除
redisUtils.del(loginBean.getLoginName(), indexDb);
redisUtils.del(userIp, indexDb);
UserLoginLogEntity deviceInfoEntity = new UserLoginLogEntity();
deviceInfoEntity.setUserId(userEntity.getId());
deviceInfoEntity.setLoginDate(new Date());
deviceInfoEntity.setLoginIp(clientip);
// deviceInfoEntity.setUserId(userEntity.getId());
deviceInfoEntity.setAppCode(loginBean.getAppCode());
deviceInfoEntity.setAppkey(loginBean.getAppkey());
deviceInfoEntity.setClientip(clientip);
......@@ -266,102 +261,82 @@ public class UserController {
deviceInfoEntity.setPlatform(loginBean.getPlatform());
deviceInfoEntity.setVersion(loginBean.getVersionName());
deviceInfoEntity.setDeviceName(loginBean.getDeviceName());
userService.updateUserLoginInfo(deviceInfoEntity);// 记录用户最新登录信息
userService.updateUserDeviceInfo(deviceInfoEntity);// 保存登录的设备信息,用于推送
userService.addLoginLog(deviceInfoEntity);// 添加登录日志
// 记录用户最新登录信息
userService.updateUserLoginInfo(deviceInfoEntity);
// 保存登录的设备信息,用于推送
userService.updateUserDeviceInfo(deviceInfoEntity);
// 添加登录日志
userService.addLoginLog(deviceInfoEntity);
SeatLoginBean seatloginBean = new SeatLoginBean();
seatloginBean.setUserId(userEntity.getId());
userService.updateUserSeatLoginEmpty(seatloginBean);// 先退出之前的席位登录状态
// 先退出之前的席位登录状态
userService.updateUserSeatLoginEmpty(seatloginBean);
List<String> seatIds = new ArrayList<>();
List<UserSeatEntity> userSeatList = userService.getUserSeatByUserCode(userEntity);
if(userSeatList != null && userSeatList.size()>0){// 用户拥有席位信息
for (int i = 0; i < userSeatList.size(); i ++) {
// 用户拥有席位信息
if (userSeatList != null && userSeatList.size() > 0) {
for (int i = 0; i < userSeatList.size(); i++) {
UserSeatEntity seat = userSeatList.get(i);
seatIds.add(seat.getSeatId());
if(StringUtils.isEmpty(seat.getPhoto())){
seat.setPhoto(GConstants.DEFAULT_SEAT_PHOTO);// 设置默认头像
if (StringUtils.isEmpty(seat.getPhoto())) {
// 设置默认头像
seat.setPhoto(GConstants.DEFAULT_SEAT_PHOTO);
}
seat.setPhoto(Util.getAbsoluteUrl(seat.getPhoto()));
seat.setHuaweiUCAccount(Util.getUcAccount(seat.getSeatId()));
seat.setHuaweiUCPassword(seat.getSeatId().length() > 1 ? seat.getSeatId().substring(0,2) + "@foc2016" : String.format("%02d", seat.getSeatId()) + "@foc2016");
seat.setHuaweiUCPassword(seat.getSeatId().length() > 1 ? seat.getSeatId().substring(0, 2) + "@foc2016" : String.format("%02d", seat.getSeatId()) + "@foc2016");
}
long queryStartTime = System.nanoTime();
// List<UserState> seatStates = huaweiInterfaseService.queryUserStateList(seatIds);
// long queryEndTime = System.nanoTime();
// long duration = queryEndTime - queryStartTime;
// LOG.debug("[UserService login][queryUserStateList]总共用时:" + Util.getDurationTime(duration));
// if (seatStates != null && seatStates.size()>0) {
// for (UserSeatEntity entityTmp : userSeatList) {
// for (UserState stateTmp : seatStates) {
// if (entityTmp.getSeatId().equals(stateTmp.getOrigin())) {
// entityTmp.setCurState(String.valueOf(stateTmp.getNewState()));
// break;
// }
// }
// if(Util.isInValue(entityTmp.getCurState(), "1", "3", "4") == false){// 用户不在线
//
// entityTmp.setPhoto(Util.getAbsoluteUrl(GConstants.DEFAULT_SEAT_PHOTO));
// }
// }
// }
userEntity.setUserSeatList(userSeatList);
}
// String officeFullName = officedService.findFullName("b67a017f66a24a3986a9ebd00714b17c");
// if(StringUtils.isNotBlank(userEntity.getOfficeId())){// 设置用户部门全程
// String officeFullName = officedService.findFullName(userEntity.getOfficeId());
// if(officeFullName != null){
// String[] species = officeFullName.split("-");
// if(species.length>0){
// userEntity.setOfficeName(species[species.length - 1]);
// }
// userEntity.setOfficeFullName(officeFullName);
// }
// }
userEntity.setPhoto(Util.getAbsoluteUrl(userEntity.getPhoto()));// 设置用户头像
if(userEntity.getHuaweiStatus() == 1 &&
StringUtils.isNotBlank(userEntity.getHuaweiNum())){// 该用户用于华为账号
// 设置用户头像
userEntity.setPhoto(Util.getAbsoluteUrl(userEntity.getPhoto()));
// 该用户用于华为账号
if (userEntity.getHuaweiStatus() == 1 &&
StringUtils.isNotBlank(userEntity.getHuaweiNum())) {
userEntity.setHuaweiUCAccount(Util.getUcAccount(userEntity.getId()));
userEntity.setHuaweiUCPassword(userEntity.getId().length() > 1 ? userEntity.getId().substring(0,2) + "@foc2016" : String.format("%02d", userEntity.getId()) + "@foc2016");
} else{
userEntity.setHuaweiUCPassword(userEntity.getId().length() > 1 ? userEntity.getId().substring(0, 2) + "@foc2016" : String.format("%02d", userEntity.getId()) + "@foc2016");
} else {
userEntity.setHuaweiStatus(0);
}
List<JSONObject> permissionList =new ArrayList<JSONObject>();
if("FOCJZZD".equals(loginBean.getPermission())){// 机组转单权限设置,树形格式
permissionList = userRolesService.getList(userEntity.getId(),loginBean.getPermission());// 获取用户权限列表信息
} else{// 一期权限格式,MAP格式
List<JSONObject> permissionList = new ArrayList<JSONObject>();
// 机组转单权限设置,树形格式
if ("FOCJZZD".equals(loginBean.getPermission())) {
permissionList = userRolesService.getList(userEntity.getId(), loginBean.getPermission());// 获取用户权限列表信息
} else {
// 一期权限格式,MAP格式
List<UserRolesEntity> permiss = userRolesService.getUserPermissionList(userEntity.getId());
for(UserRolesEntity role:permiss){
JSONObject json=new JSONObject();
for (UserRolesEntity role : permiss) {
JSONObject json = new JSONObject();
json.put("permission", role.getPermission());
json.put("menuName", role.getMenuName());
permissionList.add(json);
}
}
userEntity.setPermissionList(permissionList);
UserRolesBean bean =new UserRolesBean();
UserRolesBean bean = new UserRolesBean();
bean.setUserCode(userEntity.getId());
userEntity.setVerify("0");// 默认有航线论证权限(0表示有航线论证权限,1是没有)
List<InformationEntity> informationEntity= userRolesService.getInformation( bean);
if(informationEntity==null || informationEntity.size()==0){// 获取航线论证的部门信息
userEntity.setVerify("1");// 无航向论证权限
// 默认有航线论证权限(0表示有航线论证权限,1是没有)
userEntity.setVerify("0");
List<InformationEntity> informationEntity = userRolesService.getInformation(bean);
// 获取航线论证的部门信息
if (informationEntity == null || informationEntity.size() == 0) {
// 无航向论证权限
userEntity.setVerify("1");
}
userEntity.setShowPhone(userEntity.getPhone());
userEntity.setPhone(Util.formatedWorkPhone(userEntity.getPhone()));
responseBean.setData(userEntity);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
long endTime = System.nanoTime();
long duration = endTime - startTime;
LOG.debug("[UserController login][STATUS_CODE_2000]总共用时:"+Util.getDurationTime(duration));
LOG.debug("[UserController login][STATUS_CODE_2000]总共用时:" + Util.getDurationTime(duration));
return responseBean;
}
}
......@@ -369,19 +344,20 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
public boolean sendVerifyCode(String telephone, String verifyCode) {
try {
HCFetcher fetcher = HCFetcher.getInstance();
String message = "[首都航空]您的验证码为"+verifyCode+"[foc智能管控系统]";
String message = "[首都航空]您的验证码为" + verifyCode + "[foc智能管控系统]";
// message = URLDecoder.decode(message, "UTF-8");
FetchEntity entity = fetcher.post(GConstants.JDAIR_BASE_API+"/flightinterface/uss/json/mobile/messSend.json?"+GConstants.JDAIR_BASE_PARAM+"&mobile="+telephone+"&msg="+URLDecoder.decode(message, "UTF-8"), null);
if(entity.isSuccess()){
FetchEntity entity = fetcher.post(GConstants.JDAIR_BASE_API + "/flightinterface/uss/json/mobile/messSend.json?" + GConstants.JDAIR_BASE_PARAM + "&mobile=" + telephone + "&msg=" + URLDecoder.decode(message, "UTF-8"), null);
if (entity.isSuccess()) {
String resultStr = entity.getContent("utf-8");
if (resultStr != null) {// 成功获取数据
JSONObject result = JSON.parseObject(resultStr);// 解析JSON数据
String resultCode = result.getJSONObject("result").getString("resultCode");
if ("1000".equals(resultCode)) {// 判断 调用接口是否成功
return true;
}
}
......@@ -391,10 +367,10 @@ public class UserController {
}
return false;
}
/**
* 获取验证码
*
*
* @param request
* @param requestBean
* @return
......@@ -411,20 +387,20 @@ public class UserController {
// 生成4位验证码
StringBuffer buf = new StringBuffer();
for (int i = 0; i < 4; i++) {
buf.append(String.valueOf(Util.getRandom(0, 9)));
}
// buf.setLength(0);
// buf.append("1234");// 测试的时候使用
if(this.sendVerifyCode(codeBean.getTelephone(), buf.toString())){// 成功发送添加校验码
if (this.sendVerifyCode(codeBean.getTelephone(), buf.toString())) {// 成功发送添加校验码
String clientip = StringUtils.isEmpty(codeBean.getClientip()) ? Util.getOnlineIP(request) : codeBean.getClientip();
MobileVerifyEntity entity = new MobileVerifyEntity();
entity.setAppCode(codeBean.getAppCode());
entity.setCreateTime(new Date());
entity.setExpireTime(new Date(entity.getCreateTime().getTime()+30*60*1000));
entity.setExpireTime(new Date(entity.getCreateTime().getTime() + 30 * 60 * 1000));
entity.setId(IdWorker.getNextId());
entity.setPlatform(codeBean.getPlatform());
entity.setStatus(0);
......@@ -432,9 +408,9 @@ public class UserController {
entity.setVerifyCode(buf.toString());
entity.setVersion(codeBean.getVersionName());
entity.setClientip(clientip);
mobileVerifyService.addVerifyCode(entity);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean;
......@@ -448,7 +424,7 @@ public class UserController {
/**
* 席位登录 更新
*
*
* @param request
* @param requestBean
* @return
......@@ -461,7 +437,7 @@ public class UserController {
SeatLoginBean seatloginBean = requestBean.getObjectBean(SeatLoginBean.class);
message = userService.validate(seatloginBean);
if (message == null) {
// 一下代码只能在一端,席位还处于WEB端登录状态,不允许在APP上登录
/*
List<String> seatIds = new ArrayList<String>();
......@@ -539,11 +515,11 @@ public class UserController {
deviceInfoEntity.setPlatform(seatloginBean.getPlatform());
deviceInfoEntity.setVersion(seatloginBean.getVersionName());
deviceInfoEntity.setDeviceName(seatloginBean.getDeviceName());
// userService.updateUserLoginInfo(deviceInfoEntity);// 记录用户最新登录信息
// userService.updateUserDeviceInfo(deviceInfoEntity);// 保存登录的设备信息,用于推送
userService.addLoginLog(deviceInfoEntity);// 添加登录日志
// 更新登录数据,记录席位的最后登录用户ID
boolean isSuccess = userService.updateUserSeat(seatloginBean);
if (isSuccess) {
......@@ -558,13 +534,14 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
/**
* 修改用户头像
*
* @author renmb
* @time 2016年9月7日
*
* @param requestBean
* @return
* @author renmb
* @time 2016年9月7日
*/
@ResponseBody
@RequestMapping("/edit/photo")
......@@ -586,6 +563,7 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
@ResponseBody
@RequestMapping("/logout")
public ResponseBean logout(HttpServletRequest request, RequestBean requestBean) {
......@@ -594,8 +572,8 @@ public class UserController {
UserLogoutBean bean = requestBean.getObjectBean(UserLogoutBean.class);
message = userService.validate(bean);
if (message == null) {
if(StringUtils.isNotBlank(bean.getSeatId())){
if (StringUtils.isNotBlank(bean.getSeatId())) {
SeatLoginBean seatLoginBean = new SeatLoginBean();
seatLoginBean.setUserId(bean.getUserId());
......@@ -614,8 +592,8 @@ public class UserController {
userEntity.setUsercode(bean.getUserId());
User user = userService.getUserByUserCode(userEntity);
if(StringUtils.isNotEmpty(user.getMobile()) && StringUtils.isNotEmpty(seatMobileBean.getSeatMobile())){
if(!user.getMobile().equals(seatMobileBean.getSeatMobile())){
if (StringUtils.isNotEmpty(user.getMobile()) && StringUtils.isNotEmpty(seatMobileBean.getSeatMobile())) {
if (!user.getMobile().equals(seatMobileBean.getSeatMobile())) {
seatMobileBean.setSeatMobile(user.getMobile());
seatMobileBean.setSeatMobileNumber(Util.formatedMobile(user.getMobile()));
userService.updateUserSeatMobile(seatMobileBean);
......@@ -641,9 +619,9 @@ public class UserController {
// userService.updateUserLoginInfo(deviceInfoEntity);// 记录用户最新登录信息
// userService.updateUserDeviceInfo(deviceInfoEntity);// 保存登录的设备信息,用于推送
userService.addLoginLog(logoutDeviceInfoEntity);// 添加登录日志
// 退出后清空用户的设备信息
if(GConstants.getBoolean("is.clean.on.logout", false)){
if (GConstants.getBoolean("is.clean.on.logout", false)) {
// String clientip = Util.getOnlineIP(request);
// String clientip = StringUtils.isEmpty(bean.getClientip()) ? Util.getOnlineIP(request) : bean.getClientip();
UserLoginLogEntity deviceInfoEntity = new UserLoginLogEntity();
......@@ -654,7 +632,7 @@ public class UserController {
deviceInfoEntity.setDeviceToken("");
deviceInfoEntity.setPlatform("");
deviceInfoEntity.setVersion("");
userService.updateUserDeviceInfo(deviceInfoEntity);// 保存登录的设备信息,用于推送
}
responseBean.setMessage(GConstants.OK);
......@@ -718,14 +696,15 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
/**
* 获取用户最新信息
*
* @author renmb
* @time 2016年12月11日
*
* @param request
* @param requestBean
* @return
* @author renmb
* @time 2016年12月11日
*/
@ResponseBody
@RequestMapping("/refresh")
......@@ -735,15 +714,15 @@ public class UserController {
UserRefreshBean loginBean = requestBean.getObjectBean(UserRefreshBean.class);
message = userService.validate(loginBean);
if (message == null) {
LoginUserEntity userEntity = userService.findUserById(loginBean.getUserId());
if(userEntity == null){// 查询不到用户信息
if (userEntity == null) {// 查询不到用户信息
responseBean.setStatus(ErrorCode.STATUS_CODE_4102);
responseBean.setMessage("用户不存在");
return responseBean;
} else if (GConstants.NO.equals(userEntity.getLoginFlag())) {// 用户被查封
responseBean.setStatus(ErrorCode.STATUS_CODE_4101);
responseBean.setMessage("该已帐号禁止登录");
return responseBean;
......@@ -762,7 +741,7 @@ public class UserController {
// deviceInfoEntity.setDeviceToken(loginBean.getDeviceToken());
// deviceInfoEntity.setPlatform(loginBean.getPlatform());
// deviceInfoEntity.setVersion(loginBean.getVersionName());
UserLoginLogEntity deviceInfoEntity = new UserLoginLogEntity();
deviceInfoEntity.setUserId(userEntity.getId());
deviceInfoEntity.setLoginDate(new Date());
......@@ -775,28 +754,28 @@ public class UserController {
deviceInfoEntity.setPlatform(loginBean.getPlatform());
deviceInfoEntity.setVersion(loginBean.getVersionName());
deviceInfoEntity.setDeviceName(loginBean.getDeviceName());
userService.updateUserDeviceInfo(deviceInfoEntity);// 保存登录的设备信息,用于推送
boolean hashSeat = false;
List<String> seatIds = new ArrayList<>();
List<UserSeatEntity> userSeatList = userService.getUserSeatByUserCode(userEntity);
if(userSeatList != null && userSeatList.size()>0){// 用户拥有席位信息
for (int i = 0; i < userSeatList.size(); i ++) {
if (userSeatList != null && userSeatList.size() > 0) {// 用户拥有席位信息
for (int i = 0; i < userSeatList.size(); i++) {
UserSeatEntity seat = userSeatList.get(i);
if(!hashSeat && seat.getSeatId().equals(loginBean.getSeatId())){
if (!hashSeat && seat.getSeatId().equals(loginBean.getSeatId())) {
hashSeat = true;
}
seatIds.add(seat.getSeatId());
if(StringUtils.isEmpty(seat.getPhoto())){
if (StringUtils.isEmpty(seat.getPhoto())) {
seat.setPhoto(GConstants.DEFAULT_SEAT_PHOTO);// 设置默认头像
}
seat.setPhoto(Util.getAbsoluteUrl(seat.getPhoto()));
seat.setHuaweiUCAccount(Util.getUcAccount(seat.getSeatId()));
seat.setHuaweiUCPassword(seat.getSeatId().length() > 1 ? seat.getSeatId().substring(0,2) + "@foc2016" : String.format("%02d", seat.getSeatId()) + "@foc2016");
seat.setHuaweiUCPassword(seat.getSeatId().length() > 1 ? seat.getSeatId().substring(0, 2) + "@foc2016" : String.format("%02d", seat.getSeatId()) + "@foc2016");
}
// List<UserState> seatStates = huaweiInterfaseService.queryUserStateList(seatIds);
// if (seatStates != null && seatStates.size()>0) {
......@@ -815,13 +794,13 @@ public class UserController {
// }
userEntity.setUserSeatList(userSeatList);
}
if("SEAT".equals(loginBean.getLoginChannel())){// 当前用户是席位登录
if(hashSeat){// 有席位信息
if ("SEAT".equals(loginBean.getLoginChannel())) {// 当前用户是席位登录
if (hashSeat) {// 有席位信息
SeatLoginBean seatLoginBean = new SeatLoginBean();
seatLoginBean.setUserId(loginBean.getUserId());
seatLoginBean.setSeatId(loginBean.getSeatId());
userService.updateUserSeat(seatLoginBean);
} else {// 席位已经被删除或者禁止登陆
responseBean.setStatus(ErrorCode.STATUS_CODE_4301);
......@@ -829,37 +808,37 @@ public class UserController {
return responseBean;
}
}
userEntity.setPhoto(Util.getAbsoluteUrl(userEntity.getPhoto()));// 设置用户头像
if(userEntity.getHuaweiStatus() == 1 &&
StringUtils.isNotBlank(userEntity.getHuaweiNum())){// 该用户用于华为账号
if (userEntity.getHuaweiStatus() == 1 &&
StringUtils.isNotBlank(userEntity.getHuaweiNum())) {// 该用户用于华为账号
userEntity.setHuaweiUCAccount(Util.getUcAccount(userEntity.getId()));
userEntity.setHuaweiUCPassword(userEntity.getId().length() > 1 ? userEntity.getId().substring(0,2) + "@foc2016" : String.format("%02d", userEntity.getId()) + "@foc2016");
} else{
userEntity.setHuaweiUCPassword(userEntity.getId().length() > 1 ? userEntity.getId().substring(0, 2) + "@foc2016" : String.format("%02d", userEntity.getId()) + "@foc2016");
} else {
userEntity.setHuaweiStatus(0);
}
List<JSONObject> permissionList =new ArrayList<JSONObject>();
if("FOCJZZD".equals(loginBean.getPermission())){// 机组转单权限设置,树形格式
List<JSONObject> permissionList = new ArrayList<JSONObject>();
if ("FOCJZZD".equals(loginBean.getPermission())) {// 机组转单权限设置,树形格式
permissionList = userRolesService.getList(userEntity.getId(), loginBean.getPermission());// 获取用户权限列表信息
} else{// 一期权限格式,MAP格式
} else {// 一期权限格式,MAP格式
List<UserRolesEntity> permiss = userRolesService.getUserPermissionList(userEntity.getId());
for(UserRolesEntity role:permiss){
JSONObject json=new JSONObject();
for (UserRolesEntity role : permiss) {
JSONObject json = new JSONObject();
json.put("permission", role.getPermission());
json.put("menuName", role.getMenuName());
permissionList.add(json);
}
}
userEntity.setPermissionList(permissionList);
UserRolesBean bean =new UserRolesBean();
UserRolesBean bean = new UserRolesBean();
bean.setUserCode(userEntity.getId());
userEntity.setVerify("0");// 默认有航线论证权限(0表示有航线论证权限,1是没有)
List<InformationEntity> informationEntity= userRolesService.getInformation( bean);
if(informationEntity==null || informationEntity.size()==0){// 获取航线论证的部门信息
List<InformationEntity> informationEntity = userRolesService.getInformation(bean);
if (informationEntity == null || informationEntity.size() == 0) {// 获取航线论证的部门信息
userEntity.setVerify("1");// 无航向论证权限
}
userEntity.setShowPhone(userEntity.getPhone());
......@@ -873,14 +852,15 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
/**
* 新版本登录测试(仅限于测试使用不用于生成使用)
*
* @author renmb
* @time 2017年1月6日
*
* @param request
* @param requestBean
* @return
* @author renmb
* @time 2017年1月6日
*/
@ResponseBody
@RequestMapping("/newLogin")
......@@ -891,17 +871,17 @@ public class UserController {
LoginBean loginBean = requestBean.getObjectBean(LoginBean.class);
message = userService.validate(loginBean);
if (message == null) {
boolean status = HTTPClientUtil.callLogin(loginBean.getLoginName(), loginBean.getPassword());
if(status){
if (status) {
LoginUserEntity userEntity = userService.findUserByLoginName(loginBean);
responseBean.setData(userEntity);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean;
} else{
} else {
responseBean.setData(status);
responseBean.setMessage("登录失败");
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
......@@ -912,14 +892,15 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
/**
* 验证海航员工密码接口
*
* @author renmb
* @time 2017年1月6日
*
* @param request
* @param requestBean
* @return
* @author renmb
* @time 2017年1月6日
*/
@ResponseBody
@RequestMapping("/haihangLogin")
......@@ -930,17 +911,17 @@ public class UserController {
LoginBean loginBean = requestBean.getObjectBean(LoginBean.class);
message = userService.validate(loginBean);
if (message == null) {
boolean status = userService.validateServerPassword(loginBean);
if(status){
if (status) {
LoginUserEntity userEntity = userService.findUserByLoginName(loginBean);
responseBean.setData(userEntity);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean;
} else{
} else {
responseBean.setData(status);
responseBean.setMessage("登录失败");
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
......@@ -951,14 +932,15 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
/**
* 修改用户的席位电话
*
* @author renmb
* @time 2017年1月18日
*
* @param request
* @param requestBean
* @return
* @author renmb
* @time 2017年1月18日
*/
@ResponseBody
@RequestMapping("/edit/seat/mobile")
......@@ -971,13 +953,13 @@ public class UserController {
if (message == null) {
String seatMobilePhone = "";
//修改允许席位手机号为空,如果为空,则修改席位手机号为用户手机号
if(StringUtils.isEmpty(loginBean.getSeatMobile())){
if (StringUtils.isEmpty(loginBean.getSeatMobile())) {
UserEntity userEntity = new UserEntity();
userEntity.setUsercode(loginBean.getUserId());
User user = userService.getUserByUserCode(userEntity);
seatMobilePhone = user.getMobile();
}
if(StringUtils.isNotEmpty(seatMobilePhone)){
if (StringUtils.isNotEmpty(seatMobilePhone)) {
loginBean.setSeatMobile(seatMobilePhone);
loginBean.setSeatMobileNumber(Util.formatedMobile(seatMobilePhone));
userService.updateUserSeatMobile(loginBean);
......@@ -992,46 +974,46 @@ public class UserController {
responseBean.setMessage(message);
return responseBean;
}
/**
* 更新外部联系人手机号、座机号
*
* @author zhanglg
* @time 2017年2月22日
*
* @param requestBean
* @return
* @author zhanglg
* @time 2017年2月22日
*/
@ResponseBody
@RequestMapping(value = "/edit/outerUser")
public ResponseBean updateOuterUser(RequestBean requestBean){
public ResponseBean updateOuterUser(RequestBean requestBean) {
ResponseBean responseBean = new ResponseBean();
OuterUserBean bean = requestBean.getObjectBean(OuterUserBean.class);
String message = userService.validate(bean);
if(message == null){// 校验通过
if (message == null) {// 校验通过
LoginUserEntity entity = userService.findUserById(bean.getUserCode());
if(entity==null){
responseBean.setMessage("用户不存在");
responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean;
}else{
if(!"3".equals(entity.getUserType())){
responseBean.setMessage("非外部用不允许修改");
responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean;
}
}
if(StringUtils.isBlank(bean.getPhone())){
bean.setPhone(entity.getPhone());
}
if(StringUtils.isBlank(bean.getMobile())){
bean.setMobile(entity.getMobile());
}
userService.updateOuterUser(bean);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean;
if (entity == null) {
responseBean.setMessage("用户不存在");
responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean;
} else {
if (!"3".equals(entity.getUserType())) {
responseBean.setMessage("非外部用不允许修改");
responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
return responseBean;
}
}
if (StringUtils.isBlank(bean.getPhone())) {
bean.setPhone(entity.getPhone());
}
if (StringUtils.isBlank(bean.getMobile())) {
bean.setMobile(entity.getMobile());
}
userService.updateOuterUser(bean);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
return responseBean;
}
responseBean.setMessage(message);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
......@@ -1039,27 +1021,24 @@ public class UserController {
}
private void checkIpLimit(RedisUtils redisUtils, String userIp, int indexDb, ResponseBean responseBean) {
private void checkIpLimit(String userIp) {
//ip受限时间与次数
int ipWithinSeconds = Integer.valueOf(PropertiesUtils.getProperties().get("ipWithinSeconds").toString());
int ipLimitTimes = Integer.valueOf(PropertiesUtils.getProperties().get("ipLimitTimes").toString());
//如果redis没有key
if(!redisUtils.exists(userIp,indexDb)){
redisUtils.set(userIp,1,indexDb);
if (!redisUtils.exists(userIp, indexDb)) {
redisUtils.set(userIp, 1, indexDb);
//设置过期时间
redisUtils.expire(userIp,ipWithinSeconds,indexDb);
}else {
redisUtils.expire(userIp, ipWithinSeconds, indexDb);
} else {
//如果存在key
redisUtils.incrNotResetExpireTime(userIp,indexDb);
if (Integer.valueOf(redisUtils.get(userIp,indexDb)) >= ipLimitTimes ){
redisUtils.del(userIp,indexDb);
redisUtils.incrNotResetExpireTime(userIp, indexDb);
if (Integer.valueOf(redisUtils.get(userIp, indexDb)) >= ipLimitTimes) {
redisUtils.del(userIp, indexDb);
userService.insertInfoByIp(userIp);
responseBean.setMessage("IP受限!请联系管理员");
}
}
}
}
......@@ -17,6 +17,7 @@ public class LoginBean extends GenericBean {
private String verifyCode;
private String permission;
private String clientip;
private String userIp;
public String getPermission() {
return permission;
......@@ -58,4 +59,11 @@ public class LoginBean extends GenericBean {
this.clientip = clientip;
}
public String getUserIp() {
return userIp;
}
public void setUserIp(String userIp) {
this.userIp = userIp;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment