Commit ed4f1651 authored by trumansdo's avatar trumansdo
Browse files

-

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