Browse Source

update:优化

zoie 2 years ago
parent
commit
e4a74ce6ba

+ 5 - 7
Nats/Nats.go

@@ -52,19 +52,19 @@ func NatsInit() {
 }
 
 // 验证TOKEY
-func Verification(GetCookie string, GetString string) (bool, Account.User) {
+func Verification(GetCookie string, GetString string) (bool, Account.User, int) {
 
 	User_tokey := GetCookie
 	if len(User_tokey) == 0 {
 		User_tokey = GetString
 	}
 	if len(User_tokey) == 0 {
-		return false, Account.User{}
+		return false, Account.User{}, 0
 	}
 	// 请求-响应, 向 verification 发布一个 `ToKey` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
 	msg, err := lib.Nats.Request("Cold_User_verification", []byte(User_tokey), 3*time.Second)
 	if err != nil {
-		return false, Account.User{}
+		return false, Account.User{}, 0
 	}
 	fmt.Printf("Cold_User_verification : %s\n", string(msg.Data))
 	type T_R struct {
@@ -76,14 +76,12 @@ func Verification(GetCookie string, GetString string) (bool, Account.User) {
 
 	var t_R T_R
 
-	Account.T_pid = &t_R.Pid
-
 	err = msgpack.Unmarshal(msg.Data, &t_R)
 	if err != nil {
-		return false, Account.User{}
+		return false, Account.User{}, 0
 	}
 
-	return true, t_R.Data
+	return true, t_R.Data, t_R.Pid
 
 }
 

+ 5 - 5
controllers/WorkOrder.go

@@ -17,7 +17,7 @@ type WorkOrderController struct {
 }
 
 func (c *WorkOrderController) Prepare() {
-	c.User_r = Account.User_r
+	c.User_r = *Account.User_r
 	c.T_pid = *Account.T_pid
 }
 
@@ -38,7 +38,7 @@ func (c *WorkOrderController) List() {
 		page_z = conf.Page_size
 	}
 
-	Company_name := c.GetString("Company_name")
+	Company_name := c.GetString("T_name")
 	T_handle, _ := c.GetInt("T_handle")
 	var CompanyIds []int
 	var Company_list []Account.Company
@@ -48,8 +48,8 @@ func (c *WorkOrderController) List() {
 			CompanyIds = append(CompanyIds, v.Id)
 		}
 	}
-	Account.AdminListToMap(Nats.UserListAll())
-	Account.CompanyListToMap(Company_list)
+	Account.Read_Admin_All_Map(Nats.UserListAll())
+	Account.Read_Company_All_Map(Company_list)
 	var cnt int64
 	List, cnt := WorkOrder.Read_WorkOrder_List(T_handle, page, page_z, CompanyIds)
 
@@ -78,7 +78,7 @@ func (c *WorkOrderController) User_List() {
 	}
 
 	var cnt int64
-	List, cnt := WorkOrder.Read_UserWorkOrder_List(Account.User_r, c.T_pid, page, page_z)
+	List, cnt := WorkOrder.Read_UserWorkOrder_List(c.User_r, c.T_pid, page, page_z)
 
 	page_size := math.Ceil(float64(cnt) / float64(page_z))
 	r_jsons.List = List

+ 2 - 2
models/Account/Admin.go

@@ -5,7 +5,7 @@ import (
 	_ "github.com/go-sql-driver/mysql"
 )
 
-var User_r User
+var User_r *User
 var T_pid *int
 
 var AdminMap map[string]User // 泛型
@@ -25,7 +25,7 @@ func init() {
 	AdminMap = make(map[string]User)
 }
 
-func AdminListToMap(A []User) {
+func Read_Admin_All_Map(A []User) {
 	for _, v := range A {
 		AdminMap[v.T_uuid] = v
 	}

+ 1 - 1
models/Account/Company.go

@@ -13,7 +13,7 @@ func init() {
 	CompanyMap = make(map[int]Company)
 }
 
-func CompanyListToMap(A []Company) {
+func Read_Company_All_Map(A []Company) {
 	for _, v := range A {
 		CompanyMap[v.Id] = v
 	}

+ 5 - 3
models/WorkOrder/WorkOrder.go

@@ -75,14 +75,16 @@ func WorkOrderToWorkOrder_(t WorkOrder) (r WorkOrder_) {
 // 获取 ById
 func Read_WorkOrder_ById(id int) (r WorkOrder, err error) {
 	o := orm.NewOrm()
-	qs := o.QueryTable(new(WorkOrder))
 	r = WorkOrder{Id: id}
-	err = qs.Filter("T_state__gt", 0).One(&r) // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	err = o.Read(&r) // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
 	if err != nil {
 		logs.Println(err)
 		return r, err
 
 	}
+	if r.T_State == 0 {
+		return r, orm.ErrNoRows
+	}
 	return r, nil
 }
 
@@ -149,7 +151,7 @@ func Read_WorkOrder_List(T_handle int, page int, page_z int, CompanyIds []int) (
 		cond1 = cond1.And("T_State", 2)
 	}
 	if len(CompanyIds) > 0 {
-		cond1 = cond1.And("T_Company_Id__in", CompanyIds)
+		cond1 = cond1.And("T_pid__in", CompanyIds)
 	}
 
 	qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("Id").All(&r)

+ 5 - 3
routers/filter.go

@@ -8,14 +8,16 @@ import (
 )
 
 func FilterRBAC(ctx *context.Context) {
-	var b_ bool
-	b_, Account.User_r = Nats.Verification(ctx.GetCookie("User_tokey"), ctx.Input.Query("User_tokey"))
+	b_, User_r, T_pid := Nats.Verification(ctx.GetCookie("User_tokey"), ctx.Input.Query("User_tokey"))
 	if !b_ {
 		ctx.Output.JSON(lib.JSONS{Code: 201, Msg: "请重新登陆!"}, true, false)
 		return
 	}
 
-	flag := Nats.CheckUserPermissions(Account.User_r.T_power, ctx.Request.URL.Path)
+	Account.User_r = &User_r
+	Account.T_pid = &T_pid
+
+	flag := Nats.CheckUserPermissions(User_r.T_power, ctx.Request.URL.Path)
 
 	if !flag {
 		data := lib.JSONS{Code: 202, Msg: "无权访问!"}