ProductRestController 2022/04/19
파일명 ProductCountRestController.java
package com.example.restcontroller;
import java.util.HashMap;
import java.util.Map;
import com.example.entity.ProductCountEntity;
import com.example.repository.ProductCountRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
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;
@RestController
@RequestMapping(value = "/api/productcount")
public class ProductCountRestController {
    
    @Autowired ProductCountRepository pcRepository;
    
    //127.0.0.1:9090/ROOT/api/productcount/insert.json
    // {cnt : 12, type:"I" , product:{no:1007}}
    // {cnt : -5, type:"O" , product:{no:1007}}
    @PostMapping(
        value = "/insert.json",
        consumes = { MediaType.ALL_VALUE },
        produces = { MediaType.APPLICATION_JSON_VALUE})
    public Map<String, Object> insertPOST(    
        @RequestBody ProductCountEntity productCount    
    ){
        Map<String, Object> map = new HashMap<>();
        try {
            pcRepository.save(productCount);
            map.put("status", 200);
        } 
        catch (Exception e) {
            e.printStackTrace();
            map.put("status", 0);
        }
        return map;
    }
    @GetMapping( value = "/selectcount.json",
    consumes = { MediaType.ALL_VALUE },
        produces = { MediaType.APPLICATION_JSON_VALUE})
        public Map<String, Object> selectcountGET(    
            @RequestParam(name = "no") long no
        ){
            Map<String, Object> map = new HashMap<>();
            try {
                Long total = pcRepository.selectProductCountGroup(no);
                map.put("status", 200);
                map.put("total", total);
            } 
            catch (Exception e) {
                e.printStackTrace();
                map.put("status", 0);
            }
            return map;
        }        
}
파일명 ProductRestController.java
package com.example.restcontroller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.example.entity.ProductEntity;
import com.example.entity.ProductViewEntity;
import com.example.repository.ProductRepository;
import com.example.repository.ProductViewRepository;
import com.example.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
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 org.springframework.web.multipart.MultipartFile;
@RestController
@CrossOrigin("*") // 앱으로 만들경우 앱에서 데이터를 가져갈 수 없음.(포스트맨에선 사용 됨)
@RequestMapping(value = "/api/product")
public class ProductRestController {
    @Autowired ProductViewRepository pvRepository;
    @Autowired ProductRepository pRepository;
    @Autowired ProductService pService;
    // 127.0.0.1:9090/ROOT/api/product/insert.json
    @PostMapping(
        value = "/insert.json",
        consumes = { MediaType.ALL_VALUE },
        produces = { MediaType.APPLICATION_JSON_VALUE})
    public Map<String, Object> insertPOST(
        @ModelAttribute ProductEntity product,
        // 보낼 때 for-data  받을때 @ModelAttribute
        // const body = new formData();
        // body.append("uemail",state.uemail)
        // body.append("upw",state.upw)
        // @RequestBody ProductEntity product
        // // 보낼때 jaon  받을때 RequestBody
        // // cosnt body = { 
        // //      uemail:state.uemail,
        // //      upw : state.upw,
        // //     }
        @RequestParam(name = "file", required = false) MultipartFile file
    ){
        Map<String, Object> map = new HashMap<>();
        try {
            if(file != null){
                if( !file.isEmpty() ){
                    product.setImagedata(file.getBytes());
                    product.setImagename(file.getOriginalFilename());
                    product.setImagesize(file.getSize());
                    product.setImagetype(file.getContentType());
                }
            }
            pRepository.save(product);
            map.put("status", 200);
        } 
        catch (Exception e) {
            e.printStackTrace();
            map.put("status", 0);
        }
        return map;
    }
    // 127.0.0.1:9090/ROOT/api/product/insert.json
    @PostMapping(
        value = "/insertbatch.json",
        consumes = { MediaType.ALL_VALUE },
        produces = { MediaType.APPLICATION_JSON_VALUE})
    public Map<String, Object> insertbatchPOST(            
        @RequestParam(name = "name") String[] name,
        @RequestParam(name = "price") Long[] price,
        @RequestParam(name = "file", required = false) MultipartFile[] file
    ){
        Map<String, Object> map = new HashMap<>();
        try {
            List<ProductEntity> list = new ArrayList<>();            
            for(int i=0; i<name.length; i++){
            //     System.out.println("=====product insert batch=====");
            //     System.out.println(name[i]);
            //     System.out.println(price[i]);
            //     System.out.println(file[i].getBytes());
            //     System.out.println(file[i].getOriginalFilename());
            //     System.out.println(file[i].getSize());
            //     System.out.println(file[i].getContentType());
                
                ProductEntity prd = new ProductEntity();
                prd.setName(name[i]);
                prd.setPrice(price[i]);
                if(file[i] != null){
                    if( !file[i].isEmpty() ){
                        prd.setImagedata(file[i].getBytes());
                        prd.setImagename(file[i].getOriginalFilename());
                        prd.setImagesize(file[i].getSize());
                        prd.setImagetype(file[i].getContentType());
                    }
                }
                
                list.add(prd);
            }
            pService.insertBatch(list);
            // pRepository.saveAll(list);
            map.put("status", 200);
        } 
        catch (Exception e) {
            e.printStackTrace();
            map.put("status", 0);
        }
        return map;
    }
    
    // 127.0.0.1:9090/ROOT/api/product/update.json
    @PutMapping(value = "/update.json",
    consumes = { MediaType.ALL_VALUE },
        produces = { MediaType.APPLICATION_JSON_VALUE})
    public Map<String, Object> updatePatch(
        @RequestBody ProductEntity product
    ){
        Map<String, Object> map = new HashMap<>();
        try {
            ProductEntity product1 = pRepository.findById(product.getNo()).orElse(null);
            product1.setName( product.getName() );
            product1.setPrice( product.getPrice() );
            pRepository.save(product1);
            map.put("status", 200);
            
        } catch (Exception e) {
            e.printStackTrace();
            map.put("status", 0);
        }
        return map;
    }
    // 127.0.0.1:9090/ROOT/api/product/selectone.json?no=1007
    @GetMapping( value = "/selectone.json",
    consumes = { MediaType.ALL_VALUE },
        produces = { MediaType.APPLICATION_JSON_VALUE})
    public Map<String, Object> selectOnePOST(    
        @RequestParam(name = "no") long no
    ){
        Map<String, Object> map = new HashMap<>();
        try {
            ProductViewEntity entity = pvRepository.findById(no).orElse(null);                
            map.put("result", entity);
            map.put("status", 200);
            
        } 
        catch (Exception e) {
            e.printStackTrace();
            map.put("status", 0);
        }
        return map;
    }        
}
                Author And Source
이 문제에 관하여(ProductRestController 2022/04/19), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@anrkfl/ProductRestController-20220419저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)