|
@@ -666,11 +666,22 @@ func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyNam
|
|
return
|
|
return
|
|
}
|
|
}
|
|
var itemBillTotal []string
|
|
var itemBillTotal []string
|
|
|
|
+ itemBillTotalMap := make(map[string]string)
|
|
for _, v := range activitySpecialPermissionPointsList {
|
|
for _, v := range activitySpecialPermissionPointsList {
|
|
itemBillTotal = append(itemBillTotal, fmt.Sprint(v.ChartPermissionName, v.Points, "次"))
|
|
itemBillTotal = append(itemBillTotal, fmt.Sprint(v.ChartPermissionName, v.Points, "次"))
|
|
|
|
+ itemBillTotalMap[v.ChartPermissionName] = fmt.Sprint(v.ChartPermissionName, v.Points, "次")
|
|
}
|
|
}
|
|
itemBill.BillDetailed = 5 * len(items)
|
|
itemBill.BillDetailed = 5 * len(items)
|
|
- itemBill.Total = strings.Join(itemBillTotal, "+")
|
|
|
|
|
|
+ permissionNameSlice := []string{"医药", "消费", "科技", "智造"}
|
|
|
|
+ var itemBillTotalNew []string
|
|
|
|
+ for _, v := range permissionNameSlice {
|
|
|
|
+ if itemBillTotalMap[v] == "" {
|
|
|
|
+ itemBillTotalNew = append(itemBillTotalNew, fmt.Sprint(v, "0次"))
|
|
|
|
+ } else {
|
|
|
|
+ itemBillTotalNew = append(itemBillTotalNew, itemBillTotalMap[v])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ itemBill.Total = strings.Join(itemBillTotalNew, "+")
|
|
}
|
|
}
|
|
|
|
|
|
//如果有升级行业权限,或者大套餐客户就写入流水信息
|
|
//如果有升级行业权限,或者大套餐客户就写入流水信息
|
|
@@ -770,20 +781,16 @@ func DeductTripRemainingtimesByUser(user *cygx.UserAndCompanyName, activityInfo
|
|
err = errors.New("GetCompanyProductByCompanyIdAndProductId, Err:" + e.Error())
|
|
err = errors.New("GetCompanyProductByCompanyIdAndProductId, Err:" + e.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- //永续客户不做判断
|
|
|
|
- if companyProduct.Status == utils.COMPANY_STATUS_FOREVER {
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
|
|
var condition string
|
|
var condition string
|
|
var pars []interface{}
|
|
var pars []interface{}
|
|
- condition = " AND company_id = ? AND points > 0 ORDER BY points DESC LIMIT 1 "
|
|
|
|
|
|
+ condition = " AND company_id = ? ORDER BY points DESC LIMIT 1 "
|
|
pars = append(pars, companyId)
|
|
pars = append(pars, companyId)
|
|
|
|
|
|
//判断是不是策略行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
|
|
//判断是不是策略行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
|
|
if chartPermissionName != utils.CE_LUE_NAME {
|
|
if chartPermissionName != utils.CE_LUE_NAME {
|
|
pars = make([]interface{}, 0)
|
|
pars = make([]interface{}, 0)
|
|
- condition = " AND company_id = ? AND (chart_permission_id = ? OR chart_permission_id = 0 ) AND points > 0 ORDER BY points DESC LIMIT 1 "
|
|
|
|
|
|
+ condition = " AND company_id = ? AND (chart_permission_id = ? OR chart_permission_id = 0 ) ORDER BY points DESC LIMIT 1 "
|
|
pars = append(pars, companyId, activityInfo.ChartPermissionId)
|
|
pars = append(pars, companyId, activityInfo.ChartPermissionId)
|
|
}
|
|
}
|
|
activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
@@ -792,17 +799,46 @@ func DeductTripRemainingtimesByUser(user *cygx.UserAndCompanyName, activityInfo
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- //如果没有剩余的点数,就返回
|
|
|
|
- if len(activitySpecialPermissionPointsList) == 0 && roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN {
|
|
|
|
- err = errors.New(msgTemplate)
|
|
|
|
|
|
+ var maxPoints int // 获取最大剩余点数,(写的有点多余)
|
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
|
+ if maxPoints < v.Points {
|
|
|
|
+ maxPoints = v.Points
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //如果是超管给一个没有行业权限的试用,冻结等相关客户报名,就写入一条对应的行业权限点数信息
|
|
|
|
+ if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN && len(activitySpecialPermissionPointsList) == 0 {
|
|
|
|
+ item := new(cygx.CygxActivitySpecialPermissionPoints)
|
|
|
|
+ item.CompanyId = companyProduct.CompanyId
|
|
|
|
+ item.Points = -1
|
|
|
|
+ item.CompanyName = companyProduct.CompanyName
|
|
|
|
+ item.ChartPermissionId = activityInfo.ChartPermissionId
|
|
|
|
+ item.ChartPermissionName = activityInfo.ChartPermissionName
|
|
|
|
+ item.CreateTime = time.Now()
|
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
|
+ e = cygx.AddCygxActivitySpecialPermissionPoints(item)
|
|
|
|
+ if e != nil {
|
|
|
|
+ err = errors.New("AddCygxActivitySpecialPermissionPoints, Err:" + e.Error())
|
|
|
|
+ return
|
|
|
|
+ }
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //永续客户不做判断、超管不做判断
|
|
|
|
+ if companyProduct.Status != utils.COMPANY_STATUS_FOREVER {
|
|
|
|
+ //如果没有剩余的点数,就返回
|
|
|
|
+ if maxPoints <= 0 && roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN {
|
|
|
|
+ err = errors.New(msgTemplate)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
var maxChartPermissionId int // 剩余点数最多的行业
|
|
var maxChartPermissionId int // 剩余点数最多的行业
|
|
var points int // 剩余点数
|
|
var points int // 剩余点数
|
|
for _, v := range activitySpecialPermissionPointsList {
|
|
for _, v := range activitySpecialPermissionPointsList {
|
|
maxChartPermissionId = v.ChartPermissionId
|
|
maxChartPermissionId = v.ChartPermissionId
|
|
points = v.Points - 1
|
|
points = v.Points - 1
|
|
}
|
|
}
|
|
|
|
+
|
|
//更新对应行业剩余点数
|
|
//更新对应行业剩余点数
|
|
e = cygx.UpdateCygxActivitySpecialPermissionPoints(points, companyId, maxChartPermissionId)
|
|
e = cygx.UpdateCygxActivitySpecialPermissionPoints(points, companyId, maxChartPermissionId)
|
|
if e != nil {
|
|
if e != nil {
|
|
@@ -867,11 +903,7 @@ func HandleActivitySpecialTripBillTotalText(user *cygx.UserAndCompanyName) (tota
|
|
err = errors.New("GetCompanyDetailByIdGroup, Err:" + e.Error())
|
|
err = errors.New("GetCompanyDetailByIdGroup, Err:" + e.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- //永续客户不限制次数
|
|
|
|
- if companyDetail.Status == utils.COMPANY_STATUS_FOREVER {
|
|
|
|
- totalText = "0次"
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
var condition string
|
|
var condition string
|
|
var pars []interface{}
|
|
var pars []interface{}
|
|
pars = make([]interface{}, 0)
|
|
pars = make([]interface{}, 0)
|
|
@@ -882,18 +914,39 @@ func HandleActivitySpecialTripBillTotalText(user *cygx.UserAndCompanyName) (tota
|
|
err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ //永续客户次数累加
|
|
|
|
+ if companyDetail.Status == utils.COMPANY_STATUS_FOREVER {
|
|
|
|
+ var points int
|
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
|
+ points += v.Points
|
|
|
|
+ }
|
|
|
|
+ totalText = fmt.Sprint(points, "次") //追加永续客户展示规则(2024-02-23)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
|
|
var itemBillTotal []string
|
|
var itemBillTotal []string
|
|
|
|
+ itemBillTotalMap := make(map[string]string)
|
|
for _, v := range activitySpecialPermissionPointsList {
|
|
for _, v := range activitySpecialPermissionPointsList {
|
|
if v.ChartPermissionId > 0 {
|
|
if v.ChartPermissionId > 0 {
|
|
itemBillTotal = append(itemBillTotal, fmt.Sprint(v.ChartPermissionName, v.Points, "次")) // 行业套餐客户展示规则
|
|
itemBillTotal = append(itemBillTotal, fmt.Sprint(v.ChartPermissionName, v.Points, "次")) // 行业套餐客户展示规则
|
|
|
|
+ itemBillTotalMap[v.ChartPermissionName] = fmt.Sprint(v.ChartPermissionName, v.Points, "次")
|
|
}
|
|
}
|
|
if v.ChartPermissionId == 0 {
|
|
if v.ChartPermissionId == 0 {
|
|
- totalText = fmt.Sprint(v.Points, "次") // 大套餐客户展示规则
|
|
|
|
|
|
+ totalText = fmt.Sprint(v.Points, "次") // 大套餐客户展示规则,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
if len(itemBillTotal) > 0 {
|
|
if len(itemBillTotal) > 0 {
|
|
- totalText = strings.Join(itemBillTotal, "+")
|
|
|
|
|
|
+ permissionNameSlice := []string{"医药", "消费", "科技", "智造"}
|
|
|
|
+ var itemBillTotalNew []string
|
|
|
|
+ for _, v := range permissionNameSlice {
|
|
|
|
+ if itemBillTotalMap[v] == "" {
|
|
|
|
+ itemBillTotalNew = append(itemBillTotalNew, fmt.Sprint(v, "0次"))
|
|
|
|
+ } else {
|
|
|
|
+ itemBillTotalNew = append(itemBillTotalNew, itemBillTotalMap[v])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ totalText = strings.Join(itemBillTotalNew, "+")
|
|
}
|
|
}
|
|
return
|
|
return
|
|
}
|
|
}
|