Procházet zdrojové kódy

修复由于applyid改为存loginid而applyname为空的问题

zou.yingbin před 4 roky
rodič
revize
bdd1d1d629
3 změnil soubory, kde provedl 48 přidání a 13 odebrání
  1. 5 0
      models/ermcpMiddleGoods.go
  2. 4 0
      models/ermcpReport.go
  3. 39 13
      mtpcache/username.go

+ 5 - 0
models/ermcpMiddleGoods.go

@@ -188,6 +188,11 @@ func (r *ErmcpMiddleGoodsChangeLog) buildSql() string {
 // 处理要转换的数据
 func (r *ErmcpMiddleGoodsChangeLog) Calc() {
 	r.APPLYNAME = mtpcache.GetUserNameByUserId(r.APPLYID)
+	if r.APPLYNAME == "" {
+		// APPLYID 原来数据库存的是userid, 后来又改为loginid
+		// 当为loginid时,获取logincode
+		r.APPLYNAME = mtpcache.GetLoginCodeByLoginId(r.APPLYID)
+	}
 }
 
 // 获取套保变更操作数据

+ 4 - 0
models/ermcpReport.go

@@ -115,6 +115,10 @@ type ErmcpReportOPLog struct {
 func (r *ErmcpReportOPLog) Calc() {
 	r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.UNITID)
 	r.APPLYNAME = mtpcache.GetUserNameByUserId(r.APPLYID)
+	if r.APPLYNAME == "" {
+		// APPLYID 可能存的是loginId
+		r.APPLYNAME = mtpcache.GetLoginCodeByLoginId(r.APPLYID)
+	}
 
 	//1:点价价格 2:点价数量 3:结算量 4:其它费用 5:追加保证金 6溢短金额 7:调整金额 8:付款金额 9:收款金额 10:退款金额
 	//11:收票金额 12:开票金额 13:提交审核(合同) 14:审核通过(合同) 15:审核拒绝(合同) 16:合同撤回 17:提交审核(计划)

+ 39 - 13
mtpcache/username.go

@@ -16,14 +16,15 @@ import (
 var vUser userName
 
 type userName struct {
-	mtx  sync.RWMutex     //锁
-	data map[int64]string //数据[loginId]accountName
+	mtx  sync.RWMutex       // 
+	data map[int64]userData // 数据[loginId]userData
 	last time.Time
 }
 
 type userData struct {
-	LOGINID  int64  //登录ID
-	USERNAME string // 用户名字
+	LOGINID   int64  `json:"LOGINID"  xorm:"'LOGINID'"`     // 登录ID
+	LOGINCODE string `json:"LOGINCODE"  xorm:"'LOGINCODE'"` // 登录代码
+	USERNAME  string `json:"USERNAME"  xorm:"'USERNAME'"`   // 用户名字
 }
 
 // 加载数据
@@ -41,7 +42,7 @@ func (r *userName) load() {
 		return
 	}
 
-	sqlId := "select l.loginid, s.username" +
+	sqlId := "select l.loginid, l.logincode, s.username" +
 		"  from loginaccount l" +
 		"  left join systemmanager s" +
 		"    on l.logincode = s.logincode" +
@@ -52,15 +53,15 @@ func (r *userName) load() {
 	if err := s.Find(&sData); err != nil {
 		logger.GetLogger().Errorf("cache load usrname, %v", err)
 	} else {
-		r.data = make(map[int64]string)
+		r.data = make(map[int64]userData)
 		for i := range sData {
-			r.data[sData[i].LOGINID] = sData[i].USERNAME
+			r.data[sData[i].LOGINID] = sData[i]
 		}
 		r.last = time.Now()
 	}
 }
 
-func (r *userName) get(loginId int64) string {
+func (r *userName) name(loginId int64) string {
 	r.mtx.RLock()
 	defer r.mtx.RUnlock()
 
@@ -69,18 +70,43 @@ func (r *userName) get(loginId int64) string {
 	}
 
 	if v, ok := r.data[loginId]; ok {
-		return v
+		return v.USERNAME
+	}
+	return ""
+}
+
+func (r *userName) loginCode(loginId int64) string {
+	r.mtx.RLock()
+	defer r.mtx.RUnlock()
+
+	if r.data == nil {
+		return ""
+	}
+
+	if v, ok := r.data[loginId]; ok {
+		return v.LOGINCODE
 	}
 	return ""
 }
 
 // 根据登录ID获取名称
 func GetUserNameByLoginId(loginId int64) string {
-	if v := vUser.get(loginId); v !=""{
+	if v := vUser.name(loginId); v != "" {
 		return v
-	}else{
+	} else {
 		vUser.load()
 	}
 
-	return vUser.get(loginId)
-}
+	return vUser.name(loginId)
+}
+
+// 根据登录ID获取登录代码
+func GetLoginCodeByLoginId(loginId int64) string {
+	if v := vUser.loginCode(loginId); v != "" {
+		return v
+	} else {
+		vUser.load()
+	}
+
+	return vUser.loginCode(loginId)
+}