Dict
这个是我们的注解类,把它打在我们要翻译的实体类上就ojbk了
/**
* 类描述: 字典注解
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Dict {
/**
* 方法描述: 数据code
* @return 返回类型: String
*/
String dicCode();
/**
* 方法描述: 这是返回后Put到josn中的文本 key 值
* @return 返回类型: String
*/
String dicText() default "";
}
DictAspect 注解切面类
这个类核心思想就是拦截所有的 controller 方法,对要翻译的字段进行处理
package com.p2pInternetloan.sys.aspect;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.p2pInternetloan.base.aspect.annotation.Dict;
import com.p2pInternetloan.base.constant.CommonConstant;
import com.p2pInternetloan.base.utils.PageUtils;
import com.p2pInternetloan.base.utils.oConvertUtils;
import com.p2pInternetloan.sys.service.SysdictitemService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @Description: 字典aop类 (用于翻译字典数据)
* @Author: cpc
* @Date: 2019-3-17 21:50
* @Version: 1.0
*/
@Aspect
@Component
@Slf4j
public class DictAspect {
//这是操作数据字典那张表的 service
@Autowired
private SysdictitemService sysdictitemService;
// 定义切点Pointcut 拦截所有对服务器的请求
@Pointcut("execution( * com.p2pInternetloan..controller.*.*(..))")
public void excudeService() {
}
/**
* 这是触发 excudeService 的时候会执行的
* @param pjp
* @return
* @throws Throwable
*/
@Around("excudeService()"