|
@@ -1001,3 +1001,108 @@ func GetBindFiccPermissions(user user.UserInfo) (ret response.BindPermissionFicc
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func GetCommoditiesBindFiccPermissions(user user.UserInfo) (ret response.BindPermissionFiccResp, err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetHomeFiccPermissions: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ ret.PermissionList = make([]*response.BindPermissionFiccItem, 0)
|
|
|
+ // 判断用户状态是否是正常和永续
|
|
|
+ var productAuthOk bool
|
|
|
+ companyProduct, err := company_product.GetByCompany2ProductId(user.CompanyID, 1)
|
|
|
+ if err == utils.ErrNoRow {
|
|
|
+ err = nil
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询用户购买产品出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if companyProduct != nil {
|
|
|
+ // 无FICC权限的客户不可见
|
|
|
+ if companyProduct.CompanyProductID > 0 {
|
|
|
+ // 已购或者试用用户可见
|
|
|
+ if strings.Contains("永续,正式", companyProduct.Status) || (companyProduct.Status == "试用" && companyProduct.IsSuspend != 1) {
|
|
|
+ productAuthOk = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if !productAuthOk {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ validPermissionList, err := GetValidPermissionByCompany2ProductId(user.CompanyID, 1)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var validPermissionIds []int
|
|
|
+ for _, item := range validPermissionList {
|
|
|
+ validPermissionIds = append(validPermissionIds, item.ChartPermissionID)
|
|
|
+ }
|
|
|
+ permissionList, err := chart_permission.GetFiccListExceptTacticByProductIdOrderSort()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionMap := make(map[uint64]bool)
|
|
|
+ permissionFirstMap := make(map[string]*response.BindPermissionFiccItem)
|
|
|
+
|
|
|
+ //查询首页展示的图标
|
|
|
+ permissionFirstList, err := chart_permission_first.GetIndexShowListOrderSort()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range permissionFirstList {
|
|
|
+ permissionFirstMap[v.ClassifyName] = &response.BindPermissionFiccItem{
|
|
|
+ Id: int(v.Id),
|
|
|
+ ClassifyName: v.YbIndexName,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range permissionList {
|
|
|
+ permissionMap[v.ChartPermissionID] = false
|
|
|
+ for _, myPerId := range validPermissionIds {
|
|
|
+ if int(v.ChartPermissionID) == myPerId {
|
|
|
+ permissionMap[v.ChartPermissionID] = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range permissionList {
|
|
|
+ temp := new(response.BindPermissionFiccSecondItem)
|
|
|
+ temp.ChartPermissionID = int(v.ChartPermissionID)
|
|
|
+ temp.ChartPermissionName = v.PermissionName
|
|
|
+ if _, ok := permissionFirstMap[v.ClassifyName]; ok && permissionMap[v.ChartPermissionID] {
|
|
|
+ permissionFirstMap[v.ClassifyName].List = append(permissionFirstMap[v.ClassifyName].List, temp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var list []*response.BindPermissionFiccItem
|
|
|
+LOOP:
|
|
|
+ for _, v := range permissionFirstList {
|
|
|
+ item := permissionFirstMap[v.ClassifyName]
|
|
|
+ if len(item.List) > 0 {
|
|
|
+ temp := new(response.BindPermissionFiccItem)
|
|
|
+ temp.Id = item.Id
|
|
|
+ temp.ClassifyName = item.ClassifyName
|
|
|
+ temp.List = item.List
|
|
|
+ //大宗商品分类内合并PTA&MEG
|
|
|
+ if temp.ClassifyName == "化工" {
|
|
|
+ for _, secondItem := range temp.List {
|
|
|
+ if secondItem.ChartPermissionName == "PTA"{
|
|
|
+ secondItem.ChartPermissionName = "PTA&MEG"
|
|
|
+ }
|
|
|
+ if secondItem.ChartPermissionName == "MEG" {
|
|
|
+ continue LOOP
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list = append(list, temp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ret.PermissionList = list
|
|
|
+ return
|
|
|
+}
|