@Controller
@RequiredArgsConstructor
public class MediaViewController {
private final NoticeSubViewService noticeSubViewService;
private final ModelMapper modelMapper;
private final NoticeSubRepo noticeSubRepo;
@GetMapping("/media/{id}")
String operate(@PathVariable(required = true) Long id,
Model model, @ModelAttribute("paramDto") NoticeSubConditionDto paramDto) {
paramDto.setSearchLang(LangType.ko.name());
paramDto.setSearchTargetId(id);
NoticeSubEntity media = noticeSubRepo.findByLangAndId(paramDto.getSearchLang(), paramDto.getSearchTargetId());
if(media != null) {
if (media.getCount() == null) {
media.setCount(0L);
}
media.setCount(media.getCount() + 1);
noticeSubRepo.save(media);
}
MediaDto dto = modelMapper.map(noticeSubViewService.operate(modelMapper.map(paramDto, NoticeSubCondition.class)), MediaDto.class);
model.addAttribute("dto", dto);
return "media/view";
}
}
@Entity
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "tbl_notice_sub")
@org.hibernate.annotations.Table(appliesTo = "tbl_notice_sub", comment = "멀티 게시판")
public class NoticeSubEntity {
@Column
@Comment("조회수")
private Long count;
}