فهرست منبع

update:用户管理软删除

zoie 2 سال پیش
والد
کامیت
429c8339a4
5فایلهای تغییر یافته به همراه74 افزوده شده و 87 حذف شده
  1. 5 6
      controllers/Task.go
  2. 6 5
      controllers/User.go
  3. 32 39
      models/Account/User.go
  4. 3 3
      models/Task/Task.go
  5. 28 34
      models/Task/TaskLogs.go

+ 5 - 6
controllers/Task.go

@@ -3,7 +3,6 @@ package controllers
 import (
 	"bzd_server/conf"
 	"bzd_server/lib"
-	"bzd_server/models/Account"
 	"bzd_server/models/System"
 	"bzd_server/models/Task"
 	beego "github.com/beego/beego/v2/server/web"
@@ -318,17 +317,17 @@ func (c *TaskController) Logs_List() {
 
 	T_task_id := c.GetString("T_task_id")
 
-	AdminList := Account.Read_Admin_List_ALL()
-	AdminMap := Account.AdminListToAdminMap(AdminList)
+	//AdminList := Account.Read_Admin_List_ALL()
+	//AdminMap := Account.AdminListToAdminMap(AdminList)
 
-	var cnt int64
-	List, cnt := Task.Read_TaskLogs_List(T_task_id, AdminMap, page, page_z)
+	var cnt int
+	List, cnt := Task.Read_TaskLogs_List(T_task_id, page, page_z)
 	page_size := math.Ceil(float64(cnt) / float64(page_z))
 	r_jsons.List = List
 	r_jsons.Page = page
 	r_jsons.Page_size = int(page_size)
 	r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
-	r_jsons.Num = int(cnt)
+	r_jsons.Num = cnt
 
 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
 	c.ServeJSON()

+ 6 - 5
controllers/User.go

@@ -98,6 +98,7 @@ func (c *UserController) Add() {
 		T_name:    T_name,
 		T_pass:    T_pass,
 		T_passstr: T_passstr,
+		T_Show:    1,
 		T_State:   1,
 	}
 
@@ -127,7 +128,7 @@ func (c *UserController) Up() {
 	T_name := c.GetString("T_name")
 	T_pass := c.GetString("T_pass")
 	T_passstr := c.GetString("T_passstr")
-	T_State, T_State_err := c.GetInt("T_State")
+	T_Show, T_Show_err := c.GetInt("T_Show")
 
 	T_uuid := c.GetString("T_uuid")
 	r, is := Account.Read_User(T_uuid)
@@ -147,12 +148,12 @@ func (c *UserController) Up() {
 	if len(T_passstr) > 0 {
 		r.T_passstr = T_passstr
 	}
-	if T_State_err == nil {
-		r.T_State = T_State
+	if T_Show_err == nil {
+		r.T_State = T_Show
 	}
 
 	// .......
-	if !Account.Update_User(r, "T_name", "T_pass", "T_passstr", "T_State") {
+	if !Account.Update_User(r, "T_name", "T_pass", "T_passstr", "T_Show") {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
 		c.ServeJSON()
 		return
@@ -177,7 +178,7 @@ func (c *UserController) Del() {
 	T_uuid := c.GetString("T_uuid")
 
 	if r, is := Account.Read_User(T_uuid); is {
-		if !Account.Delete_User(r) {
+		if !Account.Delete_User_(r) {
 			c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
 			c.ServeJSON()
 			return

+ 32 - 39
models/Account/User.go

@@ -11,28 +11,28 @@ import (
 )
 
 type User struct {
-	Id      int    `orm:"column(ID);size(11);auto;pk"`
-	T_uuid  string `orm:"size(256);null"` //
-	T_power int    `orm:"size(2);0"`      // 权限
-	T_name  string `orm:"size(256);null"` //  某某公司名称
-	T_user  string `orm:"size(256);null"` // 登录用户名
-	T_pass  string `orm:"size(256);null"` // 密码 MD5
-	T_passstr  string `orm:"size(256);null"` //  密码明文
-
-	T_State    int       `orm:"size(200);1"`                                           //  0删除  1 正常
+	Id         int       `orm:"column(ID);size(11);auto;pk"`
+	T_uuid     string    `orm:"size(256);null"`                                        //
+	T_power    int       `orm:"size(2);0"`                                             // 权限
+	T_name     string    `orm:"size(256);null"`                                        // 某某公司名称
+	T_user     string    `orm:"size(256);null"`                                        // 登录用户名
+	T_pass     string    `orm:"size(256);null"`                                        // 密码 MD5
+	T_passstr  string    `orm:"size(256);null"`                                        //  密码明文
+	T_Show     int       `orm:"size(200);default(1)"`                                  //  0隐藏  1公开
+	T_State    int       `orm:"size(200);1"`                                           //  0删除  1正常
 	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
 	UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"`     //auto_now_add 第一次保存时才设置时间
 }
 type User_R struct {
-
-	T_uuid  string `orm:"size(256);null"` //
-	T_power int    `orm:"size(2);0"`      // 权限
-	T_name  string `orm:"size(256);null"` //  某某公司名称
-	T_user  string `orm:"size(256);null"` // 登录用户名
-	T_passstr  string `orm:"size(256);null"` //  密码明文
-
-	T_State    int       `orm:"size(200);1"`                                           //  0  1
+	T_uuid    string `orm:"size(256);null"` //
+	T_power   int    `orm:"size(2);0"`      // 权限
+	T_name    string `orm:"size(256);null"` //  某某公司名称
+	T_user    string `orm:"size(256);null"` // 登录用户名
+	T_passstr string `orm:"size(256);null"` //  密码明文
+	T_Show    int    `orm:"size(200);1"`    //  0  1
+	T_State   int    `orm:"size(200);1"`    //  0  1
 }
+
 func (t *User) TableName() string {
 	return "User" // 数据库名称   // ************** 替换 FormulaList **************
 }
@@ -42,6 +42,7 @@ func init() {
 	orm.RegisterModel(new(User))
 
 }
+
 // -------------------------------------------------------------
 func UserToUser_R(T User) (T_r User_R) {
 	T_r.T_uuid = T.T_uuid
@@ -49,6 +50,7 @@ func UserToUser_R(T User) (T_r User_R) {
 	T_r.T_name = T.T_name
 	T_r.T_user = T.T_user
 	T_r.T_passstr = T.T_passstr
+	T_r.T_Show = T.T_Show
 	T_r.T_State = T.T_State
 
 	//......
@@ -59,29 +61,27 @@ func UserToUser_R(T User) (T_r User_R) {
 func Read_User_ByT_uuid(T_uuid string) (e error, r User) {
 	o := orm.NewOrm()
 	qs := o.QueryTable(new(User))
-	e = qs.Filter("T_uuid", T_uuid).One(&r)
+	e = qs.Filter("T_uuid", T_uuid).Filter("T_State", 1).One(&r)
 	return e, r
 }
 
-
 func Read_User_verification(T_user string, T_pass string) (error, User) {
 	o := orm.NewOrm()
-	r := User{T_user: T_user, T_pass: T_pass}
-	err := o.Read(&r, "T_user", "T_pass") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	r := User{T_user: T_user, T_pass: T_pass, T_Show: 1}
+	err := o.Read(&r, "T_user", "T_pass", "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
 	if err != nil {
 		fmt.Println(err)
 	}
 	return err, r
 }
 
-
 // ----------------
 
 // 获取 ById
 func Read_User_ById(id int) (r User, is bool) {
 	o := orm.NewOrm()
-	r = User{Id: id}
-	err := o.Read(&r) // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	r = User{Id: id, T_State: 1}
+	err := o.Read(&r, "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
 	if err != nil {
 		logs.Println(err)
 		return r, false
@@ -94,12 +94,11 @@ func Read_User(T_uuid string) (r User, is bool) {
 
 	o := orm.NewOrm()
 	qs := o.QueryTable(new(User))
-	err := qs.Filter("T_uuid", T_uuid).One(&r)
+	err := qs.Filter("T_uuid", T_uuid).Filter("T_State", 1).One(&r)
 	if err != nil {
 		return r, false
 	}
 
-
 	return r, true
 }
 
@@ -117,19 +116,17 @@ func Add_User(r User) (id int64, is bool) {
 		rand_x += 1
 	}
 
-	err := o.Read(&r, "T_user") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	err := o.Read(&r, "T_user", "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
 	if err == nil {
 		return 0, false
 	}
 
-
 	id, err = o.Insert(&r)
 	if err != nil {
 		logs.Println(err)
 		return 0, false
 	}
 
-
 	return id, true
 }
 
@@ -142,7 +139,6 @@ func Delete_User(v User) bool {
 		return false
 	}
 
-
 	return true
 }
 
@@ -156,12 +152,11 @@ func Delete_User_(v User) bool {
 		return false
 	}
 
-
 	return true
 }
 
 // 修改
-func Update_User(m User,cols ...string) bool {
+func Update_User(m User, cols ...string) bool {
 	o := orm.NewOrm()
 	if num, err := o.Update(&m, cols...); err == nil {
 		fmt.Println("Number of records updated in database:", num)
@@ -172,9 +167,9 @@ func Update_User(m User,cols ...string) bool {
 }
 
 // 获取列表
-func Read_User_List(T_name string, page int, page_z int) ( []User_R, int64) {
-
+func Read_User_List(T_name string, page int, page_z int) ([]User_R, int64) {
 	o := orm.NewOrm()
+
 	// 也可以直接使用 Model 结构体作为表名
 	var r []User
 	qs := o.QueryTable(new(User))
@@ -185,17 +180,15 @@ func Read_User_List(T_name string, page int, page_z int) ( []User_R, int64) {
 		offset = int64((page - 1) * page_z)
 	}
 	cond := orm.NewCondition()
-	cond1 := cond.Or("T_name__icontains", T_name).Or("T_user__icontains", T_name) // .AndNot("status__in", 1).Or("profile__age__gt", 2000)
-
-
+	cond1 := cond.And("T_State", 1).AndCond(cond.Or("T_name__icontains", T_name).Or("T_user__icontains", T_name))
 	qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
 	cnt, _ := qs.SetCond((*orm2.Condition)(cond1)).Count()
 
 	// 转换
 	var User_r []User_R
-	for _,v := range r{
+	for _, v := range r {
 		User_r = append(User_r, UserToUser_R(v))
 	}
 
 	return User_r, cnt
-}
+}

+ 3 - 3
models/Task/Task.go

@@ -327,9 +327,9 @@ func Read_UserTask_List(T_uuid string, T_name string, page int, page_z int) ([]T
 		return maps, 0
 	}
 	sql = "SELECT * FROM Task t " +
-		"LEFT JOIN (SELECT t_uuid, t_name AS t_collection_name FROM `Admin` WHERE t__state=1) c ON c.t_uuid=t.t_collection " +
-		"LEFT JOIN (SELECT t_uuid, t_name AS t_reporting_name FROM `Admin` WHERE t__state=1) r ON r.t_uuid=t.t_reporting " +
-		"LEFT JOIN (SELECT t_uuid, t_name AS t_delivery_name FROM `Admin` WHERE t__state=1) d ON d.t_uuid=t.t_delivery " +
+		"LEFT JOIN (SELECT t_uuid, t_name AS t_collection_name FROM `Admin`) c ON c.t_uuid=t.t_collection " +
+		"LEFT JOIN (SELECT t_uuid, t_name AS t_reporting_name FROM `Admin`) r ON r.t_uuid=t.t_reporting " +
+		"LEFT JOIN (SELECT t_uuid, t_name AS t_delivery_name FROM `Admin`) d ON d.t_uuid=t.t_delivery " +
 		"WHERE t.t__state=1"
 	if len(T_uuid) > 0 {
 		sql = sql + " AND t.t_uuid=\"" + T_uuid + "\""

+ 28 - 34
models/Task/TaskLogs.go

@@ -7,6 +7,7 @@ import (
 	"github.com/beego/beego/v2/adapter/orm"
 	orm2 "github.com/beego/beego/v2/client/orm"
 	_ "github.com/go-sql-driver/mysql"
+	"strconv"
 	"time"
 )
 
@@ -32,7 +33,7 @@ func init() {
 
 }
 
-type TaskLogs_R struct {
+type TaskLogs_ struct {
 	T_uuid     string // 操作用户uuid
 	T_name     string // 操作用户name
 	T_task_id  string // 任务ID
@@ -42,24 +43,6 @@ type TaskLogs_R struct {
 	CreateTime time.Time
 }
 
-// AdminMaps {"uuid":'name'}
-func TaskLogsToTaskLogs_R(T TaskLogs, AdminMaps map[string]string) (T_r TaskLogs_R) {
-	T_name, ok := AdminMaps[T.T_uuid]
-	if !ok {
-		T_name = ""
-	}
-	T_r.T_uuid = T.T_uuid
-	T_r.T_name = T_name
-	T_r.T_task_id = T.T_task_id
-	T_r.Logs_class = T.Logs_class
-	T_r.Logs_Title = T.Logs_Title
-	T_r.Logs_Txt = T.Logs_Txt
-	T_r.CreateTime = T.CreateTime
-
-	//......
-	return T_r
-}
-
 func Add_TaskLogs_T(T_uuid string, T_task_id string, Logs_class string, Logs_Title string, Logs_Txt_T interface{}) {
 	o := orm.NewOrm()
 	jsonStu, err := json.Marshal(Logs_Txt_T)
@@ -71,27 +54,38 @@ func Add_TaskLogs_T(T_uuid string, T_task_id string, Logs_class string, Logs_Tit
 }
 
 // 获取列表
-func Read_TaskLogs_List(T_task_id string, AdminMaps map[string]string, page int, page_z int) ([]TaskLogs_R, int64) {
+func Read_TaskLogs_List(T_task_id string, page int, page_z int) ([]TaskLogs_, int) {
 
 	o := orm.NewOrm()
-	// 也可以直接使用 Model 结构体作为表名
-	var r []TaskLogs
-	qs := o.QueryTable(new(TaskLogs))
-	var offset int64
+	var offset int
 	if page <= 1 {
 		offset = 0
 	} else {
-		offset = int64((page - 1) * page_z)
+		offset = (page - 1) * page_z
 	}
-	cond := orm.NewCondition()
-	cond1 := cond.And("T_task_id", T_task_id)
-	qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
-	cnt, _ := qs.SetCond((*orm2.Condition)(cond1)).Count()
 
-	// 转换
-	var TaskLogs_r []TaskLogs_R
-	for _, v := range r {
-		TaskLogs_r = append(TaskLogs_r, TaskLogsToTaskLogs_R(v, AdminMaps))
+	var maps_z []orm2.ParamsList
+	var maps []TaskLogs_
+
+	// 获取总条数
+	sql := "SELECT COUNT(ID) FROM TaskLogs WHERE  t_task_id=" + "\"" + T_task_id + "\""
+
+	fmt.Println(sql)
+	_, err := o.Raw(sql).ValuesList(&maps_z)
+	if err != nil {
+		return maps, 0
+	}
+	if len(maps_z) == 0 {
+		return maps, 0
 	}
-	return TaskLogs_r, cnt
+	sql = "SELECT * FROM TaskLogs t " +
+		"LEFT JOIN (SELECT t_uuid, t_name FROM `Admin`) c ON c.t_uuid=t.t_uuid " +
+		"WHERE t.t_task_id=" + "\"" + T_task_id + "\""
+
+	sql = sql + " ORDER BY t.create_time DESC LIMIT " + strconv.Itoa(offset) + "," + strconv.Itoa(page_z)
+	fmt.Println(sql)
+	_, err = o.Raw(sql).QueryRows(&maps)
+
+	cnt, _ := strconv.Atoi(maps_z[0][0].(string))
+	return maps, cnt
 }