Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
112Lst
coder_club
比较版本
c0abcacaa72cd33412926ad33a7e079792aa5b3c...1c288e1c9d6ca36fc169a7018fd2795c775cc814
C
coder_club
项目概览
112Lst
/
coder_club
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
coder_club
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
源分支
1c288e1c9d6ca36fc169a7018fd2795c775cc814
选择Git版本
...
目标分支
c0abcacaa72cd33412926ad33a7e079792aa5b3c
选择Git版本
比较
Commits (2)
https://gitcode.net/weixin_57203989/coder_club/-/commit/d6cf2f662a1655e097e456dfca5757ce0141ab58
【change】优化
2024-04-26T17:27:13+08:00
weixin_57203989
weixin_57203989@gitcode.net
https://gitcode.net/weixin_57203989/coder_club/-/commit/1c288e1c9d6ca36fc169a7018fd2795c775cc814
【change】分类标签优化
2024-04-29T13:54:51+08:00
weixin_57203989
weixin_57203989@gitcode.net
隐藏空白更改
内联
并排
Showing
30 changed file
with
325 addition
and
20 deletion
+325
-20
club-auth/club-auth-application/club-auth-application-controller/src/main/java/com/lssst/auth/application/controller/UserController.java
...com/lssst/auth/application/controller/UserController.java
+38
-3
club-auth/club-auth-application/club-auth-application-controller/src/main/java/com/lssst/auth/application/convert/AuthUserDTOConverter.java
.../lssst/auth/application/convert/AuthUserDTOConverter.java
+3
-0
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/convert/AuthUserBOConverter.java
...va/com/lssst/auth/domain/convert/AuthUserBOConverter.java
+3
-0
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/AuthUserDomainService.java
.../com/lssst/auth/domain/service/AuthUserDomainService.java
+3
-1
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/impl/AuthUserDomainServiceImpl.java
...t/auth/domain/service/impl/AuthUserDomainServiceImpl.java
+23
-4
club-auth/club-auth-infra/src/main/java/com/lssst/auth/infra/basic/service/AuthUserService.java
...a/com/lssst/auth/infra/basic/service/AuthUserService.java
+8
-0
club-auth/club-auth-infra/src/main/java/com/lssst/auth/infra/basic/service/impl/AuthUserServiceImpl.java
...st/auth/infra/basic/service/impl/AuthUserServiceImpl.java
+7
-0
club-auth/club-auth-infra/src/main/resources/mapper/AuthUserDao.xml
...club-auth-infra/src/main/resources/mapper/AuthUserDao.xml
+0
-1
club-gateway/pom.xml
club-gateway/pom.xml
+18
-2
club-gateway/src/main/java/com/lssst/club/gateway/auth/SaTokenConfigure.java
...in/java/com/lssst/club/gateway/auth/SaTokenConfigure.java
+1
-1
club-oss/src/main/java/com/lssst/oss/adapter/AliStorageAdapter.java
...rc/main/java/com/lssst/oss/adapter/AliStorageAdapter.java
+6
-1
club-oss/src/main/java/com/lssst/oss/adapter/MinioStorageAdapter.java
.../main/java/com/lssst/oss/adapter/MinioStorageAdapter.java
+7
-0
club-oss/src/main/java/com/lssst/oss/adapter/StorageAdapter.java
...s/src/main/java/com/lssst/oss/adapter/StorageAdapter.java
+1
-1
club-oss/src/main/java/com/lssst/oss/controller/FileController.java
...rc/main/java/com/lssst/oss/controller/FileController.java
+16
-0
club-oss/src/main/java/com/lssst/oss/service/FileService.java
...-oss/src/main/java/com/lssst/oss/service/FileService.java
+15
-0
club-oss/src/main/java/com/lssst/oss/util/MinioUtil.java
club-oss/src/main/java/com/lssst/oss/util/MinioUtil.java
+11
-1
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/controller/SubjectCategoryController.java
...ect/application/controller/SubjectCategoryController.java
+31
-0
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/controller/SubjectController.java
...sst/subject/application/controller/SubjectController.java
+2
-2
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/converter/SubjectCategoryDTOConverter.java
...ct/application/converter/SubjectCategoryDTOConverter.java
+2
-0
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/dto/SubjectCategoryDTO.java
...com/lssst/subject/application/dto/SubjectCategoryDTO.java
+12
-0
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/dto/SubjectInfoDTO.java
...ava/com/lssst/subject/application/dto/SubjectInfoDTO.java
+2
-1
club-subject/club-common/src/main/java/com/lssst/subject/common/entity/PageInfo.java
...c/main/java/com/lssst/subject/common/entity/PageInfo.java
+3
-0
club-subject/club-domain/src/main/java/com/lssst/subject/domain/entity/SubjectCategoryBO.java
...va/com/lssst/subject/domain/entity/SubjectCategoryBO.java
+12
-0
club-subject/club-domain/src/main/java/com/lssst/subject/domain/service/SubjectCategoryDomainServie.java
...t/subject/domain/service/SubjectCategoryDomainServie.java
+6
-0
club-subject/club-domain/src/main/java/com/lssst/subject/domain/service/impl/SubjectCategoryDomainServiceImpl.java
...domain/service/impl/SubjectCategoryDomainServiceImpl.java
+59
-1
club-subject/club-infra/src/main/java/com/lssst/subject/infra/basic/mapper/SubjectCategoryDao.java
.../lssst/subject/infra/basic/mapper/SubjectCategoryDao.java
+1
-1
club-subject/club-infra/src/main/java/com/lssst/subject/infra/basic/service/SubjectCategoryService.java
...t/subject/infra/basic/service/SubjectCategoryService.java
+2
-0
club-subject/club-infra/src/main/java/com/lssst/subject/infra/basic/service/impl/SubjectCategoryServiceImpl.java
.../infra/basic/service/impl/SubjectCategoryServiceImpl.java
+5
-0
club-subject/club-infra/src/main/resources/mapper/SubjectCategoryDao.xml
...ub-infra/src/main/resources/mapper/SubjectCategoryDao.xml
+9
-0
club-wx/pom.xml
club-wx/pom.xml
+19
-0
未找到文件。
club-auth/club-auth-application/club-auth-application-controller/src/main/java/com/lssst/auth/application/controller/UserController.java
浏览文件 @
1c288e1c
...
...
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
@RestController
@RequestMapping
(
"/user/"
)
@Slf4j
...
...
@@ -61,6 +62,41 @@ public class UserController {
}
}
/**
* 获取用户信息
*/
@RequestMapping
(
"getUserInfo"
)
public
Result
<
AuthUserDTO
>
getUserInfo
(
@RequestBody
AuthUserDTO
authUserDTO
)
{
try
{
if
(
log
.
isInfoEnabled
())
{
log
.
info
(
"UserController.getUserInfo.dto:{}"
,
JSON
.
toJSONString
(
authUserDTO
));
}
Preconditions
.
checkArgument
(!
StringUtils
.
isBlank
(
authUserDTO
.
getUserName
()),
"用户名不能为空"
);
AuthUserBO
authUserBO
=
AuthUserDTOConverter
.
INSTANCE
.
convertDTOToBO
(
authUserDTO
);
AuthUserBO
userInfo
=
authUserDomainService
.
getUserInfo
(
authUserBO
);
return
Result
.
ok
(
AuthUserDTOConverter
.
INSTANCE
.
convertBOToDTO
(
userInfo
));
}
catch
(
Exception
e
)
{
log
.
error
(
"UserController.update.error:{}"
,
e
.
getMessage
(),
e
);
return
Result
.
fail
(
"获取用户信息失败"
);
}
}
/**
* 用户退出
*/
@RequestMapping
(
"logOut"
)
public
Result
logOut
(
@RequestParam
String
userName
)
{
try
{
log
.
info
(
"UserController.logOut.userName:{}"
,
userName
);
Preconditions
.
checkArgument
(!
StringUtils
.
isBlank
(
userName
),
"用户名不能为空"
);
StpUtil
.
logout
(
userName
);
return
Result
.
ok
();
}
catch
(
Exception
e
)
{
log
.
error
(
"UserController.logOut.error:{}"
,
e
.
getMessage
(),
e
);
return
Result
.
fail
(
"用户登出失败"
);
}
}
/**
* 删除用户
*/
...
...
@@ -105,9 +141,9 @@ public class UserController {
@RequestMapping
(
"doLogin"
)
public
Result
<
SaTokenInfo
>
doLogin
(
@RequestParam
(
"validCode"
)
String
validCode
)
{
try
{
Preconditions
.
checkArgument
(!
StringUtils
.
isBlank
(
validCode
),
"验证码不能为空!"
);
Preconditions
.
checkArgument
(!
StringUtils
.
isBlank
(
validCode
),
"验证码不能为空!"
);
return
Result
.
ok
(
authUserDomainService
.
doLogin
(
validCode
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"UserController.doLogin.error:{}"
,
e
.
getMessage
(),
e
);
return
Result
.
fail
(
"用户登录失败"
);
}
...
...
@@ -119,6 +155,5 @@ public class UserController {
return
"当前会话是否登录:"
+
StpUtil
.
isLogin
();
}
}
club-auth/club-auth-application/club-auth-application-controller/src/main/java/com/lssst/auth/application/convert/AuthUserDTOConverter.java
浏览文件 @
1c288e1c
...
...
@@ -14,8 +14,11 @@ import java.util.List;
@Mapper
public
interface
AuthUserDTOConverter
{
AuthUserDTOConverter
INSTANCE
=
Mappers
.
getMapper
(
AuthUserDTOConverter
.
class
);
AuthUserBO
convertDTOToBO
(
AuthUserDTO
authUserDTO
);
AuthUserDTO
convertBOToDTO
(
AuthUserBO
authUserBO
);
}
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/convert/AuthUserBOConverter.java
浏览文件 @
1c288e1c
...
...
@@ -15,4 +15,7 @@ public interface AuthUserBOConverter {
AuthUser
convertBOToEntity
(
AuthUserBO
authUserBO
);
AuthUserBO
convertEntityToBO
(
AuthUser
authUser
);
}
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/AuthUserDomainService.java
浏览文件 @
1c288e1c
...
...
@@ -9,7 +9,6 @@ import java.util.List;
* 用户领域service
*/
public
interface
AuthUserDomainService
{
/**
* 注册
*/
...
...
@@ -26,4 +25,7 @@ public interface AuthUserDomainService {
Boolean
delete
(
AuthUserBO
authUserBO
);
SaTokenInfo
doLogin
(
String
validCode
);
AuthUserBO
getUserInfo
(
AuthUserBO
authUserBO
);
}
club-auth/club-auth-domain/src/main/java/com/lssst/auth/domain/service/impl/AuthUserDomainServiceImpl.java
浏览文件 @
1c288e1c
...
...
@@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.LinkedList
;
...
...
@@ -55,11 +56,17 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
private
static
final
String
LOGIN_PREFIX
=
"loginCode"
;
@Override
@SneakyThrows
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
register
(
AuthUserBO
authUserBO
)
{
//校验用户是否存在
AuthUser
existAuthUser
=
new
AuthUser
();
existAuthUser
.
setUserName
(
authUserBO
.
getUserName
());
List
<
AuthUser
>
existUser
=
authUserService
.
queryByCondition
(
existAuthUser
);
if
(
existUser
.
size
()
>
0
)
{
return
true
;
}
AuthUser
authUser
=
AuthUserBOConverter
.
INSTANCE
.
convertBOToEntity
(
authUserBO
);
if
(
StringUtils
.
isNotBlank
(
authUser
.
getPassword
()))
{
authUser
.
setPassword
(
SaSecureUtil
.
md5BySalt
(
authUser
.
getPassword
(),
salt
));
...
...
@@ -79,7 +86,7 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
authUserRole
.
setRoleId
(
roleId
);
authUserRole
.
setIsDeleted
(
IsDeletedFlagEnum
.
UN_DELETED
.
getCode
());
authUserRoleService
.
insert
(
authUserRole
);
//构造Redis键,将角色列表放入
String
roleKey
=
redisUtil
.
buildKey
(
authRolePrefix
,
authUser
.
getUserName
());
List
<
AuthRole
>
roleList
=
new
LinkedList
<>();
roleList
.
add
(
authRole
);
...
...
@@ -100,8 +107,6 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
return
count
>
0
;
}
@Override
public
Boolean
update
(
AuthUserBO
authUserBO
)
{
AuthUser
authUser
=
AuthUserBOConverter
.
INSTANCE
.
convertBOToEntity
(
authUserBO
);
...
...
@@ -119,6 +124,8 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
//有任何的更新,都要与缓存进行同步的修改
return
count
>
0
;
}
@Override
public
SaTokenInfo
doLogin
(
String
validCode
)
{
String
loginKey
=
redisUtil
.
buildKey
(
LOGIN_PREFIX
,
validCode
);
String
openId
=
redisUtil
.
get
(
loginKey
);
...
...
@@ -133,5 +140,17 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
return
tokenInfo
;
}
@Override
public
AuthUserBO
getUserInfo
(
AuthUserBO
authUserBO
)
{
AuthUser
authUser
=
new
AuthUser
();
authUser
.
setUserName
(
authUserBO
.
getUserName
());
List
<
AuthUser
>
userList
=
authUserService
.
queryByCondition
(
authUser
);
if
(
CollectionUtils
.
isEmpty
(
userList
)){
return
new
AuthUserBO
();
}
AuthUser
user
=
userList
.
get
(
0
);
return
AuthUserBOConverter
.
INSTANCE
.
convertEntityToBO
(
user
);
}
}
club-auth/club-auth-infra/src/main/java/com/lssst/auth/infra/basic/service/AuthUserService.java
浏览文件 @
1c288e1c
...
...
@@ -3,6 +3,8 @@ package com.lssst.auth.infra.basic.service;
import
com.lssst.auth.infra.basic.entity.AuthUser
;
import
java.util.List
;
/**
* (AuthUser)表服务接口
*
...
...
@@ -43,4 +45,10 @@ public interface AuthUserService {
*/
boolean
deleteById
(
Long
id
);
/**
* 根据条件查询数量
*/
List
<
AuthUser
>
queryByCondition
(
AuthUser
authUser
);
}
club-auth/club-auth-infra/src/main/java/com/lssst/auth/infra/basic/service/impl/AuthUserServiceImpl.java
浏览文件 @
1c288e1c
...
...
@@ -7,6 +7,7 @@ import com.lssst.auth.infra.basic.service.AuthUserService;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* (AuthUser)表服务实现类
...
...
@@ -62,4 +63,10 @@ public class AuthUserServiceImpl implements AuthUserService {
public
boolean
deleteById
(
Long
id
)
{
return
this
.
authUserDao
.
deleteById
(
id
)
>
0
;
}
@Override
public
List
<
AuthUser
>
queryByCondition
(
AuthUser
authUser
)
{
return
this
.
authUserDao
.
queryAllByLimit
(
authUser
);
}
}
club-auth/club-auth-infra/src/main/resources/mapper/AuthUserDao.xml
浏览文件 @
1c288e1c
...
...
@@ -84,7 +84,6 @@
and is_deleted = #{isDeleted}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
...
...
club-gateway/pom.xml
浏览文件 @
1c288e1c
...
...
@@ -103,8 +103,6 @@
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>
central
</id>
...
...
@@ -120,5 +118,23 @@
</repository>
</repositories>
<build>
<finalName>
${project.artifactId}
</finalName>
<!--打包成jar包时的名字-->
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
2.3.0.RELEASE
</version>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
club-gateway/src/main/java/com/lssst/club/gateway/auth/SaTokenConfigure.java
浏览文件 @
1c288e1c
...
...
@@ -22,7 +22,7 @@ public class SaTokenConfigure {
.
setAuth
(
obj
->
{
System
.
out
.
println
(
"-------- 前端访问path:"
+
SaHolder
.
getRequest
().
getRequestPath
());
// 登录校验 -- 拦截所有路由,并排除/user/doLogin 用于开放登录
SaRouter
.
match
(
"/auth/**"
,
"/auth/user/doLogin"
,
r
->
StpUtil
.
checkRole
(
"admin"
));
//
SaRouter.match("/auth/**", "/auth/user/doLogin", r -> StpUtil.checkRole("admin"));
SaRouter
.
match
(
"/oss/**"
,
r
->
StpUtil
.
checkLogin
());
SaRouter
.
match
(
"/subject/subject/add"
,
r
->
StpUtil
.
checkPermission
(
"subject:add"
));
SaRouter
.
match
(
"/subject/**"
,
r
->
StpUtil
.
checkLogin
());
...
...
club-oss/src/main/java/com/lssst/oss/adapter/AliStorageAdapter.java
浏览文件 @
1c288e1c
...
...
@@ -11,7 +11,6 @@ import java.util.List;
* 阿里云oss适配器
*/
public
class
AliStorageAdapter
implements
StorageAdapter
{
@Override
public
void
createBucket
(
String
bucket
)
{
...
...
@@ -48,5 +47,11 @@ public class AliStorageAdapter implements StorageAdapter {
public
void
deleteObject
(
String
bucket
,
String
objectName
)
{
}
@Override
public
String
getUrl
(
String
bucket
,
String
objectName
)
{
return
null
;
}
}
club-oss/src/main/java/com/lssst/oss/adapter/MinioStorageAdapter.java
浏览文件 @
1c288e1c
...
...
@@ -65,5 +65,12 @@ public class MinioStorageAdapter implements StorageAdapter {
minioUtil
.
deleteObject
(
bucket
,
objectName
);
}
@Override
@SneakyThrows
public
String
getUrl
(
String
bucket
,
String
objectName
)
{
return
minioUtil
.
getPreviewFileUrl
(
bucket
,
objectName
);
}
}
club-oss/src/main/java/com/lssst/oss/adapter/StorageAdapter.java
浏览文件 @
1c288e1c
...
...
@@ -10,7 +10,6 @@ import java.util.List;
* 文件存储适配器
*/
public
interface
StorageAdapter
{
/**
* 创建bucket桶
*/
...
...
@@ -46,6 +45,7 @@ public interface StorageAdapter {
*/
void
deleteObject
(
String
bucket
,
String
objectName
);
String
getUrl
(
String
bucket
,
String
objectName
);
}
club-oss/src/main/java/com/lssst/oss/controller/FileController.java
浏览文件 @
1c288e1c
...
...
@@ -4,6 +4,7 @@ package com.lssst.oss.controller;
import
com.lssst.oss.service.FileService
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
java.util.List
;
...
...
@@ -22,4 +23,19 @@ public class FileController {
return
allBucket
.
get
(
0
);
}
@RequestMapping
(
"/getUrl"
)
public
String
getUrl
(
String
bucketName
,
String
objectName
)
throws
Exception
{
return
fileService
.
getUrl
(
bucketName
,
objectName
);
}
/**
* 上传文件
*/
@RequestMapping
(
"/upload"
)
public
String
upload
(
MultipartFile
uploadFile
,
String
bucket
,
String
objectName
)
throws
Exception
{
return
fileService
.
uploadFile
(
uploadFile
,
bucket
,
objectName
);
}
}
club-oss/src/main/java/com/lssst/oss/service/FileService.java
浏览文件 @
1c288e1c
...
...
@@ -2,6 +2,7 @@ package com.lssst.oss.service;
import
com.lssst.oss.adapter.StorageAdapter
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
@Service
...
...
@@ -20,5 +21,19 @@ public class FileService {
return
storageAdapter
.
getAllBucket
();
}
/**
* 获取文件路径
*/
public
String
getUrl
(
String
bucketName
,
String
objectName
)
{
return
storageAdapter
.
getUrl
(
bucketName
,
objectName
);
}
/**
* 上传文件
*/
public
String
uploadFile
(
MultipartFile
uploadFile
,
String
bucket
,
String
objectName
){
storageAdapter
.
uploadFile
(
uploadFile
,
bucket
,
objectName
);
return
storageAdapter
.
getUrl
(
bucket
,
objectName
);
}
}
club-oss/src/main/java/com/lssst/oss/util/MinioUtil.java
浏览文件 @
1c288e1c
...
...
@@ -3,6 +3,7 @@ package com.lssst.oss.util;
import
com.lssst.oss.entity.FileInfo
;
import
io.minio.*
;
import
io.minio.errors.*
;
import
io.minio.http.Method
;
import
io.minio.messages.Bucket
;
import
io.minio.messages.Item
;
import
org.springframework.stereotype.Component
;
...
...
@@ -21,7 +22,6 @@ import java.util.stream.Collectors;
*/
@Component
public
class
MinioUtil
{
@Resource
private
MinioClient
minioClient
;
...
...
@@ -96,5 +96,15 @@ public class MinioUtil {
);
}
/**
* 获取文件url
*/
public
String
getPreviewFileUrl
(
String
bucketName
,
String
objectName
)
throws
Exception
{
GetPresignedObjectUrlArgs
args
=
GetPresignedObjectUrlArgs
.
builder
()
.
method
(
Method
.
GET
)
.
bucket
(
bucketName
).
object
(
objectName
).
build
();
return
minioClient
.
getPresignedObjectUrl
(
args
);
}
}
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/controller/SubjectCategoryController.java
浏览文件 @
1c288e1c
...
...
@@ -3,7 +3,9 @@ package com.lssst.subject.application.controller;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.base.Preconditions
;
import
com.lssst.subject.application.converter.SubjectCategoryDTOConverter
;
import
com.lssst.subject.application.converter.SubjectLabelDTOConverter
;
import
com.lssst.subject.application.dto.SubjectCategoryDTO
;
import
com.lssst.subject.application.dto.SubjectLabelDTO
;
import
com.lssst.subject.common.entity.Result
;
import
com.lssst.subject.domain.entity.SubjectCategoryBO
;
import
com.lssst.subject.domain.service.SubjectCategoryDomainServie
;
...
...
@@ -12,6 +14,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
...
...
@@ -127,4 +130,32 @@ public class SubjectCategoryController {
}
/**
* 查询分类及标签一次性
*/
@PostMapping
(
"/queryCategoryAndLabel"
)
public
Result
<
List
<
SubjectCategoryDTO
>>
queryCategoryAndLabel
(
@RequestBody
SubjectCategoryDTO
subjectCategoryDTO
)
{
try
{
if
(
log
.
isInfoEnabled
())
{
log
.
info
(
"SubjectCategoryController.queryCategoryAndLabel.dto:{}"
,
JSON
.
toJSONString
(
subjectCategoryDTO
));
}
Preconditions
.
checkNotNull
(
subjectCategoryDTO
.
getId
(),
"分类id不能为空"
);
SubjectCategoryBO
subjectCategoryBO
=
SubjectCategoryDTOConverter
.
INSTANCE
.
convertDtoToCategoryBO
(
subjectCategoryDTO
);
List
<
SubjectCategoryBO
>
subjectCategoryBOList
=
subjectCategoryDomainService
.
queryCategoryAndLabel
(
subjectCategoryBO
);
List
<
SubjectCategoryDTO
>
dtoList
=
new
LinkedList
<>();
subjectCategoryBOList
.
forEach
(
bo
->
{
SubjectCategoryDTO
dto
=
SubjectCategoryDTOConverter
.
INSTANCE
.
convertBoToCategoryDTO
(
bo
);
List
<
SubjectLabelDTO
>
labelDTOList
=
SubjectLabelDTOConverter
.
INSTANCE
.
convertBOToLabelDTOList
(
bo
.
getLabelBOList
());
dto
.
setLabelDTOList
(
labelDTOList
);
dtoList
.
add
(
dto
);
});
return
Result
.
ok
(
dtoList
);
}
catch
(
Exception
e
)
{
log
.
error
(
"SubjectCategoryController.queryPrimaryCategory.error:{}"
,
e
.
getMessage
(),
e
);
return
Result
.
fail
(
"查询失败"
);
}
}
}
\ No newline at end of file
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/controller/SubjectController.java
浏览文件 @
1c288e1c
...
...
@@ -26,7 +26,6 @@ import java.util.List;
@Slf4j
@RequestMapping
(
"/subject"
)
public
class
SubjectController
{
@Resource
private
SubjectInfoDomainService
subjectInfoDomainService
;
...
...
@@ -73,6 +72,8 @@ public class SubjectController {
Preconditions
.
checkNotNull
(
subjectInfoDTO
.
getCategoryId
(),
"分类id不能为空"
);
Preconditions
.
checkNotNull
(
subjectInfoDTO
.
getLabelId
(),
"标签id不能为空"
);
SubjectInfoBO
subjectInfoBO
=
SubjectInfoDTOConverter
.
INSTANCE
.
convertDTOToBO
(
subjectInfoDTO
);
subjectInfoBO
.
setPageNo
(
subjectInfoDTO
.
getPageNo
());
subjectInfoBO
.
setPageSize
(
subjectInfoDTO
.
getPageSize
());
PageResult
<
SubjectInfoBO
>
boPageResult
=
subjectInfoDomainService
.
getSubjectPage
(
subjectInfoBO
);
return
Result
.
ok
(
boPageResult
);
}
catch
(
Exception
e
)
{
...
...
@@ -101,6 +102,5 @@ public class SubjectController {
}
}
}
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/converter/SubjectCategoryDTOConverter.java
浏览文件 @
1c288e1c
...
...
@@ -18,5 +18,7 @@ public interface SubjectCategoryDTOConverter {
SubjectCategoryBO
convertDtoToCategoryBO
(
SubjectCategoryDTO
subjectCategoryDTO
);
SubjectCategoryDTO
convertBoToCategoryDTO
(
SubjectCategoryBO
subjectCategoryBO
);
}
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/dto/SubjectCategoryDTO.java
浏览文件 @
1c288e1c
...
...
@@ -3,6 +3,7 @@ package com.lssst.subject.application.dto;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
public
class
SubjectCategoryDTO
implements
Serializable
{
...
...
@@ -32,4 +33,15 @@ public class SubjectCategoryDTO implements Serializable {
*/
private
Long
parentId
;
/**
* 数量
*/
private
Integer
count
;
/**
* 标签信息
*/
private
List
<
SubjectLabelDTO
>
labelDTOList
;
}
club-subject/club-application/club-application-controller/src/main/java/com/lssst/subject/application/dto/SubjectInfoDTO.java
浏览文件 @
1c288e1c
package
com.lssst.subject.application.dto
;
import
com.lssst.subject.common.entity.PageInfo
;
import
lombok.Data
;
import
java.io.Serializable
;
...
...
@@ -11,7 +12,7 @@ import java.util.List;
* 题目dto
*/
@Data
public
class
SubjectInfoDTO
implements
Serializable
{
public
class
SubjectInfoDTO
extends
PageInfo
implements
Serializable
{
/**
* 主键
...
...
club-subject/club-common/src/main/java/com/lssst/subject/common/entity/PageInfo.java
浏览文件 @
1c288e1c
package
com.lssst.subject.common.entity
;
import
lombok.Data
;
/**
* 分页请求实体
*/
@Data
public
class
PageInfo
{
private
Integer
pageNo
=
1
;
...
...
club-subject/club-domain/src/main/java/com/lssst/subject/domain/entity/SubjectCategoryBO.java
浏览文件 @
1c288e1c
...
...
@@ -3,6 +3,7 @@ package com.lssst.subject.domain.entity;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 题目分类(SubjectCategory)实体类
...
...
@@ -35,5 +36,16 @@ public class SubjectCategoryBO implements Serializable {
*/
private
Long
parentId
;
/**
* 数量
*/
private
Integer
count
;
/**
* 标签bo数量
*/
private
List
<
SubjectLabelBO
>
labelBOList
;
}
club-subject/club-domain/src/main/java/com/lssst/subject/domain/service/SubjectCategoryDomainServie.java
浏览文件 @
1c288e1c
...
...
@@ -26,6 +26,12 @@ public interface SubjectCategoryDomainServie {
*/
Boolean
delete
(
SubjectCategoryBO
subjectCategoryBO
);
/**
* 查询分类及标签
*/
List
<
SubjectCategoryBO
>
queryCategoryAndLabel
(
SubjectCategoryBO
subjectCategoryBO
);
...
...
club-subject/club-domain/src/main/java/com/lssst/subject/domain/service/impl/SubjectCategoryDomainServiceImpl.java
浏览文件 @
1c288e1c
...
...
@@ -4,23 +4,36 @@ import com.alibaba.fastjson.JSON;
import
com.lssst.subject.common.enums.IsDeletedFlagEnum
;
import
com.lssst.subject.domain.convert.SubjectCategoryConverter
;
import
com.lssst.subject.domain.entity.SubjectCategoryBO
;
import
com.lssst.subject.domain.entity.SubjectLabelBO
;
import
com.lssst.subject.domain.service.SubjectCategoryDomainServie
;
import
com.lssst.subject.infra.basic.entity.SubjectCategory
;
import
com.lssst.subject.infra.basic.entity.SubjectLabel
;
import
com.lssst.subject.infra.basic.entity.SubjectMapping
;
import
com.lssst.subject.infra.basic.service.SubjectCategoryService
;
import
com.lssst.subject.infra.basic.service.SubjectLabelService
;
import
com.lssst.subject.infra.basic.service.SubjectMappingService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
@Slf4j
public
class
SubjectCategoryDomainServiceImpl
implements
SubjectCategoryDomainServie
{
@Resource
private
SubjectCategoryService
subjectCategoryService
;
@Resource
private
SubjectMappingService
subjectMappingService
;
@Resource
private
Subject
CategoryService
subjectCategory
Service
;
private
Subject
LabelService
subjectLabel
Service
;
@Override
public
void
add
(
SubjectCategoryBO
subjectCategoryBO
)
{
if
(
log
.
isInfoEnabled
())
{
log
.
info
(
"SubjectCategoryController.add.bo:{}"
,
JSON
.
toJSONString
(
subjectCategoryBO
));
...
...
@@ -31,6 +44,7 @@ public class SubjectCategoryDomainServiceImpl implements SubjectCategoryDomainSe
subjectCategoryService
.
insert
(
subjectCategory
);
}
@Override
public
List
<
SubjectCategoryBO
>
queryCategory
(
SubjectCategoryBO
subjectCategoryBO
)
{
SubjectCategory
subjectCategory
=
SubjectCategoryConverter
.
INSTANCE
.
convertBoToCategory
(
subjectCategoryBO
);
...
...
@@ -42,9 +56,14 @@ public class SubjectCategoryDomainServiceImpl implements SubjectCategoryDomainSe
log
.
info
(
"SubjectCategoryController.queryPrimaryCategory.boList:{}"
,
JSON
.
toJSONString
(
boList
));
}
boList
.
forEach
(
bo
->
{
Integer
subjectCount
=
subjectCategoryService
.
querySubjectCount
(
bo
.
getId
());
bo
.
setCount
(
subjectCount
);
});
return
boList
;
}
@Override
public
Boolean
update
(
SubjectCategoryBO
subjectCategoryBO
)
{
SubjectCategory
subjectCategory
=
SubjectCategoryConverter
.
INSTANCE
.
convertBoToCategory
(
subjectCategoryBO
);
...
...
@@ -52,6 +71,7 @@ public class SubjectCategoryDomainServiceImpl implements SubjectCategoryDomainSe
return
count
>
0
;
}
@Override
public
Boolean
delete
(
SubjectCategoryBO
subjectCategoryBO
)
{
SubjectCategory
subjectCategory
=
SubjectCategoryConverter
.
INSTANCE
.
convertBoToCategory
(
subjectCategoryBO
);
...
...
@@ -60,4 +80,42 @@ public class SubjectCategoryDomainServiceImpl implements SubjectCategoryDomainSe
return
count
>
0
;
}
@Override
public
List
<
SubjectCategoryBO
>
queryCategoryAndLabel
(
SubjectCategoryBO
subjectCategoryBO
)
{
//查询当前大类下所有分类
SubjectCategory
subjectCategory
=
new
SubjectCategory
();
subjectCategory
.
setParentId
(
subjectCategoryBO
.
getId
());
subjectCategory
.
setIsDeleted
(
IsDeletedFlagEnum
.
UN_DELETED
.
getCode
());
List
<
SubjectCategory
>
subjectCategoryList
=
subjectCategoryService
.
queryCategory
(
subjectCategory
);
if
(
log
.
isInfoEnabled
())
{
log
.
info
(
"SubjectCategoryController.queryCategoryAndLabel.subjectCategoryList:{}"
,
JSON
.
toJSONString
(
subjectCategoryList
));
}
List
<
SubjectCategoryBO
>
categoryBOList
=
SubjectCategoryConverter
.
INSTANCE
.
convertBoToCategory
(
subjectCategoryList
);
//一次获取标签信息
categoryBOList
.
forEach
(
category
->
{
SubjectMapping
subjectMapping
=
new
SubjectMapping
();
subjectMapping
.
setCategoryId
(
category
.
getId
());
List
<
SubjectMapping
>
mappingList
=
subjectMappingService
.
queryLabelId
(
subjectMapping
);
if
(
CollectionUtils
.
isEmpty
(
mappingList
))
{
return
;
}
List
<
Long
>
labelIdList
=
mappingList
.
stream
().
map
(
SubjectMapping:
:
getLabelId
).
collect
(
Collectors
.
toList
());
List
<
SubjectLabel
>
labelList
=
subjectLabelService
.
batchQueryById
(
labelIdList
);
List
<
SubjectLabelBO
>
labelBOList
=
new
LinkedList
<>();
labelList
.
forEach
(
label
->
{
SubjectLabelBO
subjectLabelBO
=
new
SubjectLabelBO
();
subjectLabelBO
.
setId
(
label
.
getId
());
subjectLabelBO
.
setLabelName
(
label
.
getLabelName
());
subjectLabelBO
.
setCategoryId
(
label
.
getCategoryId
());
subjectLabelBO
.
setSortNum
(
label
.
getSortNum
());
labelBOList
.
add
(
subjectLabelBO
);
});
category
.
setLabelBOList
(
labelBOList
);
});
return
categoryBOList
;
}
}
\ No newline at end of file
club-subject/club-infra/src/main/java/com/lssst/subject/infra/basic/mapper/SubjectCategoryDao.java
浏览文件 @
1c288e1c
...
...
@@ -10,7 +10,6 @@ import java.util.List;
*/
public
interface
SubjectCategoryDao
{
/**
* 通过ID查询单条数据
*
...
...
@@ -70,5 +69,6 @@ public interface SubjectCategoryDao {
List
<
SubjectCategory
>
queryCategory
(
SubjectCategory
subjectCategory
);
Integer
querySubjectCount
(
Long
id
);
}
club-subject/club-infra/src/main/java/com/lssst/subject/infra/basic/service/SubjectCategoryService.java
浏览文件 @
1c288e1c
...
...
@@ -37,4 +37,6 @@ public interface SubjectCategoryService {
List
<
SubjectCategory
>
queryCategory
(
SubjectCategory
subjectCategory
);
Integer
querySubjectCount
(
Long
id
);
}
club-subject/club-infra/src/main/java/com/lssst/subject/infra/basic/service/impl/SubjectCategoryServiceImpl.java
浏览文件 @
1c288e1c
...
...
@@ -16,6 +16,7 @@ import java.util.List;
@Service
(
"subjectCategoryService"
)
@Slf4j
public
class
SubjectCategoryServiceImpl
implements
SubjectCategoryService
{
@Resource
private
SubjectCategoryDao
subjectCategoryDao
;
...
...
@@ -68,5 +69,9 @@ public class SubjectCategoryServiceImpl implements SubjectCategoryService {
return
this
.
subjectCategoryDao
.
queryCategory
(
subjectCategory
);
}
@Override
public
Integer
querySubjectCount
(
Long
id
)
{
return
this
.
subjectCategoryDao
.
querySubjectCount
(
id
);
}
}
club-subject/club-infra/src/main/resources/mapper/SubjectCategoryDao.xml
浏览文件 @
1c288e1c
...
...
@@ -137,6 +137,14 @@
</where>
</select>
<select
id=
"querySubjectCount"
resultType=
"java.lang.Integer"
>
select count(distinct subject_id)
from subject_mapping a,
subject_label b
where a.label_id = b.id
and b.category_id = #{id}
</select>
<!--新增所有列-->
<insert
id=
"insert"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into subject_category(category_name, category_type, image_url, parent_id, created_by, created_time,
...
...
@@ -217,3 +225,4 @@
</delete>
</mapper>
club-wx/pom.xml
浏览文件 @
1c288e1c
...
...
@@ -103,5 +103,24 @@
</repository>
</repositories>
<build>
<finalName>
${project.artifactId}
</finalName>
<!--打包成jar包时的名字-->
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
2.3.0.RELEASE
</version>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file