Код: Выделить всё
export default function Cart()
{ const username=localStorage.getItem("username");
const [data,setdata]=useState([]);
const [amount,setAmount]=useState(0);
const items=data.map((item)=>{
return(
{item.name}
{item.price}₹
{item.quantity}
handlepayment(item.price,item.name,item.username)}>Make payment
)
})
function handlepayment(price,name,username)
{
console.log(`price=${price}, name=${name} , username=${username}`)
if(amount
{
alert("insufficient balance");
return;
}
const url=`http://localhost:8080/cartproducts/${username}/${name}}`;
fetch(url, { method: 'DELETE' })
.then((response) => {
if (!response.ok) {
alert("something is wrong");
throw new Error("Invalid credentials");
}
return response.json();
})
.then((data) => {console.log(data);
updateamount(price);
})
.catch(error => console.error(error));
}
Ниже контроллер игнорирует операторы печати, предназначенные для отладки.
Код: Выделить всё
@RestController
@RequestMapping("/")
@CrossOrigin
public class FoodItemController {
@Autowired
private FoodItemService service;
@DeleteMapping("/cartproducts/{username}/{name}")
public ResponseEntity deletefooditem(@PathVariable String username, @PathVariable String name)
{
System.out.println("inside deletefooditem"+"username="+username+" "+"name="+name);
Map response=new HashMap();
if(service.deletefooditem(username,name))
{
response.put("successfully", "deleted");
return new ResponseEntity(response,HttpStatus.OK);
}
else {
response.put("something is wrong", "not deleted");
return new ResponseEntity(response,HttpStatus.BAD_REQUEST);
}
}
}
Код: Выделить всё
public boolean deletefooditem(String username,String name)
{
System.out.println("inside service"+"username="+username+" "+"name="+name);
FoodItems masteritem=repo.findByUsernameAndName(username,name);
if(masteritem!=null)
{
repo.delete(masteritem);
return true;
}
return false;
}
Код: Выделить всё
public interface FoodItemrepo extends JpaRepository {
List findAllByUsername(String username);
FoodItems findByUsernameAndName(String username,String name);
}
Код: Выделить всё
@Entity
public class FoodItems {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int Id;
private String name;
private String username;
private int price;
private int quantity;
Проблема в том, что поступающий на уровень обслуживания. Невозможно найти данные из базы данных с помощью упомянутого метода findBy. Но при использовании почтальона я не столкнулся с какой-либо проблемой, например, с удалением данных. Если я использую findByUsernameAndName в другом элементе имени метода, который я упомянул ниже, он работает так, как ожидалось, когда я нажимаю из пользовательского интерфейса.
Код: Выделить всё
@Transactional
public void additem(FoodItems item)
{
String username=item.getUsername();
String name=item.getName();
FoodItems fooditem=repo.findByUsernameAndName(username,name);
System.out.println(fooditem);
if(fooditem!=null)
{
item.setQuantity(item.getQuantity()+fooditem.getQuantity());
item.setPrice(item.getQuantity()*item.getPrice());
repo.save(item);
repo.delete(fooditem);
}
repo.save(item);
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... gh-postman
Мобильная версия