Parcourir la source

添加数据展示

huangyan il y a 9 mois
Parent
commit
cd05740b91
7 fichiers modifiés avec 332 ajouts et 45 suppressions
  1. 146 0
      controllers/dataModel.go
  2. 9 1
      controllers/index.go
  3. 83 0
      models/dataModel.go
  4. 5 0
      routers/router.go
  5. 42 0
      service/dataModel.go
  6. 7 1
      utils/db.go
  7. 40 43
      views/index.html

+ 146 - 0
controllers/dataModel.go

@@ -0,0 +1,146 @@
+package controllers
+
+import (
+	"cc-officialweb/models"
+	"cc-officialweb/service"
+	"cc-officialweb/unity"
+	"encoding/json"
+	beego "github.com/beego/beego/v2/server/web"
+	"github.com/go-playground/validator/v10"
+	"strconv"
+)
+
+type DataModelController struct {
+	beego.Controller
+}
+
+// GetData 获取数据
+func (d *DataModelController) GetData() {
+	data, err := service.GetDataModel()
+	if err != nil {
+		d.Data["json"] = JSON{Code: 103, Msg: "获取失败", Data: ""}
+		d.ServeJSON()
+		return
+	} else {
+		d.Data["json"] = JSON{Code: 200, Msg: "获取成功", Data: data}
+		d.ServeJSON()
+	}
+}
+
+// UpdataModel 更新数据
+func (d *DataModelController) UpdataModel() {
+	var dataModel models.DataMOdelDto
+	var data models.DataMOdel
+	err := json.Unmarshal(d.Ctx.Input.RequestBody, &dataModel)
+	if err != nil {
+		d.Data["json"] = JSON{Code: 103, Msg: "json解析失败", Data: ""}
+		d.ServeJSON()
+		return
+	}
+	data.AfterSalesEarlyWarningService = dataModel.AfterSalesEarlyWarningService
+	data.Airpacing = dataModel.Airpacing
+	data.BigDataManagementPlatform = dataModel.BigDataManagementPlatform
+	data.Cdc = dataModel.Cdc
+	data.CdcInjectionSites = dataModel.CdcInjectionSites
+	data.ChainPharmacies = dataModel.ChainPharmacies
+	data.ColdChainLogisticsCompany = dataModel.ColdChainLogisticsCompany
+	data.ColdChainTraining = dataModel.ColdChainTraining
+	data.ColdStorage = dataModel.ColdStorage
+	data.Counties = dataModel.Counties
+	data.Dehumidifiers = dataModel.Dehumidifiers
+	data.DvisualizationPlatform = dataModel.DvisualizationPlatform
+	data.Freezer = dataModel.Freezer
+	data.Hospital = dataModel.Hospital
+	data.Incubator = dataModel.Incubator
+	data.IncubatorSafetyPlatform = dataModel.IncubatorSafetyPlatform
+	data.NumberOfProbes = dataModel.NumberOfProbes
+	data.NumberOfStores = dataModel.NumberOfStores
+	data.NumberOfValidationReports = dataModel.NumberOfValidationReports
+	data.NumberOfValidationScenarios = dataModel.NumberOfValidationScenarios
+	data.Pharmaceutical = dataModel.Pharmaceutical
+	data.PharmaceuticalCompanies = dataModel.PharmaceuticalCompanies
+	data.Prefecture = dataModel.Prefecture
+	data.Provinces = dataModel.Provinces
+	data.RefrigeratedCabinets = dataModel.RefrigeratedCabinets
+	data.RefrigeratedTrucks = dataModel.RefrigeratedTrucks
+	data.SafetyPlatformForRefrigeratedTrucks = dataModel.SafetyPlatformForRefrigeratedTrucks
+	data.ShadedCabinet = dataModel.ShadedCabinet
+	data.ShadedStorage = dataModel.ShadedStorage
+	data.ID = dataModel.ID
+	model := service.UpdateDataModel(data)
+	if model {
+		d.Data["json"] = JSON{Code: 200, Msg: "更新成功", Data: ""}
+		d.ServeJSON()
+	} else {
+		d.Data["json"] = JSON{Code: 103, Msg: "更新失败", Data: ""}
+		d.ServeJSON()
+	}
+}
+
+// DeleteDataModel 删除数据
+func (d *DataModelController) DeleteDataModel() {
+	getString := d.GetString("id")
+	err := validator.New().Var("id", "required")
+	if err != nil {
+		d.Data["json"] = JSON{Code: 104, Msg: "id不能为空", Data: ""}
+		d.ServeJSON()
+	}
+	atoi, _ := strconv.Atoi(getString)
+	id, err := unity.DeleteById(atoi, models.DataMOdel{})
+	if err != nil {
+		d.Data["json"] = JSON{Code: 104, Msg: "删除失败", Data: ""}
+		d.ServeJSON()
+	} else {
+		d.Data["json"] = JSON{Code: 200, Msg: "删除成功", Data: id}
+		d.ServeJSON()
+	}
+}
+
+//AddDataModel 添加数据模型
+func (d *DataModelController) AddDataModel() {
+	var data models.DataMOdel
+	var dataModel models.DataMOdelDto
+	err := json.Unmarshal(d.Ctx.Input.RequestBody, &dataModel)
+	if err != nil {
+		d.Data["json"] = JSON{Code: 103, Msg: "json解析失败", Data: ""}
+		d.ServeJSON()
+		return
+	}
+	data.AfterSalesEarlyWarningService = dataModel.AfterSalesEarlyWarningService
+	data.Airpacing = dataModel.Airpacing
+	data.BigDataManagementPlatform = dataModel.BigDataManagementPlatform
+	data.Cdc = dataModel.Cdc
+	data.CdcInjectionSites = dataModel.CdcInjectionSites
+	data.ChainPharmacies = dataModel.ChainPharmacies
+	data.ColdChainLogisticsCompany = dataModel.ColdChainLogisticsCompany
+	data.ColdChainTraining = dataModel.ColdChainTraining
+	data.ColdStorage = dataModel.ColdStorage
+	data.Counties = dataModel.Counties
+	data.Dehumidifiers = dataModel.Dehumidifiers
+	data.DvisualizationPlatform = dataModel.DvisualizationPlatform
+	data.Freezer = dataModel.Freezer
+	data.Hospital = dataModel.Hospital
+	data.Incubator = dataModel.Incubator
+	data.IncubatorSafetyPlatform = dataModel.IncubatorSafetyPlatform
+	data.NumberOfProbes = dataModel.NumberOfProbes
+	data.NumberOfStores = dataModel.NumberOfStores
+	data.NumberOfValidationReports = dataModel.NumberOfValidationReports
+	data.NumberOfValidationScenarios = dataModel.NumberOfValidationScenarios
+	data.Pharmaceutical = dataModel.Pharmaceutical
+	data.PharmaceuticalCompanies = dataModel.PharmaceuticalCompanies
+	data.Prefecture = dataModel.Prefecture
+	data.Provinces = dataModel.Provinces
+	data.RefrigeratedCabinets = dataModel.RefrigeratedCabinets
+	data.RefrigeratedTrucks = dataModel.RefrigeratedTrucks
+	data.SafetyPlatformForRefrigeratedTrucks = dataModel.SafetyPlatformForRefrigeratedTrucks
+	data.ShadedCabinet = dataModel.ShadedCabinet
+	data.ShadedStorage = dataModel.ShadedStorage
+	add, err := unity.Add(&data)
+	if err != nil {
+		d.Data["json"] = JSON{Code: 104, Msg: "添加失败", Data: ""}
+		d.ServeJSON()
+	} else {
+		d.Data["json"] = JSON{Code: 200, Msg: "添加成功", Data: add}
+		d.ServeJSON()
+	}
+}

+ 9 - 1
controllers/index.go

@@ -2,6 +2,7 @@ package controllers
 
 import (
 	"cc-officialweb/service"
+	"fmt"
 	beego "github.com/beego/beego/v2/server/web"
 )
 
@@ -31,7 +32,14 @@ func (c *MainController) Get() {
 	//产品服务
 	products := service.GetIndexProductServe("product")
 	serve := service.GetIndexProductServe("serve")
-
+	//数据大屏展示
+	data, err := service.GetDataModel()
+	if err == nil {
+		c.Data["Datas"] = data
+		fmt.Print(data, "    =========")
+	} else {
+		c.Data["Datas"] = "未获得数据"
+	}
 	c.Data["honor"] = honor
 	c.Data["banner"] = banner
 	c.Data["example"] = success

+ 83 - 0
models/dataModel.go

@@ -0,0 +1,83 @@
+package models
+
+import "gorm.io/gorm"
+
+type DataMOdel struct {
+	gorm.Model
+	//覆盖区域
+	Provinces  int `json:"provinces"`  //省区
+	Prefecture int `json:"prefecture"` //地州
+	Counties   int `json:"counties"`   //县份
+	//覆盖领域
+	Hospital                  int `json:"hospital"`                     //医院
+	Cdc                       int `json:"cdc"`                          //疾控中心
+	CdcInjectionSites         int `json:"cdc_injection_sites"`          //疾控注射点 
+	PharmaceuticalCompanies   int `json:"pharmaceutical_companies"`     //医药公司
+	DeviceCompanies           int `json:"device_companies"`             //器械公司
+	ChainPharmacies           int `json:"chain_pharmacies"`             //连锁药店
+	NumberOfStores            int `json:"number_of_stores"`             //门店数量
+	ColdChainLogisticsCompany int `json:"cold_chain_logistics_company"` //冷链物流公司
+	Pharmaceutical            int `json:"pharmaceutical"`               //药厂
+	//监测对象
+	RefrigeratedTrucks   int `json:"refrigerated_trucks"`   //冷藏车
+	Incubator            int `json:"incubator"`             //保温箱
+	Freezer              int `json:"freezer"`               //冷冻柜
+	RefrigeratedCabinets int `json:"refrigerated_cabinets"` //冷藏柜
+	ShadedCabinet        int `json:"shaded_cabinet"`        //阴凉柜
+	ColdStorage          int `json:"cold_storage"`          //冷库
+	ShadedStorage        int `json:"shaded_storage"`        //阴凉库
+	Airpacing            int `json:"airpacing"`             //空  调
+	Dehumidifiers        int `json:"dehumidifiers"`         //除湿机
+	//管理效率
+	DvisualizationPlatform              int `json:"dvisualization_platform"`                 //3D可视化平台
+	BigDataManagementPlatform           int `json:"big_data_management_platform"`            //大数据管理平台
+	ColdChainTraining                   int `json:"cold_chain_training"`                     //冷链系列培训
+	IncubatorSafetyPlatform             int `json:"incubator_safety_platform"`               //保温箱安全平台
+	SafetyPlatformForRefrigeratedTrucks int `json:"safety_platform_for_refrigerated_trucks"` //冷藏车安全平台
+	AfterSalesEarlyWarningService       int `json:"after_sales_early_warning_service"`       //售后预警服务
+	//冷链验证
+	NumberOfValidationScenarios int `json:"number_of_validation_scenarios"` //验证方案数量
+	NumberOfValidationReports   int `json:"number_of_validation_reports"`   //验证报告数量
+	//探头校准
+	NumberOfProbes int `json:"number_of_probes"` //探头数量
+}
+
+type DataMOdelDto struct {
+	ID uint `json:"id"`
+	//覆盖区域
+	Provinces  int `json:"provinces"`  //省区
+	Prefecture int `json:"prefecture"` //地州
+	Counties   int `json:"counties"`   //县份
+	//覆盖领域
+	Hospital                  int `json:"hospital"`                     //医院
+	Cdc                       int `json:"cdc"`                          //疾控中心
+	CdcInjectionSites         int `json:"cdc_injection_sites"`          //疾控注射点 
+	PharmaceuticalCompanies   int `json:"pharmaceutical_companies"`     //医药公司
+	DeviceCompanies           int `json:"device_companies"`             //器械公司
+	ChainPharmacies           int `json:"chain_pharmacies"`             //连锁药店
+	NumberOfStores            int `json:"number_of_stores"`             //门店数量
+	ColdChainLogisticsCompany int `json:"cold_chain_logistics_company"` //冷链物流公司
+	Pharmaceutical            int `json:"pharmaceutical"`               //药厂
+	//监测对象
+	RefrigeratedTrucks   int `json:"refrigerated_trucks"`   //冷藏车
+	Incubator            int `json:"incubator"`             //保温箱
+	Freezer              int `json:"freezer"`               //冷冻柜
+	RefrigeratedCabinets int `json:"refrigerated_cabinets"` //冷藏柜
+	ShadedCabinet        int `json:"shaded_cabinet"`        //阴凉柜
+	ColdStorage          int `json:"cold_storage"`          //冷库
+	ShadedStorage        int `json:"shaded_storage"`        //阴凉库
+	Airpacing            int `json:"airpacing"`             //空  调
+	Dehumidifiers        int `json:"dehumidifiers"`         //除湿机
+	//管理效率
+	DvisualizationPlatform              int `json:"dvisualization_platform"`                 //3D可视化平台
+	BigDataManagementPlatform           int `json:"big_data_management_platform"`            //大数据管理平台
+	ColdChainTraining                   int `json:"cold_chain_training"`                     //冷链系列培训
+	IncubatorSafetyPlatform             int `json:"incubator_safety_platform"`               //保温箱安全平台
+	SafetyPlatformForRefrigeratedTrucks int `json:"safety_platform_for_refrigerated_trucks"` //冷藏车安全平台
+	AfterSalesEarlyWarningService       int `json:"after_sales_early_warning_service"`       //售后预警服务
+	//冷链验证
+	NumberOfValidationScenarios int `json:"number_of_validation_scenarios"` //验证方案数量
+	NumberOfValidationReports   int `json:"number_of_validation_reports"`   //验证报告数量
+	//探头校准
+	NumberOfProbes int `json:"number_of_probes"` //探头数量
+}

+ 5 - 0
routers/router.go

@@ -53,4 +53,9 @@ func init() {
 	beego.Router("/api/recruit", &controllers.RecruitController{}, "delete:DeleteRecruit")
 	beego.Router("/api/allrecruit", &controllers.RecruitController{}, "post:GetAllRecruit")
 	beego.Router("/api/recruit", &controllers.RecruitController{}, "get:GetRecruit")
+
+	beego.Router("/api/data", &controllers.DataModelController{}, "get:GetData")
+	beego.Router("/api/data", &controllers.DataModelController{}, "put:UpdataModel")
+	beego.Router("/api/data", &controllers.DataModelController{}, "delete:DeleteDataModel")
+	beego.Router("/api/data", &controllers.DataModelController{}, "post:AddDataModel")
 }

+ 42 - 0
service/dataModel.go

@@ -0,0 +1,42 @@
+package service
+
+import (
+	"cc-officialweb/models"
+	"cc-officialweb/utils"
+)
+
+// GetDataModel 获得大数据展示屏
+func GetDataModel() (data models.DataMOdel, error error) {
+	tx := utils.DB.First(&data)
+	if tx.RowsAffected > 0 {
+		return data, nil
+	}
+	return data, error
+}
+
+//AddDataModel 添加数据大屏
+func AddDataModel(data models.DataMOdel) bool {
+	tx := utils.DB.Create(&data)
+	if tx.RowsAffected > 0 {
+		return true
+	}
+	return false
+}
+
+//UpdateDataModel 更新数据
+func UpdateDataModel(data models.DataMOdel) bool {
+	tx := utils.DB.Where("id=?", data.ID).Updates(&data)
+	if tx.RowsAffected > 0 {
+		return true
+	}
+	return false
+}
+
+//DeleteDataModel 删除数据
+func DeleteDataModel(id int) bool {
+	tx := utils.DB.Where("id = ?", id).Delete(&models.DataMOdel{})
+	if tx.RowsAffected > 0 {
+		return true
+	}
+	return false
+}

+ 7 - 1
utils/db.go

@@ -23,5 +23,11 @@ func init() {
 		panic(err)
 	}
 	DB.Set("gorm:table_options", "ENGINE=InnoDB").
-		AutoMigrate(&models.Resource{}, &models.Products{}, &models.Server{}, &models.Content{}, &models.User{}, &models.News{})
+		AutoMigrate(&models.Resource{},
+			&models.Products{},
+			&models.Server{},
+			&models.Content{},
+			&models.User{},
+			&models.News{},
+			&models.DataMOdel{})
 }

+ 40 - 43
views/index.html

@@ -13,8 +13,9 @@
     <link href="../static/img/apple-touch-icon.png" rel="apple-touch-icon">
 
     <!--字体 -->
-    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Raleway:300,400,500,700,800|Montserrat:300,400,700"
-          rel="stylesheet">
+    <link
+        href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Raleway:300,400,500,700,800|Montserrat:300,400,700"
+        rel="stylesheet">
 
     <!-- Bootstrap CSS File -->
     <link href="../static/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
@@ -35,25 +36,6 @@
 <body id="body">
 
 <!--==========================
-  Top Bar
-============================-->
-<!--  <section id="topbar" class="d-none d-lg-block">-->
-<!--    <div class="container clearfix">-->
-<!--      <div class="contact-info float-left">-->
-<!--        <i class="fa fa-envelope-o"></i> <a href="mailto:contact@example.com">name@websitename.com</a>-->
-<!--        <i class="fa fa-phone"></i> +1 2345 67855 22-->
-<!--      </div>-->
-<!--      <div class="social-links float-right">-->
-<!--        <a href="#" class="twitter"><i class="fa fa-twitter"></i></a>-->
-<!--        <a href="#" class="facebook"><i class="fa fa-facebook"></i></a>-->
-<!--        <a href="#" class="google-plus"><i class="fa fa-google-plus"></i></a>-->
-<!--        <a href="#" class="linkedin"><i class="fa fa-linkedin"></i></a>-->
-<!--        <a href="#" class="instagram"><i class="fa fa-instagram"></i></a>-->
-<!--      </div>-->
-<!--    </div>-->
-<!--  </section>-->
-
-<!--==========================
   Header
 ============================-->
 <header id="header">
@@ -69,6 +51,12 @@
                 <li class="menu-active"><a href="/">首页</a></li>
                 <li><a href="/about">关于我们</a></li>
                 <li><a href="/services/1">服务介绍</a></li>
+                <li class="menu-has-children"><a href="/news">新闻</a>
+                    <ul>
+                        <li><a href="#">公司新闻</a></li>
+                        <li><a href="#">行业新闻</a></li>
+                    </ul>
+                </li>
                 <li><a href="/product?ptype=hardware">产品介绍</a>
                     <ul>
                         <li><a href="/product?ptype=software">软件</a></li>
@@ -76,12 +64,7 @@
                     </ul>
                 </li>
                 <li><a href="/recruit">全国代理招募</a></li>
-                <li class="menu-has-children"><a href="/news">新闻</a>
-                    <ul>
-                        <li><a href="#">公司新闻</a></li>
-                        <li><a href="#">行业新闻</a></li>
-                    </ul>
-                </li>
+
                 <li><a href="/contact">联系我们</a></li>
             </ul>
         </nav><!-- #nav-menu-container -->
@@ -92,21 +75,21 @@
   banner
 ============================-->
 <div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
-    <div class="carousel-indicators">
-        <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active"
-                aria-current="true" aria-label="Slide 1"></button>
-        <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1"
-                aria-label="Slide 2"></button>
-        <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2"
-                aria-label="Slide 3"></button>
-    </div>
+    <!--<div class="carousel-indicators">-->
+    <!--    <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active"-->
+    <!--            aria-current="true" aria-label="Slide 1"></button>-->
+    <!--    <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1"-->
+    <!--            aria-label="Slide 2"></button>-->
+    <!--    <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2"-->
+    <!--            aria-label="Slide 3"></button>-->
+    <!--</div>-->
     <div class="carousel-inner">
         {{range $index,$item:=.banner}}
         <div class="float-buttons">
             <button class="btn btn-outline-primary btn-lg">校准</button>
             <button class="btn btn-outline-info btn-lg">验证</button>
         </div>
-        <div class="carousel-item active">
+        <div class="carousel-item{{if eq $index 0}} active{{end}}">
             <img src="{{$item}}" id="carousel-img-height" class="d-block w-100" alt="...">
         </div>
         {{end}}
@@ -124,7 +107,16 @@
 </div><!-- #intro -->
 
 <main id="main">
-
+    <!--数据展示-->
+    <section class="features">
+        <div class="container" data-aos="fade-up">
+            <div class="row">
+                <div class="div1 col-3">
+                    <h4><a href="services/{{.ID}}">sss</a></h4>
+                    <p>{{.Datas}}</p>
+                </div>
+            </div>
+    </section>
     <!--==========================
       服务介绍
     ============================-->
@@ -132,7 +124,8 @@
         <div class="container" data-aos="fade-up">
             <div class="section-header" style="margin-top: 40px;">
                 <h2>服务介绍</h2>
-                <p>宝智达主要经营冷链温湿度监测平台、储运温湿度监测系统、温湿度监控设备及温湿度记录仪等系列产品、药品专用陈列柜、药品温度实时监测保温箱、冷链验证服务等均具有自主知识产权。</p>
+                <p>
+                    宝智达主要经营冷链温湿度监测平台、储运温湿度监测系统、温湿度监控设备及温湿度记录仪等系列产品、药品专用陈列柜、药品温度实时监测保温箱、冷链验证服务等均具有自主知识产权。</p>
             </div>
             <div class="row">
                 <div class="div1 col-6">
@@ -142,10 +135,13 @@
                     {{end}}
                 </div>
                 <div class="div2 col-6" style="width: 300px;height: auto">
-                    <img src="https://ts1.cn.mm.bing.net/th/id/R-C.adaca9eef98172ce4fbb1c2f36405cf6?rik=So40VJkhm3qAxQ&riu=http%3a%2f%2fimg.juimg.com%2ftuku%2fyulantu%2f120417%2f6597-12041F9233979.jpg&ehk=Q7ZmO7gl0UOGFRlkiETxxrZrML6olvsSJ%2fuAINaNNeY%3d&risl=&pid=ImgRaw&r=0"
-                         class="img-fluid" alt="">
+                    <img
+                        src="https://ts1.cn.mm.bing.net/th/id/R-C.adaca9eef98172ce4fbb1c2f36405cf6?rik=So40VJkhm3qAxQ&riu=http%3a%2f%2fimg.juimg.com%2ftuku%2fyulantu%2f120417%2f6597-12041F9233979.jpg&ehk=Q7ZmO7gl0UOGFRlkiETxxrZrML6olvsSJ%2fuAINaNNeY%3d&risl=&pid=ImgRaw&r=0"
+                        class="img-fluid" alt="">
                 </div>
-                <button class="btn btn-outline-primary"  style="margin-top: 40px;" onclick="location.href='/services/1'">了解更多服务</button>
+                <button class="btn btn-outline-primary" style="margin-top: 40px;" onclick="location.href='/services/1'">
+                    了解更多服务
+                </button>
             </div>
 
         </div>
@@ -169,7 +165,8 @@
                     </div>
                 </div>
                 {{end}}
-                <button class="btn btn-outline-primary" onclick="location.href='product?ptype=hardware'">查看更多</button>
+                <button class="btn btn-outline-primary" onclick="location.href='product?ptype=hardware'">查看更多
+                </button>
             </div>
         </div>
     </section><!-- #services -->
@@ -244,7 +241,7 @@
     <div class="container">
         <div class="copyright">
             © 版权所有 2024 宝智达科技有限公司 <a target="_blank"
-                                                                      href="https://beian.miit.gov.cn/">黔ICP备2022006612号</a>
+                                                  href="https://beian.miit.gov.cn/">黔ICP备2022006612号</a>
         </div>
         <div class="credits">
         </div>