Commit a283f243 authored by 赵啸非's avatar 赵啸非

修改用户登录,数据库表,删除资源resource

parent 6cb61c56
<component name="libraryTable">
<library name="Maven: org.springframework:spring-test:5.3.20">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../MavenRepository/maven_jar/org/springframework/spring-test/5.3.20/spring-test-5.3.20.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../MavenRepository/maven_jar/org/springframework/spring-test/5.3.20/spring-test-5.3.20-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../MavenRepository/maven_jar/org/springframework/spring-test/5.3.20/spring-test-5.3.20-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
package com.mortals.xhx.common.code;
/**
* @author karlhoo
*/
public enum ApiRespCodeEnum {
/** 接收成功 */
SUCCESS(1, "接收成功"),
/** 执行失败 */
FAILED(2,"执行失败"),
;
private final Integer value;
private final String label;
ApiRespCodeEnum(Integer value, String label) {
this.value = value;
this.label = label;
}
public int getValue() {
return this.value;
}
public String getLabel() {
return this.label;
}
}
package com.mortals.xhx.feign.area;
import com.alibaba.fastjson.JSON;
import com.mortals.xhx.common.code.ApiRespCodeEnum;
import com.mortals.xhx.feign.IFeign;
import com.mortals.xhx.feign.req.BaseUserQuery;
import com.mortals.xhx.feign.req.BaseUserReq;
......@@ -43,7 +45,10 @@ class AreaFeignFallbackFactory implements FallbackFactory<IApiAreaFeign> {
public String getListByParentId(String parentId, String token) {
log.error("暂时无法获取区域信息,请稍后再试!parentId:{},token:{}", parentId, token);
log.error(t.getMessage());
return null;
ApiResp<String> failResp = new ApiResp<>();
failResp.setCode(ApiRespCodeEnum.FAILED.getValue());
failResp.setMsg("暂时无法获取区域信息,请稍后再试!");
return JSON.toJSONString(failResp);
}
};
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -2,30 +2,21 @@ package com.mortals.xhx.base.login.web;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.ap.CookieService;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.service.IAuthTokenService;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.ITokenService;
import com.mortals.framework.service.IUser;
import com.mortals.framework.util.AESUtil;
import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.valid.service.ValidCodeService;
import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.service.MenuService;
import com.mortals.xhx.module.model.model.ModelEntity;
import com.mortals.xhx.module.model.service.ModelService;
import com.mortals.xhx.module.resource.service.ResourceService;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -35,7 +26,6 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -47,16 +37,10 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
@Autowired
private UserService userService;
@Autowired
private ResourceService resourceService;
@Autowired
private MenuService menuService;
// @Autowired
// private ITokenService tokenService;
@Autowired
private ICacheService cacheService;
@Autowired
private ModelService modelService;
@Autowired
private IAuthTokenService authTokenService;
@RequestMapping("login")
......@@ -77,20 +61,20 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
userEntity = userService.doLogin(loginName, password, ip);
userEntity.setLastLoginAddress(ip);
recordSysLog(request, userEntity, "用户登录系统成功!");
// 返回拥有的菜单数据
Set<String> urls = resourceService.findUrlSetByUserId(userEntity.getId());
//菜单列表
List<MenuEntity> menuList = menuService.findTreeMenu(userEntity, urls);
userEntity.setMenuList(menuList);
List<ModelEntity> modelList = this.service.findModelList(userEntity.getId());
userEntity.setModelList(modelList);
//根据用户id获取角色所分配的资源路径
// Set<String> urls = resourceService.findUrlSetByUserId(userEntity.getId());
// //菜单列表
// List<MenuEntity> menuList = menuService.findTreeMenu(userEntity, urls);
// userEntity.setMenuList(menuList);
// List<ModelEntity> modelList = this.service.findModelList(userEntity.getId());
// userEntity.setModelList(modelList);
userEntity.setLoginTime(System.currentTimeMillis());
userEntity.setToken(IdUtil.fastSimpleUUID());
userEntity.setExpireTime(DateUtils.addCurrDate(7).getTime());
userEntity.setMenuUrl(generateMenuUrlCode(urls));
//userEntity.setMenuUrl(generateMenuUrlCode(urls));
String token = authTokenService.createToken(userEntity);
generateMenuUrlCode(urls);
//generateMenuUrlCode(urls);
//this.generateBlackCookie(request, response, loginName, urls);
data.put("token", token);
......@@ -98,7 +82,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
ret.put(KEY_RESULT_DATA, data);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "用户登录系统成功!");
ret.put("resources", urls);
//ret.put("resources", urls);
return ret.toJSONString();
} catch (Exception e) {
log.error("login error ", e);
......@@ -111,7 +95,6 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
@RequestMapping("logout")
public void logout() throws Exception {
recordSysLog(request, "退出登录");
authTokenService.delUser(authTokenService.getToken(request));
super.removeCurrUser(request);
}
......@@ -122,21 +105,21 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
if (user == null) {
return "";
}
Set<String> urls = resourceService.findUrlSetByUserId(user.getId());
List<MenuEntity> outlookBarList = menuService.findTreeMenu(user, urls);
//Set<String> urls = resourceService.findUrlSetByUserId(user.getId());
//List<MenuEntity> outlookBarList = menuService.findTreeMenu(user, urls);
String currUserName = user.getRealName();
if (currUserName == null || currUserName.trim().length() == 0) {
currUserName = "管理员";
}
JSONObject data = new JSONObject();
data.put("barList", outlookBarList);
//data.put("barList", outlookBarList);
data.put("id", user.getId());
data.put("userType", user.getUserType());
ret.put(KEY_RESULT_DATA, data);
//this.generateBlackCookie(request, response, user.getLoginName(), urls);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "用户登录系统成功!");
ret.put("resources", urls);
//ret.put("resources", urls);
return ret.toJSONString();
}
......
......@@ -10,7 +10,7 @@ import com.mortals.xhx.module.menu.model.vo.MenuVo;
* 菜单信息业务实体对象
*
* @author zxfei
* @date 2022-05-25
* @date 2022-06-02
*/
public class MenuEntity extends MenuVo {
......@@ -29,50 +29,42 @@ public class MenuEntity extends MenuVo {
*/
private Long parentId;
/**
* 排序编号
*/
private Long orderId;
/**
* 菜单状态,0:禁用,1:启用,默认1
*/
private Integer status;
/**
* 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* 链接方式,(0.普通,1.弹出,2.脚本)
*/
private Integer linkType;
/**
* 分组编号,使用菜单分隔符按该值分隔,默认1
*/
private Long groupId;
/**
*
*/
private String groupName;
/**
* 主菜单图标,主菜单图标的css样式名
*/
private String imgPath;
/**
* 按钮图标,按钮图标的css样式名
* 按钮图标
*/
private String buttonImgPath;
/**
* 常用菜单图标,常用菜单图标的css样式名
* 常用菜单图标
*/
private String imgCommPath;
/**
* 是否常用菜单,0:非常用,1:常用,默认0
* 菜单显示(0.隐藏,1.显示)
*/
private Integer commMenu;
private Integer visible;
/**
* 菜单类型,0:主菜单,1:非主菜单,默认0
* 菜单类型(0.目录,1.菜单,2.按钮)
*/
private Integer menuType;
/**
* 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* 菜单状态(0.禁用,1.启用)
*/
private Integer status;
/**
* 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
*/
private Integer authType;
/**
* 排序编号
*/
private Integer orderId;
/**
* 创建用户名称
*/
private String createUserName;
......@@ -123,76 +115,20 @@ public class MenuEntity extends MenuVo {
this.parentId = parentId;
}
/**
* 获取 排序编号
* @return Long
*/
public Long getOrderId(){
return orderId;
}
/**
* 设置 排序编号
* @param orderId
*/
public void setOrderId(Long orderId){
this.orderId = orderId;
}
/**
* 获取 菜单状态,0:禁用,1:启用,默认1
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 菜单状态,0:禁用,1:启用,默认1
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* 获取 链接方式,(0.普通,1.弹出,2.脚本)
* @return Integer
*/
public Integer getLinkType(){
return linkType;
}
/**
* 设置 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* 设置 链接方式,(0.普通,1.弹出,2.脚本)
* @param linkType
*/
public void setLinkType(Integer linkType){
this.linkType = linkType;
}
/**
* 获取 分组编号,使用菜单分隔符按该值分隔,默认1
* @return Long
*/
public Long getGroupId(){
return groupId;
}
/**
* 设置 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupId
*/
public void setGroupId(Long groupId){
this.groupId = groupId;
}
/**
* 获取
* @return String
*/
public String getGroupName(){
return groupName;
}
/**
* 设置
* @param groupName
*/
public void setGroupName(String groupName){
this.groupName = groupName;
}
/**
* 获取 主菜单图标,主菜单图标的css样式名
* @return String
*/
......@@ -207,76 +143,104 @@ public class MenuEntity extends MenuVo {
this.imgPath = imgPath;
}
/**
* 获取 按钮图标,按钮图标的css样式名
* 获取 按钮图标
* @return String
*/
public String getButtonImgPath(){
return buttonImgPath;
}
/**
* 设置 按钮图标,按钮图标的css样式名
* 设置 按钮图标
* @param buttonImgPath
*/
public void setButtonImgPath(String buttonImgPath){
this.buttonImgPath = buttonImgPath;
}
/**
* 获取 常用菜单图标,常用菜单图标的css样式名
* 获取 常用菜单图标
* @return String
*/
public String getImgCommPath(){
return imgCommPath;
}
/**
* 设置 常用菜单图标,常用菜单图标的css样式名
* 设置 常用菜单图标
* @param imgCommPath
*/
public void setImgCommPath(String imgCommPath){
this.imgCommPath = imgCommPath;
}
/**
* 获取 是否常用菜单,0:非常用,1:常用,默认0
* 获取 菜单显示(0.隐藏,1.显示)
* @return Integer
*/
public Integer getCommMenu(){
return commMenu;
public Integer getVisible(){
return visible;
}
/**
* 设置 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenu
* 设置 菜单显示(0.隐藏,1.显示)
* @param visible
*/
public void setCommMenu(Integer commMenu){
this.commMenu = commMenu;
public void setVisible(Integer visible){
this.visible = visible;
}
/**
* 获取 菜单类型,0:主菜单,1:非主菜单,默认0
* 获取 菜单类型(0.目录,1.菜单,2.按钮)
* @return Integer
*/
public Integer getMenuType(){
return menuType;
}
/**
* 设置 菜单类型,0:主菜单,1:非主菜单,默认0
* 设置 菜单类型(0.目录,1.菜单,2.按钮)
* @param menuType
*/
public void setMenuType(Integer menuType){
this.menuType = menuType;
}
/**
* 获取 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* 获取 菜单状态(0.禁用,1.启用)
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 菜单状态(0.禁用,1.启用)
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @return Integer
*/
public Integer getAuthType(){
return authType;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* 设置 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authType
*/
public void setAuthType(Integer authType){
this.authType = authType;
}
/**
* 获取 排序编号
* @return Integer
*/
public Integer getOrderId(){
return orderId;
}
/**
* 设置 排序编号
* @param orderId
*/
public void setOrderId(Integer orderId){
this.orderId = orderId;
}
/**
* 获取 创建用户名称
* @return String
*/
......@@ -315,17 +279,15 @@ public class MenuEntity extends MenuVo {
sb.append(",name:").append(getName());
sb.append(",url:").append(getUrl());
sb.append(",parentId:").append(getParentId());
sb.append(",orderId:").append(getOrderId());
sb.append(",status:").append(getStatus());
sb.append(",linkType:").append(getLinkType());
sb.append(",groupId:").append(getGroupId());
sb.append(",groupName:").append(getGroupName());
sb.append(",imgPath:").append(getImgPath());
sb.append(",buttonImgPath:").append(getButtonImgPath());
sb.append(",imgCommPath:").append(getImgCommPath());
sb.append(",commMenu:").append(getCommMenu());
sb.append(",visible:").append(getVisible());
sb.append(",menuType:").append(getMenuType());
sb.append(",status:").append(getStatus());
sb.append(",authType:").append(getAuthType());
sb.append(",orderId:").append(getOrderId());
sb.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
......@@ -338,28 +300,24 @@ public class MenuEntity extends MenuVo {
this.parentId = null;
this.orderId = null;
this.status = 1;
this.linkType = 0;
this.groupId = 1L;
this.groupName = "";
this.imgPath = "";
this.buttonImgPath = "";
this.imgCommPath = "";
this.commMenu = 0;
this.visible = 1;
this.menuType = 0;
this.status = 1;
this.authType = 3;
this.orderId = 0;
this.createUserName = "";
}
}
\ No newline at end of file
......@@ -13,6 +13,6 @@ import java.util.List;
*/
@Data
public class MenuVo extends BaseEntityLong {
private List<MenuEntity> childList = new ArrayList<MenuEntity>();
private List<MenuEntity> childList = new ArrayList<>();
}
\ No newline at end of file
......@@ -38,8 +38,10 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
@Override
public List<MenuEntity> findTreeMenu(IUser user, Set<String> urls) throws AppException {
//保存已有菜单
Set<Long> authIds = new HashSet<>();
Map<Long, MenuEntity> menuMap = new HashMap<>();
//获取所有启用的菜单
List<MenuEntity> userModuleList = this.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
......@@ -54,14 +56,15 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
Long[] ids = authIds.toArray(new Long[authIds.size()]);
for (Long id : ids) {
MenuEntity menu = menuMap.get(id);
//找父节点
while (menu != null) {
authIds.add(menu.getId());
menu = menuMap.get(menu.getParentId());
}
}
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
List<MenuEntity> norightList = new ArrayList<MenuEntity>();
List<MenuEntity> outlookBar = new ArrayList<>();
List<MenuEntity> norightList = new ArrayList<>();
for (MenuEntity sysModule : userModuleList) {
if (!user.isAdmin() && !authIds.contains(sysModule.getId())) {
norightList.add(sysModule);
......@@ -80,7 +83,7 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
}
public List<MenuEntity> findTreeMenu() throws AppException {
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
Map<Long, MenuEntity> menuMap = new HashMap<>();
List<MenuEntity> userModuleList = this.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
......@@ -88,7 +91,7 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
}
menuMap.put(sysModule.getId(), sysModule);
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
List<MenuEntity> outlookBar = new ArrayList<>();
for (MenuEntity sysModule : userModuleList) {
if (sysModule.getParentId() == null || sysModule.getParentId().longValue() == 0) {
outlookBar.add(sysModule);
......@@ -145,7 +148,7 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
if (preEntity != null && curEntity != null) {
//交换
Long temp = preEntity.getOrderId();
Integer temp = preEntity.getOrderId();
preEntity.setOrderId(curEntity.getOrderId());
curEntity.setOrderId(temp);
......@@ -159,8 +162,8 @@ public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity
protected void saveBefore(MenuEntity entity, Context context) throws AppException {
MenuQuery query = new MenuQuery();
query.setParentId(entity.getParentId());
Comparator<Long> comparator = Comparator.comparing(Long::longValue);
Optional<Long> maxOptional = this.find(query).stream().map(MenuEntity::getOrderId).filter(f->f!=9999).max(comparator);
Comparator<Integer> comparator = Comparator.comparing(Integer::intValue);
Optional<Integer> maxOptional = this.find(query).stream().map(MenuEntity::getOrderId).filter(f->f!=9999).max(comparator);
maxOptional.ifPresent(e -> {
e=e+1;
entity.setOrderId(e);
......
......@@ -34,7 +34,6 @@ public class MenuController extends BaseCRUDJsonBodyMappingController<MenuServic
private ParamService paramService;
public MenuController() {
super.setFormClass(MenuForm.class);
super.setModuleDesc("菜单信息业务");
}
......
package com.mortals.xhx.module.menu.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.model.MenuQuery;
/**
* Menu
*
* 菜单信息业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class MenuForm extends BaseCRUDFormLong<MenuEntity> {
private MenuEntity entity = new MenuEntity();
private MenuQuery query = new MenuQuery();
public MenuForm(){
}
@Override
public MenuEntity getEntity() {
return entity;
}
public void setMenu(MenuEntity entity) {
this.entity = entity;
}
@Override
public MenuQuery getQuery() {
return query;
}
public void setQuery(MenuQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.model.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.model.model.ModelEntity;
import java.util.List;
/**
* 系统模块Dao
* 系统模块 DAO接口
*
* @author zxfei
* @date 2022-06-01
*/
public interface ModelDao extends ICRUDDao<ModelEntity,Long>{
}
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