Newer
Older
task-bldg / class.pu
@haya4 haya4 on 1 Aug 2022 4 KB OK: TASK画面
  1. @startuml
  2.  
  3. database "h2" as db {
  4. entity city {
  5. + citycode : VARCHAR 255
  6. cityname : VARCHAR 255
  7. folder : VARCHAR 255
  8. lng : VARCHAR 255
  9. lat :VARCHAR 255
  10. }
  11.  
  12. entity site_user {
  13. + id : BIGINT
  14. active : BOOLEAN
  15. admin : BOOLEAN
  16. email : VARCHAR 255
  17. password : VARCHAR 255
  18. role :VARCHAR 255
  19. username :VARCHAR 20
  20. }
  21.  
  22. entity citymesh {
  23. + citycode : VARCHAR 255
  24. + meshcode : VARCHAR 255
  25. version :VARCHAR 255
  26. path : VARCHAR 255
  27. line : VARCHAR 255
  28. point :VARCHAR 255
  29. city : City@ManyToOne
  30. }
  31.  
  32. city |o--|{ citymesh
  33. entity task {
  34. +currentId : VARCHAR 255
  35. preId : VARCHAR 255
  36. citycode : VARCHAR 255
  37. meshcode : VARCHAR 255
  38. status : Status
  39. username : VARCHAR 255
  40. validator : VARCHAR 255
  41. operation : Operation
  42. updateTime : Date
  43. mesh : @ManyToOne
  44. }
  45. citymesh ||--o{ task
  46. }
  47. note bottom of db : spring.datasource.url=jdbc:h2:./taskdb\nspring.jpa.hibernate.ddl-auto=update
  48.  
  49. class SecurityConfig <<Configuration>> {
  50. - userDetailsService : UserDetailsService
  51. + passwordEncoder() : PasswordEncoder
  52. + configure(WebSecurity)
  53. configure(HttpSecurity)
  54. configure(AuthenticationManagerBuilder)
  55. }
  56.  
  57. class UserDetailsServiceImpl <<Service>> {
  58. - userRepository : SiteUserRepository
  59. + loadUserByUsername(username) : UserDetails
  60. + createUserDetails(:SiteUser) : User
  61. }
  62.  
  63. class SecurityController <<Controller>> {
  64. - userRepository : userRepository
  65. - passwordEncoder : PasswordEncoder
  66. + success()
  67. + showList(loginUser, model)
  68. }
  69.  
  70. class SiteUser <<Entity>> {
  71. + id : Long
  72. - username : String
  73. - email : String@Email
  74. - admin : boolean
  75. - role : String
  76. - active : boolean
  77. }
  78. SiteUser .. site_user
  79.  
  80. class UniqueLoginValidator<UniqueLogin> <<ConstraintValidator>> {
  81. - userRepository : SiteUserRepository
  82. + isValid(String, ConstraintValidatorContext) : boolean
  83. }
  84.  
  85. class UniqueLogin <<Constraint>> {
  86. message() : String
  87. groups() : Class<?>[]
  88. payload() : Class<? extends Payload>[]
  89. }
  90.  
  91. interface SiteUserRepository <<JpaRepository>> {
  92. findByUsername(String)
  93. existsByUsername(String)
  94. }
  95. SecurityConfig ..> UserDetailsServiceImpl
  96. UserDetailsServiceImpl ..> SiteUserRepository
  97. SecurityController ..> SiteUserRepository
  98. UniqueLoginValidator ..> SiteUserRepository
  99. UniqueLogin .. UniqueLoginValidator
  100. SiteUserRepository <|-- SiteUser
  101.  
  102. class City <<Entity>> {
  103. site : static String
  104. + citycode : String@NumberFormat
  105. - cityname : String
  106. - folder : String
  107. - lng : String@NumberFormat
  108. - lat : String@NumberFormat
  109. + setSite(String)
  110. + getSite() : String
  111. + setLng(BigDecimal)
  112. + setLat(BigDecimal)
  113. + setPoint(lng,lat)
  114. + getPoint() : Point
  115. + toString() : String
  116. }
  117. City .. city
  118. City . CityPK : citycode
  119.  
  120. class CityPK {
  121. citycode : String
  122. + equals(Object) : boolean
  123. + hashCode() : int
  124. }
  125.  
  126. interface CityRepository <<JpaRepository>> {
  127. findByCitycode(String) : City
  128. deleteByCitycode(String) : List<City>
  129. }
  130. CityRepository <|-- City
  131.  
  132. class CityController <<Controller>> {
  133. - repository : CityRepository
  134. + showList(model)
  135. + addCity(city)
  136. + process(city, result)
  137. + editCity(id, model)
  138. + deleteCity(id)
  139. }
  140. CityController ..> CityRepository
  141.  
  142. class CitymeshController <<Controller>> {
  143. - repository : CitymeshRepository
  144. + showList(citycode, model)
  145. }
  146. CitymeshController ..> CitymeshRepository
  147.  
  148. interface CitymeshRepository <<JpaRepository>> {
  149. findByCitycode() : List<Citymesh>
  150. }
  151. CitymeshRepository <|-- Citymesh
  152.  
  153. class Citymesh <<Entity>> {
  154. - citycode : String@NumberFormat
  155. - meshcode : String@NumberFormat
  156. version : String
  157. path : String
  158. point : String
  159. line : String
  160. + setPoint(Point)
  161. + setLine(JsonLine)
  162. }
  163. Citymesh .. citymesh
  164. Citymesh . CitymeshPK
  165. class CitymeshPK {
  166. citycode : String
  167. meshcode : String
  168. + equals(Object) : boolean
  169. + hashCode() : int
  170. }
  171.  
  172. class Task <<Entity>> {
  173. + currentId : String
  174. preId : String
  175. - citycode : String@NumberFormat
  176. - meshcode : String@NumberFormat
  177. mesh : Citymesh
  178. status : Status
  179. username : String
  180. validator : String
  181. operation : Operation
  182. updateTime : Date
  183. }
  184. class TaskPK {
  185. currentId : String
  186. + equals(Object) : boolean
  187. + hashCode() : int
  188. }
  189.  
  190. Task .. task
  191. Task . TaskPK
  192.  
  193. interface TaskRepository <<JpaRepository>> {
  194. }
  195.  
  196.  
  197. interface CommandLineRunner
  198.  
  199. class DataLoader <<Component>> {
  200. - repository : CityRepository
  201. + run()
  202. }
  203. DataLoader ..> CityRepository
  204. DataLoader ..> CitymeshRepository
  205.  
  206. CommandLineRunner <|-- DataLoader
  207.  
  208. @enduml