Quellcode durchsuchen

添加首页的功能,并优化了部分后台

Administrator vor 2 Jahren
Ursprung
Commit
21704b0cca

+ 3 - 0
.test/req.http

@@ -7,4 +7,7 @@ Auth-Sign:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTYxMzg2NTQsImlzcyI6I
   "age": 18
 }
 
+###
+GET http://localhost:8182/api/home/banner
+Content-Type: application/json
 ###

+ 31 - 0
data/dao/ShopDao.go

@@ -0,0 +1,31 @@
+package dao
+
+import (
+	"demo/configs"
+	"demo/data/domain"
+	"demo/data/domain/vo"
+)
+
+func GetAdviceData() (vo.ShopAdviceVo, error) {
+	var carousels []domain.ShopAdviceCarousel
+	err := configs.Engine.Table("shop_advice_carousel").
+		Where("state = 1 and show_type = 'carousel'").
+		Asc("sort").
+		Limit(10).Find(&carousels)
+	if err != nil {
+		return vo.ShopAdviceVo{}, err
+	}
+	sku := make([]vo.AdviceSku, 0)
+	err = configs.Engine.Table("shop_advice_carousel").
+		Where("state = 1 and show_type = 'package'").
+		Join("INNER", "goods_sku", "shop_advice_carousel.to_id = goods_sku.id").
+		Limit(6).Find(&sku)
+	if err != nil {
+		return vo.ShopAdviceVo{}, err
+	}
+	vo := vo.ShopAdviceVo{
+		Carousels:   carousels,
+		PackageList: sku,
+	}
+	return vo, err
+}

+ 6 - 4
data/domain/DoMain.go

@@ -181,7 +181,7 @@ type GenTableColumn struct {
 	IsKey         string `xorm:"is_key"  json:"isKey"`                 // 1 0 注释:是否主键
 	IsIncrement   string `xorm:"is_increment"  json:"isIncrement"`     // 1 0 注释:是否自增
 	IsRequired    string `xorm:"is_required"  json:"isRequired"`       // 1 0 注释:是否未必填
-	QueryType     string `xorm:"query_type"  json:"queryType"`         // 1 0 注释:查询方式
+	QueryType     string `xorm:"query_type"  json:"queryType"`         // 255 0 注释:查询方式
 	VueShowType   string `xorm:"vue_show_type"  json:"vueShowType"`    // 255 0 注释:前端显示类型
 	DictType      string `xorm:"dict_type"  json:"dictType"`           // 255 0 注释:字典类型
 }
@@ -365,11 +365,13 @@ func (receiver ManageUser) String() string {
 	return fmt.Sprint("ManageUser{Id:", receiver.Id, ",Name:", receiver.Name, ",Username:", receiver.Username, ",Password:", receiver.Password, ",CreationTime:", receiver.CreationTime, ",LoginTime:", receiver.LoginTime, ",Status:", receiver.Status, ",RoleId:", receiver.RoleId, ",Phone:", receiver.Phone, ",Email:", receiver.Email, ",Avatar:", receiver.Avatar, "}")
 }
 
-// ShopAdviceCarousel
+// ShopAdviceCarousel 商城广告
 type ShopAdviceCarousel struct {
 	Id         int64     `json:"id"`                             // 11 0 注释:
 	Name       string    `xorm:"name"  json:"name"`              // 255 0 注释:广告名称
+	ImageUrl   string    `xorm:"image_url"  json:"imageUrl"`     // 255 0 注释:图片
 	ToId       int64     `xorm:"to_id"  json:"toId"`             // 11 0 注释:目标id
+	ToType     string    `xorm:"to_type"  json:"toType"`         // 255 0 注释:目标类型
 	AdviceType string    `xorm:"advice_type"  json:"adviceType"` // 255 0 注释:广告类型,用于跳转到对应的页面
 	Sort       string    `xorm:"sort"  json:"sort"`              // 255 0 注释:排序
 	State      string    `xorm:"state"  json:"state"`            // 255 0 注释:状态
@@ -381,7 +383,7 @@ type ShopAdviceCarousel struct {
 }
 
 func (receiver ShopAdviceCarousel) String() string {
-	return fmt.Sprint("ShopAdviceCarousel{Id:", receiver.Id, ",Name:", receiver.Name, ",ToId:", receiver.ToId, ",AdviceType:", receiver.AdviceType, ",Sort:", receiver.Sort, ",State:", receiver.State, ",ShowType:", receiver.ShowType, ",CreateBy:", receiver.CreateBy, ",CreateTime:", receiver.CreateTime, ",UpdateBy:", receiver.UpdateBy, ",UpdateTime:", receiver.UpdateTime, "}")
+	return fmt.Sprint("ShopAdviceCarousel{Id:", receiver.Id, ",Name:", receiver.Name, ",ImageUrl:", receiver.ImageUrl, ",ToId:", receiver.ToId, ",ToType:", receiver.ToType, ",AdviceType:", receiver.AdviceType, ",Sort:", receiver.Sort, ",State:", receiver.State, ",ShowType:", receiver.ShowType, ",CreateBy:", receiver.CreateBy, ",CreateTime:", receiver.CreateTime, ",UpdateBy:", receiver.UpdateBy, ",UpdateTime:", receiver.UpdateTime, "}")
 }
 
 // ShopTopic 商品主题
@@ -399,7 +401,7 @@ func (receiver ShopTopic) String() string {
 	return fmt.Sprint("ShopTopic{Id:", receiver.Id, ",Sort:", receiver.Sort, ",ParentId:", receiver.ParentId, ",TopicPageImage:", receiver.TopicPageImage, ",TopicName:", receiver.TopicName, ",TopicDesc:", receiver.TopicDesc, ",TypeIds:", receiver.TypeIds, "}")
 }
 
-// ShopTopicSku
+// ShopTopicSku 商城主题商品
 type ShopTopicSku struct {
 	Id      int64 `json:"id"`                       // 11 0 注释:
 	TopicId int64 `xorm:"topic_id"  json:"topicId"` // 11 0 注释:

+ 12 - 0
data/domain/vo/ShopAdviceVo.go

@@ -0,0 +1,12 @@
+package vo
+
+import "demo/data/domain"
+
+type ShopAdviceVo struct {
+	Carousels   []domain.ShopAdviceCarousel `json:"carousels"`
+	PackageList []AdviceSku                 `json:"packageList"`
+}
+type AdviceSku struct {
+	ShopAdviceCarousel domain.ShopAdviceCarousel `xorm:"extends" json:"shopAdviceCarousel"`
+	GoodsSku           domain.GoodsSku           `xorm:"extends" json:"goodsSku"`
+}

BIN
file/resources/20240522145006fallout-pc.png


BIN
file/resources/20240522145457WechatIMG2868.jpg


BIN
file/resources/20240522145547车队pc.jpg


BIN
file/resources/20240522162720giftpack.jpg


+ 0 - 71
file/shop_advice_carousel.sql

@@ -1,71 +0,0 @@
-/*
- Navicat Premium Data Transfer
-
- Source Server         : 127.0.0.1
- Source Server Type    : MySQL
- Source Server Version : 50743
- Source Host           : 127.0.0.1:3306
- Source Schema         : virtual_mall
-
- Target Server Type    : MySQL
- Target Server Version : 50743
- File Encoding         : 65001
-
- Date: 22/05/2024 09:18:28
-*/
-
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------
--- Table structure for shop_advice_carousel
--- ----------------------------
-DROP TABLE IF EXISTS `shop_advice_carousel`;
-CREATE TABLE `shop_advice_carousel`  (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '广告名称',
-  `to_id` int(11) NULL DEFAULT NULL COMMENT '目标id',
-  `advice_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '广告类型,用于跳转到对应的页面',
-  `sort` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '排序',
-  `state` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态',
-  `show_type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '显示类型,carousel轮播图,package,礼包',
-  `create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
-  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Table structure for shop_topic
--- ----------------------------
-DROP TABLE IF EXISTS `shop_topic`;
-CREATE TABLE `shop_topic`  (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `sort` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
-  `parent_id` int(11) NULL DEFAULT NULL COMMENT '父级id',
-  `topic_page_image` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '主题首页图片',
-  `topic_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '主题名称',
-  `topic_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '主题描述',
-  `type_ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品类型id',
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品主题' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of shop_topic
--- ----------------------------
-INSERT INTO `shop_topic` VALUES (1, NULL, NULL, NULL, '软件直充', '软件在线充值,快速秒到账', '1');
-INSERT INTO `shop_topic` VALUES (2, NULL, NULL, NULL, '游戏充值', '游戏在线充值,热门游戏尽在其中', '2');
-
--- ----------------------------
--- Table structure for shop_topic_sku
--- ----------------------------
-DROP TABLE IF EXISTS `shop_topic_sku`;
-CREATE TABLE `shop_topic_sku`  (
-  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ' ',
-  `topic_id` int(11) NULL DEFAULT NULL,
-  `sku_id` int(11) NULL DEFAULT NULL,
-  PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-
-SET FOREIGN_KEY_CHECKS = 1;

Datei-Diff unterdrückt, da er zu groß ist
+ 30 - 4
file/virtual_mall.sql


+ 2 - 0
router/BackGoodsRouter.go

@@ -12,6 +12,7 @@ import (
 	"time"
 )
 
+// BackGoodsRouter 废弃
 func BackGoodsRouter(engine *gin.RouterGroup) {
 	user := engine.Group("/back/goods")
 	PushRouter(user, "GET", "/introduction", GetIntroductionByGoodsId)
@@ -20,6 +21,7 @@ func BackGoodsRouter(engine *gin.RouterGroup) {
 	PushRouter(user, "PUT", "", UpdateGoods)
 	PushRouter(user, "Delete", "/:id", DeleteGoodsById)
 }
+
 func GetIntroductionByGoodsId(c *gin.Context) {
 	id := c.Query("id")
 	byId, err := manage.GetGoodsById(cast.ToInt64(id))

+ 24 - 0
router/BackRouter.go

@@ -3,13 +3,18 @@ package router
 import (
 	"context"
 	"demo/data/dao/back"
+	"demo/data/dao/manage"
+	"demo/share"
+	"fmt"
 	"github.com/gin-gonic/gin"
+	"github.com/spf13/cast"
 )
 
 func BackRouter(engine *gin.RouterGroup) {
 	user := engine.Group("/back")
 	PushRouter(user, "GET", "/role/authority", GetRoleAndAuthority)
 	PushRouter(user, "GET", "/role/menu", GetRoleMenu)
+	PushRouter(user, "PUT", "/gen/column", SaveGenTableColumnList)
 }
 
 var ctx = context.Background()
@@ -36,6 +41,25 @@ func GetRoleMenu(c *gin.Context) {
 	c.JSON(200, CreateResultData(userId))
 }
 
+func SaveGenTableColumnList(c *gin.Context) {
+	data := share.GetJsonAnyParam(c)
+	genTableColumnParam, _ := data("list")
+	//genTableColumnParam判断是否位数组
+	arr, ok := genTableColumnParam.([]interface{})
+	if !ok {
+		c.JSON(200, CreateResultError(400, "参数错误"))
+	}
+	for i := 0; i < len(arr); i++ {
+		data, ok := arr[i].(map[string]interface{})
+		if !ok {
+			fmt.Println("666:", arr[i], ok)
+			continue
+		}
+		manage.SetGenTableColumn(UtilStructToMap(data), cast.ToInt64(data["id"]))
+	}
+	c.JSON(200, CreateResult())
+}
+
 func BaseBackRouter(group *gin.RouterGroup) {
 	//文章
 	BaseArticleRouter(group)

+ 19 - 4
router/BaseBackRouter.go

@@ -26,7 +26,13 @@ func UtilStructToMap(m map[string]interface{}) map[string]interface{} {
 		res[result] = m[s]
 	}
 	return res
-} //BaseArticleRouter(group)
+}
+
+func DateToString(date time.Time) string {
+	return date.Format("2006-01-02 15:04:05")
+}
+
+//BaseArticleRouter(group)
 //BaseArticleTagRouter(group)
 //BaseArticleTopicRouter(group)
 //BaseAuthorityRouter(group)
@@ -409,7 +415,10 @@ func UpdateBaseArticle(c *gin.Context) {
 	article, _ := data("article")
 	id, _ := data("id")
 	toMap := UtilStructToMap(cast.ToStringMap(article))
-	toMap["create_by"] = "fmt.Sprint(GetUserIdByToken(c))"
+	toMap["create_by"] = nil
+	toMap["create_time"] = nil
+	toMap["update_by"] = fmt.Sprint(GetUserIdByToken(c))
+	toMap["update_time"] = DateToString(time.Now())
 	setArticle, b, err := manage.SetArticle(toMap, cast.ToInt64(id))
 	if err != nil || !b {
 		c.JSON(200, CreateResultError(500, "修改错误"))
@@ -1756,7 +1765,10 @@ func UpdateBaseGoodsIntroduction(c *gin.Context) {
 	goodsIntroduction, _ := data("goodsIntroduction")
 	id, _ := data("id")
 	toMap := UtilStructToMap(cast.ToStringMap(goodsIntroduction))
-	toMap["create_by"] = "fmt.Sprint(GetUserIdByToken(c))"
+	toMap["create_by"] = nil
+	toMap["create_time"] = nil
+	toMap["update_by"] = fmt.Sprint(GetUserIdByToken(c))
+	toMap["update_time"] = DateToString(time.Now())
 	setGoodsIntroduction, b, err := manage.SetGoodsIntroduction(toMap, cast.ToInt64(id))
 	if err != nil || !b {
 		c.JSON(200, CreateResultError(500, "修改错误"))
@@ -2317,7 +2329,10 @@ func UpdateBaseShopAdviceCarousel(c *gin.Context) {
 	shopAdviceCarousel, _ := data("shopAdviceCarousel")
 	id, _ := data("id")
 	toMap := UtilStructToMap(cast.ToStringMap(shopAdviceCarousel))
-	toMap["create_by"] = "fmt.Sprint(GetUserIdByToken(c))"
+	toMap["create_by"] = nil
+	toMap["create_time"] = nil
+	toMap["update_by"] = fmt.Sprint(GetUserIdByToken(c))
+	toMap["update_time"] = DateToString(time.Now())
 	setShopAdviceCarousel, b, err := manage.SetShopAdviceCarousel(toMap, cast.ToInt64(id))
 	if err != nil || !b {
 		c.JSON(200, CreateResultError(500, "修改错误"))

+ 6 - 10
router/HomeRouter.go

@@ -1,15 +1,14 @@
 package router
 
 import (
-	"demo/data/dao/manage"
-	"demo/data/domain"
+	"demo/data/dao"
 	"github.com/gin-gonic/gin"
 )
 
 func HomeRouter(engine *gin.RouterGroup) {
 	user := engine.Group("/home")
 	//user.GET("/search", GetSearchByKey)
-	PushRouter(user, "GET", "/", GetIndexBanner)
+	PushRouter(user, "GET", "/banner", GetIndexBanner)
 	//获取文章详情
 	//user.GET("/:id", GetDetailData)
 	//PushRouter(user, "GET", "/:id", GetDetailData)
@@ -17,15 +16,12 @@ func HomeRouter(engine *gin.RouterGroup) {
 
 // GetIndexBanner 获取首页的banner内容,以及下面相关的内容推荐
 func GetIndexBanner(c *gin.Context) {
-	//查询要显示的内容
-	banner := domain.ShopAdviceCarousel{
-		State: "1",
-	}
-	list, err := manage.GetShopAdviceCarouselList(banner, 0, 10)
+	data, err := dao.GetAdviceData()
 	if err != nil {
-		c.JSON(200, CreateResultError(500, "系统查询错误"))
+		c.JSON(200, CreateResultError(500, "查询错误"))
+		return
 	}
-	c.JSON(200, CreateResultData(list))
+	c.JSON(200, CreateResultData(data))
 }
 
 //获取首页广告内容 ->shop_advice_carousel

+ 2 - 1
router/Router.go

@@ -26,7 +26,8 @@ func InitRouter(apiGroup *gin.RouterGroup) {
 	TestRouth(apiGroup)
 	//订单,支付
 	OrderRouter(apiGroup)
-	BackGoodsRouter(apiGroup)
+	//废弃
+	//BackGoodsRouter(apiGroup)
 	//-------------------
 	//后台管理系统
 	BackRouter(apiGroup)

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.