Browse Source

Merge branch 'cygx_8.7' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 2 years ago
parent
commit
14f35d53aa
2 changed files with 67 additions and 11 deletions
  1. 45 11
      controllers/user.go
  2. 22 0
      models/company.go

+ 45 - 11
controllers/user.go

@@ -257,25 +257,59 @@ func (this *UserController) Detail() {
 			if companyItem != nil && companyItem.CompanyId > 0 {
 				detail.CompanyName = companyItem.CompanyName
 				//if companyItem.Status == "试用" || companyItem.Status == "永续" || companyItem.Status == "正式" {
-				permissionStr, err := models.GetCompanyPermissionByUser(companyItem.CompanyId)
+				//permissionStr, err := models.GetCompanyPermissionByUser(companyItem.CompanyId)
+				//if err != nil {
+				//	br.Msg = "获取信息失败"
+				//	br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+				//	return
+				//}
+				var permissionStr string
+				permissionList, err := models.GetCompanyPermissionList(companyItem.CompanyId)
 				if err != nil {
 					br.Msg = "获取信息失败"
 					br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
 					return
 				}
-				permissionStrOld, err := models.GetCompanyPermission(companyItem.CompanyId)
-				if err != nil {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-					return
+
+				mapIsUpgrade := make(map[string]string)
+				mapZhukKeGuan := make(map[string]int)
+				for _, v := range permissionList {
+					mapZhukKeGuan[v.PermissionName] += 1
+					if v.IsUpgrade == 1 {
+						mapIsUpgrade[v.PermissionName] = v.PermissionName + "(升级)"
+					}
 				}
-				permissionStrListOld := strings.Split(permissionStrOld, ",")
-				for _, v := range permissionStrListOld {
-					if strings.Count(permissionStr, v) > 1 {
-						permissionStr = strings.Replace(permissionStr, v+"(主观)", v, -1)
-						permissionStr = strings.Replace(permissionStr, v+"(客观),", "", -1)
+				mapPermissionName := make(map[string]string)
+				//处理升级,并且合并主客观
+				for _, v := range permissionList {
+					if _, ok := mapPermissionName[v.PermissionName]; ok {
+						continue
 					}
+					if _, ok := mapIsUpgrade[v.PermissionName]; ok {
+						permissionStr += mapIsUpgrade[v.PermissionName] + ","
+					} else {
+						if mapZhukKeGuan[v.PermissionName] == 1 {
+							permissionStr += v.Remark + ","
+						} else {
+							permissionStr += v.PermissionName + ","
+						}
+					}
+					mapPermissionName[v.PermissionName] = v.PermissionName
 				}
+				permissionStr = strings.TrimLeft(permissionStr, ",")
+				//permissionStrOld, err := models.GetCompanyPermission(companyItem.CompanyId)
+				//if err != nil {
+				//	br.Msg = "获取信息失败"
+				//	br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+				//	return
+				//}
+				//permissionStrListOld := strings.Split(permissionStrOld, ",")
+				//for _, v := range permissionStrListOld {
+				//	if strings.Count(permissionStr, v) > 1 {
+				//		permissionStr = strings.Replace(permissionStr, v+"(主观)", v, -1)
+				//		permissionStr = strings.Replace(permissionStr, v+"(客观),", "", -1)
+				//	}
+				//}
 
 				detail.PermissionName = permissionStr
 				//} else {

+ 22 - 0
models/company.go

@@ -106,6 +106,28 @@ func GetCompanyPermissionByUser(companyId int) (permission string, err error) {
 	return
 }
 
+type PermissionItem struct {
+	ChartPermissionId int    `description:"权限id"`
+	PermissionName    string `description:"权限名称"`
+	IsUpgrade         int    `description:"是否升级,1是,0否"`
+	Remark            string `description:"备注区分主观客观"`
+}
+
+func GetCompanyPermissionList(companyId int) (items []*PermissionItem, err error) {
+	sql := ` SELECT b.chart_permission_id,b.permission_name,b.remark,a.is_upgrade
+			FROM company_report_permission AS a
+			INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
+			INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
+			WHERE  a.company_id=?
+			AND c.is_suspend=0
+            AND b.cygx_auth=1
+			AND c.status IN('正式','试用','永续')
+			AND a.status IN('正式','试用','永续')   ORDER BY b.sort ASC `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, companyId).QueryRows(&items)
+	return
+}
+
 //获取用户权限不限制状态
 func GetCompanyPermissionByUserNoStatus(companyId int) (permission string, err error) {
 	sql := ` SELECT GROUP_CONCAT(DISTINCT b.remark  ORDER BY b.sort ASC  SEPARATOR ',') AS permission