zoie пре 2 година
родитељ
комит
9ca1d51ae6
11 измењених фајлова са 117 додато и 71 уклоњено
  1. 0 8
      .idea/.gitignore
  2. 0 9
      .idea/ERP_user.iml
  3. 0 14
      .idea/deployment.xml
  4. 0 8
      .idea/modules.xml
  5. 43 14
      Nats/Nats.go
  6. 1 1
      conf/app.conf
  7. 1 14
      conf/config.go
  8. 1 0
      go.mod
  9. 2 0
      go.sum
  10. 10 3
      models/Account/Sys.go
  11. 59 0
      models/Account/User.go

+ 0 - 8
.idea/.gitignore

@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml

+ 0 - 9
.idea/ERP_user.iml

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="WEB_MODULE" version="4">
-  <component name="Go" enabled="true" />
-  <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>

+ 0 - 14
.idea/deployment.xml

@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
-    <serverData>
-      <paths name="huitong">
-        <serverdata>
-          <mappings>
-            <mapping local="$PROJECT_DIR$" web="/" />
-          </mappings>
-        </serverdata>
-      </paths>
-    </serverData>
-  </component>
-</project>

+ 0 - 8
.idea/modules.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/ERP_user.iml" filepath="$PROJECT_DIR$/.idea/ERP_user.iml" />
-    </modules>
-  </component>
-</project>

+ 43 - 14
Nats/Nats.go

@@ -6,6 +6,7 @@ import (
 	"ERP_user/models/System"
 	"fmt"
 	powerlibs "git.baozhida.cn/ERP_libs/Power"
+	userlibs "git.baozhida.cn/ERP_libs/User"
 	"github.com/nats-io/nats.go"
 	"github.com/vmihailenco/msgpack/v5"
 )
@@ -32,16 +33,10 @@ func NatsInit() {
 	_, _ = Nats.Subscribe("ERP_User_verification", func(m *nats.Msg) {
 		fmt.Printf("ERP_User_verification message: %v\n", string(m.Data))
 
-		type T_User struct {
-			T_uuid  string `xml:"T_uuid"`
-			T_power string `xml:"T_power"`
-			T_name  string `xml:"T_name"`
-			T_user  string `xml:"T_user"`
-		}
 		type T_R struct {
-			Code int16  `xml:"Code"`
-			Msg  string `xml:"Msg"`
-			Data T_User `xml:"Data"` // 泛型
+			Code int16         `xml:"Code"`
+			Msg  string        `xml:"Msg"`
+			Data userlibs.User `xml:"Data"` // 泛型
 		}
 
 		var t_R T_R
@@ -58,11 +53,7 @@ func NatsInit() {
 
 		t_R.Code = 200
 		t_R.Msg = "ok"
-		t_R.Data.T_uuid = admin_r.T_uuid
-		t_R.Data.T_power = admin_r.T_power
-		t_R.Data.T_name = admin_r.T_name
-		t_R.Data.T_user = admin_r.T_user
-
+		t_R.Data = Account.UserToUser_Libs(admin_r)
 		b, _ := msgpack.Marshal(&t_R)
 		_ = Nats.Publish(m.Reply, b)
 	})
@@ -83,6 +74,44 @@ func NatsInit() {
 		b, _ := msgpack.Marshal(&t_R)
 		_ = Nats.Publish(m.Reply, b)
 	})
+	// 请求-响应 获取所有用户列表
+	_, _ = Nats.Subscribe("ERP_User_Read_User_List_T_uuid", func(m *nats.Msg) {
+
+		type T_S struct {
+			T_uuid []string
+			T_name string
+			Page   int
+			Page_z int
+		}
+
+		var t_S T_S
+
+		type T_R struct {
+			Code int16            `xml:"Code"`
+			Msg  string           `xml:"Msg"`
+			Data []Account.User_R `xml:"Data"`
+			Num  int64            `xml:"Num"`
+		}
+
+		var t_R T_R
+
+		err := msgpack.Unmarshal(m.Data, &t_S)
+		if err != nil {
+			t_R.Code = 202
+			t_R.Msg = "msgpack unmarshal err!"
+			b, _ := msgpack.Marshal(&t_R)
+			_ = Nats.Publish(m.Reply, b)
+			return
+		}
+
+		t_R.Code = 200
+		t_R.Msg = "ok"
+		list, R_cnt := Account.Read_User_List_ByT_uuid(t_S.T_name, t_S.T_uuid, t_S.Page, t_S.Page_z)
+		t_R.Data, t_R.Num = list, R_cnt
+
+		b, _ := msgpack.Marshal(&t_R)
+		_ = Nats.Publish(m.Reply, b)
+	})
 	// 请求-响应 获取所有权限列表
 	_, _ = Nats.Subscribe("ERP_User_Read_Power_List_All", func(m *nats.Msg) {
 

+ 1 - 1
conf/app.conf

@@ -31,7 +31,7 @@ FilterExcludeURL = /Login_verification
 FilterOnlyLoginCheckURL = /Menu/List,/User/Info,/User/Post,/Menu/User_List,/User/List,/User/Get,/UpFileToken,/Dept/List,/Post/List,/News/List,/News/See
 
 #Sys = ERP_ACCOUNT|账号管理,ERP_AMS|考勤管理,ERP_SALARY|薪资管理,ERP_STORAGE|仓库管理,ERP_PROJECT|项目管理
-Sys = ERP_ACCOUNT|账号管理,ERP_AMS|考勤管理,ERP_SALARY|薪资管理
+Sys = ERP_ACCOUNT|账号管理,ERP_AMS|考勤管理,ERP_SALARY|薪资管理,ERP_STORAGE|仓库管理
 # Sys = ERP_ACCOUNT|账号管理,ERP_STORAGE|仓库管理
 
 

+ 1 - 14
conf/config.go

@@ -2,7 +2,6 @@ package conf
 
 import (
 	beego "github.com/beego/beego/v2/server/web"
-	"strings"
 )
 
 var Page_size = 10
@@ -33,16 +32,4 @@ var FilterOnlyLoginCheckURL, _ = beego.AppConfig.String("FilterOnlyLoginCheckURL
 
 var ERP_Sys, _ = beego.AppConfig.String("Sys")
 
-var (
-	ERP_ACCOUNT_Sys = "ERP_ACCOUNT"
-	ERP_Sys_List    = map[string]string{}
-)
-
-func init() {
-	ERP_Sys_List = make(map[string]string)
-	list := strings.Split(ERP_Sys, ",")
-	for _, v := range list {
-		key, name := strings.Split(v, "|")[0], strings.Split(v, "|")[1]
-		ERP_Sys_List[key] = name
-	}
-}
+var ERP_ACCOUNT_Sys = "ERP_ACCOUNT"

+ 1 - 0
go.mod

@@ -39,6 +39,7 @@ require (
 	github.com/prometheus/common v0.37.0 // indirect
 	github.com/prometheus/procfs v0.8.0 // indirect
 	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
+	github.com/shopspring/decimal v1.3.1 // indirect
 	github.com/signintech/gopdf v0.16.1 // indirect
 	github.com/spf13/pflag v1.0.5 // indirect
 	github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect

+ 2 - 0
go.sum

@@ -284,6 +284,8 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
 github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik=
 github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
+github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
+github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
 github.com/siddontang/go v0.0.0-20170517070808-cb568a3e5cc0/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
 github.com/siddontang/goredis v0.0.0-20150324035039-760763f78400/go.mod h1:DDcKzU3qCuvj/tPnimWSsZZzvk9qvkvrIL5naVBPh5s=
 github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=

+ 10 - 3
models/Account/Sys.go

@@ -3,15 +3,22 @@ package Account
 import (
 	"ERP_user/conf"
 	"ERP_user/logs"
+	"strings"
 )
 
 var ERP_Sys_prefix = make([]string, 0)
+var ERP_Sys_List = map[string]string{}
 
 func init() {
-	if len(conf.ERP_Sys_List) > 0 {
+	ERP_Sys_List = make(map[string]string)
+
+	if len(conf.ERP_Sys) > 0 {
 		logs.Println("=========== 初始化系统信息 =========")
 		// 除开用户系统的其他系统前缀
-		for k, _ := range conf.ERP_Sys_List {
+		sysList := strings.Split(conf.ERP_Sys, ",")
+		for _, v := range sysList {
+			k := strings.Split(v, "|")[0]
+			ERP_Sys_List[k] = strings.Split(v, "|")[1]
 			if k == conf.ERP_ACCOUNT_Sys {
 				continue
 			}
@@ -22,7 +29,7 @@ func init() {
 }
 
 func Get_Sys_Name(code string) string {
-	if v, ok := conf.ERP_Sys_List[code]; ok {
+	if v, ok := ERP_Sys_List[code]; ok {
 		return v
 	} else {
 		return code

+ 59 - 0
models/Account/User.go

@@ -3,6 +3,7 @@ package Account
 import (
 	"errors"
 	"fmt"
+	userlibs "git.baozhida.cn/ERP_libs/User"
 	"git.baozhida.cn/ERP_libs/lib"
 	"github.com/astaxie/beego/logs"
 	"github.com/beego/beego/v2/adapter/orm"
@@ -118,6 +119,20 @@ func UserToUser_R(r User) (m User_R) {
 	return
 }
 
+func UserToUser_Libs(r User) (m userlibs.User) {
+	m.T_uuid = r.T_uuid
+	m.T_power = r.T_power
+	m.T_name = r.T_name
+	m.T_user = r.T_user
+	m.T_dept = r.T_dept
+	m.T_dept_name = Read_Dept_Get(r.T_dept)
+	m.T_post = r.T_post
+	m.T_post_name = Read_Dept_Get(r.T_post)
+	m.T_dept_leader = r.T_dept_leader
+	m.T_State = r.T_State
+	return
+}
+
 // 验证登录
 func Read_User_verification(T_user string, T_pass string) (error, User) {
 	o := orm.NewOrm()
@@ -243,6 +258,50 @@ func Read_User_List(T_name string, T_power string, T_dept, T_dept_leader, page,
 
 	return r_, cnt
 }
+func Read_User_List_ByT_uuid(T_name string, T_uuid_list []string, page, page_z int) (r_ []User_R, cnt int64) {
+	o := orm.NewOrm()
+	// 也可以直接使用 Model 结构体作为表名
+	qs := o.QueryTable(new(User))
+	var offset int64
+	if page <= 1 {
+		offset = 0
+	} else {
+		offset = int64((page - 1) * page_z)
+	}
+
+	// 过滤
+	cond := orm.NewCondition()
+	cond1 := cond.And("T_State", 1) //.And("T_State", 1) .AndNot("status__in", 1).Or("profile__age__gt", 2000)
+
+	if len(T_name) > 0 {
+		//cond1.AndCond(cond.And("T_class", class))
+		cond1 = cond1.AndCond(cond.Or("T_name__icontains", T_name).Or("T_user__icontains", T_name))
+	}
+	if len(T_uuid_list) > 0 {
+		cond1 = cond1.And("T_uuid__in", T_uuid_list)
+	}
+
+	// 查询
+	var r []User
+	_, err := qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
+
+	if err != nil {
+		logs.Error(lib.FuncName(), err)
+		return
+	}
+
+	cnt, err = qs.SetCond((*orm2.Condition)(cond1)).Count()
+	if err != nil {
+		logs.Error(lib.FuncName(), err)
+		return
+	}
+
+	for _, v := range r {
+		r_ = append(r_, UserToUser_R(v))
+	}
+
+	return r_, cnt
+}
 
 // 获取列表
 func Read_User_List_All() (UserList []User_R) {