ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/annotation/Translation.java
@@ -21,10 +21,17 @@ /** * 类型 (需与实现类上的 {@link com.ruoyi.common.translation.annotation.TranslationType} 注解type对应) * <p> * 默认取当前字段的值 如果设置了 @{@link Translation#mapper()} 则取映射字段的值 */ String type(); /** * 映射字段 (如果不为空则取此字段的值) */ String mapper() default ""; /** * 其他条件 例如: 字典type(sys_user_sex) */ String other() default ""; ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/config/TranslationConfig.java
@@ -1,5 +1,6 @@ package com.ruoyi.common.translation.config; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.translation.annotation.TranslationType; import com.ruoyi.common.translation.core.TranslationInterface; import com.ruoyi.common.translation.core.handler.TranslationHandler; @@ -24,6 +25,9 @@ @Autowired private List<TranslationInterface> list; @Autowired private ObjectMapper objectMapper; @PostConstruct public void init() { Map<String, TranslationInterface> map = new HashMap<>(list.size()); @@ -36,6 +40,8 @@ } } TranslationHandler.TRANSLATION_MAPPER.putAll(map); // todo null值处理 // objectMapper.getSerializerProvider().setNullValueSerializer(); } } ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/handler/TranslationHandler.java
@@ -8,10 +8,10 @@ import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.reflect.ReflectUtils; import com.ruoyi.common.translation.annotation.Translation; import com.ruoyi.common.translation.core.TranslationInterface; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; import java.io.IOException; import java.util.Map; @@ -35,16 +35,15 @@ @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException { try { TranslationInterface trans = TRANSLATION_MAPPER.get(translation.type()); if (ObjectUtil.isNotNull(trans)) { String result = trans.translation(value, translation.other()); gen.writeString(StringUtils.isNotBlank(result) ? result : value.toString()); } else { gen.writeString(value.toString()); TranslationInterface trans = TRANSLATION_MAPPER.get(translation.type()); if (ObjectUtil.isNotNull(trans)) { // 如果映射字段不为空 则取映射字段的值 if (StringUtils.isNotBlank(translation.mapper())) { value = ReflectUtils.invokeGetter(gen.getCurrentValue(), translation.mapper()); } } catch (BeansException e) { log.error("数据未查到, 采用默认处理 => {}", e.getMessage()); String result = trans.translation(value, translation.other()); gen.writeString(StringUtils.isNotBlank(result) ? result : value.toString()); } else { gen.writeString(value.toString()); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDeptBo.java
@@ -3,9 +3,12 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.mybatis.core.domain.TreeEntity; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; /** * 部门业务对象 sys_dept ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictDataBo.java
@@ -2,11 +2,12 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.mybatis.core.domain.BaseEntity; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import com.ruoyi.common.mybatis.core.domain.BaseEntity; /** * 字典数据业务对象 sys_dict_data @@ -81,6 +82,5 @@ * 备注 */ private String remark; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysDictTypeBo.java
@@ -2,11 +2,13 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.mybatis.core.domain.BaseEntity; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import com.ruoyi.common.mybatis.core.domain.BaseEntity; /** * 字典类型业务对象 sys_dict_type @@ -44,11 +46,6 @@ * 状态(0正常 1停用) */ private String status; /** * 创建部门 */ private Long createDept; /** * 备注 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysMenuBo.java
@@ -4,13 +4,11 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.mybatis.core.domain.TreeEntity; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; import com.ruoyi.common.mybatis.core.domain.BaseEntity; /** * 菜单权限业务对象 sys_menu ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysNoticeBo.java
@@ -3,13 +3,12 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.xss.Xss; import com.ruoyi.common.mybatis.core.domain.BaseEntity; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; import com.ruoyi.common.mybatis.core.domain.BaseEntity; /** * 通知公告业务对象 sys_notice @@ -56,5 +55,9 @@ */ private String remark; /** * 创建人名称 */ private String createByName; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java
@@ -1,14 +1,13 @@ package com.ruoyi.system.domain.bo; import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import lombok.Data; import lombok.EqualsAndHashCode; import com.ruoyi.common.mybatis.core.domain.BaseEntity; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; /** * 对象存储配置业务对象 sys_oss_config ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysPostBo.java
@@ -2,13 +2,12 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.mybatis.core.domain.BaseEntity; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; import com.ruoyi.common.mybatis.core.domain.BaseEntity; /** * 岗位信息业务对象 sys_post ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysNoticeVo.java
@@ -1,9 +1,5 @@ package com.ruoyi.system.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.translation.annotation.Translation; import com.ruoyi.common.translation.constant.TransConstant; import lombok.Data; @@ -59,10 +55,15 @@ /** * 创建者 */ @Translation(type = TransConstant.USER_ID_TO_NAME) private Long createBy; /** * 创建人名称 */ @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy") private String createByName = ""; /** * 创建时间 */ private Date createTime; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
@@ -5,13 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.domain.bo.SysNoticeBo; import com.ruoyi.system.domain.vo.SysNoticeVo; import com.ruoyi.system.mapper.SysNoticeMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysNoticeService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -29,6 +31,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService { private final SysNoticeMapper baseMapper; private final SysUserMapper userMapper; @Override public TableDataInfo<SysNoticeVo> selectPageNoticeList(SysNoticeBo notice, PageQuery pageQuery) { @@ -64,7 +67,10 @@ LambdaQueryWrapper<SysNotice> lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle()); lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType()); lqw.eq(ObjectUtil.isNotNull(bo.getCreateBy()), SysNotice::getCreateBy, bo.getCreateBy()); if (StringUtils.isNotBlank(bo.getCreateByName())) { SysUser sysUser = userMapper.selectUserByUserName(bo.getCreateByName()); lqw.eq(SysNotice::getCreateBy, ObjectUtil.isNotNull(sysUser) ? sysUser.getUserId() : null); } return lqw; } ruoyi-ui/src/views/system/notice/index.vue
@@ -9,9 +9,9 @@ @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="操作人员" prop="createBy"> <el-form-item label="操作人员" prop="createByName"> <el-input v-model="queryParams.createBy" v-model="queryParams.createByName" placeholder="请输入操作人员" clearable @keyup.enter.native="handleQuery" @@ -88,7 +88,7 @@ <dict-tag :options="dict.type.sys_notice_status" :value="scope.row.status"/> </template> </el-table-column> <el-table-column label="创建者" align="center" prop="createBy" width="100" /> <el-table-column label="创建者" align="center" prop="createByName" width="100" /> <el-table-column label="创建时间" align="center" prop="createTime" width="100"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> @@ -200,7 +200,7 @@ pageNum: 1, pageSize: 10, noticeTitle: undefined, createBy: undefined, createByName: undefined, status: undefined }, // 表单参数 @@ -282,6 +282,7 @@ this.$refs["form"].validate(valid => { if (valid) { if (this.form.noticeId != undefined) { console.log(this.$refs['form']) updateNotice(this.form).then(response => { this.$modal.msgSuccess("修改成功"); this.open = false; @@ -309,4 +310,4 @@ } } }; </script> </script>