Skip to content

Commit 14d4458

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

6 files changed

Lines changed: 124 additions & 11 deletions

File tree

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

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)