|
@@ -22,6 +22,12 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
+var (
|
|
|
+ CheckTypeApply = "apply"
|
|
|
+ CheckTypeContact = "contact"
|
|
|
+ CheckTypeExpire = "expired"
|
|
|
+)
|
|
|
+
|
|
|
// GetClassNameListByProductId 根据权限id获取权限分类
|
|
|
func GetClassNameListByProductId(productId int64) (list []*chart_permission.ChartPermission, err error) {
|
|
|
list, err = chart_permission.GetClassNameListByProductId(productId)
|
|
@@ -90,59 +96,70 @@ type CustomerInfo struct {
|
|
|
HasApply bool `json:"has_apply" description:"是否有申请过"`
|
|
|
}
|
|
|
|
|
|
-// CheckPermissionByFicc 权限校验
|
|
|
-func CheckPermissionByFicc(companyId int64, permissionId int) (ok bool, permissionCheckInfo PermissionCheckInfo, err error) {
|
|
|
- //非潜在客户
|
|
|
- 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 = "apply"
|
|
|
- return
|
|
|
+// CheckBaseFiccPermission 校验用户基本的FICC权限
|
|
|
+func CheckBaseFiccPermission(companyId int64, userId int) (ok bool, checkInfo response.PermissionCheckInfo, permissionIdArr []int, err error) {
|
|
|
+ defer func() {
|
|
|
+ // 无权限查询是否有申请记录
|
|
|
+ if !ok {
|
|
|
+ if checkInfo.Type == CheckTypeApply {
|
|
|
+ if _, e := yb_apply_record.GetLastNotOpRecordByUserId(userId); e == nil {
|
|
|
+ checkInfo.CustomerInfo.HasApply = true
|
|
|
+ }
|
|
|
}
|
|
|
- err = tmpErr
|
|
|
- return
|
|
|
}
|
|
|
-
|
|
|
- // 如果客户ficc产品的状态是流失,那么也是让去申请
|
|
|
- if companyProductInfo.Status == "流失" {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ }()
|
|
|
+ // 潜在用户
|
|
|
+ if companyId == 1 {
|
|
|
+ checkInfo.Type = CheckTypeApply
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 是否开通FICC
|
|
|
+ productId := int64(1)
|
|
|
+ productInfo, e := company_product.GetByCompany2ProductId(companyId, productId)
|
|
|
+ if e != nil {
|
|
|
+ if e == utils.ErrNoRow {
|
|
|
+ checkInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
- // 获取有效的权限id列表
|
|
|
- validPermissionIdList, tmpErr := GetValidPermissionIdListByCompany2ProductId(companyId, productId)
|
|
|
- if tmpErr != nil {
|
|
|
- err = tmpErr
|
|
|
+ err = errors.New("获取用户FICC权限失败 Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 客户状态是否为流失
|
|
|
+ if productInfo.Status == "流失" {
|
|
|
+ checkInfo.Type = CheckTypeApply
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 是否为弘则研究已禁用的联系人
|
|
|
+ if companyId == 16 {
|
|
|
+ userInfo, e := wx_user.GetByUserId(userId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("用户信息异常 Err:" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- // 校验在有效的权限id列表中是否存在该权限
|
|
|
- for _, validPermissionId := range validPermissionIdList {
|
|
|
- //如果有该权限id,那么直接返回校验通过
|
|
|
- if validPermissionId == permissionId {
|
|
|
- ok = true
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- //查找对应客户的销售信息
|
|
|
-
|
|
|
- adminInfo, tmpErr := admin.GetByAdminId(companyProductInfo.SellerID)
|
|
|
- if tmpErr != nil {
|
|
|
- err = tmpErr
|
|
|
+ if userInfo.Enabled != 1 {
|
|
|
+ checkInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
- permissionCheckInfo = PermissionCheckInfo{
|
|
|
- Name: adminInfo.RealName,
|
|
|
- Mobile: adminInfo.Mobile,
|
|
|
- Type: "contact",
|
|
|
- }
|
|
|
- } else {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
}
|
|
|
-
|
|
|
+ // 客户对应的销售信息
|
|
|
+ sellerInfo, e := admin.GetByAdminId(productInfo.SellerID)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("获取用户销售信息失败 Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ checkInfo.Name = sellerInfo.RealName
|
|
|
+ checkInfo.Mobile = sellerInfo.Mobile
|
|
|
+ if productInfo.Status == "冻结" || (productInfo.Status == "试用" && productInfo.IsSuspend == 1) {
|
|
|
+ checkInfo.Type = CheckTypeContact
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 正常用户, 获取有效权限
|
|
|
+ permissionIdArr, e = GetValidPermissionIdListByCompany2ProductId(companyId, productId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("获取用户有效权限列表失败 Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ok = true
|
|
|
return
|
|
|
}
|
|
|
|