Skip to content

Commit ecf4d6a

Browse files
authored
Merge pull request #231 from DevKor-github/feat/ble2
셔틀버스/실내경로 최종 통합
2 parents 72235ca + f94a33c commit ecf4d6a

17 files changed

Lines changed: 523 additions & 130 deletions

File tree

src/main/java/devkor/com/teamcback/domain/ble/controller/AdminBLEController.java

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package devkor.com.teamcback.domain.ble.controller;
22

3-
import devkor.com.teamcback.domain.ble.dto.request.CreateBLEReq;
4-
import devkor.com.teamcback.domain.ble.dto.response.CreateBLERes;
5-
import devkor.com.teamcback.domain.ble.entity.BLEDevice;
3+
import devkor.com.teamcback.domain.ble.dto.request.CreateBLEDeviceReq;
4+
import devkor.com.teamcback.domain.ble.dto.request.ModifyBLEDeviceReq;
5+
import devkor.com.teamcback.domain.ble.dto.response.CreateBLEDeviceRes;
6+
import devkor.com.teamcback.domain.ble.dto.response.DeleteBLEDeviceRes;
7+
import devkor.com.teamcback.domain.ble.dto.response.ModifyBLEDeviceRes;
68
import devkor.com.teamcback.domain.ble.service.AdminBLEService;
79
import devkor.com.teamcback.global.response.CommonResponse;
810
import io.swagger.v3.oas.annotations.Operation;
@@ -13,10 +15,7 @@
1315
import io.swagger.v3.oas.annotations.responses.ApiResponses;
1416
import jakarta.validation.Valid;
1517
import lombok.RequiredArgsConstructor;
16-
import org.springframework.web.bind.annotation.PostMapping;
17-
import org.springframework.web.bind.annotation.RequestBody;
18-
import org.springframework.web.bind.annotation.RequestMapping;
19-
import org.springframework.web.bind.annotation.RestController;
18+
import org.springframework.web.bind.annotation.*;
2019

2120
@RestController
2221
@RequiredArgsConstructor
@@ -34,8 +33,38 @@ public class AdminBLEController {
3433
@ApiResponse(responseCode = "401", description = "권한이 없습니다.",
3534
content = @Content(schema = @Schema(implementation = CommonResponse.class))),
3635
})
37-
public CommonResponse<CreateBLERes> createBLE(
38-
@Parameter(description = "BLE장비 생성 요청 dto") @Valid @RequestBody CreateBLEReq createBLEReq) {
39-
return CommonResponse.success(adminBLEService.CreateBLEDevice(createBLEReq));
36+
public CommonResponse<CreateBLEDeviceRes> createBLE(
37+
@Parameter(description = "BLE장비 생성 요청 dto") @Valid @RequestBody CreateBLEDeviceReq createBLEDeviceReq) {
38+
return CommonResponse.success(adminBLEService.createBLEDevice(createBLEDeviceReq));
39+
}
40+
41+
@PutMapping
42+
@Operation(summary = "BLE장비 수정",
43+
description = "BLE장비 수정")
44+
@ApiResponses(value = {
45+
@ApiResponse(responseCode = "200", description = "정상 처리 되었습니다."),
46+
@ApiResponse(responseCode = "404", description = "장비를 찾을 수 없습니다.",
47+
content = @Content(schema = @Schema(implementation = CommonResponse.class))),
48+
@ApiResponse(responseCode = "401", description = "권한이 없습니다.",
49+
content = @Content(schema = @Schema(implementation = CommonResponse.class))),
50+
})
51+
public CommonResponse<ModifyBLEDeviceRes> modifyBLE(
52+
@Parameter(description = "BLE장비 수정 요청 dto") @Valid @RequestBody ModifyBLEDeviceReq modifyBLEDeviceReq) {
53+
return CommonResponse.success(adminBLEService.modifyBLEDevice(modifyBLEDeviceReq));
54+
}
55+
56+
@DeleteMapping("/{bleId}")
57+
@Operation(summary = "BLE장비 삭제",
58+
description = "BLE장비 삭제")
59+
@ApiResponses(value = {
60+
@ApiResponse(responseCode = "200", description = "정상 처리 되었습니다."),
61+
@ApiResponse(responseCode = "404", description = "장비를 찾을 수 없습니다.",
62+
content = @Content(schema = @Schema(implementation = CommonResponse.class))),
63+
@ApiResponse(responseCode = "401", description = "권한이 없습니다.",
64+
content = @Content(schema = @Schema(implementation = CommonResponse.class))),
65+
})
66+
public CommonResponse<DeleteBLEDeviceRes> deleteBLE(
67+
@Parameter(description = "BLE장비 삭제 요청 dto") @PathVariable Long bleId) {
68+
return CommonResponse.success(adminBLEService.deleteBLEDevice(bleId));
4069
}
4170
}

src/main/java/devkor/com/teamcback/domain/ble/controller/BLEController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ public CommonResponse<GetBLERes> getBLE(
4343
@PutMapping
4444
public CommonResponse<UpdateBLERes> updateBLE(
4545
@Valid @RequestBody UpdateBLEReq updateBLEReq){
46-
return CommonResponse.success(bleService.updateBLEDevice(updateBLEReq));
46+
return CommonResponse.success(bleService.updateBLE(updateBLEReq));
4747
}
4848
}

src/main/java/devkor/com/teamcback/domain/ble/dto/request/CreateBLEReq.java renamed to src/main/java/devkor/com/teamcback/domain/ble/dto/request/CreateBLEDeviceReq.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package devkor.com.teamcback.domain.ble.dto.request;
22

3-
import devkor.com.teamcback.domain.ble.entity.BLEstatus;
4-
import devkor.com.teamcback.domain.place.entity.Place;
53
import io.swagger.v3.oas.annotations.media.Schema;
64
import lombok.Getter;
75
import lombok.Setter;
86

9-
import java.time.LocalTime;
10-
117
@Schema(description = "BLEdevice 생성 정보")
128
@Getter
139
@Setter
14-
public class CreateBLEReq {
10+
public class CreateBLEDeviceReq {
1511
@Schema(description = "라운지 설치된 기기명", example = "woodang_1f_lounge")
1612
private String deviceName;
1713
@Schema(description ="라운지 place")
1814
private Long placeId;
1915
@Schema(description = "라운지별 최대정원", example = "20")
2016
private int capacity;
17+
@Schema(description = "위치별 기본 시간별 카운팅 횟수", example = "30")
18+
private int defaultCount;
19+
@Schema(description = "위치별 기본 시간별 평균 기기 신호 횟수", example = "100")
20+
private int ratio;
2121
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package devkor.com.teamcback.domain.ble.dto.request;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
7+
@Schema(description = "BLEdevice 생성 정보")
8+
@Getter
9+
@Setter
10+
public class ModifyBLEDeviceReq {
11+
@Schema(description = "수정하고자 하는 BLEDevice ID", example = "1")
12+
private Long id;
13+
@Schema(description = "라운지 설치된 기기명", example = "woodang_1f_lounge")
14+
private String deviceName;
15+
@Schema(description ="라운지 place")
16+
private Long placeId;
17+
@Schema(description = "라운지별 최대정원", example = "20")
18+
private int capacity;
19+
@Schema(description = "위치별 기본 시간별 카운팅 횟수", example = "30")
20+
private int defaultCount;
21+
@Schema(description = "위치별 기본 시간별 평균 기기 신호 횟수", example = "100")
22+
private int ratio;
23+
}

src/main/java/devkor/com/teamcback/domain/ble/dto/response/CreateBLERes.java renamed to src/main/java/devkor/com/teamcback/domain/ble/dto/response/CreateBLEDeviceRes.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
@Schema(description = "BLEdevice 생성 정보")
88
@Getter
9-
public class CreateBLERes {
9+
public class CreateBLEDeviceRes {
1010
private Long id;
1111

12-
public CreateBLERes(BLEDevice bleDevice) {
12+
public CreateBLEDeviceRes(BLEDevice bleDevice) {
1313
this.id = bleDevice.getId();
1414
}
1515
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package devkor.com.teamcback.domain.ble.dto.response;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import io.swagger.v3.oas.annotations.media.Schema;
5+
6+
@Schema(description = "BLEDevice 삭제 응답 dto")
7+
@JsonIgnoreProperties
8+
public class DeleteBLEDeviceRes {
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package devkor.com.teamcback.domain.ble.dto.response;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import io.swagger.v3.oas.annotations.media.Schema;
5+
6+
@Schema(description = "BLEDevice 수정 응답 dto")
7+
@JsonIgnoreProperties
8+
public class ModifyBLEDeviceRes {
9+
}

src/main/java/devkor/com/teamcback/domain/ble/entity/BLEDevice.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package devkor.com.teamcback.domain.ble.entity;
22

33

4-
import devkor.com.teamcback.domain.ble.dto.request.UpdateBLEReq;
4+
import devkor.com.teamcback.domain.ble.dto.request.CreateBLEDeviceReq;
5+
import devkor.com.teamcback.domain.ble.dto.request.ModifyBLEDeviceReq;
56
import devkor.com.teamcback.domain.common.entity.BaseEntity;
67
import devkor.com.teamcback.domain.place.entity.Place;
78
import jakarta.persistence.*;
89
import lombok.Getter;
910
import lombok.NoArgsConstructor;
1011
import lombok.Setter;
1112

12-
import java.time.LocalDateTime;
13-
1413
@Entity
1514
@Table(name="tb_ble_device")
1615
@Getter
@@ -31,10 +30,26 @@ public class BLEDevice extends BaseEntity {
3130
@Column
3231
private int capacity;
3332

34-
public BLEDevice(String deviceName, Place place, int capacity) {
35-
this.deviceName = deviceName;
33+
@Column(name="default_count")
34+
private int defaultCount;
35+
36+
@Column
37+
private int ratio;
38+
39+
public BLEDevice(CreateBLEDeviceReq req, Place place) {
40+
this.deviceName = req.getDeviceName();
41+
this.place = place;
42+
this.capacity = req.getCapacity();
43+
this.defaultCount = req.getDefaultCount();
44+
this.ratio = req.getRatio();
45+
}
46+
47+
public void update(ModifyBLEDeviceReq req, Place place){
48+
this.deviceName = req.getDeviceName();
3649
this.place = place;
37-
this.capacity = capacity;
50+
this.capacity = req.getCapacity();
51+
this.defaultCount = req.getDefaultCount();
52+
this.ratio = req.getRatio();
3853
}
3954

4055
}

src/main/java/devkor/com/teamcback/domain/ble/repository/BLEDeviceRepository.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
import java.util.List;
88

99
public interface BLEDeviceRepository extends JpaRepository<BLEDevice, Long> {
10-
List<BLEDevice> findByDeviceName(String deviceName);
11-
List<BLEDevice> findByPlace(Place place);
10+
BLEDevice findByDeviceName(String deviceName);
11+
BLEDevice findByPlace(Place place);
1212
boolean existsByDeviceName(String deviceName);
13+
boolean existsByPlace(Place place);
1314
}
Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package devkor.com.teamcback.domain.ble.service;
22

3-
import devkor.com.teamcback.domain.ble.dto.request.CreateBLEReq;
4-
import devkor.com.teamcback.domain.ble.dto.response.CreateBLERes;
3+
import devkor.com.teamcback.domain.ble.dto.request.CreateBLEDeviceReq;
4+
import devkor.com.teamcback.domain.ble.dto.request.ModifyBLEDeviceReq;
5+
import devkor.com.teamcback.domain.ble.dto.response.CreateBLEDeviceRes;
6+
import devkor.com.teamcback.domain.ble.dto.response.DeleteBLEDeviceRes;
7+
import devkor.com.teamcback.domain.ble.dto.response.ModifyBLEDeviceRes;
58
import devkor.com.teamcback.domain.ble.entity.BLEDevice;
69
import devkor.com.teamcback.domain.ble.repository.BLEDeviceRepository;
710
import devkor.com.teamcback.domain.place.entity.Place;
@@ -12,19 +15,40 @@
1215
import org.springframework.stereotype.Service;
1316
import org.springframework.transaction.annotation.Transactional;
1417

15-
import static devkor.com.teamcback.global.response.ResultCode.NOT_FOUND_PLACE;
18+
import java.util.Objects;
1619

1720
@Service
1821
@RequiredArgsConstructor
1922
public class AdminBLEService {
2023
private final BLEDeviceRepository bleDeviceRepository;
2124
private final PlaceRepository placeRepository;
2225

26+
//bledevice 생성
2327
@Transactional
24-
public CreateBLERes CreateBLEDevice(CreateBLEReq createBLEReq) {
25-
Place place = placeRepository.findById(createBLEReq.getPlaceId()).orElseThrow(() -> new GlobalException(NOT_FOUND_PLACE));
26-
if (bleDeviceRepository.existsByDeviceName(createBLEReq.getDeviceName())) throw new GlobalException(ResultCode.EXISTING_DEVICE_NAME);
27-
BLEDevice bleDevice = bleDeviceRepository.save(new BLEDevice(createBLEReq.getDeviceName(), place, createBLEReq.getCapacity()));
28-
return new CreateBLERes(bleDevice);
28+
public CreateBLEDeviceRes createBLEDevice(CreateBLEDeviceReq createBLEDeviceReq) {
29+
Place place = placeRepository.findById(createBLEDeviceReq.getPlaceId()).orElseThrow(() -> new GlobalException(ResultCode.NOT_FOUND_PLACE));
30+
if (bleDeviceRepository.existsByDeviceName(createBLEDeviceReq.getDeviceName())) throw new GlobalException(ResultCode.EXISTING_DEVICE_NAME);
31+
if (bleDeviceRepository.existsByPlace(place)) throw new GlobalException(ResultCode.EXISTING_PLACE_FOR_DEVICE);
32+
BLEDevice bleDevice = bleDeviceRepository.save(new BLEDevice(createBLEDeviceReq, place));
33+
return new CreateBLEDeviceRes(bleDevice);
34+
}
35+
36+
//bledevice 수정
37+
@Transactional
38+
public ModifyBLEDeviceRes modifyBLEDevice(ModifyBLEDeviceReq modifyBLEReq){
39+
Place place = placeRepository.findById(modifyBLEReq.getPlaceId()).orElseThrow(() -> new GlobalException(ResultCode.NOT_FOUND_PLACE));
40+
BLEDevice bleDevice = bleDeviceRepository.findById(modifyBLEReq.getId()).orElseThrow(() -> new GlobalException(ResultCode.NOT_FOUND_DEVICE));
41+
if (bleDeviceRepository.existsByDeviceName(modifyBLEReq.getDeviceName()) && !Objects.equals(modifyBLEReq.getDeviceName(), bleDevice.getDeviceName())) throw new GlobalException(ResultCode.EXISTING_DEVICE_NAME);
42+
if (bleDeviceRepository.existsByPlace(place) && !Objects.equals(modifyBLEReq.getPlaceId(), bleDevice.getPlace().getId())) throw new GlobalException(ResultCode.EXISTING_PLACE_FOR_DEVICE);
43+
bleDevice.update(modifyBLEReq, place);
44+
return new ModifyBLEDeviceRes();
45+
}
46+
47+
//bledevice 삭제
48+
@Transactional
49+
public DeleteBLEDeviceRes deleteBLEDevice(Long bleId) {
50+
BLEDevice bleDevice = bleDeviceRepository.findById(bleId).orElseThrow(() -> new GlobalException(ResultCode.NOT_FOUND_DEVICE));
51+
bleDeviceRepository.delete(bleDevice);
52+
return new DeleteBLEDeviceRes();
2953
}
3054
}

0 commit comments

Comments
 (0)