Skip to content

Commit ee47776

Browse files
committed
refactor: 用户权限、身份、组关系重构
1 parent 0096a32 commit ee47776

15 files changed

Lines changed: 404 additions & 5 deletions

‎src/main/java/com/softeng/dingtalk/controller/UserController.java‎

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ public class UserController {
3333
UserService userService;
3434
@Autowired
3535
NotifyService notifyService;
36-
3736
@Autowired
3837
BaseApi baseApi;
3938

@@ -131,5 +130,24 @@ public void downloadLeaseContract(@RequestAttribute int uid, HttpServletResponse
131130
userService.downloadContractFile(uid,response);
132131
}
133132

133+
/**
134+
* @author LiXiaoKang
135+
* @description 新增获取用户权限与所属组信息
136+
* @create 1/10/2020 8:38 PM
137+
*/
138+
139+
/**
140+
* 获取用户权限信息
141+
* @param uid
142+
* @return
143+
*/
144+
@GetMapping("/user/permission")
145+
public List<String> getPermissions(@RequestAttribute int uid){
146+
return userService.getPermissionNames(uid);
147+
}
134148

149+
@GetMapping("/user/team")
150+
public List<String> getTeams(@RequestAttribute int uid){
151+
return userService.getTeams(uid);
152+
}
135153
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.softeng.dingtalk.entity;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
import lombok.Setter;
6+
import lombok.ToString;
7+
8+
import javax.persistence.Entity;
9+
import javax.persistence.GeneratedValue;
10+
import javax.persistence.GenerationType;
11+
import javax.persistence.Id;
12+
13+
/**
14+
* @author LiXiaoKang
15+
* @description 用户权限类
16+
* @date 02/02/2023
17+
*/
18+
@Getter
19+
@Setter
20+
@Entity
21+
@NoArgsConstructor
22+
@ToString
23+
public class Permission {
24+
@Id
25+
@GeneratedValue(strategy = GenerationType.IDENTITY)
26+
private int id;
27+
28+
private String name;
29+
30+
private String description;
31+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.softeng.dingtalk.entity;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
import lombok.Setter;
6+
import lombok.ToString;
7+
8+
import javax.persistence.Entity;
9+
import javax.persistence.GeneratedValue;
10+
import javax.persistence.GenerationType;
11+
import javax.persistence.Id;
12+
13+
/**
14+
* @author LiXiaoKang
15+
* @description 用户组实体类
16+
* @date 02/02/2023
17+
*/
18+
@Getter
19+
@Setter
20+
@Entity
21+
@NoArgsConstructor
22+
@ToString
23+
public class Team {
24+
@Id
25+
@GeneratedValue(strategy = GenerationType.IDENTITY)
26+
private int id;
27+
28+
private String name;
29+
}

‎src/main/java/com/softeng/dingtalk/entity/User.java‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,17 @@ public class User {
159159
@OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
160160
private List<Prize> allPrizes;
161161

162+
/**
163+
* @author LiXiaoKang
164+
* @description todo-用户权限重构
165+
* @date 2/3/2023
166+
*/
167+
168+
/**
169+
* 用户权限id(代替authority)
170+
*/
171+
private int permissionId;
172+
162173

163174
public User(String userid, String unionid, String name, String avatar, int authority, Position position) {
164175
this.userid = userid;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.softeng.dingtalk.entity;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
import lombok.Setter;
6+
import lombok.ToString;
7+
8+
import javax.persistence.Entity;
9+
import javax.persistence.Id;
10+
import javax.persistence.IdClass;
11+
12+
/**
13+
* @author LiXiaoKang
14+
* @description 用户-用户权限实体类
15+
* @date 02/02/2023
16+
*/
17+
@Getter
18+
@Setter
19+
@Entity
20+
@NoArgsConstructor
21+
@ToString
22+
// 设置联合主键的注解
23+
@IdClass(UserPermissionAssociatePK.class)
24+
public class UserPermission {
25+
26+
@Id
27+
private int userId;
28+
29+
@Id
30+
private int permissionId;
31+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.softeng.dingtalk.entity;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
import lombok.Setter;
6+
import lombok.ToString;
7+
8+
import java.io.Serializable;
9+
10+
/**
11+
* @author LiXiaoKang
12+
* @description 用户-权限实体类的联合主键
13+
* @date 02/02/2023
14+
*/
15+
16+
@Getter
17+
@Setter
18+
@NoArgsConstructor
19+
@ToString
20+
public class UserPermissionAssociatePK implements Serializable {
21+
22+
private int userId;
23+
24+
private int permissionId;
25+
26+
@Override
27+
public boolean equals(Object obj){
28+
if(obj instanceof UserPermissionAssociatePK){
29+
return userId == ((UserPermissionAssociatePK) obj).userId && permissionId == ((UserPermissionAssociatePK) obj).getPermissionId();
30+
}
31+
return false;
32+
}
33+
34+
@Override
35+
public int hashCode(){
36+
return userId+permissionId;
37+
}
38+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.softeng.dingtalk.entity;
2+
3+
4+
import lombok.Getter;
5+
import lombok.NoArgsConstructor;
6+
import lombok.Setter;
7+
import lombok.ToString;
8+
9+
import javax.persistence.Entity;
10+
import javax.persistence.Id;
11+
import javax.persistence.IdClass;
12+
13+
/**
14+
* @author LiXiaoKang
15+
* @description 用户组实体类
16+
* @date 02/02/2023
17+
*/
18+
@Getter
19+
@Setter
20+
@Entity
21+
@NoArgsConstructor
22+
@ToString
23+
// 设置联合主键的注解
24+
@IdClass(UserTeamAssociatePK.class)
25+
public class UserTeam {
26+
27+
@Id
28+
private int userId;
29+
30+
@Id
31+
private int teamId;
32+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.softeng.dingtalk.entity;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
import lombok.Setter;
6+
import lombok.ToString;
7+
8+
import java.io.Serializable;
9+
10+
/**
11+
* @author LiXiaoKang
12+
* @description 用户-用户组实体类的联合主键
13+
* @date 02/02/2023
14+
*/
15+
16+
@Getter
17+
@Setter
18+
@NoArgsConstructor
19+
@ToString
20+
public class UserTeamAssociatePK implements Serializable {
21+
22+
private int userId;
23+
24+
private int teamId;
25+
26+
@Override
27+
public boolean equals(Object obj){
28+
if(obj instanceof UserTeamAssociatePK){
29+
return userId == ((UserTeamAssociatePK) obj).userId && teamId == ((UserTeamAssociatePK) obj).getTeamId();
30+
}
31+
return false;
32+
}
33+
34+
@Override
35+
public int hashCode(){
36+
return userId+teamId;
37+
}
38+
}

‎src/main/java/com/softeng/dingtalk/enums/Position.java‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,14 @@ public enum Position {
1313
ACADEMIC("学硕"),
1414
PROFESSIONAL("专硕"),
1515
UNDERGRADUATE("本科生"),
16-
OTHER("待定");
16+
OTHER("待定"),
17+
18+
/**
19+
* @author LiXiaoKang
20+
* @description todo-新增职位/学位
21+
* @create 2/4/2023
22+
*/
23+
TEACHER("教师");
1724

1825
private String title;
1926

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.softeng.dingtalk.repository;
2+
3+
import com.softeng.dingtalk.entity.Permission;
4+
import org.springframework.stereotype.Repository;
5+
6+
/**
7+
* @author LiXiaoKang
8+
* @description 操作Permission实体类的接口
9+
* @date 2/5/2023
10+
*/
11+
12+
@Repository
13+
public interface PermissionRepository extends CustomizedRepository<Permission, Integer>{
14+
15+
Permission findById(int id);
16+
}

0 commit comments

Comments
 (0)