Skip to content

Commit 07e0ec6

Browse files
committed
feat admin coupon : controller 하드 코딩 추후 refactoring
1 parent 82203e4 commit 07e0ec6

File tree

6 files changed

+122
-11
lines changed

6 files changed

+122
-11
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package NextLevel.demo.admin.coupon;
2+
3+
import NextLevel.demo.common.SuccessResponse;
4+
import NextLevel.demo.funding.dto.request.RequestAddCouponDto;
5+
import NextLevel.demo.funding.dto.response.ResponseCouponDto;
6+
import NextLevel.demo.funding.service.CouponService;
7+
import NextLevel.demo.user.entity.UserEntity;
8+
import NextLevel.demo.user.repository.UserRepository;
9+
import NextLevel.demo.user.service.UserValidateService;
10+
import NextLevel.demo.util.jwt.JWTUtil;
11+
import jakarta.validation.Valid;
12+
import java.util.List;
13+
import lombok.RequiredArgsConstructor;
14+
import org.springframework.context.annotation.Configuration;
15+
import org.springframework.http.ResponseEntity;
16+
import org.springframework.stereotype.Controller;
17+
import org.springframework.transaction.annotation.Transactional;
18+
import org.springframework.web.bind.annotation.GetMapping;
19+
import org.springframework.web.bind.annotation.PostMapping;
20+
import org.springframework.web.bind.annotation.RequestBody;
21+
import org.springframework.web.bind.annotation.RequestMapping;
22+
import org.springframework.web.bind.annotation.RequestParam;
23+
24+
@RequestMapping("/admin/coupon")
25+
@Controller
26+
@RequiredArgsConstructor
27+
public class AdminCouponController {
28+
29+
private final CouponService couponService;
30+
private final UserValidateService validateService;
31+
private final UserRepository userRepository;
32+
33+
@PostMapping
34+
public ResponseEntity addCoupon(@RequestBody @Valid RequestAddCouponDto dto) {
35+
if(dto.getUserId()==null)
36+
dto.setUserId(JWTUtil.getUserIdFromSecurityContext());
37+
couponService.addCoupon(dto);
38+
return ResponseEntity.ok().body(new SuccessResponse("success", null));
39+
}
40+
41+
@GetMapping
42+
public ResponseEntity getUserCoupon(@RequestParam("userId")Long userId) {
43+
validateService.findUserWithUserId(userId);
44+
return ResponseEntity.ok().body(new SuccessResponse("success", couponService.couponList(userId).stream().map(
45+
ResponseCouponDto::of).toList()));
46+
}
47+
48+
@PostMapping("/all")
49+
@Transactional
50+
public ResponseEntity addCouponAll(@RequestBody @Valid RequestAddCouponDto dto) {
51+
List<UserEntity> userList = userRepository.findAll();
52+
for(UserEntity user : userList) {
53+
dto.setUserId(user.getId());
54+
couponService.addCoupon(dto);
55+
}
56+
57+
return ResponseEntity.ok().body(new SuccessResponse("success", null));
58+
}
59+
60+
}

src/main/java/NextLevel/demo/admin/user/AdminUserController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package NextLevel.demo.admin.user;
22

33
import NextLevel.demo.common.SuccessResponse;
4+
import NextLevel.demo.funding.dto.request.RequestAddCouponDto;
45
import NextLevel.demo.user.dto.user.request.RequestUpdateUserInfoDto;
56
import NextLevel.demo.util.jwt.JWTUtil;
67
import jakarta.validation.Valid;
@@ -11,6 +12,7 @@
1112
import org.springframework.web.bind.annotation.DeleteMapping;
1213
import org.springframework.web.bind.annotation.GetMapping;
1314
import org.springframework.web.bind.annotation.PathVariable;
15+
import org.springframework.web.bind.annotation.PostMapping;
1416
import org.springframework.web.bind.annotation.PutMapping;
1517
import org.springframework.web.bind.annotation.RequestBody;
1618
import org.springframework.web.bind.annotation.RequestMapping;

src/main/java/NextLevel/demo/admin/user/AdminUserService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public class AdminUserService {
2525
private final UserRepository userRepository;
2626
private final UserDeleteService userDeleteService;
2727

28-
public List<ResponseUserInfoDetailDto> getUserList(Pageable pageable) {
29-
return userRepository.findAll(pageable).stream().map(ResponseUserInfoDetailDto::of).toList();
28+
public List<ResponseFullUserInfoDto> getUserList(Pageable pageable) {
29+
return userRepository.findAll(pageable).stream().map(ResponseFullUserInfoDto::of).toList();
3030
}
3131

3232
public ResponseUserInfoDetailDto getUserInfo(Long userId) {
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package NextLevel.demo.admin.user;
2+
3+
import NextLevel.demo.img.ImgDto;
4+
import NextLevel.demo.user.entity.UserDetailEntity;
5+
import NextLevel.demo.user.entity.UserEntity;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
import lombok.Setter;
9+
10+
@Getter
11+
@Setter
12+
@NoArgsConstructor
13+
public class ResponseFullUserInfoDto {
14+
15+
private Long id;
16+
17+
private String name;
18+
private String nickName;
19+
private int point;
20+
private String address;
21+
private String number;
22+
private String areaNumber;
23+
24+
private String email;
25+
private String socialProvider;
26+
27+
private ImgDto img;
28+
29+
private String role;
30+
31+
public static ResponseFullUserInfoDto of(UserEntity userFullEntity) {
32+
UserDetailEntity detail = userFullEntity.getUserDetail();
33+
34+
ResponseFullUserInfoDto dto = new ResponseFullUserInfoDto(userFullEntity.getId(), userFullEntity.getName(), userFullEntity.getNickName(), userFullEntity.getPoint(),
35+
userFullEntity.getAddress(), userFullEntity.getNumber(), userFullEntity.getAreaNumber(), detail.getEmail(),
36+
detail.getSocialProvider(), userFullEntity.getRole());
37+
38+
dto.img = new ImgDto(userFullEntity.getImg());
39+
40+
return dto;
41+
}
42+
43+
private ResponseFullUserInfoDto(Long userId, String name, String nickName, int point, String address,
44+
String number, String areaNumber, String email, String socialProvider, String role) {
45+
this.id = userId;
46+
this.name = name;
47+
this.nickName = nickName;
48+
this.point = point;
49+
this.address = address;
50+
this.number = number;
51+
this.areaNumber = areaNumber;
52+
this.email = email;
53+
this.socialProvider = socialProvider;
54+
this.role = role;
55+
}
56+
57+
}

src/main/java/NextLevel/demo/funding/controller/CouponController.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,6 @@ public class CouponController {
2121

2222
private final CouponService couponService;
2323

24-
@PostMapping("/admin/coupon/add")
25-
public ResponseEntity addCoupon(@RequestBody @Valid RequestAddCouponDto dto) {
26-
if(dto.getUserId()==null)
27-
dto.setUserId(JWTUtil.getUserIdFromSecurityContext());
28-
couponService.addCoupon(dto);
29-
return ResponseEntity.ok().body(new SuccessResponse("success", null));
30-
}
31-
3224
@GetMapping("/social/coupon")
3325
public ResponseEntity getCoupon() {
3426
List<ResponseCouponDto> coupons =

src/main/java/NextLevel/demo/funding/service/CouponService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class CouponService {
2323

2424
@Transactional
2525
public void addCoupon(RequestAddCouponDto dto) {
26-
UserEntity user = userValidateService.getUserInfoWithAccessToken(dto.getUserId());
26+
UserEntity user = userValidateService.findUserWithUserId(dto.getUserId());
2727
couponRepository.save(dto.toEntity(user));
2828
}
2929

0 commit comments

Comments
 (0)