| 
									
										
										
										
											2025-04-24 18:32:38 +08:00
										 |  |  |  | 翻译拦截模块(bd-common-aop -- TransactionAspectAdvice.java) | 
					
						
							| 
									
										
										
										
											2025-03-23 08:39:16 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 如果业务操作时,返回内容需要统一翻译,则在pom文件中引入该模块。 | 
					
						
							|  |  |  |  | 翻译拦截器会统一拦截 com.hzs 包下 controller 下的以 Controller 结尾类。 | 
					
						
							|  |  |  |  | 翻译拦截器会根据请求头中指定的翻译语言,与当前登录用户所属国家的默认语言进行比较,如果不一致则进行处理。 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 返回实体中,如果需要进行统一翻译的需要在对应的字段添加注解 @Transaction。 | 
					
						
							|  |  |  |  | @Transaction注解中有4个参数: | 
					
						
							|  |  |  |  | 1. isForce -- 是否强制国际化处理: 强制处理会直接按照选择显示语言进行处理 | 
					
						
							|  |  |  |  | 2. isCache -- 是否来源于缓存: 如果是,则直接从redis中取;如果否,则直接从数据库中查询 | 
					
						
							|  |  |  |  | 3. transactionKey -- 翻译规则前缀: 当来源于缓存为true时,缓存对应的key值前缀,来源于 EnumsPrefixConstants 中内容 | 
					
						
							|  |  |  |  | 4. isValue -- 是否当前字段取值: 当来源于缓存为true时,并且使用当前字段取值true,那么最终用于获取缓存中的翻译key值,由 翻译规则前缀 + 当前字段实际值 组成 | 
					
						
							|  |  |  |  | 5. valueField -- 默认翻译数据字段: 当来源于缓存为true时,并且使用当前字段取值为false,那么最终用于获取缓存中的翻译key值,由 翻译规则前缀 + 该属性指定值 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 如果枚举值进行返回列表时,需要将枚举内容转化成 EnumEntity 实体,在实体中因无法直接指定各枚举对应的翻译前缀KEY,所以需要在实体对象的 transactionKey 字段,指定翻译前缀KEY | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 注: 数值类型的状态位返回时,需要在实体中定义以 【字段名 + Val】 的字段,用于回填状态位翻译之后的字符内容。 |