DAY 33
EntityEx
package com.greenart.dbconnect.entity;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity(name = "user_info")
public class UserInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ui_seq") private Integer seq;
@Column(name = "ui_id") private String id;
@Column(name = "ui_pwd") private String pwd;
@Column(name = "ui_reg_dt") private Date regDt;
}
RepositoryEx
package com.greenart.dbconnect.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.greenart.dbconnect.entity.UserInfo;
@Repository
public interface UserInfoRepository extends JpaRepository<UserInfo, Long> {
}
ControllerEx
package com.greenart.dbconnect.api;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.greenart.dbconnect.entity.UserInfo;
import com.greenart.dbconnect.repository.UserInfoRepository;
@RestController
public class MemberAPIController {
@Autowired UserInfoRepository repository;
@PutMapping("/member/join")
public Map<String, Object> putMemberJoin(@RequestBody UserInfo data) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
data.setRegDt(new Date());
repository.save(data);
map.put("status", true);
map.put("message", "회원이 등록되었습니다.");
return map;
}
}
MovieControllerEx
package com.greenart.practice5.api;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.greenart.practice5.data.MovieInfo;
@RestController
@RequestMapping("/api")
public class MovieAPIController {
private static List<MovieInfo> m_list = new ArrayList<MovieInfo>();
private static Integer mnextNo = 1;
@PutMapping("/movie")
public Map<String, Object> putMovie(@RequestBody MovieInfo data) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
System.out.println(data);
data.setMovieNo(mnextNo);
m_list.add(data);
mnextNo++;
map.put("status", true);
map.put("message", "영화가 추가되었습니다.");
return map;
}
@GetMapping("/movie")
public Map<String, Object> getMovieList() {
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("status", true);
map.put("total", m_list.size());
map.put("totalPage", (int) Math.ceil(m_list.size() / 10.0));
map.put("list", m_list);
return map;
}
@GetMapping("/movie/no")
public Map<String, Object> getMovieListByMovieNo(@RequestParam Integer movieNo) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
for (MovieInfo m : m_list) {
if (m.getMovieNo() == movieNo) {
map.put("list", m);
map.put("message", "영화정보를 찾았습니다.");
}
}
map.put("message", "영화번호가 잘못되었습니다.");
return map;
}
@PatchMapping("/movie")
public Map<String, Object> patchMovie(@RequestBody MovieInfo data) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
for(MovieInfo m : m_list) {
if (m.getMovieNo() == data.getMovieNo()) {
if(data.getTitle() != null) {
m.setTitle(data.getTitle());
}
if(data.getGenre() != null) {
m.setGenre(data.getGenre());
}
if(data.getOpen_dt() != null) {
m.setOpen_dt(data.getOpen_dt());
}
if(data.getStatus() != null) {
m.setStatus(data.getStatus());
}
map.put("message", "영화정보가 수정되었습니다.");
return map;
}
}
map.put("message", "영화번호가 잘못되었습니다.");
return map;
}
@DeleteMapping("/movie")
public Map<String, Object> deleteMovie(@RequestParam Integer movieNo) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
for (MovieInfo m : m_list) {
if (m.getMovieNo() == movieNo) {
m_list.remove(m);
map.put("message", "영화정보가 삭제되었습니다.");
return map;
}
}
map.put("message", "영화번호가 잘못되었습니다.");
return map;
}
@GetMapping ("/movie/info/{type}")
public Map<String, Object> getMovieInfoByKeyword(@PathVariable String type, @RequestParam String value) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
if (!type.equals("genre") && !type.equals("status")) {
map.put("status", false);
map.put("message", "타입정보가 잘못되었습니다.[genre,status]");
return map;
}
List<MovieInfo> movieList = new ArrayList<MovieInfo>();
for (MovieInfo m : m_list) {
if (type.equals("genre") && m.getGenre().contains(value)) {
movieList.add(m);
}
if (type.equals("status") && m.getStatus() == Integer.parseInt(value)) {
movieList.add(m);
}
}
map.put("list", movieList);
map.put("total", movieList.size());
map.put("totalPage", (int) Math.ceil(movieList.size() / 10.0));
return map;
}
}
ProductControllerEx
package com.greenart.practice5.api;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.greenart.practice5.data.ProductInfo;
@RestController
@RequestMapping("/api")
public class APIController {
private static List<ProductInfo> prod_list = new ArrayList<ProductInfo>();
private static Integer nextNo = 1;
@GetMapping("/user/{id}")
public Map<String, Object> getUserInfo(@PathVariable String id) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("id", id);
return map;
}
@GetMapping("/product/list")
public Map<String, Object> getProductList() {
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("status", true);
map.put("total", prod_list.size());
map.put("totalPage", (int) Math.ceil(prod_list.size() / 12.0));
map.put("list", prod_list);
return map;
}
@PutMapping ("/product")
public Map<String, Object> putProduct(@RequestBody ProductInfo data) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
System.out.println(data);
data.setNo(nextNo);
prod_list.add(data);
nextNo++;
map.put("status", true);
map.put("message", "제품이 추가되었습니다.");
return map;
}
@GetMapping("/product/select_one")
public ProductInfo getProductSelectOne(@RequestParam Integer prodNo) {
for (ProductInfo p : prod_list) {
if (p.getNo() == prodNo)
return p;
}
return null;
}
@PatchMapping("/product")
public ResponseEntity< Map<String, Object>> patchProduct(@RequestBody ProductInfo data) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
for (ProductInfo p : prod_list) {
if (p.getNo() == data.getNo()) {
if (data.getName() != null) {
p.setName(data.getName());
}
if (data.getPrice() != null) {
p.setPrice(data.getPrice());
}
if (data.getDiscount() != null) {
p.setDiscount(data.getDiscount());
}
if (data.getReg_dt() != null) {
p.setReg_dt(data.getReg_dt());
}
map.put("status", true);
map.put("message", "제품 정보가 수정되었습니다.");
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.ACCEPTED);
}
}
map.put("status", false);
map.put("message", "제품번호를 확인해주세요.");
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.BAD_REQUEST);
}
@DeleteMapping("/product")
public Map<String, Object> deleteProduct(@RequestParam Integer prodNo) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
for (ProductInfo p : prod_list) {
if (p.getNo() == prodNo) {
prod_list.remove(p);
map.put("status", true);
map.put("message", "제품정보가 삭제되었습니다.");
return map;
}
}
map.put("status", false);
map.put("message", "제품정보가 잘못되었습니다.");
return map;
}
}