Skip to content

Commit 4eadafa

Browse files
authored
Merge pull request #19 from DeepCodeLogicAI/sangjin
이력삭제+즐겨찾기 토글
2 parents 1d17b83 + 0d37ca4 commit 4eadafa

11 files changed

Lines changed: 405 additions & 147 deletions

File tree

legal/BackEnd/src/main/java/com/oracle/Legal/controller/MypageController.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.oracle.Legal.controller;
22

3+
import java.util.List;
4+
35
import org.springframework.security.core.Authentication;
46
import org.springframework.security.core.context.SecurityContextHolder;
57
import org.springframework.stereotype.Controller;
@@ -120,6 +122,26 @@ public String clientDel(
120122

121123
return "redirect:/logout";
122124
}
125+
126+
//이력 삭제
127+
@PostMapping("/history/delete")
128+
public String delete(@RequestParam(value="selectedKeys", required=false) List<String> selectedKeys) {
129+
myPageService.bulkDelete(selectedKeys);
130+
return "redirect:/mypage";
131+
}
132+
133+
//즐겨찾기
134+
@PostMapping("/history/mark/toggle")
135+
public String toggleMark(@RequestParam("serviceType") String serviceType,
136+
@RequestParam("serviceCode") int serviceCode,
137+
@RequestParam(value="page", defaultValue="1") int page,
138+
@RequestParam(value="serviceTypeFilter", required=false) String filter) {
139+
140+
myPageService.toggleMark(serviceType, serviceCode);
141+
142+
return "redirect:/mypage?page=" + page
143+
+ (filter != null && !filter.isBlank() ? "&serviceType=" + filter : "");
144+
}
123145

124146

125147
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/BoonjangRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,8 @@ public interface BoonjangRepository {
2121

2222
// 분쟁위험 리스트
2323
List<Boonjang> findHistory(int clientCode);
24+
//이력삭제
25+
void deleteById(int code);
26+
//즐겨찾기 토글
27+
void toggleMark(int code);
2428
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/BoonjangRepositoryImpl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,25 @@ public List<Boonjang> findHistory(int clientCode) {
5353
.setParameter("cc", clientCode)
5454
.getResultList();
5555
}
56+
57+
@Override
58+
public void deleteById(int code) {
59+
Boonjang boonjang = em.find(Boonjang.class, code);
60+
if (boonjang != null) {
61+
em.remove(boonjang);
62+
}
63+
}
64+
65+
@Override
66+
public void toggleMark(int code) {
67+
em.createQuery("""
68+
update Boonjang b
69+
set b.boonjang_mark =
70+
case when b.boonjang_mark = 1 then 0 else 1 end
71+
where b.boonjang_code = :code
72+
""")
73+
.setParameter("code", code)
74+
.executeUpdate();
75+
}
5676

5777
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/JogiRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,8 @@ public interface JogiRepository {
1212
Jogi findOne(int clientCode, int intValue);
1313
//조기위험 리스트
1414
List<Jogi> findHistory(int clientCode);
15+
//이력 삭제
16+
void deleteById(int code);
17+
//즐겨찾기 토글
18+
void toggleMark(int code);
1519
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/JogiRepositoryImpl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,24 @@ public List<Jogi> findHistory(int clientCode) {
4848
.setParameter("cc", clientCode)
4949
.getResultList();
5050
}
51+
52+
@Override
53+
public void deleteById(int code) {
54+
Jogi jogi = em.find(Jogi.class, code);
55+
if (jogi != null) {
56+
em.remove(jogi);
57+
}
58+
}
59+
60+
@Override
61+
public void toggleMark(int code) {
62+
em.createQuery("""
63+
update Jogi j
64+
set j.jogi_mark =
65+
case when j.jogi_mark = 1 then 0 else 1 end
66+
where j.jogi_code = :code
67+
""")
68+
.setParameter("code", code)
69+
.executeUpdate();
70+
}
5171
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/LawRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,10 @@ public interface LawRepository {
1212
Law findOne(int clientCode, int intValue);
1313
//법적위험 리스트
1414
List<Law> findHistory(int clientCode);
15+
//이력삭제
16+
void deleteById(int code);
17+
//즐겨찾기 토글
18+
void toggleMark(int code);
19+
1520

1621
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/LawRepositoryImpl.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,23 @@ public List<Law> findHistory(int clientCode) {
4949
.getResultList();
5050
}
5151

52+
@Override
53+
public void deleteById(int code) {
54+
Law law = em.find(Law.class, code);
55+
if (law != null) {
56+
em.remove(law);
57+
}
58+
}
5259

53-
60+
@Override
61+
public void toggleMark(int code) {
62+
em.createQuery("""
63+
update Law l
64+
set l.law_mark =
65+
case when l.law_mark = 1 then 0 else 1 end
66+
where l.law_code = :code
67+
""")
68+
.setParameter("code", code)
69+
.executeUpdate();
70+
}
5471
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/YusaRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@ public interface YusaRepository {
1111
Yusa findOne(int clientCode, int intValue);
1212
//유사판례 리스트
1313
List<Yusa> findHistory(int clientCode);
14+
//이력삭제
15+
void deleteById(int code);
16+
//즐겨찾기 토글
17+
void toggleMark(int code);
1418

1519
}

legal/BackEnd/src/main/java/com/oracle/Legal/repository/YusaRepositoryImpl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,24 @@ public List<Yusa> findHistory(int clientCode) {
4949
.setParameter("cc", clientCode)
5050
.getResultList();
5151
}
52+
53+
@Override
54+
public void deleteById(int code) {
55+
Yusa yusa = em.find(Yusa.class, code);
56+
if (yusa != null) {
57+
em.remove(yusa);
58+
}
59+
}
60+
61+
@Override
62+
public void toggleMark(int code) {
63+
em.createQuery("""
64+
update Yusa y
65+
set y.yusa_mark =
66+
case when y.yusa_mark = 1 then 0 else 1 end
67+
where y.yusa_code = :code
68+
""")
69+
.setParameter("code", code)
70+
.executeUpdate();
71+
}
5272
}

legal/BackEnd/src/main/java/com/oracle/Legal/service/MyPageService.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.oracle.Legal.dto.HistoryPageDto;
1111
import com.oracle.Legal.repository.*;
1212

13+
import jakarta.transaction.Transactional;
1314
import lombok.RequiredArgsConstructor;
1415
@Service
1516
@RequiredArgsConstructor
@@ -174,4 +175,60 @@ public HistoryDto getHistoryDetail(int clientCode, String type, Long code) {
174175

175176

176177
}
178+
179+
180+
181+
@Transactional
182+
public void deleteLaw(int code) {
183+
lawRepository.deleteById(code);
184+
}
185+
186+
@Transactional
187+
public void deleteYusa(int code) {
188+
yusaRepository.deleteById(code);
189+
}
190+
191+
@Transactional
192+
public void deleteJogi(int code) {
193+
jogiRepository.deleteById(code);
194+
}
195+
196+
@Transactional
197+
public void deleteBoonjang(int code) {
198+
boonjangRepository.deleteById(code);
199+
}
200+
201+
@Transactional
202+
public void bulkDelete(List<String> selectedKeys) {
203+
if (selectedKeys == null || selectedKeys.isEmpty()) return;
204+
205+
for (String key : selectedKeys) {
206+
String[] parts = key.split(":");
207+
if (parts.length != 2) continue;
208+
209+
String type = parts[0].toUpperCase();
210+
int code = Integer.parseInt(parts[1]);
211+
212+
switch (type) {
213+
case "LAW" -> deleteLaw(code);
214+
case "YUSA" -> deleteYusa(code);
215+
case "JOGI" -> deleteJogi(code);
216+
case "BOONJANG" -> deleteBoonjang(code);
217+
}
218+
}
219+
}
220+
221+
@Transactional
222+
public void toggleMark(String type, int code) {
223+
String t = type.toUpperCase();
224+
225+
switch (t) {
226+
case "LAW" -> lawRepository.toggleMark(code);
227+
case "YUSA" -> yusaRepository.toggleMark(code);
228+
case "JOGI" -> jogiRepository.toggleMark(code);
229+
case "BOONJANG" -> boonjangRepository.toggleMark(code);
230+
default -> throw new IllegalArgumentException("unknown type: " + type);
231+
}
232+
}
233+
177234
}

0 commit comments

Comments
 (0)