Class StoreController

java.lang.Object
com.modulink.Controller.ModuloController
com.modulink.Controller.UserModules.GMA.Store.StoreController

@Controller public class StoreController extends ModuloController
Controller per la gestione dello Store/Marketplace dei moduli.

Permette alle aziende di sfogliare il catalogo dei moduli disponibili, acquistare nuove funzionalità e disinstallare quelle non più necessarie. Gestisce anche le richieste di sviluppo per nuovi moduli custom.

Since:
1.3.0
Version:
2.0.2
Author:
Modulink Team
  • Field Details

  • Constructor Details

    • StoreController

      public StoreController(CustomUserDetailsService customUserDetailsService, AttivazioneService attivazioneService, ModuloService moduloService, SupportFormService supportFormService, List<ModuloController> moduloControllers)
      Costruttore con iniezione delle dipendenze.
      Parameters:
      customUserDetailsService - Servizio utenti.
      attivazioneService - Servizio gestione attivazioni/acquisti.
      moduloService - Servizio moduli.
      supportFormService - Servizio ticket supporto.
      moduloControllers - Lista di tutti i controller dei moduli installati (per callback disinstallazione).
      Since:
      1.3.0
  • Method Details

    • Store

      @GetMapping({"/dashboard/store/","/dashboard/store"}) public String Store(Principal principal, org.springframework.ui.Model model)
      Visualizza la vetrina dello store.

      Separa i moduli in due liste: acquistati e non acquistati, per una chiara presentazione all'utente.

      Parameters:
      principal - Identità utente.
      model - Modello UI.
      Returns:
      Vista "moduli/gma/store/StoreModuli" o redirect.
      Since:
      1.3.0
    • buyModule

      @PostMapping("/dashboard/store/buy") public String buyModule(@RequestParam("moduloId") int moduloId, Principal principal)
      Gestisce l'acquisto di un nuovo modulo.
      Parameters:
      moduloId - ID del modulo da attivare.
      principal - Identità utente.
      Returns:
      Redirect allo store con esito.
      Since:
      1.3.0
    • uninstallModule

      @PostMapping("dashboard/store/uninstall") public String uninstallModule(@RequestParam("moduloId") int moduloId, Principal principal)
      Gestisce la disinstallazione di un modulo.

      Esegue una procedura complessa:

      1. Verifica che il modulo sia disinstallabile (non di sistema).
      2. Rimuove l'attivazione a livello di database.
      3. Invoca il metodo disinstallaModulo sul controller specifico del modulo per pulire i dati correlati.
      Parameters:
      moduloId - ID del modulo da rimuovere.
      principal - Identità utente.
      Returns:
      Redirect allo store con esito.
      Since:
      1.3.0
    • requestModulePage

      @GetMapping({"/dashboard/store/request","/dashboard/store/request/"}) public String requestModulePage(Principal principal, org.springframework.ui.Model model)
      Visualizza il form per richiedere nuovi moduli.
      Parameters:
      principal - Identità utente.
      model - Modello UI.
      Returns:
      Vista richiesta moduli.
      Since:
      1.3.5
    • requestModule

      @PostMapping({"/dashboard/store/request","/dashboard/store/request/"}) public String requestModule(Principal principal, org.springframework.ui.Model model, @RequestParam("messaggio") String messaggio)
      Invia una richiesta di sviluppo per un nuovo modulo.
      Parameters:
      principal - Identità utente.
      model - Modello UI.
      messaggio - Descrizione della richiesta.
      Returns:
      Redirect con conferma invio.
      Since:
      1.3.5
    • disinstallaModulo

      public void disinstallaModulo(AziendaEntity azienda)
      Il modulo Store è un componente di sistema essenziale e non può essere disinstallato.
      Specified by:
      disinstallaModulo in class ModuloController
      Parameters:
      azienda - Azienda target.