Commit ed4f1651 authored by trumansdo's avatar trumansdo
Browse files

-

parent 9f8e5c41
...@@ -113,7 +113,6 @@ public class FunctionConsoleService extends CoreBaseService<CoreFunction> { ...@@ -113,7 +113,6 @@ public class FunctionConsoleService extends CoreBaseService<CoreFunction> {
/** /**
* 更新角色对应的功能点所有, * 更新角色对应的功能点所有,
* *
* @param roleId
* @param data,必须包含id,和 dataAcerssType,采用模板更新 * @param data,必须包含id,和 dataAcerssType,采用模板更新
*/ */
public void updateFunctionAccessByRole(List<RoleDataAccessFunction> data) { public void updateFunctionAccessByRole(List<RoleDataAccessFunction> data) {
...@@ -141,7 +140,6 @@ public class FunctionConsoleService extends CoreBaseService<CoreFunction> { ...@@ -141,7 +140,6 @@ public class FunctionConsoleService extends CoreBaseService<CoreFunction> {
* 给角色赋予功能同时,根据赋予的功能权限,更新能访问的菜单 * 给角色赋予功能同时,根据赋予的功能权限,更新能访问的菜单
* *
* @param adds * @param adds
* @param updates
* @param dels * @param dels
* @return 返回增加的项的id,用于前端 * @return 返回增加的项的id,用于前端
*/ */
......
...@@ -21,6 +21,7 @@ import com.ibeetl.admin.core.util.enums.CoreDictType; ...@@ -21,6 +21,7 @@ import com.ibeetl.admin.core.util.enums.CoreDictType;
import com.ibeetl.admin.core.util.enums.DelFlagEnum; import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import com.ibeetl.admin.core.util.enums.GeneralStateEnum; import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
import com.ibeetl.admin.core.util.enums.JobTypeEnum; import com.ibeetl.admin.core.util.enums.JobTypeEnum;
import com.ibeetl.admin.core.web.JsonResult;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -168,11 +169,13 @@ public class UserConsoleService extends CoreBaseService<CoreUser> { ...@@ -168,11 +169,13 @@ public class UserConsoleService extends CoreBaseService<CoreUser> {
roleQuery.getUserId(), roleQuery.getOrgId(), roleQuery.getRoleId()); roleQuery.getUserId(), roleQuery.getOrgId(), roleQuery.getRoleId());
} }
public void deleteUserRoles(List<Long> ids) { public JsonResult deleteUserRoles(List<Long> ids) {
// 考虑到这个操作较少使用,就不做批处理优化了 int delete =
for (Long id : ids) { sqlManager.lambdaQuery(CoreUserRole.class).andIn(CoreUserRole::getId, ids).delete();
sqlManager.deleteById(id); if (delete > 0) {
return JsonResult.success();
} }
return JsonResult.fail();
} }
public void saveUserRole(CoreUserRole userRole) { public void saveUserRole(CoreUserRole userRole) {
......
package com.ibeetl.admin.console.web; package com.ibeetl.admin.console.web;
import cn.hutool.core.convert.Convert;
import com.ibeetl.admin.console.service.UserConsoleService; import com.ibeetl.admin.console.service.UserConsoleService;
import com.ibeetl.admin.console.util.VOUtil; import com.ibeetl.admin.console.util.VOUtil;
import com.ibeetl.admin.console.web.dto.UserExcelExportData; import com.ibeetl.admin.console.web.dto.UserExcelExportData;
...@@ -20,12 +19,11 @@ import com.ibeetl.admin.core.web.JsonResult; ...@@ -20,12 +19,11 @@ import com.ibeetl.admin.core.web.JsonResult;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
import org.jxls.common.Context; import org.jxls.common.Context;
import org.jxls.util.JxlsHelper; import org.jxls.util.JxlsHelper;
...@@ -134,14 +132,8 @@ public class UserConsoleElController { ...@@ -134,14 +132,8 @@ public class UserConsoleElController {
@DeleteMapping("/roles") @DeleteMapping("/roles")
@Function("user.role") @Function("user.role")
@ResponseBody @ResponseBody
public JsonResult delUserRole(String[] ids) { public JsonResult delUserRole(@RequestBodyPlus("ids") ArrayList<Long> ids) {
List<Long> dels = userConsoleService.deleteUserRoles(ids);
Arrays.stream(ids)
.map(id -> Convert.toLong(id, null))
.filter(Objects::nonNull)
.collect(Collectors.toList());
userConsoleService.deleteUserRoles(dels);
this.platformService.clearFunctionCache(); this.platformService.clearFunctionCache();
return JsonResult.success(); return JsonResult.success();
} }
......
...@@ -6,7 +6,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -6,7 +6,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
/** /**
* 参见 {@link com.ibeetl.admin.core.conf.RequestBodyPlusProcessor} 解析 * 参见 {@link com.ibeetl.admin.core.conf.springmvc.resolve.RequestBodyPlusProcessor} 解析
* @author 一日看尽长安花 * @author 一日看尽长安花
*/ */
@Target(ElementType.PARAMETER) @Target(ElementType.PARAMETER)
......
...@@ -29,7 +29,7 @@ import org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConv ...@@ -29,7 +29,7 @@ import org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConv
/** 自定义SpringMVC的controller方法的参数注解 {@link RequestBodyPlus} 的注入解析, 用json path 的方式注入json请求的参数 */ /** 自定义SpringMVC的controller方法的参数注解 {@link RequestBodyPlus} 的注入解析, 用json path 的方式注入json请求的参数 */
public class RequestBodyPlusProcessor extends AbstractMessageConverterMethodProcessor { public class RequestBodyPlusProcessor extends AbstractMessageConverterMethodProcessor {
private static final ThreadLocal<String> bodyLocal = ThreadLocal.withInitial(() -> "{}"); private static final ThreadLocal<JSON> bodyLocal = ThreadLocal.withInitial(JSONUtil::createObj);
public RequestBodyPlusProcessor(List<HttpMessageConverter<?>> converters) { public RequestBodyPlusProcessor(List<HttpMessageConverter<?>> converters) {
super(converters); super(converters);
...@@ -61,23 +61,22 @@ public class RequestBodyPlusProcessor extends AbstractMessageConverterMethodProc ...@@ -61,23 +61,22 @@ public class RequestBodyPlusProcessor extends AbstractMessageConverterMethodProc
StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(); StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();
String jsonBody; JSON json;
try { try {
String readBody = stringHttpMessageConverter.read(String.class, inputMessage); String readBody = stringHttpMessageConverter.read(String.class, inputMessage);
/*每一个参数的注入都会读取一次输入流,但是request的输入流不可重复读,所以需要保持下来*/ /*每一个参数的注入都会读取一次输入流,但是request的输入流不可重复读,所以需要保持下来*/
if (StrUtil.isBlank(readBody)) { if (StrUtil.isNotBlank(readBody)) {
jsonBody = bodyLocal.get(); json = JSONUtil.parse(readBody);
} else { bodyLocal.set(json);
bodyLocal.set(readBody);
jsonBody = bodyLocal.get();
} }
} catch (IOException e) { } catch (IOException e) {
logger.error("Can't read request body by input stream : {}", e); logger.error("Can't read request body by input stream : " + e);
jsonBody = bodyLocal.get(); } finally {
json = bodyLocal.get();
} }
RequestBodyPlus requestBodyPlus = parameter.getParameterAnnotation(RequestBodyPlus.class); RequestBodyPlus requestBodyPlus = parameter.getParameterAnnotation(RequestBodyPlus.class);
JSON json = JSONUtil.parse(jsonBody); assert requestBodyPlus != null;
Object parseVal = json.getByPath(requestBodyPlus.value(), parameterClass); Object parseVal = json.getByPath(requestBodyPlus.value(), parameterClass);
if (parseVal instanceof Map) { if (parseVal instanceof Map) {
JSONObject jsonObject = JSONUtil.parseObj(parseVal); JSONObject jsonObject = JSONUtil.parseObj(parseVal);
......
...@@ -2,8 +2,5 @@ package com.ibeetl.admin.core.dao; ...@@ -2,8 +2,5 @@ package com.ibeetl.admin.core.dao;
import org.beetl.sql.core.mapper.BaseMapper; import org.beetl.sql.core.mapper.BaseMapper;
/** /** 只是作为专门获取数据源的SQLmanager的接口,避免多数据源中,每次使用名称指定注入SQLmanager。 泛型不可少 */
* 只是作为专门获取数据源的SQLmanager的接口,避免多数据源中,每次使用名称指定注入SQLmanager。
* 泛型不可少
* */
public interface SQLManagerBaseDao extends BaseMapper<Object> {} public interface SQLManagerBaseDao extends BaseMapper<Object> {}
...@@ -2,9 +2,13 @@ package com.ibeetl.admin.core.service; ...@@ -2,9 +2,13 @@ package com.ibeetl.admin.core.service;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.dao.SQLManagerBaseDao; import com.ibeetl.admin.core.dao.SQLManagerBaseDao;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.entity.DictType; import com.ibeetl.admin.core.entity.DictType;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.cache.DictTypeCacheUtil; import com.ibeetl.admin.core.util.cache.DictTypeCacheUtil;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -12,16 +16,11 @@ import java.util.Collection; ...@@ -12,16 +16,11 @@ import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.beetl.sql.core.SQLManager;
import org.beetl.sql.core.TailBean; import org.beetl.sql.core.TailBean;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
/** /**
* 描述: * 描述:
* *
...@@ -31,7 +30,15 @@ public class CoreBaseService<T> { ...@@ -31,7 +30,15 @@ public class CoreBaseService<T> {
@Autowired protected CoreDictService dictUtil; @Autowired protected CoreDictService dictUtil;
@Autowired protected SQLManagerBaseDao sqlManager; protected SQLManagerBaseDao sqlManagerBaseDao;
protected SQLManager sqlManager;
@Autowired
public void setSqlManagerBaseDao(SQLManagerBaseDao sqlManagerBaseDao) {
this.sqlManagerBaseDao = sqlManagerBaseDao;
this.sqlManager = this.sqlManagerBaseDao.getSQLManager();
}
/** /**
* 根据id查询对象,如果主键ID不存在 * 根据id查询对象,如果主键ID不存在
...@@ -40,7 +47,7 @@ public class CoreBaseService<T> { ...@@ -40,7 +47,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public T queryById(Object id) { public T queryById(Object id) {
T t = sqlManager.getSQLManager().single(getCurrentEntityClassz(), id); T t = sqlManager.single(getCurrentEntityClassz(), id);
queryEntityAfter((Object) t); queryEntityAfter((Object) t);
return t; return t;
} }
...@@ -53,7 +60,7 @@ public class CoreBaseService<T> { ...@@ -53,7 +60,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public T queryById(Class<T> classz, Object id) { public T queryById(Class<T> classz, Object id) {
T t = sqlManager.getSQLManager().unique(classz, id); T t = sqlManager.unique(classz, id);
queryEntityAfter((Object) t); queryEntityAfter((Object) t);
return t; return t;
} }
...@@ -65,7 +72,7 @@ public class CoreBaseService<T> { ...@@ -65,7 +72,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public boolean save(T model) { public boolean save(T model) {
return sqlManager.getSQLManager().insert(model, true) > 0; return sqlManager.insert(model, true) > 0;
} }
/** /**
...@@ -90,8 +97,7 @@ public class CoreBaseService<T> { ...@@ -90,8 +97,7 @@ public class CoreBaseService<T> {
list.add(map); list.add(map);
} }
int[] count = int[] count = sqlManager.updateBatchTemplateById(getCurrentEntityClassz(), list);
sqlManager.getSQLManager().updateBatchTemplateById(getCurrentEntityClassz(), list);
int successCount = 0; int successCount = 0;
for (int successFlag : count) { for (int successFlag : count) {
successCount += successFlag; successCount += successFlag;
...@@ -105,7 +111,7 @@ public class CoreBaseService<T> { ...@@ -105,7 +111,7 @@ public class CoreBaseService<T> {
// always id,delFlag for pojo // always id,delFlag for pojo
map.put("id", id); map.put("id", id);
map.put("delFlag", DelFlagEnum.DELETED.getValue()); map.put("delFlag", DelFlagEnum.DELETED.getValue());
int ret = sqlManager.getSQLManager().updateTemplateById(getCurrentEntityClassz(), map); int ret = sqlManager.updateTemplateById(getCurrentEntityClassz(), map);
return ret == 1; return ret == 1;
} }
/** /**
...@@ -115,7 +121,7 @@ public class CoreBaseService<T> { ...@@ -115,7 +121,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public int forceDelete(Long id) { public int forceDelete(Long id) {
return sqlManager.getSQLManager().deleteById(getCurrentEntityClassz(), id); return sqlManager.deleteById(getCurrentEntityClassz(), id);
} }
/** /**
...@@ -125,7 +131,7 @@ public class CoreBaseService<T> { ...@@ -125,7 +131,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public int forceDelete(Class<T> classz, Long id) { public int forceDelete(Class<T> classz, Long id) {
return sqlManager.getSQLManager().deleteById(classz, id); return sqlManager.deleteById(classz, id);
} }
/** /**
...@@ -135,7 +141,7 @@ public class CoreBaseService<T> { ...@@ -135,7 +141,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public boolean updateTemplate(T model) { public boolean updateTemplate(T model) {
return sqlManager.getSQLManager().updateTemplateById(model) > 0; return sqlManager.updateTemplateById(model) > 0;
} }
/** /**
...@@ -145,7 +151,7 @@ public class CoreBaseService<T> { ...@@ -145,7 +151,7 @@ public class CoreBaseService<T> {
* @return * @return
*/ */
public boolean update(T model) { public boolean update(T model) {
return sqlManager.getSQLManager().updateById(model) > 0; return sqlManager.updateById(model) > 0;
} }
/** /**
......
/* /*
* @Author: 一日看尽长安花 * @Author: 一日看尽长安花
* @since: 2019-09-04 20:55:14 * @since: 2019-09-04 20:55:14
* @LastEditTime: 2020-04-25 19:50:39 * @LastEditTime: 2020-04-26 20:49:26
* @LastEditors: 一日看尽长安花 * @LastEditors: 一日看尽长安花
* @Description: * @Description:
*/ */
...@@ -118,3 +118,15 @@ export function addUserRoles(data) { ...@@ -118,3 +118,15 @@ export function addUserRoles(data) {
data data
}); });
} }
/**
* 删除用户授权角色数据
* @param {*} data 只包括ids一个数组
*/
export function deleteUserRoles(data) {
return request({
url: '/users/roles',
method: 'delete',
data
});
}
<!-- <!--
* @Author: 一日看尽长安花 * @Author: 一日看尽长安花
* @since: 2020-03-29 16:00:50 * @since: 2020-03-29 16:00:50
* @LastEditTime: 2020-04-23 14:06:39 * @LastEditTime: 2020-04-26 21:59:58
* @LastEditors: 一日看尽长安花 * @LastEditors: 一日看尽长安花
* @Description: * @Description:
--> -->
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
import Pagination from '@/components/Pagination'; import Pagination from '@/components/Pagination';
import { immaditeLoadRoles } from '@/api/role'; import { immaditeLoadRoles } from '@/api/role';
import { immaditeLoadOrgs } from '@/api/org'; import { immaditeLoadOrgs } from '@/api/org';
import { getUserRoles, getUserById } from '@/api/user'; import { getUserRoles, getUserById, deleteUserRoles } from '@/api/user';
import AddUserRole from './add-user-role'; import AddUserRole from './add-user-role';
export default { export default {
...@@ -149,14 +149,7 @@ export default { ...@@ -149,14 +149,7 @@ export default {
const { code, data } = { ...result }; const { code, data } = { ...result };
this.orgIdCascaderProps.options = data; this.orgIdCascaderProps.options = data;
}); });
getUserRoles({ this.loadTableData();
userId: this.id,
roleId: undefined,
orgId: undefined
}).then(result => {
const { code, data } = { ...result };
this.tableData = data;
});
getUserById({ id: this.id }).then(result => { getUserById({ id: this.id }).then(result => {
const { code, data } = { ...result }; const { code, data } = { ...result };
this.dialogData = data; this.dialogData = data;
...@@ -169,6 +162,16 @@ export default { ...@@ -169,6 +162,16 @@ export default {
this.dialogTitle = '创建角色'; this.dialogTitle = '创建角色';
this.visible = true; this.visible = true;
}, },
loadTableData() {
getUserRoles({
userId: this.id,
roleId: undefined,
orgId: undefined
}).then(result => {
const { code, data } = { ...result };
this.tableData = data;
});
},
deleteUserRole() { deleteUserRole() {
const _table = this.$refs.dataTable; const _table = this.$refs.dataTable;
const isSelection = _table.selection.length > 0 ? true : false; const isSelection = _table.selection.length > 0 ? true : false;
...@@ -181,6 +184,10 @@ export default { ...@@ -181,6 +184,10 @@ export default {
} }
const _selList = _table.selection; const _selList = _table.selection;
const ids = _selList.map(item => item.id); const ids = _selList.map(item => item.id);
deleteUserRoles({ ids: ids }).then(response => {
const { code, message, data } = { ...response };
this.loadTableData();
});
} }
} }
}; };
......
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