@startuml
skinparam linetype ortho
'skinparam linetype polyline
'top to bottom direction
package "校猫荟流浪猫救助领养平台" {
package "网关(nacous)" {
    package "nacous"
}

package "业务层 (Service)" {
    package "admin" {
'                package "admin.controller"
'                package "admin.service"
'                package "admin.entity"
'                package "admin.mapper"
'                "admin.controller" --> "admin.service"
'                "admin.service" --> "admin.mapper"
'                "admin.mapper" --> "admin.entity"
            }
'    package "renren-fast"{
'    }
    package "volunteer" {
'                package "volunteer.controller"
'                package "volunteer.service"
'                package "volunteer.entity"
'                package "volunteer.mapper"
'                "volunteer.controller" --> "volunteer.service"
'                "volunteer.service" --> "volunteer.mapper"
'                "volunteer.mapper" --> "volunteer.entity"
            }

     package "donate" {
'                package "donate.controller"
'                package "donate.service"
'                package "donate.entity"
'                package "donate.mapper"
'                "donate.controller" --> "donate.service"
'                "donate.service" --> "donate.mapper"
'                "donate.mapper" --> "donate.entity"
            }
     package "user" {
'                package "user.controller"
'                package "user.service"
'                package "user.entity"
'                package "user.mapper"
'                "user.controller" --> "user.service"
'                "user.service" --> "user.mapper"
'                "user.mapper" --> "user.entity"
            }

     package "cat" {
'                package "cat.controller"
'                package "cat.service"
'                package "cat.entity"
'                package "cat.mapper"
'                "cat.controller" --> "cat.service"
'                "cat.service" --> "cat.mapper"
'                "cat.mapper" --> "cat.entity"
            }
     package "Community" {

     }

}

package "数据访问层 (Dao/repository)" {

    package "spring-boot-mybatis-plus"
    package “spring-boot-redis”

}

package "工具层 (common)" {
    package "exception"
    package “utils”
'    package “sql”
'    package “validator”
'    package “srping-security”


}

package "外部系统" {
    package "mysql"
    package “redis”
    package “sms”
    package “cos”
    package “Amap”

}

package "显示层 (View)" {
'  class JwtView
package "客户端"
package "后台管理"
}

"网关(nacous)" -down-> "业务层 (Service)"
'"工具层 (common)" -[hidden]-up-> "业务层 (Service)"
"业务层 (Service)" -down-> "工具层 (common)"

"工具层 (common)" -down-> "数据访问层 (Dao/repository)"
'"数据访问层 (Dao/repository)" -down-> "实体类 (Entity)"
"显示层 (View)" -down-> "网关(nacous)"

“数据访问层 (Dao/repository)” -down-> "外部系统"
}
@enduml