6 changed files with 97 additions and 12 deletions
			
			
		@ -0,0 +1,14 @@ | 
				
			|||||||
 | 
					package com.hnac.hzims.ticket.annotation; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.lang.annotation.*; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Documented | 
				
			||||||
 | 
					@Retention(RetentionPolicy.RUNTIME) | 
				
			||||||
 | 
					@Target({ElementType.FIELD}) | 
				
			||||||
 | 
					public @interface DateTimeToMap { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String prefix() default ""; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String split() default "_"; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,57 @@ | 
				
			|||||||
 | 
					package com.hnac.hzims.ticket.utils; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.hnac.hzims.ticket.annotation.DateTimeToMap; | 
				
			||||||
 | 
					import org.springblade.core.log.exception.ServiceException; | 
				
			||||||
 | 
					import org.springblade.core.tool.utils.DateUtil; | 
				
			||||||
 | 
					import org.springblade.core.tool.utils.ObjectUtil; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.lang.reflect.Field; | 
				
			||||||
 | 
					import java.time.LocalDateTime; | 
				
			||||||
 | 
					import java.util.*; | 
				
			||||||
 | 
					import java.util.stream.Collectors; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class ObjectUtils { | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static Map obj2Map(Object obj) { | 
				
			||||||
 | 
					        if(ObjectUtil.isNotEmpty(obj) && null != obj.getClass()) { | 
				
			||||||
 | 
					            Map result = new HashMap(); | 
				
			||||||
 | 
					            List<Field> fieldList = new ArrayList<>(); | 
				
			||||||
 | 
					            Class<?> clazz = obj.getClass(); | 
				
			||||||
 | 
					            while(clazz != null) { | 
				
			||||||
 | 
					                fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); | 
				
			||||||
 | 
					                clazz = clazz.getSuperclass(); | 
				
			||||||
 | 
					            } | 
				
			||||||
 | 
					            fieldList.forEach(field -> { | 
				
			||||||
 | 
					                field.setAccessible(true); | 
				
			||||||
 | 
					                Object value; | 
				
			||||||
 | 
					                try { | 
				
			||||||
 | 
					                    value = field.get(obj); | 
				
			||||||
 | 
					                } catch (IllegalAccessException e) { | 
				
			||||||
 | 
					                    throw new ServiceException("获取属性性出错"); | 
				
			||||||
 | 
					                } | 
				
			||||||
 | 
					                if(value instanceof List) { | 
				
			||||||
 | 
					                    List<Map> list = ((List<?>) value).stream().map(ObjectUtils::obj2Map).collect(Collectors.toList()); | 
				
			||||||
 | 
					                    result.put(field.getName(),list); | 
				
			||||||
 | 
					                } | 
				
			||||||
 | 
					                else if(value instanceof LocalDateTime) { | 
				
			||||||
 | 
					                    DateTimeToMap dateTimeToMap = field.getAnnotation(DateTimeToMap.class); | 
				
			||||||
 | 
					                    LocalDateTime time = (LocalDateTime) value; | 
				
			||||||
 | 
					                    if(ObjectUtil.isEmpty(dateTimeToMap)) { | 
				
			||||||
 | 
					                        result.put(field.getName(),time.format(DateUtil.TIME_FORMATTER)); | 
				
			||||||
 | 
					                    } | 
				
			||||||
 | 
					                    else { | 
				
			||||||
 | 
					                        result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"year",time.getYear()); | 
				
			||||||
 | 
					                        result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"month",time.getMonth()); | 
				
			||||||
 | 
					                        result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"day",time.getDayOfMonth()); | 
				
			||||||
 | 
					                        result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"hour",time.getHour()); | 
				
			||||||
 | 
					                        result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"minute",time.getMinute()); | 
				
			||||||
 | 
					                        result.put(dateTimeToMap.prefix()+dateTimeToMap.split()+"second",time.getSecond()); | 
				
			||||||
 | 
					                    } | 
				
			||||||
 | 
					                } | 
				
			||||||
 | 
					            }); | 
				
			||||||
 | 
					            return result; | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					        return null; | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,15 @@ | 
				
			|||||||
 | 
					<License> | 
				
			||||||
 | 
					    <Data> | 
				
			||||||
 | 
					        <Products> | 
				
			||||||
 | 
					            <Product>Aspose.Total for Java</Product> | 
				
			||||||
 | 
					            <Product>Aspose.Words for Java</Product> | 
				
			||||||
 | 
					        </Products> | 
				
			||||||
 | 
					        <EditionType>Enterprise</EditionType> | 
				
			||||||
 | 
					        <SubscriptionExpiry>20991231</SubscriptionExpiry> | 
				
			||||||
 | 
					        <LicenseExpiry>20991231</LicenseExpiry> | 
				
			||||||
 | 
					        <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber> | 
				
			||||||
 | 
					    </Data> | 
				
			||||||
 | 
					    <Signature> | 
				
			||||||
 | 
					        sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU= | 
				
			||||||
 | 
					    </Signature> | 
				
			||||||
 | 
					</License> | 
				
			||||||
									
										Binary file not shown.
									
								
							
						
					Loading…
					
					
				
		Reference in new issue