重新命名类型和泛型相关的repo/srv/query

This commit is contained in:
2020-05-22 16:32:05 +08:00
parent 2c1d607d62
commit 9dce935854
10 changed files with 45 additions and 40 deletions

View File

@@ -3,39 +3,37 @@ package com.synebula.zeus.app.config
import com.google.gson.Gson import com.google.gson.Gson
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
import com.synebula.gaea.domain.repository.IGenericRepository
import com.synebula.gaea.domain.repository.IRepository import com.synebula.gaea.domain.repository.IRepository
import com.synebula.gaea.domain.repository.IRepositoryTyped
import com.synebula.gaea.log.ILogger import com.synebula.gaea.log.ILogger
import com.synebula.gaea.mongo.query.MongoGenericQuery
import com.synebula.gaea.mongo.query.MongoQuery import com.synebula.gaea.mongo.query.MongoQuery
import com.synebula.gaea.mongo.query.MongoQueryTyped import com.synebula.gaea.mongo.repository.MongoGenericRepository
import com.synebula.gaea.mongo.repository.MongoRepository import com.synebula.gaea.mongo.repository.MongoRepository
import com.synebula.gaea.mongo.repository.MongoRepositoryTyped import com.synebula.gaea.query.IGenericQuery
import com.synebula.gaea.query.IQuery import com.synebula.gaea.query.IQuery
import com.synebula.gaea.query.IQueryTyped
import org.springframework.boot.web.servlet.FilterRegistrationBean
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Configuration
import org.springframework.data.mongodb.core.MongoTemplate import org.springframework.data.mongodb.core.MongoTemplate
import org.springframework.web.filter.CharacterEncodingFilter
@Configuration @Configuration
open class ZeusBeans { open class ZeusBeans {
@Bean
open fun <T : IAggregateRoot<String>> genericRepository(template: MongoTemplate)
: IGenericRepository<T, String> = MongoGenericRepository(template)
@Bean @Bean
open fun <T : IAggregateRoot<String>> repository(template: MongoTemplate) open fun <T : IAggregateRoot<String>> repository(template: MongoTemplate)
: IRepository<T, String> = MongoRepository(template) : IRepository = MongoRepository(template)
@Bean @Bean
open fun <T : IAggregateRoot<String>> typedRepository(template: MongoTemplate) open fun <T> mongoGenericQuery(template: MongoTemplate)
: IRepositoryTyped = MongoRepositoryTyped(template) : IGenericQuery<T, String> = MongoGenericQuery(template)
@Bean @Bean
open fun <T> mongoQuery(template: MongoTemplate) open fun <T> mongoQuery(template: MongoTemplate, logger: ILogger? = null)
: IQuery<T, String> = MongoQuery(template) : IQuery = MongoQuery(template, logger)
@Bean
open fun <T> mongoTypedQuery(template: MongoTemplate, logger: ILogger? = null)
: IQueryTyped = MongoQueryTyped(template, logger)
@Bean @Bean
open fun gson(): Gson = Gson() open fun gson(): Gson = Gson()

View File

@@ -1,8 +1,8 @@
package com.synebula.zeus.app.controller.rbac package com.synebula.zeus.app.controller.rbac
import com.synebula.gaea.app.UnionTypedApp import com.synebula.gaea.app.UnionApp
import com.synebula.gaea.log.ILogger import com.synebula.gaea.log.ILogger
import com.synebula.gaea.query.IQueryTyped import com.synebula.gaea.query.IQuery
import com.synebula.zeus.domain.service.cmd.rbac.RoleCmd import com.synebula.zeus.domain.service.cmd.rbac.RoleCmd
import com.synebula.zeus.domain.service.contr.rbac.IRoleService import com.synebula.zeus.domain.service.contr.rbac.IRoleService
import com.synebula.zeus.query.view.RoleView import com.synebula.zeus.query.view.RoleView
@@ -13,9 +13,9 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/roles") @RequestMapping("/roles")
class RoleApp( class RoleApp(
service: IRoleService, service: IRoleService,
query: IQueryTyped, query: IQuery,
logger: ILogger logger: ILogger
) : UnionTypedApp<RoleCmd, RoleView, String>( ) : UnionApp<RoleCmd, RoleView, String>(
"用户信息", RoleView::class.java, "用户信息", RoleView::class.java,
service, query, logger service, query, logger
) )

View File

@@ -1,9 +1,9 @@
package com.synebula.zeus.app.controller.rbac package com.synebula.zeus.app.controller.rbac
import com.synebula.gaea.app.UnionTypedApp import com.synebula.gaea.app.UnionApp
import com.synebula.gaea.app.component.HttpMessage import com.synebula.gaea.app.component.HttpMessage
import com.synebula.gaea.log.ILogger import com.synebula.gaea.log.ILogger
import com.synebula.gaea.query.IQueryTyped import com.synebula.gaea.query.IQuery
import com.synebula.zeus.app.component.IUserAdded import com.synebula.zeus.app.component.IUserAdded
import com.synebula.zeus.domain.service.cmd.rbac.UserCmd import com.synebula.zeus.domain.service.cmd.rbac.UserCmd
import com.synebula.zeus.domain.service.contr.rbac.IUserService import com.synebula.zeus.domain.service.contr.rbac.IUserService
@@ -18,9 +18,9 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/users") @RequestMapping("/users")
class UserApp( class UserApp(
service: IUserService, service: IUserService,
query: IQueryTyped, query: IQuery,
logger: ILogger logger: ILogger
) : UnionTypedApp<UserCmd, UserView, String>( ) : UnionApp<UserCmd, UserView, String>(
"用户信息", UserView::class.java, "用户信息", UserView::class.java,
service, query, logger service, query, logger
) { ) {

View File

@@ -7,7 +7,7 @@
<!-- 文件输出格式 --> <!-- 文件输出格式 -->
<property name="format" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n"/> <property name="format" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n"/>
<!--日志路径--> <!--日志路径-->
<property name="path" value="./logs/evaluation"/> <property name="path" value="./logs/zeus"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout"> <layout class="ch.qos.logback.classic.PatternLayout">
@@ -31,7 +31,7 @@
</layout> </layout>
</appender> </appender>
<root level="info"> <root level="warn">
<appender-ref ref="file"/> <appender-ref ref="file"/>
</root> </root>
</configuration> </configuration>

View File

@@ -7,5 +7,5 @@ class User(override var id: String? = null) : AggregateRoot<String>() {
var password: String = "" var password: String = ""
var realName: String? = null var realName: String? = null
var phone: String? = null var phone: String? = null
var roleId: String = "" var role: String = ""
} }

View File

@@ -8,4 +8,5 @@ class UserCmd : Command() {
var password = "" var password = ""
var realName: String? = null var realName: String? = null
var phone: String? = null var phone: String? = null
var role: String? = null
} }

View File

@@ -7,5 +7,7 @@ import com.synebula.gaea.log.ILogger
import com.synebula.zeus.domain.model.rbac.Role import com.synebula.zeus.domain.model.rbac.Role
import com.synebula.zeus.domain.service.contr.rbac.IRoleService import com.synebula.zeus.domain.service.contr.rbac.IRoleService
class RoleService(repository: IRepository<Role, String>, converter: IObjectConverter, logger: ILogger) : class RoleService(
Service<Role, String>(Role::class.java, repository, converter, logger), IRoleService repository: IRepository,
converter: IObjectConverter, logger: ILogger
) : Service<Role, String>(Role::class.java, repository, converter, logger), IRoleService

View File

@@ -5,18 +5,18 @@ import com.synebula.gaea.data.message.Message
import com.synebula.gaea.domain.repository.IRepository import com.synebula.gaea.domain.repository.IRepository
import com.synebula.gaea.domain.service.ICommand import com.synebula.gaea.domain.service.ICommand
import com.synebula.gaea.domain.service.Service import com.synebula.gaea.domain.service.Service
import com.synebula.gaea.extension.toMd5 import com.synebula.gaea.extension.*
import com.synebula.gaea.log.ILogger import com.synebula.gaea.log.ILogger
import com.synebula.zeus.domain.model.rbac.User import com.synebula.zeus.domain.model.rbac.User
import com.synebula.zeus.domain.service.contr.rbac.IUserService import com.synebula.zeus.domain.service.contr.rbac.IUserService
class UserService(repository: IRepository<User, String>, converter: IObjectConverter, logger: ILogger) : class UserService(repository: IRepository, converter: IObjectConverter, logger: ILogger) :
Service<User, String>(User::class.java, repository, converter, logger), IUserService { Service<User, String>(User::class.java, repository, converter, logger), IUserService {
override fun add(command: ICommand): Message<String> { override fun add(command: ICommand): Message<String> {
val user = this.convert(command) val user = this.convert(command)
user.password = user.password.toMd5() user.password = user.password.toMd5()
user.alive = false user.alive = false
this.repository.add(user) this.repository.add(user, this.clazz)
return Message(user.id!!) return Message(user.id!!)
} }
@@ -26,10 +26,10 @@ class UserService(repository: IRepository<User, String>, converter: IObjectConve
* @param key 用户ID * @param key 用户ID
*/ */
override fun active(key: String) { override fun active(key: String) {
val user = this.repository.get(key) val user = this.repository.get(key, this.clazz)
if (!user.alive) { if (!user.alive) {
user.alive = true user.alive = true
this.repository.update(user) this.repository.update(user, this.clazz)
} }
} }
} }

View File

@@ -3,6 +3,7 @@ package com.synebula.zeus.query.impl
import com.synebula.gaea.data.message.Message import com.synebula.gaea.data.message.Message
import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.message.Status
import com.synebula.gaea.extension.toMd5 import com.synebula.gaea.extension.toMd5
import com.synebula.gaea.mongo.query.MongoGenericQuery
import com.synebula.gaea.mongo.query.MongoQuery import com.synebula.gaea.mongo.query.MongoQuery
import com.synebula.zeus.query.contr.IUserQuery import com.synebula.zeus.query.contr.IUserQuery
import com.synebula.zeus.query.view.UserView import com.synebula.zeus.query.view.UserView
@@ -11,15 +12,16 @@ import org.springframework.data.mongodb.core.query.Criteria
import org.springframework.data.mongodb.core.query.Query import org.springframework.data.mongodb.core.query.Query
import org.springframework.data.mongodb.core.query.isEqualTo import org.springframework.data.mongodb.core.query.isEqualTo
class UserQuery(template: MongoTemplate) class UserQuery(template: MongoTemplate) :
: MongoQuery<UserView>("user", UserView::class.java, template), IUserQuery { MongoGenericQuery<UserView>("user", UserView::class.java, template), IUserQuery {
override fun signIn(name: String, password: String): Message<String> { override fun signIn(name: String, password: String): Message<String> {
this.check() this.check()
val query = Query.query( val query = Query.query(
Criteria.where("name").isEqualTo(name) Criteria.where("name").isEqualTo(name)
.and("password").isEqualTo(password) .and("password").isEqualTo(password.toMd5())
.and("alive").isEqualTo(true)) .and("alive").isEqualTo(true)
)
val user = this.template.findOne(query, this.clazz!!) val user = this.template.findOne(query, this.clazz!!)
return if (user != null) return if (user != null)
Message(user.id) Message(user.id)

View File

@@ -5,9 +5,11 @@ class UserView {
var name: String = "" var name: String = ""
var password: String = ""
var realName: String? = null var realName: String? = null
var phone: String? = null var phone: String? = null
var role: RoleView? = null var role: String? = null
} }