Administrator il y a 2 ans
Parent
commit
f6a2264b45
7 fichiers modifiés avec 143 ajouts et 12 suppressions
  1. 6 0
      .idea/vcs.xml
  2. 87 0
      dao/UserDao.go
  3. 8 0
      domain/BaseListVo.go
  4. 23 0
      domain/User.go
  5. 1 1
      go.mod
  6. 9 2
      main.go
  7. 9 9
      util/MysqlToStruct.go

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>

+ 87 - 0
dao/UserDao.go

@@ -0,0 +1,87 @@
+package dao
+
+import (
+	"fmt"
+	"go-create/configs"
+	"go-create/domain"
+)
+
+func GetByIdUser(id int) (domain.User, error) {
+	var user domain.User
+	_, err := configs.Engine.Where("id = ?", id).Get(&user)
+	if err != nil {
+		return user, err
+	}
+	return user, nil
+}
+
+func GetInIdListUser(ids []int) ([]domain.User, error) {
+	rows, err := configs.Engine.In("id", ids).Rows(&domain.User{})
+	if err != nil {
+		return make([]domain.User, 0), err
+	}
+	defer rows.Close()
+	var list []domain.User
+	for rows.Next() {
+		var u domain.User
+		list = append(list, u)
+	}
+	return list, nil
+}
+
+func GetListUser(user domain.User, pageNum, pageSize int) (domain.BaseListVo, error) {
+	var arr []domain.User
+	Count, err := configs.Engine.Limit(pageSize, (pageNum-1)*pageSize).Desc("id").FindAndCount(&arr, &user)
+	if err != nil {
+		return domain.BaseListVo{}, err
+	}
+	var vo domain.BaseListVo
+	if err != nil {
+		return vo, err
+	}
+	vo.PageNum = pageNum
+	vo.PageSize = pageSize
+	vo.List = make([]any, len(arr))
+	for i, v := range arr {
+		vo.List[i] = v
+	}
+	vo.Total = int(Count)
+	return vo, nil
+}
+
+func SaveUser(user domain.User) (domain.User, error) {
+	_, err := configs.Engine.Table("user").Insert(&user)
+	if err != nil {
+		panic(err)
+		return user, err
+	}
+	return user, nil
+}
+
+func SetUser(userMap map[string]interface{}, id int) (domain.User, bool, error) {
+	var user domain.User
+	_, err := configs.Engine.Table("user").Where("id = ?", id).Update(userMap)
+	if err != nil {
+		return user, false, err
+	}
+	return user, true, nil
+}
+
+func DeleteUser(user domain.User) bool {
+	i, err := configs.Engine.Where("id = ?", user.Id).Delete(&user)
+	if err != nil {
+		return false
+	}
+	return i > 0
+}
+func SelectByObject(User domain.User, pageNum, pageSize int) {
+	var res []domain.User
+	err := configs.Engine.Limit(pageSize, (pageNum-1)*pageSize).Desc("id").Find(&res, &User)
+	if err != nil {
+		panic(err)
+		return
+	}
+	for _, v := range res {
+		fmt.Println(v)
+	}
+}

+ 8 - 0
domain/BaseListVo.go

@@ -0,0 +1,8 @@
+package domain
+
+type BaseListVo struct {
+	PageNum  int   `json:"pageNum"`
+	PageSize int   `json:"pageSize"`
+	Total    int   `json:"total"`
+	List     []any `json:"list"`
+}

+ 23 - 0
domain/User.go

@@ -0,0 +1,23 @@
+package domain
+
+import "fmt"
+
+// User
+type User struct {
+	Id            int64  `json:"id"`                                   // 11 0 注释:
+	Username      string `xorm:"username"  json:"username"`            // 255 0 注释:账号
+	Password      string `xorm:"password"  json:"password"`            // 255 0 注释:密码
+	CreationTime  int    `xorm:"creation_time"  json:"creationTime"`   // 11 0 注释:账号创建时间
+	LoginTime     int    `xorm:"login_time"  json:"loginTime"`         // 11 0 注释:登录时间
+	Status        string `xorm:"status"  json:"status"`                // 255 0 注释:账号状态
+	RoleId        int    `xorm:"role_id"  json:"roleId"`               // 11 0 注释:角色id
+	Phone         string `xorm:"phone"  json:"phone"`                  // 255 0 注释:手机
+	Email         string `xorm:"email"  json:"email"`                  // 255 0 注释:邮箱
+	Name          string `xorm:"name"  json:"name"`                    // 255 0 注释:用户名
+	Avatar        string `xorm:"avatar"  json:"avatar"`                // 255 0 注释:头像
+	RecommendCode string `xorm:"recommend_code"  json:"recommendCode"` // 255 0 注释:推荐码
+}
+
+func (receiver User) String() string {
+	return fmt.Sprint("User{Id:", receiver.Id, ",Username:", receiver.Username, ",Password:", receiver.Password, ",CreationTime:", receiver.CreationTime, ",LoginTime:", receiver.LoginTime, ",Status:", receiver.Status, ",RoleId:", receiver.RoleId, ",Phone:", receiver.Phone, ",Email:", receiver.Email, ",Name:", receiver.Name, ",Avatar:", receiver.Avatar, ",RecommendCode:", receiver.RecommendCode, "}")
+}

+ 1 - 1
go.mod

@@ -1,6 +1,6 @@
 module go-create
 
-go 1.19
+go 1.22
 
 require (
 	github.com/go-redis/redis/v8 v8.11.5

+ 9 - 2
main.go

@@ -1,13 +1,20 @@
 package main
 
 import (
+	"fmt"
 	"go-create/configs"
-	"go-create/util"
+	"go-create/dao"
+	"go-create/domain"
 )
 
 func init() {
 	configs.ConfigInit()
 }
 func main() {
-	util.MysqlToDao(configs.Engine)
+	//util.MysqlToDao(configs.Engine)
+	user, err := dao.SaveUser(domain.User{})
+	if err != nil {
+		fmt.Println(err)
+	}
+	fmt.Println(user)
 }

+ 9 - 9
util/MysqlToStruct.go

@@ -206,22 +206,22 @@ func MysqlToDao(engine *xorm.Engine) {
 
 		//list
 		dao += "func GetList" + table.AaBbName + "(" + table.aaBbName + " domain." + table.AaBbName + ", pageNum, pageSize int) (vo.BaseListVo, error) {" +
-			"\n\trows, err := configs.Engine.Limit(pageSize, (pageNum-1)*pageSize).Desc(\"id\").Rows(&" + table.aaBbName + ")" +
+			"\n\tvar arr []domain." + table.AaBbName +
+			"\n\tCount, err := configs.Engine.Limit(pageSize, (pageNum-1)*pageSize).Desc(\"id\").FindAndCount(&arr, &" + table.aaBbName + ")" +
 			"\n\tvar vo vo.BaseListVo" +
 			"\n\tif err != nil {" +
 			"\n\t\treturn vo, err" +
 			"\n\t}" +
+			"\n\tif err != nil {" +
+			"\n\t\treturn vo, err" +
+			"\n\t}" +
 			"\n\tvo.PageNum = pageNum" +
 			"\n\tvo.PageSize = pageSize" +
-			"\n\tvo.List = make([]any, 0)" +
-			"\n\tfor rows.Next() {" +
-			"\n\t\tvar u domain." + table.AaBbName +
-			"\n\t\trows.Scan(&u)" +
-			"\n\t\tvo.List = append(vo.List, u)" +
+			"\n\tvo.List = make([]any, len(arr))" +
+			"\n\tfor i, v := range arr {" +
+			"\n\t\tvo.List[i] = v" +
 			"\n\t}" +
-			"\n\t//查询数量" +
-			"\n\tcount, err := configs.Engine.Count(&" + table.aaBbName + ")" +
-			"\n\tvo.Total = int(count)" +
+			"\n\tvo.Total = int(Count)" +
 			"\n\treturn vo, nil" +
 			"\n}\n\n"