Commit 18144407 authored by trumansdo's avatar trumansdo
Browse files

应用codestyle


千万千万要用vscode打开前端项目,或者关闭eslint,移除它
Signed-off-by: default avatartrumansdo <1012243881@qq.com>
parent 9b3d96a6
......@@ -10,14 +10,13 @@ import org.springframework.cache.annotation.EnableCaching;
@EnableCaching
public class CosonleApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(CosonleApplication.class);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(CosonleApplication.class);
}
public static void main(String[] args) {
public static void main(String[] args) {
SpringApplication.run(CosonleApplication.class, args);
}
}
\ No newline at end of file
SpringApplication.run(CosonleApplication.class, args);
}
}
......@@ -9,7 +9,5 @@ import com.ibeetl.admin.core.entity.CoreAudit;
@SqlResource("console.audit")
public interface AuditConsoleDao extends BaseMapper<CoreAudit> {
PageQuery<CoreAudit> queryByCondtion(PageQuery<CoreAudit> query);
PageQuery<CoreAudit> queryByCondtion(PageQuery<CoreAudit> query);
}
......@@ -8,11 +8,10 @@ import org.beetl.sql.core.mapper.BaseMapper;
import com.ibeetl.admin.core.entity.CoreDict;
/**
* CoreDict Dao
*/
/** CoreDict Dao */
@SqlResource("console.dict")
public interface DictConsoleDao extends BaseMapper<CoreDict>{
public PageQuery<CoreDict> queryByCondition(PageQuery query);
public void batchDelCoreDictByIds( List<Long> ids);
}
\ No newline at end of file
public interface DictConsoleDao extends BaseMapper<CoreDict> {
public PageQuery<CoreDict> queryByCondition(PageQuery query);
public void batchDelCoreDictByIds(List<Long> ids);
}
......@@ -9,10 +9,10 @@ import com.ibeetl.admin.core.entity.CoreFunction;
@SqlResource("console.function")
public interface FunctionConsoleDao extends BaseMapper<CoreFunction> {
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery query);
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery query);
}
......@@ -9,11 +9,10 @@ import com.ibeetl.admin.core.entity.CoreMenu;
@SqlResource("console.menu")
public interface MenuConsoleDao extends BaseMapper<CoreMenu> {
/**
* 根据条件分页查询
* @param query 查询条件
*/
void queryByCondtion(PageQuery query);
/**
* 根据条件分页查询
*
* @param query 查询条件
*/
void queryByCondtion(PageQuery query);
}
......@@ -15,11 +15,10 @@ import com.ibeetl.admin.core.entity.CoreUser;
@SqlResource("console.org")
public interface OrgConsoleDao extends BaseMapper<CoreOrg> {
void queryByCondtion(PageQuery<CoreOrg> query);
void queryByCondtion(PageQuery<CoreOrg> query);
@SqlStatement(type=SqlStatementType.SELECT)
void queryUserByCondtion(PageQuery<CoreUser> query);
void batchDelByIds(@Param(value = "ids") List<Long> ids);
@SqlStatement(type = SqlStatementType.SELECT)
void queryUserByCondtion(PageQuery<CoreUser> query);
void batchDelByIds(@Param(value = "ids") List<Long> ids);
}
......@@ -13,26 +13,25 @@ import com.ibeetl.admin.core.entity.CoreUser;
@SqlResource("console.role")
public interface RoleConsoleDao extends BaseMapper<CoreRole> {
/**
* 根据条件分页查询
* @param query 查询条件
*/
void queryByCondtion(PageQuery query);
/**
* 批量删除角色
* @param ids 角色id
*/
void batchDelByIds(List<Long> ids);
void batchDeleteRoleFunction(List<Long> ids);
void batchDeleteRoleMenu(List<Long> ids);
void batchDeleteUserRole(List<Long> ids);
PageQuery<CoreUser> queryUser(PageQuery query);
/**
* 根据条件分页查询
*
* @param query 查询条件
*/
void queryByCondtion(PageQuery query);
/**
* 批量删除角色
*
* @param ids 角色id
*/
void batchDelByIds(List<Long> ids);
void batchDeleteRoleFunction(List<Long> ids);
void batchDeleteRoleMenu(List<Long> ids);
void batchDeleteUserRole(List<Long> ids);
PageQuery<CoreUser> queryUser(PageQuery query);
}
......@@ -12,12 +12,9 @@ import com.ibeetl.admin.core.entity.CoreRoleFunction;
@SqlResource("console.roleFunction")
public interface RoleFunctionConsoleDao extends BaseMapper<CoreRoleFunction> {
void deleteRoleFunction(List<Long> ids);
void deleteRoleFunction(List<Long> ids);
List<Long> getFunctionIdByRole(Long roleId);
List<RoleDataAccessFunction> getQueryFunctionAndRoleData(Long roleId);
List<Long> getFunctionIdByRole(Long roleId);
List<RoleDataAccessFunction> getQueryFunctionAndRoleData(Long roleId);
}
......@@ -14,13 +14,11 @@ import java.util.List;
@SqlResource("console.user")
public interface UserConsoleDao extends BaseMapper<CoreUser> {
PageQuery<CoreUser> queryByCondtion(PageQuery<CoreUser> query);
PageQuery<CoreUser> queryByCondtion(PageQuery<CoreUser> query);
void batchDelUserByIds( List<Long> ids);
void batchDelUserByIds(List<Long> ids);
void batchUpdateUserState(List<Long> ids, GeneralStateEnum state);
List<CoreUserRole> queryUserRole( Long id,Long orgId,Long roleId);
void batchUpdateUserState(List<Long> ids, GeneralStateEnum state);
List<CoreUserRole> queryUserRole(Long id, Long orgId, Long roleId);
}
......@@ -3,16 +3,16 @@ package com.ibeetl.admin.console.exception;
import com.ibeetl.admin.core.util.PlatformException;
/**
* 描述: 已删除异常
* 描述: 已删除异常
*
* @author : xiandafu
*/
public class DeletedException extends PlatformException {
public DeletedException() {
super();
}
public DeletedException() {
super();
}
public DeletedException(String message) {
super(message);
}
public DeletedException(String message) {
super(message);
}
}
......@@ -8,11 +8,11 @@ import com.ibeetl.admin.core.util.PlatformException;
* @author : xiandafu
*/
public class NoResourceException extends PlatformException {
public NoResourceException() {
super();
}
public NoResourceException() {
super();
}
public NoResourceException(String message) {
super(message);
}
public NoResourceException(String message) {
super(message);
}
}
......@@ -13,19 +13,15 @@ import com.ibeetl.admin.core.service.CoreBaseService;
@Transactional
public class AuditConsoleService extends CoreBaseService<CoreAudit> {
@Autowired
AuditConsoleDao auditConsoleDao;
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery<CoreAudit> query) {
PageQuery<CoreAudit> ret = auditConsoleDao.queryByCondtion(query);
queryListAfter(ret.getList());
}
@Autowired AuditConsoleDao auditConsoleDao;
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery<CoreAudit> query) {
PageQuery<CoreAudit> ret = auditConsoleDao.queryByCondtion(query);
queryListAfter(ret.getList());
}
}
......@@ -19,95 +19,89 @@ import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.ExcelError;
import com.ibeetl.admin.core.util.PlatformException;
/**
* CoreDict Service
*/
/** CoreDict Service */
@Service
@Transactional
public class DictConsoleService extends CoreBaseService<CoreDict> {
@Autowired private DictConsoleDao dictDao;
@Autowired private DictConsoleDao dictDao;
public PageQuery<CoreDict> queryByCondition(PageQuery query) {
PageQuery ret = dictDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<CoreDict>queryByCondition(PageQuery query){
PageQuery ret = dictDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
public void batchDelCoreDict(List<Long> ids) {
try {
// TODO,找到数据字典所有子类,设置删除标记
dictDao.batchDelCoreDictByIds(ids);
} catch (Exception e) {
throw new PlatformException("批量删除CoreDict失败", e);
}
}
public List<CoreDict> queryExcel(PageQuery<CoreUser> query) {
// 同查询,不需要额外数据
PageQuery ret = dictDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret.getList();
}
/**
* 参考:dict_mapping.xml
*
* @param list
* @return
*/
public void batchInsert(List<DictExcelImportData> list) {
int dataStartRow = 2;
final Map<Integer, DictExcelImportData> map = new HashMap<>();
list.forEach((item) -> map.put(item.getExcelId(), item));
// 逐个按照顺序导入
for (DictExcelImportData item : list) {
CoreDict dict = new CoreDict();
dict.setName(item.getName());
dict.setRemark(item.getRemark());
dict.setType(item.getType());
dict.setTypeName(item.getTypeName());
dict.setValue(item.getValue());
public void batchDelCoreDict(List<Long> ids){
try {
//TODO,找到数据字典所有子类,设置删除标记
dictDao.batchDelCoreDictByIds(ids);
} catch (Exception e) {
throw new PlatformException("批量删除CoreDict失败", e);
// 设置父字典
if (item.getParentExcelId() != 0) {
DictExcelImportData parentItem = map.get(item.getParentExcelId());
if (parentItem == null) {
// 硬编码,TODO,用reader缺少校验,替换手写导入
int row = item.getExcelId() + dataStartRow;
throwImporError(row, 5, "未找到父字典");
}
if (parentItem.getId() == null) {
int row = item.getExcelId() + dataStartRow;
throwImporError(row, 5, "父字典未被导入,请先导入父字典");
}
dict.setParent(parentItem.getId());
}
dict.setCreateTime(new Date());
// 导入前先查找是否有此值
CoreDict template = new CoreDict();
template.setType(dict.getType());
template.setValue(dict.getValue());
CoreDict dbDict = dictDao.templateOne(template);
if (dbDict != null) {
int row = item.getExcelId() + dataStartRow;
throwImporError(row, 0, "字典数据已经存在");
}
dictDao.insert(dict);
item.setId(dict.getId());
dataStartRow++;
}
public List<CoreDict> queryExcel(PageQuery<CoreUser> query) {
//同查询,不需要额外数据
PageQuery ret = dictDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret.getList();
}
/**
* 参考:dict_mapping.xml
* @param list
* @return
*/
public void batchInsert(List<DictExcelImportData> list) {
int dataStartRow = 2;
final Map<Integer,DictExcelImportData> map = new HashMap<>();
list.forEach((item)->map.put(item.getExcelId(), item));
//逐个按照顺序导入
for(DictExcelImportData item:list) {
CoreDict dict = new CoreDict();
dict.setName(item.getName());
dict.setRemark(item.getRemark());
dict.setType(item.getType());
dict.setTypeName(item.getTypeName());
dict.setValue(item.getValue());
//设置父字典
if(item.getParentExcelId()!=0) {
DictExcelImportData parentItem = map.get(item.getParentExcelId());
if(parentItem==null) {
//硬编码,TODO,用reader缺少校验,替换手写导入
int row = item.getExcelId()+dataStartRow;
throwImporError(row,5,"未找到父字典");
}
if(parentItem.getId()==null) {
int row = item.getExcelId()+dataStartRow;
throwImporError(row,5,"父字典未被导入,请先导入父字典");
}
dict.setParent(parentItem.getId());
}
dict.setCreateTime(new Date());
//导入前先查找是否有此值
CoreDict template = new CoreDict();
template.setType(dict.getType());
template.setValue(dict.getValue());
CoreDict dbDict = dictDao.templateOne(template);
if(dbDict!=null) {
int row = item.getExcelId()+dataStartRow;
throwImporError(row,0,"字典数据已经存在");
}
dictDao.insert(dict);
item.setId(dict.getId());
dataStartRow++;
}
}
private void throwImporError(int row,int col,String msg) {
ExcelError error = new ExcelError();
CellReference cr = new CellReference(row,col,false,false);
error.setCell(cr.formatAsString());
error.setMsg(msg);
throw new PlatformException("导入错误在:"+error.getCell()+","+msg);
}
}
\ No newline at end of file
}
private void throwImporError(int row, int col, String msg) {
ExcelError error = new ExcelError();
CellReference cr = new CellReference(row, col, false, false);
error.setCell(cr.formatAsString());
error.setMsg(msg);
throw new PlatformException("导入错误在:" + error.getCell() + "," + msg);
}
}
......@@ -22,229 +22,208 @@ import com.ibeetl.admin.core.rbac.tree.FunctionItem;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException;
/**
* @author lijiazhi
*
*/
/** @author lijiazhi */
@Service
@Transactional
public class FunctionConsoleService extends CoreBaseService<CoreFunction> {
@Autowired
FunctionConsoleDao functionDao;
@Autowired
CoreMenuDao menuDao;
@Autowired
RoleFunctionConsoleDao roleFunctionConsoleDao;
@Autowired
CoreRoleMenuDao sysRoleMenuDao;
@Autowired
CorePlatformService platformService;
public void queryByCondtion(PageQuery<CoreFunction> query) {
functionDao.queryByCondtion(query);
List<CoreFunction> list = query.getList();
this.queryListAfter(list);
//处理父功能名称显示
FunctionItem root = platformService.buildFunction();
for(CoreFunction function:list) {
Long parentId = function.getParentId();
String name = "";
if(parentId != 0) {
FunctionItem item = root.findChild(parentId);
name = item!=null?item.getName():"";
}
function.set("parentFunctionText", name);
public class FunctionConsoleService extends CoreBaseService<CoreFunction> {
@Autowired FunctionConsoleDao functionDao;
@Autowired CoreMenuDao menuDao;
@Autowired RoleFunctionConsoleDao roleFunctionConsoleDao;
@Autowired CoreRoleMenuDao sysRoleMenuDao;
@Autowired CorePlatformService platformService;
public void queryByCondtion(PageQuery<CoreFunction> query) {
functionDao.queryByCondtion(query);
List<CoreFunction> list = query.getList();
this.queryListAfter(list);
// 处理父功能名称显示
FunctionItem root = platformService.buildFunction();
for (CoreFunction function : list) {
Long parentId = function.getParentId();
String name = "";
if (parentId != 0) {
FunctionItem item = root.findChild(parentId);
name = item != null ? item.getName() : "";
}
function.set("parentFunctionText", name);
}
}
public Long saveFunction(CoreFunction function) {
functionDao.insert(function, true);
platformService.clearFunctionCache();
return function.getId();
}
/**
* 删除功能点,跟菜单有关联的无法删除,删除功能点导致所有缓存都需要更新
*
* @param functionId
* @return
*/
public void deleteFunction(Long functionId) {
deleteFunctionId(functionId);
platformService.clearFunctionCache();
}
public void batchDeleteFunction(List<Long> functionIds) {
for (Long id : functionIds) {
deleteFunctionId(id);
}
platformService.clearFunctionCache();
}
public void updateFunction(CoreFunction function) {
functionDao.updateById(function);
platformService.clearFunctionCache();
}
public CoreFunction getFunction(Long functionId) {
return functionDao.unique(functionId);
}
public CoreFunction getFunction(String code) {
CoreFunction query = new CoreFunction();
query.setCode(code);
CoreFunction db = functionDao.templateOne(query);
return db;
}
/**
* 得到角色对应的所有功能点
*
* @param roleId
* @return
*/
public List<Long> getFunctionByRole(Long roleId) {
return this.roleFunctionConsoleDao.getFunctionIdByRole(roleId);
}
/**
* 得到角色对应的所有数据权限功能点
*
* @param roleId
* @return
*/
public List<RoleDataAccessFunction> getQueryFunctionByRole(Long roleId) {
return this.roleFunctionConsoleDao.getQueryFunctionAndRoleData(roleId);
}
/**
* 更新角色对应的功能点所有,
*
* @param roleId
* @param data,必须包含id,和 dataAcerssType,采用模板更新
*/
public void updateFunctionAccessByRole(List<RoleDataAccessFunction> data) {
for (RoleDataAccessFunction fun : data) {
Long roleId = fun.getRoleId();
Long functionId = fun.getId();
int accessType = fun.getDataAccessType();
CoreRoleFunction template = new CoreRoleFunction();
template.setRoleId(roleId);
template.setFunctionId(functionId);
CoreRoleFunction ret = roleFunctionConsoleDao.templateOne(template);
if (ret != null) {
ret.setDataAccessType(accessType);
roleFunctionConsoleDao.updateById(ret);
} else {
template.setDataAccessType(accessType);
template.setCreateTime(new Date());
roleFunctionConsoleDao.insert(template);
}
}
}
/**
* 给角色赋予功能同时,根据赋予的功能权限,更新能访问的菜单
*
* @param adds
* @param updates
* @param dels
* @return 返回增加的项的id,用于前端
*/
public void updateSysRoleFunction(Long roleId, List<Long> adds, List<Long> dels) {
for (Long del : dels) {
// 获得功能关联的菜单
CoreRoleFunction temp = new CoreRoleFunction();
temp.setRoleId(roleId);
temp.setFunctionId(del);
CoreRoleFunction roleFunction = roleFunctionConsoleDao.templateOne(temp);
if (roleFunction == null) {
throw new PlatformException("已经被删除了RoleId=" + roleId + " functionId=" + del);
}
CoreMenu menu = queryFunctionMenu(roleFunction.getFunctionId());
roleFunctionConsoleDao.deleteById(roleFunction.getId());
if (menu != null) {
// 同时,需要删除与此功能关联的菜单
CoreRoleMenu sysRoleMenu = querySysRoleMenu(roleFunction.getRoleId(), menu.getId());
if (sysRoleMenu != null) {
sysRoleMenuDao.deleteById(sysRoleMenu.getId());
}
}
public Long saveFunction(CoreFunction function){
functionDao.insert(function,true);
platformService.clearFunctionCache();
return function.getId();
}
/** 删除功能点,跟菜单有关联的无法删除,删除功能点导致所有缓存都需要更新
* @param functionId
* @return
*/
public void deleteFunction(Long functionId){
deleteFunctionId(functionId);
platformService.clearFunctionCache();
}
public void batchDeleteFunction(List<Long> functionIds){
for(Long id:functionIds){
deleteFunctionId(id);
}
platformService.clearFunctionCache();
}
public void updateFunction(CoreFunction function){
functionDao.updateById(function);
platformService.clearFunctionCache();
}
public CoreFunction getFunction(Long functionId){
return functionDao.unique(functionId);
}
public CoreFunction getFunction(String code){
CoreFunction query = new CoreFunction();
query.setCode(code);
CoreFunction db = functionDao.templateOne(query);
return db;
}
/**
* 得到角色对应的所有功能点
* @param roleId
* @return
*/
public List<Long> getFunctionByRole(Long roleId){
return this.roleFunctionConsoleDao.getFunctionIdByRole(roleId);
}
/**
* 得到角色对应的所有数据权限功能点
* @param roleId
* @return
*/
public List<RoleDataAccessFunction> getQueryFunctionByRole(Long roleId){
return this.roleFunctionConsoleDao.getQueryFunctionAndRoleData(roleId);
}
/**
* 更新角色对应的功能点所有,
* @param roleId
* @param data,必须包含id,和 dataAcerssType,采用模板更新
*/
public void updateFunctionAccessByRole(List<RoleDataAccessFunction> data ){
for(RoleDataAccessFunction fun:data){
Long roleId = fun.getRoleId();
Long functionId = fun.getId();
int accessType= fun.getDataAccessType();
CoreRoleFunction template = new CoreRoleFunction();
template.setRoleId(roleId);
template.setFunctionId(functionId);
CoreRoleFunction ret = roleFunctionConsoleDao.templateOne(template);
if(ret!=null) {
ret.setDataAccessType(accessType);
roleFunctionConsoleDao.updateById(ret);
}else {
template.setDataAccessType(accessType);
template.setCreateTime(new Date());
roleFunctionConsoleDao.insert(template);
}
}
}
/** 给角色赋予功能同时,根据赋予的功能权限,更新能访问的菜单
* @param adds
* @param updates
* @param dels
* @return 返回增加的项的id,用于前端
*/
public void updateSysRoleFunction(Long roleId,List<Long> adds,List<Long> dels){
for(Long del:dels){
//获得功能关联的菜单
CoreRoleFunction temp = new CoreRoleFunction();
temp.setRoleId(roleId);
temp.setFunctionId(del);
CoreRoleFunction roleFunction = roleFunctionConsoleDao.templateOne(temp);
if(roleFunction==null){
throw new PlatformException("已经被删除了RoleId="+roleId+" functionId="+del);
}
CoreMenu menu = queryFunctionMenu(roleFunction.getFunctionId());
roleFunctionConsoleDao.deleteById(roleFunction.getId());
if(menu!=null){
//同时,需要删除与此功能关联的菜单
CoreRoleMenu sysRoleMenu = querySysRoleMenu(roleFunction.getRoleId(),menu.getId());
if(sysRoleMenu!=null){
sysRoleMenuDao.deleteById(sysRoleMenu.getId());
}
}
}
for(Long add:adds){
CoreRoleFunction function = new CoreRoleFunction();
function.setCreateTime(new Date());
function.setRoleId(roleId);
function.setFunctionId(add);
this.sqlManager.insert(function);
CoreMenu menu = queryFunctionMenu(add);
if(menu!=null){
//同时,需要增加菜单
CoreRoleMenu roleMenu = new CoreRoleMenu();
roleMenu.setMenuId(menu.getId());
roleMenu.setRoleId(roleId);
sysRoleMenuDao.insert(roleMenu);
}
}
//清楚缓存
platformService.clearFunctionCache();
}
private CoreMenu queryFunctionMenu(Long functionId){
CoreMenu query = new CoreMenu();
query.setFunctionId(functionId);
List<CoreMenu> menus = menuDao.template(query);
return menus.isEmpty()?null:menus.get(0);
}
private CoreRoleMenu querySysRoleMenu(Long roleId,Long menuId){
CoreRoleMenu query= new CoreRoleMenu();
query.setMenuId(menuId);
query.setRoleId(roleId);
List<CoreRoleMenu> menus = sysRoleMenuDao.template(query);
return menus.isEmpty()?null:menus.get(0);
}
/**
* 删除某一个功能点及其子功能,对应的role-function 需要删除,菜单对应的function需要设置成空
* @param functionId
*/
private void deleteFunctionId(Long functionId){
FunctionItem root = platformService.buildFunction();
FunctionItem fun = root.findChild(functionId);
List<FunctionItem> all = fun.findAllItem();
//也删除自身
all.add(fun);
realDeleteFunction(all);
}
private void realDeleteFunction(List<FunctionItem> all){
List<Long> ids = new ArrayList<>(all.size());
for(FunctionItem item:all){
ids.add(item.getId());
this.functionDao.deleteById(item.getId());
}
//删除角色和功能的关系
this.roleFunctionConsoleDao.deleteRoleFunction(ids);
//设置菜单对应的功能项为空
menuDao.clearMenuFunction(ids);
}
}
}
for (Long add : adds) {
CoreRoleFunction function = new CoreRoleFunction();
function.setCreateTime(new Date());
function.setRoleId(roleId);
function.setFunctionId(add);
this.sqlManager.insert(function);
CoreMenu menu = queryFunctionMenu(add);
if (menu != null) {
// 同时,需要增加菜单
CoreRoleMenu roleMenu = new CoreRoleMenu();
roleMenu.setMenuId(menu.getId());
roleMenu.setRoleId(roleId);
sysRoleMenuDao.insert(roleMenu);
}
}
// 清楚缓存
platformService.clearFunctionCache();
}
private CoreMenu queryFunctionMenu(Long functionId) {
CoreMenu query = new CoreMenu();
query.setFunctionId(functionId);
List<CoreMenu> menus = menuDao.template(query);
return menus.isEmpty() ? null : menus.get(0);
}
private CoreRoleMenu querySysRoleMenu(Long roleId, Long menuId) {
CoreRoleMenu query = new CoreRoleMenu();
query.setMenuId(menuId);
query.setRoleId(roleId);
List<CoreRoleMenu> menus = sysRoleMenuDao.template(query);
return menus.isEmpty() ? null : menus.get(0);
}
/**
* 删除某一个功能点及其子功能,对应的role-function 需要删除,菜单对应的function需要设置成空
*
* @param functionId
*/
private void deleteFunctionId(Long functionId) {
FunctionItem root = platformService.buildFunction();
FunctionItem fun = root.findChild(functionId);
List<FunctionItem> all = fun.findAllItem();
// 也删除自身
all.add(fun);
realDeleteFunction(all);
}
private void realDeleteFunction(List<FunctionItem> all) {
List<Long> ids = new ArrayList<>(all.size());
for (FunctionItem item : all) {
ids.add(item.getId());
this.functionDao.deleteById(item.getId());
}
// 删除角色和功能的关系
this.roleFunctionConsoleDao.deleteRoleFunction(ids);
// 设置菜单对应的功能项为空
menuDao.clearMenuFunction(ids);
}
}
......@@ -20,71 +20,66 @@ import java.util.List;
@Transactional
public class MenuConsoleService extends CoreBaseService<CoreMenu> {
@Autowired
MenuConsoleDao menuDao;
@Autowired
CoreRoleMenuDao roleMenuDao;
@Autowired MenuConsoleDao menuDao;
@Autowired CoreRoleMenuDao roleMenuDao;
@Autowired
CorePlatformService platformService;
@Autowired CorePlatformService platformService;
public void queryByCondtion(PageQuery<CoreMenu> query) {
menuDao.queryByCondtion(query);
queryListAfter(query.getList());
}
public Long saveMenu(CoreMenu menu) {
CoreMenu query = new CoreMenu();
query.setCode(menu.getCode());
long queryCount = menuDao.templateCount(query);
if (queryCount > 0) {
throw new PlatformException("菜单编码已存在");
}
menuDao.insert(menu, true);
platformService.clearMenuCache();
return menu.getId();
}
public void queryByCondtion(PageQuery<CoreMenu> query) {
menuDao.queryByCondtion(query);
queryListAfter(query.getList());
}
public void deleteMenu(Long menuId) {
deleteMenuId(menuId);
public Long saveMenu(CoreMenu menu) {
CoreMenu query = new CoreMenu();
query.setCode(menu.getCode());
long queryCount = menuDao.templateCount(query);
if (queryCount > 0) {
throw new PlatformException("菜单编码已存在");
}
menuDao.insert(menu, true);
platformService.clearMenuCache();
return menu.getId();
}
public void batchDeleteMenuId(List<Long> menuIds) {
for (Long id : menuIds) {
deleteMenuId(id);
}
platformService.clearMenuCache();
}
public void updateMenu(CoreMenu menu) {
menuDao.updateById(menu);
platformService.clearMenuCache();
}
public void deleteMenu(Long menuId) {
deleteMenuId(menuId);
}
public CoreMenu getMenu(Long menuId) {
CoreMenu menu = menuDao.unique(menuId);
platformService.clearMenuCache();
return menu;
public void batchDeleteMenuId(List<Long> menuIds) {
for (Long id : menuIds) {
deleteMenuId(id);
}
platformService.clearMenuCache();
}
public void updateMenu(CoreMenu menu) {
menuDao.updateById(menu);
platformService.clearMenuCache();
}
private void deleteMenuId(Long menuId) {
MenuItem root = platformService.buildMenu();
MenuItem fun = root.findChild(menuId);
List<MenuItem> all = fun.findAllItem();
//也删除自身
all.add(fun);
realDeleteMenu(all);
}
public CoreMenu getMenu(Long menuId) {
CoreMenu menu = menuDao.unique(menuId);
platformService.clearMenuCache();
return menu;
}
private void realDeleteMenu(List<MenuItem> all) {
List<Long> ids = new ArrayList<>(all.size());
for (MenuItem item : all) {
ids.add(item.getId());
this.menuDao.deleteById(item.getId());
}
//删除角色和菜单的关系
roleMenuDao.deleteRoleMenu(ids);
private void deleteMenuId(Long menuId) {
MenuItem root = platformService.buildMenu();
MenuItem fun = root.findChild(menuId);
List<MenuItem> all = fun.findAllItem();
// 也删除自身
all.add(fun);
realDeleteMenu(all);
}
private void realDeleteMenu(List<MenuItem> all) {
List<Long> ids = new ArrayList<>(all.size());
for (MenuItem item : all) {
ids.add(item.getId());
this.menuDao.deleteById(item.getId());
}
// 删除角色和菜单的关系
roleMenuDao.deleteRoleMenu(ids);
}
}
......@@ -16,79 +16,71 @@ import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException;
/**
*
* @author : xiandafu
*/
/** @author : xiandafu */
@Service
@Transactional
public class OrgConsoleService extends CoreBaseService<CoreOrg> {
@Autowired
private OrgConsoleDao orgDao;
@Autowired private OrgConsoleDao orgDao;
@Autowired
private CorePlatformService platformService;
@Autowired private CorePlatformService platformService;
/**
* 根据条件查询
* @param query
*/
public void queryByCondtion(PageQuery<CoreOrg> query) {
orgDao.queryByCondtion(query);
List<CoreOrg> list = query.getList();
queryListAfter(list);
OrgItem root = platformService.buildOrg();
//处理父机构名称显示,没有用sql查询是考虑到跨数据库
for(CoreOrg org:list) {
Long parentId = org.getParentOrgId();
OrgItem item = root.findChild(parentId);
String name = item!=null?item.getName():"";
org.set("parentOrgText", name);
}
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery<CoreOrg> query) {
orgDao.queryByCondtion(query);
List<CoreOrg> list = query.getList();
queryListAfter(list);
OrgItem root = platformService.buildOrg();
// 处理父机构名称显示,没有用sql查询是考虑到跨数据库
for (CoreOrg org : list) {
Long parentId = org.getParentOrgId();
OrgItem item = root.findChild(parentId);
String name = item != null ? item.getName() : "";
org.set("parentOrgText", name);
}
public void queryUserByCondition(PageQuery<CoreUser> query) {
orgDao.queryUserByCondtion(query);
queryListAfter(query.getList());
}
}
/**
* 获取机构下面的所以机构
* @param orgId 机构id
*/
public List<Long> getAllChildIdsByOrgId(Long orgId) {
if (orgId == null)
return null;
public void queryUserByCondition(PageQuery<CoreUser> query) {
orgDao.queryUserByCondtion(query);
queryListAfter(query.getList());
}
OrgItem orgItem = platformService.buildOrg().findChild(orgId);
if (orgItem == null) {
return null;
}
List<Long> ids = orgItem.findAllChildrenId();
if (ids == null) {
ids = new ArrayList<>();
}
ids.add(orgId);
/**
* 获取机构下面的所以机构
*
* @param orgId 机构id
*/
public List<Long> getAllChildIdsByOrgId(Long orgId) {
if (orgId == null) return null;
return ids;
OrgItem orgItem = platformService.buildOrg().findChild(orgId);
if (orgItem == null) {
return null;
}
@Override
public boolean deleteById(List<Long> ids) {
OrgItem root = platformService.buildOrg();
//检查子节点
for (Long id : ids) {
OrgItem child = root.findChild(id);
if(child.getChildren().size()!=0){
throw new PlatformException("不能删除 "+child.getOrg().getName()+",还包含子机构");
}
}
return super.deleteById(ids);
List<Long> ids = orgItem.findAllChildrenId();
if (ids == null) {
ids = new ArrayList<>();
}
ids.add(orgId);
return ids;
}
@Override
public boolean deleteById(List<Long> ids) {
OrgItem root = platformService.buildOrg();
// 检查子节点
for (Long id : ids) {
OrgItem child = root.findChild(id);
if (child.getChildren().size() != 0) {
throw new PlatformException("不能删除 " + child.getOrg().getName() + ",还包含子机构");
}
}
return super.deleteById(ids);
}
}
......@@ -22,90 +22,83 @@ import com.ibeetl.admin.core.util.enums.RoleTypeEnum;
@Service
@Transactional
public class RoleConsoleService extends CoreBaseService<CoreRole> {
private static final Logger LOGGER = LoggerFactory.getLogger(RoleConsoleService.class);
private static final Logger LOGGER = LoggerFactory.getLogger(RoleConsoleService.class);
@Autowired
private RoleConsoleDao roleDao;
@Autowired
private SQLManager sqlManager;
@Autowired private RoleConsoleDao roleDao;
@Autowired
CorePlatformService platformService;
@Autowired private SQLManager sqlManager;
/**
* 获取全部操作角色集合
* @return
*/
public List<CoreRole> queryAllPermissionList() {
CoreRole template = new CoreRole();
template.setType(RoleTypeEnum.ACCESS.getValue());
return roleDao.template(template);
}
@Autowired CorePlatformService platformService;
/**
* 根据删标记获取全部角色集合
* @param delFlagEnum 删除标记
* @return
*/
public List<CoreRole> queryAllList() {
return roleDao.all();
}
/**
* 获取全部操作角色集合
*
* @return
*/
public List<CoreRole> queryAllPermissionList() {
CoreRole template = new CoreRole();
template.setType(RoleTypeEnum.ACCESS.getValue());
return roleDao.template(template);
}
/**
* 根据条件查询
* @param query
*/
public void queryByCondtion(PageQuery query) {
roleDao.queryByCondtion(query);
super.queryListAfter(query.getList());
}
/**
* 根据删标记获取全部角色集合
*
* @param delFlagEnum 删除标记
* @return
*/
public List<CoreRole> queryAllList() {
return roleDao.all();
}
public PageQuery<CoreUser> queryRoleUser(PageQuery query) {
OrgItem root = platformService.buildOrg();
PageQuery<CoreUser> ret = roleDao.queryUser(query);
List<CoreUser> list = ret.getList();
//从缓存里取出组织机构名称
for(CoreUser user:list) {
Long orgId = user.getOrgId();
Integer orgId1 = (Integer)user.get("orgId1");
user.set("orgIdText", root.findChild(orgId).getName());
user.set("orgId1Text", root.findChild((long)orgId1).getName());
}
//再次处理数据字典
this.queryListAfter(list);
return ret;
}
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery query) {
roleDao.queryByCondtion(query);
super.queryListAfter(query.getList());
}
/**
* 根据编号查询
* @param code 角色编号
* @return
*/
public CoreRole queryByCode(String code) {
CoreRole queryRole = new CoreRole();
queryRole.setCode(code);
CoreRole role = roleDao.templateOne(queryRole);
return role;
public PageQuery<CoreUser> queryRoleUser(PageQuery query) {
OrgItem root = platformService.buildOrg();
PageQuery<CoreUser> ret = roleDao.queryUser(query);
List<CoreUser> list = ret.getList();
// 从缓存里取出组织机构名称
for (CoreUser user : list) {
Long orgId = user.getOrgId();
Integer orgId1 = (Integer) user.get("orgId1");
user.set("orgIdText", root.findChild(orgId).getName());
user.set("orgId1Text", root.findChild((long) orgId1).getName());
}
// 再次处理数据字典
this.queryListAfter(list);
return ret;
}
/**
* 根据编号查询
*
* @param code 角色编号
* @return
*/
public CoreRole queryByCode(String code) {
CoreRole queryRole = new CoreRole();
queryRole.setCode(code);
CoreRole role = roleDao.templateOne(queryRole);
return role;
}
public boolean deleteById(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
throw new PlatformException("删除数据ID不能为空");
}
roleDao.batchDelByIds(ids);
roleDao.batchDeleteRoleFunction(ids);
roleDao.batchDeleteRoleMenu(ids);
roleDao.batchDeleteUserRole(ids);
return true;
public boolean deleteById(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
throw new PlatformException("删除数据ID不能为空");
}
roleDao.batchDelByIds(ids);
roleDao.batchDeleteRoleFunction(ids);
roleDao.batchDeleteRoleMenu(ids);
roleDao.batchDeleteUserRole(ids);
return true;
}
}
......@@ -34,182 +34,168 @@ import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
@Transactional
public class UserConsoleService extends CoreBaseService<CoreUser> {
@Autowired
UserConsoleDao userDao;
@Autowired
FileService fileService;
@Autowired
PasswordEncryptService passwordEncryptService;
@Autowired
CoreDictService dictService;
@Autowired
CorePlatformService platformService;
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery<CoreUser> query) {
PageQuery<CoreUser> ret = userDao.queryByCondtion(query);
queryListAfter(ret.getList());
}
/**
* 插入一条用户数据
*
* @param user
*/
public void saveUser(CoreUser user) {
CoreUser query = new CoreUser();
query.setCode(user.getCode());
CoreUser dbUser = userDao.templateOne(query);
if (dbUser != null) {
throw new PlatformException("保存用户信息失败,用户已经存在");
}
user.setCreateTime(new Date());
user.setState(GeneralStateEnum.ENABLE.getValue());
user.setPassword(passwordEncryptService.password(user.getPassword()));
user.setDelFlag(DelFlagEnum.NORMAL.getValue());
userDao.insert(user, true);
if(StringUtils.isNotEmpty(user.getAttachmentId())){
//更新附件详细信息,关联到这个用户
fileService.updateFile(user.getAttachmentId(), User.class.getSimpleName(), String.valueOf(user.getId()));
}
}
/**
* 根据用户id查询一条数据
*
* @param userId
*/
public CoreUser queryUserById(Long userId) {
return userDao.unique(userId);
}
/**
* 更新用户 只更新不为空的字段
*
* @param user
* @return
*/
public int updateSysUser(CoreUser user) {
return userDao.updateTemplateById(user);
}
/**
* 删除用户
*
* @param userId
* 用户id
*/
public void delSysUser(Long userId) {
CoreUser user = queryUserById(userId);
if (user == null) {
throw new NoResourceException("用户不存在!");
}
if (user.getDelFlag() == DelFlagEnum.DELETED.getValue()) {
throw new DeletedException("用户已被删除!");
}
user = new CoreUser();
user.setId(userId);
user.setDelFlag(DelFlagEnum.DELETED.getValue());
userDao.updateTemplateById(user);
}
/**
* 批量删除用户 <br/>
* 软删除 标记用户删除状态
*
* @param userIds
* 用户id
*/
public void batchDelSysUser(List<Long> userIds) {
try {
userDao.batchDelUserByIds(userIds);
} catch (Exception e) {
throw new PlatformException("批量删除用户失败", e);
}
}
/**
* 批量停用用户 <br/>
* 标记用户状态 停用
*
* @param userIds
* 用户id
*/
public void batchUpdateUserState(List<Long> userIds, GeneralStateEnum stateEnum) {
userDao.batchUpdateUserState(userIds, stateEnum);
}
/**
* 重置用户密码
*
* @param uId
* @param password
*/
public int resetPassword(Long id, String password) {
CoreUser user = new CoreUser();
user.setId(id);
user.setPassword(passwordEncryptService.password(password));
user.setUpdateTime(new Date());
return userDao.updateTemplateById(user);
}
public List<CoreUserRole> getUserRoles(UserRoleQuery roleQuery) {
return userDao.queryUserRole(roleQuery.getUserId(), roleQuery.getOrgId(), roleQuery.getRoleId());
}
public void deleteUserRoles(List<Long> ids) {
// 考虑到这个操作较少使用,就不做批处理优化了
for (Long id : ids) {
sqlManager.deleteById(CoreUserRole.class, id);
}
}
public void saveUserRole(CoreUserRole userRole) {
long queryCount = sqlManager.templateCount(userRole);
if (queryCount > 0) {
throw new PlatformException("已存在用户角色关系");
}
sqlManager.insert(userRole);
}
public List<UserExcelExportData> queryExcel(PageQuery<CoreUser> query) {
PageQuery<CoreUser> ret = userDao.queryByCondtion(query);
List<CoreUser> list = ret.getList();
OrgItem orgRoot = platformService.buildOrg();
List<UserExcelExportData> items = new ArrayList<>();
for(CoreUser user:list) {
UserExcelExportData userItem = new UserExcelExportData();
userItem.setCode(user.getCode());
userItem.setId(user.getId());
userItem.setName(user.getName());
CoreDict dict = dictService.findCoreDict(CoreDictType.USER_STATE,user.getState());
userItem.setStateText(dict.getName());
if(StringUtils.isNotEmpty(user.getJobType1())){
dict = dictService.findCoreDict("job_type",user.getJobType1());
userItem.setJobType1Text(dict.getName());
}
String orgName = orgRoot.findChild(user.getOrgId()).getName();
userItem.setOrgText(orgName);
items.add(userItem);
}
return items;
}
@Autowired UserConsoleDao userDao;
@Autowired FileService fileService;
@Autowired PasswordEncryptService passwordEncryptService;
@Autowired CoreDictService dictService;
@Autowired CorePlatformService platformService;
/**
* 根据条件查询
*
* @param query
*/
public void queryByCondtion(PageQuery<CoreUser> query) {
PageQuery<CoreUser> ret = userDao.queryByCondtion(query);
queryListAfter(ret.getList());
}
/**
* 插入一条用户数据
*
* @param user
*/
public void saveUser(CoreUser user) {
CoreUser query = new CoreUser();
query.setCode(user.getCode());
CoreUser dbUser = userDao.templateOne(query);
if (dbUser != null) {
throw new PlatformException("保存用户信息失败,用户已经存在");
}
user.setCreateTime(new Date());
user.setState(GeneralStateEnum.ENABLE.getValue());
user.setPassword(passwordEncryptService.password(user.getPassword()));
user.setDelFlag(DelFlagEnum.NORMAL.getValue());
userDao.insert(user, true);
if (StringUtils.isNotEmpty(user.getAttachmentId())) {
// 更新附件详细信息,关联到这个用户
fileService.updateFile(
user.getAttachmentId(), User.class.getSimpleName(), String.valueOf(user.getId()));
}
}
/**
* 根据用户id查询一条数据
*
* @param userId
*/
public CoreUser queryUserById(Long userId) {
return userDao.unique(userId);
}
/**
* 更新用户 只更新不为空的字段
*
* @param user
* @return
*/
public int updateSysUser(CoreUser user) {
return userDao.updateTemplateById(user);
}
/**
* 删除用户
*
* @param userId 用户id
*/
public void delSysUser(Long userId) {
CoreUser user = queryUserById(userId);
if (user == null) {
throw new NoResourceException("用户不存在!");
}
if (user.getDelFlag() == DelFlagEnum.DELETED.getValue()) {
throw new DeletedException("用户已被删除!");
}
user = new CoreUser();
user.setId(userId);
user.setDelFlag(DelFlagEnum.DELETED.getValue());
userDao.updateTemplateById(user);
}
/**
* 批量删除用户 <br>
* 软删除 标记用户删除状态
*
* @param userIds 用户id
*/
public void batchDelSysUser(List<Long> userIds) {
try {
userDao.batchDelUserByIds(userIds);
} catch (Exception e) {
throw new PlatformException("批量删除用户失败", e);
}
}
/**
* 批量停用用户 <br>
* 标记用户状态 停用
*
* @param userIds 用户id
*/
public void batchUpdateUserState(List<Long> userIds, GeneralStateEnum stateEnum) {
userDao.batchUpdateUserState(userIds, stateEnum);
}
/**
* 重置用户密码
*
* @param uId
* @param password
*/
public int resetPassword(Long id, String password) {
CoreUser user = new CoreUser();
user.setId(id);
user.setPassword(passwordEncryptService.password(password));
user.setUpdateTime(new Date());
return userDao.updateTemplateById(user);
}
public List<CoreUserRole> getUserRoles(UserRoleQuery roleQuery) {
return userDao.queryUserRole(
roleQuery.getUserId(), roleQuery.getOrgId(), roleQuery.getRoleId());
}
public void deleteUserRoles(List<Long> ids) {
// 考虑到这个操作较少使用,就不做批处理优化了
for (Long id : ids) {
sqlManager.deleteById(CoreUserRole.class, id);
}
}
public void saveUserRole(CoreUserRole userRole) {
long queryCount = sqlManager.templateCount(userRole);
if (queryCount > 0) {
throw new PlatformException("已存在用户角色关系");
}
sqlManager.insert(userRole);
}
public List<UserExcelExportData> queryExcel(PageQuery<CoreUser> query) {
PageQuery<CoreUser> ret = userDao.queryByCondtion(query);
List<CoreUser> list = ret.getList();
OrgItem orgRoot = platformService.buildOrg();
List<UserExcelExportData> items = new ArrayList<>();
for (CoreUser user : list) {
UserExcelExportData userItem = new UserExcelExportData();
userItem.setCode(user.getCode());
userItem.setId(user.getId());
userItem.setName(user.getName());
CoreDict dict = dictService.findCoreDict(CoreDictType.USER_STATE, user.getState());
userItem.setStateText(dict.getName());
if (StringUtils.isNotEmpty(user.getJobType1())) {
dict = dictService.findCoreDict("job_type", user.getJobType1());
userItem.setJobType1Text(dict.getName());
}
String orgName = orgRoot.findChild(user.getOrgId()).getName();
userItem.setOrgText(orgName);
items.add(userItem);
}
return items;
}
}
package com.ibeetl.admin.console.web;
import java.util.List;
import java.util.Map;
......@@ -25,59 +24,52 @@ import com.ibeetl.admin.core.util.AnnotationUtil;
import com.ibeetl.admin.core.web.JsonResult;
/**
* 用户管理接口
* @author xiandafu
*
* @author xiandafu
*/
@Controller
public class AuditConsoleController {
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/admin/audit";
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/admin/audit";
@Autowired AuditConsoleService auditConsoleService;
/*页面*/
@GetMapping(MODEL + "/index.do")
@Function("trace")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/admin/audit/index.html");
view.addObject("search", AuditQuery.class.getName());
return view;
}
@Autowired
AuditConsoleService auditConsoleService;
/*页面*/
@GetMapping(MODEL + "/index.do")
@Function("trace")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/admin/audit/index.html");
view.addObject("search", AuditQuery.class.getName());
return view;
}
/*Json*/
/*Json*/
@PostMapping(MODEL + "/view.json")
@ResponseBody
@Function("trace")
public JsonResult<CoreAudit> view(Long id) {
CoreAudit audit = auditConsoleService.queryById(id);
return JsonResult.success(audit);
}
@PostMapping(MODEL + "/view.json")
@ResponseBody
@Function("trace")
public JsonResult<CoreAudit> view(Long id) {
CoreAudit audit = auditConsoleService.queryById(id);
return JsonResult.success(audit);
}
@RequestMapping(MODEL + "/list.json")
@Function("trace")
@ResponseBody
public JsonResult<PageQuery<CoreAudit>> list(AuditQuery condtion) {
PageQuery<CoreAudit> page = condtion.getPageQuery();
auditConsoleService.queryByCondtion(page);
return JsonResult.success(page);
}
@PostMapping(MODEL + "/list/condition.json")
@Function("trace")
@ResponseBody
public JsonResult<List<Map<String, Object>>> listCondtion() {
List<Map<String, Object>> list = AnnotationUtil.getInstance().getAnnotations(Query.class, AuditQuery.class);
return JsonResult.success(list);
}
@RequestMapping(MODEL + "/list.json")
@Function("trace")
@ResponseBody
public JsonResult<PageQuery<CoreAudit>> list(AuditQuery condtion) {
PageQuery<CoreAudit> page = condtion.getPageQuery();
auditConsoleService.queryByCondtion(page);
return JsonResult.success(page);
}
@PostMapping(MODEL + "/list/condition.json")
@Function("trace")
@ResponseBody
public JsonResult<List<Map<String, Object>>> listCondtion() {
List<Map<String, Object>> list =
AnnotationUtil.getInstance().getAnnotations(Query.class, AuditQuery.class);
return JsonResult.success(list);
}
}
......@@ -45,179 +45,171 @@ import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.ValidateConfig;
import com.ibeetl.admin.core.web.JsonResult;
/**
* CoreDict 接口
*/
/** CoreDict 接口 */
@Controller
public class DictConsoleController{
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/admin/dict";
@Autowired private DictConsoleService dictService;
@Autowired
FileService fileService;
@Autowired
CorePlatformService platformService = null;
/* 页面 */
@GetMapping(MODEL + "/index.do")
@Function("dict.query")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/admin/dict/index.html") ;
view.addObject("search", CoreDictQuery.class.getName());
return view;
public class DictConsoleController {
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/admin/dict";
@Autowired private DictConsoleService dictService;
@Autowired FileService fileService;
@Autowired CorePlatformService platformService = null;
/* 页面 */
@GetMapping(MODEL + "/index.do")
@Function("dict.query")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/admin/dict/index.html");
view.addObject("search", CoreDictQuery.class.getName());
return view;
}
@GetMapping(MODEL + "/edit.do")
@Function("dict.edit")
public ModelAndView edit(Long id) {
ModelAndView view = new ModelAndView("/admin/dict/edit.html");
CoreDict dict = dictService.queryById(id);
view.addObject("dict", dict);
return view;
}
@GetMapping(MODEL + "/add.do")
@Function("dict.add")
public ModelAndView add() {
ModelAndView view = new ModelAndView("/admin/dict/add.html");
return view;
}
/* ajax json */
@PostMapping(MODEL + "/list.json")
@Function("dict.query")
@ResponseBody
public JsonResult<PageQuery> list(CoreDictQuery condtion) {
PageQuery page = condtion.getPageQuery();
dictService.queryByCondition(page);
return JsonResult.success(page);
}
@PostMapping(MODEL + "/add.json")
@Function("dict.add")
@ResponseBody
public JsonResult add(@Validated(ValidateConfig.ADD.class) CoreDict dict) {
dict.setCreateTime(new Date());
dictService.save(dict);
platformService.clearDictCache();
return new JsonResult().success();
}
@PostMapping(MODEL + "/update.json")
@Function("dict.update")
@ResponseBody
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) CoreDict dict) {
boolean success = dictService.update(dict);
if (success) {
platformService.clearDictCache();
return new JsonResult().success();
} else {
return JsonResult.failMessage("保存失败");
}
@GetMapping(MODEL + "/edit.do")
@Function("dict.edit")
public ModelAndView edit(Long id) {
ModelAndView view = new ModelAndView("/admin/dict/edit.html");
CoreDict dict = dictService.queryById(id);
view.addObject("dict", dict);
return view;
}
@GetMapping(MODEL + "/add.do")
@Function("dict.add")
public ModelAndView add() {
ModelAndView view = new ModelAndView("/admin/dict/add.html");
return view;
}
@GetMapping(MODEL + "/view.json")
@Function("dict.query")
@ResponseBody
public JsonResult<CoreDict> queryInfo(Long id) {
CoreDict dict = dictService.queryById(id);
return JsonResult.success(dict);
}
@PostMapping(MODEL + "/delete.json")
@Function("dict.delete")
@ResponseBody
public JsonResult delete(String ids) {
List<Long> dels = ConvertUtil.str2longs(ids);
dictService.batchDelCoreDict(dels);
platformService.clearDictCache();
return new JsonResult().success();
}
@PostMapping(MODEL + "/excel/export.json")
@Function("dict.export")
@ResponseBody
public JsonResult<String> export(HttpServletResponse response, CoreDictQuery condtion) {
String excelTemplate = "excelTemplates/admin/dict/dict_collection_template.xls";
PageQuery<CoreUser> page = condtion.getPageQuery();
// 取出全部符合条件的
page.setPageSize(Integer.MAX_VALUE);
page.setPageNumber(1);
page.setTotalRow(Integer.MAX_VALUE);
List<CoreDict> dicts = dictService.queryExcel(page);
try (InputStream is =
Thread.currentThread().getContextClassLoader().getResourceAsStream(excelTemplate)) {
if (is == null) {
throw new PlatformException("模板资源不存在:" + excelTemplate);
}
FileItem item = fileService.createFileTemp("dict_collection.xls");
OutputStream os = item.openOutpuStream();
Context context = new Context();
context.putVar("dicts", dicts);
JxlsHelper.getInstance().processTemplate(is, os, context);
os.close();
// 下载参考FileSystemContorller
return JsonResult.success(item.getPath());
} catch (IOException e) {
throw new PlatformException(e.getMessage());
}
/* ajax json */
@PostMapping(MODEL + "/list.json")
@Function("dict.query")
@ResponseBody
public JsonResult<PageQuery> list(CoreDictQuery condtion)
{
PageQuery page = condtion.getPageQuery();
dictService.queryByCondition(page);
return JsonResult.success(page);
}
@PostMapping(MODEL + "/excel/import.do")
@Function("dict.import")
@ResponseBody
public JsonResult importExcel(@RequestParam("file") MultipartFile file) throws Exception {
if (file.isEmpty()) {
return JsonResult.fail();
}
@PostMapping(MODEL + "/add.json")
@Function("dict.add")
@ResponseBody
public JsonResult add(@Validated(ValidateConfig.ADD.class)CoreDict dict)
{
dict.setCreateTime(new Date());
dictService.save(dict);
platformService.clearDictCache();
return new JsonResult().success();
InputStream ins = file.getInputStream();
InputStream inputXML =
Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream("excelTemplates/admin/dict/dict_mapping.xml");
XLSReader mainReader = ReaderBuilder.buildFromXML(inputXML);
InputStream inputXLS = ins;
List<DictExcelImportData> dicts = new ArrayList<DictExcelImportData>();
Map beans = new HashMap();
beans.put("list", dicts);
ReaderConfig.getInstance().setSkipErrors(true);
XLSReadStatus readStatus = mainReader.read(inputXLS, beans);
List<XLSReadMessage> errors = readStatus.getReadMessages();
if (!errors.isEmpty()) {
StringBuilder sb = new StringBuilder();
for (XLSReadMessage msg : errors) {
sb.append(parseXLSReadMessage(msg));
sb.append(",");
}
sb.setLength(sb.length() - 1);
return JsonResult.failMessage("解析excel出错:" + sb.toString());
}
@PostMapping(MODEL + "/update.json")
@Function("dict.update")
@ResponseBody
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) CoreDict dict) {
boolean success = dictService.update(dict);
if (success) {
platformService.clearDictCache();
return new JsonResult().success();
} else {
return JsonResult.failMessage("保存失败");
}
// this.dictService.batchInsert(dicts);//layui对话框不能正确处理http 500错误,改成下面方式
// return JsonResult.success();
try {
this.dictService.batchInsert(dicts);
return JsonResult.success();
} catch (Exception ex) {
return JsonResult.failMessage(ex.getMessage());
}
@GetMapping(MODEL + "/view.json")
@Function("dict.query")
@ResponseBody
public JsonResult<CoreDict>queryInfo(Long id) {
CoreDict dict = dictService.queryById(id);
return JsonResult.success(dict);
}
@PostMapping(MODEL + "/delete.json")
@Function("dict.delete")
@ResponseBody
public JsonResult delete(String ids) {
List<Long> dels = ConvertUtil.str2longs(ids);
dictService.batchDelCoreDict(dels);
platformService.clearDictCache();
return new JsonResult().success();
}
@PostMapping(MODEL + "/excel/export.json")
@Function("dict.export")
@ResponseBody
public JsonResult<String> export(HttpServletResponse response,CoreDictQuery condtion) {
String excelTemplate ="excelTemplates/admin/dict/dict_collection_template.xls";
PageQuery<CoreUser> page = condtion.getPageQuery();
//取出全部符合条件的
page.setPageSize(Integer.MAX_VALUE);
page.setPageNumber(1);
page.setTotalRow(Integer.MAX_VALUE);
List<CoreDict> dicts =dictService.queryExcel(page);
try(InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(excelTemplate)) {
if(is==null) {
throw new PlatformException("模板资源不存在:"+excelTemplate);
}
FileItem item = fileService.createFileTemp("dict_collection.xls");
OutputStream os = item.openOutpuStream();
Context context = new Context();
context.putVar("dicts", dicts);
JxlsHelper.getInstance().processTemplate(is, os, context);
os.close();
//下载参考FileSystemContorller
return JsonResult.success(item.getPath());
} catch (IOException e) {
throw new PlatformException(e.getMessage());
}
}
@PostMapping(MODEL + "/excel/import.do")
@Function("dict.import")
@ResponseBody
public JsonResult importExcel(@RequestParam("file") MultipartFile file) throws Exception {
if (file.isEmpty()) {
return JsonResult.fail();
}
InputStream ins = file.getInputStream();
InputStream inputXML = Thread.currentThread().getContextClassLoader().getResourceAsStream("excelTemplates/admin/dict/dict_mapping.xml");
XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML );
InputStream inputXLS = ins;
List<DictExcelImportData> dicts = new ArrayList<DictExcelImportData>();
Map beans = new HashMap();
beans.put("list", dicts);
ReaderConfig.getInstance().setSkipErrors( true );
XLSReadStatus readStatus = mainReader.read( inputXLS, beans);
List<XLSReadMessage> errors = readStatus.getReadMessages();
if(!errors.isEmpty()) {
StringBuilder sb = new StringBuilder();
for(XLSReadMessage msg:errors) {
sb.append(parseXLSReadMessage(msg));
sb.append(",");
}
sb.setLength(sb.length()-1);
return JsonResult.failMessage("解析excel出错:"+sb.toString());
}
// this.dictService.batchInsert(dicts);//layui对话框不能正确处理http 500错误,改成下面方式
// return JsonResult.success();
try {
this.dictService.batchInsert(dicts);
return JsonResult.success();
}catch(Exception ex) {
return JsonResult.failMessage(ex.getMessage());
}
}
/*xlsReader 设计有问题,还需要通过解析msg知道错误位置在哪里*/
private String parseXLSReadMessage(XLSReadMessage msg) {
// String message = "Can't read cell " + getCellName(mapping, rowShift) + " on " + cursor.getSheetName() + " spreadsheet";
String str = msg.getMessage();
int start = "Can't read cell ".length();
int end = str.indexOf("on");
return str.substring(start,end);
}
}
/*xlsReader 设计有问题,还需要通过解析msg知道错误位置在哪里*/
private String parseXLSReadMessage(XLSReadMessage msg) {
// String message = "Can't read cell " + getCellName(mapping, rowShift) + " on " +
// cursor.getSheetName() + " spreadsheet";
String str = msg.getMessage();
int start = "Can't read cell ".length();
int end = str.indexOf("on");
return str.substring(start, end);
}
}
Supports Markdown
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