Commit f9dc2bbc authored by 廖旭伟's avatar 廖旭伟

基础平台工作人员登录增加记录最后一次登录时间和ip;门户用户修改密码接口参数提交方式改为requestbody;登录用户菜单默认添加一级菜单

parent 2511fe88
......@@ -2,6 +2,9 @@ package com.mortals.xhx.module.workman.model;
import com.alibaba.fastjson.annotation.JSONField;
import com.mortals.xhx.module.workman.model.vo.WorkmanVo;
import java.util.Date;
/**
* 工作人员实体对象
*
......@@ -105,6 +108,14 @@ public class WorkmanEntity extends WorkmanVo {
*/
@JSONField(serialize = false)
private String loginPwd;
/**
* 最后一次登录时间
*/
private Date lastLoginTime;
/**
* 最后一次登录地址
*/
private String lastLoginAddress;
public WorkmanEntity(){}
......@@ -431,7 +442,34 @@ public class WorkmanEntity extends WorkmanVo {
this.loginPwd = loginPwd;
}
/**
* 获取 最后一次登录时间
* @return Date
*/
public Date getLastLoginTime(){
return lastLoginTime;
}
/**
* 设置 最后一次登录时间
* @param lastLoginTime
*/
public void setLastLoginTime(Date lastLoginTime){
this.lastLoginTime = lastLoginTime;
}
/**
* 获取 最后一次登录地址
* @return String
*/
public String getLastLoginAddress(){
return lastLoginAddress;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddress
*/
public void setLastLoginAddress(String lastLoginAddress){
this.lastLoginAddress = lastLoginAddress;
}
@Override
......@@ -475,6 +513,8 @@ public class WorkmanEntity extends WorkmanVo {
sb.append(",online:").append(getOnline());
sb.append(",loginName:").append(getLoginName());
sb.append(",loginPwd:").append(getLoginPwd());
sb.append(",lastLoginTime:").append(getLastLoginTime());
sb.append(",lastLoginAddress:").append(getLastLoginAddress());
return sb.toString();
}
......@@ -525,5 +565,9 @@ public class WorkmanEntity extends WorkmanVo {
this.loginName = "";
this.loginPwd = "";
this.lastLoginTime = null;
this.lastLoginAddress = "";
}
}
\ No newline at end of file
......@@ -177,6 +177,15 @@ public class WorkmanQuery extends WorkmanEntity {
/** 密码 */
private List<String> loginPwdList;
/** 开始 最后一次登录时间 */
private String lastLoginTimeStart;
/** 结束 最后一次登录时间 */
private String lastLoginTimeEnd;
/** 最后一次登录地址 */
private List<String> lastLoginAddressList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<WorkmanQuery> orConditionList;
......@@ -1065,6 +1074,55 @@ public class WorkmanQuery extends WorkmanEntity {
public void setLoginPwdList(List<String> loginPwdList){
this.loginPwdList = loginPwdList;
}
/**
* 获取 开始 最后一次登录时间
* @return lastLoginTimeStart
*/
public String getLastLoginTimeStart(){
return this.lastLoginTimeStart;
}
/**
* 设置 开始 最后一次登录时间
* @param lastLoginTimeStart
*/
public void setLastLoginTimeStart(String lastLoginTimeStart){
this.lastLoginTimeStart = lastLoginTimeStart;
}
/**
* 获取 结束 最后一次登录时间
* @return lastLoginTimeEnd
*/
public String getLastLoginTimeEnd(){
return this.lastLoginTimeEnd;
}
/**
* 设置 结束 最后一次登录时间
* @param lastLoginTimeEnd
*/
public void setLastLoginTimeEnd(String lastLoginTimeEnd){
this.lastLoginTimeEnd = lastLoginTimeEnd;
}
/**
* 获取 最后一次登录地址
* @return lastLoginAddressList
*/
public List<String> getLastLoginAddressList(){
return this.lastLoginAddressList;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddressList
*/
public void setLastLoginAddressList(List<String> lastLoginAddressList){
this.lastLoginAddressList = lastLoginAddressList;
}
/**
* 设置 序号,主键,自增长
* @param id
......
......@@ -20,10 +20,11 @@ public interface WorkmanService extends ICRUDCacheService<WorkmanEntity,Long> {
*
* @param loginName 登录用户名
* @param password 登录密码
* @param ip ip地址
* @return
* @throws AppException
*/
WorkmanEntity doLogin(String loginName, String password) throws AppException;
WorkmanEntity doLogin(String loginName, String password,String ip) throws AppException;
......
......@@ -88,7 +88,7 @@ public class WorkmanServiceImpl extends AbstractCRUDCacheServiceImpl<WorkmanDao,
@Override
public WorkmanEntity doLogin(String loginName, String password) throws AppException {
public WorkmanEntity doLogin(String loginName, String password,String loginIp) throws AppException {
WorkmanEntity workmanEntity = this.selectOne(new WorkmanQuery().loginName(loginName));
if (workmanEntity == null || !workmanEntity.getLoginName().equals(loginName)) {
throw new AppException("用户名不存在!");
......@@ -100,7 +100,11 @@ public class WorkmanServiceImpl extends AbstractCRUDCacheServiceImpl<WorkmanDao,
} catch (Exception e) {
throw new AppException("密码验认出错!", e);
}
WorkmanEntity update = new WorkmanEntity();
update.setId(workmanEntity.getId());
update.setLastLoginAddress(loginIp);
update.setLastLoginTime(new Date());
this.dao.update(update);
return workmanEntity;
}
......
......@@ -63,7 +63,8 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
public String doLogin(@RequestBody WorkmanEntity query) {
JSONObject ret = new JSONObject();
try {
WorkmanEntity workmanEntity = this.service.doLogin(query.getLoginName(), query.getLoginPwd());
String ip = super.getRequestIP(request);
WorkmanEntity workmanEntity = this.service.doLogin(query.getLoginName(), query.getLoginPwd(),ip);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "工作人员登录成功!");
ret.put(KEY_RESULT_DATA, workmanEntity);
......
......@@ -18,6 +18,7 @@ import com.mortals.xhx.feign.rsp.ApiResp;
import com.mortals.xhx.module.menu.model.MenuQuery;
import com.mortals.xhx.module.menu.model.vo.MenuNodeVO;
import com.mortals.xhx.module.role.service.RoleModelService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
......@@ -126,9 +127,21 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
public List<MenuEntity> findTreeMenuByUser(IUser user) throws AppException {
if (!user.isAdmin()) {
List<MenuEntity> menuList = dao.selectMenuTreeByUserId(user.getId());
//转换为树结构
List<MenuEntity> menuTreeList = getChildPerms(menuList, -1);
return menuTreeList;
if(CollectionUtils.isNotEmpty(menuList)) {
//转换为树结构
List<MenuEntity> menuTreeList = getChildPerms(menuList, -1);
return menuTreeList;
}else {
MenuQuery query = new MenuQuery();
query.setStatus(YesNo.YES.getValue());
query.setParentId(-1l);
List<OrderCol> orderColList = new ArrayList<OrderCol>();
orderColList.add(new OrderCol("parentId"));
orderColList.add(new OrderCol("orderId"));
query.setOrderColList(orderColList);
List<MenuEntity> menuEntityList = this.find(query);
return menuEntityList;
}
} else {
return findAllEnable();
}
......
......@@ -54,6 +54,9 @@ public class UserVo extends BaseEntityLong {
/** 查询条件 */
private String query;
private String oldPwd;
private String newPwd;
public static void main(String[] args) {
UserQuery userEntity = new UserQuery();
......
......@@ -160,10 +160,10 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
@RequestMapping(value = "change/password", method = RequestMethod.POST)
public String changePassword(@RequestParam String oldPwd, @RequestParam String newPwd) {
public String changePassword(@RequestBody UserEntity entity) {
JSONObject ret = new JSONObject();
try {
service.updateUserPwd(super.getCurUser().getLoginName(), oldPwd, newPwd);
service.updateUserPwd(super.getCurUser().getLoginName(), entity.getOldPwd(), entity.getNewPwd());
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "密码修改成功!");
} catch (Exception e) {
......
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