|
@@ -599,9 +599,9 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
}
|
|
}
|
|
|
|
|
|
type FiccPermissionList struct {
|
|
type FiccPermissionList struct {
|
|
- ClassifyName string `description:"分类"`
|
|
|
|
|
|
+ ClassifyName string `description:"分类"`
|
|
//HasPermission bool `description:"是否有权限"`
|
|
//HasPermission bool `description:"是否有权限"`
|
|
- Items []*PermissionItem `description:"子类"`
|
|
|
|
|
|
+ Items []*PermissionItem `description:"子类"`
|
|
}
|
|
}
|
|
|
|
|
|
type PermissionItem struct {
|
|
type PermissionItem struct {
|
|
@@ -664,7 +664,7 @@ func GetHomeFiccPermissions(user user.UserInfo) (ret response.PermissionFiccResp
|
|
}
|
|
}
|
|
for _, v := range permissionFirstList {
|
|
for _, v := range permissionFirstList {
|
|
permissionFirstMap[v.ClassifyName] = &response.PermissionFirstItem{
|
|
permissionFirstMap[v.ClassifyName] = &response.PermissionFirstItem{
|
|
- Sort: v.YbIndexSort+1000,
|
|
|
|
|
|
+ Sort: v.YbIndexSort + 1000,
|
|
YbIndexName: v.YbIndexName,
|
|
YbIndexName: v.YbIndexName,
|
|
YbIndexIcon: v.YbIndexIcon,
|
|
YbIndexIcon: v.YbIndexIcon,
|
|
}
|
|
}
|
|
@@ -763,3 +763,123 @@ func GetHomeFiccPermissions(user user.UserInfo) (ret response.PermissionFiccResp
|
|
ret.ContactInfo = contactInfo
|
|
ret.ContactInfo = contactInfo
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// CheckUserSandboxPermission 验证用户/联系人的沙盘权限
|
|
|
|
+func CheckUserSandboxPermission(companyId int64, userId, permissionId int) (ok bool, permissionCheckInfo ChartPermissionCheckInfo, err error) {
|
|
|
|
+ defer func() {
|
|
|
|
+ // 如果无权限,那么就去查询是否申请过
|
|
|
|
+ if ok == false && permissionCheckInfo.Type == CheckTypeApply {
|
|
|
|
+ _, err = yb_apply_record.GetLastNotOpRecordByUserId(userId) // 图库申请
|
|
|
|
+ // 查询是否有申请过,如果有申请过的话,那么err是nil
|
|
|
|
+ if err != nil {
|
|
|
|
+ if err == utils.ErrNoRow {
|
|
|
|
+ err = nil
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ permissionCheckInfo.CustomerInfo.HasApply = true
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ var productId int64
|
|
|
|
+ productId = 1
|
|
|
|
+ if companyId > 1 {
|
|
|
|
+ // 查询是否开通FICC
|
|
|
|
+ companyProductInfo, tmpErr := company_product.GetByCompany2ProductId(companyId, productId)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ // 没有开通FICC
|
|
|
|
+ if tmpErr == utils.ErrNoRow {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ wxUser, tmpErr := wx_user.GetByUserId(userId)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 查询用户是否为弘则研究已禁用的联系人
|
|
|
|
+ if companyId == 16 {
|
|
|
|
+ if wxUser.Enabled != 1 {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 客户信息
|
|
|
|
+ companyInfo, tmpErr := company.GetByCompanyId(companyId)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ // 没有开通FICC
|
|
|
|
+ if tmpErr == utils.ErrNoRow {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ customerInfo := CustomerInfo{
|
|
|
|
+ CompanyName: companyInfo.CompanyName,
|
|
|
|
+ Status: companyProductInfo.Status,
|
|
|
|
+ Name: wxUser.RealName,
|
|
|
|
+ IsSuspend: companyProductInfo.IsSuspend,
|
|
|
|
+ Mobile: wxUser.Mobile,
|
|
|
|
+ }
|
|
|
|
+ permissionCheckInfo.CustomerInfo = customerInfo
|
|
|
|
+
|
|
|
|
+ // 如果客户FICC产品的状态是流失-申请
|
|
|
|
+ if companyProductInfo.Status == "流失" {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 查找对应客户的销售信息
|
|
|
|
+ adminInfo, tmpErr := admin.GetByAdminId(companyProductInfo.SellerID)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 客户状态为冻结/试用暂停-联系销售
|
|
|
|
+ permissionCheckInfo.Name = adminInfo.RealName
|
|
|
|
+ permissionCheckInfo.Mobile = adminInfo.Mobile
|
|
|
|
+ if companyProductInfo.Status == "冻结" || (companyProductInfo.Status == "试用" && companyProductInfo.IsSuspend == 1) {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 验证用户的沙盘权限
|
|
|
|
+
|
|
|
|
+ //获取所有的权限分类列表
|
|
|
|
+ companyPermissionList, tmpErr := GetValidPermissionByCompany2ProductId(companyId, productId)
|
|
|
|
+ if tmpErr != nil {
|
|
|
|
+ err = tmpErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if permissionId > 0 {
|
|
|
|
+ for _, chartPermission := range companyPermissionList {
|
|
|
|
+ if chartPermission.ChartPermissionID == permissionId {
|
|
|
|
+ ok = true
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 不校验品种权限的话,那么就是认为有权限的
|
|
|
|
+ if len(companyPermissionList) > 0 {
|
|
|
|
+ ok = true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 都不是默认联系销售
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
|
+ } else {
|
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return
|
|
|
|
+}
|