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

修改门户资源鉴权

parent d500463e
...@@ -5,6 +5,7 @@ import cn.hutool.core.util.URLUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.util.URLUtil;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -13,6 +14,7 @@ import com.mortals.framework.model.PageInfo; ...@@ -13,6 +14,7 @@ import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.framework.util.DataUtil; import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.user.service.UserService; import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.AreaLevelDxTypeEnum; import com.mortals.xhx.common.code.AreaLevelDxTypeEnum;
...@@ -60,6 +62,7 @@ import org.springframework.util.ObjectUtils; ...@@ -60,6 +62,7 @@ import org.springframework.util.ObjectUtils;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.mortals.framework.util.HttpUtil.HEADER_CONTENT_TYPE;
import static com.mortals.xhx.common.key.Constant.*; import static com.mortals.xhx.common.key.Constant.*;
/** /**
...@@ -189,7 +192,6 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE ...@@ -189,7 +192,6 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
//刷新站点树 //刷新站点树
//ThreadPool.getInstance().execute(new SyncTreeSiteThread(this,context)); //ThreadPool.getInstance().execute(new SyncTreeSiteThread(this,context));
Rest<String> rest = userFeign.synchSiteAuth(); Rest<String> rest = userFeign.synchSiteAuth();
log.info("站点更新2");
if (rest.getCode().equals(YesNoEnum.YES.getValue())) { if (rest.getCode().equals(YesNoEnum.YES.getValue())) {
UserPdu userPdu = new UserPdu(); UserPdu userPdu = new UserPdu();
userPdu.setPage(1); userPdu.setPage(1);
...@@ -197,10 +199,23 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE ...@@ -197,10 +199,23 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
Rest<RespData<List<UserPdu>>> list = userFeign.list(userPdu); Rest<RespData<List<UserPdu>>> list = userFeign.list(userPdu);
userService.updateUserList(list.getData().getData()); userService.updateUserList(list.getData().getData());
} }
log.info("站点更新3");
//更新同步部门相关 //更新同步部门相关
deptService.syncDeptBySiteId(entity, context); deptService.syncDeptBySiteId(entity, context);
log.info("站点更新4");
//通知php系统更新
String phpUrl = GlobalSysInfo.getParamValue(PARAM_SERVER_PHP_HTTP_URL, "http://172.15.28.116:8090");
HashMap<String, String> paramsMap = new HashMap<>();
paramsMap.put("siteid", entity.getId().toString());
phpUrl += "/api/site/childSiteSet";
String resp = null;
try {
resp = HttpUtil.doGet(phpUrl, paramsMap);
log.info("thirdPartyUrl =>resp:{}", resp);
} catch (Exception e) {
log.error("异常:", e);
}
} }
...@@ -327,17 +342,13 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE ...@@ -327,17 +342,13 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
protected void updateAfter(SiteEntity entity, Context context) throws AppException { protected void updateAfter(SiteEntity entity, Context context) throws AppException {
super.updateAfter(entity,context); super.updateAfter(entity,context);
//刷新站点树 //刷新站点树
log.info("update1");
Rest<String> rest = userFeign.synchSiteAuth(); Rest<String> rest = userFeign.synchSiteAuth();
if (rest.getCode().equals(YesNoEnum.YES.getValue())) { if (rest.getCode().equals(YesNoEnum.YES.getValue())) {
log.info("update2");
UserPdu userPdu = new UserPdu(); UserPdu userPdu = new UserPdu();
userPdu.setPage(1); userPdu.setPage(1);
userPdu.setSize(-1); userPdu.setSize(-1);
Rest<RespData<List<UserPdu>>> list = userFeign.list(userPdu); Rest<RespData<List<UserPdu>>> list = userFeign.list(userPdu);
log.info("update21");
userService.updateUserList(list.getData().getData()); userService.updateUserList(list.getData().getData());
log.info("update22");
} }
if (refresh) { if (refresh) {
//通知设备更新站点信息 //通知设备更新站点信息
......
...@@ -17,6 +17,8 @@ import com.mortals.xhx.common.code.FiletypeEnum; ...@@ -17,6 +17,8 @@ import com.mortals.xhx.common.code.FiletypeEnum;
import com.mortals.xhx.common.key.Constant; import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.BeanUtil; import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.common.utils.FreeMarkerUtils; import com.mortals.xhx.common.utils.FreeMarkerUtils;
import com.mortals.xhx.feign.skin.ISkinFillFeign;
import com.mortals.xhx.feign.skin.ISkinSampleFeign;
import com.mortals.xhx.module.product.model.ProductEntity; import com.mortals.xhx.module.product.model.ProductEntity;
import com.mortals.xhx.module.product.service.ProductService; import com.mortals.xhx.module.product.service.ProductService;
import com.mortals.xhx.module.skin.dao.SkinBaseDao; import com.mortals.xhx.module.skin.dao.SkinBaseDao;
...@@ -64,6 +66,10 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk ...@@ -64,6 +66,10 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk
private ProductService productService; private ProductService productService;
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired
private ISkinSampleFeign skinSampleFeign;
@Autowired
private ISkinFillFeign skinFillFeign;
@Override @Override
protected void validData(SkinBaseEntity entity, Context context) throws AppException { protected void validData(SkinBaseEntity entity, Context context) throws AppException {
...@@ -161,6 +167,9 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk ...@@ -161,6 +167,9 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk
}); });
skinFieldService.save(entity.getSkinFieldList(), context); skinFieldService.save(entity.getSkinFieldList(), context);
} }
//通知子系统同步皮肤数据
skinSampleFeign.refreshSkin();
skinFillFeign.refreshSkin();
} }
@Override @Override
......
package com.mortals.xhx.feign.area; package com.mortals.xhx.feign.area;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.common.code.ApiRespCodeEnum; import com.mortals.xhx.common.code.ApiRespCodeEnum;
import com.mortals.xhx.common.pdu.SitePdu; import com.mortals.xhx.common.pdu.SitePdu;
import com.mortals.xhx.feign.IFeign; import com.mortals.xhx.feign.IFeign;
...@@ -70,6 +71,15 @@ public interface IApiAreaFeign extends IFeign { ...@@ -70,6 +71,15 @@ public interface IApiAreaFeign extends IFeign {
@PostMapping(value = "/site/getFlatSitesByAreaIds") @PostMapping(value = "/site/getFlatSitesByAreaIds")
String getFlatSitesByAreaIds(@RequestBody SitePdu query); String getFlatSitesByAreaIds(@RequestBody SitePdu query);
/**
* 用户刷新通知
*
* @param
* @return
*/
@PostMapping(value = "/usr/refreshUser")
Rest<Void> refreshUser();
// /** // /**
// * 根据条件查询站点列表 // * 根据条件查询站点列表
// * @param query // * @param query
...@@ -134,6 +144,16 @@ class AreaFeignFallbackFactory implements FallbackFactory<IApiAreaFeign> { ...@@ -134,6 +144,16 @@ class AreaFeignFallbackFactory implements FallbackFactory<IApiAreaFeign> {
return JSON.toJSONString(failResp); return JSON.toJSONString(failResp);
} }
/**
* @return
*/
@Override
public Rest<Void> refreshUser() {
return Rest.fail("暂时无法通知设备,请稍后再试!");
}
// @Override // @Override
// public String getSitesByQuery(SitePdu query) { // public String getSitesByQuery(SitePdu query) {
// ApiResp<String> failResp = new ApiResp<>(); // ApiResp<String> failResp = new ApiResp<>();
......
...@@ -69,6 +69,16 @@ public interface IDeviceFeign extends IFeign { ...@@ -69,6 +69,16 @@ public interface IDeviceFeign extends IFeign {
Rest<Void> refreshMessage(@RequestBody DevicePdu devicePdu); Rest<Void> refreshMessage(@RequestBody DevicePdu devicePdu);
/**
* 用户刷新通知
*
* @param
* @return
*/
@PostMapping(value = "/usr/refreshUser")
Rest<Void> refreshUser();
} }
...@@ -106,6 +116,14 @@ class DeviceFeignFallbackFactory implements FallbackFactory<IDeviceFeign> { ...@@ -106,6 +116,14 @@ class DeviceFeignFallbackFactory implements FallbackFactory<IDeviceFeign> {
public Rest<Void> refreshMessage(DevicePdu devicePdu) { public Rest<Void> refreshMessage(DevicePdu devicePdu) {
return Rest.fail("暂时无法通知设备,请稍后再试!"); return Rest.fail("暂时无法通知设备,请稍后再试!");
} }
/**
* @return
*/
@Override
public Rest<Void> refreshUser() {
return Rest.fail("暂时无法通知设备,请稍后再试!");
}
}; };
} }
} }
......
package com.mortals.xhx.feign.skin;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.feign.IFeign;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
/**
* 填单皮肤 Feign接口
* @author zxfei
* @date 2022-10-26
*/
@FeignClient(name = "fill-manager", path = "/fm", fallbackFactory = SkinFillFeignFallbackFactory.class)
public interface ISkinFillFeign extends IFeign {
/**
* 皮肤变更通知
*
* @param
* @return
*/
@PostMapping(value = "/skin/refreshSkin")
Rest<Void> refreshSkin();
/**
* 用户刷新通知
*
* @param
* @return
*/
@PostMapping(value = "/usr/refreshUser")
Rest<Void> refreshUser();
}
@Slf4j
@Component
class SkinFillFeignFallbackFactory implements FallbackFactory<ISkinFillFeign> {
@Override
public ISkinFillFeign create(Throwable t) {
return new ISkinFillFeign() {
/**
* @param
* @return
*/
@Override
public Rest<Void> refreshSkin() {
return Rest.fail("暂时无法通知设备,请稍后再试!");
}
/**
* @return
*/
@Override
public Rest<Void> refreshUser() {
return Rest.fail("暂时无法通知设备,请稍后再试!");
}
};
}
}
package com.mortals.xhx.feign.skin;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.feign.IFeign;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
/**
* 样表皮肤 Feign接口
* @author zxfei
* @date 2022-10-26
*/
@FeignClient(name = "sample-form-manager", path = "/sampleform", fallbackFactory = SkinFillFeignFallbackFactory.class)
public interface ISkinSampleFeign extends IFeign {
/**
* 皮肤变更通知
*
* @param
* @return
*/
@PostMapping(value = "/skin/refreshSkin")
Rest<Void> refreshSkin();
/**
* 用户刷新通知
*
* @param
* @return
*/
@PostMapping(value = "/usr/refreshUser")
Rest<Void> refreshUser();
}
@Slf4j
@Component
class SkinSampleFeignFallbackFactory implements FallbackFactory<ISkinFillFeign> {
@Override
public ISkinFillFeign create(Throwable t) {
return new ISkinFillFeign() {
/**
* @param
* @return
*/
@Override
public Rest<Void> refreshSkin() {
return Rest.fail("暂时无法通知设备,请稍后再试!");
}
/**
* @return
*/
@Override
public Rest<Void> refreshUser() {
return Rest.fail("暂时无法通知设备,请稍后再试!");
}
};
}
}
...@@ -61,4 +61,12 @@ CREATE TABLE `mortals_xhx_user_model_collect` ( ...@@ -61,4 +61,12 @@ CREATE TABLE `mortals_xhx_user_model_collect` (
ALTER TABLE `mortals_xhx_user_model_collect` ALTER TABLE `mortals_xhx_user_model_collect`
ADD COLUMN `siteId` bigint(20) DEFAULT NULL COMMENT '站点ID'; ADD COLUMN `siteId` bigint(20) DEFAULT NULL COMMENT '站点ID';
UPDATE mortals_xhx_user_model_collect SET siteId=1; UPDATE mortals_xhx_user_model_collect SET siteId=1;
\ No newline at end of file
-- ----------------------------
2023-11-13
-- ----------------------------
ALTER TABLE mortals_xhx_role_auth ADD COLUMN `resourceId` bigint(20) COMMENT '资源ID';
ALTER TABLE mortals_xhx_role_auth ADD COLUMN `createTime` datetime COMMENT '创建时间';
ALTER TABLE mortals_xhx_role_auth ADD COLUMN `createUserId` bigint(20) COMMENT '创建用户';
ALTER TABLE mortals_xhx_role_auth ADD COLUMN `createUserName` varchar(50) COMMENT '创建用户名称';
...@@ -8,6 +8,11 @@ import com.mortals.framework.service.ICacheService; ...@@ -8,6 +8,11 @@ import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.IUser; import com.mortals.framework.service.IUser;
import com.mortals.framework.util.DateUtils; import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.common.utils.MenuEncodeUtil;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.service.UserService;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureAlgorithm;
...@@ -50,6 +55,9 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -50,6 +55,9 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
@Value("${token.prefix:}") @Value("${token.prefix:}")
private String tokenPrefix; private String tokenPrefix;
@Autowired
private UserService userService;
protected static final Long MILLIS_SECOND = 1l; protected static final Long MILLIS_SECOND = 1l;
protected static final Long MILLIS_MINUTE = 60 * MILLIS_SECOND; protected static final Long MILLIS_MINUTE = 60 * MILLIS_SECOND;
...@@ -65,6 +73,9 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -65,6 +73,9 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
@Autowired @Autowired
private ICacheService cacheService; private ICacheService cacheService;
@Autowired
private ResourceService resourceService;
/** /**
* 获取信息 * 获取信息
* *
...@@ -85,7 +96,25 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -85,7 +96,25 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
String uuid = (String) claims.get(SysConstains.LOGIN_USER_KEY); String uuid = (String) claims.get(SysConstains.LOGIN_USER_KEY);
String userKey = getTokenKey(uuid); String userKey = getTokenKey(uuid);
String userStr = cacheService.get(userKey); String userStr = cacheService.get(userKey);
if (StringUtils.isNotEmpty(userStr)) {
UserEntity userEntity = JSONObject.parseObject(userStr, UserEntity.class);
userEntity.setToken(token);
//更新portal 中的id 为 device中的id
// UserEntity temp = userService.selectOne(new UserQuery().loginName(userEntity.getLoginName()));
UserEntity temp = userService.getExtCache(userEntity.getLoginName());
if (!ObjectUtils.isEmpty(temp)) {
userEntity.setId(temp.getId());
}
//更新resource 路径
String menuUrlCode = cacheService.hget(RedisKey.KEY_USER_MENU_CACHE, userEntity.getId().toString(), String.class);
if (ObjectUtils.isEmpty(menuUrlCode)) {
Set<String> urls = resourceService.findUrlSetByUserId(userEntity.getId());
menuUrlCode = MenuEncodeUtil.generateMenuUrlCode(urls);
cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, userEntity.getId().toString(), menuUrlCode);
}
userEntity.setMenuUrl(menuUrlCode);
return userEntity;
/* if (StringUtils.isNotEmpty(userStr)) {
JSONObject userObj = JSON.parseObject(userStr); JSONObject userObj = JSON.parseObject(userStr);
Long userId = userObj.getLongValue("id"); Long userId = userObj.getLongValue("id");
Integer userType = userObj.getIntValue("userType"); Integer userType = userObj.getIntValue("userType");
...@@ -198,8 +227,6 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -198,8 +227,6 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
public void setExpireTime(Long expireTime) { public void setExpireTime(Long expireTime) {
} }
@Override @Override
public String getMenuUrl() { public String getMenuUrl() {
return menuUrl; return menuUrl;
...@@ -207,7 +234,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -207,7 +234,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
}; };
} }*/
// return cacheService.get(userKey, IUser.class); // return cacheService.get(userKey, IUser.class);
} catch (Exception e) { } catch (Exception e) {
log.error("解析jwt token异常!", e); log.error("解析jwt token异常!", e);
......
/** /**
* 文件:ResourceServiceImpl.java * 文件:ResourceServiceImpl.java
* 版本:1.0.0 * 版本:1.0.0
* 日期: * 日期:
* Copyright &reg; * Copyright &reg;
* All right reserved. * All right reserved.
*/ */
package com.mortals.xhx.base.system.resource.service.impl; package com.mortals.xhx.base.system.resource.service.impl;
...@@ -19,9 +19,14 @@ import com.mortals.xhx.base.system.resource.model.ResourceEntity; ...@@ -19,9 +19,14 @@ import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import com.mortals.xhx.base.system.resource.model.ResourceQuery; import com.mortals.xhx.base.system.resource.model.ResourceQuery;
import com.mortals.xhx.base.system.resource.service.ResourceService; import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.common.key.RedisKey; import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import com.mortals.xhx.module.role.model.RoleAuthQuery;
import com.mortals.xhx.module.role.service.RoleAuthService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -33,15 +38,20 @@ import static com.mortals.xhx.common.utils.MenuEncodeUtil.generateMenuUrlCode; ...@@ -33,15 +38,20 @@ import static com.mortals.xhx.common.utils.MenuEncodeUtil.generateMenuUrlCode;
* <p>Description: ResourceServiceImpl service接口 </p> * <p>Description: ResourceServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p> * <p>Copyright: Copyright &reg; </p>
* <p>Company: </p> * <p>Company: </p>
* @author *
* @author
* @version 1.0.0 * @version 1.0.0
*/ */
@Service("resourceService") @Service("resourceService")
public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao,ResourceEntity,Long> implements ResourceService { public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao, ResourceEntity, Long> implements ResourceService {
@Autowired @Autowired
private ICacheService cacheService; private ICacheService cacheService;
@Autowired
private RoleAuthService roleAuthService;
@Override @Override
public List<ResourceEntity> findAllEnable() throws AppException { public List<ResourceEntity> findAllEnable() throws AppException {
ResourceQuery params = new ResourceQuery(); ResourceQuery params = new ResourceQuery();
...@@ -90,13 +100,27 @@ public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao,Res ...@@ -90,13 +100,27 @@ public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao,Res
updateUserMenuUrlCache(); updateUserMenuUrlCache();
} }
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
//删除关联表中数据
if (!ObjectUtils.isEmpty(ids)) {
RoleAuthQuery query = new RoleAuthQuery();
query.setResourceIdList(Arrays.asList(ids));
List<RoleAuthEntity> roleAuthEntities = roleAuthService.find(query);
if (!ObjectUtils.isEmpty(roleAuthEntities)) {
roleAuthService.remove(roleAuthEntities.stream().map(m -> m.getId()).toArray(Long[]::new), context);
updateUserMenuUrlCache();
}
}
}
private void updateUserMenuUrlCache() { private void updateUserMenuUrlCache() {
//更新用户菜单 //更新用户菜单
Set<String> hkeys = cacheService.hkeys(RedisKey.KEY_USER_MENU_CACHE); Set<String> hkeys = cacheService.hkeys(RedisKey.KEY_USER_MENU_CACHE);
for (String userId : hkeys) { for (String userId : hkeys) {
Set<String> urls = this.findUrlSetByUserId(DataUtil.converStr2Long(userId,0L)); Set<String> urls = this.findUrlSetByUserId(DataUtil.converStr2Long(userId, 0L));
String menuUrlCode = generateMenuUrlCode(urls); String menuUrlCode = generateMenuUrlCode(urls);
cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, userId,menuUrlCode); cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, userId, menuUrlCode);
} }
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.role.model; package com.mortals.xhx.module.role.model;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel; import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.vo.RoleAuthVo; import com.mortals.xhx.module.role.model.vo.RoleAuthVo;
import lombok.Data;
/** /**
* 角色菜单权限关联实体对象 * 角色菜单权限关联实体对象
* *
* @author zxfei * @author zxfei
* @date 2022-06-02 * @date 2023-11-13
*/ */
@Data
public class RoleAuthEntity extends RoleAuthVo { public class RoleAuthEntity extends RoleAuthVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 角色ID * 角色ID
*/ */
private Long roleId; private Long roleId;
/** /**
* 菜单ID * 菜单ID
*/ */
private Long menuId; private Long menuId;
public RoleAuthEntity(){}
/** /**
* 获取 角色ID * 资源ID
* @return Long */
*/ private Long resourceId;
public Long getRoleId(){
return roleId;
}
/**
* 设置 角色ID
* @param roleId
*/
public void setRoleId(Long roleId){
this.roleId = roleId;
}
/**
* 获取 菜单ID
* @return Long
*/
public Long getMenuId(){
return menuId;
}
/** /**
* 设置 菜单ID * 创建用户名称
* @param menuId */
*/ private String createUserName;
public void setMenuId(Long menuId){
this.menuId = menuId;
}
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
...@@ -70,23 +45,16 @@ public class RoleAuthEntity extends RoleAuthVo { ...@@ -70,23 +45,16 @@ public class RoleAuthEntity extends RoleAuthVo {
if (obj instanceof RoleAuthEntity) { if (obj instanceof RoleAuthEntity) {
RoleAuthEntity tmp = (RoleAuthEntity) obj; RoleAuthEntity tmp = (RoleAuthEntity) obj;
if (this.getId() == tmp.getId()) { if (this.getId() == tmp.getId()) {
return true; return true;
} }
} }
return false; return false;
} }
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",roleId:").append(getRoleId());
sb.append(",menuId:").append(getMenuId());
return sb.toString();
}
public void initAttrValue(){ public void initAttrValue(){
this.roleId = null;
this.roleId = null; this.menuId = null;
this.resourceId = null;
this.menuId = null; this.createUserName = "";
} }
} }
\ No newline at end of file
...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.role.model; ...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.role.model;
import java.util.List; import java.util.List;
import com.mortals.xhx.module.role.model.RoleAuthEntity; import com.mortals.xhx.module.role.model.RoleAuthEntity;
/** /**
* 角色菜单权限关联查询对象 * 角色菜单权限关联查询对象
* *
* @author zxfei * @author zxfei
* @date 2022-06-02 * @date 2023-11-13
*/ */
public class RoleAuthQuery extends RoleAuthEntity { public class RoleAuthQuery extends RoleAuthEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -21,6 +21,9 @@ public class RoleAuthQuery extends RoleAuthEntity { ...@@ -21,6 +21,9 @@ public class RoleAuthQuery extends RoleAuthEntity {
/** 序号,主键,自增长列表 */ /** 序号,主键,自增长列表 */
private List <Long> idList; private List <Long> idList;
/** 序号,主键,自增长排除列表 */
private List <Long> idNotList;
/** 开始 角色ID */ /** 开始 角色ID */
private Long roleIdStart; private Long roleIdStart;
...@@ -33,6 +36,9 @@ public class RoleAuthQuery extends RoleAuthEntity { ...@@ -33,6 +36,9 @@ public class RoleAuthQuery extends RoleAuthEntity {
/** 角色ID列表 */ /** 角色ID列表 */
private List <Long> roleIdList; private List <Long> roleIdList;
/** 角色ID排除列表 */
private List <Long> roleIdNotList;
/** 开始 菜单ID */ /** 开始 菜单ID */
private Long menuIdStart; private Long menuIdStart;
...@@ -45,6 +51,50 @@ public class RoleAuthQuery extends RoleAuthEntity { ...@@ -45,6 +51,50 @@ public class RoleAuthQuery extends RoleAuthEntity {
/** 菜单ID列表 */ /** 菜单ID列表 */
private List <Long> menuIdList; private List <Long> menuIdList;
/** 菜单ID排除列表 */
private List <Long> menuIdNotList;
/** 开始 资源ID */
private Long resourceIdStart;
/** 结束 资源ID */
private Long resourceIdEnd;
/** 增加 资源ID */
private Long resourceIdIncrement;
/** 资源ID列表 */
private List <Long> resourceIdList;
/** 资源ID排除列表 */
private List <Long> resourceIdNotList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户排除列表 */
private List <Long> createUserIdNotList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 创建用户名称排除列表 */
private List <String> createUserNameNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<RoleAuthQuery> orConditionList; private List<RoleAuthQuery> orConditionList;
...@@ -54,360 +104,792 @@ public class RoleAuthQuery extends RoleAuthEntity { ...@@ -54,360 +104,792 @@ public class RoleAuthQuery extends RoleAuthEntity {
public RoleAuthQuery(){} public RoleAuthQuery(){}
/** /**
* 获取 开始 序号,主键,自增长 * 获取 开始 序号,主键,自增长
* @return idStart * @return idStart
*/ */
public Long getIdStart(){ public Long getIdStart(){
return this.idStart; return this.idStart;
} }
/** /**
* 设置 开始 序号,主键,自增长 * 设置 开始 序号,主键,自增长
* @param idStart * @param idStart
*/ */
public void setIdStart(Long idStart){ public void setIdStart(Long idStart){
this.idStart = idStart; this.idStart = idStart;
} }
/** /**
* 获取 结束 序号,主键,自增长 * 获取 结束 序号,主键,自增长
* @return $idEnd * @return $idEnd
*/ */
public Long getIdEnd(){ public Long getIdEnd(){
return this.idEnd; return this.idEnd;
} }
/** /**
* 设置 结束 序号,主键,自增长 * 设置 结束 序号,主键,自增长
* @param idEnd * @param idEnd
*/ */
public void setIdEnd(Long idEnd){ public void setIdEnd(Long idEnd){
this.idEnd = idEnd; this.idEnd = idEnd;
} }
/** /**
* 获取 增加 序号,主键,自增长 * 获取 增加 序号,主键,自增长
* @return idIncrement * @return idIncrement
*/ */
public Long getIdIncrement(){ public Long getIdIncrement(){
return this.idIncrement; return this.idIncrement;
} }
/** /**
* 设置 增加 序号,主键,自增长 * 设置 增加 序号,主键,自增长
* @param idIncrement * @param idIncrement
*/ */
public void setIdIncrement(Long idIncrement){ public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement; this.idIncrement = idIncrement;
} }
/** /**
* 获取 序号,主键,自增长 * 获取 序号,主键,自增长
* @return idList * @return idList
*/ */
public List<Long> getIdList(){ public List<Long> getIdList(){
return this.idList; return this.idList;
} }
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param idList * @param idList
*/ */
public void setIdList(List<Long> idList){ public void setIdList(List<Long> idList){
this.idList = idList; this.idList = idList;
} }
/** /**
* 获取 开始 角色ID * 获取 序号,主键,自增长
* @return roleIdStart * @return idNotList
*/ */
public List<Long> getIdNotList(){
return this.idNotList;
}
/**
* 设置 序号,主键,自增长
* @param idNotList
*/
public void setIdNotList(List<Long> idNotList){
this.idNotList = idNotList;
}
/**
* 获取 开始 角色ID
* @return roleIdStart
*/
public Long getRoleIdStart(){ public Long getRoleIdStart(){
return this.roleIdStart; return this.roleIdStart;
} }
/** /**
* 设置 开始 角色ID * 设置 开始 角色ID
* @param roleIdStart * @param roleIdStart
*/ */
public void setRoleIdStart(Long roleIdStart){ public void setRoleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart; this.roleIdStart = roleIdStart;
} }
/** /**
* 获取 结束 角色ID * 获取 结束 角色ID
* @return $roleIdEnd * @return $roleIdEnd
*/ */
public Long getRoleIdEnd(){ public Long getRoleIdEnd(){
return this.roleIdEnd; return this.roleIdEnd;
} }
/** /**
* 设置 结束 角色ID * 设置 结束 角色ID
* @param roleIdEnd * @param roleIdEnd
*/ */
public void setRoleIdEnd(Long roleIdEnd){ public void setRoleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd; this.roleIdEnd = roleIdEnd;
} }
/** /**
* 获取 增加 角色ID * 获取 增加 角色ID
* @return roleIdIncrement * @return roleIdIncrement
*/ */
public Long getRoleIdIncrement(){ public Long getRoleIdIncrement(){
return this.roleIdIncrement; return this.roleIdIncrement;
} }
/** /**
* 设置 增加 角色ID * 设置 增加 角色ID
* @param roleIdIncrement * @param roleIdIncrement
*/ */
public void setRoleIdIncrement(Long roleIdIncrement){ public void setRoleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement; this.roleIdIncrement = roleIdIncrement;
} }
/** /**
* 获取 角色ID * 获取 角色ID
* @return roleIdList * @return roleIdList
*/ */
public List<Long> getRoleIdList(){ public List<Long> getRoleIdList(){
return this.roleIdList; return this.roleIdList;
} }
/** /**
* 设置 角色ID * 设置 角色ID
* @param roleIdList * @param roleIdList
*/ */
public void setRoleIdList(List<Long> roleIdList){ public void setRoleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList; this.roleIdList = roleIdList;
} }
/** /**
* 获取 开始 菜单ID * 获取 角色ID
* @return menuIdStart * @return roleIdNotList
*/ */
public List<Long> getRoleIdNotList(){
return this.roleIdNotList;
}
/**
* 设置 角色ID
* @param roleIdNotList
*/
public void setRoleIdNotList(List<Long> roleIdNotList){
this.roleIdNotList = roleIdNotList;
}
/**
* 获取 开始 菜单ID
* @return menuIdStart
*/
public Long getMenuIdStart(){ public Long getMenuIdStart(){
return this.menuIdStart; return this.menuIdStart;
} }
/** /**
* 设置 开始 菜单ID * 设置 开始 菜单ID
* @param menuIdStart * @param menuIdStart
*/ */
public void setMenuIdStart(Long menuIdStart){ public void setMenuIdStart(Long menuIdStart){
this.menuIdStart = menuIdStart; this.menuIdStart = menuIdStart;
} }
/** /**
* 获取 结束 菜单ID * 获取 结束 菜单ID
* @return $menuIdEnd * @return $menuIdEnd
*/ */
public Long getMenuIdEnd(){ public Long getMenuIdEnd(){
return this.menuIdEnd; return this.menuIdEnd;
} }
/** /**
* 设置 结束 菜单ID * 设置 结束 菜单ID
* @param menuIdEnd * @param menuIdEnd
*/ */
public void setMenuIdEnd(Long menuIdEnd){ public void setMenuIdEnd(Long menuIdEnd){
this.menuIdEnd = menuIdEnd; this.menuIdEnd = menuIdEnd;
} }
/** /**
* 获取 增加 菜单ID * 获取 增加 菜单ID
* @return menuIdIncrement * @return menuIdIncrement
*/ */
public Long getMenuIdIncrement(){ public Long getMenuIdIncrement(){
return this.menuIdIncrement; return this.menuIdIncrement;
} }
/** /**
* 设置 增加 菜单ID * 设置 增加 菜单ID
* @param menuIdIncrement * @param menuIdIncrement
*/ */
public void setMenuIdIncrement(Long menuIdIncrement){ public void setMenuIdIncrement(Long menuIdIncrement){
this.menuIdIncrement = menuIdIncrement; this.menuIdIncrement = menuIdIncrement;
} }
/** /**
* 获取 菜单ID * 获取 菜单ID
* @return menuIdList * @return menuIdList
*/ */
public List<Long> getMenuIdList(){ public List<Long> getMenuIdList(){
return this.menuIdList; return this.menuIdList;
} }
/** /**
* 设置 菜单ID * 设置 菜单ID
* @param menuIdList * @param menuIdList
*/ */
public void setMenuIdList(List<Long> menuIdList){ public void setMenuIdList(List<Long> menuIdList){
this.menuIdList = menuIdList; this.menuIdList = menuIdList;
} }
/** /**
* 设置 序号,主键,自增长 * 获取 菜单ID
* @param id * @return menuIdNotList
*/ */
public List<Long> getMenuIdNotList(){
return this.menuIdNotList;
}
/**
* 设置 菜单ID
* @param menuIdNotList
*/
public void setMenuIdNotList(List<Long> menuIdNotList){
this.menuIdNotList = menuIdNotList;
}
/**
* 获取 开始 资源ID
* @return resourceIdStart
*/
public Long getResourceIdStart(){
return this.resourceIdStart;
}
/**
* 设置 开始 资源ID
* @param resourceIdStart
*/
public void setResourceIdStart(Long resourceIdStart){
this.resourceIdStart = resourceIdStart;
}
/**
* 获取 结束 资源ID
* @return $resourceIdEnd
*/
public Long getResourceIdEnd(){
return this.resourceIdEnd;
}
/**
* 设置 结束 资源ID
* @param resourceIdEnd
*/
public void setResourceIdEnd(Long resourceIdEnd){
this.resourceIdEnd = resourceIdEnd;
}
/**
* 获取 增加 资源ID
* @return resourceIdIncrement
*/
public Long getResourceIdIncrement(){
return this.resourceIdIncrement;
}
/**
* 设置 增加 资源ID
* @param resourceIdIncrement
*/
public void setResourceIdIncrement(Long resourceIdIncrement){
this.resourceIdIncrement = resourceIdIncrement;
}
/**
* 获取 资源ID
* @return resourceIdList
*/
public List<Long> getResourceIdList(){
return this.resourceIdList;
}
/**
* 设置 资源ID
* @param resourceIdList
*/
public void setResourceIdList(List<Long> resourceIdList){
this.resourceIdList = resourceIdList;
}
/**
* 获取 资源ID
* @return resourceIdNotList
*/
public List<Long> getResourceIdNotList(){
return this.resourceIdNotList;
}
/**
* 设置 资源ID
* @param resourceIdNotList
*/
public void setResourceIdNotList(List<Long> resourceIdNotList){
this.resourceIdNotList = resourceIdNotList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户
* @return createUserIdNotList
*/
public List<Long> getCreateUserIdNotList(){
return this.createUserIdNotList;
}
/**
* 设置 创建用户
* @param createUserIdNotList
*/
public void setCreateUserIdNotList(List<Long> createUserIdNotList){
this.createUserIdNotList = createUserIdNotList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 获取 创建用户名称
* @return createUserNameNotList
*/
public List<String> getCreateUserNameNotList(){
return this.createUserNameNotList;
}
/**
* 设置 创建用户名称
* @param createUserNameNotList
*/
public void setCreateUserNameNotList(List<String> createUserNameNotList){
this.createUserNameNotList = createUserNameNotList;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
public RoleAuthQuery id(Long id){ public RoleAuthQuery id(Long id){
setId(id); setId(id);
return this; return this;
} }
/** /**
* 设置 开始 序号,主键,自增长 * 设置 开始 序号,主键,自增长
* @param idStart * @param idStart
*/ */
public RoleAuthQuery idStart(Long idStart){ public RoleAuthQuery idStart(Long idStart){
this.idStart = idStart; this.idStart = idStart;
return this; return this;
} }
/** /**
* 设置 结束 序号,主键,自增长 * 设置 结束 序号,主键,自增长
* @param idEnd * @param idEnd
*/ */
public RoleAuthQuery idEnd(Long idEnd){ public RoleAuthQuery idEnd(Long idEnd){
this.idEnd = idEnd; this.idEnd = idEnd;
return this; return this;
} }
/** /**
* 设置 增加 序号,主键,自增长 * 设置 增加 序号,主键,自增长
* @param idIncrement * @param idIncrement
*/ */
public RoleAuthQuery idIncrement(Long idIncrement){ public RoleAuthQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement; this.idIncrement = idIncrement;
return this; return this;
} }
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param idList * @param idList
*/ */
public RoleAuthQuery idList(List<Long> idList){ public RoleAuthQuery idList(List<Long> idList){
this.idList = idList; this.idList = idList;
return this; return this;
} }
/** /**
* 设置 角色ID * 设置 序号,主键,自增长
* @param roleId * @param idNotList
*/ */
public RoleAuthQuery idNotList(List<Long> idNotList){
this.idNotList = idNotList;
return this;
}
/**
* 设置 角色ID
* @param roleId
*/
public RoleAuthQuery roleId(Long roleId){ public RoleAuthQuery roleId(Long roleId){
setRoleId(roleId); setRoleId(roleId);
return this; return this;
} }
/** /**
* 设置 开始 角色ID * 设置 开始 角色ID
* @param roleIdStart * @param roleIdStart
*/ */
public RoleAuthQuery roleIdStart(Long roleIdStart){ public RoleAuthQuery roleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart; this.roleIdStart = roleIdStart;
return this; return this;
} }
/** /**
* 设置 结束 角色ID * 设置 结束 角色ID
* @param roleIdEnd * @param roleIdEnd
*/ */
public RoleAuthQuery roleIdEnd(Long roleIdEnd){ public RoleAuthQuery roleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd; this.roleIdEnd = roleIdEnd;
return this; return this;
} }
/** /**
* 设置 增加 角色ID * 设置 增加 角色ID
* @param roleIdIncrement * @param roleIdIncrement
*/ */
public RoleAuthQuery roleIdIncrement(Long roleIdIncrement){ public RoleAuthQuery roleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement; this.roleIdIncrement = roleIdIncrement;
return this; return this;
} }
/** /**
* 设置 角色ID * 设置 角色ID
* @param roleIdList * @param roleIdList
*/ */
public RoleAuthQuery roleIdList(List<Long> roleIdList){ public RoleAuthQuery roleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList; this.roleIdList = roleIdList;
return this; return this;
} }
/**
* 设置 角色ID
* @param roleIdNotList
*/
public RoleAuthQuery roleIdNotList(List<Long> roleIdNotList){
this.roleIdNotList = roleIdNotList;
return this;
}
/** /**
* 设置 菜单ID * 设置 菜单ID
* @param menuId * @param menuId
*/ */
public RoleAuthQuery menuId(Long menuId){ public RoleAuthQuery menuId(Long menuId){
setMenuId(menuId); setMenuId(menuId);
return this; return this;
} }
/** /**
* 设置 开始 菜单ID * 设置 开始 菜单ID
* @param menuIdStart * @param menuIdStart
*/ */
public RoleAuthQuery menuIdStart(Long menuIdStart){ public RoleAuthQuery menuIdStart(Long menuIdStart){
this.menuIdStart = menuIdStart; this.menuIdStart = menuIdStart;
return this; return this;
} }
/** /**
* 设置 结束 菜单ID * 设置 结束 菜单ID
* @param menuIdEnd * @param menuIdEnd
*/ */
public RoleAuthQuery menuIdEnd(Long menuIdEnd){ public RoleAuthQuery menuIdEnd(Long menuIdEnd){
this.menuIdEnd = menuIdEnd; this.menuIdEnd = menuIdEnd;
return this; return this;
} }
/** /**
* 设置 增加 菜单ID * 设置 增加 菜单ID
* @param menuIdIncrement * @param menuIdIncrement
*/ */
public RoleAuthQuery menuIdIncrement(Long menuIdIncrement){ public RoleAuthQuery menuIdIncrement(Long menuIdIncrement){
this.menuIdIncrement = menuIdIncrement; this.menuIdIncrement = menuIdIncrement;
return this; return this;
} }
/** /**
* 设置 菜单ID * 设置 菜单ID
* @param menuIdList * @param menuIdList
*/ */
public RoleAuthQuery menuIdList(List<Long> menuIdList){ public RoleAuthQuery menuIdList(List<Long> menuIdList){
this.menuIdList = menuIdList; this.menuIdList = menuIdList;
return this; return this;
} }
/**
* 设置 菜单ID
* @param menuIdNotList
*/
public RoleAuthQuery menuIdNotList(List<Long> menuIdNotList){
this.menuIdNotList = menuIdNotList;
return this;
}
/**
* 设置 资源ID
* @param resourceId
*/
public RoleAuthQuery resourceId(Long resourceId){
setResourceId(resourceId);
return this;
}
/**
* 设置 开始 资源ID
* @param resourceIdStart
*/
public RoleAuthQuery resourceIdStart(Long resourceIdStart){
this.resourceIdStart = resourceIdStart;
return this;
}
/**
* 设置 结束 资源ID
* @param resourceIdEnd
*/
public RoleAuthQuery resourceIdEnd(Long resourceIdEnd){
this.resourceIdEnd = resourceIdEnd;
return this;
}
/**
* 设置 增加 资源ID
* @param resourceIdIncrement
*/
public RoleAuthQuery resourceIdIncrement(Long resourceIdIncrement){
this.resourceIdIncrement = resourceIdIncrement;
return this;
}
/**
* 设置 资源ID
* @param resourceIdList
*/
public RoleAuthQuery resourceIdList(List<Long> resourceIdList){
this.resourceIdList = resourceIdList;
return this;
}
/**
* 设置 资源ID
* @param resourceIdNotList
*/
public RoleAuthQuery resourceIdNotList(List<Long> resourceIdNotList){
this.resourceIdNotList = resourceIdNotList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public RoleAuthQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public RoleAuthQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public RoleAuthQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public RoleAuthQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public RoleAuthQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户
* @param createUserIdNotList
*/
public RoleAuthQuery createUserIdNotList(List<Long> createUserIdNotList){
this.createUserIdNotList = createUserIdNotList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public RoleAuthQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public RoleAuthQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
*/ */
public List<RoleAuthQuery> getOrConditionList(){ public List<RoleAuthQuery> getOrConditionList(){
return this.orConditionList; return this.orConditionList;
} }
/** /**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList * @param orConditionList
*/ */
public void setOrConditionList(List<RoleAuthQuery> orConditionList){ public void setOrConditionList(List<RoleAuthQuery> orConditionList){
this.orConditionList = orConditionList; this.orConditionList = orConditionList;
} }
/** /**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) * 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList * @return andConditionList
*/ */
public List<RoleAuthQuery> getAndConditionList(){ public List<RoleAuthQuery> getAndConditionList(){
return this.andConditionList; return this.andConditionList;
} }
/** /**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) * 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList * @param andConditionList
*/ */
public void setAndConditionList(List<RoleAuthQuery> andConditionList){ public void setAndConditionList(List<RoleAuthQuery> andConditionList){
this.andConditionList = andConditionList; this.andConditionList = andConditionList;
} }
......
...@@ -28,4 +28,8 @@ public interface RoleAuthService extends ICRUDService<RoleAuthEntity, Long> { ...@@ -28,4 +28,8 @@ public interface RoleAuthService extends ICRUDService<RoleAuthEntity, Long> {
* @return * @return
*/ */
Map<Long,List<Long>> getMenuIdByRole(Long userId); Map<Long,List<Long>> getMenuIdByRole(Long userId);
/** 角色分配资源 */
void doDistributionSource(RoleAuthQuery query);
} }
\ No newline at end of file
...@@ -29,6 +29,27 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro ...@@ -29,6 +29,27 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro
@Autowired @Autowired
private RoleUserService roleUserService; private RoleUserService roleUserService;
@Override
public void doDistributionSource(RoleAuthQuery query) {
// 删除角色资源老数据
Long roleId = query.getRoleId();
Map<String, Object> condition = new HashMap<>();
condition.put("roleId", roleId);
condition.put("menuId", null);
this.dao.delete(condition);
List<RoleAuthEntity> list = new ArrayList<>();
for (Long sourceId : query.getResourceIdList()) {
RoleAuthEntity entity = new RoleAuthEntity();
entity.setRoleId(roleId);
entity.setResourceId(sourceId);
list.add(entity);
}
this.dao.insertBatch(list);
}
@Override @Override
public void assignMenu(RoleAuthQuery query) { public void assignMenu(RoleAuthQuery query) {
Map<Long, MenuEntity> menuEntityMap = menuService.find(new MenuQuery()).stream().collect(Collectors.toMap(x -> x.getId(), y -> y)); Map<Long, MenuEntity> menuEntityMap = menuService.find(new MenuQuery()).stream().collect(Collectors.toMap(x -> x.getId(), y -> y));
...@@ -36,6 +57,7 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro ...@@ -36,6 +57,7 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro
Long roleId = query.getRoleId(); Long roleId = query.getRoleId();
Map<String, Object> condition = new HashMap<>(); Map<String, Object> condition = new HashMap<>();
condition.put("roleId", roleId); condition.put("roleId", roleId);
condition.put("resoruceId", null);
this.dao.delete(condition); this.dao.delete(condition);
Set<Long> curSet = query.getMenuIdList().stream().collect(Collectors.toSet()); Set<Long> curSet = query.getMenuIdList().stream().collect(Collectors.toSet());
...@@ -70,27 +92,27 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro ...@@ -70,27 +92,27 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, Ro
} }
@Override @Override
public Map<Long,List<Long>> getMenuIdByRole(Long roleId) { public Map<Long, List<Long>> getMenuIdByRole(Long roleId) {
RoleAuthQuery condition = new RoleAuthQuery(); RoleAuthQuery condition = new RoleAuthQuery();
condition.setRoleId(roleId); condition.setRoleId(roleId);
List<RoleAuthEntity> roleModelEntities = this.find(condition); List<RoleAuthEntity> roleModelEntities = this.find(condition);
if(CollectionUtils.isNotEmpty(roleModelEntities)) { if (CollectionUtils.isNotEmpty(roleModelEntities)) {
List<Long> menuIds = roleModelEntities.stream().map(RoleAuthEntity::getMenuId).collect(Collectors.toList()); List<Long> menuIds = roleModelEntities.stream().map(RoleAuthEntity::getMenuId).collect(Collectors.toList());
MenuQuery query1 = new MenuQuery(); MenuQuery query1 = new MenuQuery();
query1.setIdList(menuIds); query1.setIdList(menuIds);
List<MenuEntity> menuEntities = menuService.find(query1); List<MenuEntity> menuEntities = menuService.find(query1);
Map<Long,List<Long>> map = new HashMap<>(); Map<Long, List<Long>> map = new HashMap<>();
menuEntities.forEach(m->{ menuEntities.forEach(m -> {
if(map.containsKey(m.getParentId())){ if (map.containsKey(m.getParentId())) {
map.get(m.getParentId()).add(m.getId()); map.get(m.getParentId()).add(m.getId());
}else { } else {
List<Long> menuIdList = new ArrayList<>(); List<Long> menuIdList = new ArrayList<>();
menuIdList.add(m.getId()); menuIdList.add(m.getId());
map.put(m.getParentId(),menuIdList); map.put(m.getParentId(), menuIdList);
} }
}); });
return map; return map;
}else { } else {
return Collections.emptyMap(); return Collections.emptyMap();
} }
} }
......
...@@ -37,6 +37,27 @@ public class RoleAuthController extends BaseCRUDJsonBodyMappingController<RoleAu ...@@ -37,6 +37,27 @@ public class RoleAuthController extends BaseCRUDJsonBodyMappingController<RoleAu
super.init(model, context); super.init(model, context);
} }
/**
* 分配资源
*/
@PostMapping(value = "distributionSource")
public String distributionUser(@RequestBody RoleAuthQuery query) {
try {
service.doDistributionSource(query);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
return ret.toJSONString();
} catch (Exception e) {
log.error("分配角色资源错误", e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
/** /**
* 分配菜单到角色 * 分配菜单到角色
*/ */
......
...@@ -57,6 +57,11 @@ public class UserVo extends BaseEntityLong { ...@@ -57,6 +57,11 @@ public class UserVo extends BaseEntityLong {
private String oldPwd; private String oldPwd;
private String newPwd; private String newPwd;
/**
* 菜单栏
*/
private String menuUrl;
public static void main(String[] args) { public static void main(String[] args) {
UserQuery userEntity = new UserQuery(); UserQuery userEntity = new UserQuery();
......
...@@ -4,6 +4,7 @@ import com.mortals.framework.exception.AppException; ...@@ -4,6 +4,7 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDCacheService;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.user.model.UserEntity; import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.model.UserEntityExt; import com.mortals.xhx.module.user.model.UserEntityExt;
...@@ -16,7 +17,7 @@ import com.mortals.xhx.module.user.model.UserEntityExt; ...@@ -16,7 +17,7 @@ import com.mortals.xhx.module.user.model.UserEntityExt;
* @author zxfei * @author zxfei
* @date 2022-05-25 * @date 2022-05-25
*/ */
public interface UserService extends ICRUDService<UserEntity,Long>{ public interface UserService extends ICRUDCacheService<UserEntity,Long> {
/** /**
* 用户登录 * 用户登录
* *
......
...@@ -12,6 +12,7 @@ import com.mortals.framework.model.PageInfo; ...@@ -12,6 +12,7 @@ import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.service.IAuthTokenService; import com.mortals.framework.service.IAuthTokenService;
import com.mortals.framework.service.ICacheService; import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.*; import com.mortals.framework.util.*;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
...@@ -44,7 +45,7 @@ import java.util.stream.Collectors; ...@@ -44,7 +45,7 @@ import java.util.stream.Collectors;
* @date 2022-05-25 * @date 2022-05-25
*/ */
@Service("userService") @Service("userService")
public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity, Long> implements UserService { public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserEntity, Long> implements UserService {
@Autowired @Autowired
private MenuService menuService; private MenuService menuService;
@Autowired @Autowired
...@@ -60,8 +61,17 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -60,8 +61,17 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
@Autowired @Autowired
private UserPwdRecordDao userPwdRecordDao; private UserPwdRecordDao userPwdRecordDao;
/**
* @param data
* @return
*/
@Override
protected String getExtKey(UserEntity data) {
return data.getLoginName();
}
/* @Override /* @Override
protected void findAfter(UserEntity entity, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException { protected void findAfter(UserEntity entity, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException {
Map<Long, String> roleMap = roleService.find(new RoleQuery()).stream().collect(Collectors.toMap(x -> x.getId(), y -> y.getName())); Map<Long, String> roleMap = roleService.find(new RoleQuery()).stream().collect(Collectors.toMap(x -> x.getId(), y -> y.getName()));
List<Long> userIdList = list.stream().map(item -> item.getId()).collect(Collectors.toList()); List<Long> userIdList = list.stream().map(item -> item.getId()).collect(Collectors.toList());
...@@ -79,22 +89,22 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -79,22 +89,22 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
private void doHandlerUser(UserEntity entity) throws AppException { private void doHandlerUser(UserEntity entity) throws AppException {
if (StringUtils.isNotEmpty(entity.getLoginPwd())) { if (StringUtils.isNotEmpty(entity.getLoginPwd())) {
if(!Solution.strongPasswordCheckerII(entity.getLoginPwd())){ if (!Solution.strongPasswordCheckerII(entity.getLoginPwd())) {
throw new AppException("新密码至少八位以上,包含大小写加特殊字符加数字"); throw new AppException("新密码至少八位以上,包含大小写加特殊字符加数字");
} }
try { try {
if(StringUtils.isEmpty(entity.getSaltKey())){ if (StringUtils.isEmpty(entity.getSaltKey())) {
String saltKey = SecurityCode.getSecurityCode(6,SecurityCode.SecurityCodeLevel.Medium,false); String saltKey = SecurityCode.getSecurityCode(6, SecurityCode.SecurityCodeLevel.Medium, false);
entity.setSaltKey(saltKey); entity.setSaltKey(saltKey);
} }
entity.setLoginPwd(SecurityUtil.md5DoubleEncoding(entity.getLoginPwd() + entity.getSaltKey())); entity.setLoginPwd(SecurityUtil.md5DoubleEncoding(entity.getLoginPwd() + entity.getSaltKey()));
} catch (Exception e) { } catch (Exception e) {
throw new AppException("密码转换异常"); throw new AppException("密码转换异常");
} }
if(entity.getId()!=null) { if (entity.getId() != null) {
UserEntity old = this.get(entity.getId()); UserEntity old = this.get(entity.getId());
if (old != null ) { if (old != null) {
if(!old.getLoginPwd().equals(entity.getLoginPwd())){ if (!old.getLoginPwd().equals(entity.getLoginPwd())) {
//判断新密码与最近五次修改密码是否相同 //判断新密码与最近五次修改密码是否相同
UserPwdRecordQuery recordQuery = new UserPwdRecordQuery(); UserPwdRecordQuery recordQuery = new UserPwdRecordQuery();
recordQuery.setUserId(entity.getId()); recordQuery.setUserId(entity.getId());
...@@ -103,10 +113,10 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -103,10 +113,10 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
add(new OrderCol("a.createTime", "desc")); add(new OrderCol("a.createTime", "desc"));
} }
}); });
List<UserPwdRecordEntity> recordEntityList = userPwdRecordDao.getList(recordQuery,0,5); List<UserPwdRecordEntity> recordEntityList = userPwdRecordDao.getList(recordQuery, 0, 5);
if(CollectionUtils.isNotEmpty(recordEntityList)){ if (CollectionUtils.isNotEmpty(recordEntityList)) {
for(UserPwdRecordEntity item:recordEntityList){ for (UserPwdRecordEntity item : recordEntityList) {
if(item.getLoginPwd().equals(entity.getLoginPwd())){ if (item.getLoginPwd().equals(entity.getLoginPwd())) {
throw new AppException("新密码不能与最近五次密码相同!"); throw new AppException("新密码不能与最近五次密码相同!");
} }
} }
...@@ -178,39 +188,39 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -178,39 +188,39 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
if (sysUser == null || !sysUser.getLoginName().equals(loginName)) { if (sysUser == null || !sysUser.getLoginName().equals(loginName)) {
throw new AppException("用户名不存在!"); throw new AppException("用户名不存在!");
} }
if(sysUser.getErrorCount()==null){ if (sysUser.getErrorCount() == null) {
sysUser.setErrorCount(0); sysUser.setErrorCount(0);
} }
if(sysUser.getLoginLock()==null){ if (sysUser.getLoginLock() == null) {
sysUser.setLoginLock(0); sysUser.setLoginLock(0);
} }
if(sysUser.getLoginLock() == 1 && sysUser.getLockTime()!=null){ if (sysUser.getLoginLock() == 1 && sysUser.getLockTime() != null) {
String nowStr = DateUtils.getCurrStrDate(); String nowStr = DateUtils.getCurrStrDate();
String loginDateStr = DateUtils.getDateTime(sysUser.getLockTime(),"yyyy-MM-dd"); String loginDateStr = DateUtils.getDateTime(sysUser.getLockTime(), "yyyy-MM-dd");
if(nowStr.equals(loginDateStr)) { if (nowStr.equals(loginDateStr)) {
throw new AppException("此账号当天密码错误次数已达上限,已被锁定"); throw new AppException("此账号当天密码错误次数已达上限,已被锁定");
} }
} }
try { try {
if(StringUtils.isNotEmpty(sysUser.getSaltKey())) { if (StringUtils.isNotEmpty(sysUser.getSaltKey())) {
password += sysUser.getSaltKey(); password += sysUser.getSaltKey();
} }
if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(password))) { if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(password))) {
UserEntity update = new UserEntity(); UserEntity update = new UserEntity();
update.setId(sysUser.getId()); update.setId(sysUser.getId());
update.setErrorCount(sysUser.getErrorCount()+1); update.setErrorCount(sysUser.getErrorCount() + 1);
if(update.getErrorCount()==5){ if (update.getErrorCount() == 5) {
update.setLoginLock(1); update.setLoginLock(1);
update.setLockTime(new Date()); update.setLockTime(new Date());
} }
this.dao.update(update); this.dao.update(update);
throw new AppException("登录密码错误!"); throw new AppException("登录密码错误!");
}else { } else {
if(sysUser.getLastUpdatePwdTime()!=null) { if (sysUser.getLastUpdatePwdTime() != null) {
long day = DateUtils.getBetween(sysUser.getLastUpdatePwdTime(), new Date(), 2); long day = DateUtils.getBetween(sysUser.getLastUpdatePwdTime(), new Date(), 2);
if (day >= 90) { if (day >= 90) {
throw new AppException(99998,"密码已超过三个月没有更改,请修改以后再登录"); throw new AppException(99998, "密码已超过三个月没有更改,请修改以后再登录");
} }
} }
} }
...@@ -261,13 +271,13 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -261,13 +271,13 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
throw new AppException("帐号错误!"); throw new AppException("帐号错误!");
} }
try { try {
if(StringUtils.isNotEmpty(sysUser.getSaltKey())) { if (StringUtils.isNotEmpty(sysUser.getSaltKey())) {
oldPwd += sysUser.getSaltKey(); oldPwd += sysUser.getSaltKey();
} }
if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(oldPwd))) { if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(oldPwd))) {
throw new AppException("原始密码错误!"); throw new AppException("原始密码错误!");
} }
if(!Solution.strongPasswordCheckerII(newPwd)){ if (!Solution.strongPasswordCheckerII(newPwd)) {
throw new AppException("新密码至少八位以上,包含大小写加特殊字符加数字"); throw new AppException("新密码至少八位以上,包含大小写加特殊字符加数字");
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -275,8 +285,8 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -275,8 +285,8 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
} }
try { try {
if(StringUtils.isEmpty(sysUser.getSaltKey())) { if (StringUtils.isEmpty(sysUser.getSaltKey())) {
String saltKey = SecurityCode.getSecurityCode(6,SecurityCode.SecurityCodeLevel.Medium,false); String saltKey = SecurityCode.getSecurityCode(6, SecurityCode.SecurityCodeLevel.Medium, false);
sysUser.setSaltKey(saltKey); sysUser.setSaltKey(saltKey);
} }
newPwd += sysUser.getSaltKey(); newPwd += sysUser.getSaltKey();
...@@ -289,10 +299,10 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -289,10 +299,10 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
add(new OrderCol("a.createTime", "desc")); add(new OrderCol("a.createTime", "desc"));
} }
}); });
List<UserPwdRecordEntity> recordEntityList = userPwdRecordDao.getList(recordQuery,0,5); List<UserPwdRecordEntity> recordEntityList = userPwdRecordDao.getList(recordQuery, 0, 5);
if(CollectionUtils.isNotEmpty(recordEntityList)){ if (CollectionUtils.isNotEmpty(recordEntityList)) {
for(UserPwdRecordEntity item:recordEntityList){ for (UserPwdRecordEntity item : recordEntityList) {
if(item.getLoginPwd().equals(sysUser.getLoginPwd())){ if (item.getLoginPwd().equals(sysUser.getLoginPwd())) {
throw new AppException("新密码不能与最近五次密码相同!"); throw new AppException("新密码不能与最近五次密码相同!");
} }
} }
...@@ -445,8 +455,8 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity ...@@ -445,8 +455,8 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
throw new AppException("帐号错误!"); throw new AppException("帐号错误!");
} }
try { try {
if(StringUtils.isEmpty(sysUser.getSaltKey())) { if (StringUtils.isEmpty(sysUser.getSaltKey())) {
String saltKey = SecurityCode.getSecurityCode(6,SecurityCode.SecurityCodeLevel.Medium,false); String saltKey = SecurityCode.getSecurityCode(6, SecurityCode.SecurityCodeLevel.Medium, false);
sysUser.setSaltKey(saltKey); sysUser.setSaltKey(saltKey);
} }
sysUser.setLoginPwd(SecurityUtil.md5DoubleEncoding(newPwd + sysUser.getSaltKey())); sysUser.setLoginPwd(SecurityUtil.md5DoubleEncoding(newPwd + sysUser.getSaltKey()));
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.base.system.resource.dao.ibatis.ResourceDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="ResourceEntity" id="ResourceEntity-Map">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="url" column="url" />
<result property="authType" column="authType" />
<result property="sourceType" column="sourceType" />
<result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" />
<result property="createUserName" column="createUserName" />
<result property="userType" column="userType" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id as id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('name') or colPickMode == 1 and data.containsKey('name')))">
a.name as name,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('url') or colPickMode == 1 and data.containsKey('url')))">
a.url as url,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('authType') or colPickMode == 1 and data.containsKey('authType')))">
a.authType as authType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sourceType') or colPickMode == 1 and data.containsKey('sourceType')))">
a.sourceType as sourceType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime as createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId as createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName as createUserName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userType') or colPickMode == 1 and data.containsKey('userType')))">
a.userType as userType,
</if>
</trim>
</sql>
<!-- 新增 -->
<insert id="insert" parameterType="ResourceEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_resource
(name,url,authType,sourceType,createTime,
createUserId,createUserName,userType
)VALUES(#{name},#{url},#{authType},#{sourceType},#{createTime},
#{createUserId},#{createUserName},#{userType})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_resource
(name,url,authType,sourceType,createTime,
createUserId,createUserName,userType
)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.name},#{item.url},#{item.authType},#{item.sourceType},#{item.createTime},
#{item.createUserId},#{item.createUserName},#{item.userType})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_resource as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
a.name=#{data.name},
</if>
<if test="(colPickMode==0 and data.containsKey('url')) or (colPickMode==1 and !data.containsKey('url'))">
a.url=#{data.url},
</if>
<if test="(colPickMode==0 and data.containsKey('authType')) or (colPickMode==1 and !data.containsKey('authType'))">
a.authType=#{data.authType},
</if>
<if test="(colPickMode==0 and data.containsKey('authTypeIncrement')) or (colPickMode==1 and !data.containsKey('authTypeIncrement'))">
a.authType=ifnull(a.authType,0) + #{data.authTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sourceType')) or (colPickMode==1 and !data.containsKey('sourceType'))">
a.sourceType=#{data.sourceType},
</if>
<if test="(colPickMode==0 and data.containsKey('sourceTypeIncrement')) or (colPickMode==1 and !data.containsKey('sourceTypeIncrement'))">
a.sourceType=ifnull(a.sourceType,0) + #{data.sourceTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
a.createUserId=#{data.createUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</if>
<if test="(colPickMode==0 and data.containsKey('userType')) or (colPickMode==1 and !data.containsKey('userType'))">
a.userType=#{data.userType},
</if>
<if test="(colPickMode==0 and data.containsKey('userTypeIncrement')) or (colPickMode==1 and !data.containsKey('userTypeIncrement'))">
a.userType=ifnull(a.userType,0) + #{data.userTypeIncrement},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="ResourceEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_resource as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_resource as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_resource where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_resource as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="ResourceEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_resource as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_xhx_resource as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<if test="condition.containsKey('id')">
<if test="condition.id != null">
and a.id=#{condition.id}
</if>
</if>
<if test="condition.containsKey('id')">
<if test="condition.id != null ">
and a.id = #{condition.id}
</if>
<if test="condition.id == null">
and a.id is null
</if>
</if>
<if test="condition.containsKey('idList')">
and a.id in
<foreach collection="condition.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('idStart') and condition.idStart != null">
<![CDATA[ and a.id >= #{condition.idStart} ]]>
</if>
<if test="condition.containsKey('idEnd') and condition.idEnd != null">
<![CDATA[ and a.id <= #{condition.idEnd} ]]>
</if>
<if test="condition.containsKey('name')">
<if test="condition.name != null and condition.name != ''">
and a.name like #{condition.name}
</if>
<if test="condition.name == null">
and a.name is null
</if>
</if>
<if test="condition.containsKey('nameList')">
and a.name in
<foreach collection="condition.nameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('url')">
<if test="condition.url != null and condition.url != ''">
and a.url like #{condition.url}
</if>
<if test="condition.url == null">
and a.url is null
</if>
</if>
<if test="condition.containsKey('urlList')">
and a.url in
<foreach collection="condition.urlList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('authType')">
<if test="condition.authType != null ">
and a.authType = #{condition.authType}
</if>
<if test="condition.authType == null">
and a.authType is null
</if>
</if>
<if test="condition.containsKey('authTypeList')">
and a.authType in
<foreach collection="condition.authTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('authTypeStart') and condition.authTypeStart != null">
<![CDATA[ and a.authType >= #{condition.authTypeStart} ]]>
</if>
<if test="condition.containsKey('authTypeEnd') and condition.authTypeEnd != null">
<![CDATA[ and a.authType <= #{condition.authTypeEnd} ]]>
</if>
<if test="condition.containsKey('sourceType')">
<if test="condition.sourceType != null ">
and a.sourceType = #{condition.sourceType}
</if>
<if test="condition.sourceType == null">
and a.sourceType is null
</if>
</if>
<if test="condition.containsKey('sourceTypeList')">
and a.sourceType in
<foreach collection="condition.sourceTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('sourceTypeStart') and condition.sourceTypeStart != null">
<![CDATA[ and a.sourceType >= #{condition.sourceTypeStart} ]]>
</if>
<if test="condition.containsKey('sourceTypeEnd') and condition.sourceTypeEnd != null">
<![CDATA[ and a.sourceType <= #{condition.sourceTypeEnd} ]]>
</if>
<if test="condition.containsKey('createTime')">
<if test="condition.createTime != null ">
and a.createTime = #{condition.createTime}
</if>
<if test="condition.createTime == null">
and a.createTime is null
</if>
</if>
<if test="condition.containsKey('createTimeStart') and condition.createTimeStart != null and condition.createTimeStart!=''">
<![CDATA[ and a.createTime >= STR_TO_DATE(left(concat(#{condition.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') ]]>
</if>
<if test="condition.containsKey('createTimeEnd') and condition.createTimeEnd != null and condition.createTimeEnd!=''">
<![CDATA[ and a.createTime <= STR_TO_DATE(left(concat(#{condition.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ]]>
</if>
<if test="condition.containsKey('createUserId')">
<if test="condition.createUserId != null ">
and a.createUserId = #{condition.createUserId}
</if>
<if test="condition.createUserId == null">
and a.createUserId is null
</if>
</if>
<if test="condition.containsKey('createUserIdList')">
and a.createUserId in
<foreach collection="condition.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('createUserIdStart') and condition.createUserIdStart != null">
<![CDATA[ and a.createUserId >= #{condition.createUserIdStart} ]]>
</if>
<if test="condition.containsKey('createUserIdEnd') and condition.createUserIdEnd != null">
<![CDATA[ and a.createUserId <= #{condition.createUserIdEnd} ]]>
</if>
<if test="condition.containsKey('createUserName')">
<if test="condition.createUserName != null and condition.createUserName != ''">
and a.createUserName like #{condition.createUserName}
</if>
<if test="condition.createUserName == null">
and a.createUserName is null
</if>
</if>
<if test="condition.containsKey('createUserNameList')">
and a.createUserName in
<foreach collection="condition.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('userType')">
<if test="condition.userType != null ">
and a.userType = #{condition.userType}
</if>
<if test="condition.userType == null">
and a.userType is null
</if>
</if>
<if test="condition.containsKey('userTypeList')">
and a.userType in
<foreach collection="condition.userTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="condition.containsKey('userTypeStart') and condition.userTypeStart != null">
<![CDATA[ and a.userType >= #{condition.userTypeStart} ]]>
</if>
<if test="condition.containsKey('userTypeEnd') and condition.userTypeEnd != null">
<![CDATA[ and a.userType <= #{condition.userTypeEnd} ]]>
</if>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test="orderCol.id!= null">
${orderCol.id}
</if>
,
</if>
<if test="orderCol.containsKey('name')">
a.name
<if test="orderCol.name!= null">
${orderCol.name}
</if>
,
</if>
<if test="orderCol.containsKey('url')">
a.url
<if test="orderCol.url!= null">
${orderCol.url}
</if>
,
</if>
<if test="orderCol.containsKey('authType')">
a.authType
<if test="orderCol.authType!= null">
${orderCol.authType}
</if>
,
</if>
<if test="orderCol.containsKey('sourceType')">
a.sourceType
<if test="orderCol.sourceType!= null">
${orderCol.sourceType}
</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test="orderCol.createTime!= null">
${orderCol.createTime}
</if>
,
</if>
<if test="orderCol.containsKey('createUserId')">
a.createUserId
<if test="orderCol.createUserId!= null">
${orderCol.createUserId}
</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test="orderCol.createUserName!= null">
${orderCol.createUserName}
</if>
,
</if>
<if test="orderCol.containsKey('userType')">
a.userType
<if test="orderCol.userType!= null">
${orderCol.userType}
</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.base.system.resource.dao.ibatis.ResourceDaoImpl">
<!-- 获取列表 -->
<select id="getListByUserId" parameterType="paramDto" resultMap="ResourceEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_resource as a
where a.authType in(0,1,2) or a.id IN
(select resourceId
from mortals_xhx_role_auth as b
left join mortals_xhx_role_user as c
on b.roleId=c.roleId
where c.userId=#{condition.userId})
</select>
<select id="getAllByUserType" parameterType="java.util.HashMap" resultMap="ResourceEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_resource as a
where a.userType=#{userType}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd"> "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.role.dao.ibatis.RoleAuthDaoImpl"> <mapper namespace="com.mortals.xhx.module.role.dao.ibatis.RoleAuthDaoImpl">
<!-- 字段和属性映射 --> <!-- 字段和属性映射 -->
<resultMap type="RoleAuthEntity" id="RoleAuthEntity-Map"> <resultMap type="RoleAuthEntity" id="RoleAuthEntity-Map">
<id property="id" column="id" /> <id property="id" column="id" />
<result property="roleId" column="roleId" /> <result property="roleId" column="roleId" />
<result property="menuId" column="menuId" /> <result property="menuId" column="menuId" />
<result property="resourceId" column="resourceId" />
<result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" />
<result property="createUserName" column="createUserName" />
</resultMap> </resultMap>
<!-- 表所有列 --> <!-- 表所有列 -->
<sql id="_columns"> <sql id="_columns">
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id, a.id,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('roleId') or colPickMode == 1 and data.containsKey('roleId')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('roleId') or colPickMode == 1 and data.containsKey('roleId')))">
a.roleId, a.roleId,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('menuId') or colPickMode == 1 and data.containsKey('menuId')))"> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('menuId') or colPickMode == 1 and data.containsKey('menuId')))">
a.menuId, a.menuId,
</if> </if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('resourceId') or colPickMode == 1 and data.containsKey('resourceId')))">
a.resourceId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName,
</if>
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="RoleAuthEntity" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="RoleAuthEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_role_auth insert into mortals_xhx_role_auth
(roleId,menuId) (roleId,menuId,resourceId,createTime,createUserId,createUserName)
VALUES VALUES
(#{roleId},#{menuId}) (#{roleId},#{menuId},#{resourceId},#{createTime},#{createUserId},#{createUserName})
</insert> </insert>
<!-- 批量新增 --> <!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto"> <insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_role_auth insert into mortals_xhx_role_auth
(roleId,menuId) (roleId,menuId,resourceId,createTime,createUserId,createUserName)
VALUES VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," > <foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.roleId},#{item.menuId}) (#{item.roleId},#{item.menuId},#{item.resourceId},#{item.createTime},#{item.createUserId},#{item.createUserName})
</foreach> </foreach>
</insert> </insert>
...@@ -62,6 +78,24 @@ ...@@ -62,6 +78,24 @@
<if test="(colPickMode==0 and data.containsKey('menuIdIncrement')) or (colPickMode==1 and !data.containsKey('menuIdIncrement'))"> <if test="(colPickMode==0 and data.containsKey('menuIdIncrement')) or (colPickMode==1 and !data.containsKey('menuIdIncrement'))">
a.menuId=ifnull(a.menuId,0) + #{data.menuIdIncrement}, a.menuId=ifnull(a.menuId,0) + #{data.menuIdIncrement},
</if> </if>
<if test="(colPickMode==0 and data.containsKey('resourceId')) or (colPickMode==1 and !data.containsKey('resourceId'))">
a.resourceId=#{data.resourceId},
</if>
<if test="(colPickMode==0 and data.containsKey('resourceIdIncrement')) or (colPickMode==1 and !data.containsKey('resourceIdIncrement'))">
a.resourceId=ifnull(a.resourceId,0) + #{data.resourceIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
a.createUserId=#{data.createUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</if>
</trim> </trim>
<trim suffixOverrides="where" suffix=""> <trim suffixOverrides="where" suffix="">
where where
...@@ -74,30 +108,68 @@ ...@@ -74,30 +108,68 @@
<update id="updateBatch" parameterType="paramDto"> <update id="updateBatch" parameterType="paramDto">
update mortals_xhx_role_auth as a update mortals_xhx_role_auth as a
<trim prefix="set" suffixOverrides=","> <trim prefix="set" suffixOverrides=",">
<trim prefix="roleId=(case" suffix="ELSE roleId end),"> <trim prefix="roleId=(case" suffix="ELSE roleId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" > <foreach collection="data.dataList" item="item" index="index" separator="" >
<choose> <choose>
<when test="(colPickMode==0 and item.containsKey('roleId')) or (colPickMode==1 and !item.containsKey('roleId'))"> <when test="(colPickMode==0 and item.containsKey('roleId')) or (colPickMode==1 and !item.containsKey('roleId'))">
when a.id=#{item.id} then #{item.roleId} when a.id=#{item.id} then #{item.roleId}
</when> </when>
<when test="(colPickMode==0 and item.containsKey('roleIdIncrement')) or (colPickMode==1 and !item.containsKey('roleIdIncrement'))"> <when test="(colPickMode==0 and item.containsKey('roleIdIncrement')) or (colPickMode==1 and !item.containsKey('roleIdIncrement'))">
when a.id=#{item.id} then ifnull(a.roleId,0) + #{item.roleIdIncrement} when a.id=#{item.id} then ifnull(a.roleId,0) + #{item.roleIdIncrement}
</when> </when>
</choose> </choose>
</foreach> </foreach>
</trim> </trim>
<trim prefix="menuId=(case" suffix="ELSE menuId end),"> <trim prefix="menuId=(case" suffix="ELSE menuId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" > <foreach collection="data.dataList" item="item" index="index" separator="" >
<choose> <choose>
<when test="(colPickMode==0 and item.containsKey('menuId')) or (colPickMode==1 and !item.containsKey('menuId'))"> <when test="(colPickMode==0 and item.containsKey('menuId')) or (colPickMode==1 and !item.containsKey('menuId'))">
when a.id=#{item.id} then #{item.menuId} when a.id=#{item.id} then #{item.menuId}
</when> </when>
<when test="(colPickMode==0 and item.containsKey('menuIdIncrement')) or (colPickMode==1 and !item.containsKey('menuIdIncrement'))"> <when test="(colPickMode==0 and item.containsKey('menuIdIncrement')) or (colPickMode==1 and !item.containsKey('menuIdIncrement'))">
when a.id=#{item.id} then ifnull(a.menuId,0) + #{item.menuIdIncrement} when a.id=#{item.id} then ifnull(a.menuId,0) + #{item.menuIdIncrement}
</when> </when>
</choose> </choose>
</foreach> </foreach>
</trim> </trim>
<trim prefix="resourceId=(case" suffix="ELSE resourceId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('resourceId')) or (colPickMode==1 and !item.containsKey('resourceId'))">
when a.id=#{item.id} then #{item.resourceId}
</when>
<when test="(colPickMode==0 and item.containsKey('resourceIdIncrement')) or (colPickMode==1 and !item.containsKey('resourceIdIncrement'))">
when a.id=#{item.id} then ifnull(a.resourceId,0) + #{item.resourceIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
when a.id=#{item.id} then #{item.createUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</if>
</foreach>
</trim>
</trim> </trim>
where id in where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
...@@ -121,6 +193,21 @@ ...@@ -121,6 +193,21 @@
#{item} #{item}
</foreach> </foreach>
</delete> </delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByKeyList">
delete from mortals_xhx_role_auth where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据对象列表删除一批,针对单一主健有效 -->
<delete id="deleteByEntityList">
delete from mortals_xhx_role_auth where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
<!-- 根据paramDto删除一批 --> <!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto"> <delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_role_auth as a delete a.* from mortals_xhx_role_auth as a
...@@ -199,99 +286,299 @@ ...@@ -199,99 +286,299 @@
${_conditionType_} a.id=#{${_conditionParam_}.id} ${_conditionType_} a.id=#{${_conditionParam_}.id}
</if> </if>
</if> </if>
<if test="conditionParamRef.containsKey('id')"> <if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null "> <if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id} ${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if> </if>
<if test="conditionParamRef.containsKey('idList')"> <if test="conditionParamRef.id == null">
${_conditionType_} a.id in ${_conditionType_} a.id is null
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if> </if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null"> </if>
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart} <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
${_conditionType_} a.id not in
<foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
</if>
<if test="conditionParamRef.containsKey('roleId')">
<if test="conditionParamRef.roleId != null ">
${_conditionType_} a.roleId = #{${_conditionParam_}.roleId}
</if> </if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null"> <if test="conditionParamRef.roleId == null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd} ${_conditionType_} a.roleId is null
</if> </if>
</if>
<if test="conditionParamRef.containsKey('roleIdList') and conditionParamRef.roleIdList.size() > 0">
${_conditionType_} a.roleId in
<foreach collection="conditionParamRef.roleIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('roleIdNotList') and conditionParamRef.roleIdNotList.size() > 0">
${_conditionType_} a.roleId not in
<foreach collection="conditionParamRef.roleIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('roleIdStart') and conditionParamRef.roleIdStart != null">
${_conditionType_} a.roleId <![CDATA[ >= ]]> #{${_conditionParam_}.roleIdStart}
</if>
<if test="conditionParamRef.containsKey('roleIdEnd') and conditionParamRef.roleIdEnd != null">
${_conditionType_} a.roleId <![CDATA[ <= ]]> #{${_conditionParam_}.roleIdEnd}
</if>
<if test="conditionParamRef.containsKey('roleId')"> <if test="conditionParamRef.containsKey('menuId')">
<if test="conditionParamRef.roleId != null "> <if test="conditionParamRef.menuId != null ">
${_conditionType_} a.roleId = #{${_conditionParam_}.roleId} ${_conditionType_} a.menuId = #{${_conditionParam_}.menuId}
</if>
<if test="conditionParamRef.roleId == null">
${_conditionType_} a.roleId is null
</if>
</if> </if>
<if test="conditionParamRef.containsKey('roleIdList')"> <if test="conditionParamRef.menuId == null">
${_conditionType_} a.roleId in ${_conditionType_} a.menuId is null
<foreach collection="conditionParamRef.roleIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if> </if>
<if test="conditionParamRef.containsKey('roleIdStart') and conditionParamRef.roleIdStart != null"> </if>
${_conditionType_} a.roleId <![CDATA[ >= ]]> #{${_conditionParam_}.roleIdStart} <if test="conditionParamRef.containsKey('menuIdList') and conditionParamRef.menuIdList.size() > 0">
${_conditionType_} a.menuId in
<foreach collection="conditionParamRef.menuIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('menuIdNotList') and conditionParamRef.menuIdNotList.size() > 0">
${_conditionType_} a.menuId not in
<foreach collection="conditionParamRef.menuIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('menuIdStart') and conditionParamRef.menuIdStart != null">
${_conditionType_} a.menuId <![CDATA[ >= ]]> #{${_conditionParam_}.menuIdStart}
</if>
<if test="conditionParamRef.containsKey('menuIdEnd') and conditionParamRef.menuIdEnd != null">
${_conditionType_} a.menuId <![CDATA[ <= ]]> #{${_conditionParam_}.menuIdEnd}
</if>
<if test="conditionParamRef.containsKey('resourceId')">
<if test="conditionParamRef.resourceId != null ">
${_conditionType_} a.resourceId = #{${_conditionParam_}.resourceId}
</if> </if>
<if test="conditionParamRef.containsKey('roleIdEnd') and conditionParamRef.roleIdEnd != null"> <if test="conditionParamRef.resourceId == null">
${_conditionType_} a.roleId <![CDATA[ <= ]]> #{${_conditionParam_}.roleIdEnd} ${_conditionType_} a.resourceId is null
</if> </if>
</if>
<if test="conditionParamRef.containsKey('resourceIdList') and conditionParamRef.resourceIdList.size() > 0">
${_conditionType_} a.resourceId in
<foreach collection="conditionParamRef.resourceIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('resourceIdNotList') and conditionParamRef.resourceIdNotList.size() > 0">
${_conditionType_} a.resourceId not in
<foreach collection="conditionParamRef.resourceIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('resourceIdStart') and conditionParamRef.resourceIdStart != null">
${_conditionType_} a.resourceId <![CDATA[ >= ]]> #{${_conditionParam_}.resourceIdStart}
</if>
<if test="conditionParamRef.containsKey('resourceIdEnd') and conditionParamRef.resourceIdEnd != null">
${_conditionType_} a.resourceId <![CDATA[ <= ]]> #{${_conditionParam_}.resourceIdEnd}
</if>
<if test="conditionParamRef.containsKey('menuId')">
<if test="conditionParamRef.menuId != null "> <if test="conditionParamRef.containsKey('createTime')">
${_conditionType_} a.menuId = #{${_conditionParam_}.menuId} <if test="conditionParamRef.createTime != null ">
</if> ${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
<if test="conditionParamRef.menuId == null">
${_conditionType_} a.menuId is null
</if>
</if> </if>
<if test="conditionParamRef.containsKey('menuIdList')"> <if test="conditionParamRef.createTime == null">
${_conditionType_} a.menuId in ${_conditionType_} a.createTime is null
<foreach collection="conditionParamRef.menuIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if> </if>
<if test="conditionParamRef.containsKey('menuIdStart') and conditionParamRef.menuIdStart != null"> </if>
${_conditionType_} a.menuId <![CDATA[ >= ]]> #{${_conditionParam_}.menuIdStart} <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
</if> </if>
<if test="conditionParamRef.containsKey('menuIdEnd') and conditionParamRef.menuIdEnd != null"> <if test="conditionParamRef.createUserId == null">
${_conditionType_} a.menuId <![CDATA[ <= ]]> #{${_conditionParam_}.menuIdEnd} ${_conditionType_} a.createUserId is null
</if> </if>
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
${_conditionType_} a.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
${_conditionType_} a.createUserId not in
<foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList') and conditionParamRef.createUserNameList.size() > 0">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserNameNotList') and conditionParamRef.createUserNameNotList.size() > 0">
${_conditionType_} a.createUserName not in
<foreach collection="conditionParamRef.createUserNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql> </sql>
<sql id="_orderCols_"> <sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()"> <if test="orderColList != null and !orderColList.isEmpty()">
order by order by
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
field(a.id,
<foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('roleIdList') and conditionParamRef.roleIdList.size() > 0">
field(a.roleId,
<foreach collection="conditionParamRef.roleIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('menuIdList') and conditionParamRef.menuIdList.size() > 0">
field(a.menuId,
<foreach collection="conditionParamRef.menuIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('resourceIdList') and conditionParamRef.resourceIdList.size() > 0">
field(a.resourceId,
<foreach collection="conditionParamRef.resourceIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
field(a.createUserId,
<foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=","> <foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind} a.${item.colName} ${item.sortKind}
</foreach> </foreach>
</trim> </trim>
</if> </if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()"> <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by order by
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
field(a.id,
<foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('roleIdList') and conditionParamRef.roleIdList.size() > 0">
field(a.roleId,
<foreach collection="conditionParamRef.roleIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('menuIdList') and conditionParamRef.menuIdList.size() > 0">
field(a.menuId,
<foreach collection="conditionParamRef.menuIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('resourceIdList') and conditionParamRef.resourceIdList.size() > 0">
field(a.resourceId,
<foreach collection="conditionParamRef.resourceIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
field(a.createUserId,
<foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')"> <if test="orderCol.containsKey('id')">
a.id a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if> <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('roleId')"> <if test="orderCol.containsKey('roleId')">
a.roleId a.roleId
<if test='orderCol.roleId != null and "DESC".equalsIgnoreCase(orderCol.roleId)'>DESC</if> <if test='orderCol.roleId != null and "DESC".equalsIgnoreCase(orderCol.roleId)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('menuId')"> <if test="orderCol.containsKey('menuId')">
a.menuId a.menuId
<if test='orderCol.menuId != null and "DESC".equalsIgnoreCase(orderCol.menuId)'>DESC</if> <if test='orderCol.menuId != null and "DESC".equalsIgnoreCase(orderCol.menuId)'>DESC</if>
, ,
</if> </if>
<if test="orderCol.containsKey('resourceId')">
a.resourceId
<if test='orderCol.resourceId != null and "DESC".equalsIgnoreCase(orderCol.resourceId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserId')">
a.createUserId
<if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>DESC</if>
,
</if>
</trim> </trim>
</if> </if>
</sql> </sql>
<sql id="_group_by_"> <sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()"> <if test="groupList != null and !groupList.isEmpty()">
......
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