Browse Source

随手办公 品种修改

xyxie 11 months ago
parent
commit
5fd10b5abf

+ 16 - 8
controllers/approval_new.go

@@ -5,6 +5,7 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 	approval2 "hongze/hongze_mobile_admin/models/request/approval"
 	approvalResp "hongze/hongze_mobile_admin/models/response/approval"
+	"hongze/hongze_mobile_admin/models/tables/chart_permission"
 	"hongze/hongze_mobile_admin/models/tables/company_approval"
 	"hongze/hongze_mobile_admin/models/tables/company_contract"
 	"hongze/hongze_mobile_admin/models/tables/company_delay_permission"
@@ -115,7 +116,7 @@ func (c *ApprovalCommon) ListV2() {
 		contractApprovalIdStr := strings.Join(contractApprovalIdSlice, ",")
 
 		companyContractMap := make(map[int]*company_contract.CompanyContract)
-		if len(companyContractIdSlice) >0  {
+		if len(companyContractIdSlice) > 0 {
 			companyContractIdStr := strings.Join(companyContractIdSlice, ",")
 			companyContractList, e := company_contract.GetCompanyContractDetailByContractIds(companyContractIdStr)
 			if e == nil {
@@ -158,7 +159,7 @@ func (c *ApprovalCommon) ListV2() {
 				if com, ok := companyContractMap[item.CompanyContractId]; ok {
 					if com.Source == "系统合同" {
 						item.ContractSourceTag = "标准合同"
-					}else{
+					} else {
 						item.ContractSourceTag = "非标合同"
 					}
 				}
@@ -312,13 +313,20 @@ func (c *ApprovalCommon) Detail() {
 	//获取权限列表
 
 	//子权限切片集合
-	var permissionClassifyArr []string
+	var permissionClassifyArr []*chart_permission.ChartPermission
 	if item.ProductId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			permissionClassifyArr = append(permissionClassifyArr, v)
+		// 查询一级分类名称
+		permissionClassifyArr, err = chart_permission.GetPermissionFirstByProductId(item.ProductId)
+		if err != nil {
+			c.FailWithMessage("获取失败", "获取审批权限失败,Err:"+err.Error())
+			return
 		}
 	} else {
-		permissionClassifyArr = append(permissionClassifyArr, "权益")
+		permissionClassifyArr, err = chart_permission.GetPermissionFirstByProductId(item.ProductId)
+		if err != nil {
+			c.FailWithMessage("获取失败", "获取审批权限失败,Err:"+err.Error())
+			return
+		}
 	}
 
 	//获取需要审批的权限
@@ -336,7 +344,7 @@ func (c *ApprovalCommon) Detail() {
 	for _, v := range permissionClassifyArr {
 		checkList := make([]int, 0)
 		plist := new(company_report_permission.PermissionLookList)
-		items, err := company_report_permission.GetPermissionLookItems(item.ProductId, v)
+		items, err := company_report_permission.GetPermissionLookByParentId(item.ProductId, v.ChartPermissionId)
 		if err != nil {
 			c.FailWithMessage("获取失败", "获取权限信息失败,Err:"+err.Error())
 			return
@@ -365,7 +373,7 @@ func (c *ApprovalCommon) Detail() {
 
 		//plist.Items = newItems
 		plist.Items = items
-		plist.ClassifyName = v
+		plist.ClassifyName = v.ChartPermissionName
 		plist.CheckList = checkList
 
 		if item.ProductId == 1 {

+ 36 - 2
controllers/company_contract.go

@@ -45,7 +45,41 @@ func (c *CompanyContractCommon) ApplyContractDetail() {
 	}
 
 	if detail.ProductId == utils.COMPANY_PRODUCT_FICC_ID {
-		for _, v := range utils.PermissionFiccClassifyArr {
+		allFiccPermissions, e := company_report_permission.GetPermissionLookItemsByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+		if e != nil {
+			c.FailWithMessage("获取权限信息失败", "获取权限信息失败,Err:"+err.Error())
+			return
+		}
+		permissionMap := make(map[int][]*company_report_permission.PermissionLookItem, 0)
+		for _, v := range allFiccPermissions {
+			if v.ParentId > 0 {
+				permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+			}
+		}
+		for _, v := range allFiccPermissions {
+			if v.ParentId == 0 {
+				plist := new(company_report_permission.PermissionLookList)
+				plist.Items = make([]*company_report_permission.PermissionLookItem, 0)
+				plist.CheckList = make([]int, 0)
+				items, ok := permissionMap[v.ChartPermissionId]
+				if ok {
+					plist.Items = items
+					for _, n := range items {
+						count, err := company_contract.GetCompanyContractPermissionCheckByContractId(companyId, detail.CompanyContractId, n.ChartPermissionId)
+						if err != nil {
+							c.FailWithMessage("获取失败", "获取权限信息失败,Err:"+err.Error())
+							return
+						}
+						if count > 0 {
+							plist.CheckList = append(plist.CheckList, n.ChartPermissionId)
+						}
+					}
+				}
+				plist.ClassifyName = v.PermissionName
+				detail.PermissionList = append(detail.PermissionList, plist)
+			}
+		}
+		/*for _, v := range utils.PermissionFiccClassifyArr {
 			checkList := make([]int, 0)
 			plist := new(company_report_permission.PermissionLookList)
 			items, err := company_report_permission.GetPermissionLookItems(detail.ProductId, v)
@@ -67,7 +101,7 @@ func (c *CompanyContractCommon) ApplyContractDetail() {
 			plist.ClassifyName = v
 			plist.CheckList = checkList
 			detail.PermissionList = append(detail.PermissionList, plist)
-		}
+		}*/
 	}
 
 	if detail.ProductId == utils.COMPANY_PRODUCT_RAI_ID {

+ 30 - 6
go.mod

@@ -1,18 +1,42 @@
 module hongze/hongze_mobile_admin
 
-go 1.15
+go 1.19
 
 require (
 	baliance.com/gooxml v1.0.1
 	github.com/SebastiaanKlippert/go-wkhtmltopdf v1.7.2
 	github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible
-	github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
-	github.com/beego/beego/v2 v2.0.2
-	github.com/go-sql-driver/mysql v1.6.0
+	github.com/beego/beego/v2 v2.0.7
+	github.com/go-sql-driver/mysql v1.7.0
 	github.com/medivhzhan/weapp/v2 v2.5.0
 	github.com/rdlucklib/rdluck_tools v1.0.3
-	github.com/satori/go.uuid v1.2.0 // indirect
 	github.com/shopspring/decimal v1.3.1
-	golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect
 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
 )
+
+require (
+	github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
+	github.com/beorn7/perks v1.0.1 // indirect
+	github.com/cespare/xxhash/v2 v2.1.2 // indirect
+	github.com/garyburd/redigo v1.6.3 // indirect
+	github.com/golang/protobuf v1.5.2 // indirect
+	github.com/hashicorp/golang-lru v0.5.4 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
+	github.com/mitchellh/mapstructure v1.5.0 // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/prometheus/client_golang v1.14.0 // indirect
+	github.com/prometheus/client_model v0.3.0 // indirect
+	github.com/prometheus/common v0.37.0 // indirect
+	github.com/prometheus/procfs v0.8.0 // indirect
+	github.com/satori/go.uuid v1.2.0 // indirect
+	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
+	golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect
+	golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect
+	golang.org/x/sys v0.0.0-20220823224334-20c2bfdbfe24 // indirect
+	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect
+	google.golang.org/protobuf v1.28.1 // indirect
+	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
+	gopkg.in/yaml.v2 v2.4.0 // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+)

File diff suppressed because it is too large
+ 259 - 485
go.sum


+ 14 - 4
models/tables/chart_permission/chart_permission.go

@@ -26,6 +26,8 @@ type ChartPermission struct {
 	CygxAuth            int       `description:"是否是权限,用于查研观向小程序前台权限校验"`
 	YbImgUrl            string    `description:"研报小程序报告列表icon"`
 	PriceDrivenState    int       `description:"品种价格驱动开启状态 0-关闭 1-开启"`
+	ParentId            int       `description:"父级权限id"`
+	IsPublic            int       `description:"是否是公有权限1:公有权限,0私有权限"`
 }
 
 // GetChartPermissionById 主键获取权限
@@ -69,11 +71,19 @@ func GetFiccPermissionExceptTactic() (items []*ChartPermission, err error) {
 	return
 }
 
-// GetPermissionByProductIdAndClassifyName 获取子分类
-func GetPermissionByProductIdAndClassifyName(productId int, classifyName string) (items []*ChartPermission, err error) {
+// GetPermissionFirstByProductId 获取一级品种权限
+func GetPermissionFirstByProductId(productId int) (items []*ChartPermission, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM chart_permission WHERE enabled = 1 AND product_id = ? AND classify_name = ? AND permission_type = 0 ORDER BY sort ASC`
-	_, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
+	sql := `SELECT * FROM chart_permission WHERE enabled = 1 AND product_id = ? AND parent_id = 0 AND permission_type = 0 and classify_name != '市场策略' ORDER BY sort ASC`
+	_, err = o.Raw(sql, productId).QueryRows(&items)
+	return
+}
+
+// GetPermissionSecondByProductId 获取二级品种权限
+func GetPermissionSecondByProductId(productId int) (items []*ChartPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM chart_permission WHERE enabled = 1 AND product_id = ? AND parent_id > 0 AND permission_type = 0 and classify_name != '市场策略' ORDER BY sort ASC`
+	_, err = o.Raw(sql, productId).QueryRows(&items)
 	return
 }
 

+ 16 - 0
models/tables/company_report_permission/company_report_permission.go

@@ -55,6 +55,8 @@ type PermissionLookItem struct {
 	IsUpgrade         int     `description:"是否升级,1是,0否"`
 	ExpensiveYx       int     `description:"权益研选: 0-3w; 1-5w"`
 	Points            float64 `description:"研选扣点包点数"`
+	ParentId          int     `description:"父级权限id"`
+	IsPublic          int     `description:"是否是公有权限1:公有权限,0私有权限"`
 }
 
 func GetCompanyPermissionCheck(companyId, permissionId int) (count int, err error) {
@@ -78,6 +80,20 @@ func GetPermissionLookItems(productId int, classifyName string) (items []*Permis
 	return
 }
 
+func GetPermissionLookByParentId(productId int, parentId int) (items []*PermissionLookItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND parent_id=? ORDER BY sort ASC `
+	_, err = o.Raw(sql, productId, parentId).QueryRows(&items)
+	return
+}
+
+func GetPermissionLookItemsByProductId(productId int) (items []*PermissionLookItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? ORDER BY sort ASC `
+	_, err = o.Raw(sql, productId).QueryRows(&items)
+	return
+}
+
 // GetCompanyContractPermissionByCompanyContractId 根据合同ID获取开通的权限
 func GetCompanyContractPermissionByCompanyContractId(companyContractId int) (items []*PermissionLookItem, err error) {
 	o := orm.NewOrm()

+ 42 - 9
services/contract/contract.go

@@ -9,6 +9,7 @@ import (
 	contractCustom "hongze/hongze_mobile_admin/models/custom/contract"
 	contractReq "hongze/hongze_mobile_admin/models/request/contract"
 	contractResp "hongze/hongze_mobile_admin/models/response/contract"
+	"hongze/hongze_mobile_admin/models/tables/chart_permission"
 	"hongze/hongze_mobile_admin/models/tables/company_report_permission"
 	"hongze/hongze_mobile_admin/models/tables/contract"
 	"hongze/hongze_mobile_admin/models/tables/contract_approval"
@@ -350,13 +351,20 @@ func GetProductCelData(detail contract_service_detail.ContractServiceDetail, tab
 // GetPermissionByContractService 通过合同服务,获取权限集合列表
 func GetPermissionByContractService(productId int, serviceList []*contractCustom.ContractServiceAndDetail) (permissionList []*company_report_permission.PermissionLookList, err error) {
 	//子权限切片集合
-	var permissionClassifyArr []string
+	var permissionClassifyArr []*chart_permission.ChartPermission
 	if productId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			permissionClassifyArr = append(permissionClassifyArr, v)
+		// 查询一级分类名称
+		permissionClassifyArr, err = chart_permission.GetPermissionFirstByProductId(productId)
+		if err != nil {
+			err = fmt.Errorf("获取权限失败,Err:%s", err.Error())
+			return
 		}
 	} else {
-		permissionClassifyArr = append(permissionClassifyArr, "权益")
+		permissionClassifyArr, err = chart_permission.GetPermissionFirstByProductId(productId)
+		if err != nil {
+			err = fmt.Errorf("获取权限失败,Err:%s", err.Error())
+			return
+		}
 	}
 
 	//获取已经勾选的的权限
@@ -369,7 +377,7 @@ func GetPermissionByContractService(productId int, serviceList []*contractCustom
 	for _, v := range permissionClassifyArr {
 		checkList := make([]int, 0)
 		plist := new(company_report_permission.PermissionLookList)
-		items, tmpErr := company_report_permission.GetPermissionLookItems(productId, v)
+		items, tmpErr := company_report_permission.GetPermissionLookByParentId(productId, v.ChartPermissionId)
 		if tmpErr != nil {
 			err = tmpErr
 			return
@@ -380,7 +388,7 @@ func GetPermissionByContractService(productId int, serviceList []*contractCustom
 			}
 		}
 		plist.Items = items
-		plist.ClassifyName = v
+		plist.ClassifyName = v.PermissionName
 		plist.CheckList = checkList
 
 		permissionList = append(permissionList, plist)
@@ -407,7 +415,32 @@ func GetServicePermissionMap(serviceList []*contractCustom.ContractServiceAndDet
 		}
 		switch contractService.ServiceTemplateId {
 		case 1: //ficc 大套餐
-			for _, v := range utils.PermissionFiccClassifyArr {
+			// 查询一级分类名称
+			allFiccPermissions, e := company_report_permission.GetPermissionLookItemsByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+			if e != nil {
+				err = fmt.Errorf("获取权限信息失败,Err:%s", e.Error())
+				return
+			}
+			permissionMap := make(map[int][]*company_report_permission.PermissionLookItem, 0)
+			for _, v := range allFiccPermissions {
+				if v.ParentId > 0 {
+					permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+				}
+			}
+			for _, v := range allFiccPermissions {
+				if v.ParentId == 0 {
+					if v.PermissionName == "市场策略" {
+						continue
+					}
+					items, ok := permissionMap[v.ChartPermissionId]
+					if ok {
+						for _, n := range items {
+							checkPermissionIdMap[n.ChartPermissionId] = n.ChartPermissionId
+						}
+					}
+				}
+			}
+			/*for _, v := range utils.PermissionFiccClassifyArr {
 				//大套餐中 市场策略暂时不作为勾选项
 				if v == "市场策略" {
 					continue
@@ -420,7 +453,7 @@ func GetServicePermissionMap(serviceList []*contractCustom.ContractServiceAndDet
 				for _, n := range items {
 					checkPermissionIdMap[n.ChartPermissionId] = n.ChartPermissionId
 				}
-			}
+			}*/
 		case 2: //ficc小套餐
 			permissionValues := []string{
 				"FICC周报", "商品双周报+线上电话会讨论会<br/>(由弘则的研究员主持线上讨论)", "数据点评",
@@ -594,4 +627,4 @@ func HandleEquityPermissionLookList(permissionLookList []*company_report_permiss
 	}
 	permissionLookList[0].Items = newPermissionList
 	return permissionLookList
-}
+}

Some files were not shown because too many files changed in this diff