字典序列化
parent
08cfaa9665
commit
9d1f8beac9
|
|
@ -1,14 +1,12 @@
|
|||
package com.njzscloud.common.core.fastjson.serializer;
|
||||
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONReader;
|
||||
import com.alibaba.fastjson2.reader.ObjectReader;
|
||||
import com.alibaba.fastjson2.util.TypeUtils;
|
||||
import com.njzscloud.common.core.ex.Exceptions;
|
||||
import com.njzscloud.common.core.ienum.Dict;
|
||||
import com.njzscloud.common.core.ienum.DictInt;
|
||||
import com.njzscloud.common.core.ienum.DictStr;
|
||||
import com.njzscloud.common.core.ienum.IEnum;
|
||||
import com.njzscloud.common.core.ienum.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
|
@ -40,18 +38,28 @@ public class DictObjectDeserializer implements ObjectReader<Dict> {
|
|||
Map<String, Object> map = jsonReader.readObject();
|
||||
|
||||
String typeField = (String) map.get(IEnum.ENUM_TYPE);
|
||||
|
||||
Object valField = map.get(Dict.ENUM_VAL);
|
||||
Class<?> clazz;
|
||||
if (typeField == null) {
|
||||
clazz = TypeUtils.getClass(fieldType);
|
||||
} else {
|
||||
clazz = CLASSLOADER.loadClass(typeField);
|
||||
}
|
||||
|
||||
|
||||
Class<?> clazz = CLASSLOADER.loadClass(typeField);
|
||||
|
||||
if (valField instanceof String) {
|
||||
if (valField instanceof String val) {
|
||||
if (DictStr.class.isAssignableFrom(clazz)) {
|
||||
if (clazz.isEnum()) {
|
||||
DictStr[] constants = (DictStr[]) clazz.getEnumConstants();
|
||||
return Dict.parse((String) valField, constants);
|
||||
return Dict.parse(val, constants);
|
||||
} else {
|
||||
if (StrUtil.isBlank(val)) return null;
|
||||
String keyField = (String) map.get(Dict.ENUM_KEY);
|
||||
return DictItem.get(keyField, val);
|
||||
}
|
||||
} else if (DictInt.class.isAssignableFrom(clazz)) {
|
||||
DictInt[] constants = (DictInt[]) clazz.getEnumConstants();
|
||||
return Dict.parse(Integer.parseInt((String) valField), constants);
|
||||
return Dict.parse(Integer.parseInt(val), constants);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
|
@ -71,12 +79,19 @@ public class DictObjectDeserializer implements ObjectReader<Dict> {
|
|||
} else {
|
||||
if (jsonReader.isString()) {
|
||||
Class<?> clazz = TypeUtils.getClass(fieldType);
|
||||
if (DictStr.class.isAssignableFrom(clazz)) {
|
||||
String val = jsonReader.readString();
|
||||
if (DictStr.class.isAssignableFrom(clazz)) {
|
||||
if (clazz.isEnum()) {
|
||||
DictStr[] constants = (DictStr[]) clazz.getEnumConstants();
|
||||
return Dict.parse(val, constants);
|
||||
} else {
|
||||
if (StrUtil.isBlank(val)) return null;
|
||||
DictKey annotation = clazz.getAnnotation(DictKey.class);
|
||||
if (annotation == null) return null;
|
||||
String value = annotation.value();
|
||||
return DictItem.get(value, val);
|
||||
}
|
||||
} else if (DictInt.class.isAssignableFrom(clazz)) {
|
||||
String val = jsonReader.readString();
|
||||
DictInt[] constants = (DictInt[]) clazz.getEnumConstants();
|
||||
return Dict.parse(Integer.parseInt(val), constants);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ public class DictObjectSerializer implements ObjectWriter<Dict> {
|
|||
jsonWriter.writeColon();
|
||||
jsonWriter.writeString(dict.getClass().getName());
|
||||
|
||||
if (dict.getClass().isEnum()) {
|
||||
jsonWriter.writeName(IEnum.ENUM_NAME);
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeString(((Enum<?>) dict).name());
|
||||
|
|
@ -63,6 +64,11 @@ public class DictObjectSerializer implements ObjectWriter<Dict> {
|
|||
jsonWriter.writeName(IEnum.ENUM_ORDINAL);
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeInt32(((Enum<?>) dict).ordinal());
|
||||
}
|
||||
|
||||
jsonWriter.writeName(Dict.ENUM_KEY);
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeAny(dict.getKey());
|
||||
|
||||
jsonWriter.writeName(Dict.ENUM_VAL);
|
||||
jsonWriter.writeColon();
|
||||
|
|
@ -83,12 +89,21 @@ public class DictObjectSerializer implements ObjectWriter<Dict> {
|
|||
jsonWriter.writeName(fieldName + "Txt");
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeString(dictInt.getTxt());
|
||||
|
||||
jsonWriter.writeName(fieldName + "Key");
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeString(dictInt.getKey());
|
||||
} else if (DictStr.class.isAssignableFrom(clazz)) {
|
||||
DictStr dictStr = (DictStr) object;
|
||||
jsonWriter.writeString(dictStr.getVal());
|
||||
|
||||
jsonWriter.writeName(fieldName + "Txt");
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeString(dictStr.getTxt());
|
||||
|
||||
jsonWriter.writeName(fieldName + "Key");
|
||||
jsonWriter.writeColon();
|
||||
jsonWriter.writeString(dictStr.getKey());
|
||||
} else {
|
||||
jsonWriter.writeNull();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,11 @@ public interface Dict<T> extends IEnum {
|
|||
* 存放枚举的 txt 属性值
|
||||
*/
|
||||
String ENUM_TXT = "txt";
|
||||
/**
|
||||
* 枚举单独序列化时的属性<br/>
|
||||
* 存放枚举的 key 属性值
|
||||
*/
|
||||
String ENUM_KEY = "key";
|
||||
|
||||
/**
|
||||
* 根据 "值" 获取到对应的枚举对象
|
||||
|
|
@ -52,6 +57,13 @@ public interface Dict<T> extends IEnum {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字段项
|
||||
*/
|
||||
default String getKey() {
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 值
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
package com.njzscloud.common.core.ienum;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson2.annotation.JSONType;
|
||||
import com.njzscloud.common.core.fastjson.serializer.DictObjectDeserializer;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
@JSONType(deserializer = DictObjectDeserializer.class)
|
||||
public class DictItem implements DictStr {
|
||||
private static final Map<String, List<DictItem>> cache = new ConcurrentHashMap<>();
|
||||
private String key;
|
||||
private String val;
|
||||
private String txt;
|
||||
|
||||
public static void put(String key, DictItem dictItem) {
|
||||
cache.compute(key, (k, v) -> {
|
||||
if (v == null) v = new LinkedList<>();
|
||||
v.add(dictItem);
|
||||
return v;
|
||||
});
|
||||
}
|
||||
|
||||
public static void put(String key, List<DictItem> list) {
|
||||
cache.put(key, new LinkedList<>(list));
|
||||
}
|
||||
|
||||
public static DictItem get(String key, String val) {
|
||||
DictItem dictItem = new DictItem();
|
||||
cache.compute(key, (k, v) -> {
|
||||
if (CollUtil.isNotEmpty(v)) {
|
||||
Optional<DictItem> first = v.stream().filter(it -> it.val.equals(val)).findFirst();
|
||||
if (first.isPresent()) {
|
||||
DictItem data = first.get();
|
||||
dictItem.key = data.key;
|
||||
dictItem.val = data.val;
|
||||
dictItem.txt = data.txt;
|
||||
}
|
||||
}
|
||||
return v;
|
||||
});
|
||||
if (dictItem.key == null) return null;
|
||||
return dictItem;
|
||||
}
|
||||
|
||||
public static void clear() {
|
||||
cache.clear();
|
||||
}
|
||||
|
||||
public static void remove(String key, String val) {
|
||||
cache.compute(key, (k, v) -> {
|
||||
if (CollUtil.isNotEmpty(v)) v.removeIf(it -> it.val.equals(val));
|
||||
return v;
|
||||
});
|
||||
}
|
||||
|
||||
public static void remove(String key) {
|
||||
cache.remove(key);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.njzscloud.common.core.ienum;
|
||||
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import static java.lang.annotation.ElementType.FIELD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
|
||||
@Target({FIELD, PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface DictKey {
|
||||
String value();
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.njzscloud.common.core.jackson.serializer;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.core.JsonStreamContext;
|
||||
import com.fasterxml.jackson.core.JsonToken;
|
||||
|
|
@ -9,10 +10,7 @@ import com.fasterxml.jackson.databind.JsonDeserializer;
|
|||
import com.fasterxml.jackson.databind.node.IntNode;
|
||||
import com.fasterxml.jackson.databind.node.TextNode;
|
||||
import com.njzscloud.common.core.ex.Exceptions;
|
||||
import com.njzscloud.common.core.ienum.Dict;
|
||||
import com.njzscloud.common.core.ienum.DictInt;
|
||||
import com.njzscloud.common.core.ienum.DictStr;
|
||||
import com.njzscloud.common.core.ienum.IEnum;
|
||||
import com.njzscloud.common.core.ienum.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -106,8 +104,16 @@ public class DictDeserializer extends JsonDeserializer<Dict> {
|
|||
Class<?> clazz = field.getType();
|
||||
if (DictStr.class.isAssignableFrom(clazz)) {
|
||||
String val = p.getValueAsString();
|
||||
if (clazz.isEnum()) {
|
||||
DictStr[] constants = (DictStr[]) clazz.getEnumConstants();
|
||||
return Dict.parse(val, constants);
|
||||
} else {
|
||||
if (StrUtil.isBlank(val)) return null;
|
||||
DictKey annotation = field.getAnnotation(DictKey.class);
|
||||
if (annotation == null) return null;
|
||||
String value = annotation.value();
|
||||
return DictItem.get(value, val);
|
||||
}
|
||||
} else if (DictInt.class.isAssignableFrom(clazz)) {
|
||||
int val = p.getValueAsInt();
|
||||
DictInt[] constants = (DictInt[]) clazz.getEnumConstants();
|
||||
|
|
|
|||
|
|
@ -46,8 +46,11 @@ public class DictSerializer extends JsonSerializer<Dict> {
|
|||
if (ctx.inRoot()) {
|
||||
gen.writeStartObject();
|
||||
gen.writeStringField(IEnum.ENUM_TYPE, value.getClass().getName());
|
||||
if (value.getClass().isEnum()) {
|
||||
gen.writeStringField(IEnum.ENUM_NAME, ((Enum<?>) value).name());
|
||||
gen.writeNumberField(IEnum.ENUM_ORDINAL, ((Enum<?>) value).ordinal());
|
||||
}
|
||||
gen.writeObjectField(Dict.ENUM_KEY, value.getKey());
|
||||
gen.writeObjectField(Dict.ENUM_VAL, value.getVal());
|
||||
gen.writeStringField(Dict.ENUM_TXT, value.getTxt());
|
||||
gen.writeEndObject();
|
||||
|
|
@ -55,6 +58,7 @@ public class DictSerializer extends JsonSerializer<Dict> {
|
|||
gen.writeObject(value.getVal());
|
||||
String currentName = ctx.getCurrentName();
|
||||
gen.writeStringField(currentName + "Txt", value.getTxt());
|
||||
gen.writeStringField(currentName + "Key", value.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
package com.njzscloud.common.mvc.support;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.njzscloud.common.core.ienum.Dict;
|
||||
import com.njzscloud.common.core.ienum.DictInt;
|
||||
import com.njzscloud.common.core.ienum.DictStr;
|
||||
import com.njzscloud.common.core.ienum.*;
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.support.WebDataBinderFactory;
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
|
|
@ -16,6 +15,13 @@ import org.springframework.web.method.support.ModelAndViewContainer;
|
|||
*/
|
||||
@SuppressWarnings({"ConstantConditions"})
|
||||
public class DictHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
|
||||
{
|
||||
DictItem dictItem = new DictItem()
|
||||
.setKey("key")
|
||||
.setVal("val")
|
||||
.setTxt("txt");
|
||||
DictItem.put("key", dictItem);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持 {@link DictInt} 和 {@link DictStr} 类型的返回值
|
||||
|
|
@ -25,7 +31,8 @@ public class DictHandlerMethodArgumentResolver implements HandlerMethodArgumentR
|
|||
*/
|
||||
@Override
|
||||
public boolean supportsParameter(MethodParameter parameter) {
|
||||
return DictInt.class.isAssignableFrom(parameter.getParameterType()) || DictStr.class.isAssignableFrom(parameter.getParameterType());
|
||||
Class<?> parameterType = parameter.getParameterType();
|
||||
return DictInt.class.isAssignableFrom(parameterType) || DictStr.class.isAssignableFrom(parameterType);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -40,8 +47,14 @@ public class DictHandlerMethodArgumentResolver implements HandlerMethodArgumentR
|
|||
@Override
|
||||
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container, NativeWebRequest request, WebDataBinderFactory factory) throws Exception {
|
||||
String parameterName = parameter.getParameterName();
|
||||
String param = request.getParameter(parameterName);
|
||||
|
||||
if (parameterName == null) {
|
||||
RequestParam parameterAnnotation = parameter.getParameterAnnotation(RequestParam.class);
|
||||
if (parameterAnnotation == null) return null;
|
||||
parameterName = parameterAnnotation.value();
|
||||
}
|
||||
|
||||
String param = request.getParameter(parameterName);
|
||||
if (StrUtil.isBlank(param)) return null;
|
||||
|
||||
Class<?> type = parameter.getParameterType();
|
||||
|
|
@ -51,8 +64,16 @@ public class DictHandlerMethodArgumentResolver implements HandlerMethodArgumentR
|
|||
DictInt[] constants = (DictInt[]) type.getEnumConstants();
|
||||
return Dict.parse(val, constants);
|
||||
} else if (DictStr.class.isAssignableFrom(type)) {
|
||||
if (type.isEnum()) {
|
||||
DictStr[] constants = (DictStr[]) type.getEnumConstants();
|
||||
return Dict.parse(param, constants);
|
||||
} else {
|
||||
if (StrUtil.isBlank(param)) return null;
|
||||
DictKey annotation = parameter.getParameterAnnotation(DictKey.class);
|
||||
if (annotation == null) return null;
|
||||
String value = annotation.value();
|
||||
return DictItem.get(value, param);
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,9 @@ public class SecurityUtil {
|
|||
* @param userDetail 用户信息
|
||||
*/
|
||||
public static UserDetail registrationUser(UserDetail userDetail) {
|
||||
SpringUtil.getBean(ITokenService.class).updateToken(userDetail);
|
||||
Token token = Token.of(userDetail.getUserId(), userDetail.getAccountId(), userDetail.getAuthWay());
|
||||
userDetail.setToken(token);
|
||||
saveToken(userDetail);
|
||||
return userDetail;
|
||||
}
|
||||
|
||||
|
|
@ -69,11 +71,9 @@ public class SecurityUtil {
|
|||
*
|
||||
* @param userDetail 用户信息
|
||||
*/
|
||||
public static UserDetail updateUser(UserDetail userDetail) {
|
||||
Token token = Token.of(userDetail.getUserId(), userDetail.getAccountId(), userDetail.getAuthWay());
|
||||
userDetail.setToken(token);
|
||||
saveToken(userDetail);
|
||||
return userDetail;
|
||||
|
||||
public static void updateUser(UserDetail userDetail) {
|
||||
SpringUtil.getBean(ITokenService.class).updateToken(userDetail);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ public class AuthService implements IAuthService {
|
|||
.setMenus(menuResources)
|
||||
.setEndpoints(endpointResources)
|
||||
.setRoles(roles)
|
||||
.setClient(client)
|
||||
;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package com.njzscloud.dispose.sys.dict.controller;
|
||||
|
||||
import com.njzscloud.common.core.ienum.DictItem;
|
||||
import com.njzscloud.common.core.ienum.DictKey;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class Data {
|
||||
@DictKey("key")
|
||||
DictItem dictItem;
|
||||
String a;
|
||||
String b;
|
||||
String e;
|
||||
}
|
||||
|
|
@ -1,10 +1,12 @@
|
|||
package com.njzscloud.dispose.sys.dict.controller;
|
||||
|
||||
import com.njzscloud.common.core.ienum.DictItem;
|
||||
import com.njzscloud.common.core.ienum.DictKey;
|
||||
import com.njzscloud.common.core.utils.R;
|
||||
import com.njzscloud.common.mp.support.PageParam;
|
||||
import com.njzscloud.common.mp.support.PageResult;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.ObtainDictDataResult;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.result.ObtainDictDataResult;
|
||||
import com.njzscloud.dispose.sys.dict.service.DictService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -77,4 +79,22 @@ public class DictController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取字典数据
|
||||
*/
|
||||
@GetMapping("/a")
|
||||
public R<?> a(@DictKey("key") @RequestParam("dictItem") DictItem dictItem) {
|
||||
return R.success(dictItem);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取字典数据
|
||||
*/
|
||||
@PostMapping("/b")
|
||||
public R<?> b(@RequestBody Data data) {
|
||||
return R.success(data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.njzscloud.dispose.sys.dict.controller;
|
|||
import com.njzscloud.common.core.utils.R;
|
||||
import com.njzscloud.common.mp.support.PageParam;
|
||||
import com.njzscloud.common.mp.support.PageResult;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictItemEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictItemEntity;
|
||||
import com.njzscloud.dispose.sys.dict.service.DictItemService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.njzscloud.dispose.sys.dict.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictItemEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictItemEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.njzscloud.dispose.sys.dict.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.njzscloud.dispose.sys.dict.pojo;
|
||||
package com.njzscloud.dispose.sys.dict.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.njzscloud.dispose.sys.dict.pojo;
|
||||
package com.njzscloud.dispose.sys.dict.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.njzscloud.dispose.sys.dict.pojo;
|
||||
package com.njzscloud.dispose.sys.dict.pojo.result;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
|
@ -10,7 +10,7 @@ import com.njzscloud.common.core.ex.Exceptions;
|
|||
import com.njzscloud.common.mp.support.PageParam;
|
||||
import com.njzscloud.common.mp.support.PageResult;
|
||||
import com.njzscloud.dispose.sys.dict.mapper.DictItemMapper;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictItemEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictItemEntity;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ import com.njzscloud.common.core.ex.Exceptions;
|
|||
import com.njzscloud.common.mp.support.PageParam;
|
||||
import com.njzscloud.common.mp.support.PageResult;
|
||||
import com.njzscloud.dispose.sys.dict.mapper.DictMapper;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.DictItemEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.ObtainDictDataResult;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.entity.DictItemEntity;
|
||||
import com.njzscloud.dispose.sys.dict.pojo.result.ObtainDictDataResult;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -26,9 +26,9 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DictService extends ServiceImpl<DictMapper, DictEntity> implements IService<DictEntity> {
|
||||
@Autowired
|
||||
private DictItemService dictItemService;
|
||||
private final DictItemService dictItemService;
|
||||
|
||||
/**
|
||||
* 新增
|
||||
|
|
@ -84,7 +84,7 @@ public class DictService extends ServiceImpl<DictMapper, DictEntity> implements
|
|||
.or().like(DictItemEntity::getVal, keywords)
|
||||
.or().like(DictItemEntity::getMemo, keywords)
|
||||
)
|
||||
.orderByAsc(DictItemEntity::getSort, DictItemEntity::getVal)
|
||||
.orderByAsc(DictItemEntity::getSort, DictItemEntity::getVal, DictItemEntity::getId)
|
||||
)
|
||||
.stream().map(it -> BeanUtil.copyProperties(it, ObtainDictDataResult.class))
|
||||
.collect(Collectors.toList());
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ public class UserService extends ServiceImpl<UserMapper, UserEntity> implements
|
|||
private final UserAccountService userAccountService;
|
||||
private final UserRoleService userRoleService;
|
||||
private final CustomerService customerService;
|
||||
private final AuthService authService;
|
||||
|
||||
/**
|
||||
* 新增
|
||||
|
|
@ -139,7 +140,6 @@ public class UserService extends ServiceImpl<UserMapper, UserEntity> implements
|
|||
return PageResult.of(baseMapper.paging(pageParam.toPage(), ew));
|
||||
}
|
||||
|
||||
AuthService authService;
|
||||
|
||||
/**
|
||||
* 用户注册
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package a;
|
||||
|
||||
import com.njzscloud.common.core.ienum.DictItem;
|
||||
import com.njzscloud.common.core.ienum.DictKey;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class Data {
|
||||
@DictKey("key")
|
||||
DictItem dictItem;
|
||||
String a;
|
||||
String b;
|
||||
String e;
|
||||
}
|
||||
Loading…
Reference in New Issue