change HttpMessage location

This commit is contained in:
2022-08-23 16:34:16 +08:00
parent 58402a6400
commit 5d742df466
8 changed files with 36 additions and 34 deletions

View File

@@ -1,7 +1,7 @@
package com.synebula.gaea.app package com.synebula.gaea.app
import com.google.gson.Gson import com.google.gson.Gson
import com.synebula.gaea.app.struct.HttpMessage import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import com.synebula.gaea.log.ILogger import com.synebula.gaea.log.ILogger
import org.springframework.security.core.context.SecurityContextHolder import org.springframework.security.core.context.SecurityContextHolder

View File

@@ -1,7 +1,7 @@
package com.synebula.gaea.app.cmd package com.synebula.gaea.app.cmd
import com.synebula.gaea.app.IApplication import com.synebula.gaea.app.IApplication
import com.synebula.gaea.app.struct.HttpMessage import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import com.synebula.gaea.data.serialization.json.IJsonSerializer import com.synebula.gaea.data.serialization.json.IJsonSerializer
import com.synebula.gaea.domain.service.ICommand import com.synebula.gaea.domain.service.ICommand

View File

@@ -1,7 +1,7 @@
package com.synebula.gaea.app.cmd package com.synebula.gaea.app.cmd
import com.synebula.gaea.app.IApplication import com.synebula.gaea.app.IApplication
import com.synebula.gaea.app.struct.HttpMessage import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import com.synebula.gaea.data.serialization.json.IJsonSerializer import com.synebula.gaea.data.serialization.json.IJsonSerializer
import com.synebula.gaea.domain.model.IAggregateRoot import com.synebula.gaea.domain.model.IAggregateRoot

View File

@@ -1,7 +1,7 @@
package com.synebula.gaea.app.component.security package com.synebula.gaea.app.component.security
import com.synebula.gaea.app.struct.HttpMessage
import com.synebula.gaea.app.struct.exception.TokenCloseExpireException import com.synebula.gaea.app.struct.exception.TokenCloseExpireException
import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import org.springframework.security.authentication.AuthenticationManager import org.springframework.security.authentication.AuthenticationManager
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken import org.springframework.security.authentication.UsernamePasswordAuthenticationToken

View File

@@ -1,6 +1,6 @@
package com.synebula.gaea.app.component.security package com.synebula.gaea.app.component.security
import com.synebula.gaea.app.struct.HttpMessage import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean

View File

@@ -1,7 +1,7 @@
package com.synebula.gaea.app.query package com.synebula.gaea.app.query
import com.synebula.gaea.app.IApplication import com.synebula.gaea.app.IApplication
import com.synebula.gaea.app.struct.HttpMessage import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.query.IQuery import com.synebula.gaea.query.IQuery
import com.synebula.gaea.query.Params import com.synebula.gaea.query.Params
import com.synebula.gaea.spring.aop.annotation.Method import com.synebula.gaea.spring.aop.annotation.Method

View File

@@ -1,7 +1,7 @@
package com.synebula.gaea.spring.aop package com.synebula.gaea.spring.aop
import com.google.gson.Gson import com.google.gson.Gson
import com.synebula.gaea.data.message.DataMessage import com.synebula.gaea.data.message.HttpMessage
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import com.synebula.gaea.exception.NoticeUserException import com.synebula.gaea.exception.NoticeUserException
import com.synebula.gaea.log.ILogger import com.synebula.gaea.log.ILogger
@@ -36,37 +36,37 @@ abstract class AppAspect {
*/ */
@Around("func()") @Around("func()")
fun around(point: ProceedingJoinPoint): Any? { fun around(point: ProceedingJoinPoint): Any? {
val clazz = point.`this`.javaClass //获取实际对象的类型避免获取到父类
val func = point.signature.declaringType.methods.find {
it.name == point.signature.name
}!!//获取声明类型中的方法信息
val funcAnnotations = func.annotations ?: arrayOf()
var funcName = func.name
//遍历方法注解
for (funcAnnotation in funcAnnotations) {
val annotations = funcAnnotation.annotationClass.annotations
//尝试寻找方法注解的处理类
val handler = annotations.find { it is Handler }
if (handler != null && handler is Handler) {
val handleClazz = applicationContext.getBean(handler.value.java)
handleClazz.handle(clazz, func, point.args)
}
if (funcAnnotation is Method)
funcName = funcAnnotation.name
}
return try { return try {
point.proceed() point.proceed()
} catch (ex: Throwable) { } catch (ex: Throwable) {
val clazz = point.`this`.javaClass //获取实际对象的类型避免获取到父类
val func = point.signature.declaringType.methods.find {
it.name == point.signature.name
}!!//获取声明类型中的方法信息
val funcAnnotations = func.annotations ?: arrayOf()
var funcName = func.name
//遍历方法注解
for (funcAnnotation in funcAnnotations) {
val annotations = funcAnnotation.annotationClass.annotations
//尝试寻找方法注解的处理类
val handler = annotations.find { it is Handler }
if (handler != null && handler is Handler) {
val handleClazz = applicationContext.getBean(handler.value.java)
handleClazz.handle(clazz, func, point.args)
}
if (funcAnnotation is Method)
funcName = funcAnnotation.name
}
//找到类的模块名称,否则使用类名 //找到类的模块名称,否则使用类名
var moduleName = clazz.simpleName var moduleName = clazz.simpleName
val module = clazz.annotations.find { it is Module } val module = clazz.annotations.find { it is Module }
if (module != null && module is Module) { if (module != null && module is Module) {
moduleName = module.name moduleName = module.name
} }
var message = "$moduleName - $funcName 异常" var message = "$moduleName - ${funcName}异常"
message = if (ex is NoticeUserException || ex is Error) { message = if (ex is NoticeUserException || ex is Error) {
"$message: ${ex.message}" "$message: ${ex.message}"
} else { } else {
@@ -80,7 +80,7 @@ abstract class AppAspect {
gson.toJson(point.args) gson.toJson(point.args)
}" }"
) )
return gson.toJson(DataMessage<Any>(Status.Error, message)) return HttpMessage(Status.Error, message)
} }
} }
} }

View File

@@ -1,10 +1,12 @@
package com.synebula.gaea.app.struct package com.synebula.gaea.data.message
import com.synebula.gaea.data.serialization.json.IJsonSerializer
import com.google.gson.Gson
import com.synebula.gaea.data.message.DataMessage
class HttpMessage() : DataMessage<Any>() { class HttpMessage() : DataMessage<Any>() {
var serializer: IJsonSerializer? = null
constructor(data: Any) : this() { constructor(data: Any) : this() {
this.data = data this.data = data
} }
@@ -25,6 +27,6 @@ class HttpMessage() : DataMessage<Any>() {
} }
override fun toString(): String { override fun toString(): String {
return Gson().toJson(this) return serializer?.serialize(this) ?: super.toString()
} }
} }