springboot字典翻译插件

介绍

zzy-field-proxy是一个字典自动翻译工具,支持多种数据类型,可以指定bean中有的字段,也可以自动生成bean中不存在的字段。 它支持多种获取字典数据源的方式,包括:sql、枚举、远程调用。如果这些不能满足你的需求,那么zzy-field-proxy也提供相应的接口帮助你自定义字典数据的获取。

使用效果

  • 数据库数据
    user表数据

  • 实体类

@TableName("sys_user")
@Data
public class User {
    @FieldProxy(meta = Constants.ROLE_SQL, returnKey = "user_id", fieldName = "rolesName", type = List.class, isMultiValue = true)
    private Long id;

    @FieldProxy(meta = Constants.SEX_SQL_FiELD_NO_EXIST, returnKey = "code", selectKey = "sssssex", dataKey = {"kkkex"}, fieldName = "sexName")
    private String name;

    private String sex;

    @FieldProxy(meta = Constants.ORG_SQL, returnKey = "id", isMultiValue = true, fieldName = "orgIdsNameString")
    private String orgIds;

    @FieldProxy(meta = Constants.SEX_SQL, returnKey = "code", selectKey = "sex", dataKey = {"sex"})
    @TableField(exist = false)
    private String sexName;


    @FieldProxy(meta = Constants.SEX_ALL_SQL, returnKey = "code", dataKey = {"sex"}, fieldName = "virtualField")
    @TableField(exist = false)
    private String virtualField;


    @FieldProxy(meta = "com.zzy.example.enums.Address", returnKey = "key", selectKey = "value", executeType = "enum")
    private Integer address;

    @FieldProxy(meta = "com.zzy.example.enums.Post", returnKey = "name", selectKey = "level", executeType = "enum")
    private String post;

    @FieldProxy(meta = "http://localhost:8080/dic/get", dicKey = "ROLE_TYPE", fieldName = "roleNames", isMultiValue = true, executeType = "remote")
    @TableField(exist = false)
    private List<Long> roleIds;


    public String getSssssex() {
        return this.sex;
    }

    public String getKkkex() {
        return this.sex;
    }

}

public interface Constants {
    String ROLE_SQL = "select sur.user_id, sr.role_name from sys_user_role sur, sys_role sr where  sur.user_id = #{id} and sur.role_id = sr.id";

    String SEX_SQL = "select sd.code, sd.name from sys_dic sd  where  sd.code = #{sex} ";

    String SEX_SQL_FiELD_NO_EXIST = "select sd.code, sd.name from sys_dic sd  where  sd.code = #{sssssex} ";

    String ORG_SQL = " select so.id, so.name from sys_org so where so.id = #{orgIds} ";

    String SEX_ALL_SQL = " select code, name from sys_dic ";
}

  • 翻译结果
    这里只截取其中的一个对象进行展示
[
	{
		"id": 1,
		"name": "name1",
		"sex": "001",
		"orgIds": "1,2",
		"sexName": "男",
		"virtualField": "男",
		"address": 1,
		"post": "L1",
		"roleIds": [
			1,
			4,
			7
		],
		"rolesName": [
			"role1",
			"role4",
			"role7"
		],
		"addressName": "A大道",
		"sexNameName": "男",
		"roleNames": "role1,role4,role7",
		"postName": "职位1号",
		"orgIdsNameString": "公司1,公司2",
		"kkkex": "001",
		"sssssex": "001"
	}
]

项目地址

点击跳转到字典翻译代码地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值