Преглед изворни кода

Merge branch 'master' into feature/v2.9.26

lianbingjie пре 2 година
родитељ
комит
f5875f9d5f
4 измењених фајлова са 183 додато и 525 уклоњено
  1. 55 45
      entbase/src/go.mod
  2. 83 469
      entbase/src/go.sum
  3. 34 11
      entbase/src/service/department/department.go
  4. 11 0
      entbase/src/service/person/person.go

+ 55 - 45
entbase/src/go.mod

@@ -3,13 +3,13 @@ module entbase/src
 go 1.18
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20230419121327-bedf77840ba6
+	app.yhyue.com/moapp/jybase v0.0.0-20230718012114-37013054344b
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v0.0.0-20230527024529-b31b48d60f4a
+	app.yhyue.com/moapp/jypkg v0.0.0-20230725073704-a2ce1f2059bf
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.13
 	github.com/dchest/captcha v1.0.0
 	github.com/gogf/gf/v2 v2.0.6
-	go.mongodb.org/mongo-driver v1.11.1
+	go.mongodb.org/mongo-driver v1.11.6
 )
 
 require (
@@ -24,56 +24,62 @@ require (
 	github.com/cenkalti/backoff/v4 v4.2.1 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/clbanning/mxj/v2 v2.5.5 // indirect
-	github.com/coreos/go-semver v0.3.0 // indirect
-	github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+	github.com/coreos/go-semver v0.3.1 // indirect
+	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
-	github.com/fatih/color v1.13.0 // indirect
-	github.com/felixge/fgprof v0.9.3 // indirect
+	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
+	github.com/fatih/color v1.15.0 // indirect
 	github.com/fsnotify/fsnotify v1.6.0 // indirect
 	github.com/garyburd/redigo v1.6.2 // indirect
 	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
+	github.com/go-openapi/jsonpointer v0.19.6 // indirect
+	github.com/go-openapi/jsonreference v0.20.1 // indirect
+	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/go-redis/redis/v8 v8.11.5 // indirect
-	github.com/go-sql-driver/mysql v1.7.0 // indirect
+	github.com/go-sql-driver/mysql v1.7.1 // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang/mock v1.6.0 // indirect
-	github.com/golang/protobuf v1.5.2 // indirect
+	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
 	github.com/gomodule/redigo v2.0.0+incompatible // indirect
+	github.com/google/gnostic v0.5.7-v3refs // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
-	github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect
-	github.com/googleapis/gnostic v0.5.5 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/grokify/html-strip-tags-go v0.0.1 // indirect
-	github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
+	github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/howeyc/fsnotify v0.9.0 // indirect
 	github.com/jinzhu/inflection v1.0.0 // indirect
 	github.com/jinzhu/now v1.1.1 // indirect
+	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
-	github.com/klauspost/compress v1.15.11 // indirect
+	github.com/klauspost/compress v1.15.15 // indirect
 	github.com/longbridgeapp/sqlparser v0.3.1 // indirect
 	github.com/magiconair/properties v1.8.7 // indirect
-	github.com/mattn/go-colorable v0.1.12 // indirect
-	github.com/mattn/go-isatty v0.0.14 // indirect
+	github.com/mailru/easyjson v0.7.7 // indirect
+	github.com/mattn/go-colorable v0.1.13 // indirect
+	github.com/mattn/go-isatty v0.0.17 // indirect
 	github.com/mattn/go-runewidth v0.0.13 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
 	github.com/nsqio/go-nsq v1.1.0 // indirect
 	github.com/olekukonko/tablewriter v0.0.5 // indirect
 	github.com/olivere/elastic v6.2.37+incompatible // indirect
+	github.com/olivere/elastic/v7 v7.0.22 // indirect
 	github.com/openzipkin/zipkin-go v0.4.1 // indirect
-	github.com/pelletier/go-toml/v2 v2.0.6 // indirect
+	github.com/pelletier/go-toml/v2 v2.0.8 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
-	github.com/prometheus/client_golang v1.13.0 // indirect
-	github.com/prometheus/client_model v0.2.0 // indirect
-	github.com/prometheus/common v0.37.0 // indirect
-	github.com/prometheus/procfs v0.8.0 // indirect
+	github.com/prometheus/client_golang v1.15.1 // indirect
+	github.com/prometheus/client_model v0.3.0 // indirect
+	github.com/prometheus/common v0.42.0 // indirect
+	github.com/prometheus/procfs v0.9.0 // indirect
 	github.com/rivo/uniseg v0.2.0 // indirect
 	github.com/sirupsen/logrus v1.9.0 // indirect
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
@@ -87,36 +93,37 @@ require (
 	github.com/xdg-go/scram v1.1.1 // indirect
 	github.com/xdg-go/stringprep v1.0.3 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
-	github.com/zeromicro/go-zero v1.4.4 // indirect
-	go.etcd.io/etcd/api/v3 v3.5.6 // indirect
-	go.etcd.io/etcd/client/pkg/v3 v3.5.6 // indirect
-	go.etcd.io/etcd/client/v3 v3.5.6 // indirect
+	github.com/zeromicro/go-zero v1.5.3 // indirect
+	go.etcd.io/etcd/api/v3 v3.5.9 // indirect
+	go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
+	go.etcd.io/etcd/client/v3 v3.5.9 // indirect
 	go.opentelemetry.io/otel v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/jaeger v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.15.1 // indirect
+	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 // indirect
 	go.opentelemetry.io/otel/exporters/zipkin v1.15.1 // indirect
 	go.opentelemetry.io/otel/sdk v1.15.1 // indirect
 	go.opentelemetry.io/otel/trace v1.15.1 // indirect
 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
-	go.uber.org/atomic v1.9.0 // indirect
-	go.uber.org/automaxprocs v1.5.1 // indirect
-	go.uber.org/multierr v1.8.0 // indirect
-	go.uber.org/zap v1.21.0 // indirect
-	golang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2 // indirect
-	golang.org/x/net v0.8.0 // indirect
-	golang.org/x/oauth2 v0.4.0 // indirect
+	go.uber.org/atomic v1.10.0 // indirect
+	go.uber.org/automaxprocs v1.5.2 // indirect
+	go.uber.org/multierr v1.9.0 // indirect
+	go.uber.org/zap v1.24.0 // indirect
+	golang.org/x/crypto v0.6.0 // indirect
+	golang.org/x/net v0.10.0 // indirect
+	golang.org/x/oauth2 v0.7.0 // indirect
 	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.7.0 // indirect
-	golang.org/x/term v0.6.0 // indirect
-	golang.org/x/text v0.8.0 // indirect
+	golang.org/x/sys v0.8.0 // indirect
+	golang.org/x/term v0.8.0 // indirect
+	golang.org/x/text v0.9.0 // indirect
 	golang.org/x/time v0.3.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
-	google.golang.org/grpc v1.54.0 // indirect
-	google.golang.org/protobuf v1.30.0 // indirect
+	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
+	google.golang.org/grpc v1.56.1 // indirect
+	google.golang.org/protobuf v1.31.0 // indirect
 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
@@ -125,11 +132,14 @@ require (
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 	gorm.io/driver/mysql v1.0.5 // indirect
 	gorm.io/gorm v1.21.3 // indirect
-	k8s.io/api v0.22.9 // indirect
-	k8s.io/apimachinery v0.22.9 // indirect
-	k8s.io/client-go v0.22.9 // indirect
-	k8s.io/klog/v2 v2.80.1 // indirect
-	k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 // indirect
-	sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
-	sigs.k8s.io/yaml v1.2.0 // indirect
+	jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20230630032508-eefb06a4588e // indirect
+	k8s.io/api v0.26.3 // indirect
+	k8s.io/apimachinery v0.27.0-alpha.3 // indirect
+	k8s.io/client-go v0.26.3 // indirect
+	k8s.io/klog/v2 v2.90.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230307230338-69ee2d25a840 // indirect
+	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
+	sigs.k8s.io/yaml v1.3.0 // indirect
 )

Разлика између датотеке није приказан због своје велике величине
+ 83 - 469
entbase/src/go.sum


+ 34 - 11
entbase/src/service/department/department.go

@@ -1,8 +1,11 @@
-//部门管理
+// 部门管理
 package department
 
 import (
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
+	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
 	"database/sql"
+	"entbase/src/config"
 	"fmt"
 
 	. "app.yhyue.com/moapp/jypkg/ent/entity"
@@ -40,7 +43,7 @@ type PcPersons struct {
 	Role  string `xorm:"role" json:"role"`   //人员角色
 }
 
-//新增
+// 新增
 func (a *Action) Add() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "name", "pid") {
 		return
@@ -71,7 +74,7 @@ func (a *Action) Add() {
 	a.ServeJson(Result{Data: M{"status": status, "id": dept_id}})
 }
 
-//删除
+// 删除
 func (a *Action) Del() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "id") {
 		return
@@ -90,7 +93,7 @@ func (a *Action) Del() {
 	a.ServeJson(Result{Data: M{"status": status}})
 }
 
-//移动
+// 移动
 func (a *Action) Move() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "id", "pid") {
 		return
@@ -113,7 +116,7 @@ func (a *Action) Move() {
 	a.ServeJson(Result{Data: M{"status": status}})
 }
 
-//详情
+// 详情
 func (a *Action) Detail() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "id") {
 		return
@@ -135,7 +138,7 @@ func (a *Action) Detail() {
 	}})
 }
 
-//修改
+// 修改
 func (a *Action) Update() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "id", "name", "pid") {
 		return
@@ -154,15 +157,33 @@ func (a *Action) Update() {
 	}
 	name := a.GetString("name")
 	status := 0
+	clearDepartAdminCache(id) // 旧部门管理员的缓存
 	if VarDepartment.UpdateIsExists(name, frameworkEntId, id) {
 		status = -1
 	} else if VarDepartment.Update(name, id, pid, aid, frameworkEntId) {
 		status = 1
 	}
+	clearDepartAdminCache(id) // 新部门管理员的缓存
 	a.ServeJson(Result{Data: M{"status": status}})
 }
+func clearDepartAdminCache(deptId int) {
+	// 先清缓存
+	oldUserIdsql := "SELECT        edu.user_id as oldUserId  FROM\n        `entniche_department_user` edu\nINNER JOIN entniche_user_role er ON edu.dept_id = ? AND er.role_id = 2 AND  edu.user_id = er.user_id "
+	oldRs := Mysql.SelectBySql(oldUserIdsql, deptId)
+	if oldRs != nil && len(*oldRs) > 0 {
+		oldUserId := qutil.Int64All((*oldRs)[0]["oldUserId"])
+		oldUserData := config.Middleground.UserCenter.IdentityByEntUserId(oldUserId)
+		positionId := qutil.InterfaceToStr(oldUserData.PositionId)
+		go jy.ClearBigVipUserPower(positionId)
+		go config.Middleground.UserCenter.WorkDesktopClearUserInfo(pb.WorkDesktopClearUserInfoReq{
+			PositionId: positionId,
+			AppId:      "10000",
+		})
+		go config.Middleground.PowerCheckCenter.DelCheckRedis("10000", qutil.Int64All(positionId))
+	}
+}
 
-//设置部门管理员,选择员工列表
+// 设置部门管理员,选择员工列表
 func (a *Action) Persons() {
 	frameworkEntId := qutil.IntAll(a.GetSession("frameworkEntId"))
 	currentUser := VarCurrentUser.EntInfo(frameworkEntId, qutil.IntAll(a.GetSession("entUserId")))
@@ -187,7 +208,7 @@ func (a *Action) Persons() {
 	a.ServeJson(Result{Data: persons})
 }
 
-//子部门
+// 子部门
 func (a *Action) Childrens() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "id") {
 		return
@@ -210,7 +231,7 @@ func (a *Action) Childrens() {
 	a.ServeJson(Result{Data: depts})
 }
 
-//所有子部门
+// 所有子部门
 func (a *Action) AllChildrens() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "id") {
 		return
@@ -233,7 +254,7 @@ func (a *Action) AllChildrens() {
 	a.ServeJson(Result{Data: depts})
 }
 
-//设置部门管理员
+// 设置部门管理员
 func (a *Action) SetAdmin() {
 	if !R.CheckReqParam(a.ResponseWriter, a.Request, "did", "aid") {
 		return
@@ -250,15 +271,17 @@ func (a *Action) SetAdmin() {
 		return
 	}
 	status := 0
+	clearDepartAdminCache(did) // 旧部门管理员缓存
 	if Mysql.ExecTx("设置部门管理员", func(tx *sql.Tx) bool {
 		return VarDepartment.SetAdmin(tx, frameworkEntId, did, aid)
 	}) {
 		status = 1
 	}
+	clearDepartAdminCache(did) //新部门管理员缓存
 	a.ServeJson(Result{Data: M{"status": status}})
 }
 
-//pc部门管理员,选择员工列表
+// pc部门管理员,选择员工列表
 func (a *Action) PcPersons() {
 	frameworkEntId := qutil.IntAll(a.GetSession("frameworkEntId"))
 	name := a.GetString("name")

+ 11 - 0
entbase/src/service/person/person.go

@@ -445,8 +445,19 @@ func (a *Action) Add() {
 		return
 	}
 	name := a.GetString("name")
+	if name == "" {
+		R.InvalidReqParam(a.ResponseWriter, a.Request, "name")
+		return
+	}
+	if len([]rune(name)) > 30 {
+		name = string([]rune(name)[:30])
+	}
 	phone := a.GetString("phone")
 	mail := a.GetString("mail")
+	if mail != "" && !jy.IsEmail(mail) {
+		R.InvalidReqParam(a.ResponseWriter, a.Request, "name")
+		return
+	}
 	status, user_id := func() (int, int64) {
 		if VarUser.AddIsExists(frameworkEntId, phone) {
 			return -1, 0

Неке датотеке нису приказане због велике количине промена