Скачиваний:
23
Добавлен:
22.05.2022
Размер:
2.22 Mб
Скачать

ПРИЛОЖЕНИЕ Б

Листинг кода алгоритмов, реализующих бизнес-логику

package by.bsuir.app.dao;

import by.bsuir.app.entity.User;

import by.bsuir.app.exception.DaoException; import org.hibernate.Session;

import org.hibernate.SessionFactory;

import javax.persistence.Query;

import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root;

import java.io.Serializable; import java.util.List; import java.util.Optional;

public abstract class AbstractDaoT extends Serializable implements DaoT {

private final ClassT localClass;

private final SessionFactory sessionFactory;

public AbstractDao(SessionFactory sessionFactory, ClassT localClass) { this.localClass = localClass;

this.sessionFactory = sessionFactory;

}

@Override

public OptionalT findById(Long id) {

return Optional.ofNullable(getCurrentSession().get(localClass, id));

}

@Override

public ListT findAll() {

return getCurrentSession().createQuery(from + localClass.getName(), localClass).getResultList();

}

@Override

public Long save(T entity) {

return (Long) getCurrentSession().save(entity);

}

@Override

public void update(T entity) { getCurrentSession().update(entity);

}

43

@Override

public void delete(T entity) { getCurrentSession().delete(entity);

}

@Override

public void deleteById(Long entityId) { OptionalT entity = findById(entityId); entity.ifPresent(thisdelete);

}

@Override

public OptionalT findByCriteriaSingleResult(String param, String fieldName) throws DaoException {

ListT resultList = findByCriteriaList(param, fieldName);

if (resultList.size() == 0) { return Optional.empty();

} else if (resultList.size() == 1) {

return Optional.of((T) resultList.get(0)); } else {

throw new DaoException(More than 1 result.);

}

}

@SuppressWarnings(unchecked)

@Override

public ListT findByCriteriaList(String param, String fieldName) throws DaoException {

try {

Session session = getCurrentSession(); CriteriaBuilder cb = session.getCriteriaBuilder(); CriteriaQueryT cr = cb.createQuery(localClass); RootT user = cr.from(localClass);

cr.select(user).where(cb.equal(user.get(fieldName),param));

Query query = session.createQuery(cr); return (ListT) query.getResultList();

} catch (Exception e) {

throw new DaoException(e);

}

}

protected final Session getCurrentSession() { return sessionFactory.getCurrentSession();

}

}

package by.bsuir.app.entity;

44

import com.fasterxml.jackson.annotation.JsonFormat;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.;

import javax.persistence.; import java.util.Date;

@Data

@MappedSuperclass

@NoArgsConstructor

@AllArgsConstructor

@EqualsAndHashCode(exclude = {user}, callSuper = true) @ToString(exclude = user)

@JsonIgnoreProperties(value = { user })

public abstract class AnalyzesT extends Identifiable extends BaseEntity{

private static final long serialVersionUID = 1L;

@OneToOne

protected User attendingDoctor;

@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)

@JoinColumn(name = user_id) protected User user;

@JsonFormat(pattern=dd-MM-yyyy HHmmss) protected Date createdOn;

protected String result;

}

package by.bsuir.app.controller.doctor;

import by.bsuir.app.entity.BiochemicalBloodTest; import by.bsuir.app.entity.GeneralBloodTest;

import by.bsuir.app.service.BiochemicalBloodTestService; import by.bsuir.app.service.GeneralBloodTestService; import org.springframework.http.HttpStatus;

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

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

import java.util.List; import java.util.Map;

@Controller

@RequestMapping(doctorpatients) public class PatientsController {

private final BiochemicalBloodTestService biochemicalBloodTestService; private final GeneralBloodTestService generalBloodTestService;

45

public PatientsController(BiochemicalBloodTestService biochemicalBloodTestService,

GeneralBloodTestService

generalBloodTestService) {

this.biochemicalBloodTestService = biochemicalBloodTestService; this.generalBloodTestService = generalBloodTestService;

}

@GetMapping()

public String showPatientsPage(Model model) { return doctorpatients-analyzes;

}

@ResponseBody

@PutMapping(commentbioBlood{username})

public ResponseEntity setRecommendationBio(@PathVariable String username, @RequestBody MapString, String params) {

return new ResponseEntity(HttpStatus.OK);

}

@PutMapping(commentgeneralBlood{username})

public ResponseEntity setRecommendationGeneral(@PathVariable String username, @RequestBody MapString, String params) {

return new ResponseEntity(HttpStatus.OK);

}

@ResponseBody

@GetMapping(bioBlood)

public ListBiochemicalBloodTest wrappedFindAllBiochemicalBlood() { return biochemicalBloodTestService.findAll();

}

@ResponseBody

@GetMapping(generalBlood)

public ListGeneralBloodTest findAllGeneralBlood() { return generalBloodTestService.findAll();

}

@ResponseBody

@PatchMapping(bioBlood{id})

public ResponseEntity addBioBloodTestResult(@PathVariable(id) Long bloodTestId,

@RequestBody MapString,

String params) { biochemicalBloodTestService.addRecommendation(

Long.parseLong(params.get(userId)),

bloodTestId, params.get(recom).replace(, ));

return new ResponseEntity(HttpStatus.OK);

}

}

46

ПРИЛОЖЕНИЕ В Скрипт генерации базы данных

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TABLE client (

client_id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), client_name VARCHAR(255) NOT NULL,

client_email VARCHAR(255) UNIQUE NOT NULL, client_password VARCHAR(255) NOT NULL

);

CREATE TABLE fin_analitik (

mentor_id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), mentor_name VARCHAR(255) NOT NULL,

mentor_email VARCHAR(255) UNIQUE NOT NULL, mentor_password VARCHAR(255) NOT NULL

);

CREATE TABLE admin (

admin_id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), admin_name VARCHAR(255) NOT NULL,

admin_email VARCHAR(255) UNIQUE NOT NULL, admin_password VARCHAR(255) NOT NULL

);

CREATE TABLE IF NOT EXISTS projects (

project_id uuid NOT NULL DEFAULT uuid_generate_v4(), project_name varchar NOT NULL,

project_target_group varchar NOT NULL, project_description varchar NOT NULL, project_image varchar NULL,

CONSTRAINT projects_pkey PRIMARY KEY (project_id), CONSTRAINT projects_project_name_key UNIQUE (project_name)

);

CREATE TABLE team (

id

uuid PRIMARY KEY DEFAULT uuid_generate_v4(),

name

VARCHAR(200) NOT NULL,

role

VARCHAR(200) NOT NULL,

img

VARCHAR(500)

);

 

CREATE TABLE client_profile (

client_id uuid UNIQUE REFERENCES students(student_id),

47

client_number BIGINT NOT NULL, client_phone BIGINT NOT NULL, client_bio VARCHAR(3000) NOT NULL, client_img VARCHAR(500), client_active BOOLEAN NOT NULL

);

CREATE TABLE project_proposal (

student_id uuid UNIQUE REFERENCES students(student_id), project_name varchar NOT NULL,

problem_statement varchar NOT NULL, proposed_action varchar NOT NULL, expected_result varchar NOT NULL, social_returns varchar NOT NULL, key_activities varchar NOT NULL, key_resources varchar NOT NULL, team varchar NOT NULL, client_profile varchar NOT NULL,

client_relationships varchar NOT NULL, client_channels varchar NOT NULL, key_partners varchar NOT NULL, stakeholders varchar NOT NULL, networks varchar NOT NULL, startup_costs varchar NOT NULL, operational_costs varchar NOT NULL, finance_plan varchar NOT NULL, business_plan varchar NOT NULL, implementation_plan varchar NOT NULL, key_milestones varchar NOT NULL,

monitoring_and_evaluation varchar NOT NULL, who_we_are varchar NOT NULL, vision_and_mission varchar NOT NULL, track_record varchar NOT NULL,

project_status varchar NOT NULL,

);

48

Соседние файлы в папке курсач 6 сем записка + плакаты