Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая работа Головков И.Е. 12002108

.pdf
Скачиваний:
4
Добавлен:
26.06.2024
Размер:
1.72 Mб
Скачать

Аналогично (страница с формой добавления и списком хранимых сущностей, страница детального просмотра, редактирования и удаления)

устроено взаимодействие с записями блога и специальными предложениями.

Советующие страницы представлены на рисунках 15-19.

Рисунок 15 – Страница добавления и списка специальных предложений

Рисунок 16 – Список специальных предложений

21

Рисунок 17 – Информация и форма изменения специального предложения

Рисунок 18 – Страница добавления и списка постов блога

Рисунок 19 – Информация и форма изменения поста блога

22

В результате проведенного тестирования приложения было установлено, что оно соответствует заявленным требованиям и функциональности. Тестирование приложения играет важную роль в обеспечении его надежности и эффективности перед выпуском в эксплуатацию.

23

Заключение В результате курсовой работы была разработана автоматизированная

информационная система под названием для магазина спортивного инвентаря,

предназначенная для управления учета товаров в магазине спортивных товаров.

Основанное на Spring Web-технологиях приложение предоставляет удобный интерфейс для администраторов и менеджеров по продажам, позволяя им эффективно управлять каталогом товаров, брендами, постами в блоге и специальными предложениями.

Система включает в себя функционал для создания, просмотра, редактирования и удаления товаров, брендов, постов в блоге и специальных предложений.

Благодаря интеграции с платежными системами, клиенты могут безопасно и удобно оформлять заказы на сайте магазина. Кроме того, приложение предоставляет возможность проведения акций и специальных предложений, что способствует увеличению продаж и привлечению новых клиентов.

Интерфейс приложения разработан с учетом удобства пользователя, что обеспечивает простоту и эффективность в работе. В ходе выполнения работы были использованы знания, полученные как на лекциях, так и на практических занятиях, что подчеркивает важность усвоения теоретического материала для успешного решения практических задач. Курсовая работа оформлена согласно всем методическим рекомендациям.

24

 

 

 

Список использованных источников

 

 

1.

Spring

Framework

Documenation.

Режим

доступа:

https://docs.spring.io/spring-framework/reference/index.html

 

 

2.

Documentation

-

Thymeleaf.

Режим

доступа:

https://www.thymeleaf.org/documentation.html

3.Overview (Lombok). – Режим доступа: https://projectlombok.org/api/

4.PostgreSQL: Documentation – Режим доступа: https://www.postgresql.org/docs/current/index.html

5.Java Documentation – Режим доступа: https://docs.oracle.com/en/java/

25

Приложение А

Контроллеры

package com.sportline.controller;

import lombok.AllArgsConstructor;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping;

@Controller

@AllArgsConstructor

@RequestMapping("sportline") public class BasicController {

@GetMapping("")

public String getHomePage() { return "sportline/basic/home";

}

}

package com.sportline.controller;

import com.sportline.model.entity.BlogPost; import com.sportline.service.BlogService; import lombok.AllArgsConstructor;

import org.springframework.stereotype.Controller; import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.*;

@Controller

26

@AllArgsConstructor

@RequestMapping("/sportline/blog") public class BlogController {

private static final String REDIRECT_LIST = "redirect:/sportline/blog"; private static final String REDIRECT_ITEM = "redirect:/sportline/blog/{id}";

private BlogService blogService;

@PostMapping("")

public String postBlogPost(@ModelAttribute("blogPost") BlogPost blogPost) { blogService.create(blogPost);

return REDIRECT_LIST;

}

@PutMapping("/{id}")

public String putBlogPost(@PathVariable("id") long id, @ModelAttribute("blogPost") BlogPost blogPost) {

blogService.updateById(blogPost, id); return REDIRECT_ITEM;

}

@DeleteMapping("/{id}")

public String deleteBlogPost(@PathVariable("id") long id) { blogService.deleteById(id);

return REDIRECT_LIST;

}

@GetMapping("")

public String getBlogPosts(Model model,

27

@ModelAttribute("blogPost") BlogPost blogPost, @RequestParam(name = "pageNum", required = false,

defaultValue = "0") int pageNum,

@RequestParam(name = "pageSize", required = false, defaultValue = "4") int pageSize) {

model.addAttribute("blogPostsPage", blogService.findAllByPage(pageNum, pageSize));

model.addAttribute("blogPostsList", blogService.findAllByPage(pageNum, pageSize).getContent());

return "sportline/blog/list";

}

@GetMapping("/{id}")

public String getBlogPost(Model model, @PathVariable("id") long id) {

model.addAttribute("blogPostItem", blogService.getById(id)); return "sportline/blog/item";

}

}

package com.sportline.controller;

import com.sportline.model.entity.Brand; import com.sportline.service.BrandService; import lombok.AllArgsConstructor;

import org.springframework.stereotype.Controller; import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.*;

28

@Controller

@AllArgsConstructor

@RequestMapping("/sportline/brands") public class BrandController {

private static final String REDIRECT_LIST = "redirect:/sportline/brands"; private static final String REDIRECT_ITEM = "redirect:/sportline/brands/{id}";

private BrandService brandService;

@PostMapping("")

public String postBrand(@ModelAttribute("brand") Brand brand) { brandService.create(brand);

return REDIRECT_LIST;

}

@PutMapping("/{id}")

public String putBrand(@PathVariable("id") long id, @ModelAttribute("brand") Brand brand) {

brandService.updateById(brand, id); return REDIRECT_ITEM;

}

@DeleteMapping("/{id}")

public String deleteBrand(@PathVariable("id") long id) { brandService.deleteById(id);

return REDIRECT_LIST;

}

@GetMapping("")

29

public String getBrands(Model model, @ModelAttribute("brand") Brand brand,

@RequestParam(name = "pageNum", required = false, defaultValue = "0") int pageNum,

@RequestParam(name = "pageSize", required = false, defaultValue = "4") int pageSize) {

model.addAttribute("brandsPage", brandService.findAllByPage(pageNum, pageSize));

model.addAttribute("brandsList", brandService.findAllByPage(pageNum, pageSize).getContent());

return "sportline/brand/list";

}

@GetMapping("/{id}")

public String getBrand(Model model, @PathVariable("id") long id) {

model.addAttribute("brandItem", brandService.getById(id)); return "sportline/brand/item";

}

}

package com.sportline.controller;

import com.sportline.model.entity.Product; import com.sportline.model.entity.Status; import com.sportline.service.BrandService; import com.sportline.service.ProductService; import lombok.AllArgsConstructor;

import org.springframework.stereotype.Controller;

30