|
@@ -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
|
|
|
}
|
|
|
|
|
@@ -153,7 +170,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
if ok == false {
|
|
|
ok, _ = checkPermissionByPermissionIdList2Rai(companyId, userId, permissionIdList)
|
|
|
}
|
|
|
- if ok == false && permissionCheckInfo.Type == "apply" {
|
|
|
+ if ok == false && permissionCheckInfo.Type == CheckTypeApply {
|
|
|
_, err = yb_apply_record.GetLastNotOpRecordByUserId(userId) // 从来源我的/活动申请的记录
|
|
|
if err != nil && err != utils.ErrNoRow {
|
|
|
return
|
|
@@ -182,7 +199,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
if tmpErr != nil {
|
|
|
// 没有开通ficc的客户
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -191,7 +208,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
|
|
|
wxUser, tmpErr := wx_user.GetByUserId(userId)
|
|
|
if tmpErr != nil {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
err = tmpErr
|
|
|
return
|
|
|
}
|
|
@@ -199,7 +216,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
// 查询用户是否为弘则研究已禁用的联系人
|
|
|
if companyId == 16 {
|
|
|
if wxUser.Enabled != 1 {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -209,7 +226,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
if tmpErr != nil {
|
|
|
// 没有开通ficc的客户
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -226,7 +243,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
|
|
|
// 如果客户ficc产品的状态是流失,那么也是让去申请
|
|
|
if companyProductInfo.Status == "流失" {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -241,13 +258,13 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
permissionCheckInfo.Name = adminInfo.RealName
|
|
|
permissionCheckInfo.Mobile = adminInfo.Mobile
|
|
|
if companyProductInfo.Status == "冻结" {
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//客户状态是:试用暂停状态(联系销售)
|
|
|
if companyProductInfo.Status == "试用" && companyProductInfo.IsSuspend == 1 {
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -265,9 +282,9 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
} else {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
}
|
|
|
|
|
|
return
|
|
@@ -279,7 +296,7 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
if ok == false {
|
|
|
ok, _ = checkPermissionByPermissionIdList2Rai(companyId, userId, permissionIdList)
|
|
|
}
|
|
|
- if ok == false && permissionCheckInfo.Type == "apply" {
|
|
|
+ if ok == false && permissionCheckInfo.Type == CheckTypeApply {
|
|
|
_, err = yb_apply_record.GetLastNotOpRecordByUserId(userId) // 从来源我的/活动申请的记录
|
|
|
if err != nil {
|
|
|
if err == utils.ErrNoRow {
|
|
@@ -310,7 +327,7 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
if tmpErr != nil {
|
|
|
// 没有开通ficc的客户
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -319,7 +336,7 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
|
|
|
wxUser, tmpErr := wx_user.GetByUserId(userId)
|
|
|
if tmpErr != nil {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
err = tmpErr
|
|
|
return
|
|
|
}
|
|
@@ -329,7 +346,7 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
if tmpErr != nil {
|
|
|
// 没有开通ficc的客户
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -346,7 +363,7 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
|
|
|
// 如果客户ficc产品的状态是流失,那么也是让去申请
|
|
|
if companyProductInfo.Status == "流失" {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -361,13 +378,13 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
permissionCheckInfo.Name = adminInfo.RealName
|
|
|
permissionCheckInfo.Mobile = adminInfo.Mobile
|
|
|
if companyProductInfo.Status == "冻结" {
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//客户状态是:试用暂停状态(联系销售)
|
|
|
if companyProductInfo.Status == "试用" && companyProductInfo.IsSuspend == 1 {
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -389,9 +406,9 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
} else {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
}
|
|
|
return
|
|
|
}
|
|
@@ -461,7 +478,7 @@ type ChartPermissionCheckInfo struct {
|
|
|
func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionCheckInfo ChartPermissionCheckInfo, err error) {
|
|
|
defer func() {
|
|
|
// 如果无权限,那么就去查询是否申请过
|
|
|
- if ok == false && permissionCheckInfo.Type == "apply" {
|
|
|
+ if ok == false && permissionCheckInfo.Type == CheckTypeApply {
|
|
|
_, err = yb_apply_record.GetLastNotOpRecordByUserId(userId) // 图库申请
|
|
|
// 查询是否有申请过,如果有申请过的话,那么err是nil
|
|
|
if err != nil {
|
|
@@ -483,7 +500,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
if tmpErr != nil {
|
|
|
// 没有开通FICC
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -492,7 +509,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
|
|
|
wxUser, tmpErr := wx_user.GetByUserId(userId)
|
|
|
if tmpErr != nil {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
err = tmpErr
|
|
|
return
|
|
|
}
|
|
@@ -500,7 +517,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
// 查询用户是否为弘则研究已禁用的联系人
|
|
|
if companyId == 16 {
|
|
|
if wxUser.Enabled != 1 {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -510,7 +527,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
if tmpErr != nil {
|
|
|
// 没有开通FICC
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -527,7 +544,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
|
|
|
// 如果客户FICC产品的状态是流失-申请
|
|
|
if companyProductInfo.Status == "流失" {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -542,7 +559,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
permissionCheckInfo.Name = adminInfo.RealName
|
|
|
permissionCheckInfo.Mobile = adminInfo.Mobile
|
|
|
if companyProductInfo.Status == "冻结" || (companyProductInfo.Status == "试用" && companyProductInfo.IsSuspend == 1) {
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -551,7 +568,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
if tmpErr != nil {
|
|
|
if tmpErr == utils.ErrNoRow {
|
|
|
// 无权限-联系销售
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
err = tmpErr
|
|
@@ -560,7 +577,7 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
nowTime := time.Now()
|
|
|
if permissionInfo.Enabled != 1 {
|
|
|
// 权限被禁用-联系销售
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
return
|
|
|
}
|
|
|
endTime := permissionInfo.EndTime.Add(23*time.Hour + 59*time.Minute + 59*time.Second)
|
|
@@ -568,14 +585,14 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
ok = true
|
|
|
} else {
|
|
|
// 权限已到期
|
|
|
- permissionCheckInfo.Type = "expired"
|
|
|
+ permissionCheckInfo.Type = CheckTypeExpire
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// 都不是默认联系销售
|
|
|
- permissionCheckInfo.Type = "contact"
|
|
|
+ permissionCheckInfo.Type = CheckTypeContact
|
|
|
} else {
|
|
|
- permissionCheckInfo.Type = "apply"
|
|
|
+ permissionCheckInfo.Type = CheckTypeApply
|
|
|
}
|
|
|
|
|
|
return
|
|
@@ -583,14 +600,39 @@ func CheckUserChartPermission(companyId int64, userId int) (ok bool, permissionC
|
|
|
|
|
|
type FiccPermissionList struct {
|
|
|
ClassifyName string `description:"分类"`
|
|
|
- HasPermission bool `description:"是否有权限"`
|
|
|
+ //HasPermission bool `description:"是否有权限"`
|
|
|
Items []*PermissionItem `description:"子类"`
|
|
|
}
|
|
|
|
|
|
type PermissionItem struct {
|
|
|
PermissionId int `description:"权限id"`
|
|
|
PermissionName string `description:"权限名称"`
|
|
|
- HasPermission bool `description:"是否有权限"`
|
|
|
+ //HasPermission bool `description:"是否有权限"`
|
|
|
+}
|
|
|
+
|
|
|
+// GetFiccPermissionList 获取FICC品种权限列表-不校验用户权限
|
|
|
+func GetFiccPermissionList() (list []*FiccPermissionList, err error) {
|
|
|
+ productId := 1
|
|
|
+ list = make([]*FiccPermissionList, 0)
|
|
|
+ for _, v := range utils.PermissionFiccClassifyArr {
|
|
|
+ classify := new(FiccPermissionList)
|
|
|
+ classify.ClassifyName = v
|
|
|
+ items, e := chart_permission.GetListByProductIdAndClassifyName(productId, v)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("获取品种权限失败 Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpItems := make([]*PermissionItem, 0)
|
|
|
+ for _, iv := range items {
|
|
|
+ item := new(PermissionItem)
|
|
|
+ item.PermissionId = int(iv.ChartPermissionID)
|
|
|
+ item.PermissionName = iv.PermissionName
|
|
|
+ tmpItems = append(tmpItems, item)
|
|
|
+ }
|
|
|
+ classify.Items = tmpItems
|
|
|
+ list = append(list, classify)
|
|
|
+ }
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
func GetHomeFiccPermissions(user user.UserInfo) (ret response.PermissionFiccResp, err error) {
|